Skip to content

Instantly share code, notes, and snippets.

@lazycipher
Created March 7, 2020 23:29
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 lazycipher/4d565748a57d90038d4a49f5ef677b17 to your computer and use it in GitHub Desktop.
Save lazycipher/4d565748a57d90038d4a49f5ef677b17 to your computer and use it in GitHub Desktop.
Interactive World Bank Data Viz. 'Life Expectancy vs Fertility Rate and Year vs Fertility Rate'
// Define functions to render linked interactive plots using d3.
// Another script should define e.g.
// <script>
// var plot = new animint("#plot","path/to/plot.json");
// </script>
// Constructor for animint Object.
var animint = function (to_select, json_file) {
function wait_until_then(timeout, condFun, readyFun) {
var args=arguments
function checkFun() {
if(condFun()) {
readyFun(args[3],args[4]);
} else{
setTimeout(checkFun, timeout);
}
}
checkFun();
}
function convert_R_types(resp_array, types){
return resp_array.map(function (d) {
for (var v_name in d) {
if(!is_interactive_aes(v_name)){
var r_type = types[v_name];
if (r_type == "integer") {
d[v_name] = parseInt(d[v_name]);
} else if (r_type == "numeric") {
d[v_name] = parseFloat(d[v_name]);
} else if (r_type == "factor" || r_type == "rgb"
|| r_type == "linetype" || r_type == "label"
|| r_type == "character") {
// keep it as a character
} else if (r_type == "character" & v_name == "outliers") {
d[v_name] = parseFloat(d[v_name].split(" @ "));
}
}
}
return d;
});
}
// replacing periods in variable with an underscore this makes sure
// that selector doesn't confuse . in name with css selectors
function safe_name(unsafe_name){
return unsafe_name.replace(/[ .]/g, '_');
}
function legend_class_name(selector_name){
return safe_name(selector_name) + "_variable";
}
function is_interactive_aes(v_name){
if(v_name.indexOf("clickSelects") > -1){
return true;
}
if(v_name.indexOf("showSelected") > -1){
return true;
}
return false;
}
var linetypesize2dasharray = function (lt, size) {
var isInt = function(n) {
return typeof n === 'number' && parseFloat(n) == parseInt(n, 10) && !isNaN(n);
};
if(isInt(lt)){ // R integer line types.
if(lt == 1){
return null;
}
var o = {
0: size * 0 + "," + size * 10,
2: size * 4 + "," + size * 4,
3: size + "," + size * 2,
4: size + "," + size * 2 + "," + size * 4 + "," + size * 2,
5: size * 8 + "," + size * 4,
6: size * 2 + "," + size * 2 + "," + size * 6 + "," + size * 2
};
} else { // R defined line types
if(lt == "solid" || lt === null){
return null;
}
var o = {
"blank": size * 0 + "," + size * 10,
"none": size * 0 + "," + size * 10,
"dashed": size * 4 + "," + size * 4,
"dotted": size + "," + size * 2,
"dotdash": size + "," + size * 2 + "," + size * 4 + "," + size * 2,
"longdash": size * 8 + "," + size * 4,
"twodash": size * 2 + "," + size * 2 + "," + size * 6 + "," + size * 2,
"22": size * 2 + "," + size * 2,
"42": size * 4 + "," + size * 2,
"44": size * 4 + "," + size * 4,"13": size + "," + size * 3,
"1343": size + "," + size * 3 + "," + size * 4 + "," + size * 3,
"73": size * 7 + "," + size * 3,
"2262": size * 2 + "," + size * 2 + "," + size * 6 + "," + size * 2,
"12223242": size + "," + size * 2 + "," + size * 2 + "," + size * 2 + "," + size * 3 + "," + size * 2 + "," + size * 4 + "," + size * 2,
"F282": size * 15 + "," + size * 2 + "," + size * 8 + "," + size * 2,
"F4448444": size * 15 + "," + size * 4 + "," + size * 4 + "," + size * 4 + "," + size * 8 + "," + size * 4 + "," + size * 4 + "," + size * 4,
"224282F2": size * 2 + "," + size * 2 + "," + size * 4 + "," + size * 2 + "," + size * 8 + "," + size * 2 + "," + size * 16 + "," + size * 2,
"F1": size * 16 + "," + size
};
}
if (lt in o){
return o[lt];
} else{ // manually specified line types
str = lt.split("");
strnum = str.map(function (d) {
return size * parseInt(d, 16);
});
return strnum;
}
};
var isArray = function(o) {
return Object.prototype.toString.call(o) === '[object Array]';
};
// create a dummy element, apply the appropriate classes,
// and then measure the element
// Inspired from http://jsfiddle.net/uzddx/2/
var measureText = function(pText, pFontSize, pAngle, pStyle) {
if (!pText || pText.length === 0) return {height: 0, width: 0};
if (pAngle === null || isNaN(pAngle)) pAngle = 0;
var container = element.append('svg');
// do we need to set the class so that styling is applied?
//.attr('class', classname);
container.append('text')
.attr({x: -1000, y: -1000})
.attr("transform", "rotate(" + pAngle + ")")
.attr("style", pStyle)
.attr("font-size", pFontSize)
.text(pText);
var bbox = container.node().getBBox();
container.remove();
return {height: bbox.height, width: bbox.width};
};
var nest_by_group = d3.nest().key(function(d){ return d.group; });
var dirs = json_file.split("/");
dirs.pop(); //if a directory path exists, remove the JSON file from dirs
var element = d3.select(to_select);
this.element = element;
var viz_id = element.attr("id");
var Widgets = {};
this.Widgets = Widgets;
var Selectors = {};
this.Selectors = Selectors;
var Plots = {};
this.Plots = Plots;
var Geoms = {};
this.Geoms = Geoms;
// SVGs must be stored separately from Geoms since they are
// initialized first, with the Plots.
var SVGs = {};
this.SVGs = SVGs;
var Animation = {};
this.Animation = Animation;
var all_geom_names = {};
this.all_geom_names = all_geom_names;
//creating an array to contain the selectize widgets
var selectized_array = [];
var data_object_geoms = {
"line":true,
"path":true,
"ribbon":true,
"polygon":true
};
var css = document.createElement('style');
css.type = 'text/css';
var styles = [".axis path{fill: none;stroke: black;shape-rendering: crispEdges;}",
".axis line{fill: none;stroke: black;shape-rendering: crispEdges;}",
".axis text {font-family: sans-serif;font-size: 11px;}"];
var add_geom = function (g_name, g_info) {
// Determine what style to use to show the selection for this
// geom. This is a hack and should be removed when we implement
// the selected.color, selected.size, etc aesthetics.
if(g_info.aes.hasOwnProperty("fill") &&
g_info.geom == "rect" &&
g_info.aes.hasOwnProperty("clickSelects")){
g_info.select_style = "stroke";
}else{
g_info.select_style = "opacity";
}
// Determine if data will be an object or an array.
if(g_info.geom in data_object_geoms){
g_info.data_is_object = true;
}else{
g_info.data_is_object = false;
}
// Add a row to the loading table.
g_info.tr = Widgets["loading"].append("tr");
g_info.tr.append("td").text(g_name);
g_info.tr.append("td").attr("class", "chunk");
g_info.tr.append("td").attr("class", "downloaded").text(0);
g_info.tr.append("td").text(g_info.total);
g_info.tr.append("td").attr("class", "status").text("initialized");
// load chunk tsv
g_info.data = {};
g_info.download_status = {};
Geoms[g_name] = g_info;
// Determine whether common chunk tsv exists
// If yes, load it
if(g_info.hasOwnProperty("columns") && g_info.columns.common){
var common_tsv = get_tsv(g_info, "_common");
g_info.common_tsv = common_tsv;
var common_path = getTSVpath(common_tsv);
d3.tsv(common_path, function (error, response) {
var converted = convert_R_types(response, g_info.types);
g_info.data[common_tsv] = nest_by_group.map(converted);
});
} else {
g_info.common_tsv = null;
}
// Save this geom and load it!
update_geom(g_name, null);
};
var add_plot = function (p_name, p_info) {
// Each plot may have one or more legends. To make space for the
// legends, we put each plot in a table with one row and two
// columns: tdLeft and tdRight.
var plot_table = element.append("table").style("display", "inline-block");
var plot_tr = plot_table.append("tr");
var tdLeft = plot_tr.append("td");
var tdRight = plot_tr.append("td").attr("class", p_name+"_legend");
if(viz_id === null){
p_info.plot_id = p_name;
}else{
p_info.plot_id = viz_id + "_" + p_name;
}
var svg = tdLeft.append("svg")
.attr("id", p_info.plot_id)
.attr("height", p_info.options.height)
.attr("width", p_info.options.width);
// divvy up width/height based on the panel layout
var nrows = Math.max.apply(null, p_info.layout.ROW);
var ncols = Math.max.apply(null, p_info.layout.COL);
var panel_names = p_info.layout.PANEL;
var npanels = Math.max.apply(null, panel_names);
// Note axis names are "shared" across panels (just like the title)
var xtitlepadding = 5 + measureText(p_info["xtitle"], 11).height;
var ytitlepadding = 5 + measureText(p_info["ytitle"], 11).height;
// 'margins' are fixed across panels and do not
// include title/axis/label padding (since these are not
// fixed across panels). They do, however, account for
// spacing between panels
var text_height_pixels = measureText("foo", 11).height;
var margin = {
left: 0,
right: text_height_pixels * p_info.panel_margin_lines,
top: text_height_pixels * p_info.panel_margin_lines,
bottom: 0
};
var plotdim = {
width: 0,
height: 0,
xstart: 0,
xend: 0,
ystart: 0,
yend: 0,
graph: {
width: 0,
height: 0
},
margin: margin,
xlab: {
x: 0,
y: 0
},
ylab: {
x: 0,
y: 0
},
title: {
x: 0,
y: 0
}
};
// Draw the title
var titlepadding = measureText(p_info.title, 20).height + 10;
// why are we giving the title padding if it is undefined?
if (p_info.title === undefined) titlepadding = 0;
plotdim.title.x = p_info.options.width / 2;
plotdim.title.y = titlepadding / 2;
svg.append("text")
.text(p_info.title)
.attr("class", "plottitle")
.attr("font-family", "sans-serif")
.attr("font-size", "20px")
.attr("transform", "translate(" + plotdim.title.x + "," +
plotdim.title.y + ")")
.style("text-anchor", "middle");
// grab max text size over axis labels and facet strip labels
var axispaddingy = 5;
if(p_info.hasOwnProperty("ylabs") && p_info.ylabs.length){
axispaddingy += Math.max.apply(null, p_info.ylabs.map(function(entry){
// + 5 to give a little extra space to avoid bad axis labels
// in shiny.
return measureText(entry, 11).width + 5;
}));
}
var axispaddingx = 10 + 20;
if(p_info.hasOwnProperty("xlabs") && p_info.xlabs.length){
// TODO: throw warning if text height is large portion of plot height?
axispaddingx += Math.max.apply(null, p_info.xlabs.map(function(entry){
return measureText(entry, 11, p_info.xangle).height;
}));
// TODO: carefully calculating this gets complicated with rotating xlabs
//margin.right += 5;
}
plotdim.margin = margin;
var strip_heights = p_info.strips.top.map(function(entry){
return measureText(entry, 11).height;
});
var strip_widths = p_info.strips.right.map(function(entry){
return measureText(entry, 11).height;
});
// compute the number of x/y axes, max strip height per row, and
// max strip width per columns, for calculating height/width of
// graphing region.
var row_strip_heights = [];
var col_strip_widths = [];
var n_xaxes = 0;
var n_yaxes = 0;
var current_row, current_col;
for (var layout_i = 0; layout_i < npanels; layout_i++) {
current_row = p_info.layout.ROW[layout_i] - 1;
current_col = p_info.layout.COL[layout_i] - 1;
if(row_strip_heights[current_row] === undefined){
row_strip_heights[current_row] = [];
}
if(col_strip_widths[current_col] === undefined){
col_strip_widths[current_col] = [];
}
row_strip_heights[current_row].push(strip_heights[layout_i]);
col_strip_widths[current_col].push(strip_widths[layout_i]);
if (p_info.layout.COL[layout_i] == 1) {
n_xaxes += p_info.layout.AXIS_X[layout_i];
}
if (p_info.layout.ROW[layout_i] == 1) {
n_yaxes += p_info.layout.AXIS_Y[layout_i];
}
}
function cumsum_array(array_of_arrays){
var cumsum = [], max_value, cumsum_value = 0;
for(var i=0; i<array_of_arrays.length; i++){
cumsum_value += d3.max(array_of_arrays[i]);
cumsum[i] = cumsum_value;
}
return cumsum;
}
var cum_height_per_row = cumsum_array(row_strip_heights);
var cum_width_per_col = cumsum_array(col_strip_widths);
var strip_width = d3.max(cum_width_per_col);
var strip_height = d3.max(cum_height_per_row);
// the *entire graph* height/width
var graph_width = p_info.options.width -
ncols * (margin.left + margin.right) -
strip_width -
n_yaxes * axispaddingy - ytitlepadding;
var graph_height = p_info.options.height -
nrows * (margin.top + margin.bottom) -
strip_height -
titlepadding - n_xaxes * axispaddingx - xtitlepadding;
// Impose the pixelated aspect ratio of the graph upon the width/height
// proportions calculated by the compiler. This has to be done on the
// rendering side since the precomputed proportions apply to the *graph*
// and the graph size depends upon results of measureText()
if (p_info.layout.coord_fixed[0]) {
var aspect = (graph_height / nrows) / (graph_width / ncols);
} else {
var aspect = 1;
}
var wp = p_info.layout.width_proportion.map(function(x){
return x * Math.min(1, aspect);
})
var hp = p_info.layout.height_proportion.map(function(x){
return x * Math.min(1, 1/aspect);
})
// track the proportion of the graph that should be 'blank'
// this is mainly used to implement coord_fixed()
var graph_height_blank = 1;
var graph_width_blank = 1;
for (var layout_i = 0; layout_i < npanels; layout_i++) {
if (p_info.layout.COL[layout_i] == 1) graph_height_blank -= hp[layout_i];
if (p_info.layout.ROW[layout_i] == 1) graph_width_blank -= wp[layout_i];
}
// cumulative portion of the graph used
var graph_width_cum = (graph_width_blank / 2) * graph_width;
var graph_height_cum = (graph_height_blank / 2) * graph_height;
// Bind plot data to this plot's SVG element
svg.plot = p_info;
Plots[p_name] = p_info;
p_info.geoms.forEach(function (g_name) {
var layer_g_element = svg.append("g").attr("class", g_name);
panel_names.forEach(function(PANEL){
layer_g_element.append("g").attr("class", "PANEL" + PANEL);
});
SVGs[g_name] = svg;
});
// create a grouping for strip labels (even if there are none).
var topStrip = svg.append("g")
.attr("class", "topStrip")
;
var rightStrip = svg.append("g")
.attr("class", "rightStrip")
;
// this will hold x/y scales for each panel
// eventually we inject this into Plots[p_name]
var scales = {};
n_xaxes = 0;
n_yaxes = 0;
// Draw a plot outline for every panel
for (var layout_i = 0; layout_i < npanels; layout_i++) {
var panel_i = layout_i + 1;
var axis = p_info["axis" + panel_i];
//forces values to be in an array
var xaxisvals = [];
var xaxislabs = [];
var yaxisvals = [];
var yaxislabs = [];
var outbreaks, outlabs;
//function to write labels and breaks to their respective arrays
var axislabs = function(breaks, labs, axis){
if(axis=="x"){
outbreaks = xaxisvals;
outlabs = xaxislabs;
} else {
outbreaks = yaxisvals;
outlabs = yaxislabs;
} // set appropriate variable names
if (isArray(breaks)) {
breaks.forEach(function (d) {
outbreaks.push(d);
})
} else {
//breaks can be an object!
for (key in breaks) {
outbreaks.push(breaks[key]);
}
}
if (labs){
labs.forEach(function (d) {
outlabs.push(d);
// push each label provided into the array
});
} else {
outbreaks.forEach(function (d) {
outlabs.push("");
// push a blank string to the array for each axis tick
// if the specified label is null
});
}
};
if(axis["xticks"]){
axislabs(axis.x, axis.xlab, "x");
}
if(axis["yticks"]){
axislabs(axis.y, axis.ylab, "y");
}
// compute the current panel height/width
plotdim.graph.height = graph_height * hp[layout_i];
plotdim.graph.width = graph_width * wp[layout_i];
current_row = p_info.layout.ROW[layout_i];
current_col = p_info.layout.COL[layout_i];
var draw_x = p_info.layout.AXIS_X[layout_i];
var draw_y = p_info.layout.AXIS_Y[layout_i];
// panels are drawn using a "typewriter approach" (left to right
// & top to bottom) if the carriage is returned (ie, there is a
// new row), change some parameters:
var new_row = current_col <= p_info.layout.COL[layout_i - 1]
if (new_row) {
n_yaxes = 0;
graph_width_cum = (graph_width_blank / 2) * graph_width;
graph_height_cum += graph_height * hp[layout_i-1];
}
n_xaxes += draw_x;
n_yaxes += draw_y;
// calculate panel specific locations to be used in placing
// axes, labels, etc.
plotdim.xstart = current_col * plotdim.margin.left +
(current_col - 1) * plotdim.margin.right +
graph_width_cum + n_yaxes * axispaddingy + ytitlepadding;
// room for right strips should be distributed evenly across
// panels to preserve aspect ratio
plotdim.xend = plotdim.xstart + plotdim.graph.width;
// total height of strips drawn thus far
var strip_h = cum_height_per_row[current_row-1];
plotdim.ystart = current_row * plotdim.margin.top +
(current_row - 1) * plotdim.margin.bottom +
graph_height_cum + titlepadding + strip_h;
// room for xaxis title should be distributed evenly across
// panels to preserve aspect ratio
plotdim.yend = plotdim.ystart + plotdim.graph.height;
// always add to the width (note it may have been reset earlier)
graph_width_cum = graph_width_cum + plotdim.graph.width;
// get the x position of the y-axis title (and add padding) when
// rendering the first plot.
if (layout_i === 0) {
var ytitle_x = (plotdim.xstart - axispaddingy - ytitlepadding / 2);
var xtitle_left = plotdim.xstart;
var ytitle_top = plotdim.ystart;
}
// get the y position of the x-axis title when drawing the last
// panel.
if (layout_i === (npanels - 1)) {
var xtitle_y = (plotdim.yend + axispaddingx);
var xtitle_right = plotdim.xend;
var ytitle_bottom = plotdim.yend;
}
var draw_strip = function(strip, side) {
if (strip == "") {
return(null);
}
var x, y, rotate, stripElement;
if (side == "right") {
x = plotdim.xend + strip_widths[layout_i] / 2 - 2;
y = (plotdim.ystart + plotdim.yend) / 2;
rotate = 90;
stripElement = rightStrip;
}else{ //top
x = (plotdim.xstart + plotdim.xend) / 2;
y = plotdim.ystart - strip_heights[layout_i] / 2 + 3;
rotate = 0;
stripElement = topStrip;
}
var trans_text = "translate(" + x + "," + y + ")";
var rot_text = "rotate(" + rotate + ")";
stripElement
.selectAll("." + side + "Strips")
.data(strip)
.enter()
.append("text")
.style("text-anchor", "middle")
.style("font-size", "11px")
.text(function(d) { return d; })
// NOTE: there could be multiple strips per panel
// TODO: is there a better way to manage spacing?
.attr("transform", trans_text + rot_text)
;
}
draw_strip([p_info.strips.top[layout_i]], "top");
draw_strip([p_info.strips.right[layout_i]], "right");
// for each of the x and y axes, there is a "real" and fake
// version. The real version will be used for plotting the
// data, and the fake version is just for the display of the
// axes.
scales[panel_i] = {};
scales[panel_i].x = d3.scale.linear()
.domain(axis.xrange)
.range([plotdim.xstart, plotdim.xend]);
scales[panel_i].y = d3.scale.linear()
.domain(axis.yrange)
.range([plotdim.yend, plotdim.ystart]);
if(draw_x){
var xaxis = d3.svg.axis()
.scale(scales[panel_i].x)
.tickValues(xaxisvals)
.tickFormat(function (d) {
return xaxislabs[xaxisvals.indexOf(d)].toString();
})
.orient("bottom")
;
var axis_panel = "xaxis" + "_" + panel_i;
var xaxis_g = svg.append("g")
.attr("class", "xaxis axis " + axis_panel)
.attr("transform", "translate(0," + plotdim.yend + ")")
.call(xaxis);
if(axis["xline"] == false){
var axis_path = xaxis_g.select("path.domain");
axis_path.remove();
}
xaxis_g.selectAll("text")
.style("text-anchor", p_info.xanchor)
.attr("transform", "rotate(" + p_info.xangle + " 0 9)");
}
if(draw_y){
var yaxis = d3.svg.axis()
.scale(scales[panel_i].y)
.tickValues(yaxisvals)
.tickFormat(function (d) {
return yaxislabs[yaxisvals.indexOf(d)].toString();
})
.orient("left");
var axis_panel = "yaxis" + "_" + panel_i;
var yaxis_g = svg.append("g")
.attr("class", "yaxis axis " + axis_panel)
.attr("transform", "translate(" + (plotdim.xstart) + ",0)")
.call(yaxis);
if(axis["yline"] == false){
var axis_path = yaxis_g.select("path.domain");
axis_path.remove();
}
}
if(!axis.xline) {
styles.push("#"+p_name+" #xaxis"+" path{stroke:none;}");
}
if(!axis.xticks) {
styles.push("#"+p_name+" #xaxis .tick"+" line{stroke:none;}");
}
if(!axis.yline) {
styles.push("#"+p_name+" #yaxis"+" path{stroke:none;}");
}
if(!axis.yticks) {
styles.push("#"+p_name+" #yaxis .tick"+" line{stroke:none;}");
}
// creating g element for background, grid lines, and border
// uses insert to draw it right before plot title
var background = svg.insert("g", ".plottitle")
.attr("class", "background bgr" + panel_i);
// drawing background
if(Object.keys(p_info.panel_background).length > 1) {
background.append("rect")
.attr("x", plotdim.xstart)
.attr("y", plotdim.ystart)
.attr("width", plotdim.xend - plotdim.xstart)
.attr("height", plotdim.yend - plotdim.ystart)
.attr("class", "background_rect")
.style("fill", p_info.panel_background.fill)
.style("stroke", p_info.panel_background.colour)
.style("stroke-dasharray", function() {
return linetypesize2dasharray(p_info.panel_background.linetype,
p_info.panel_background.size);
});
}
// drawing the grid lines
["grid_minor", "grid_major"].forEach(function(grid_class){
var grid_background = p_info[grid_class];
// if grid lines are defined
if(grid_background.hasOwnProperty("size")) {
var grid = background.append("g")
.attr("class", grid_class);
["x","y"].forEach(function(scale_var){
var const_var;
if(scale_var == "x"){
const_var = "y";
}else{
const_var = "x";
}
grid.append("g")
.attr("class", scale_var)
.selectAll("line")
.data(grid_background.loc[scale_var][layout_i])
.enter()
.append("line")
.attr(const_var + "1", plotdim[const_var + "start"])
.attr(const_var + "2", plotdim[const_var + "end"])
.attr(scale_var + "1", function(d) {
return scales[panel_i][scale_var](d);
})
.attr(scale_var + "2", function(d) {
return scales[panel_i][scale_var](d);
})
.style("stroke", grid_background.colour)
.style("stroke-linecap", grid_background.lineend)
.style("stroke-width", grid_background.size)
.style("stroke-dasharray", linetypesize2dasharray(
grid_background.linetype, grid_background.size))
;
});
}
});
// drawing border
// uses insert to draw it right before the #plottitle
if(Object.keys(p_info.panel_border).length > 1) {
background.append("rect")
.attr("x", plotdim.xstart)
.attr("y", plotdim.ystart)
.attr("width", plotdim.xend - plotdim.xstart)
.attr("height", plotdim.yend - plotdim.ystart)
.attr("class", "border_rect")
.style("fill", p_info.panel_border.fill)
.style("stroke", p_info.panel_border.colour)
.style("stroke-dasharray", function() {
return linetypesize2dasharray(p_info.panel_border.linetype,
p_info.panel_border.size);
});
}
} //end of for(layout_i
// After drawing all backgrounds, we can draw the axis labels.
if(p_info["ytitle"]){
svg.append("text")
.text(p_info["ytitle"])
.attr("class", "ytitle")
.style("text-anchor", "middle")
.style("font-size", "11px")
.attr("transform", "translate(" +
ytitle_x +
"," +
(ytitle_top + ytitle_bottom)/2 +
")rotate(270)")
;
}
if(p_info["xtitle"]){
svg.append("text")
.text(p_info["xtitle"])
.attr("class", "xtitle")
.style("text-anchor", "middle")
.style("font-size", "11px")
.attr("transform", "translate(" +
(xtitle_left + xtitle_right)/2 +
"," +
xtitle_y +
")")
;
}
Plots[p_name].scales = scales;
}; //end of add_plot()
function update_legend_opacity(v_name){
var s_info = Selectors[v_name];
s_info.legend_tds.style("opacity", s_info.legend_update_fun);
}
var add_selector = function (s_name, s_info) {
Selectors[s_name] = s_info;
if(s_info.type == "multiple"){
if(!isArray(s_info.selected)){
s_info.selected = [s_info.selected];
}
// legend_update_fun is evaluated in the context of the
// td.legend_entry_label.
s_info.legend_update_fun = function(d){
var i_value = s_info.selected.indexOf(this.textContent);
if(i_value == -1){
return 0.5;
}else{
return 1;
}
}
}else{
s_info.legend_update_fun = function(d){
if(this.textContent == s_info.selected){
return 1;
}else{
return 0.5;
}
}
}
s_info.legend_tds =
element.selectAll("tr."+legend_class_name(s_name)+" td.legend_entry_label")
;
update_legend_opacity(s_name);
}; //end of add_selector()
function get_tsv(g_info, chunk_id){
return g_info.classed + "_chunk" + chunk_id + ".tsv";
}
function getTSVpath(tsv_name){
return dirs.concat(tsv_name).join("/");
}
/**
* copy common chunk tsv to varied chunk tsv, returning an array of
* objects.
*/
function copy_chunk(g_info, varied_chunk) {
var varied_by_group = nest_by_group.map(varied_chunk);
var common_by_group = g_info.data[g_info.common_tsv];
var new_varied_chunk = [];
for(group_id in varied_by_group){
var varied_one_group = varied_by_group[group_id];
var common_one_group = common_by_group[group_id];
var common_i = 0;
for(var varied_i=0; varied_i < varied_one_group.length; varied_i++){
// there are two cases: each group of varied data is of length
// 1, or of length of the common data.
if(common_one_group.length == varied_one_group.length){
common_i = varied_i;
}
var varied_obj = varied_one_group[varied_i];
var common_obj = common_one_group[common_i];
for(col in common_obj){
if(col != "group"){
varied_obj[col] = common_obj[col];
}
}
new_varied_chunk.push(varied_obj);
}
}
return new_varied_chunk;
}
// update_geom is called from add_geom and update_selector. It
// downloads data if necessary, and then calls draw_geom.
var update_geom = function (g_name, selector_name) {
var g_info = Geoms[g_name];
// First apply chunk_order selector variables.
var chunk_id = g_info.chunks;
g_info.chunk_order.forEach(function (v_name) {
if(chunk_id == null){
return; // no data in a higher up chunk var.
}
var value = Selectors[v_name].selected;
if(chunk_id.hasOwnProperty(value)){
chunk_id = chunk_id[value];
}else{
chunk_id = null; // no data to show in this subset.
}
});
if(chunk_id == null){
draw_panels(g_info, [], selector_name); //draw nothing.
return;
}
var tsv_name = get_tsv(g_info, chunk_id);
// get the data if it has not yet been downloaded.
g_info.tr.select("td.chunk").text(tsv_name);
if(g_info.data.hasOwnProperty(tsv_name)){
draw_panels(g_info, g_info.data[tsv_name], selector_name);
}else{
g_info.tr.select("td.status").text("downloading");
var svg = SVGs[g_name];
var loading = svg.append("text")
.attr("class", "loading"+tsv_name)
.text("Downloading "+tsv_name+"...")
.attr("font-size", 9)
//.attr("x", svg.attr("width")/2)
.attr("y", 10)
.style("fill", "red");
download_chunk(g_info, tsv_name, function(chunk){
loading.remove();
draw_panels(g_info, chunk, selector_name);
});
}
};
var draw_panels = function(g_info, chunk, selector_name) {
// derive the plot name from the geometry name
var g_names = g_info.classed.split("_");
var p_name = g_names[g_names.length - 1];
var panels = Plots[p_name].layout.PANEL;
panels.forEach(function(panel) {
draw_geom(g_info, chunk, selector_name, panel);
});
};
function download_next(g_name){
var g_info = Geoms[g_name];
var selector_value = Animation.sequence[g_info.seq_i];
var chunk_id = g_info.chunks[selector_value];
var tsv_name = get_tsv(g_info, chunk_id);
g_info.seq_count += 1;
if(Animation.sequence.length == g_info.seq_count){
Animation.done_geoms[g_name] = 1;
return;
}
g_info.seq_i += 1;
if(g_info.seq_i == Animation.sequence.length){
g_info.seq_i = 0;
}
if(typeof(chunk_id) == "string"){
download_chunk(g_info, tsv_name, function(chunk){
download_next(g_name);
})
}else{
download_next(g_name);
}
}
// download_chunk is called from update_geom and download_next.
function download_chunk(g_info, tsv_name, funAfter){
if(g_info.download_status.hasOwnProperty(tsv_name)){
var chunk;
if(g_info.data_is_object){
chunk = {};
}else{
chunk = [];
}
funAfter(chunk);
return; // do not download twice.
}
g_info.download_status[tsv_name] = "downloading";
// prefix tsv file with appropriate path
var tsv_file = getTSVpath(tsv_name);
d3.tsv(tsv_file, function (error, response) {
// First convert to correct types.
g_info.download_status[tsv_name] = "processing";
response = convert_R_types(response, g_info.types);
wait_until_then(500, function(){
if(g_info.common_tsv) {
return g_info.data.hasOwnProperty(g_info.common_tsv);
}else{
return true;
}
}, function(){
if(g_info.common_tsv) {
// copy data from common tsv to varied tsv
response = copy_chunk(g_info, response);
}
var nest = d3.nest();
g_info.nest_order.forEach(function (v_name) {
nest.key(function (d) {
return d[v_name];
});
});
var chunk = nest.map(response);
g_info.data[tsv_name] = chunk;
g_info.tr.select("td.downloaded").text(d3.keys(g_info.data).length);
g_info.download_status[tsv_name] = "saved";
funAfter(chunk);
});
});
}//download_chunk.
// update_geom is responsible for obtaining a chunk of downloaded
// data, and then calling draw_geom to actually draw it.
var draw_geom = function(g_info, chunk, selector_name, PANEL){
g_info.tr.select("td.status").text("displayed");
var svg = SVGs[g_info.classed];
// derive the plot name from the geometry name
var g_names = g_info.classed.split("_");
var p_name = g_names[g_names.length - 1];
var scales = Plots[p_name].scales[PANEL];
var selected_arrays = [ [] ]; //double array necessary.
g_info.subset_order.forEach(function (aes_name) {
var selected, values;
var new_arrays = [];
if(0 < aes_name.indexOf(".variable")){
selected_arrays.forEach(function(old_array){
var some_data = chunk;
old_array.forEach(function(value){
if(some_data.hasOwnProperty(value)) {
some_data = some_data[value];
} else {
some_data = {};
}
})
values = d3.keys(some_data);
values.forEach(function(s_name){
var selected = Selectors[s_name].selected;
var new_array = old_array.concat(s_name).concat(selected);
new_arrays.push(new_array);
})
})
}else{//not .variable aes:
if(aes_name == "PANEL"){
selected = PANEL;
}else{
var s_name = g_info.aes[aes_name];
selected = Selectors[s_name].selected;
}
if(isArray(selected)){
values = selected; //multiple selection.
}else{
values = [selected]; //single selection.
}
values.forEach(function(value){
selected_arrays.forEach(function(old_array){
var new_array = old_array.concat(value);
new_arrays.push(new_array);
})
})
}
selected_arrays = new_arrays;
});
// data can be either an array[] if it will be directly involved
// in a data-bind, or an object{} if it will be involved in a
// data-bind by group (e.g. geom_line).
var data;
if(g_info.data_is_object){
data = {};
}else{
data = [];
}
selected_arrays.forEach(function(value_array){
var some_data = chunk;
value_array.forEach(function(value){
if (some_data.hasOwnProperty(value)) {
some_data = some_data[value];
} else {
if(g_info.data_is_object){
some_data = {};
}else{
some_data = [];
}
}
});
if(g_info.data_is_object){
if(isArray(some_data) && some_data.length){
data["0"] = some_data;
}else{
for(k in some_data){
data[k] = some_data[k];
}
}
}else{//some_data is an array.
data = data.concat(some_data);
}
});
var aes = g_info.aes;
var toXY = function (xy, a) {
return function (d) {
return scales[xy](d[a]);
};
};
var layer_g_element = svg.select("g." + g_info.classed);
var panel_g_element = layer_g_element.select("g.PANEL" + PANEL);
var elements = panel_g_element.selectAll(".geom");
// TODO: standardize this code across aes/styles.
var base_opacity = 1;
if (g_info.params.alpha) {
base_opacity = g_info.params.alpha;
}
//alert(g_info.classed+" "+base_opacity);
var get_alpha = function (d) {
var a;
if (aes.hasOwnProperty("alpha") && d.hasOwnProperty("alpha")) {
a = d["alpha"];
} else {
a = base_opacity;
}
return a;
};
var size = 2;
if(g_info.geom == "text"){
size = 12;
}
if (g_info.params.hasOwnProperty("size")) {
size = g_info.params.size;
}
var get_size = function (d) {
if (aes.hasOwnProperty("size") && d.hasOwnProperty("size")) {
return d["size"];
}
return size;
};
// stroke_width for geom_point
var stroke_width = 1; // by default ggplot2 has 0.5, animint has 1
if (g_info.params.hasOwnProperty("stroke")) {
stroke_width = g_info.params.stroke;
}
var get_stroke_width = function (d) {
if (aes.hasOwnProperty("stroke") && d.hasOwnProperty("stroke")) {
return d["stroke"];
}
return stroke_width;
}
var linetype = "solid";
if (g_info.params.linetype) {
linetype = g_info.params.linetype;
}
var get_dasharray = function (d) {
var lt = linetype;
if (aes.hasOwnProperty("linetype") && d.hasOwnProperty("linetype")) {
lt = d["linetype"];
}
return linetypesize2dasharray(lt, get_size(d));
};
var colour = "black";
var fill = "black";
var get_colour = function (d) {
if (d.hasOwnProperty("colour")) {
return d["colour"]
}
return colour;
};
var get_fill = function (d) {
if (d.hasOwnProperty("fill")) {
return d["fill"];
}
return fill;
};
if (g_info.params.colour) {
colour = g_info.params.colour;
}
if (g_info.params.fill) {
fill = g_info.params.fill;
}else if(g_info.params.colour){
fill = g_info.params.colour;
}
// For aes(hjust) the compiler should make an "anchor" column.
var text_anchor = "middle";
if(g_info.params.hasOwnProperty("anchor")){
text_anchor = g_info.params["anchor"];
}
var get_text_anchor;
if(g_info.aes.hasOwnProperty("hjust")) {
get_text_anchor = function(d){
return d["anchor"];
}
}else{
get_text_anchor = function(d){
return text_anchor;
}
}
var eActions, eAppend, linkActions;
var key_fun = null;
var id_fun = function(d){
return d.id;
};
if(g_info.aes.hasOwnProperty("key")){
key_fun = function(d){
return d.key;
};
}
if(g_info.data_is_object) {
// Lines, paths, polygons, and ribbons are a bit special. For
// every unique value of the group variable, we take the
// corresponding data rows and make 1 path. The tricky part is
// that to use d3 I do a data-bind of some "fake" data which are
// just group ids, which is the kv variable in the code below
// // case of only 1 line and no groups.
// if(!aes.hasOwnProperty("group")){
// kv = [{"key":0,"value":0}];
// data = {0:data};
// }else{
// // we need to use a path for each group.
// var kv = d3.entries(d3.keys(data));
// kv = kv.map(function(d){
// d[aes.group] = d.value;
// return d;
// });
// }
// For an example consider breakpointError$error which is
// defined using this R code
// geom_line(aes(segments, error, group=bases.per.probe,
// clickSelects=bases.per.probe), data=only.error, lwd=4)
// Inside update_geom the variables take the following values
// (pseudo-Javascript code)
// var kv = [{"key":"0","value":"133","bases.per.probe":"133"},
// {"key":"1","value":"2667","bases.per.probe":"2667"}];
// var data = {"133":[array of 20 points used to draw the line for group 133],
// "2667":[array of 20 points used to draw the line for group 2667]};
// I do elements.data(kv) so that when I set the d attribute of
// each path, I need to select the correct group before
// returning anything.
// e.attr("d",function(group_info){
// var one_group = data[group_info.value];
// return lineThing(one_group);
// })
// To make color work I think you just have to select the group
// and take the color of the first element, e.g.
// .style("stroke",function(group_info){
// var one_group = data[group_info.value];
// var one_row = one_group[0];
// return get_color(one_row);
// }
// In order to get d3 lines to play nice, bind fake "data" (group
// id's) -- the kv variable. Then each separate object is plotted
// using path (case of only 1 thing and no groups).
// we need to use a path for each group.
var keyed_data = {}, one_group, group_id, k;
for(group_id in data){
one_group = data[group_id];
one_row = one_group[0];
if(one_row.hasOwnProperty("key")){
k = one_row.key;
}else{
k = group_id;
}
keyed_data[k] = one_group;
}
var kv_array = d3.entries(d3.keys(keyed_data));
var kv = kv_array.map(function (d) {
//d[aes.group] = d.value;
// Need to store the clickSelects value that will
// be passed to the selector when we click on this
// item.
d.clickSelects = keyed_data[d.value][0].clickSelects;
return d;
});
// line, path, and polygon use d3.svg.line(),
// ribbon uses d3.svg.area()
// we have to define lineThing accordingly.
if (g_info.geom == "ribbon") {
var lineThing = d3.svg.area()
.x(toXY("x", "x"))
.y(toXY("y", "ymax"))
.y0(toXY("y", "ymin"));
} else {
var lineThing = d3.svg.line()
.x(toXY("x", "x"))
.y(toXY("y", "y"));
}
// select the correct group before returning anything.
key_fun = function(group_info){
return group_info.value;
};
id_fun = function(group_info){
var one_group = keyed_data[group_info.value];
var one_row = one_group[0];
// take key from first value in the group.
return one_row.id;
};
elements = elements.data(kv, key_fun);
linkActions = function(a_elements){
a_elements
.attr("xlink:href", function(group_info){
var one_group = keyed_data[group_info.value];
var one_row = one_group[0];
return one_row.href;
})
.attr("target", "_blank")
.attr("class", "geom")
;
};
eActions = function (e) {
e.attr("d", function (d) {
var one_group = keyed_data[d.value];
// filter NaN since they make the whole line disappear!
var no_na = one_group.filter(function(d){
if(g_info.geom == "ribbon"){
return !isNaN(d.x) && !isNaN(d.ymin) && !isNaN(d.ymax);
}else{
return !isNaN(d.x) && !isNaN(d.y);
}
});
return lineThing(no_na);
})
.style("fill", function (group_info) {
if (g_info.geom == "line" || g_info.geom == "path") {
return "none";
}
var one_group = keyed_data[group_info.value];
var one_row = one_group[0];
// take color for first value in the group
return get_fill(one_row);
})
.style("stroke-width", function (group_info) {
var one_group = keyed_data[group_info.value];
var one_row = one_group[0];
// take size for first value in the group
return get_size(one_row);
})
.style("stroke", function (group_info) {
var one_group = keyed_data[group_info.value];
var one_row = one_group[0];
// take color for first value in the group
return get_colour(one_row);
})
.style("stroke-dasharray", function (group_info) {
var one_group = keyed_data[group_info.value];
var one_row = one_group[0];
// take linetype for first value in the group
return get_dasharray(one_row);
})
.style("stroke-width", function (group_info) {
var one_group = keyed_data[group_info.value];
var one_row = one_group[0];
// take line size for first value in the group
return get_size(one_row);
});
};
eAppend = "path";
}else{
linkActions = function(a_elements){
a_elements.attr("xlink:href", function(d){ return d.href; })
.attr("target", "_blank")
.attr("class", "geom");
};
}
if (g_info.geom == "segment") {
elements = elements.data(data, key_fun);
eActions = function (e) {
e.attr("x1", function (d) {
return scales.x(d["x"]);
})
.attr("x2", function (d) {
return scales.x(d["xend"]);
})
.attr("y1", function (d) {
return scales.y(d["y"]);
})
.attr("y2", function (d) {
return scales.y(d["yend"]);
})
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
};
eAppend = "line";
}
if (g_info.geom == "linerange") {
elements = elements.data(data, key_fun);
eActions = function (e) {
e.attr("x1", function (d) {
return scales.x(d["x"]);
})
.attr("x2", function (d) {
return scales.x(d["x"]);
})
.attr("y1", function (d) {
return scales.y(d["ymax"]);
})
.attr("y2", function (d) {
return scales.y(d["ymin"]);
})
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
};
eAppend = "line";
}
if (g_info.geom == "vline") {
elements = elements.data(data, key_fun);
eActions = function (e) {
e.attr("x1", toXY("x", "xintercept"))
.attr("x2", toXY("x", "xintercept"))
.attr("y1", scales.y.range()[0])
.attr("y2", scales.y.range()[1])
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
};
eAppend = "line";
}
if (g_info.geom == "hline") {
// pretty much a copy of geom_vline with obvious modifications
elements = elements.data(data, key_fun);
eActions = function (e) {
e.attr("y1", toXY("y", "yintercept"))
.attr("y2", toXY("y", "yintercept"))
.attr("x1", scales.x.range()[0])
.attr("x2", scales.x.range()[1])
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
};
eAppend = "line";
}
if (g_info.geom == "text") {
elements = elements.data(data, key_fun);
// TODO: how to support vjust? firefox doensn't support
// baseline-shift... use paths?
// http://commons.oreilly.com/wiki/index.php/SVG_Essentials/Text
eActions = function (e) {
e.attr("x", toXY("x", "x"))
.attr("y", toXY("y", "y"))
.style("fill", get_colour)
.attr("font-size", get_size)
.style("text-anchor", get_text_anchor)
.text(function (d) {
return d.label;
});
};
eAppend = "text";
}
if (g_info.geom == "point") {
elements = elements.data(data, key_fun);
eActions = function (e) {
e.attr("cx", toXY("x", "x"))
.attr("cy", toXY("y", "y"))
.attr("r", get_size)
.style("fill", get_fill)
.style("stroke", get_colour)
.style("stroke-width", get_stroke_width);
};
eAppend = "circle";
}
if (g_info.geom == "tallrect") {
elements = elements.data(data, key_fun);
eActions = function (e) {
e.attr("x", toXY("x", "xmin"))
.attr("width", function (d) {
return scales.x(d["xmax"]) - scales.x(d["xmin"]);
})
.attr("y", scales.y.range()[1])
.attr("height", scales.y.range()[0] - scales.y.range()[1])
.style("fill", get_fill)
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
};
eAppend = "rect";
}
if (g_info.geom == "widerect") {
elements = elements.data(data, key_fun);
eActions = function (e) {
e.attr("y", toXY("y", "ymax"))
.attr("height", function (d) {
return scales.y(d["ymin"]) - scales.y(d["ymax"]);
})
.attr("x", scales.x.range()[0])
.attr("width", scales.x.range()[1] - scales.x.range()[0])
.style("fill", get_fill)
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
};
eAppend = "rect";
}
if (g_info.geom == "rect") {
elements = elements.data(data, key_fun);
eActions = function (e) {
e.attr("x", toXY("x", "xmin"))
.attr("width", function (d) {
return Math.abs(scales.x(d.xmax) - scales.x(d.xmin));
})
.attr("y", toXY("y", "ymax"))
.attr("height", function (d) {
return Math.abs(scales.y(d.ymin) - scales.y(d.ymax));
})
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("fill", get_fill);
if(g_info.select_style != "stroke"){
e.style("stroke", get_colour);
}
};
eAppend = "rect";
}
if (g_info.geom == "boxplot") {
// TODO: currently boxplots are unsupported (we intentionally
// stop with an error in the R code). The reason why is that
// boxplots are drawn using multiple geoms and it is not
// straightforward to deal with that using our current JS
// code. After all, a boxplot could be produced by combing 3
// other geoms (rects, lines, and points) if you really wanted
// it.
fill = "white";
elements = elements.data(data);
eActions = function (e) {
e.append("line")
.attr("x1", function (d) {
return scales.x(d["x"]);
})
.attr("x2", function (d) {
return scales.x(d["x"]);
})
.attr("y1", function (d) {
return scales.y(d["ymin"]);
})
.attr("y2", function (d) {
return scales.y(d["lower"]);
})
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
e.append("line")
.attr("x1", function (d) {
return scales.x(d["x"]);
})
.attr("x2", function (d) {
return scales.x(d["x"]);
})
.attr("y1", function (d) {
return scales.y(d["upper"]);
})
.attr("y2", function (d) {
return scales.y(d["ymax"]);
})
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
e.append("rect")
.attr("x", function (d) {
return scales.x(d["xmin"]);
})
.attr("width", function (d) {
return scales.x(d["xmax"]) - scales.x(d["xmin"]);
})
.attr("y", function (d) {
return scales.y(d["upper"]);
})
.attr("height", function (d) {
return Math.abs(scales.y(d["upper"]) - scales.y(d["lower"]));
})
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour)
.style("fill", get_fill);
e.append("line")
.attr("x1", function (d) {
return scales.x(d["xmin"]);
})
.attr("x2", function (d) {
return scales.x(d["xmax"]);
})
.attr("y1", function (d) {
return scales.y(d["middle"]);
})
.attr("y2", function (d) {
return scales.y(d["middle"]);
})
.style("stroke-dasharray", get_dasharray)
.style("stroke-width", get_size)
.style("stroke", get_colour);
};
}
elements.exit().remove();
var enter = elements.enter();
if(g_info.aes.hasOwnProperty("href")){
enter = enter.append("svg:a")
.append("svg:"+eAppend);
}else{
enter = enter.append(eAppend)
.attr("class", "geom");
}
var has_clickSelects = g_info.aes.hasOwnProperty("clickSelects");
var has_clickSelects_variable =
g_info.aes.hasOwnProperty("clickSelects.variable");
if (has_clickSelects || has_clickSelects_variable) {
var selected_funs = {
"opacity":{
"mouseout":function (d) {
var alpha_on = get_alpha(d);
var alpha_off = get_alpha(d) - 0.5;
if(has_clickSelects){
return ifSelectedElse(d.clickSelects, g_info.aes.clickSelects,
alpha_on, alpha_off);
}else if(has_clickSelects_variable){
return ifSelectedElse(d["clickSelects.value"],
d["clickSelects.variable"],
alpha_on, alpha_off);
}
},
"mouseover":function (d) {
return get_alpha(d);
}
},
"stroke":{
"mouseout":function(d){
var stroke_on = "black";
var stroke_off = "transparent";
if(has_clickSelects){
return ifSelectedElse(d.clickSelects, g_info.aes.clickSelects,
stroke_on, stroke_off);
}else{
return ifSelectedElse(d["clickSelects.value"],
d["clickSelects.variable"],
stroke_on, stroke_off);
}
},
"mouseover":function(d){
return "black";
}
}
}; //selected_funs.
// My original design for clicking/interactivity/transparency:
// Basically I wanted a really simple way to show which element
// in a group of clickable geom elements is currently
// selected. So I decided that all the non-selected elements
// should have alpha transparency 0.5 less than normal, and the
// selected element should have normal alpha transparency. Also,
// the element currently under the mouse has normal alpha
// transparency, to visually indicate that it can be
// clicked. Looking at my examples, you will see that I
// basically use this in two ways:
// 1. By specifying
// geom_vline(aes(clickSelects=variable),alpha=0.5), which
// implies a normal alpha transparency of 0.5. So all the vlines
// are hidden (normal alpha 0.5 - 0.5 = 0), except the current
// selection and the current element under the mouse pointer are
// drawn a bit faded with alpha=0.5.
// 2. By specifying e.g. geom_point(aes(clickSelects=variable)),
// that implies a normal alpha=1. Thus the current selection and
// the current element under the mouse pointer are fully drawn
// with alpha=1 and the others are shown but a bit faded with
// alpha=0.5 (normal alpha 1 - 0.5 = 0.5).
// Edit 19 March 2014: Now there are two styles to show the
// selection, depending on the geom. For most geoms it is as
// described above. But for geoms like rects with
// aes(fill=numericVariable), using opacity to indicate the
// selection results in a misleading decoding of the fill
// variable. So in this case we set stroke to "black" for the
// current selection.
// TODO: user-configurable selection styles.
var style_funs = selected_funs[g_info.select_style];
var over_fun = function(e){
e.style(g_info.select_style, style_funs["mouseover"]);
};
var out_fun = function(e){
e.style(g_info.select_style, style_funs["mouseout"]);
};
elements.call(out_fun)
.on("mouseover", function (d) {
d3.select(this).call(over_fun);
})
.on("mouseout", function (d) {
d3.select(this).call(out_fun);
})
;
if(has_clickSelects){
elements.on("click", function (d) {
// The main idea of how clickSelects works: when we click
// something, we call update_selector with the clicked
// value.
var s_name = g_info.aes.clickSelects;
update_selector(s_name, d.clickSelects);
});
}else{
elements.on("click", function(d){
var s_name = d["clickSelects.variable"];
var s_value = d["clickSelects.value"];
update_selector(s_name, s_value);
});
}
}else{//has neither clickSelects nor clickSelects.variable.
elements.style("opacity", get_alpha);
}
var has_tooltip = g_info.aes.hasOwnProperty("tooltip");
if(has_clickSelects || has_tooltip || has_clickSelects_variable){
var text_fun, get_one;
if(g_info.data_is_object){
get_one = function(d_or_kv){
var one_group = keyed_data[d_or_kv.value];
return one_group[0];
};
}else{
get_one = function(d_or_kv){
return d_or_kv;
};
}
if(has_tooltip){
text_fun = function(d){
return d.tooltip;
};
}else if(has_clickSelects){
text_fun = function(d){
var v_name = g_info.aes.clickSelects;
return v_name + " " + d.clickSelects;
};
}else{ //clickSelects_variable
text_fun = function(d){
return d["clickSelects.variable"] + " " + d["clickSelects.value"];
};
}
// if elements have an existing title, remove it.
elements.selectAll("title").remove();
elements.append("svg:title")
.text(function(d_or_kv){
var d = get_one(d_or_kv);
return text_fun(d);
})
;
}
// Set attributes of only the entering elements. This is needed to
// prevent things from flying around from the upper left when they
// enter the plot.
eActions(enter); // DO NOT DELETE!
if(Selectors.hasOwnProperty(selector_name)){
var milliseconds = Selectors[selector_name].duration;
elements = elements.transition().duration(milliseconds);
}
if(g_info.aes.hasOwnProperty("id")){
elements.attr("id", id_fun);
}
if(g_info.aes.hasOwnProperty("href")){
// elements are <a>, children are e.g. <circle>
var linked_geoms = elements.select(eAppend);
// d3.select(linked_geoms).data(data, key_fun); // WHY did we need this?
eActions(linked_geoms);
linkActions(elements);
}else{
// elements are e.g. <circle>
eActions(elements); // Set the attributes of all elements (enter/exit/stay)
}
};
var value_tostring = function(selected_values) {
//function that is helpful to change the format of the string
var selector_url="#"
for (var selc_var in selected_values){
if(selected_values.hasOwnProperty(selc_var)){
var values_str=selected_values[selc_var].join();
var sub_url=selc_var.concat("=","{",values_str,"}");
selector_url=selector_url.concat(sub_url);
}
}
var url_nohash=window.location.href.match(/(^[^#]*)/)[0];
selector_url=url_nohash.concat(selector_url);
return selector_url;
};
var get_values=function(){
// function that is useful to get the selected values
var selected_values={}
for(var s_name in Selectors){
var s_info=Selectors[s_name];
var initial_selections = [];
if(s_info.type==="single"){
initial_selections=[s_info.selected];
}
else{
for(var i in s_info.selected) {
initial_selections[i] = s_info.selected[i];
}
}
selected_values[s_name]=initial_selections;
}
return selected_values;
};
// var counter=-1;
// var update_selector_url = function() {
// var selected_values=get_values();
// var url=value_tostring(selected_values);
// if(counter===-1){
// $(".table_selector_widgets").after("<table style='display:none' class='urltable'><tr class='selectorurl'></tr></table>");
// $(".selectorurl").append("<p>Current URL</p>");
// $(".selectorurl").append("<a href=''></a>");
// counter++;
// }
// $(".selectorurl a").attr("href",url).text(url);
// };
// update scales for the plots that have update_axes option in
// theme_animint
function update_scales(p_name, axes, v_name, value){
// Get pre-computed domain
var axis_domains = Plots[p_name]["axis_domains"];
if(!isArray(axes)){
axes = [axes];
}
if(axis_domains != null){
axes.forEach(function(xyaxis){
// For Each PANEL, update the axes
Plots[p_name].layout.PANEL.forEach(function(panel_i, i){
// Determine whether this panel has a scale or not
// If not we just update the scales according to the common
// scale and skip the updating of axis
var draw_axes = Plots[p_name].layout["AXIS_"+ xyaxis.toUpperCase()][i];
if(draw_axes){
var use_panel = panel_i;
}else{
var use_panel = Plots[p_name].layout.PANEL[0];
}
// We update the current selection of the plot every time
// and use it to index the correct domain
var curr_select = axis_domains[xyaxis].curr_select;
if(axis_domains[xyaxis].selectors.indexOf(v_name) > -1){
curr_select[v_name] = value;
var str = use_panel+".";
for(selec in curr_select){
str = str + curr_select[selec] + "_";
}
str = str.substring(0, str.length - 1); // Strip off trailing underscore
var use_domain = axis_domains[xyaxis]["domains"][str];
}
if(use_domain != null){
Plots[p_name]["scales"][panel_i][xyaxis].domain(use_domain);
var scales = Plots[p_name]["scales"][panel_i][xyaxis];
// major and minor grid lines as calculated in the compiler
var grid_vals = Plots[p_name]["axis_domains"][xyaxis]["grids"][str];
// Once scales are updated, update the axis ticks if needed
if(draw_axes){
// Tick values are same as major grid lines
update_axes(p_name, xyaxis, panel_i, grid_vals[1]);
}
// Update major and minor grid lines
update_grids(p_name, xyaxis, panel_i, grid_vals, scales);
}
});
});
}
}
// Update the axis ticks etc. once plot is zoomed in/out
// currently called from update_scales.
function update_axes(p_name, axes, panel_i, tick_vals){
var orientation;
if(axes == "x"){
orientation = "bottom";
}else{
orientation = "left";
}
if(!isArray(tick_vals)){
tick_vals = [tick_vals];
}
var xyaxis = d3.svg.axis()
.scale(Plots[p_name]["scales"][panel_i][axes])
.orient(orientation)
.tickValues(tick_vals);
// update existing axis
var xyaxis_g = element.select("#plot_"+p_name).select("."+axes+"axis_"+panel_i)
.transition()
.duration(1000)
.call(xyaxis);
}
// Update major/minor grids once axes ticks have been updated
function update_grids(p_name, axes, panel_i, grid_vals, scales){
// Select panel to update
var bgr = element.select("#plot_"+p_name).select(".bgr"+panel_i);
// Update major and minor grid lines
["minor", "major"].forEach(function(grid_class, j){
var lines = bgr.select(".grid_"+grid_class).select("."+axes);
var xy1, xy2;
if(axes == "x"){
xy1 = lines.select("line").attr("y1");
xy2 = lines.select("line").attr("y2");
}else{
xy1 = lines.select("line").attr("x1");
xy2 = lines.select("line").attr("x2");
}
// Get default values for grid lines like colour, stroke etc.
var grid_background = Plots[p_name]["grid_"+grid_class];
var col = grid_background.colour;
var lt = grid_background.linetype;
var size = grid_background.size;
var cap = grid_background.lineend;
// Remove old lines
lines.selectAll("line")
.remove();
if(!isArray(grid_vals[j])){
grid_vals[j] = [grid_vals[j]];
}
if(axes == "x"){
lines.selectAll("line")
.data(grid_vals[j])
.enter()
.append("line")
.attr("y1", xy1)
.attr("y2", xy2)
.attr("x1", function(d) { return scales(d); })
.attr("x2", function(d) { return scales(d); })
.style("stroke", col)
.style("stroke-linecap", cap)
.style("stroke-width", size)
.style("stroke-dasharray", function() {
return linetypesize2dasharray(lt, size);
});
}else{
lines.selectAll("line")
.data(grid_vals[j])
.enter()
.append("line")
.attr("x1", xy1)
.attr("x2", xy2)
.attr("y1", function(d) { return scales(d); })
.attr("y2", function(d) { return scales(d); })
.style("stroke", col)
.style("stroke-linecap", cap)
.style("stroke-width", size)
.style("stroke-dasharray", function() {
return linetypesize2dasharray(lt, size);
});
}
});
}
var update_selector = function (v_name, value) {
if(!Selectors.hasOwnProperty(v_name)){
return;
}
value = value + "";
var s_info = Selectors[v_name];
if(s_info.type == "single"){
// value is the new selection.
s_info.selected = value;
}else{
// value should be added or removed from the selection.
var i_value = s_info.selected.indexOf(value);
if(i_value == -1){
// not found, add to selection.
s_info.selected.push(value);
}else{
// found, remove from selection.
s_info.selected.splice(i_value, 1);
}
}
// update_selector_url()
// if there are levels, then there is a selectize widget which
// should be updated.
if(isArray(s_info.levels)){
// the jquery ids
if(s_info.type == "single") {
var selected_ids = v_name.concat("___", value);
} else {
var selected_ids = [];
for(i in s_info.selected) {
selected_ids[i] = v_name.concat("___", s_info.selected[i]);
}
}
// from
// https://github.com/brianreavis/selectize.js/blob/master/docs/api.md:
// setValue(value, silent) If "silent" is truthy, no change
// event will be fired on the original input.
selectized_array[v_name].setValue(selected_ids, true);
}
// For each updated geom, check if the axes of the plot need to be
// updated and update them
s_info.update.forEach(function(g_name){
var plot_name = g_name.split("_").pop();
var axes = Plots[plot_name]["options"]["update_axes"];
if(axes != null){
update_scales(plot_name, axes, v_name, value);
}
});
update_legend_opacity(v_name);
s_info.update.forEach(function(g_name){
update_geom(g_name, v_name);
});
};
var ifSelectedElse = function (s_value, s_name, selected, not_selected) {
var is_selected;
var s_info = Selectors[s_name];
if(s_info.type == "single"){
is_selected = s_value == s_info.selected;
}else{
is_selected = s_info.selected.indexOf(s_value) != -1;
}
if(is_selected){
return selected;
} else {
return not_selected;
}
};
function update_next_animation(){
var values = d3.values(Animation.done_geoms);
if(d3.sum(values) == values.length){
// If the values in done_geoms are all 1, then we have loaded
// all of the animation-related chunks, and we can start
// playing the animation.
var v_name = Animation.variable;
var cur = Selectors[v_name].selected;
var next = Animation.next[cur];
update_selector(v_name, next);
}
}
// The main idea of how legends work:
// 1. In getLegend in animint.R I export the legend entries as a
// list of rows that can be used in a data() bind in D3.
// 2. Here in add_legend I create a <table> for every legend, and
// then I bind the legend entries to <tr>, <td>, and <svg> elements.
var add_legend = function(p_name, p_info){
// case of multiple legends, d3 reads legend structure in as an array
var tdRight = element.select("td."+p_name+"_legend");
var legendkeys = d3.keys(p_info.legend);
for(var i=0; i<legendkeys.length; i++){
var legend_key = legendkeys[i];
var l_info = p_info.legend[legend_key];
// the table that contains one row for each legend element.
var legend_table = tdRight.append("table")
.attr("class", "legend")
;
var legend_class = legend_class_name(l_info["class"]);
var legend_id = p_info.plot_id + "_" + legend_class;
// the legend table with breaks/value/label .
// TODO: variable and value should be set in the compiler! What
// if label is different from the data value?
for(var entry_i=0; entry_i < l_info.entries.length; entry_i++){
var entry = l_info.entries[entry_i];
entry.variable = l_info.selector;
entry.value = entry.label;
entry.id = safe_name(legend_id + "_" + entry["label"]);
}
var legend_rows = legend_table.selectAll("tr")
.data(l_info.entries)
.enter()
.append("tr")
// in a good data viz there should not be more than one legend
// that shows the same thing, so there should be no duplicate
// id.
.attr("id", function(d) { return d["id"]; })
.attr("class", legend_class)
;
if(l_info.selector != null){
legend_rows
.on("click", function(d) {
update_selector(d.variable, d.value);
})
.attr("title", function(d) {
return "Toggle " + d.value;
})
.attr("style", "cursor:pointer")
;
}
var first_tr = legend_table.insert("tr", "tr");
var first_th = first_tr.append("th")
.attr("align", "left")
.attr("colspan", 2)
.text(l_info.title)
.attr("class", legend_class)
;
var legend_svgs = legend_rows.append("td")
.append("svg")
.attr("id", function(d){return d["id"]+"_svg";})
.attr("height", 14)
.attr("width", 20);
var pointscale = d3.scale.linear().domain([0,7]).range([1,4]);
// scale points so they are visible in the legend. (does not
// affect plot scaling)
var linescale = d3.scale.linear().domain([0,6]).range([1,4]);
// scale lines so they are visible in the legend. (does not
// affect plot scaling)
if(l_info.geoms.indexOf("polygon")>-1){
// aesthetics that would draw a rect
legend_svgs.append("rect")
.attr("x", 2)
.attr("y", 2)
.attr("width", 10)
.attr("height", 10)
.style("stroke-width", function(d){return d["polygonsize"]||1;})
.style("stroke-dasharray", function(d){
return linetypesize2dasharray(d["polygonlinetype"], d["size"]||2);
})
.style("stroke", function(d){return d["polygoncolour"] || "#000000";})
.style("fill", function(d){return d["polygonfill"] || "#FFFFFF";})
.style("opacity", function(d){return d["polygonalpha"]||1;});
}
if(l_info.geoms.indexOf("text")>-1){
// aesthetics that would draw a rect
legend_svgs.append("text")
.attr("x", 10)
.attr("y", 14)
.style("fill", function(d){return d["textcolour"]||1;})
.style("text-anchor", "middle")
.attr("font-size", function(d){return d["textsize"]||1;})
.text("a");
}
if(l_info.geoms.indexOf("path")>-1){
// aesthetics that would draw a line
legend_svgs.append("line")
.attr("x1", 1).attr("x2", 19).attr("y1", 7).attr("y2", 7)
.style("stroke-width", function(d){
return linescale(d["pathsize"])||2;
})
.style("stroke-dasharray", function(d){
return linetypesize2dasharray(d["pathlinetype"], d["pathsize"] || 2);
})
.style("stroke", function(d){return d["pathcolour"] || "#000000";})
.style("opacity", function(d){return d["pathalpha"]||1;});
}
if(l_info.geoms.indexOf("point")>-1){
// aesthetics that would draw a point
legend_svgs.append("circle")
.attr("cx", 10)
.attr("cy", 7)
.attr("r", function(d){return pointscale(d["pointsize"])||4;})
.style("stroke", function(d){return d["pointcolour"] || "#000000";})
.style("fill", function(d){
return d["pointfill"] || d["pointcolour"] || "#000000";
})
.style("opacity", function(d){return d["pointalpha"]||1;});
}
legend_rows.append("td")
.attr("align", "left") // TODO: right for numbers?
.attr("class", "legend_entry_label")
.attr("id", function(d){ return d["id"]+"_label"; })
.text(function(d){ return d["label"];});
}
}
// Download the main description of the interactive plot.
d3.json(json_file, function (error, response) {
if(response.hasOwnProperty("title")){
// This selects the title of the web page, outside of wherever
// the animint is defined, usually a <div> -- so it is OK to use
// global d3.select here.
d3.select("title").text(response.title);
}
// Add plots.
for (var p_name in response.plots) {
add_plot(p_name, response.plots[p_name]);
add_legend(p_name, response.plots[p_name]);
// Append style sheet to document head.
css.appendChild(document.createTextNode(styles.join(" ")));
document.head.appendChild(css);
}
// Then add selectors and start downloading the first data subset.
for (var s_name in response.selectors) {
add_selector(s_name, response.selectors[s_name]);
}
// Update the scales/axes of the plots if needed
// We do this so that the plots zoom in initially after loading
for (var p_name in response.plots) {
if(response.plots[p_name].axis_domains !== null){
for(var xy in response.plots[p_name].axis_domains){
var selectors = response.plots[p_name].axis_domains[xy].selectors;
if(!isArray(selectors)){
selectors = [selectors];
}
update_scales(p_name, xy, selectors[0],
response.selectors[selectors[0]].selected);
}
}
}
////////////////////////////////////////////
// Widgets at bottom of page
////////////////////////////////////////////
element.append("br");
// loading table.
var show_hide_table = element.append("button")
.text("Show download status table");
show_hide_table
.on("click", function(){
if(this.textContent == "Show download status table"){
loading.style("display", "");
show_hide_table.text("Hide download status table");
}else{
loading.style("display", "none");
show_hide_table.text("Show download status table");
}
});
var loading = element.append("table")
.style("display", "none");
Widgets["loading"] = loading;
var tr = loading.append("tr");
tr.append("th").text("geom");
tr.append("th").attr("class", "chunk").text("selected chunk");
tr.append("th").attr("class", "downloaded").text("downloaded");
tr.append("th").attr("class", "total").text("total");
tr.append("th").attr("class", "status").text("status");
// Add geoms and construct nest operators.
for (var g_name in response.geoms) {
add_geom(g_name, response.geoms[g_name]);
}
// Animation control widgets.
var show_message = "Show animation controls";
// add a button to view the animation widgets
var show_hide_animation_controls = element.append("button")
.text(show_message)
.attr("id", viz_id + "_show_hide_animation_controls")
.on("click", function(){
if(this.textContent == show_message){
time_table.style("display", "");
show_hide_animation_controls.text("Hide animation controls");
}else{
time_table.style("display", "none");
show_hide_animation_controls.text(show_message);
}
})
;
// table of the animint widgets
var time_table = element.append("table")
.style("display", "none");
var first_tr = time_table.append("tr");
var first_th = first_tr.append("th");
// if there's a time variable, add a button to pause the animint
if(response.time){
Animation.next = {};
Animation.ms = response.time.ms;
Animation.variable = response.time.variable;
Animation.sequence = response.time.sequence;
Widgets["play_pause"] = first_th.append("button")
.text("Play")
.attr("id", "play_pause")
.on("click", function(){
if(this.textContent == "Play"){
Animation.play();
}else{
Animation.pause(false);
}
})
;
}
first_tr.append("th").text("milliseconds");
if(response.time){
var second_tr = time_table.append("tr");
second_tr.append("td").text("updates");
second_tr.append("td").append("input")
.attr("id", "updates_ms")
.attr("type", "text")
.attr("value", Animation.ms)
.on("change", function(){
Animation.pause(false);
Animation.ms = this.value;
Animation.play();
})
;
}
for(s_name in Selectors){
var s_info = Selectors[s_name];
if(!s_info.hasOwnProperty("duration")){
s_info.duration = 0;
}
}
var selector_array = d3.keys(Selectors);
var duration_rows = time_table.selectAll("tr.duration")
.data(selector_array)
.enter()
.append("tr");
duration_rows
.append("td")
.text(function(s_name){return s_name;});
var duration_tds = duration_rows.append("td");
var duration_inputs = duration_tds
.append("input")
.attr("id", function(s_name){
return viz_id + "_duration_ms_" + s_name;
})
.attr("type", "text")
.on("change", function(s_name){
Selectors[s_name].duration = this.value;
})
.attr("value", function(s_name){
return Selectors[s_name].duration;
});
// selector widgets
var toggle_message = "Show selection menus";
var show_or_hide_fun = function(){
if(this.textContent == toggle_message){
selector_table.style("display", "");
show_hide_selector_widgets.text("Hide selection menus");
d3.select(".urltable").style("display","")
}else{
selector_table.style("display", "none");
show_hide_selector_widgets.text(toggle_message);
d3.select(".urltable").style("display","none")
}
}
var show_hide_selector_widgets = element.append("button")
.text(toggle_message)
.attr("class", "show_hide_selector_widgets")
.on("click", show_or_hide_fun)
;
// adding a table for selector widgets
var selector_table = element.append("table")
.style("display", "none")
.attr("class", "table_selector_widgets")
;
var selector_first_tr = selector_table.append("tr");
selector_first_tr
.append("th")
.text("Variable")
;
selector_first_tr
.append("th")
.text("Selected value(s)")
;
// looping through and adding a row for each selector
for(s_name in Selectors) {
var s_info = Selectors[s_name];
// for .variable .value selectors, levels is undefined and we do
// not want to make a selectize widget.
// TODO: why does it take so long to initialize the selectize
// widget when there are many (>1000) values?
if(isArray(s_info.levels)){
// If there were no geoms that specified clickSelects for this
// selector, then there is no way to select it other than the
// selectize widgets (and possibly legends). So in this case
// we show the selectize widgets by default.
var selector_widgets_hidden =
show_hide_selector_widgets.text() == toggle_message;
var has_no_clickSelects =
!Selectors[s_name].hasOwnProperty("clickSelects")
var has_no_legend =
!Selectors[s_name].hasOwnProperty("legend")
if(selector_widgets_hidden && has_no_clickSelects && has_no_legend){
var node = show_hide_selector_widgets.node();
show_or_hide_fun.apply(node);
}
// removing "." from name so it can be used in ids
var s_name_id = legend_class_name(s_name);
// adding a row for each selector
var selector_widget_row = selector_table
.append("tr")
.attr("class", function() { return s_name_id + "_selector_widget"; })
;
selector_widget_row.append("td").text(s_name);
// adding the selector
var selector_widget_select = selector_widget_row
.append("td")
.append("select")
.attr("class", function() { return s_name_id + "_input"; })
.attr("placeholder", function() { return "Toggle " + s_name; });
// adding an option for each level of the variable
selector_widget_select.selectAll("option")
.data(s_info.levels)
.enter()
.append("option")
.attr("value", function(d) { return d; })
.text(function(d) { return d; });
// making sure that the first option is blank
selector_widget_select
.insert("option")
.attr("value", "")
.text(function() { return "Toggle " + s_name; });
// calling selectize
var selectize_selector = to_select + ' .' + s_name_id + "_input";
if(s_info.type == "single") {
// setting up array of selector and options
var selector_values = [];
for(i in s_info.levels) {
selector_values[i] = {
id: s_name.concat("___", s_info.levels[i]),
text: s_info.levels[i]
};
}
// the id of the first selector
var selected_id = s_name.concat("___", s_info.selected);
// if single selection, only allow one item
var $temp = $(selectize_selector)
.selectize({
create: false,
valueField: 'id',
labelField: 'text',
searchField: ['text'],
options: selector_values,
items: [selected_id],
maxItems: 1,
allowEmptyOption: true,
onChange: function(value) {
// extracting the name and the level to update
var selector_name = value.split("___")[0];
var selected_level = value.split("___")[1];
// updating the selector
update_selector(selector_name, selected_level);
}
})
;
} else { // multiple selection:
// setting up array of selector and options
var selector_values = [];
if(typeof s_info.levels == "object") {
for(i in s_info.levels) {
selector_values[i] = {
id: s_name.concat("___", s_info.levels[i]),
text: s_info.levels[i]
};
}
} else {
selector_values[0] = {
id: s_name.concat("___", s_info.levels),
text: s_info.levels
};
}
// setting up an array to contain the initally selected elements
var initial_selections = [];
for(i in s_info.selected) {
initial_selections[i] = s_name.concat("___", s_info.selected[i]);
}
// construct the selectize
var $temp = $(selectize_selector)
.selectize({
create: false,
valueField: 'id',
labelField: 'text',
searchField: ['text'],
options: selector_values,
items: initial_selections,
maxItems: s_info.levels.length,
allowEmptyOption: true,
onChange: function(value) {
// if nothing is selected, remove what is currently selected
if(value == null) {
// extracting the selector ids from the options
var the_ids = Object.keys($(this)[0].options);
// the name of the appropriate selector
var selector_name = the_ids[0].split("___")[0];
// the previously selected elements
var old_selections = Selectors[selector_name].selected;
// updating the selector for each of the old selections
old_selections.forEach(function(element) {
update_selector(selector_name, element);
});
} else { // value is not null:
// grabbing the name of the selector from the selected value
var selector_name = value[0].split("___")[0];
// identifying the levels that should be selected
var specified_levels = [];
for(i in value) {
specified_levels[i] = value[i].split("___")[1];
}
// the previously selected entries
old_selections = Selectors[selector_name].selected;
// the levels that need to have selections turned on
specified_levels
.filter(function(n) {
return old_selections.indexOf(n) == -1;
})
.forEach(function(element) {
update_selector(selector_name, element);
})
;
// the levels that need to be turned off
// - same approach
old_selections
.filter(function(n) {
return specified_levels.indexOf(n) == -1;
})
.forEach(function(element) {
update_selector(selector_name, element);
})
;
}//value==null
}//onChange
})//selectize
;
}//single or multiple selection.
selectized_array[s_name] = $temp[0].selectize;
}//levels, is.variable.value
} // close for loop through selector widgets
// If this is an animation, then start downloading all the rest of
// the data, and start the animation.
if (response.time) {
var i, prev, cur;
for (var i = 0; i < Animation.sequence.length; i++) {
if (i == 0) {
prev = Animation.sequence[Animation.sequence.length-1];
} else {
prev = Animation.sequence[i - 1];
}
cur = Animation.sequence[i];
Animation.next[prev] = cur;
}
Animation.timer = null;
Animation.play = function(){
if(Animation.timer == null){ // only play if not already playing.
// as shown on http://bl.ocks.org/mbostock/3808234
Animation.timer = setInterval(update_next_animation, Animation.ms);
Widgets["play_pause"].text("Pause");
}
};
Animation.play_after_visible = false;
Animation.pause = function(play_after_visible){
Animation.play_after_visible = play_after_visible;
clearInterval(Animation.timer);
Animation.timer = null;
Widgets["play_pause"].text("Play");
};
var s_info = Selectors[Animation.variable];
Animation.done_geoms = {};
s_info.update.forEach(function(g_name){
var g_info = Geoms[g_name];
if(g_info.chunk_order.length == 1 &&
g_info.chunk_order[0] == Animation.variable){
g_info.seq_i = Animation.sequence.indexOf(s_info.selected);
g_info.seq_count = 0;
Animation.done_geoms[g_name] = 0;
download_next(g_name);
}
});
Animation.play();
all_geom_names = d3.keys(response.geoms);
// This code starts/stops the animation timer when the page is
// hidden, inspired by
// http://stackoverflow.com/questions/1060008
function onchange (evt) {
if(document.visibilityState == "visible"){
if(Animation.play_after_visible){
Animation.play();
}
}else{
if(Widgets["play_pause"].text() == "Pause"){
Animation.pause(true);
}
}
};
document.addEventListener("visibilitychange", onchange);
}
// update_selector_url()
var check_func=function(){
var status_array = $('.status').map(function(){
return $.trim($(this).text());
}).get();
status_array=status_array.slice(1)
return status_array.every(function(elem){ return elem === "displayed"});
}
if(window.location.hash) {
var fragment=window.location.hash;
fragment=fragment.slice(1);
fragment=decodeURI(fragment)
var frag_array=fragment.split(/(.*?})/);
frag_array=frag_array.filter(function(x){ return x!=""})
frag_array.forEach(function(selector_string){
var selector_hash=selector_string.split("=");
var selector_nam=selector_hash[0];
var selector_values=selector_hash[1];
var re = /\{(.*?)\}/;
selector_values = re.exec(selector_values)[1];
var array_values = selector_values.split(',');
if(Selectors.hasOwnProperty(selector_nam)){
var s_info = Selectors[selector_nam]
if(s_info.type=="single"){//TODO fix
array_values.forEach(function(element) {
wait_until_then(100, check_func, update_selector,selector_nam,element)
if(response.time)Animation.pause(true)
});
}else{
var old_selections = Selectors[selector_nam].selected;
// the levels that need to have selections turned on
array_values
.filter(function(n) {
return old_selections.indexOf(n) == -1;
})
.forEach(function(element) {
wait_until_then(100, check_func, update_selector,selector_nam,element)
if(response.time){
Animation.pause(true)
}
});
old_selections
.filter(function(n) {
return array_values.indexOf(n) == -1;
})
.forEach(function(element) {
wait_until_then(100, check_func, update_selector,selector_nam,element)
if(response.time){
Animation.pause(true)
}
});
}//if(single) else multiple selection
}//if(Selectors.hasOwnProperty(selector_nam))
})//frag_array.forEach
}//if(window.location.hash)
});
};
// Copyright (c) 2013, Michael Bostock
// All rights reserved.
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are met:
// * Redistributions of source code must retain the above copyright notice, this
// list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above copyright notice,
// this list of conditions and the following disclaimer in the documentation
// and/or other materials provided with the distribution.
// * The name Michael Bostock may not be used to endorse or promote products
// derived from this software without specific prior written permission.
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
// DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT,
// INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
// BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
// OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
d3 = function() {
var π = Math.PI, ε = 1e-6, d3 = {
version: "3.0.6"
}, d3_radians = π / 180, d3_degrees = 180 / π, d3_document = document, d3_window = window;
function d3_target(d) {
return d.target;
}
function d3_source(d) {
return d.source;
}
var d3_format_decimalPoint = ".", d3_format_thousandsSeparator = ",", d3_format_grouping = [ 3, 3 ];
if (!Date.now) Date.now = function() {
return +new Date();
};
try {
d3_document.createElement("div").style.setProperty("opacity", 0, "");
} catch (error) {
var d3_style_prototype = d3_window.CSSStyleDeclaration.prototype, d3_style_setProperty = d3_style_prototype.setProperty;
d3_style_prototype.setProperty = function(name, value, priority) {
d3_style_setProperty.call(this, name, value + "", priority);
};
}
function d3_class(ctor, properties) {
try {
for (var key in properties) {
Object.defineProperty(ctor.prototype, key, {
value: properties[key],
enumerable: false
});
}
} catch (e) {
ctor.prototype = properties;
}
}
var d3_array = d3_arraySlice;
function d3_arrayCopy(pseudoarray) {
var i = -1, n = pseudoarray.length, array = [];
while (++i < n) array.push(pseudoarray[i]);
return array;
}
function d3_arraySlice(pseudoarray) {
return Array.prototype.slice.call(pseudoarray);
}
try {
d3_array(d3_document.documentElement.childNodes)[0].nodeType;
} catch (e) {
d3_array = d3_arrayCopy;
}
var d3_arraySubclass = [].__proto__ ? function(array, prototype) {
array.__proto__ = prototype;
} : function(array, prototype) {
for (var property in prototype) array[property] = prototype[property];
};
d3.map = function(object) {
var map = new d3_Map();
for (var key in object) map.set(key, object[key]);
return map;
};
function d3_Map() {}
d3_class(d3_Map, {
has: function(key) {
return d3_map_prefix + key in this;
},
get: function(key) {
return this[d3_map_prefix + key];
},
set: function(key, value) {
return this[d3_map_prefix + key] = value;
},
remove: function(key) {
key = d3_map_prefix + key;
return key in this && delete this[key];
},
keys: function() {
var keys = [];
this.forEach(function(key) {
keys.push(key);
});
return keys;
},
values: function() {
var values = [];
this.forEach(function(key, value) {
values.push(value);
});
return values;
},
entries: function() {
var entries = [];
this.forEach(function(key, value) {
entries.push({
key: key,
value: value
});
});
return entries;
},
forEach: function(f) {
for (var key in this) {
if (key.charCodeAt(0) === d3_map_prefixCode) {
f.call(this, key.substring(1), this[key]);
}
}
}
});
var d3_map_prefix = "\0", d3_map_prefixCode = d3_map_prefix.charCodeAt(0);
function d3_identity(d) {
return d;
}
function d3_true() {
return true;
}
function d3_functor(v) {
return typeof v === "function" ? v : function() {
return v;
};
}
d3.functor = d3_functor;
d3.rebind = function(target, source) {
var i = 1, n = arguments.length, method;
while (++i < n) target[method = arguments[i]] = d3_rebind(target, source, source[method]);
return target;
};
function d3_rebind(target, source, method) {
return function() {
var value = method.apply(source, arguments);
return arguments.length ? target : value;
};
}
d3.ascending = function(a, b) {
return a < b ? -1 : a > b ? 1 : a >= b ? 0 : NaN;
};
d3.descending = function(a, b) {
return b < a ? -1 : b > a ? 1 : b >= a ? 0 : NaN;
};
d3.mean = function(array, f) {
var n = array.length, a, m = 0, i = -1, j = 0;
if (arguments.length === 1) {
while (++i < n) if (d3_number(a = array[i])) m += (a - m) / ++j;
} else {
while (++i < n) if (d3_number(a = f.call(array, array[i], i))) m += (a - m) / ++j;
}
return j ? m : undefined;
};
d3.median = function(array, f) {
if (arguments.length > 1) array = array.map(f);
array = array.filter(d3_number);
return array.length ? d3.quantile(array.sort(d3.ascending), .5) : undefined;
};
d3.min = function(array, f) {
var i = -1, n = array.length, a, b;
if (arguments.length === 1) {
while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
while (++i < n) if ((b = array[i]) != null && a > b) a = b;
} else {
while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null && a > b) a = b;
}
return a;
};
d3.max = function(array, f) {
var i = -1, n = array.length, a, b;
if (arguments.length === 1) {
while (++i < n && ((a = array[i]) == null || a != a)) a = undefined;
while (++i < n) if ((b = array[i]) != null && b > a) a = b;
} else {
while (++i < n && ((a = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null && b > a) a = b;
}
return a;
};
d3.extent = function(array, f) {
var i = -1, n = array.length, a, b, c;
if (arguments.length === 1) {
while (++i < n && ((a = c = array[i]) == null || a != a)) a = c = undefined;
while (++i < n) if ((b = array[i]) != null) {
if (a > b) a = b;
if (c < b) c = b;
}
} else {
while (++i < n && ((a = c = f.call(array, array[i], i)) == null || a != a)) a = undefined;
while (++i < n) if ((b = f.call(array, array[i], i)) != null) {
if (a > b) a = b;
if (c < b) c = b;
}
}
return [ a, c ];
};
d3.random = {
normal: function(µ, σ) {
var n = arguments.length;
if (n < 2) σ = 1;
if (n < 1) µ = 0;
return function() {
var x, y, r;
do {
x = Math.random() * 2 - 1;
y = Math.random() * 2 - 1;
r = x * x + y * y;
} while (!r || r > 1);
return µ + σ * x * Math.sqrt(-2 * Math.log(r) / r);
};
},
logNormal: function() {
var random = d3.random.normal.apply(d3, arguments);
return function() {
return Math.exp(random());
};
},
irwinHall: function(m) {
return function() {
for (var s = 0, j = 0; j < m; j++) s += Math.random();
return s / m;
};
}
};
function d3_number(x) {
return x != null && !isNaN(x);
}
d3.sum = function(array, f) {
var s = 0, n = array.length, a, i = -1;
if (arguments.length === 1) {
while (++i < n) if (!isNaN(a = +array[i])) s += a;
} else {
while (++i < n) if (!isNaN(a = +f.call(array, array[i], i))) s += a;
}
return s;
};
d3.quantile = function(values, p) {
var H = (values.length - 1) * p + 1, h = Math.floor(H), v = +values[h - 1], e = H - h;
return e ? v + e * (values[h] - v) : v;
};
d3.shuffle = function(array) {
var m = array.length, t, i;
while (m) {
i = Math.random() * m-- | 0;
t = array[m], array[m] = array[i], array[i] = t;
}
return array;
};
d3.transpose = function(matrix) {
return d3.zip.apply(d3, matrix);
};
d3.zip = function() {
if (!(n = arguments.length)) return [];
for (var i = -1, m = d3.min(arguments, d3_zipLength), zips = new Array(m); ++i < m; ) {
for (var j = -1, n, zip = zips[i] = new Array(n); ++j < n; ) {
zip[j] = arguments[j][i];
}
}
return zips;
};
function d3_zipLength(d) {
return d.length;
}
d3.bisector = function(f) {
return {
left: function(a, x, lo, hi) {
if (arguments.length < 3) lo = 0;
if (arguments.length < 4) hi = a.length;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (f.call(a, a[mid], mid) < x) lo = mid + 1; else hi = mid;
}
return lo;
},
right: function(a, x, lo, hi) {
if (arguments.length < 3) lo = 0;
if (arguments.length < 4) hi = a.length;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (x < f.call(a, a[mid], mid)) hi = mid; else lo = mid + 1;
}
return lo;
}
};
};
var d3_bisector = d3.bisector(function(d) {
return d;
});
d3.bisectLeft = d3_bisector.left;
d3.bisect = d3.bisectRight = d3_bisector.right;
d3.nest = function() {
var nest = {}, keys = [], sortKeys = [], sortValues, rollup;
function map(array, depth) {
if (depth >= keys.length) return rollup ? rollup.call(nest, array) : sortValues ? array.sort(sortValues) : array;
var i = -1, n = array.length, key = keys[depth++], keyValue, object, valuesByKey = new d3_Map(), values, o = {};
while (++i < n) {
if (values = valuesByKey.get(keyValue = key(object = array[i]))) {
values.push(object);
} else {
valuesByKey.set(keyValue, [ object ]);
}
}
valuesByKey.forEach(function(keyValue, values) {
o[keyValue] = map(values, depth);
});
return o;
}
function entries(map, depth) {
if (depth >= keys.length) return map;
var a = [], sortKey = sortKeys[depth++], key;
for (key in map) {
a.push({
key: key,
values: entries(map[key], depth)
});
}
if (sortKey) a.sort(function(a, b) {
return sortKey(a.key, b.key);
});
return a;
}
nest.map = function(array) {
return map(array, 0);
};
nest.entries = function(array) {
return entries(map(array, 0), 0);
};
nest.key = function(d) {
keys.push(d);
return nest;
};
nest.sortKeys = function(order) {
sortKeys[keys.length - 1] = order;
return nest;
};
nest.sortValues = function(order) {
sortValues = order;
return nest;
};
nest.rollup = function(f) {
rollup = f;
return nest;
};
return nest;
};
d3.keys = function(map) {
var keys = [];
for (var key in map) keys.push(key);
return keys;
};
d3.values = function(map) {
var values = [];
for (var key in map) values.push(map[key]);
return values;
};
d3.entries = function(map) {
var entries = [];
for (var key in map) entries.push({
key: key,
value: map[key]
});
return entries;
};
d3.permute = function(array, indexes) {
var permutes = [], i = -1, n = indexes.length;
while (++i < n) permutes[i] = array[indexes[i]];
return permutes;
};
d3.merge = function(arrays) {
return Array.prototype.concat.apply([], arrays);
};
function d3_collapse(s) {
return s.trim().replace(/\s+/g, " ");
}
d3.range = function(start, stop, step) {
if (arguments.length < 3) {
step = 1;
if (arguments.length < 2) {
stop = start;
start = 0;
}
}
if ((stop - start) / step === Infinity) throw new Error("infinite range");
var range = [], k = d3_range_integerScale(Math.abs(step)), i = -1, j;
start *= k, stop *= k, step *= k;
if (step < 0) while ((j = start + step * ++i) > stop) range.push(j / k); else while ((j = start + step * ++i) < stop) range.push(j / k);
return range;
};
function d3_range_integerScale(x) {
var k = 1;
while (x * k % 1) k *= 10;
return k;
}
d3.requote = function(s) {
return s.replace(d3_requote_re, "\\$&");
};
var d3_requote_re = /[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;
d3.round = function(x, n) {
return n ? Math.round(x * (n = Math.pow(10, n))) / n : Math.round(x);
};
d3.xhr = function(url, mimeType, callback) {
var xhr = {}, dispatch = d3.dispatch("progress", "load", "error"), headers = {}, response = d3_identity, request = new (d3_window.XDomainRequest && /^(http(s)?:)?\/\//.test(url) ? XDomainRequest : XMLHttpRequest)();
"onload" in request ? request.onload = request.onerror = respond : request.onreadystatechange = function() {
request.readyState > 3 && respond();
};
function respond() {
var s = request.status;
!s && request.responseText || s >= 200 && s < 300 || s === 304 ? dispatch.load.call(xhr, response.call(xhr, request)) : dispatch.error.call(xhr, request);
}
request.onprogress = function(event) {
var o = d3.event;
d3.event = event;
try {
dispatch.progress.call(xhr, request);
} finally {
d3.event = o;
}
};
xhr.header = function(name, value) {
name = (name + "").toLowerCase();
if (arguments.length < 2) return headers[name];
if (value == null) delete headers[name]; else headers[name] = value + "";
return xhr;
};
xhr.mimeType = function(value) {
if (!arguments.length) return mimeType;
mimeType = value == null ? null : value + "";
return xhr;
};
xhr.response = function(value) {
response = value;
return xhr;
};
[ "get", "post" ].forEach(function(method) {
xhr[method] = function() {
return xhr.send.apply(xhr, [ method ].concat(d3_array(arguments)));
};
});
xhr.send = function(method, data, callback) {
if (arguments.length === 2 && typeof data === "function") callback = data, data = null;
request.open(method, url, true);
if (mimeType != null && !("accept" in headers)) headers["accept"] = mimeType + ",*/*";
if (request.setRequestHeader) for (var name in headers) request.setRequestHeader(name, headers[name]);
if (mimeType != null && request.overrideMimeType) request.overrideMimeType(mimeType);
if (callback != null) xhr.on("error", callback).on("load", function(request) {
callback(null, request);
});
request.send(data == null ? null : data);
return xhr;
};
xhr.abort = function() {
request.abort();
return xhr;
};
d3.rebind(xhr, dispatch, "on");
if (arguments.length === 2 && typeof mimeType === "function") callback = mimeType,
mimeType = null;
return callback == null ? xhr : xhr.get(d3_xhr_fixCallback(callback));
};
function d3_xhr_fixCallback(callback) {
return callback.length === 1 ? function(error, request) {
callback(error == null ? request : null);
} : callback;
}
d3.text = function() {
return d3.xhr.apply(d3, arguments).response(d3_text);
};
function d3_text(request) {
return request.responseText;
}
d3.json = function(url, callback) {
return d3.xhr(url, "application/json", callback).response(d3_json);
};
function d3_json(request) {
return JSON.parse(request.responseText);
}
d3.html = function(url, callback) {
return d3.xhr(url, "text/html", callback).response(d3_html);
};
function d3_html(request) {
var range = d3_document.createRange();
range.selectNode(d3_document.body);
return range.createContextualFragment(request.responseText);
}
d3.xml = function() {
return d3.xhr.apply(d3, arguments).response(d3_xml);
};
function d3_xml(request) {
return request.responseXML;
}
var d3_nsPrefix = {
svg: "http://www.w3.org/2000/svg",
xhtml: "http://www.w3.org/1999/xhtml",
xlink: "http://www.w3.org/1999/xlink",
xml: "http://www.w3.org/XML/1998/namespace",
xmlns: "http://www.w3.org/2000/xmlns/"
};
d3.ns = {
prefix: d3_nsPrefix,
qualify: function(name) {
var i = name.indexOf(":"), prefix = name;
if (i >= 0) {
prefix = name.substring(0, i);
name = name.substring(i + 1);
}
return d3_nsPrefix.hasOwnProperty(prefix) ? {
space: d3_nsPrefix[prefix],
local: name
} : name;
}
};
d3.dispatch = function() {
var dispatch = new d3_dispatch(), i = -1, n = arguments.length;
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
return dispatch;
};
function d3_dispatch() {}
d3_dispatch.prototype.on = function(type, listener) {
var i = type.indexOf("."), name = "";
if (i > 0) {
name = type.substring(i + 1);
type = type.substring(0, i);
}
return arguments.length < 2 ? this[type].on(name) : this[type].on(name, listener);
};
function d3_dispatch_event(dispatch) {
var listeners = [], listenerByName = new d3_Map();
function event() {
var z = listeners, i = -1, n = z.length, l;
while (++i < n) if (l = z[i].on) l.apply(this, arguments);
return dispatch;
}
event.on = function(name, listener) {
var l = listenerByName.get(name), i;
if (arguments.length < 2) return l && l.on;
if (l) {
l.on = null;
listeners = listeners.slice(0, i = listeners.indexOf(l)).concat(listeners.slice(i + 1));
listenerByName.remove(name);
}
if (listener) listeners.push(listenerByName.set(name, {
on: listener
}));
return dispatch;
};
return event;
}
d3.format = function(specifier) {
var match = d3_format_re.exec(specifier), fill = match[1] || " ", align = match[2] || ">", sign = match[3] || "", basePrefix = match[4] || "", zfill = match[5], width = +match[6], comma = match[7], precision = match[8], type = match[9], scale = 1, suffix = "", integer = false;
if (precision) precision = +precision.substring(1);
if (zfill || fill === "0" && align === "=") {
zfill = fill = "0";
align = "=";
if (comma) width -= Math.floor((width - 1) / 4);
}
switch (type) {
case "n":
comma = true;
type = "g";
break;
case "%":
scale = 100;
suffix = "%";
type = "f";
break;
case "p":
scale = 100;
suffix = "%";
type = "r";
break;
case "b":
case "o":
case "x":
case "X":
if (basePrefix) basePrefix = "0" + type.toLowerCase();
case "c":
case "d":
integer = true;
precision = 0;
break;
case "s":
scale = -1;
type = "r";
break;
}
if (basePrefix === "#") basePrefix = "";
if (type == "r" && !precision) type = "g";
type = d3_format_types.get(type) || d3_format_typeDefault;
var zcomma = zfill && comma;
return function(value) {
if (integer && value % 1) return "";
var negative = value < 0 || value === 0 && 1 / value < 0 ? (value = -value, "-") : sign;
if (scale < 0) {
var prefix = d3.formatPrefix(value, precision);
value = prefix.scale(value);
suffix = prefix.symbol;
} else {
value *= scale;
}
value = type(value, precision);
if (!zfill && comma) value = d3_format_group(value);
var length = basePrefix.length + value.length + (zcomma ? 0 : negative.length), padding = length < width ? new Array(length = width - length + 1).join(fill) : "";
if (zcomma) value = d3_format_group(padding + value);
if (d3_format_decimalPoint) value.replace(".", d3_format_decimalPoint);
negative += basePrefix;
return (align === "<" ? negative + value + padding : align === ">" ? padding + negative + value : align === "^" ? padding.substring(0, length >>= 1) + negative + value + padding.substring(length) : negative + (zcomma ? value : padding + value)) + suffix;
};
};
var d3_format_re = /(?:([^{])?([<>=^]))?([+\- ])?(#)?(0)?([0-9]+)?(,)?(\.[0-9]+)?([a-zA-Z%])?/;
var d3_format_types = d3.map({
b: function(x) {
return x.toString(2);
},
c: function(x) {
return String.fromCharCode(x);
},
o: function(x) {
return x.toString(8);
},
x: function(x) {
return x.toString(16);
},
X: function(x) {
return x.toString(16).toUpperCase();
},
g: function(x, p) {
return x.toPrecision(p);
},
e: function(x, p) {
return x.toExponential(p);
},
f: function(x, p) {
return x.toFixed(p);
},
r: function(x, p) {
return (x = d3.round(x, d3_format_precision(x, p))).toFixed(Math.max(0, Math.min(20, d3_format_precision(x * (1 + 1e-15), p))));
}
});
function d3_format_precision(x, p) {
return p - (x ? Math.ceil(Math.log(x) / Math.LN10) : 1);
}
function d3_format_typeDefault(x) {
return x + "";
}
var d3_format_group = d3_identity;
if (d3_format_grouping) {
var d3_format_groupingLength = d3_format_grouping.length;
d3_format_group = function(value) {
var i = value.lastIndexOf("."), f = i >= 0 ? "." + value.substring(i + 1) : (i = value.length,
""), t = [], j = 0, g = d3_format_grouping[0];
while (i > 0 && g > 0) {
t.push(value.substring(i -= g, i + g));
g = d3_format_grouping[j = (j + 1) % d3_format_groupingLength];
}
return t.reverse().join(d3_format_thousandsSeparator || "") + f;
};
}
var d3_formatPrefixes = [ "y", "z", "a", "f", "p", "n", "µ", "m", "", "k", "M", "G", "T", "P", "E", "Z", "Y" ].map(d3_formatPrefix);
d3.formatPrefix = function(value, precision) {
var i = 0;
if (value) {
if (value < 0) value *= -1;
if (precision) value = d3.round(value, d3_format_precision(value, precision));
i = 1 + Math.floor(1e-12 + Math.log(value) / Math.LN10);
i = Math.max(-24, Math.min(24, Math.floor((i <= 0 ? i + 1 : i - 1) / 3) * 3));
}
return d3_formatPrefixes[8 + i / 3];
};
function d3_formatPrefix(d, i) {
var k = Math.pow(10, Math.abs(8 - i) * 3);
return {
scale: i > 8 ? function(d) {
return d / k;
} : function(d) {
return d * k;
},
symbol: d
};
}
var d3_ease_default = function() {
return d3_identity;
};
var d3_ease = d3.map({
linear: d3_ease_default,
poly: d3_ease_poly,
quad: function() {
return d3_ease_quad;
},
cubic: function() {
return d3_ease_cubic;
},
sin: function() {
return d3_ease_sin;
},
exp: function() {
return d3_ease_exp;
},
circle: function() {
return d3_ease_circle;
},
elastic: d3_ease_elastic,
back: d3_ease_back,
bounce: function() {
return d3_ease_bounce;
}
});
var d3_ease_mode = d3.map({
"in": d3_identity,
out: d3_ease_reverse,
"in-out": d3_ease_reflect,
"out-in": function(f) {
return d3_ease_reflect(d3_ease_reverse(f));
}
});
d3.ease = function(name) {
var i = name.indexOf("-"), t = i >= 0 ? name.substring(0, i) : name, m = i >= 0 ? name.substring(i + 1) : "in";
t = d3_ease.get(t) || d3_ease_default;
m = d3_ease_mode.get(m) || d3_identity;
return d3_ease_clamp(m(t.apply(null, Array.prototype.slice.call(arguments, 1))));
};
function d3_ease_clamp(f) {
return function(t) {
return t <= 0 ? 0 : t >= 1 ? 1 : f(t);
};
}
function d3_ease_reverse(f) {
return function(t) {
return 1 - f(1 - t);
};
}
function d3_ease_reflect(f) {
return function(t) {
return .5 * (t < .5 ? f(2 * t) : 2 - f(2 - 2 * t));
};
}
function d3_ease_quad(t) {
return t * t;
}
function d3_ease_cubic(t) {
return t * t * t;
}
function d3_ease_cubicInOut(t) {
if (t <= 0) return 0;
if (t >= 1) return 1;
var t2 = t * t, t3 = t2 * t;
return 4 * (t < .5 ? t3 : 3 * (t - t2) + t3 - .75);
}
function d3_ease_poly(e) {
return function(t) {
return Math.pow(t, e);
};
}
function d3_ease_sin(t) {
return 1 - Math.cos(t * π / 2);
}
function d3_ease_exp(t) {
return Math.pow(2, 10 * (t - 1));
}
function d3_ease_circle(t) {
return 1 - Math.sqrt(1 - t * t);
}
function d3_ease_elastic(a, p) {
var s;
if (arguments.length < 2) p = .45;
if (arguments.length) s = p / (2 * π) * Math.asin(1 / a); else a = 1, s = p / 4;
return function(t) {
return 1 + a * Math.pow(2, 10 * -t) * Math.sin((t - s) * 2 * π / p);
};
}
function d3_ease_back(s) {
if (!s) s = 1.70158;
return function(t) {
return t * t * ((s + 1) * t - s);
};
}
function d3_ease_bounce(t) {
return t < 1 / 2.75 ? 7.5625 * t * t : t < 2 / 2.75 ? 7.5625 * (t -= 1.5 / 2.75) * t + .75 : t < 2.5 / 2.75 ? 7.5625 * (t -= 2.25 / 2.75) * t + .9375 : 7.5625 * (t -= 2.625 / 2.75) * t + .984375;
}
d3.event = null;
function d3_eventCancel() {
d3.event.stopPropagation();
d3.event.preventDefault();
}
function d3_eventSource() {
var e = d3.event, s;
while (s = e.sourceEvent) e = s;
return e;
}
function d3_eventDispatch(target) {
var dispatch = new d3_dispatch(), i = 0, n = arguments.length;
while (++i < n) dispatch[arguments[i]] = d3_dispatch_event(dispatch);
dispatch.of = function(thiz, argumentz) {
return function(e1) {
try {
var e0 = e1.sourceEvent = d3.event;
e1.target = target;
d3.event = e1;
dispatch[e1.type].apply(thiz, argumentz);
} finally {
d3.event = e0;
}
};
};
return dispatch;
}
d3.transform = function(string) {
var g = d3_document.createElementNS(d3.ns.prefix.svg, "g");
return (d3.transform = function(string) {
g.setAttribute("transform", string);
var t = g.transform.baseVal.consolidate();
return new d3_transform(t ? t.matrix : d3_transformIdentity);
})(string);
};
function d3_transform(m) {
var r0 = [ m.a, m.b ], r1 = [ m.c, m.d ], kx = d3_transformNormalize(r0), kz = d3_transformDot(r0, r1), ky = d3_transformNormalize(d3_transformCombine(r1, r0, -kz)) || 0;
if (r0[0] * r1[1] < r1[0] * r0[1]) {
r0[0] *= -1;
r0[1] *= -1;
kx *= -1;
kz *= -1;
}
this.rotate = (kx ? Math.atan2(r0[1], r0[0]) : Math.atan2(-r1[0], r1[1])) * d3_degrees;
this.translate = [ m.e, m.f ];
this.scale = [ kx, ky ];
this.skew = ky ? Math.atan2(kz, ky) * d3_degrees : 0;
}
d3_transform.prototype.toString = function() {
return "translate(" + this.translate + ")rotate(" + this.rotate + ")skewX(" + this.skew + ")scale(" + this.scale + ")";
};
function d3_transformDot(a, b) {
return a[0] * b[0] + a[1] * b[1];
}
function d3_transformNormalize(a) {
var k = Math.sqrt(d3_transformDot(a, a));
if (k) {
a[0] /= k;
a[1] /= k;
}
return k;
}
function d3_transformCombine(a, b, k) {
a[0] += k * b[0];
a[1] += k * b[1];
return a;
}
var d3_transformIdentity = {
a: 1,
b: 0,
c: 0,
d: 1,
e: 0,
f: 0
};
d3.interpolate = function(a, b) {
var i = d3.interpolators.length, f;
while (--i >= 0 && !(f = d3.interpolators[i](a, b))) ;
return f;
};
d3.interpolateNumber = function(a, b) {
b -= a;
return function(t) {
return a + b * t;
};
};
d3.interpolateRound = function(a, b) {
b -= a;
return function(t) {
return Math.round(a + b * t);
};
};
d3.interpolateString = function(a, b) {
var m, i, j, s0 = 0, s1 = 0, s = [], q = [], n, o;
d3_interpolate_number.lastIndex = 0;
for (i = 0; m = d3_interpolate_number.exec(b); ++i) {
if (m.index) s.push(b.substring(s0, s1 = m.index));
q.push({
i: s.length,
x: m[0]
});
s.push(null);
s0 = d3_interpolate_number.lastIndex;
}
if (s0 < b.length) s.push(b.substring(s0));
for (i = 0, n = q.length; (m = d3_interpolate_number.exec(a)) && i < n; ++i) {
o = q[i];
if (o.x == m[0]) {
if (o.i) {
if (s[o.i + 1] == null) {
s[o.i - 1] += o.x;
s.splice(o.i, 1);
for (j = i + 1; j < n; ++j) q[j].i--;
} else {
s[o.i - 1] += o.x + s[o.i + 1];
s.splice(o.i, 2);
for (j = i + 1; j < n; ++j) q[j].i -= 2;
}
} else {
if (s[o.i + 1] == null) {
s[o.i] = o.x;
} else {
s[o.i] = o.x + s[o.i + 1];
s.splice(o.i + 1, 1);
for (j = i + 1; j < n; ++j) q[j].i--;
}
}
q.splice(i, 1);
n--;
i--;
} else {
o.x = d3.interpolateNumber(parseFloat(m[0]), parseFloat(o.x));
}
}
while (i < n) {
o = q.pop();
if (s[o.i + 1] == null) {
s[o.i] = o.x;
} else {
s[o.i] = o.x + s[o.i + 1];
s.splice(o.i + 1, 1);
}
n--;
}
if (s.length === 1) {
return s[0] == null ? q[0].x : function() {
return b;
};
}
return function(t) {
for (i = 0; i < n; ++i) s[(o = q[i]).i] = o.x(t);
return s.join("");
};
};
d3.interpolateTransform = function(a, b) {
var s = [], q = [], n, A = d3.transform(a), B = d3.transform(b), ta = A.translate, tb = B.translate, ra = A.rotate, rb = B.rotate, wa = A.skew, wb = B.skew, ka = A.scale, kb = B.scale;
if (ta[0] != tb[0] || ta[1] != tb[1]) {
s.push("translate(", null, ",", null, ")");
q.push({
i: 1,
x: d3.interpolateNumber(ta[0], tb[0])
}, {
i: 3,
x: d3.interpolateNumber(ta[1], tb[1])
});
} else if (tb[0] || tb[1]) {
s.push("translate(" + tb + ")");
} else {
s.push("");
}
if (ra != rb) {
if (ra - rb > 180) rb += 360; else if (rb - ra > 180) ra += 360;
q.push({
i: s.push(s.pop() + "rotate(", null, ")") - 2,
x: d3.interpolateNumber(ra, rb)
});
} else if (rb) {
s.push(s.pop() + "rotate(" + rb + ")");
}
if (wa != wb) {
q.push({
i: s.push(s.pop() + "skewX(", null, ")") - 2,
x: d3.interpolateNumber(wa, wb)
});
} else if (wb) {
s.push(s.pop() + "skewX(" + wb + ")");
}
if (ka[0] != kb[0] || ka[1] != kb[1]) {
n = s.push(s.pop() + "scale(", null, ",", null, ")");
q.push({
i: n - 4,
x: d3.interpolateNumber(ka[0], kb[0])
}, {
i: n - 2,
x: d3.interpolateNumber(ka[1], kb[1])
});
} else if (kb[0] != 1 || kb[1] != 1) {
s.push(s.pop() + "scale(" + kb + ")");
}
n = q.length;
return function(t) {
var i = -1, o;
while (++i < n) s[(o = q[i]).i] = o.x(t);
return s.join("");
};
};
d3.interpolateRgb = function(a, b) {
a = d3.rgb(a);
b = d3.rgb(b);
var ar = a.r, ag = a.g, ab = a.b, br = b.r - ar, bg = b.g - ag, bb = b.b - ab;
return function(t) {
return "#" + d3_rgb_hex(Math.round(ar + br * t)) + d3_rgb_hex(Math.round(ag + bg * t)) + d3_rgb_hex(Math.round(ab + bb * t));
};
};
d3.interpolateHsl = function(a, b) {
a = d3.hsl(a);
b = d3.hsl(b);
var h0 = a.h, s0 = a.s, l0 = a.l, h1 = b.h - h0, s1 = b.s - s0, l1 = b.l - l0;
if (h1 > 180) h1 -= 360; else if (h1 < -180) h1 += 360;
return function(t) {
return d3_hsl_rgb(h0 + h1 * t, s0 + s1 * t, l0 + l1 * t) + "";
};
};
d3.interpolateLab = function(a, b) {
a = d3.lab(a);
b = d3.lab(b);
var al = a.l, aa = a.a, ab = a.b, bl = b.l - al, ba = b.a - aa, bb = b.b - ab;
return function(t) {
return d3_lab_rgb(al + bl * t, aa + ba * t, ab + bb * t) + "";
};
};
d3.interpolateHcl = function(a, b) {
a = d3.hcl(a);
b = d3.hcl(b);
var ah = a.h, ac = a.c, al = a.l, bh = b.h - ah, bc = b.c - ac, bl = b.l - al;
if (bh > 180) bh -= 360; else if (bh < -180) bh += 360;
return function(t) {
return d3_hcl_lab(ah + bh * t, ac + bc * t, al + bl * t) + "";
};
};
d3.interpolateArray = function(a, b) {
var x = [], c = [], na = a.length, nb = b.length, n0 = Math.min(a.length, b.length), i;
for (i = 0; i < n0; ++i) x.push(d3.interpolate(a[i], b[i]));
for (;i < na; ++i) c[i] = a[i];
for (;i < nb; ++i) c[i] = b[i];
return function(t) {
for (i = 0; i < n0; ++i) c[i] = x[i](t);
return c;
};
};
d3.interpolateObject = function(a, b) {
var i = {}, c = {}, k;
for (k in a) {
if (k in b) {
i[k] = d3_interpolateByName(k)(a[k], b[k]);
} else {
c[k] = a[k];
}
}
for (k in b) {
if (!(k in a)) {
c[k] = b[k];
}
}
return function(t) {
for (k in i) c[k] = i[k](t);
return c;
};
};
var d3_interpolate_number = /[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;
function d3_interpolateByName(name) {
return name == "transform" ? d3.interpolateTransform : d3.interpolate;
}
d3.interpolators = [ d3.interpolateObject, function(a, b) {
return b instanceof Array && d3.interpolateArray(a, b);
}, function(a, b) {
return (typeof a === "string" || typeof b === "string") && d3.interpolateString(a + "", b + "");
}, function(a, b) {
return (typeof b === "string" ? d3_rgb_names.has(b) || /^(#|rgb\(|hsl\()/.test(b) : b instanceof d3_Color) && d3.interpolateRgb(a, b);
}, function(a, b) {
return !isNaN(a = +a) && !isNaN(b = +b) && d3.interpolateNumber(a, b);
} ];
function d3_uninterpolateNumber(a, b) {
b = b - (a = +a) ? 1 / (b - a) : 0;
return function(x) {
return (x - a) * b;
};
}
function d3_uninterpolateClamp(a, b) {
b = b - (a = +a) ? 1 / (b - a) : 0;
return function(x) {
return Math.max(0, Math.min(1, (x - a) * b));
};
}
function d3_Color() {}
d3_Color.prototype.toString = function() {
return this.rgb() + "";
};
d3.rgb = function(r, g, b) {
return arguments.length === 1 ? r instanceof d3_Rgb ? d3_rgb(r.r, r.g, r.b) : d3_rgb_parse("" + r, d3_rgb, d3_hsl_rgb) : d3_rgb(~~r, ~~g, ~~b);
};
function d3_rgb(r, g, b) {
return new d3_Rgb(r, g, b);
}
function d3_Rgb(r, g, b) {
this.r = r;
this.g = g;
this.b = b;
}
var d3_rgbPrototype = d3_Rgb.prototype = new d3_Color();
d3_rgbPrototype.brighter = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
var r = this.r, g = this.g, b = this.b, i = 30;
if (!r && !g && !b) return d3_rgb(i, i, i);
if (r && r < i) r = i;
if (g && g < i) g = i;
if (b && b < i) b = i;
return d3_rgb(Math.min(255, Math.floor(r / k)), Math.min(255, Math.floor(g / k)), Math.min(255, Math.floor(b / k)));
};
d3_rgbPrototype.darker = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_rgb(Math.floor(k * this.r), Math.floor(k * this.g), Math.floor(k * this.b));
};
d3_rgbPrototype.hsl = function() {
return d3_rgb_hsl(this.r, this.g, this.b);
};
d3_rgbPrototype.toString = function() {
return "#" + d3_rgb_hex(this.r) + d3_rgb_hex(this.g) + d3_rgb_hex(this.b);
};
function d3_rgb_hex(v) {
return v < 16 ? "0" + Math.max(0, v).toString(16) : Math.min(255, v).toString(16);
}
function d3_rgb_parse(format, rgb, hsl) {
var r = 0, g = 0, b = 0, m1, m2, name;
m1 = /([a-z]+)\((.*)\)/i.exec(format);
if (m1) {
m2 = m1[2].split(",");
switch (m1[1]) {
case "hsl":
{
return hsl(parseFloat(m2[0]), parseFloat(m2[1]) / 100, parseFloat(m2[2]) / 100);
}
case "rgb":
{
return rgb(d3_rgb_parseNumber(m2[0]), d3_rgb_parseNumber(m2[1]), d3_rgb_parseNumber(m2[2]));
}
}
}
if (name = d3_rgb_names.get(format)) return rgb(name.r, name.g, name.b);
if (format != null && format.charAt(0) === "#") {
if (format.length === 4) {
r = format.charAt(1);
r += r;
g = format.charAt(2);
g += g;
b = format.charAt(3);
b += b;
} else if (format.length === 7) {
r = format.substring(1, 3);
g = format.substring(3, 5);
b = format.substring(5, 7);
}
r = parseInt(r, 16);
g = parseInt(g, 16);
b = parseInt(b, 16);
}
return rgb(r, g, b);
}
function d3_rgb_hsl(r, g, b) {
var min = Math.min(r /= 255, g /= 255, b /= 255), max = Math.max(r, g, b), d = max - min, h, s, l = (max + min) / 2;
if (d) {
s = l < .5 ? d / (max + min) : d / (2 - max - min);
if (r == max) h = (g - b) / d + (g < b ? 6 : 0); else if (g == max) h = (b - r) / d + 2; else h = (r - g) / d + 4;
h *= 60;
} else {
s = h = 0;
}
return d3_hsl(h, s, l);
}
function d3_rgb_lab(r, g, b) {
r = d3_rgb_xyz(r);
g = d3_rgb_xyz(g);
b = d3_rgb_xyz(b);
var x = d3_xyz_lab((.4124564 * r + .3575761 * g + .1804375 * b) / d3_lab_X), y = d3_xyz_lab((.2126729 * r + .7151522 * g + .072175 * b) / d3_lab_Y), z = d3_xyz_lab((.0193339 * r + .119192 * g + .9503041 * b) / d3_lab_Z);
return d3_lab(116 * y - 16, 500 * (x - y), 200 * (y - z));
}
function d3_rgb_xyz(r) {
return (r /= 255) <= .04045 ? r / 12.92 : Math.pow((r + .055) / 1.055, 2.4);
}
function d3_rgb_parseNumber(c) {
var f = parseFloat(c);
return c.charAt(c.length - 1) === "%" ? Math.round(f * 2.55) : f;
}
var d3_rgb_names = d3.map({
aliceblue: "#f0f8ff",
antiquewhite: "#faebd7",
aqua: "#00ffff",
aquamarine: "#7fffd4",
azure: "#f0ffff",
beige: "#f5f5dc",
bisque: "#ffe4c4",
black: "#000000",
blanchedalmond: "#ffebcd",
blue: "#0000ff",
blueviolet: "#8a2be2",
brown: "#a52a2a",
burlywood: "#deb887",
cadetblue: "#5f9ea0",
chartreuse: "#7fff00",
chocolate: "#d2691e",
coral: "#ff7f50",
cornflowerblue: "#6495ed",
cornsilk: "#fff8dc",
crimson: "#dc143c",
cyan: "#00ffff",
darkblue: "#00008b",
darkcyan: "#008b8b",
darkgoldenrod: "#b8860b",
darkgray: "#a9a9a9",
darkgreen: "#006400",
darkgrey: "#a9a9a9",
darkkhaki: "#bdb76b",
darkmagenta: "#8b008b",
darkolivegreen: "#556b2f",
darkorange: "#ff8c00",
darkorchid: "#9932cc",
darkred: "#8b0000",
darksalmon: "#e9967a",
darkseagreen: "#8fbc8f",
darkslateblue: "#483d8b",
darkslategray: "#2f4f4f",
darkslategrey: "#2f4f4f",
darkturquoise: "#00ced1",
darkviolet: "#9400d3",
deeppink: "#ff1493",
deepskyblue: "#00bfff",
dimgray: "#696969",
dimgrey: "#696969",
dodgerblue: "#1e90ff",
firebrick: "#b22222",
floralwhite: "#fffaf0",
forestgreen: "#228b22",
fuchsia: "#ff00ff",
gainsboro: "#dcdcdc",
ghostwhite: "#f8f8ff",
gold: "#ffd700",
goldenrod: "#daa520",
gray: "#808080",
green: "#008000",
greenyellow: "#adff2f",
grey: "#808080",
honeydew: "#f0fff0",
hotpink: "#ff69b4",
indianred: "#cd5c5c",
indigo: "#4b0082",
ivory: "#fffff0",
khaki: "#f0e68c",
lavender: "#e6e6fa",
lavenderblush: "#fff0f5",
lawngreen: "#7cfc00",
lemonchiffon: "#fffacd",
lightblue: "#add8e6",
lightcoral: "#f08080",
lightcyan: "#e0ffff",
lightgoldenrodyellow: "#fafad2",
lightgray: "#d3d3d3",
lightgreen: "#90ee90",
lightgrey: "#d3d3d3",
lightpink: "#ffb6c1",
lightsalmon: "#ffa07a",
lightseagreen: "#20b2aa",
lightskyblue: "#87cefa",
lightslategray: "#778899",
lightslategrey: "#778899",
lightsteelblue: "#b0c4de",
lightyellow: "#ffffe0",
lime: "#00ff00",
limegreen: "#32cd32",
linen: "#faf0e6",
magenta: "#ff00ff",
maroon: "#800000",
mediumaquamarine: "#66cdaa",
mediumblue: "#0000cd",
mediumorchid: "#ba55d3",
mediumpurple: "#9370db",
mediumseagreen: "#3cb371",
mediumslateblue: "#7b68ee",
mediumspringgreen: "#00fa9a",
mediumturquoise: "#48d1cc",
mediumvioletred: "#c71585",
midnightblue: "#191970",
mintcream: "#f5fffa",
mistyrose: "#ffe4e1",
moccasin: "#ffe4b5",
navajowhite: "#ffdead",
navy: "#000080",
oldlace: "#fdf5e6",
olive: "#808000",
olivedrab: "#6b8e23",
orange: "#ffa500",
orangered: "#ff4500",
orchid: "#da70d6",
palegoldenrod: "#eee8aa",
palegreen: "#98fb98",
paleturquoise: "#afeeee",
palevioletred: "#db7093",
papayawhip: "#ffefd5",
peachpuff: "#ffdab9",
peru: "#cd853f",
pink: "#ffc0cb",
plum: "#dda0dd",
powderblue: "#b0e0e6",
purple: "#800080",
red: "#ff0000",
rosybrown: "#bc8f8f",
royalblue: "#4169e1",
saddlebrown: "#8b4513",
salmon: "#fa8072",
sandybrown: "#f4a460",
seagreen: "#2e8b57",
seashell: "#fff5ee",
sienna: "#a0522d",
silver: "#c0c0c0",
skyblue: "#87ceeb",
slateblue: "#6a5acd",
slategray: "#708090",
slategrey: "#708090",
snow: "#fffafa",
springgreen: "#00ff7f",
steelblue: "#4682b4",
tan: "#d2b48c",
teal: "#008080",
thistle: "#d8bfd8",
tomato: "#ff6347",
turquoise: "#40e0d0",
violet: "#ee82ee",
wheat: "#f5deb3",
white: "#ffffff",
whitesmoke: "#f5f5f5",
yellow: "#ffff00",
yellowgreen: "#9acd32"
});
d3_rgb_names.forEach(function(key, value) {
d3_rgb_names.set(key, d3_rgb_parse(value, d3_rgb, d3_hsl_rgb));
});
d3.hsl = function(h, s, l) {
return arguments.length === 1 ? h instanceof d3_Hsl ? d3_hsl(h.h, h.s, h.l) : d3_rgb_parse("" + h, d3_rgb_hsl, d3_hsl) : d3_hsl(+h, +s, +l);
};
function d3_hsl(h, s, l) {
return new d3_Hsl(h, s, l);
}
function d3_Hsl(h, s, l) {
this.h = h;
this.s = s;
this.l = l;
}
var d3_hslPrototype = d3_Hsl.prototype = new d3_Color();
d3_hslPrototype.brighter = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_hsl(this.h, this.s, this.l / k);
};
d3_hslPrototype.darker = function(k) {
k = Math.pow(.7, arguments.length ? k : 1);
return d3_hsl(this.h, this.s, k * this.l);
};
d3_hslPrototype.rgb = function() {
return d3_hsl_rgb(this.h, this.s, this.l);
};
function d3_hsl_rgb(h, s, l) {
var m1, m2;
h = h % 360;
if (h < 0) h += 360;
s = s < 0 ? 0 : s > 1 ? 1 : s;
l = l < 0 ? 0 : l > 1 ? 1 : l;
m2 = l <= .5 ? l * (1 + s) : l + s - l * s;
m1 = 2 * l - m2;
function v(h) {
if (h > 360) h -= 360; else if (h < 0) h += 360;
if (h < 60) return m1 + (m2 - m1) * h / 60;
if (h < 180) return m2;
if (h < 240) return m1 + (m2 - m1) * (240 - h) / 60;
return m1;
}
function vv(h) {
return Math.round(v(h) * 255);
}
return d3_rgb(vv(h + 120), vv(h), vv(h - 120));
}
d3.hcl = function(h, c, l) {
return arguments.length === 1 ? h instanceof d3_Hcl ? d3_hcl(h.h, h.c, h.l) : h instanceof d3_Lab ? d3_lab_hcl(h.l, h.a, h.b) : d3_lab_hcl((h = d3_rgb_lab((h = d3.rgb(h)).r, h.g, h.b)).l, h.a, h.b) : d3_hcl(+h, +c, +l);
};
function d3_hcl(h, c, l) {
return new d3_Hcl(h, c, l);
}
function d3_Hcl(h, c, l) {
this.h = h;
this.c = c;
this.l = l;
}
var d3_hclPrototype = d3_Hcl.prototype = new d3_Color();
d3_hclPrototype.brighter = function(k) {
return d3_hcl(this.h, this.c, Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)));
};
d3_hclPrototype.darker = function(k) {
return d3_hcl(this.h, this.c, Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)));
};
d3_hclPrototype.rgb = function() {
return d3_hcl_lab(this.h, this.c, this.l).rgb();
};
function d3_hcl_lab(h, c, l) {
return d3_lab(l, Math.cos(h *= d3_radians) * c, Math.sin(h) * c);
}
d3.lab = function(l, a, b) {
return arguments.length === 1 ? l instanceof d3_Lab ? d3_lab(l.l, l.a, l.b) : l instanceof d3_Hcl ? d3_hcl_lab(l.l, l.c, l.h) : d3_rgb_lab((l = d3.rgb(l)).r, l.g, l.b) : d3_lab(+l, +a, +b);
};
function d3_lab(l, a, b) {
return new d3_Lab(l, a, b);
}
function d3_Lab(l, a, b) {
this.l = l;
this.a = a;
this.b = b;
}
var d3_lab_K = 18;
var d3_lab_X = .95047, d3_lab_Y = 1, d3_lab_Z = 1.08883;
var d3_labPrototype = d3_Lab.prototype = new d3_Color();
d3_labPrototype.brighter = function(k) {
return d3_lab(Math.min(100, this.l + d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
};
d3_labPrototype.darker = function(k) {
return d3_lab(Math.max(0, this.l - d3_lab_K * (arguments.length ? k : 1)), this.a, this.b);
};
d3_labPrototype.rgb = function() {
return d3_lab_rgb(this.l, this.a, this.b);
};
function d3_lab_rgb(l, a, b) {
var y = (l + 16) / 116, x = y + a / 500, z = y - b / 200;
x = d3_lab_xyz(x) * d3_lab_X;
y = d3_lab_xyz(y) * d3_lab_Y;
z = d3_lab_xyz(z) * d3_lab_Z;
return d3_rgb(d3_xyz_rgb(3.2404542 * x - 1.5371385 * y - .4985314 * z), d3_xyz_rgb(-.969266 * x + 1.8760108 * y + .041556 * z), d3_xyz_rgb(.0556434 * x - .2040259 * y + 1.0572252 * z));
}
function d3_lab_hcl(l, a, b) {
return d3_hcl(Math.atan2(b, a) / π * 180, Math.sqrt(a * a + b * b), l);
}
function d3_lab_xyz(x) {
return x > .206893034 ? x * x * x : (x - 4 / 29) / 7.787037;
}
function d3_xyz_lab(x) {
return x > .008856 ? Math.pow(x, 1 / 3) : 7.787037 * x + 4 / 29;
}
function d3_xyz_rgb(r) {
return Math.round(255 * (r <= .00304 ? 12.92 * r : 1.055 * Math.pow(r, 1 / 2.4) - .055));
}
function d3_selection(groups) {
d3_arraySubclass(groups, d3_selectionPrototype);
return groups;
}
var d3_select = function(s, n) {
return n.querySelector(s);
}, d3_selectAll = function(s, n) {
return n.querySelectorAll(s);
}, d3_selectRoot = d3_document.documentElement, d3_selectMatcher = d3_selectRoot.matchesSelector || d3_selectRoot.webkitMatchesSelector || d3_selectRoot.mozMatchesSelector || d3_selectRoot.msMatchesSelector || d3_selectRoot.oMatchesSelector, d3_selectMatches = function(n, s) {
return d3_selectMatcher.call(n, s);
};
if (typeof Sizzle === "function") {
d3_select = function(s, n) {
return Sizzle(s, n)[0] || null;
};
d3_selectAll = function(s, n) {
return Sizzle.uniqueSort(Sizzle(s, n));
};
d3_selectMatches = Sizzle.matchesSelector;
}
var d3_selectionPrototype = [];
d3.selection = function() {
return d3_selectionRoot;
};
d3.selection.prototype = d3_selectionPrototype;
d3_selectionPrototype.select = function(selector) {
var subgroups = [], subgroup, subnode, group, node;
if (typeof selector !== "function") selector = d3_selection_selector(selector);
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroup.push(subnode = selector.call(node, node.__data__, i));
if (subnode && "__data__" in node) subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
}
}
}
return d3_selection(subgroups);
};
function d3_selection_selector(selector) {
return function() {
return d3_select(selector, this);
};
}
d3_selectionPrototype.selectAll = function(selector) {
var subgroups = [], subgroup, node;
if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroups.push(subgroup = d3_array(selector.call(node, node.__data__, i)));
subgroup.parentNode = node;
}
}
}
return d3_selection(subgroups);
};
function d3_selection_selectorAll(selector) {
return function() {
return d3_selectAll(selector, this);
};
}
d3_selectionPrototype.attr = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") {
var node = this.node();
name = d3.ns.qualify(name);
return name.local ? node.getAttributeNS(name.space, name.local) : node.getAttribute(name);
}
for (value in name) this.each(d3_selection_attr(value, name[value]));
return this;
}
return this.each(d3_selection_attr(name, value));
};
function d3_selection_attr(name, value) {
name = d3.ns.qualify(name);
function attrNull() {
this.removeAttribute(name);
}
function attrNullNS() {
this.removeAttributeNS(name.space, name.local);
}
function attrConstant() {
this.setAttribute(name, value);
}
function attrConstantNS() {
this.setAttributeNS(name.space, name.local, value);
}
function attrFunction() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttribute(name); else this.setAttribute(name, x);
}
function attrFunctionNS() {
var x = value.apply(this, arguments);
if (x == null) this.removeAttributeNS(name.space, name.local); else this.setAttributeNS(name.space, name.local, x);
}
return value == null ? name.local ? attrNullNS : attrNull : typeof value === "function" ? name.local ? attrFunctionNS : attrFunction : name.local ? attrConstantNS : attrConstant;
}
d3_selectionPrototype.classed = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") {
var node = this.node(), n = (name = name.trim().split(/^|\s+/g)).length, i = -1;
if (value = node.classList) {
while (++i < n) if (!value.contains(name[i])) return false;
} else {
value = node.className;
if (value.baseVal != null) value = value.baseVal;
while (++i < n) if (!d3_selection_classedRe(name[i]).test(value)) return false;
}
return true;
}
for (value in name) this.each(d3_selection_classed(value, name[value]));
return this;
}
return this.each(d3_selection_classed(name, value));
};
function d3_selection_classedRe(name) {
return new RegExp("(?:^|\\s+)" + d3.requote(name) + "(?:\\s+|$)", "g");
}
function d3_selection_classed(name, value) {
name = name.trim().split(/\s+/).map(d3_selection_classedName);
var n = name.length;
function classedConstant() {
var i = -1;
while (++i < n) name[i](this, value);
}
function classedFunction() {
var i = -1, x = value.apply(this, arguments);
while (++i < n) name[i](this, x);
}
return typeof value === "function" ? classedFunction : classedConstant;
}
function d3_selection_classedName(name) {
var re = d3_selection_classedRe(name);
return function(node, value) {
if (c = node.classList) return value ? c.add(name) : c.remove(name);
var c = node.className, cb = c.baseVal != null, cv = cb ? c.baseVal : c;
if (value) {
re.lastIndex = 0;
if (!re.test(cv)) {
cv = d3_collapse(cv + " " + name);
if (cb) c.baseVal = cv; else node.className = cv;
}
} else if (cv) {
cv = d3_collapse(cv.replace(re, " "));
if (cb) c.baseVal = cv; else node.className = cv;
}
};
}
d3_selectionPrototype.style = function(name, value, priority) {
var n = arguments.length;
if (n < 3) {
if (typeof name !== "string") {
if (n < 2) value = "";
for (priority in name) this.each(d3_selection_style(priority, name[priority], value));
return this;
}
if (n < 2) return d3_window.getComputedStyle(this.node(), null).getPropertyValue(name);
priority = "";
}
return this.each(d3_selection_style(name, value, priority));
};
function d3_selection_style(name, value, priority) {
function styleNull() {
this.style.removeProperty(name);
}
function styleConstant() {
this.style.setProperty(name, value, priority);
}
function styleFunction() {
var x = value.apply(this, arguments);
if (x == null) this.style.removeProperty(name); else this.style.setProperty(name, x, priority);
}
return value == null ? styleNull : typeof value === "function" ? styleFunction : styleConstant;
}
d3_selectionPrototype.property = function(name, value) {
if (arguments.length < 2) {
if (typeof name === "string") return this.node()[name];
for (value in name) this.each(d3_selection_property(value, name[value]));
return this;
}
return this.each(d3_selection_property(name, value));
};
function d3_selection_property(name, value) {
function propertyNull() {
delete this[name];
}
function propertyConstant() {
this[name] = value;
}
function propertyFunction() {
var x = value.apply(this, arguments);
if (x == null) delete this[name]; else this[name] = x;
}
return value == null ? propertyNull : typeof value === "function" ? propertyFunction : propertyConstant;
}
d3_selectionPrototype.text = function(value) {
return arguments.length ? this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.textContent = v == null ? "" : v;
} : value == null ? function() {
this.textContent = "";
} : function() {
this.textContent = value;
}) : this.node().textContent;
};
d3_selectionPrototype.html = function(value) {
return arguments.length ? this.each(typeof value === "function" ? function() {
var v = value.apply(this, arguments);
this.innerHTML = v == null ? "" : v;
} : value == null ? function() {
this.innerHTML = "";
} : function() {
this.innerHTML = value;
}) : this.node().innerHTML;
};
d3_selectionPrototype.append = function(name) {
name = d3.ns.qualify(name);
function append() {
return this.appendChild(d3_document.createElementNS(this.namespaceURI, name));
}
function appendNS() {
return this.appendChild(d3_document.createElementNS(name.space, name.local));
}
return this.select(name.local ? appendNS : append);
};
d3_selectionPrototype.insert = function(name, before) {
name = d3.ns.qualify(name);
function insert() {
return this.insertBefore(d3_document.createElementNS(this.namespaceURI, name), d3_select(before, this));
}
function insertNS() {
return this.insertBefore(d3_document.createElementNS(name.space, name.local), d3_select(before, this));
}
return this.select(name.local ? insertNS : insert);
};
d3_selectionPrototype.remove = function() {
return this.each(function() {
var parent = this.parentNode;
if (parent) parent.removeChild(this);
});
};
d3_selectionPrototype.data = function(value, key) {
var i = -1, n = this.length, group, node;
if (!arguments.length) {
value = new Array(n = (group = this[0]).length);
while (++i < n) {
if (node = group[i]) {
value[i] = node.__data__;
}
}
return value;
}
function bind(group, groupData) {
var i, n = group.length, m = groupData.length, n0 = Math.min(n, m), updateNodes = new Array(m), enterNodes = new Array(m), exitNodes = new Array(n), node, nodeData;
if (key) {
var nodeByKeyValue = new d3_Map(), dataByKeyValue = new d3_Map(), keyValues = [], keyValue;
for (i = -1; ++i < n; ) {
keyValue = key.call(node = group[i], node.__data__, i);
if (nodeByKeyValue.has(keyValue)) {
exitNodes[i] = node;
} else {
nodeByKeyValue.set(keyValue, node);
}
keyValues.push(keyValue);
}
for (i = -1; ++i < m; ) {
keyValue = key.call(groupData, nodeData = groupData[i], i);
if (node = nodeByKeyValue.get(keyValue)) {
updateNodes[i] = node;
node.__data__ = nodeData;
} else if (!dataByKeyValue.has(keyValue)) {
enterNodes[i] = d3_selection_dataNode(nodeData);
}
dataByKeyValue.set(keyValue, nodeData);
nodeByKeyValue.remove(keyValue);
}
for (i = -1; ++i < n; ) {
if (nodeByKeyValue.has(keyValues[i])) {
exitNodes[i] = group[i];
}
}
} else {
for (i = -1; ++i < n0; ) {
node = group[i];
nodeData = groupData[i];
if (node) {
node.__data__ = nodeData;
updateNodes[i] = node;
} else {
enterNodes[i] = d3_selection_dataNode(nodeData);
}
}
for (;i < m; ++i) {
enterNodes[i] = d3_selection_dataNode(groupData[i]);
}
for (;i < n; ++i) {
exitNodes[i] = group[i];
}
}
enterNodes.update = updateNodes;
enterNodes.parentNode = updateNodes.parentNode = exitNodes.parentNode = group.parentNode;
enter.push(enterNodes);
update.push(updateNodes);
exit.push(exitNodes);
}
var enter = d3_selection_enter([]), update = d3_selection([]), exit = d3_selection([]);
if (typeof value === "function") {
while (++i < n) {
bind(group = this[i], value.call(group, group.parentNode.__data__, i));
}
} else {
while (++i < n) {
bind(group = this[i], value);
}
}
update.enter = function() {
return enter;
};
update.exit = function() {
return exit;
};
return update;
};
function d3_selection_dataNode(data) {
return {
__data__: data
};
}
d3_selectionPrototype.datum = function(value) {
return arguments.length ? this.property("__data__", value) : this.property("__data__");
};
d3_selectionPrototype.filter = function(filter) {
var subgroups = [], subgroup, group, node;
if (typeof filter !== "function") filter = d3_selection_filter(filter);
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
subgroup.parentNode = (group = this[j]).parentNode;
for (var i = 0, n = group.length; i < n; i++) {
if ((node = group[i]) && filter.call(node, node.__data__, i)) {
subgroup.push(node);
}
}
}
return d3_selection(subgroups);
};
function d3_selection_filter(selector) {
return function() {
return d3_selectMatches(this, selector);
};
}
d3_selectionPrototype.order = function() {
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = group.length - 1, next = group[i], node; --i >= 0; ) {
if (node = group[i]) {
if (next && next !== node.nextSibling) next.parentNode.insertBefore(node, next);
next = node;
}
}
}
return this;
};
d3_selectionPrototype.sort = function(comparator) {
comparator = d3_selection_sortComparator.apply(this, arguments);
for (var j = -1, m = this.length; ++j < m; ) this[j].sort(comparator);
return this.order();
};
function d3_selection_sortComparator(comparator) {
if (!arguments.length) comparator = d3.ascending;
return function(a, b) {
return !a - !b || comparator(a.__data__, b.__data__);
};
}
d3_selectionPrototype.on = function(type, listener, capture) {
var n = arguments.length;
if (n < 3) {
if (typeof type !== "string") {
if (n < 2) listener = false;
for (capture in type) this.each(d3_selection_on(capture, type[capture], listener));
return this;
}
if (n < 2) return (n = this.node()["__on" + type]) && n._;
capture = false;
}
return this.each(d3_selection_on(type, listener, capture));
};
function d3_selection_on(type, listener, capture) {
var name = "__on" + type, i = type.indexOf(".");
if (i > 0) type = type.substring(0, i);
function onRemove() {
var wrapper = this[name];
if (wrapper) {
this.removeEventListener(type, wrapper, wrapper.$);
delete this[name];
}
}
function onAdd() {
var node = this, args = d3_array(arguments);
onRemove.call(this);
this.addEventListener(type, this[name] = wrapper, wrapper.$ = capture);
wrapper._ = listener;
function wrapper(e) {
var o = d3.event;
d3.event = e;
args[0] = node.__data__;
try {
listener.apply(node, args);
} finally {
d3.event = o;
}
}
}
return listener ? onAdd : onRemove;
}
d3_selectionPrototype.each = function(callback) {
return d3_selection_each(this, function(node, i, j) {
callback.call(node, node.__data__, i, j);
});
};
function d3_selection_each(groups, callback) {
for (var j = 0, m = groups.length; j < m; j++) {
for (var group = groups[j], i = 0, n = group.length, node; i < n; i++) {
if (node = group[i]) callback(node, i, j);
}
}
return groups;
}
d3_selectionPrototype.call = function(callback) {
var args = d3_array(arguments);
callback.apply(args[0] = this, args);
return this;
};
d3_selectionPrototype.empty = function() {
return !this.node();
};
d3_selectionPrototype.node = function() {
for (var j = 0, m = this.length; j < m; j++) {
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
var node = group[i];
if (node) return node;
}
}
return null;
};
d3_selectionPrototype.transition = function() {
var id = d3_transitionInheritId || ++d3_transitionId, subgroups = [], subgroup, node, transition = Object.create(d3_transitionInherit);
transition.time = Date.now();
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) d3_transitionNode(node, i, id, transition);
subgroup.push(node);
}
}
return d3_transition(subgroups, id);
};
var d3_selectionRoot = d3_selection([ [ d3_document ] ]);
d3_selectionRoot[0].parentNode = d3_selectRoot;
d3.select = function(selector) {
return typeof selector === "string" ? d3_selectionRoot.select(selector) : d3_selection([ [ selector ] ]);
};
d3.selectAll = function(selector) {
return typeof selector === "string" ? d3_selectionRoot.selectAll(selector) : d3_selection([ d3_array(selector) ]);
};
function d3_selection_enter(selection) {
d3_arraySubclass(selection, d3_selection_enterPrototype);
return selection;
}
var d3_selection_enterPrototype = [];
d3.selection.enter = d3_selection_enter;
d3.selection.enter.prototype = d3_selection_enterPrototype;
d3_selection_enterPrototype.append = d3_selectionPrototype.append;
d3_selection_enterPrototype.insert = d3_selectionPrototype.insert;
d3_selection_enterPrototype.empty = d3_selectionPrototype.empty;
d3_selection_enterPrototype.node = d3_selectionPrototype.node;
d3_selection_enterPrototype.select = function(selector) {
var subgroups = [], subgroup, subnode, upgroup, group, node;
for (var j = -1, m = this.length; ++j < m; ) {
upgroup = (group = this[j]).update;
subgroups.push(subgroup = []);
subgroup.parentNode = group.parentNode;
for (var i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
subgroup.push(upgroup[i] = subnode = selector.call(group.parentNode, node.__data__, i));
subnode.__data__ = node.__data__;
} else {
subgroup.push(null);
}
}
}
return d3_selection(subgroups);
};
function d3_transition(groups, id) {
d3_arraySubclass(groups, d3_transitionPrototype);
groups.id = id;
return groups;
}
var d3_transitionPrototype = [], d3_transitionId = 0, d3_transitionInheritId, d3_transitionInherit = {
ease: d3_ease_cubicInOut,
delay: 0,
duration: 250
};
d3_transitionPrototype.call = d3_selectionPrototype.call;
d3_transitionPrototype.empty = d3_selectionPrototype.empty;
d3_transitionPrototype.node = d3_selectionPrototype.node;
d3.transition = function(selection) {
return arguments.length ? d3_transitionInheritId ? selection.transition() : selection : d3_selectionRoot.transition();
};
d3.transition.prototype = d3_transitionPrototype;
function d3_transitionNode(node, i, id, inherit) {
var lock = node.__transition__ || (node.__transition__ = {
active: 0,
count: 0
}), transition = lock[id];
if (!transition) {
var time = inherit.time;
transition = lock[id] = {
tween: new d3_Map(),
event: d3.dispatch("start", "end"),
time: time,
ease: inherit.ease,
delay: inherit.delay,
duration: inherit.duration
};
++lock.count;
d3.timer(function(elapsed) {
var d = node.__data__, ease = transition.ease, event = transition.event, delay = transition.delay, duration = transition.duration, tweened = [];
return delay <= elapsed ? start(elapsed) : d3.timer(start, delay, time), 1;
function start(elapsed) {
if (lock.active > id) return stop();
lock.active = id;
event.start.call(node, d, i);
transition.tween.forEach(function(key, value) {
if (value = value.call(node, d, i)) {
tweened.push(value);
}
});
if (!tick(elapsed)) d3.timer(tick, 0, time);
return 1;
}
function tick(elapsed) {
if (lock.active !== id) return stop();
var t = (elapsed - delay) / duration, e = ease(t), n = tweened.length;
while (n > 0) {
tweened[--n].call(node, e);
}
if (t >= 1) {
stop();
event.end.call(node, d, i);
return 1;
}
}
function stop() {
if (--lock.count) delete lock[id]; else delete node.__transition__;
return 1;
}
}, 0, time);
return transition;
}
}
d3_transitionPrototype.select = function(selector) {
var id = this.id, subgroups = [], subgroup, subnode, node;
if (typeof selector !== "function") selector = d3_selection_selector(selector);
for (var j = -1, m = this.length; ++j < m; ) {
subgroups.push(subgroup = []);
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if ((node = group[i]) && (subnode = selector.call(node, node.__data__, i))) {
if ("__data__" in node) subnode.__data__ = node.__data__;
d3_transitionNode(subnode, i, id, node.__transition__[id]);
subgroup.push(subnode);
} else {
subgroup.push(null);
}
}
}
return d3_transition(subgroups, id);
};
d3_transitionPrototype.selectAll = function(selector) {
var id = this.id, subgroups = [], subgroup, subnodes, node, subnode, transition;
if (typeof selector !== "function") selector = d3_selection_selectorAll(selector);
for (var j = -1, m = this.length; ++j < m; ) {
for (var group = this[j], i = -1, n = group.length; ++i < n; ) {
if (node = group[i]) {
transition = node.__transition__[id];
subnodes = selector.call(node, node.__data__, i);
subgroups.push(subgroup = []);
for (var k = -1, o = subnodes.length; ++k < o; ) {
d3_transitionNode(subnode = subnodes[k], k, id, transition);
subgroup.push(subnode);
}
}
}
}
return d3_transition(subgroups, id);
};
d3_transitionPrototype.filter = function(filter) {
var subgroups = [], subgroup, group, node;
if (typeof filter !== "function") filter = d3_selection_filter(filter);
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
if ((node = group[i]) && filter.call(node, node.__data__, i)) {
subgroup.push(node);
}
}
}
return d3_transition(subgroups, this.id, this.time).ease(this.ease());
};
d3_transitionPrototype.attr = function(nameNS, value) {
if (arguments.length < 2) {
for (value in nameNS) this.attr(value, nameNS[value]);
return this;
}
var interpolate = d3_interpolateByName(nameNS), name = d3.ns.qualify(nameNS);
function attrNull() {
this.removeAttribute(name);
}
function attrNullNS() {
this.removeAttributeNS(name.space, name.local);
}
return d3_transition_tween(this, "attr." + nameNS, value, function(b) {
function attrString() {
var a = this.getAttribute(name), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.setAttribute(name, i(t));
});
}
function attrStringNS() {
var a = this.getAttributeNS(name.space, name.local), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.setAttributeNS(name.space, name.local, i(t));
});
}
return b == null ? name.local ? attrNullNS : attrNull : (b += "", name.local ? attrStringNS : attrString);
});
};
d3_transitionPrototype.attrTween = function(nameNS, tween) {
var name = d3.ns.qualify(nameNS);
function attrTween(d, i) {
var f = tween.call(this, d, i, this.getAttribute(name));
return f && function(t) {
this.setAttribute(name, f(t));
};
}
function attrTweenNS(d, i) {
var f = tween.call(this, d, i, this.getAttributeNS(name.space, name.local));
return f && function(t) {
this.setAttributeNS(name.space, name.local, f(t));
};
}
return this.tween("attr." + nameNS, name.local ? attrTweenNS : attrTween);
};
d3_transitionPrototype.style = function(name, value, priority) {
var n = arguments.length;
if (n < 3) {
if (typeof name !== "string") {
if (n < 2) value = "";
for (priority in name) this.style(priority, name[priority], value);
return this;
}
priority = "";
}
var interpolate = d3_interpolateByName(name);
function styleNull() {
this.style.removeProperty(name);
}
return d3_transition_tween(this, "style." + name, value, function(b) {
function styleString() {
var a = d3_window.getComputedStyle(this, null).getPropertyValue(name), i;
return a !== b && (i = interpolate(a, b), function(t) {
this.style.setProperty(name, i(t), priority);
});
}
return b == null ? styleNull : (b += "", styleString);
});
};
d3_transitionPrototype.styleTween = function(name, tween, priority) {
if (arguments.length < 3) priority = "";
return this.tween("style." + name, function(d, i) {
var f = tween.call(this, d, i, d3_window.getComputedStyle(this, null).getPropertyValue(name));
return f && function(t) {
this.style.setProperty(name, f(t), priority);
};
});
};
d3_transitionPrototype.text = function(value) {
return d3_transition_tween(this, "text", value, d3_transition_text);
};
function d3_transition_text(b) {
if (b == null) b = "";
return function() {
this.textContent = b;
};
}
d3_transitionPrototype.remove = function() {
return this.each("end.transition", function() {
var p;
if (!this.__transition__ && (p = this.parentNode)) p.removeChild(this);
});
};
d3_transitionPrototype.ease = function(value) {
var id = this.id;
if (arguments.length < 1) return this.node().__transition__[id].ease;
if (typeof value !== "function") value = d3.ease.apply(d3, arguments);
return d3_selection_each(this, function(node) {
node.__transition__[id].ease = value;
});
};
d3_transitionPrototype.delay = function(value) {
var id = this.id;
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].delay = value.call(node, node.__data__, i, j) | 0;
} : (value |= 0, function(node) {
node.__transition__[id].delay = value;
}));
};
d3_transitionPrototype.duration = function(value) {
var id = this.id;
return d3_selection_each(this, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].duration = Math.max(1, value.call(node, node.__data__, i, j) | 0);
} : (value = Math.max(1, value | 0), function(node) {
node.__transition__[id].duration = value;
}));
};
d3_transitionPrototype.each = function(type, listener) {
var id = this.id;
if (arguments.length < 2) {
var inherit = d3_transitionInherit, inheritId = d3_transitionInheritId;
d3_transitionInheritId = id;
d3_selection_each(this, function(node, i, j) {
d3_transitionInherit = node.__transition__[id];
type.call(node, node.__data__, i, j);
});
d3_transitionInherit = inherit;
d3_transitionInheritId = inheritId;
} else {
d3_selection_each(this, function(node) {
node.__transition__[id].event.on(type, listener);
});
}
return this;
};
d3_transitionPrototype.transition = function() {
var id0 = this.id, id1 = ++d3_transitionId, subgroups = [], subgroup, group, node, transition;
for (var j = 0, m = this.length; j < m; j++) {
subgroups.push(subgroup = []);
for (var group = this[j], i = 0, n = group.length; i < n; i++) {
if (node = group[i]) {
transition = Object.create(node.__transition__[id0]);
transition.delay += transition.duration;
d3_transitionNode(node, i, id1, transition);
}
subgroup.push(node);
}
}
return d3_transition(subgroups, id1);
};
d3_transitionPrototype.tween = function(name, tween) {
var id = this.id;
if (arguments.length < 2) return this.node().__transition__[id].tween.get(name);
return d3_selection_each(this, tween == null ? function(node) {
node.__transition__[id].tween.remove(name);
} : function(node) {
node.__transition__[id].tween.set(name, tween);
});
};
function d3_transition_tween(groups, name, value, tween) {
var id = groups.id;
return d3_selection_each(groups, typeof value === "function" ? function(node, i, j) {
node.__transition__[id].tween.set(name, tween(value.call(node, node.__data__, i, j)));
} : (value = tween(value), function(node) {
node.__transition__[id].tween.set(name, value);
}));
}
var d3_timer_id = 0, d3_timer_byId = {}, d3_timer_queue = null, d3_timer_interval, d3_timer_timeout;
d3.timer = function(callback, delay, then) {
if (arguments.length < 3) {
if (arguments.length < 2) delay = 0; else if (!isFinite(delay)) return;
then = Date.now();
}
var timer = d3_timer_byId[callback.id];
if (timer && timer.callback === callback) {
timer.then = then;
timer.delay = delay;
} else d3_timer_byId[callback.id = ++d3_timer_id] = d3_timer_queue = {
callback: callback,
then: then,
delay: delay,
next: d3_timer_queue
};
if (!d3_timer_interval) {
d3_timer_timeout = clearTimeout(d3_timer_timeout);
d3_timer_interval = 1;
d3_timer_frame(d3_timer_step);
}
};
function d3_timer_step() {
var elapsed, now = Date.now(), t1 = d3_timer_queue;
while (t1) {
elapsed = now - t1.then;
if (elapsed >= t1.delay) t1.flush = t1.callback(elapsed);
t1 = t1.next;
}
var delay = d3_timer_flush() - now;
if (delay > 24) {
if (isFinite(delay)) {
clearTimeout(d3_timer_timeout);
d3_timer_timeout = setTimeout(d3_timer_step, delay);
}
d3_timer_interval = 0;
} else {
d3_timer_interval = 1;
d3_timer_frame(d3_timer_step);
}
}
d3.timer.flush = function() {
var elapsed, now = Date.now(), t1 = d3_timer_queue;
while (t1) {
elapsed = now - t1.then;
if (!t1.delay) t1.flush = t1.callback(elapsed);
t1 = t1.next;
}
d3_timer_flush();
};
function d3_timer_flush() {
var t0 = null, t1 = d3_timer_queue, then = Infinity;
while (t1) {
if (t1.flush) {
delete d3_timer_byId[t1.callback.id];
t1 = t0 ? t0.next = t1.next : d3_timer_queue = t1.next;
} else {
then = Math.min(then, t1.then + t1.delay);
t1 = (t0 = t1).next;
}
}
return then;
}
var d3_timer_frame = d3_window.requestAnimationFrame || d3_window.webkitRequestAnimationFrame || d3_window.mozRequestAnimationFrame || d3_window.oRequestAnimationFrame || d3_window.msRequestAnimationFrame || function(callback) {
setTimeout(callback, 17);
};
d3.mouse = function(container) {
return d3_mousePoint(container, d3_eventSource());
};
var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
function d3_mousePoint(container, e) {
var svg = container.ownerSVGElement || container;
if (svg.createSVGPoint) {
var point = svg.createSVGPoint();
if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) {
svg = d3.select(d3_document.body).append("svg").style("position", "absolute").style("top", 0).style("left", 0);
var ctm = svg[0][0].getScreenCTM();
d3_mouse_bug44083 = !(ctm.f || ctm.e);
svg.remove();
}
if (d3_mouse_bug44083) {
point.x = e.pageX;
point.y = e.pageY;
} else {
point.x = e.clientX;
point.y = e.clientY;
}
point = point.matrixTransform(container.getScreenCTM().inverse());
return [ point.x, point.y ];
}
var rect = container.getBoundingClientRect();
return [ e.clientX - rect.left - container.clientLeft, e.clientY - rect.top - container.clientTop ];
}
d3.touches = function(container, touches) {
if (arguments.length < 2) touches = d3_eventSource().touches;
return touches ? d3_array(touches).map(function(touch) {
var point = d3_mousePoint(container, touch);
point.identifier = touch.identifier;
return point;
}) : [];
};
function d3_noop() {}
d3.scale = {};
function d3_scaleExtent(domain) {
var start = domain[0], stop = domain[domain.length - 1];
return start < stop ? [ start, stop ] : [ stop, start ];
}
function d3_scaleRange(scale) {
return scale.rangeExtent ? scale.rangeExtent() : d3_scaleExtent(scale.range());
}
function d3_scale_nice(domain, nice) {
var i0 = 0, i1 = domain.length - 1, x0 = domain[i0], x1 = domain[i1], dx;
if (x1 < x0) {
dx = i0, i0 = i1, i1 = dx;
dx = x0, x0 = x1, x1 = dx;
}
if (nice = nice(x1 - x0)) {
domain[i0] = nice.floor(x0);
domain[i1] = nice.ceil(x1);
}
return domain;
}
function d3_scale_niceDefault() {
return Math;
}
d3.scale.linear = function() {
return d3_scale_linear([ 0, 1 ], [ 0, 1 ], d3.interpolate, false);
};
function d3_scale_linear(domain, range, interpolate, clamp) {
var output, input;
function rescale() {
var linear = Math.min(domain.length, range.length) > 2 ? d3_scale_polylinear : d3_scale_bilinear, uninterpolate = clamp ? d3_uninterpolateClamp : d3_uninterpolateNumber;
output = linear(domain, range, uninterpolate, interpolate);
input = linear(range, domain, uninterpolate, d3.interpolate);
return scale;
}
function scale(x) {
return output(x);
}
scale.invert = function(y) {
return input(y);
};
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = x.map(Number);
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.rangeRound = function(x) {
return scale.range(x).interpolate(d3.interpolateRound);
};
scale.clamp = function(x) {
if (!arguments.length) return clamp;
clamp = x;
return rescale();
};
scale.interpolate = function(x) {
if (!arguments.length) return interpolate;
interpolate = x;
return rescale();
};
scale.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
scale.tickFormat = function(m) {
return d3_scale_linearTickFormat(domain, m);
};
scale.nice = function() {
d3_scale_nice(domain, d3_scale_linearNice);
return rescale();
};
scale.copy = function() {
return d3_scale_linear(domain, range, interpolate, clamp);
};
return rescale();
}
function d3_scale_linearRebind(scale, linear) {
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
}
function d3_scale_linearNice(dx) {
dx = Math.pow(10, Math.round(Math.log(dx) / Math.LN10) - 1);
return dx && {
floor: function(x) {
return Math.floor(x / dx) * dx;
},
ceil: function(x) {
return Math.ceil(x / dx) * dx;
}
};
}
function d3_scale_linearTickRange(domain, m) {
var extent = d3_scaleExtent(domain), span = extent[1] - extent[0], step = Math.pow(10, Math.floor(Math.log(span / m) / Math.LN10)), err = m / span * step;
if (err <= .15) step *= 10; else if (err <= .35) step *= 5; else if (err <= .75) step *= 2;
extent[0] = Math.ceil(extent[0] / step) * step;
extent[1] = Math.floor(extent[1] / step) * step + step * .5;
extent[2] = step;
return extent;
}
function d3_scale_linearTicks(domain, m) {
return d3.range.apply(d3, d3_scale_linearTickRange(domain, m));
}
function d3_scale_linearTickFormat(domain, m) {
return d3.format(",." + Math.max(0, -Math.floor(Math.log(d3_scale_linearTickRange(domain, m)[2]) / Math.LN10 + .01)) + "f");
}
function d3_scale_bilinear(domain, range, uninterpolate, interpolate) {
var u = uninterpolate(domain[0], domain[1]), i = interpolate(range[0], range[1]);
return function(x) {
return i(u(x));
};
}
function d3_scale_polylinear(domain, range, uninterpolate, interpolate) {
var u = [], i = [], j = 0, k = Math.min(domain.length, range.length) - 1;
if (domain[k] < domain[0]) {
domain = domain.slice().reverse();
range = range.slice().reverse();
}
while (++j <= k) {
u.push(uninterpolate(domain[j - 1], domain[j]));
i.push(interpolate(range[j - 1], range[j]));
}
return function(x) {
var j = d3.bisect(domain, x, 1, k) - 1;
return i[j](u[j](x));
};
}
d3.scale.log = function() {
return d3_scale_log(d3.scale.linear(), d3_scale_logp);
};
function d3_scale_log(linear, log) {
var pow = log.pow;
function scale(x) {
return linear(log(x));
}
scale.invert = function(x) {
return pow(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return linear.domain().map(pow);
log = x[0] < 0 ? d3_scale_logn : d3_scale_logp;
pow = log.pow;
linear.domain(x.map(log));
return scale;
};
scale.nice = function() {
linear.domain(d3_scale_nice(linear.domain(), d3_scale_niceDefault));
return scale;
};
scale.ticks = function() {
var extent = d3_scaleExtent(linear.domain()), ticks = [];
if (extent.every(isFinite)) {
var i = Math.floor(extent[0]), j = Math.ceil(extent[1]), u = pow(extent[0]), v = pow(extent[1]);
if (log === d3_scale_logn) {
ticks.push(pow(i));
for (;i++ < j; ) for (var k = 9; k > 0; k--) ticks.push(pow(i) * k);
} else {
for (;i < j; i++) for (var k = 1; k < 10; k++) ticks.push(pow(i) * k);
ticks.push(pow(i));
}
for (i = 0; ticks[i] < u; i++) {}
for (j = ticks.length; ticks[j - 1] > v; j--) {}
ticks = ticks.slice(i, j);
}
return ticks;
};
scale.tickFormat = function(n, format) {
if (arguments.length < 2) format = d3_scale_logFormat;
if (!arguments.length) return format;
var k = Math.max(.1, n / scale.ticks().length), f = log === d3_scale_logn ? (e = -1e-12,
Math.floor) : (e = 1e-12, Math.ceil), e;
return function(d) {
return d / pow(f(log(d) + e)) <= k ? format(d) : "";
};
};
scale.copy = function() {
return d3_scale_log(linear.copy(), log);
};
return d3_scale_linearRebind(scale, linear);
}
var d3_scale_logFormat = d3.format(".0e");
function d3_scale_logp(x) {
return Math.log(x < 0 ? 0 : x) / Math.LN10;
}
function d3_scale_logn(x) {
return -Math.log(x > 0 ? 0 : -x) / Math.LN10;
}
d3_scale_logp.pow = function(x) {
return Math.pow(10, x);
};
d3_scale_logn.pow = function(x) {
return -Math.pow(10, -x);
};
d3.scale.pow = function() {
return d3_scale_pow(d3.scale.linear(), 1);
};
function d3_scale_pow(linear, exponent) {
var powp = d3_scale_powPow(exponent), powb = d3_scale_powPow(1 / exponent);
function scale(x) {
return linear(powp(x));
}
scale.invert = function(x) {
return powb(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return linear.domain().map(powb);
linear.domain(x.map(powp));
return scale;
};
scale.ticks = function(m) {
return d3_scale_linearTicks(scale.domain(), m);
};
scale.tickFormat = function(m) {
return d3_scale_linearTickFormat(scale.domain(), m);
};
scale.nice = function() {
return scale.domain(d3_scale_nice(scale.domain(), d3_scale_linearNice));
};
scale.exponent = function(x) {
if (!arguments.length) return exponent;
var domain = scale.domain();
powp = d3_scale_powPow(exponent = x);
powb = d3_scale_powPow(1 / exponent);
return scale.domain(domain);
};
scale.copy = function() {
return d3_scale_pow(linear.copy(), exponent);
};
return d3_scale_linearRebind(scale, linear);
}
function d3_scale_powPow(e) {
return function(x) {
return x < 0 ? -Math.pow(-x, e) : Math.pow(x, e);
};
}
d3.scale.sqrt = function() {
return d3.scale.pow().exponent(.5);
};
d3.scale.ordinal = function() {
return d3_scale_ordinal([], {
t: "range",
a: [ [] ]
});
};
function d3_scale_ordinal(domain, ranger) {
var index, range, rangeBand;
function scale(x) {
return range[((index.get(x) || index.set(x, domain.push(x))) - 1) % range.length];
}
function steps(start, step) {
return d3.range(domain.length).map(function(i) {
return start + step * i;
});
}
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = [];
index = new d3_Map();
var i = -1, n = x.length, xi;
while (++i < n) if (!index.has(xi = x[i])) index.set(xi, domain.push(xi));
return scale[ranger.t].apply(scale, ranger.a);
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
rangeBand = 0;
ranger = {
t: "range",
a: arguments
};
return scale;
};
scale.rangePoints = function(x, padding) {
if (arguments.length < 2) padding = 0;
var start = x[0], stop = x[1], step = (stop - start) / (Math.max(1, domain.length - 1) + padding);
range = steps(domain.length < 2 ? (start + stop) / 2 : start + step * padding / 2, step);
rangeBand = 0;
ranger = {
t: "rangePoints",
a: arguments
};
return scale;
};
scale.rangeBands = function(x, padding, outerPadding) {
if (arguments.length < 2) padding = 0;
if (arguments.length < 3) outerPadding = padding;
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = (stop - start) / (domain.length - padding + 2 * outerPadding);
range = steps(start + step * outerPadding, step);
if (reverse) range.reverse();
rangeBand = step * (1 - padding);
ranger = {
t: "rangeBands",
a: arguments
};
return scale;
};
scale.rangeRoundBands = function(x, padding, outerPadding) {
if (arguments.length < 2) padding = 0;
if (arguments.length < 3) outerPadding = padding;
var reverse = x[1] < x[0], start = x[reverse - 0], stop = x[1 - reverse], step = Math.floor((stop - start) / (domain.length - padding + 2 * outerPadding)), error = stop - start - (domain.length - padding) * step;
range = steps(start + Math.round(error / 2), step);
if (reverse) range.reverse();
rangeBand = Math.round(step * (1 - padding));
ranger = {
t: "rangeRoundBands",
a: arguments
};
return scale;
};
scale.rangeBand = function() {
return rangeBand;
};
scale.rangeExtent = function() {
return d3_scaleExtent(ranger.a[0]);
};
scale.copy = function() {
return d3_scale_ordinal(domain, ranger);
};
return scale.domain(domain);
}
d3.scale.category10 = function() {
return d3.scale.ordinal().range(d3_category10);
};
d3.scale.category20 = function() {
return d3.scale.ordinal().range(d3_category20);
};
d3.scale.category20b = function() {
return d3.scale.ordinal().range(d3_category20b);
};
d3.scale.category20c = function() {
return d3.scale.ordinal().range(d3_category20c);
};
var d3_category10 = [ "#1f77b4", "#ff7f0e", "#2ca02c", "#d62728", "#9467bd", "#8c564b", "#e377c2", "#7f7f7f", "#bcbd22", "#17becf" ];
var d3_category20 = [ "#1f77b4", "#aec7e8", "#ff7f0e", "#ffbb78", "#2ca02c", "#98df8a", "#d62728", "#ff9896", "#9467bd", "#c5b0d5", "#8c564b", "#c49c94", "#e377c2", "#f7b6d2", "#7f7f7f", "#c7c7c7", "#bcbd22", "#dbdb8d", "#17becf", "#9edae5" ];
var d3_category20b = [ "#393b79", "#5254a3", "#6b6ecf", "#9c9ede", "#637939", "#8ca252", "#b5cf6b", "#cedb9c", "#8c6d31", "#bd9e39", "#e7ba52", "#e7cb94", "#843c39", "#ad494a", "#d6616b", "#e7969c", "#7b4173", "#a55194", "#ce6dbd", "#de9ed6" ];
var d3_category20c = [ "#3182bd", "#6baed6", "#9ecae1", "#c6dbef", "#e6550d", "#fd8d3c", "#fdae6b", "#fdd0a2", "#31a354", "#74c476", "#a1d99b", "#c7e9c0", "#756bb1", "#9e9ac8", "#bcbddc", "#dadaeb", "#636363", "#969696", "#bdbdbd", "#d9d9d9" ];
d3.scale.quantile = function() {
return d3_scale_quantile([], []);
};
function d3_scale_quantile(domain, range) {
var thresholds;
function rescale() {
var k = 0, q = range.length;
thresholds = [];
while (++k < q) thresholds[k - 1] = d3.quantile(domain, k / q);
return scale;
}
function scale(x) {
if (isNaN(x = +x)) return NaN;
return range[d3.bisect(thresholds, x)];
}
scale.domain = function(x) {
if (!arguments.length) return domain;
domain = x.filter(function(d) {
return !isNaN(d);
}).sort(d3.ascending);
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.quantiles = function() {
return thresholds;
};
scale.copy = function() {
return d3_scale_quantile(domain, range);
};
return rescale();
}
d3.scale.quantize = function() {
return d3_scale_quantize(0, 1, [ 0, 1 ]);
};
function d3_scale_quantize(x0, x1, range) {
var kx, i;
function scale(x) {
return range[Math.max(0, Math.min(i, Math.floor(kx * (x - x0))))];
}
function rescale() {
kx = range.length / (x1 - x0);
i = range.length - 1;
return scale;
}
scale.domain = function(x) {
if (!arguments.length) return [ x0, x1 ];
x0 = +x[0];
x1 = +x[x.length - 1];
return rescale();
};
scale.range = function(x) {
if (!arguments.length) return range;
range = x;
return rescale();
};
scale.copy = function() {
return d3_scale_quantize(x0, x1, range);
};
return rescale();
}
d3.scale.threshold = function() {
return d3_scale_threshold([ .5 ], [ 0, 1 ]);
};
function d3_scale_threshold(domain, range) {
function scale(x) {
return range[d3.bisect(domain, x)];
}
scale.domain = function(_) {
if (!arguments.length) return domain;
domain = _;
return scale;
};
scale.range = function(_) {
if (!arguments.length) return range;
range = _;
return scale;
};
scale.copy = function() {
return d3_scale_threshold(domain, range);
};
return scale;
}
d3.scale.identity = function() {
return d3_scale_identity([ 0, 1 ]);
};
function d3_scale_identity(domain) {
function identity(x) {
return +x;
}
identity.invert = identity;
identity.domain = identity.range = function(x) {
if (!arguments.length) return domain;
domain = x.map(identity);
return identity;
};
identity.ticks = function(m) {
return d3_scale_linearTicks(domain, m);
};
identity.tickFormat = function(m) {
return d3_scale_linearTickFormat(domain, m);
};
identity.copy = function() {
return d3_scale_identity(domain);
};
return identity;
}
d3.svg = {};
d3.svg.arc = function() {
var innerRadius = d3_svg_arcInnerRadius, outerRadius = d3_svg_arcOuterRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
function arc() {
var r0 = innerRadius.apply(this, arguments), r1 = outerRadius.apply(this, arguments), a0 = startAngle.apply(this, arguments) + d3_svg_arcOffset, a1 = endAngle.apply(this, arguments) + d3_svg_arcOffset, da = (a1 < a0 && (da = a0,
a0 = a1, a1 = da), a1 - a0), df = da < π ? "0" : "1", c0 = Math.cos(a0), s0 = Math.sin(a0), c1 = Math.cos(a1), s1 = Math.sin(a1);
return da >= d3_svg_arcMax ? r0 ? "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "M0," + r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + -r0 + "A" + r0 + "," + r0 + " 0 1,0 0," + r0 + "Z" : "M0," + r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + -r1 + "A" + r1 + "," + r1 + " 0 1,1 0," + r1 + "Z" : r0 ? "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L" + r0 * c1 + "," + r0 * s1 + "A" + r0 + "," + r0 + " 0 " + df + ",0 " + r0 * c0 + "," + r0 * s0 + "Z" : "M" + r1 * c0 + "," + r1 * s0 + "A" + r1 + "," + r1 + " 0 " + df + ",1 " + r1 * c1 + "," + r1 * s1 + "L0,0" + "Z";
}
arc.innerRadius = function(v) {
if (!arguments.length) return innerRadius;
innerRadius = d3_functor(v);
return arc;
};
arc.outerRadius = function(v) {
if (!arguments.length) return outerRadius;
outerRadius = d3_functor(v);
return arc;
};
arc.startAngle = function(v) {
if (!arguments.length) return startAngle;
startAngle = d3_functor(v);
return arc;
};
arc.endAngle = function(v) {
if (!arguments.length) return endAngle;
endAngle = d3_functor(v);
return arc;
};
arc.centroid = function() {
var r = (innerRadius.apply(this, arguments) + outerRadius.apply(this, arguments)) / 2, a = (startAngle.apply(this, arguments) + endAngle.apply(this, arguments)) / 2 + d3_svg_arcOffset;
return [ Math.cos(a) * r, Math.sin(a) * r ];
};
return arc;
};
var d3_svg_arcOffset = -π / 2, d3_svg_arcMax = 2 * π - 1e-6;
function d3_svg_arcInnerRadius(d) {
return d.innerRadius;
}
function d3_svg_arcOuterRadius(d) {
return d.outerRadius;
}
function d3_svg_arcStartAngle(d) {
return d.startAngle;
}
function d3_svg_arcEndAngle(d) {
return d.endAngle;
}
function d3_svg_line(projection) {
var x = d3_svg_lineX, y = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, tension = .7;
function line(data) {
var segments = [], points = [], i = -1, n = data.length, d, fx = d3_functor(x), fy = d3_functor(y);
function segment() {
segments.push("M", interpolate(projection(points), tension));
}
while (++i < n) {
if (defined.call(this, d = data[i], i)) {
points.push([ +fx.call(this, d, i), +fy.call(this, d, i) ]);
} else if (points.length) {
segment();
points = [];
}
}
if (points.length) segment();
return segments.length ? segments.join("") : null;
}
line.x = function(_) {
if (!arguments.length) return x;
x = _;
return line;
};
line.y = function(_) {
if (!arguments.length) return y;
y = _;
return line;
};
line.defined = function(_) {
if (!arguments.length) return defined;
defined = _;
return line;
};
line.interpolate = function(_) {
if (!arguments.length) return interpolateKey;
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
return line;
};
line.tension = function(_) {
if (!arguments.length) return tension;
tension = _;
return line;
};
return line;
}
d3.svg.line = function() {
return d3_svg_line(d3_identity);
};
function d3_svg_lineX(d) {
return d[0];
}
function d3_svg_lineY(d) {
return d[1];
}
var d3_svg_lineInterpolators = d3.map({
linear: d3_svg_lineLinear,
"linear-closed": d3_svg_lineLinearClosed,
"step-before": d3_svg_lineStepBefore,
"step-after": d3_svg_lineStepAfter,
basis: d3_svg_lineBasis,
"basis-open": d3_svg_lineBasisOpen,
"basis-closed": d3_svg_lineBasisClosed,
bundle: d3_svg_lineBundle,
cardinal: d3_svg_lineCardinal,
"cardinal-open": d3_svg_lineCardinalOpen,
"cardinal-closed": d3_svg_lineCardinalClosed,
monotone: d3_svg_lineMonotone
});
d3_svg_lineInterpolators.forEach(function(key, value) {
value.key = key;
value.closed = /-closed$/.test(key);
});
function d3_svg_lineLinear(points) {
return points.join("L");
}
function d3_svg_lineLinearClosed(points) {
return d3_svg_lineLinear(points) + "Z";
}
function d3_svg_lineStepBefore(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("V", (p = points[i])[1], "H", p[0]);
return path.join("");
}
function d3_svg_lineStepAfter(points) {
var i = 0, n = points.length, p = points[0], path = [ p[0], ",", p[1] ];
while (++i < n) path.push("H", (p = points[i])[0], "V", p[1]);
return path.join("");
}
function d3_svg_lineCardinalOpen(points, tension) {
return points.length < 4 ? d3_svg_lineLinear(points) : points[1] + d3_svg_lineHermite(points.slice(1, points.length - 1), d3_svg_lineCardinalTangents(points, tension));
}
function d3_svg_lineCardinalClosed(points, tension) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite((points.push(points[0]),
points), d3_svg_lineCardinalTangents([ points[points.length - 2] ].concat(points, [ points[1] ]), tension));
}
function d3_svg_lineCardinal(points, tension) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineCardinalTangents(points, tension));
}
function d3_svg_lineHermite(points, tangents) {
if (tangents.length < 1 || points.length != tangents.length && points.length != tangents.length + 2) {
return d3_svg_lineLinear(points);
}
var quad = points.length != tangents.length, path = "", p0 = points[0], p = points[1], t0 = tangents[0], t = t0, pi = 1;
if (quad) {
path += "Q" + (p[0] - t0[0] * 2 / 3) + "," + (p[1] - t0[1] * 2 / 3) + "," + p[0] + "," + p[1];
p0 = points[1];
pi = 2;
}
if (tangents.length > 1) {
t = tangents[1];
p = points[pi];
pi++;
path += "C" + (p0[0] + t0[0]) + "," + (p0[1] + t0[1]) + "," + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
for (var i = 2; i < tangents.length; i++, pi++) {
p = points[pi];
t = tangents[i];
path += "S" + (p[0] - t[0]) + "," + (p[1] - t[1]) + "," + p[0] + "," + p[1];
}
}
if (quad) {
var lp = points[pi];
path += "Q" + (p[0] + t[0] * 2 / 3) + "," + (p[1] + t[1] * 2 / 3) + "," + lp[0] + "," + lp[1];
}
return path;
}
function d3_svg_lineCardinalTangents(points, tension) {
var tangents = [], a = (1 - tension) / 2, p0, p1 = points[0], p2 = points[1], i = 1, n = points.length;
while (++i < n) {
p0 = p1;
p1 = p2;
p2 = points[i];
tangents.push([ a * (p2[0] - p0[0]), a * (p2[1] - p0[1]) ]);
}
return tangents;
}
function d3_svg_lineBasis(points) {
if (points.length < 3) return d3_svg_lineLinear(points);
var i = 1, n = points.length, pi = points[0], x0 = pi[0], y0 = pi[1], px = [ x0, x0, x0, (pi = points[1])[0] ], py = [ y0, y0, y0, pi[1] ], path = [ x0, ",", y0 ];
d3_svg_lineBasisBezier(path, px, py);
while (++i < n) {
pi = points[i];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
i = -1;
while (++i < 2) {
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBasisOpen(points) {
if (points.length < 4) return d3_svg_lineLinear(points);
var path = [], i = -1, n = points.length, pi, px = [ 0 ], py = [ 0 ];
while (++i < 3) {
pi = points[i];
px.push(pi[0]);
py.push(pi[1]);
}
path.push(d3_svg_lineDot4(d3_svg_lineBasisBezier3, px) + "," + d3_svg_lineDot4(d3_svg_lineBasisBezier3, py));
--i;
while (++i < n) {
pi = points[i];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBasisClosed(points) {
var path, i = -1, n = points.length, m = n + 4, pi, px = [], py = [];
while (++i < 4) {
pi = points[i % n];
px.push(pi[0]);
py.push(pi[1]);
}
path = [ d3_svg_lineDot4(d3_svg_lineBasisBezier3, px), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, py) ];
--i;
while (++i < m) {
pi = points[i % n];
px.shift();
px.push(pi[0]);
py.shift();
py.push(pi[1]);
d3_svg_lineBasisBezier(path, px, py);
}
return path.join("");
}
function d3_svg_lineBundle(points, tension) {
var n = points.length - 1;
if (n) {
var x0 = points[0][0], y0 = points[0][1], dx = points[n][0] - x0, dy = points[n][1] - y0, i = -1, p, t;
while (++i <= n) {
p = points[i];
t = i / n;
p[0] = tension * p[0] + (1 - tension) * (x0 + t * dx);
p[1] = tension * p[1] + (1 - tension) * (y0 + t * dy);
}
}
return d3_svg_lineBasis(points);
}
function d3_svg_lineDot4(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2] + a[3] * b[3];
}
var d3_svg_lineBasisBezier1 = [ 0, 2 / 3, 1 / 3, 0 ], d3_svg_lineBasisBezier2 = [ 0, 1 / 3, 2 / 3, 0 ], d3_svg_lineBasisBezier3 = [ 0, 1 / 6, 2 / 3, 1 / 6 ];
function d3_svg_lineBasisBezier(path, x, y) {
path.push("C", d3_svg_lineDot4(d3_svg_lineBasisBezier1, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier1, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier2, y), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, x), ",", d3_svg_lineDot4(d3_svg_lineBasisBezier3, y));
}
function d3_svg_lineSlope(p0, p1) {
return (p1[1] - p0[1]) / (p1[0] - p0[0]);
}
function d3_svg_lineFiniteDifferences(points) {
var i = 0, j = points.length - 1, m = [], p0 = points[0], p1 = points[1], d = m[0] = d3_svg_lineSlope(p0, p1);
while (++i < j) {
m[i] = (d + (d = d3_svg_lineSlope(p0 = p1, p1 = points[i + 1]))) / 2;
}
m[i] = d;
return m;
}
function d3_svg_lineMonotoneTangents(points) {
var tangents = [], d, a, b, s, m = d3_svg_lineFiniteDifferences(points), i = -1, j = points.length - 1;
while (++i < j) {
d = d3_svg_lineSlope(points[i], points[i + 1]);
if (Math.abs(d) < 1e-6) {
m[i] = m[i + 1] = 0;
} else {
a = m[i] / d;
b = m[i + 1] / d;
s = a * a + b * b;
if (s > 9) {
s = d * 3 / Math.sqrt(s);
m[i] = s * a;
m[i + 1] = s * b;
}
}
}
i = -1;
while (++i <= j) {
s = (points[Math.min(j, i + 1)][0] - points[Math.max(0, i - 1)][0]) / (6 * (1 + m[i] * m[i]));
tangents.push([ s || 0, m[i] * s || 0 ]);
}
return tangents;
}
function d3_svg_lineMonotone(points) {
return points.length < 3 ? d3_svg_lineLinear(points) : points[0] + d3_svg_lineHermite(points, d3_svg_lineMonotoneTangents(points));
}
d3.svg.line.radial = function() {
var line = d3_svg_line(d3_svg_lineRadial);
line.radius = line.x, delete line.x;
line.angle = line.y, delete line.y;
return line;
};
function d3_svg_lineRadial(points) {
var point, i = -1, n = points.length, r, a;
while (++i < n) {
point = points[i];
r = point[0];
a = point[1] + d3_svg_arcOffset;
point[0] = r * Math.cos(a);
point[1] = r * Math.sin(a);
}
return points;
}
function d3_svg_area(projection) {
var x0 = d3_svg_lineX, x1 = d3_svg_lineX, y0 = 0, y1 = d3_svg_lineY, defined = d3_true, interpolate = d3_svg_lineLinear, interpolateKey = interpolate.key, interpolateReverse = interpolate, L = "L", tension = .7;
function area(data) {
var segments = [], points0 = [], points1 = [], i = -1, n = data.length, d, fx0 = d3_functor(x0), fy0 = d3_functor(y0), fx1 = x0 === x1 ? function() {
return x;
} : d3_functor(x1), fy1 = y0 === y1 ? function() {
return y;
} : d3_functor(y1), x, y;
function segment() {
segments.push("M", interpolate(projection(points1), tension), L, interpolateReverse(projection(points0.reverse()), tension), "Z");
}
while (++i < n) {
if (defined.call(this, d = data[i], i)) {
points0.push([ x = +fx0.call(this, d, i), y = +fy0.call(this, d, i) ]);
points1.push([ +fx1.call(this, d, i), +fy1.call(this, d, i) ]);
} else if (points0.length) {
segment();
points0 = [];
points1 = [];
}
}
if (points0.length) segment();
return segments.length ? segments.join("") : null;
}
area.x = function(_) {
if (!arguments.length) return x1;
x0 = x1 = _;
return area;
};
area.x0 = function(_) {
if (!arguments.length) return x0;
x0 = _;
return area;
};
area.x1 = function(_) {
if (!arguments.length) return x1;
x1 = _;
return area;
};
area.y = function(_) {
if (!arguments.length) return y1;
y0 = y1 = _;
return area;
};
area.y0 = function(_) {
if (!arguments.length) return y0;
y0 = _;
return area;
};
area.y1 = function(_) {
if (!arguments.length) return y1;
y1 = _;
return area;
};
area.defined = function(_) {
if (!arguments.length) return defined;
defined = _;
return area;
};
area.interpolate = function(_) {
if (!arguments.length) return interpolateKey;
if (typeof _ === "function") interpolateKey = interpolate = _; else interpolateKey = (interpolate = d3_svg_lineInterpolators.get(_) || d3_svg_lineLinear).key;
interpolateReverse = interpolate.reverse || interpolate;
L = interpolate.closed ? "M" : "L";
return area;
};
area.tension = function(_) {
if (!arguments.length) return tension;
tension = _;
return area;
};
return area;
}
d3_svg_lineStepBefore.reverse = d3_svg_lineStepAfter;
d3_svg_lineStepAfter.reverse = d3_svg_lineStepBefore;
d3.svg.area = function() {
return d3_svg_area(d3_identity);
};
d3.svg.area.radial = function() {
var area = d3_svg_area(d3_svg_lineRadial);
area.radius = area.x, delete area.x;
area.innerRadius = area.x0, delete area.x0;
area.outerRadius = area.x1, delete area.x1;
area.angle = area.y, delete area.y;
area.startAngle = area.y0, delete area.y0;
area.endAngle = area.y1, delete area.y1;
return area;
};
d3.svg.chord = function() {
var source = d3_source, target = d3_target, radius = d3_svg_chordRadius, startAngle = d3_svg_arcStartAngle, endAngle = d3_svg_arcEndAngle;
function chord(d, i) {
var s = subgroup(this, source, d, i), t = subgroup(this, target, d, i);
return "M" + s.p0 + arc(s.r, s.p1, s.a1 - s.a0) + (equals(s, t) ? curve(s.r, s.p1, s.r, s.p0) : curve(s.r, s.p1, t.r, t.p0) + arc(t.r, t.p1, t.a1 - t.a0) + curve(t.r, t.p1, s.r, s.p0)) + "Z";
}
function subgroup(self, f, d, i) {
var subgroup = f.call(self, d, i), r = radius.call(self, subgroup, i), a0 = startAngle.call(self, subgroup, i) + d3_svg_arcOffset, a1 = endAngle.call(self, subgroup, i) + d3_svg_arcOffset;
return {
r: r,
a0: a0,
a1: a1,
p0: [ r * Math.cos(a0), r * Math.sin(a0) ],
p1: [ r * Math.cos(a1), r * Math.sin(a1) ]
};
}
function equals(a, b) {
return a.a0 == b.a0 && a.a1 == b.a1;
}
function arc(r, p, a) {
return "A" + r + "," + r + " 0 " + +(a > π) + ",1 " + p;
}
function curve(r0, p0, r1, p1) {
return "Q 0,0 " + p1;
}
chord.radius = function(v) {
if (!arguments.length) return radius;
radius = d3_functor(v);
return chord;
};
chord.source = function(v) {
if (!arguments.length) return source;
source = d3_functor(v);
return chord;
};
chord.target = function(v) {
if (!arguments.length) return target;
target = d3_functor(v);
return chord;
};
chord.startAngle = function(v) {
if (!arguments.length) return startAngle;
startAngle = d3_functor(v);
return chord;
};
chord.endAngle = function(v) {
if (!arguments.length) return endAngle;
endAngle = d3_functor(v);
return chord;
};
return chord;
};
function d3_svg_chordRadius(d) {
return d.radius;
}
d3.svg.diagonal = function() {
var source = d3_source, target = d3_target, projection = d3_svg_diagonalProjection;
function diagonal(d, i) {
var p0 = source.call(this, d, i), p3 = target.call(this, d, i), m = (p0.y + p3.y) / 2, p = [ p0, {
x: p0.x,
y: m
}, {
x: p3.x,
y: m
}, p3 ];
p = p.map(projection);
return "M" + p[0] + "C" + p[1] + " " + p[2] + " " + p[3];
}
diagonal.source = function(x) {
if (!arguments.length) return source;
source = d3_functor(x);
return diagonal;
};
diagonal.target = function(x) {
if (!arguments.length) return target;
target = d3_functor(x);
return diagonal;
};
diagonal.projection = function(x) {
if (!arguments.length) return projection;
projection = x;
return diagonal;
};
return diagonal;
};
function d3_svg_diagonalProjection(d) {
return [ d.x, d.y ];
}
d3.svg.diagonal.radial = function() {
var diagonal = d3.svg.diagonal(), projection = d3_svg_diagonalProjection, projection_ = diagonal.projection;
diagonal.projection = function(x) {
return arguments.length ? projection_(d3_svg_diagonalRadialProjection(projection = x)) : projection;
};
return diagonal;
};
function d3_svg_diagonalRadialProjection(projection) {
return function() {
var d = projection.apply(this, arguments), r = d[0], a = d[1] + d3_svg_arcOffset;
return [ r * Math.cos(a), r * Math.sin(a) ];
};
}
d3.svg.symbol = function() {
var type = d3_svg_symbolType, size = d3_svg_symbolSize;
function symbol(d, i) {
return (d3_svg_symbols.get(type.call(this, d, i)) || d3_svg_symbolCircle)(size.call(this, d, i));
}
symbol.type = function(x) {
if (!arguments.length) return type;
type = d3_functor(x);
return symbol;
};
symbol.size = function(x) {
if (!arguments.length) return size;
size = d3_functor(x);
return symbol;
};
return symbol;
};
function d3_svg_symbolSize() {
return 64;
}
function d3_svg_symbolType() {
return "circle";
}
function d3_svg_symbolCircle(size) {
var r = Math.sqrt(size / π);
return "M0," + r + "A" + r + "," + r + " 0 1,1 0," + -r + "A" + r + "," + r + " 0 1,1 0," + r + "Z";
}
var d3_svg_symbols = d3.map({
circle: d3_svg_symbolCircle,
cross: function(size) {
var r = Math.sqrt(size / 5) / 2;
return "M" + -3 * r + "," + -r + "H" + -r + "V" + -3 * r + "H" + r + "V" + -r + "H" + 3 * r + "V" + r + "H" + r + "V" + 3 * r + "H" + -r + "V" + r + "H" + -3 * r + "Z";
},
diamond: function(size) {
var ry = Math.sqrt(size / (2 * d3_svg_symbolTan30)), rx = ry * d3_svg_symbolTan30;
return "M0," + -ry + "L" + rx + ",0" + " 0," + ry + " " + -rx + ",0" + "Z";
},
square: function(size) {
var r = Math.sqrt(size) / 2;
return "M" + -r + "," + -r + "L" + r + "," + -r + " " + r + "," + r + " " + -r + "," + r + "Z";
},
"triangle-down": function(size) {
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
return "M0," + ry + "L" + rx + "," + -ry + " " + -rx + "," + -ry + "Z";
},
"triangle-up": function(size) {
var rx = Math.sqrt(size / d3_svg_symbolSqrt3), ry = rx * d3_svg_symbolSqrt3 / 2;
return "M0," + -ry + "L" + rx + "," + ry + " " + -rx + "," + ry + "Z";
}
});
d3.svg.symbolTypes = d3_svg_symbols.keys();
var d3_svg_symbolSqrt3 = Math.sqrt(3), d3_svg_symbolTan30 = Math.tan(30 * d3_radians);
d3.svg.axis = function() {
var scale = d3.scale.linear(), orient = d3_svg_axisDefaultOrient, tickMajorSize = 6, tickMinorSize = 6, tickEndSize = 6, tickPadding = 3, tickArguments_ = [ 10 ], tickValues = null, tickFormat_, tickSubdivide = 0;
function axis(g) {
g.each(function() {
var g = d3.select(this);
var ticks = tickValues == null ? scale.ticks ? scale.ticks.apply(scale, tickArguments_) : scale.domain() : tickValues, tickFormat = tickFormat_ == null ? scale.tickFormat ? scale.tickFormat.apply(scale, tickArguments_) : String : tickFormat_;
var subticks = d3_svg_axisSubdivide(scale, ticks, tickSubdivide), subtick = g.selectAll(".tick.minor").data(subticks, String), subtickEnter = subtick.enter().insert("line", ".tick").attr("class", "tick minor").style("opacity", 1e-6), subtickExit = d3.transition(subtick.exit()).style("opacity", 1e-6).remove(), subtickUpdate = d3.transition(subtick).style("opacity", 1);
var tick = g.selectAll(".tick.major").data(ticks, String), tickEnter = tick.enter().insert("g", "path").attr("class", "tick major").style("opacity", 1e-6), tickExit = d3.transition(tick.exit()).style("opacity", 1e-6).remove(), tickUpdate = d3.transition(tick).style("opacity", 1), tickTransform;
var range = d3_scaleRange(scale), path = g.selectAll(".domain").data([ 0 ]), pathUpdate = (path.enter().append("path").attr("class", "domain"),
d3.transition(path));
var scale1 = scale.copy(), scale0 = this.__chart__ || scale1;
this.__chart__ = scale1;
tickEnter.append("line");
tickEnter.append("text");
var lineEnter = tickEnter.select("line"), lineUpdate = tickUpdate.select("line"), text = tick.select("text").text(tickFormat), textEnter = tickEnter.select("text"), textUpdate = tickUpdate.select("text");
switch (orient) {
case "bottom":
{
tickTransform = d3_svg_axisX;
subtickEnter.attr("y2", tickMinorSize);
subtickUpdate.attr("x2", 0).attr("y2", tickMinorSize);
lineEnter.attr("y2", tickMajorSize);
textEnter.attr("y", Math.max(tickMajorSize, 0) + tickPadding);
lineUpdate.attr("x2", 0).attr("y2", tickMajorSize);
textUpdate.attr("x", 0).attr("y", Math.max(tickMajorSize, 0) + tickPadding);
text.attr("dy", ".71em").style("text-anchor", "middle");
pathUpdate.attr("d", "M" + range[0] + "," + tickEndSize + "V0H" + range[1] + "V" + tickEndSize);
break;
}
case "top":
{
tickTransform = d3_svg_axisX;
subtickEnter.attr("y2", -tickMinorSize);
subtickUpdate.attr("x2", 0).attr("y2", -tickMinorSize);
lineEnter.attr("y2", -tickMajorSize);
textEnter.attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
lineUpdate.attr("x2", 0).attr("y2", -tickMajorSize);
textUpdate.attr("x", 0).attr("y", -(Math.max(tickMajorSize, 0) + tickPadding));
text.attr("dy", "0em").style("text-anchor", "middle");
pathUpdate.attr("d", "M" + range[0] + "," + -tickEndSize + "V0H" + range[1] + "V" + -tickEndSize);
break;
}
case "left":
{
tickTransform = d3_svg_axisY;
subtickEnter.attr("x2", -tickMinorSize);
subtickUpdate.attr("x2", -tickMinorSize).attr("y2", 0);
lineEnter.attr("x2", -tickMajorSize);
textEnter.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding));
lineUpdate.attr("x2", -tickMajorSize).attr("y2", 0);
textUpdate.attr("x", -(Math.max(tickMajorSize, 0) + tickPadding)).attr("y", 0);
text.attr("dy", ".32em").style("text-anchor", "end");
pathUpdate.attr("d", "M" + -tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + -tickEndSize);
break;
}
case "right":
{
tickTransform = d3_svg_axisY;
subtickEnter.attr("x2", tickMinorSize);
subtickUpdate.attr("x2", tickMinorSize).attr("y2", 0);
lineEnter.attr("x2", tickMajorSize);
textEnter.attr("x", Math.max(tickMajorSize, 0) + tickPadding);
lineUpdate.attr("x2", tickMajorSize).attr("y2", 0);
textUpdate.attr("x", Math.max(tickMajorSize, 0) + tickPadding).attr("y", 0);
text.attr("dy", ".32em").style("text-anchor", "start");
pathUpdate.attr("d", "M" + tickEndSize + "," + range[0] + "H0V" + range[1] + "H" + tickEndSize);
break;
}
}
if (scale.ticks) {
tickEnter.call(tickTransform, scale0);
tickUpdate.call(tickTransform, scale1);
tickExit.call(tickTransform, scale1);
subtickEnter.call(tickTransform, scale0);
subtickUpdate.call(tickTransform, scale1);
subtickExit.call(tickTransform, scale1);
} else {
var dx = scale1.rangeBand() / 2, x = function(d) {
return scale1(d) + dx;
};
tickEnter.call(tickTransform, x);
tickUpdate.call(tickTransform, x);
}
});
}
axis.scale = function(x) {
if (!arguments.length) return scale;
scale = x;
return axis;
};
axis.orient = function(x) {
if (!arguments.length) return orient;
orient = x in d3_svg_axisOrients ? x + "" : d3_svg_axisDefaultOrient;
return axis;
};
axis.ticks = function() {
if (!arguments.length) return tickArguments_;
tickArguments_ = arguments;
return axis;
};
axis.tickValues = function(x) {
if (!arguments.length) return tickValues;
tickValues = x;
return axis;
};
axis.tickFormat = function(x) {
if (!arguments.length) return tickFormat_;
tickFormat_ = x;
return axis;
};
axis.tickSize = function(x, y) {
if (!arguments.length) return tickMajorSize;
var n = arguments.length - 1;
tickMajorSize = +x;
tickMinorSize = n > 1 ? +y : tickMajorSize;
tickEndSize = n > 0 ? +arguments[n] : tickMajorSize;
return axis;
};
axis.tickPadding = function(x) {
if (!arguments.length) return tickPadding;
tickPadding = +x;
return axis;
};
axis.tickSubdivide = function(x) {
if (!arguments.length) return tickSubdivide;
tickSubdivide = +x;
return axis;
};
return axis;
};
var d3_svg_axisDefaultOrient = "bottom", d3_svg_axisOrients = {
top: 1,
right: 1,
bottom: 1,
left: 1
};
function d3_svg_axisX(selection, x) {
selection.attr("transform", function(d) {
return "translate(" + x(d) + ",0)";
});
}
function d3_svg_axisY(selection, y) {
selection.attr("transform", function(d) {
return "translate(0," + y(d) + ")";
});
}
function d3_svg_axisSubdivide(scale, ticks, m) {
subticks = [];
if (m && ticks.length > 1) {
var extent = d3_scaleExtent(scale.domain()), subticks, i = -1, n = ticks.length, d = (ticks[1] - ticks[0]) / ++m, j, v;
while (++i < n) {
for (j = m; --j > 0; ) {
if ((v = +ticks[i] - j * d) >= extent[0]) {
subticks.push(v);
}
}
}
for (--i, j = 0; ++j < m && (v = +ticks[i] + j * d) < extent[1]; ) {
subticks.push(v);
}
}
return subticks;
}
d3.svg.brush = function() {
var event = d3_eventDispatch(brush, "brushstart", "brush", "brushend"), x = null, y = null, resizes = d3_svg_brushResizes[0], extent = [ [ 0, 0 ], [ 0, 0 ] ], extentDomain;
function brush(g) {
g.each(function() {
var g = d3.select(this), bg = g.selectAll(".background").data([ 0 ]), fg = g.selectAll(".extent").data([ 0 ]), tz = g.selectAll(".resize").data(resizes, String), e;
g.style("pointer-events", "all").on("mousedown.brush", brushstart).on("touchstart.brush", brushstart);
bg.enter().append("rect").attr("class", "background").style("visibility", "hidden").style("cursor", "crosshair");
fg.enter().append("rect").attr("class", "extent").style("cursor", "move");
tz.enter().append("g").attr("class", function(d) {
return "resize " + d;
}).style("cursor", function(d) {
return d3_svg_brushCursor[d];
}).append("rect").attr("x", function(d) {
return /[ew]$/.test(d) ? -3 : null;
}).attr("y", function(d) {
return /^[ns]/.test(d) ? -3 : null;
}).attr("width", 6).attr("height", 6).style("visibility", "hidden");
tz.style("display", brush.empty() ? "none" : null);
tz.exit().remove();
if (x) {
e = d3_scaleRange(x);
bg.attr("x", e[0]).attr("width", e[1] - e[0]);
redrawX(g);
}
if (y) {
e = d3_scaleRange(y);
bg.attr("y", e[0]).attr("height", e[1] - e[0]);
redrawY(g);
}
redraw(g);
});
}
function redraw(g) {
g.selectAll(".resize").attr("transform", function(d) {
return "translate(" + extent[+/e$/.test(d)][0] + "," + extent[+/^s/.test(d)][1] + ")";
});
}
function redrawX(g) {
g.select(".extent").attr("x", extent[0][0]);
g.selectAll(".extent,.n>rect,.s>rect").attr("width", extent[1][0] - extent[0][0]);
}
function redrawY(g) {
g.select(".extent").attr("y", extent[0][1]);
g.selectAll(".extent,.e>rect,.w>rect").attr("height", extent[1][1] - extent[0][1]);
}
function brushstart() {
var target = this, eventTarget = d3.select(d3.event.target), event_ = event.of(target, arguments), g = d3.select(target), resizing = eventTarget.datum(), resizingX = !/^(n|s)$/.test(resizing) && x, resizingY = !/^(e|w)$/.test(resizing) && y, dragging = eventTarget.classed("extent"), center, origin = mouse(), offset;
var w = d3.select(d3_window).on("mousemove.brush", brushmove).on("mouseup.brush", brushend).on("touchmove.brush", brushmove).on("touchend.brush", brushend).on("keydown.brush", keydown).on("keyup.brush", keyup);
if (dragging) {
origin[0] = extent[0][0] - origin[0];
origin[1] = extent[0][1] - origin[1];
} else if (resizing) {
var ex = +/w$/.test(resizing), ey = +/^n/.test(resizing);
offset = [ extent[1 - ex][0] - origin[0], extent[1 - ey][1] - origin[1] ];
origin[0] = extent[ex][0];
origin[1] = extent[ey][1];
} else if (d3.event.altKey) center = origin.slice();
g.style("pointer-events", "none").selectAll(".resize").style("display", null);
d3.select("body").style("cursor", eventTarget.style("cursor"));
event_({
type: "brushstart"
});
brushmove();
d3_eventCancel();
function mouse() {
var touches = d3.event.changedTouches;
return touches ? d3.touches(target, touches)[0] : d3.mouse(target);
}
function keydown() {
if (d3.event.keyCode == 32) {
if (!dragging) {
center = null;
origin[0] -= extent[1][0];
origin[1] -= extent[1][1];
dragging = 2;
}
d3_eventCancel();
}
}
function keyup() {
if (d3.event.keyCode == 32 && dragging == 2) {
origin[0] += extent[1][0];
origin[1] += extent[1][1];
dragging = 0;
d3_eventCancel();
}
}
function brushmove() {
var point = mouse(), moved = false;
if (offset) {
point[0] += offset[0];
point[1] += offset[1];
}
if (!dragging) {
if (d3.event.altKey) {
if (!center) center = [ (extent[0][0] + extent[1][0]) / 2, (extent[0][1] + extent[1][1]) / 2 ];
origin[0] = extent[+(point[0] < center[0])][0];
origin[1] = extent[+(point[1] < center[1])][1];
} else center = null;
}
if (resizingX && move1(point, x, 0)) {
redrawX(g);
moved = true;
}
if (resizingY && move1(point, y, 1)) {
redrawY(g);
moved = true;
}
if (moved) {
redraw(g);
event_({
type: "brush",
mode: dragging ? "move" : "resize"
});
}
}
function move1(point, scale, i) {
var range = d3_scaleRange(scale), r0 = range[0], r1 = range[1], position = origin[i], size = extent[1][i] - extent[0][i], min, max;
if (dragging) {
r0 -= position;
r1 -= size + position;
}
min = Math.max(r0, Math.min(r1, point[i]));
if (dragging) {
max = (min += position) + size;
} else {
if (center) position = Math.max(r0, Math.min(r1, 2 * center[i] - min));
if (position < min) {
max = min;
min = position;
} else {
max = position;
}
}
if (extent[0][i] !== min || extent[1][i] !== max) {
extentDomain = null;
extent[0][i] = min;
extent[1][i] = max;
return true;
}
}
function brushend() {
brushmove();
g.style("pointer-events", "all").selectAll(".resize").style("display", brush.empty() ? "none" : null);
d3.select("body").style("cursor", null);
w.on("mousemove.brush", null).on("mouseup.brush", null).on("touchmove.brush", null).on("touchend.brush", null).on("keydown.brush", null).on("keyup.brush", null);
event_({
type: "brushend"
});
d3_eventCancel();
}
}
brush.x = function(z) {
if (!arguments.length) return x;
x = z;
resizes = d3_svg_brushResizes[!x << 1 | !y];
return brush;
};
brush.y = function(z) {
if (!arguments.length) return y;
y = z;
resizes = d3_svg_brushResizes[!x << 1 | !y];
return brush;
};
brush.extent = function(z) {
var x0, x1, y0, y1, t;
if (!arguments.length) {
z = extentDomain || extent;
if (x) {
x0 = z[0][0], x1 = z[1][0];
if (!extentDomain) {
x0 = extent[0][0], x1 = extent[1][0];
if (x.invert) x0 = x.invert(x0), x1 = x.invert(x1);
if (x1 < x0) t = x0, x0 = x1, x1 = t;
}
}
if (y) {
y0 = z[0][1], y1 = z[1][1];
if (!extentDomain) {
y0 = extent[0][1], y1 = extent[1][1];
if (y.invert) y0 = y.invert(y0), y1 = y.invert(y1);
if (y1 < y0) t = y0, y0 = y1, y1 = t;
}
}
return x && y ? [ [ x0, y0 ], [ x1, y1 ] ] : x ? [ x0, x1 ] : y && [ y0, y1 ];
}
extentDomain = [ [ 0, 0 ], [ 0, 0 ] ];
if (x) {
x0 = z[0], x1 = z[1];
if (y) x0 = x0[0], x1 = x1[0];
extentDomain[0][0] = x0, extentDomain[1][0] = x1;
if (x.invert) x0 = x(x0), x1 = x(x1);
if (x1 < x0) t = x0, x0 = x1, x1 = t;
extent[0][0] = x0 | 0, extent[1][0] = x1 | 0;
}
if (y) {
y0 = z[0], y1 = z[1];
if (x) y0 = y0[1], y1 = y1[1];
extentDomain[0][1] = y0, extentDomain[1][1] = y1;
if (y.invert) y0 = y(y0), y1 = y(y1);
if (y1 < y0) t = y0, y0 = y1, y1 = t;
extent[0][1] = y0 | 0, extent[1][1] = y1 | 0;
}
return brush;
};
brush.clear = function() {
extentDomain = null;
extent[0][0] = extent[0][1] = extent[1][0] = extent[1][1] = 0;
return brush;
};
brush.empty = function() {
return x && extent[0][0] === extent[1][0] || y && extent[0][1] === extent[1][1];
};
return d3.rebind(brush, event, "on");
};
var d3_svg_brushCursor = {
n: "ns-resize",
e: "ew-resize",
s: "ns-resize",
w: "ew-resize",
nw: "nwse-resize",
ne: "nesw-resize",
se: "nwse-resize",
sw: "nesw-resize"
};
var d3_svg_brushResizes = [ [ "n", "e", "s", "w", "nw", "ne", "se", "sw" ], [ "e", "w" ], [ "n", "s" ], [] ];
d3.behavior = {};
d3.behavior.drag = function() {
var event = d3_eventDispatch(drag, "drag", "dragstart", "dragend"), origin = null;
function drag() {
this.on("mousedown.drag", mousedown).on("touchstart.drag", mousedown);
}
function mousedown() {
var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, touchId = d3.event.touches ? d3.event.changedTouches[0].identifier : null, offset, origin_ = point(), moved = 0;
var w = d3.select(d3_window).on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", dragmove).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", dragend, true);
if (origin) {
offset = origin.apply(target, arguments);
offset = [ offset.x - origin_[0], offset.y - origin_[1] ];
} else {
offset = [ 0, 0 ];
}
if (touchId == null) d3_eventCancel();
event_({
type: "dragstart"
});
function point() {
var p = target.parentNode;
return touchId != null ? d3.touches(p).filter(function(p) {
return p.identifier === touchId;
})[0] : d3.mouse(p);
}
function dragmove() {
if (!target.parentNode) return dragend();
var p = point(), dx = p[0] - origin_[0], dy = p[1] - origin_[1];
moved |= dx | dy;
origin_ = p;
d3_eventCancel();
event_({
type: "drag",
x: p[0] + offset[0],
y: p[1] + offset[1],
dx: dx,
dy: dy
});
}
function dragend() {
event_({
type: "dragend"
});
if (moved) {
d3_eventCancel();
if (d3.event.target === eventTarget) w.on("click.drag", click, true);
}
w.on(touchId != null ? "touchmove.drag-" + touchId : "mousemove.drag", null).on(touchId != null ? "touchend.drag-" + touchId : "mouseup.drag", null);
}
function click() {
d3_eventCancel();
w.on("click.drag", null);
}
}
drag.origin = function(x) {
if (!arguments.length) return origin;
origin = x;
return drag;
};
return d3.rebind(drag, event, "on");
};
d3.behavior.zoom = function() {
var translate = [ 0, 0 ], translate0, scale = 1, scale0, scaleExtent = d3_behavior_zoomInfinity, event = d3_eventDispatch(zoom, "zoom"), x0, x1, y0, y1, touchtime;
function zoom() {
this.on("mousedown.zoom", mousedown).on("mousemove.zoom", mousemove).on(d3_behavior_zoomWheel + ".zoom", mousewheel).on("dblclick.zoom", dblclick).on("touchstart.zoom", touchstart).on("touchmove.zoom", touchmove).on("touchend.zoom", touchstart);
}
zoom.translate = function(x) {
if (!arguments.length) return translate;
translate = x.map(Number);
rescale();
return zoom;
};
zoom.scale = function(x) {
if (!arguments.length) return scale;
scale = +x;
rescale();
return zoom;
};
zoom.scaleExtent = function(x) {
if (!arguments.length) return scaleExtent;
scaleExtent = x == null ? d3_behavior_zoomInfinity : x.map(Number);
return zoom;
};
zoom.x = function(z) {
if (!arguments.length) return x1;
x1 = z;
x0 = z.copy();
translate = [ 0, 0 ];
scale = 1;
return zoom;
};
zoom.y = function(z) {
if (!arguments.length) return y1;
y1 = z;
y0 = z.copy();
translate = [ 0, 0 ];
scale = 1;
return zoom;
};
function location(p) {
return [ (p[0] - translate[0]) / scale, (p[1] - translate[1]) / scale ];
}
function point(l) {
return [ l[0] * scale + translate[0], l[1] * scale + translate[1] ];
}
function scaleTo(s) {
scale = Math.max(scaleExtent[0], Math.min(scaleExtent[1], s));
}
function translateTo(p, l) {
l = point(l);
translate[0] += p[0] - l[0];
translate[1] += p[1] - l[1];
}
function rescale() {
if (x1) x1.domain(x0.range().map(function(x) {
return (x - translate[0]) / scale;
}).map(x0.invert));
if (y1) y1.domain(y0.range().map(function(y) {
return (y - translate[1]) / scale;
}).map(y0.invert));
}
function dispatch(event) {
rescale();
d3.event.preventDefault();
event({
type: "zoom",
scale: scale,
translate: translate
});
}
function mousedown() {
var target = this, event_ = event.of(target, arguments), eventTarget = d3.event.target, moved = 0, w = d3.select(d3_window).on("mousemove.zoom", mousemove).on("mouseup.zoom", mouseup), l = location(d3.mouse(target));
d3_window.focus();
d3_eventCancel();
function mousemove() {
moved = 1;
translateTo(d3.mouse(target), l);
dispatch(event_);
}
function mouseup() {
if (moved) d3_eventCancel();
w.on("mousemove.zoom", null).on("mouseup.zoom", null);
if (moved && d3.event.target === eventTarget) w.on("click.zoom", click, true);
}
function click() {
d3_eventCancel();
w.on("click.zoom", null);
}
}
function mousewheel() {
if (!translate0) translate0 = location(d3.mouse(this));
scaleTo(Math.pow(2, d3_behavior_zoomDelta() * .002) * scale);
translateTo(d3.mouse(this), translate0);
dispatch(event.of(this, arguments));
}
function mousemove() {
translate0 = null;
}
function dblclick() {
var p = d3.mouse(this), l = location(p), k = Math.log(scale) / Math.LN2;
scaleTo(Math.pow(2, d3.event.shiftKey ? Math.ceil(k) - 1 : Math.floor(k) + 1));
translateTo(p, l);
dispatch(event.of(this, arguments));
}
function touchstart() {
var touches = d3.touches(this), now = Date.now();
scale0 = scale;
translate0 = {};
touches.forEach(function(t) {
translate0[t.identifier] = location(t);
});
d3_eventCancel();
if (touches.length === 1) {
if (now - touchtime < 500) {
var p = touches[0], l = location(touches[0]);
scaleTo(scale * 2);
translateTo(p, l);
dispatch(event.of(this, arguments));
}
touchtime = now;
}
}
function touchmove() {
var touches = d3.touches(this), p0 = touches[0], l0 = translate0[p0.identifier];
if (p1 = touches[1]) {
var p1, l1 = translate0[p1.identifier];
p0 = [ (p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2 ];
l0 = [ (l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2 ];
scaleTo(d3.event.scale * scale0);
}
translateTo(p0, l0);
touchtime = null;
dispatch(event.of(this, arguments));
}
return d3.rebind(zoom, event, "on");
};
var d3_behavior_zoomInfinity = [ 0, Infinity ];
var d3_behavior_zoomDelta, d3_behavior_zoomWheel = "onwheel" in document ? (d3_behavior_zoomDelta = function() {
return -d3.event.deltaY * (d3.event.deltaMode ? 120 : 1);
}, "wheel") : "onmousewheel" in document ? (d3_behavior_zoomDelta = function() {
return d3.event.wheelDelta;
}, "mousewheel") : (d3_behavior_zoomDelta = function() {
return -d3.event.detail;
}, "MozMousePixelScroll");
d3.layout = {};
d3.layout.bundle = function() {
return function(links) {
var paths = [], i = -1, n = links.length;
while (++i < n) paths.push(d3_layout_bundlePath(links[i]));
return paths;
};
};
function d3_layout_bundlePath(link) {
var start = link.source, end = link.target, lca = d3_layout_bundleLeastCommonAncestor(start, end), points = [ start ];
while (start !== lca) {
start = start.parent;
points.push(start);
}
var k = points.length;
while (end !== lca) {
points.splice(k, 0, end);
end = end.parent;
}
return points;
}
function d3_layout_bundleAncestors(node) {
var ancestors = [], parent = node.parent;
while (parent != null) {
ancestors.push(node);
node = parent;
parent = parent.parent;
}
ancestors.push(node);
return ancestors;
}
function d3_layout_bundleLeastCommonAncestor(a, b) {
if (a === b) return a;
var aNodes = d3_layout_bundleAncestors(a), bNodes = d3_layout_bundleAncestors(b), aNode = aNodes.pop(), bNode = bNodes.pop(), sharedNode = null;
while (aNode === bNode) {
sharedNode = aNode;
aNode = aNodes.pop();
bNode = bNodes.pop();
}
return sharedNode;
}
d3.layout.chord = function() {
var chord = {}, chords, groups, matrix, n, padding = 0, sortGroups, sortSubgroups, sortChords;
function relayout() {
var subgroups = {}, groupSums = [], groupIndex = d3.range(n), subgroupIndex = [], k, x, x0, i, j;
chords = [];
groups = [];
k = 0, i = -1;
while (++i < n) {
x = 0, j = -1;
while (++j < n) {
x += matrix[i][j];
}
groupSums.push(x);
subgroupIndex.push(d3.range(n));
k += x;
}
if (sortGroups) {
groupIndex.sort(function(a, b) {
return sortGroups(groupSums[a], groupSums[b]);
});
}
if (sortSubgroups) {
subgroupIndex.forEach(function(d, i) {
d.sort(function(a, b) {
return sortSubgroups(matrix[i][a], matrix[i][b]);
});
});
}
k = (2 * π - padding * n) / k;
x = 0, i = -1;
while (++i < n) {
x0 = x, j = -1;
while (++j < n) {
var di = groupIndex[i], dj = subgroupIndex[di][j], v = matrix[di][dj], a0 = x, a1 = x += v * k;
subgroups[di + "-" + dj] = {
index: di,
subindex: dj,
startAngle: a0,
endAngle: a1,
value: v
};
}
groups[di] = {
index: di,
startAngle: x0,
endAngle: x,
value: (x - x0) / k
};
x += padding;
}
i = -1;
while (++i < n) {
j = i - 1;
while (++j < n) {
var source = subgroups[i + "-" + j], target = subgroups[j + "-" + i];
if (source.value || target.value) {
chords.push(source.value < target.value ? {
source: target,
target: source
} : {
source: source,
target: target
});
}
}
}
if (sortChords) resort();
}
function resort() {
chords.sort(function(a, b) {
return sortChords((a.source.value + a.target.value) / 2, (b.source.value + b.target.value) / 2);
});
}
chord.matrix = function(x) {
if (!arguments.length) return matrix;
n = (matrix = x) && matrix.length;
chords = groups = null;
return chord;
};
chord.padding = function(x) {
if (!arguments.length) return padding;
padding = x;
chords = groups = null;
return chord;
};
chord.sortGroups = function(x) {
if (!arguments.length) return sortGroups;
sortGroups = x;
chords = groups = null;
return chord;
};
chord.sortSubgroups = function(x) {
if (!arguments.length) return sortSubgroups;
sortSubgroups = x;
chords = null;
return chord;
};
chord.sortChords = function(x) {
if (!arguments.length) return sortChords;
sortChords = x;
if (chords) resort();
return chord;
};
chord.chords = function() {
if (!chords) relayout();
return chords;
};
chord.groups = function() {
if (!groups) relayout();
return groups;
};
return chord;
};
d3.layout.force = function() {
var force = {}, event = d3.dispatch("start", "tick", "end"), size = [ 1, 1 ], drag, alpha, friction = .9, linkDistance = d3_layout_forceLinkDistance, linkStrength = d3_layout_forceLinkStrength, charge = -30, gravity = .1, theta = .8, nodes = [], links = [], distances, strengths, charges;
function repulse(node) {
return function(quad, x1, _, x2) {
if (quad.point !== node) {
var dx = quad.cx - node.x, dy = quad.cy - node.y, dn = 1 / Math.sqrt(dx * dx + dy * dy);
if ((x2 - x1) * dn < theta) {
var k = quad.charge * dn * dn;
node.px -= dx * k;
node.py -= dy * k;
return true;
}
if (quad.point && isFinite(dn)) {
var k = quad.pointCharge * dn * dn;
node.px -= dx * k;
node.py -= dy * k;
}
}
return !quad.charge;
};
}
force.tick = function() {
if ((alpha *= .99) < .005) {
event.end({
type: "end",
alpha: alpha = 0
});
return true;
}
var n = nodes.length, m = links.length, q, i, o, s, t, l, k, x, y;
for (i = 0; i < m; ++i) {
o = links[i];
s = o.source;
t = o.target;
x = t.x - s.x;
y = t.y - s.y;
if (l = x * x + y * y) {
l = alpha * strengths[i] * ((l = Math.sqrt(l)) - distances[i]) / l;
x *= l;
y *= l;
t.x -= x * (k = s.weight / (t.weight + s.weight));
t.y -= y * k;
s.x += x * (k = 1 - k);
s.y += y * k;
}
}
if (k = alpha * gravity) {
x = size[0] / 2;
y = size[1] / 2;
i = -1;
if (k) while (++i < n) {
o = nodes[i];
o.x += (x - o.x) * k;
o.y += (y - o.y) * k;
}
}
if (charge) {
d3_layout_forceAccumulate(q = d3.geom.quadtree(nodes), alpha, charges);
i = -1;
while (++i < n) {
if (!(o = nodes[i]).fixed) {
q.visit(repulse(o));
}
}
}
i = -1;
while (++i < n) {
o = nodes[i];
if (o.fixed) {
o.x = o.px;
o.y = o.py;
} else {
o.x -= (o.px - (o.px = o.x)) * friction;
o.y -= (o.py - (o.py = o.y)) * friction;
}
}
event.tick({
type: "tick",
alpha: alpha
});
};
force.nodes = function(x) {
if (!arguments.length) return nodes;
nodes = x;
return force;
};
force.links = function(x) {
if (!arguments.length) return links;
links = x;
return force;
};
force.size = function(x) {
if (!arguments.length) return size;
size = x;
return force;
};
force.linkDistance = function(x) {
if (!arguments.length) return linkDistance;
linkDistance = typeof x === "function" ? x : +x;
return force;
};
force.distance = force.linkDistance;
force.linkStrength = function(x) {
if (!arguments.length) return linkStrength;
linkStrength = typeof x === "function" ? x : +x;
return force;
};
force.friction = function(x) {
if (!arguments.length) return friction;
friction = +x;
return force;
};
force.charge = function(x) {
if (!arguments.length) return charge;
charge = typeof x === "function" ? x : +x;
return force;
};
force.gravity = function(x) {
if (!arguments.length) return gravity;
gravity = +x;
return force;
};
force.theta = function(x) {
if (!arguments.length) return theta;
theta = +x;
return force;
};
force.alpha = function(x) {
if (!arguments.length) return alpha;
x = +x;
if (alpha) {
if (x > 0) alpha = x; else alpha = 0;
} else if (x > 0) {
event.start({
type: "start",
alpha: alpha = x
});
d3.timer(force.tick);
}
return force;
};
force.start = function() {
var i, j, n = nodes.length, m = links.length, w = size[0], h = size[1], neighbors, o;
for (i = 0; i < n; ++i) {
(o = nodes[i]).index = i;
o.weight = 0;
}
for (i = 0; i < m; ++i) {
o = links[i];
if (typeof o.source == "number") o.source = nodes[o.source];
if (typeof o.target == "number") o.target = nodes[o.target];
++o.source.weight;
++o.target.weight;
}
for (i = 0; i < n; ++i) {
o = nodes[i];
if (isNaN(o.x)) o.x = position("x", w);
if (isNaN(o.y)) o.y = position("y", h);
if (isNaN(o.px)) o.px = o.x;
if (isNaN(o.py)) o.py = o.y;
}
distances = [];
if (typeof linkDistance === "function") for (i = 0; i < m; ++i) distances[i] = +linkDistance.call(this, links[i], i); else for (i = 0; i < m; ++i) distances[i] = linkDistance;
strengths = [];
if (typeof linkStrength === "function") for (i = 0; i < m; ++i) strengths[i] = +linkStrength.call(this, links[i], i); else for (i = 0; i < m; ++i) strengths[i] = linkStrength;
charges = [];
if (typeof charge === "function") for (i = 0; i < n; ++i) charges[i] = +charge.call(this, nodes[i], i); else for (i = 0; i < n; ++i) charges[i] = charge;
function position(dimension, size) {
var neighbors = neighbor(i), j = -1, m = neighbors.length, x;
while (++j < m) if (!isNaN(x = neighbors[j][dimension])) return x;
return Math.random() * size;
}
function neighbor() {
if (!neighbors) {
neighbors = [];
for (j = 0; j < n; ++j) {
neighbors[j] = [];
}
for (j = 0; j < m; ++j) {
var o = links[j];
neighbors[o.source.index].push(o.target);
neighbors[o.target.index].push(o.source);
}
}
return neighbors[i];
}
return force.resume();
};
force.resume = function() {
return force.alpha(.1);
};
force.stop = function() {
return force.alpha(0);
};
force.drag = function() {
if (!drag) drag = d3.behavior.drag().origin(d3_identity).on("dragstart.force", d3_layout_forceDragstart).on("drag.force", dragmove).on("dragend.force", d3_layout_forceDragend);
if (!arguments.length) return drag;
this.on("mouseover.force", d3_layout_forceMouseover).on("mouseout.force", d3_layout_forceMouseout).call(drag);
};
function dragmove(d) {
d.px = d3.event.x, d.py = d3.event.y;
force.resume();
}
return d3.rebind(force, event, "on");
};
function d3_layout_forceDragstart(d) {
d.fixed |= 2;
}
function d3_layout_forceDragend(d) {
d.fixed &= ~6;
}
function d3_layout_forceMouseover(d) {
d.fixed |= 4;
d.px = d.x, d.py = d.y;
}
function d3_layout_forceMouseout(d) {
d.fixed &= ~4;
}
function d3_layout_forceAccumulate(quad, alpha, charges) {
var cx = 0, cy = 0;
quad.charge = 0;
if (!quad.leaf) {
var nodes = quad.nodes, n = nodes.length, i = -1, c;
while (++i < n) {
c = nodes[i];
if (c == null) continue;
d3_layout_forceAccumulate(c, alpha, charges);
quad.charge += c.charge;
cx += c.charge * c.cx;
cy += c.charge * c.cy;
}
}
if (quad.point) {
if (!quad.leaf) {
quad.point.x += Math.random() - .5;
quad.point.y += Math.random() - .5;
}
var k = alpha * charges[quad.point.index];
quad.charge += quad.pointCharge = k;
cx += k * quad.point.x;
cy += k * quad.point.y;
}
quad.cx = cx / quad.charge;
quad.cy = cy / quad.charge;
}
var d3_layout_forceLinkDistance = 20, d3_layout_forceLinkStrength = 1;
d3.layout.partition = function() {
var hierarchy = d3.layout.hierarchy(), size = [ 1, 1 ];
function position(node, x, dx, dy) {
var children = node.children;
node.x = x;
node.y = node.depth * dy;
node.dx = dx;
node.dy = dy;
if (children && (n = children.length)) {
var i = -1, n, c, d;
dx = node.value ? dx / node.value : 0;
while (++i < n) {
position(c = children[i], x, d = c.value * dx, dy);
x += d;
}
}
}
function depth(node) {
var children = node.children, d = 0;
if (children && (n = children.length)) {
var i = -1, n;
while (++i < n) d = Math.max(d, depth(children[i]));
}
return 1 + d;
}
function partition(d, i) {
var nodes = hierarchy.call(this, d, i);
position(nodes[0], 0, size[0], size[1] / depth(nodes[0]));
return nodes;
}
partition.size = function(x) {
if (!arguments.length) return size;
size = x;
return partition;
};
return d3_layout_hierarchyRebind(partition, hierarchy);
};
d3.layout.pie = function() {
var value = Number, sort = d3_layout_pieSortByValue, startAngle = 0, endAngle = 2 * π;
function pie(data) {
var values = data.map(function(d, i) {
return +value.call(pie, d, i);
});
var a = +(typeof startAngle === "function" ? startAngle.apply(this, arguments) : startAngle);
var k = ((typeof endAngle === "function" ? endAngle.apply(this, arguments) : endAngle) - startAngle) / d3.sum(values);
var index = d3.range(data.length);
if (sort != null) index.sort(sort === d3_layout_pieSortByValue ? function(i, j) {
return values[j] - values[i];
} : function(i, j) {
return sort(data[i], data[j]);
});
var arcs = [];
index.forEach(function(i) {
var d;
arcs[i] = {
data: data[i],
value: d = values[i],
startAngle: a,
endAngle: a += d * k
};
});
return arcs;
}
pie.value = function(x) {
if (!arguments.length) return value;
value = x;
return pie;
};
pie.sort = function(x) {
if (!arguments.length) return sort;
sort = x;
return pie;
};
pie.startAngle = function(x) {
if (!arguments.length) return startAngle;
startAngle = x;
return pie;
};
pie.endAngle = function(x) {
if (!arguments.length) return endAngle;
endAngle = x;
return pie;
};
return pie;
};
var d3_layout_pieSortByValue = {};
d3.layout.stack = function() {
var values = d3_identity, order = d3_layout_stackOrderDefault, offset = d3_layout_stackOffsetZero, out = d3_layout_stackOut, x = d3_layout_stackX, y = d3_layout_stackY;
function stack(data, index) {
var series = data.map(function(d, i) {
return values.call(stack, d, i);
});
var points = series.map(function(d) {
return d.map(function(v, i) {
return [ x.call(stack, v, i), y.call(stack, v, i) ];
});
});
var orders = order.call(stack, points, index);
series = d3.permute(series, orders);
points = d3.permute(points, orders);
var offsets = offset.call(stack, points, index);
var n = series.length, m = series[0].length, i, j, o;
for (j = 0; j < m; ++j) {
out.call(stack, series[0][j], o = offsets[j], points[0][j][1]);
for (i = 1; i < n; ++i) {
out.call(stack, series[i][j], o += points[i - 1][j][1], points[i][j][1]);
}
}
return data;
}
stack.values = function(x) {
if (!arguments.length) return values;
values = x;
return stack;
};
stack.order = function(x) {
if (!arguments.length) return order;
order = typeof x === "function" ? x : d3_layout_stackOrders.get(x) || d3_layout_stackOrderDefault;
return stack;
};
stack.offset = function(x) {
if (!arguments.length) return offset;
offset = typeof x === "function" ? x : d3_layout_stackOffsets.get(x) || d3_layout_stackOffsetZero;
return stack;
};
stack.x = function(z) {
if (!arguments.length) return x;
x = z;
return stack;
};
stack.y = function(z) {
if (!arguments.length) return y;
y = z;
return stack;
};
stack.out = function(z) {
if (!arguments.length) return out;
out = z;
return stack;
};
return stack;
};
function d3_layout_stackX(d) {
return d.x;
}
function d3_layout_stackY(d) {
return d.y;
}
function d3_layout_stackOut(d, y0, y) {
d.y0 = y0;
d.y = y;
}
var d3_layout_stackOrders = d3.map({
"inside-out": function(data) {
var n = data.length, i, j, max = data.map(d3_layout_stackMaxIndex), sums = data.map(d3_layout_stackReduceSum), index = d3.range(n).sort(function(a, b) {
return max[a] - max[b];
}), top = 0, bottom = 0, tops = [], bottoms = [];
for (i = 0; i < n; ++i) {
j = index[i];
if (top < bottom) {
top += sums[j];
tops.push(j);
} else {
bottom += sums[j];
bottoms.push(j);
}
}
return bottoms.reverse().concat(tops);
},
reverse: function(data) {
return d3.range(data.length).reverse();
},
"default": d3_layout_stackOrderDefault
});
var d3_layout_stackOffsets = d3.map({
silhouette: function(data) {
var n = data.length, m = data[0].length, sums = [], max = 0, i, j, o, y0 = [];
for (j = 0; j < m; ++j) {
for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
if (o > max) max = o;
sums.push(o);
}
for (j = 0; j < m; ++j) {
y0[j] = (max - sums[j]) / 2;
}
return y0;
},
wiggle: function(data) {
var n = data.length, x = data[0], m = x.length, i, j, k, s1, s2, s3, dx, o, o0, y0 = [];
y0[0] = o = o0 = 0;
for (j = 1; j < m; ++j) {
for (i = 0, s1 = 0; i < n; ++i) s1 += data[i][j][1];
for (i = 0, s2 = 0, dx = x[j][0] - x[j - 1][0]; i < n; ++i) {
for (k = 0, s3 = (data[i][j][1] - data[i][j - 1][1]) / (2 * dx); k < i; ++k) {
s3 += (data[k][j][1] - data[k][j - 1][1]) / dx;
}
s2 += s3 * data[i][j][1];
}
y0[j] = o -= s1 ? s2 / s1 * dx : 0;
if (o < o0) o0 = o;
}
for (j = 0; j < m; ++j) y0[j] -= o0;
return y0;
},
expand: function(data) {
var n = data.length, m = data[0].length, k = 1 / n, i, j, o, y0 = [];
for (j = 0; j < m; ++j) {
for (i = 0, o = 0; i < n; i++) o += data[i][j][1];
if (o) for (i = 0; i < n; i++) data[i][j][1] /= o; else for (i = 0; i < n; i++) data[i][j][1] = k;
}
for (j = 0; j < m; ++j) y0[j] = 0;
return y0;
},
zero: d3_layout_stackOffsetZero
});
function d3_layout_stackOrderDefault(data) {
return d3.range(data.length);
}
function d3_layout_stackOffsetZero(data) {
var j = -1, m = data[0].length, y0 = [];
while (++j < m) y0[j] = 0;
return y0;
}
function d3_layout_stackMaxIndex(array) {
var i = 1, j = 0, v = array[0][1], k, n = array.length;
for (;i < n; ++i) {
if ((k = array[i][1]) > v) {
j = i;
v = k;
}
}
return j;
}
function d3_layout_stackReduceSum(d) {
return d.reduce(d3_layout_stackSum, 0);
}
function d3_layout_stackSum(p, d) {
return p + d[1];
}
d3.layout.histogram = function() {
var frequency = true, valuer = Number, ranger = d3_layout_histogramRange, binner = d3_layout_histogramBinSturges;
function histogram(data, i) {
var bins = [], values = data.map(valuer, this), range = ranger.call(this, values, i), thresholds = binner.call(this, range, values, i), bin, i = -1, n = values.length, m = thresholds.length - 1, k = frequency ? 1 : 1 / n, x;
while (++i < m) {
bin = bins[i] = [];
bin.dx = thresholds[i + 1] - (bin.x = thresholds[i]);
bin.y = 0;
}
if (m > 0) {
i = -1;
while (++i < n) {
x = values[i];
if (x >= range[0] && x <= range[1]) {
bin = bins[d3.bisect(thresholds, x, 1, m) - 1];
bin.y += k;
bin.push(data[i]);
}
}
}
return bins;
}
histogram.value = function(x) {
if (!arguments.length) return valuer;
valuer = x;
return histogram;
};
histogram.range = function(x) {
if (!arguments.length) return ranger;
ranger = d3_functor(x);
return histogram;
};
histogram.bins = function(x) {
if (!arguments.length) return binner;
binner = typeof x === "number" ? function(range) {
return d3_layout_histogramBinFixed(range, x);
} : d3_functor(x);
return histogram;
};
histogram.frequency = function(x) {
if (!arguments.length) return frequency;
frequency = !!x;
return histogram;
};
return histogram;
};
function d3_layout_histogramBinSturges(range, values) {
return d3_layout_histogramBinFixed(range, Math.ceil(Math.log(values.length) / Math.LN2 + 1));
}
function d3_layout_histogramBinFixed(range, n) {
var x = -1, b = +range[0], m = (range[1] - b) / n, f = [];
while (++x <= n) f[x] = m * x + b;
return f;
}
function d3_layout_histogramRange(values) {
return [ d3.min(values), d3.max(values) ];
}
d3.layout.hierarchy = function() {
var sort = d3_layout_hierarchySort, children = d3_layout_hierarchyChildren, value = d3_layout_hierarchyValue;
function recurse(node, depth, nodes) {
var childs = children.call(hierarchy, node, depth);
node.depth = depth;
nodes.push(node);
if (childs && (n = childs.length)) {
var i = -1, n, c = node.children = [], v = 0, j = depth + 1, d;
while (++i < n) {
d = recurse(childs[i], j, nodes);
d.parent = node;
c.push(d);
v += d.value;
}
if (sort) c.sort(sort);
if (value) node.value = v;
} else if (value) {
node.value = +value.call(hierarchy, node, depth) || 0;
}
return node;
}
function revalue(node, depth) {
var children = node.children, v = 0;
if (children && (n = children.length)) {
var i = -1, n, j = depth + 1;
while (++i < n) v += revalue(children[i], j);
} else if (value) {
v = +value.call(hierarchy, node, depth) || 0;
}
if (value) node.value = v;
return v;
}
function hierarchy(d) {
var nodes = [];
recurse(d, 0, nodes);
return nodes;
}
hierarchy.sort = function(x) {
if (!arguments.length) return sort;
sort = x;
return hierarchy;
};
hierarchy.children = function(x) {
if (!arguments.length) return children;
children = x;
return hierarchy;
};
hierarchy.value = function(x) {
if (!arguments.length) return value;
value = x;
return hierarchy;
};
hierarchy.revalue = function(root) {
revalue(root, 0);
return root;
};
return hierarchy;
};
function d3_layout_hierarchyRebind(object, hierarchy) {
d3.rebind(object, hierarchy, "sort", "children", "value");
object.nodes = object;
object.links = d3_layout_hierarchyLinks;
return object;
}
function d3_layout_hierarchyChildren(d) {
return d.children;
}
function d3_layout_hierarchyValue(d) {
return d.value;
}
function d3_layout_hierarchySort(a, b) {
return b.value - a.value;
}
function d3_layout_hierarchyLinks(nodes) {
return d3.merge(nodes.map(function(parent) {
return (parent.children || []).map(function(child) {
return {
source: parent,
target: child
};
});
}));
}
d3.layout.pack = function() {
var hierarchy = d3.layout.hierarchy().sort(d3_layout_packSort), padding = 0, size = [ 1, 1 ];
function pack(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0];
root.x = 0;
root.y = 0;
d3_layout_treeVisitAfter(root, function(d) {
d.r = Math.sqrt(d.value);
});
d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
var w = size[0], h = size[1], k = Math.max(2 * root.r / w, 2 * root.r / h);
if (padding > 0) {
var dr = padding * k / 2;
d3_layout_treeVisitAfter(root, function(d) {
d.r += dr;
});
d3_layout_treeVisitAfter(root, d3_layout_packSiblings);
d3_layout_treeVisitAfter(root, function(d) {
d.r -= dr;
});
k = Math.max(2 * root.r / w, 2 * root.r / h);
}
d3_layout_packTransform(root, w / 2, h / 2, 1 / k);
return nodes;
}
pack.size = function(x) {
if (!arguments.length) return size;
size = x;
return pack;
};
pack.padding = function(_) {
if (!arguments.length) return padding;
padding = +_;
return pack;
};
return d3_layout_hierarchyRebind(pack, hierarchy);
};
function d3_layout_packSort(a, b) {
return a.value - b.value;
}
function d3_layout_packInsert(a, b) {
var c = a._pack_next;
a._pack_next = b;
b._pack_prev = a;
b._pack_next = c;
c._pack_prev = b;
}
function d3_layout_packSplice(a, b) {
a._pack_next = b;
b._pack_prev = a;
}
function d3_layout_packIntersects(a, b) {
var dx = b.x - a.x, dy = b.y - a.y, dr = a.r + b.r;
return dr * dr - dx * dx - dy * dy > .001;
}
function d3_layout_packSiblings(node) {
if (!(nodes = node.children) || !(n = nodes.length)) return;
var nodes, xMin = Infinity, xMax = -Infinity, yMin = Infinity, yMax = -Infinity, a, b, c, i, j, k, n;
function bound(node) {
xMin = Math.min(node.x - node.r, xMin);
xMax = Math.max(node.x + node.r, xMax);
yMin = Math.min(node.y - node.r, yMin);
yMax = Math.max(node.y + node.r, yMax);
}
nodes.forEach(d3_layout_packLink);
a = nodes[0];
a.x = -a.r;
a.y = 0;
bound(a);
if (n > 1) {
b = nodes[1];
b.x = b.r;
b.y = 0;
bound(b);
if (n > 2) {
c = nodes[2];
d3_layout_packPlace(a, b, c);
bound(c);
d3_layout_packInsert(a, c);
a._pack_prev = c;
d3_layout_packInsert(c, b);
b = a._pack_next;
for (i = 3; i < n; i++) {
d3_layout_packPlace(a, b, c = nodes[i]);
var isect = 0, s1 = 1, s2 = 1;
for (j = b._pack_next; j !== b; j = j._pack_next, s1++) {
if (d3_layout_packIntersects(j, c)) {
isect = 1;
break;
}
}
if (isect == 1) {
for (k = a._pack_prev; k !== j._pack_prev; k = k._pack_prev, s2++) {
if (d3_layout_packIntersects(k, c)) {
break;
}
}
}
if (isect) {
if (s1 < s2 || s1 == s2 && b.r < a.r) d3_layout_packSplice(a, b = j); else d3_layout_packSplice(a = k, b);
i--;
} else {
d3_layout_packInsert(a, c);
b = c;
bound(c);
}
}
}
}
var cx = (xMin + xMax) / 2, cy = (yMin + yMax) / 2, cr = 0;
for (i = 0; i < n; i++) {
c = nodes[i];
c.x -= cx;
c.y -= cy;
cr = Math.max(cr, c.r + Math.sqrt(c.x * c.x + c.y * c.y));
}
node.r = cr;
nodes.forEach(d3_layout_packUnlink);
}
function d3_layout_packLink(node) {
node._pack_next = node._pack_prev = node;
}
function d3_layout_packUnlink(node) {
delete node._pack_next;
delete node._pack_prev;
}
function d3_layout_packTransform(node, x, y, k) {
var children = node.children;
node.x = x += k * node.x;
node.y = y += k * node.y;
node.r *= k;
if (children) {
var i = -1, n = children.length;
while (++i < n) d3_layout_packTransform(children[i], x, y, k);
}
}
function d3_layout_packPlace(a, b, c) {
var db = a.r + c.r, dx = b.x - a.x, dy = b.y - a.y;
if (db && (dx || dy)) {
var da = b.r + c.r, dc = dx * dx + dy * dy;
da *= da;
db *= db;
var x = .5 + (db - da) / (2 * dc), y = Math.sqrt(Math.max(0, 2 * da * (db + dc) - (db -= dc) * db - da * da)) / (2 * dc);
c.x = a.x + x * dx + y * dy;
c.y = a.y + x * dy - y * dx;
} else {
c.x = a.x + db;
c.y = a.y;
}
}
d3.layout.cluster = function() {
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
function cluster(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0], previousNode, x = 0;
d3_layout_treeVisitAfter(root, function(node) {
var children = node.children;
if (children && children.length) {
node.x = d3_layout_clusterX(children);
node.y = d3_layout_clusterY(children);
} else {
node.x = previousNode ? x += separation(node, previousNode) : 0;
node.y = 0;
previousNode = node;
}
});
var left = d3_layout_clusterLeft(root), right = d3_layout_clusterRight(root), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2;
d3_layout_treeVisitAfter(root, function(node) {
node.x = (node.x - x0) / (x1 - x0) * size[0];
node.y = (1 - (root.y ? node.y / root.y : 1)) * size[1];
});
return nodes;
}
cluster.separation = function(x) {
if (!arguments.length) return separation;
separation = x;
return cluster;
};
cluster.size = function(x) {
if (!arguments.length) return size;
size = x;
return cluster;
};
return d3_layout_hierarchyRebind(cluster, hierarchy);
};
function d3_layout_clusterY(children) {
return 1 + d3.max(children, function(child) {
return child.y;
});
}
function d3_layout_clusterX(children) {
return children.reduce(function(x, child) {
return x + child.x;
}, 0) / children.length;
}
function d3_layout_clusterLeft(node) {
var children = node.children;
return children && children.length ? d3_layout_clusterLeft(children[0]) : node;
}
function d3_layout_clusterRight(node) {
var children = node.children, n;
return children && (n = children.length) ? d3_layout_clusterRight(children[n - 1]) : node;
}
d3.layout.tree = function() {
var hierarchy = d3.layout.hierarchy().sort(null).value(null), separation = d3_layout_treeSeparation, size = [ 1, 1 ];
function tree(d, i) {
var nodes = hierarchy.call(this, d, i), root = nodes[0];
function firstWalk(node, previousSibling) {
var children = node.children, layout = node._tree;
if (children && (n = children.length)) {
var n, firstChild = children[0], previousChild, ancestor = firstChild, child, i = -1;
while (++i < n) {
child = children[i];
firstWalk(child, previousChild);
ancestor = apportion(child, previousChild, ancestor);
previousChild = child;
}
d3_layout_treeShift(node);
var midpoint = .5 * (firstChild._tree.prelim + child._tree.prelim);
if (previousSibling) {
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
layout.mod = layout.prelim - midpoint;
} else {
layout.prelim = midpoint;
}
} else {
if (previousSibling) {
layout.prelim = previousSibling._tree.prelim + separation(node, previousSibling);
}
}
}
function secondWalk(node, x) {
node.x = node._tree.prelim + x;
var children = node.children;
if (children && (n = children.length)) {
var i = -1, n;
x += node._tree.mod;
while (++i < n) {
secondWalk(children[i], x);
}
}
}
function apportion(node, previousSibling, ancestor) {
if (previousSibling) {
var vip = node, vop = node, vim = previousSibling, vom = node.parent.children[0], sip = vip._tree.mod, sop = vop._tree.mod, sim = vim._tree.mod, som = vom._tree.mod, shift;
while (vim = d3_layout_treeRight(vim), vip = d3_layout_treeLeft(vip), vim && vip) {
vom = d3_layout_treeLeft(vom);
vop = d3_layout_treeRight(vop);
vop._tree.ancestor = node;
shift = vim._tree.prelim + sim - vip._tree.prelim - sip + separation(vim, vip);
if (shift > 0) {
d3_layout_treeMove(d3_layout_treeAncestor(vim, node, ancestor), node, shift);
sip += shift;
sop += shift;
}
sim += vim._tree.mod;
sip += vip._tree.mod;
som += vom._tree.mod;
sop += vop._tree.mod;
}
if (vim && !d3_layout_treeRight(vop)) {
vop._tree.thread = vim;
vop._tree.mod += sim - sop;
}
if (vip && !d3_layout_treeLeft(vom)) {
vom._tree.thread = vip;
vom._tree.mod += sip - som;
ancestor = node;
}
}
return ancestor;
}
d3_layout_treeVisitAfter(root, function(node, previousSibling) {
node._tree = {
ancestor: node,
prelim: 0,
mod: 0,
change: 0,
shift: 0,
number: previousSibling ? previousSibling._tree.number + 1 : 0
};
});
firstWalk(root);
secondWalk(root, -root._tree.prelim);
var left = d3_layout_treeSearch(root, d3_layout_treeLeftmost), right = d3_layout_treeSearch(root, d3_layout_treeRightmost), deep = d3_layout_treeSearch(root, d3_layout_treeDeepest), x0 = left.x - separation(left, right) / 2, x1 = right.x + separation(right, left) / 2, y1 = deep.depth || 1;
d3_layout_treeVisitAfter(root, function(node) {
node.x = (node.x - x0) / (x1 - x0) * size[0];
node.y = node.depth / y1 * size[1];
delete node._tree;
});
return nodes;
}
tree.separation = function(x) {
if (!arguments.length) return separation;
separation = x;
return tree;
};
tree.size = function(x) {
if (!arguments.length) return size;
size = x;
return tree;
};
return d3_layout_hierarchyRebind(tree, hierarchy);
};
function d3_layout_treeSeparation(a, b) {
return a.parent == b.parent ? 1 : 2;
}
function d3_layout_treeLeft(node) {
var children = node.children;
return children && children.length ? children[0] : node._tree.thread;
}
function d3_layout_treeRight(node) {
var children = node.children, n;
return children && (n = children.length) ? children[n - 1] : node._tree.thread;
}
function d3_layout_treeSearch(node, compare) {
var children = node.children;
if (children && (n = children.length)) {
var child, n, i = -1;
while (++i < n) {
if (compare(child = d3_layout_treeSearch(children[i], compare), node) > 0) {
node = child;
}
}
}
return node;
}
function d3_layout_treeRightmost(a, b) {
return a.x - b.x;
}
function d3_layout_treeLeftmost(a, b) {
return b.x - a.x;
}
function d3_layout_treeDeepest(a, b) {
return a.depth - b.depth;
}
function d3_layout_treeVisitAfter(node, callback) {
function visit(node, previousSibling) {
var children = node.children;
if (children && (n = children.length)) {
var child, previousChild = null, i = -1, n;
while (++i < n) {
child = children[i];
visit(child, previousChild);
previousChild = child;
}
}
callback(node, previousSibling);
}
visit(node, null);
}
function d3_layout_treeShift(node) {
var shift = 0, change = 0, children = node.children, i = children.length, child;
while (--i >= 0) {
child = children[i]._tree;
child.prelim += shift;
child.mod += shift;
shift += child.shift + (change += child.change);
}
}
function d3_layout_treeMove(ancestor, node, shift) {
ancestor = ancestor._tree;
node = node._tree;
var change = shift / (node.number - ancestor.number);
ancestor.change += change;
node.change -= change;
node.shift += shift;
node.prelim += shift;
node.mod += shift;
}
function d3_layout_treeAncestor(vim, node, ancestor) {
return vim._tree.ancestor.parent == node.parent ? vim._tree.ancestor : ancestor;
}
d3.layout.treemap = function() {
var hierarchy = d3.layout.hierarchy(), round = Math.round, size = [ 1, 1 ], padding = null, pad = d3_layout_treemapPadNull, sticky = false, stickies, mode = "squarify", ratio = .5 * (1 + Math.sqrt(5));
function scale(children, k) {
var i = -1, n = children.length, child, area;
while (++i < n) {
area = (child = children[i]).value * (k < 0 ? 0 : k);
child.area = isNaN(area) || area <= 0 ? 0 : area;
}
}
function squarify(node) {
var children = node.children;
if (children && children.length) {
var rect = pad(node), row = [], remaining = children.slice(), child, best = Infinity, score, u = mode === "slice" ? rect.dx : mode === "dice" ? rect.dy : mode === "slice-dice" ? node.depth & 1 ? rect.dy : rect.dx : Math.min(rect.dx, rect.dy), n;
scale(remaining, rect.dx * rect.dy / node.value);
row.area = 0;
while ((n = remaining.length) > 0) {
row.push(child = remaining[n - 1]);
row.area += child.area;
if (mode !== "squarify" || (score = worst(row, u)) <= best) {
remaining.pop();
best = score;
} else {
row.area -= row.pop().area;
position(row, u, rect, false);
u = Math.min(rect.dx, rect.dy);
row.length = row.area = 0;
best = Infinity;
}
}
if (row.length) {
position(row, u, rect, true);
row.length = row.area = 0;
}
children.forEach(squarify);
}
}
function stickify(node) {
var children = node.children;
if (children && children.length) {
var rect = pad(node), remaining = children.slice(), child, row = [];
scale(remaining, rect.dx * rect.dy / node.value);
row.area = 0;
while (child = remaining.pop()) {
row.push(child);
row.area += child.area;
if (child.z != null) {
position(row, child.z ? rect.dx : rect.dy, rect, !remaining.length);
row.length = row.area = 0;
}
}
children.forEach(stickify);
}
}
function worst(row, u) {
var s = row.area, r, rmax = 0, rmin = Infinity, i = -1, n = row.length;
while (++i < n) {
if (!(r = row[i].area)) continue;
if (r < rmin) rmin = r;
if (r > rmax) rmax = r;
}
s *= s;
u *= u;
return s ? Math.max(u * rmax * ratio / s, s / (u * rmin * ratio)) : Infinity;
}
function position(row, u, rect, flush) {
var i = -1, n = row.length, x = rect.x, y = rect.y, v = u ? round(row.area / u) : 0, o;
if (u == rect.dx) {
if (flush || v > rect.dy) v = rect.dy;
while (++i < n) {
o = row[i];
o.x = x;
o.y = y;
o.dy = v;
x += o.dx = Math.min(rect.x + rect.dx - x, v ? round(o.area / v) : 0);
}
o.z = true;
o.dx += rect.x + rect.dx - x;
rect.y += v;
rect.dy -= v;
} else {
if (flush || v > rect.dx) v = rect.dx;
while (++i < n) {
o = row[i];
o.x = x;
o.y = y;
o.dx = v;
y += o.dy = Math.min(rect.y + rect.dy - y, v ? round(o.area / v) : 0);
}
o.z = false;
o.dy += rect.y + rect.dy - y;
rect.x += v;
rect.dx -= v;
}
}
function treemap(d) {
var nodes = stickies || hierarchy(d), root = nodes[0];
root.x = 0;
root.y = 0;
root.dx = size[0];
root.dy = size[1];
if (stickies) hierarchy.revalue(root);
scale([ root ], root.dx * root.dy / root.value);
(stickies ? stickify : squarify)(root);
if (sticky) stickies = nodes;
return nodes;
}
treemap.size = function(x) {
if (!arguments.length) return size;
size = x;
return treemap;
};
treemap.padding = function(x) {
if (!arguments.length) return padding;
function padFunction(node) {
var p = x.call(treemap, node, node.depth);
return p == null ? d3_layout_treemapPadNull(node) : d3_layout_treemapPad(node, typeof p === "number" ? [ p, p, p, p ] : p);
}
function padConstant(node) {
return d3_layout_treemapPad(node, x);
}
var type;
pad = (padding = x) == null ? d3_layout_treemapPadNull : (type = typeof x) === "function" ? padFunction : type === "number" ? (x = [ x, x, x, x ],
padConstant) : padConstant;
return treemap;
};
treemap.round = function(x) {
if (!arguments.length) return round != Number;
round = x ? Math.round : Number;
return treemap;
};
treemap.sticky = function(x) {
if (!arguments.length) return sticky;
sticky = x;
stickies = null;
return treemap;
};
treemap.ratio = function(x) {
if (!arguments.length) return ratio;
ratio = x;
return treemap;
};
treemap.mode = function(x) {
if (!arguments.length) return mode;
mode = x + "";
return treemap;
};
return d3_layout_hierarchyRebind(treemap, hierarchy);
};
function d3_layout_treemapPadNull(node) {
return {
x: node.x,
y: node.y,
dx: node.dx,
dy: node.dy
};
}
function d3_layout_treemapPad(node, padding) {
var x = node.x + padding[3], y = node.y + padding[0], dx = node.dx - padding[1] - padding[3], dy = node.dy - padding[0] - padding[2];
if (dx < 0) {
x += dx / 2;
dx = 0;
}
if (dy < 0) {
y += dy / 2;
dy = 0;
}
return {
x: x,
y: y,
dx: dx,
dy: dy
};
}
function d3_dsv(delimiter, mimeType) {
var reFormat = new RegExp('["' + delimiter + "\n]"), delimiterCode = delimiter.charCodeAt(0);
function dsv(url, callback) {
return d3.xhr(url, mimeType, callback).response(response);
}
function response(request) {
return dsv.parse(request.responseText);
}
dsv.parse = function(text) {
var o;
return dsv.parseRows(text, function(row) {
if (o) return o(row);
o = new Function("d", "return {" + row.map(function(name, i) {
return JSON.stringify(name) + ": d[" + i + "]";
}).join(",") + "}");
});
};
dsv.parseRows = function(text, f) {
var EOL = {}, EOF = {}, rows = [], N = text.length, I = 0, n = 0, t, eol;
function token() {
if (I >= N) return EOF;
if (eol) return eol = false, EOL;
var j = I;
if (text.charCodeAt(j) === 34) {
var i = j;
while (i++ < N) {
if (text.charCodeAt(i) === 34) {
if (text.charCodeAt(i + 1) !== 34) break;
++i;
}
}
I = i + 2;
var c = text.charCodeAt(i + 1);
if (c === 13) {
eol = true;
if (text.charCodeAt(i + 2) === 10) ++I;
} else if (c === 10) {
eol = true;
}
return text.substring(j + 1, i).replace(/""/g, '"');
}
while (I < N) {
var c = text.charCodeAt(I++), k = 1;
if (c === 10) eol = true; else if (c === 13) {
eol = true;
if (text.charCodeAt(I) === 10) ++I, ++k;
} else if (c !== delimiterCode) continue;
return text.substring(j, I - k);
}
return text.substring(j);
}
while ((t = token()) !== EOF) {
var a = [];
while (t !== EOL && t !== EOF) {
a.push(t);
t = token();
}
if (f && !(a = f(a, n++))) continue;
rows.push(a);
}
return rows;
};
dsv.format = function(rows) {
return rows.map(formatRow).join("\n");
};
function formatRow(row) {
return row.map(formatValue).join(delimiter);
}
function formatValue(text) {
return reFormat.test(text) ? '"' + text.replace(/\"/g, '""') + '"' : text;
}
return dsv;
}
d3.csv = d3_dsv(",", "text/csv");
d3.tsv = d3_dsv(" ", "text/tab-separated-values");
d3.geo = {};
d3.geo.stream = function(object, listener) {
if (d3_geo_streamObjectType.hasOwnProperty(object.type)) {
d3_geo_streamObjectType[object.type](object, listener);
} else {
d3_geo_streamGeometry(object, listener);
}
};
function d3_geo_streamGeometry(geometry, listener) {
if (d3_geo_streamGeometryType.hasOwnProperty(geometry.type)) {
d3_geo_streamGeometryType[geometry.type](geometry, listener);
}
}
var d3_geo_streamObjectType = {
Feature: function(feature, listener) {
d3_geo_streamGeometry(feature.geometry, listener);
},
FeatureCollection: function(object, listener) {
var features = object.features, i = -1, n = features.length;
while (++i < n) d3_geo_streamGeometry(features[i].geometry, listener);
}
};
var d3_geo_streamGeometryType = {
Sphere: function(object, listener) {
listener.sphere();
},
Point: function(object, listener) {
var coordinate = object.coordinates;
listener.point(coordinate[0], coordinate[1]);
},
MultiPoint: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length, coordinate;
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
},
LineString: function(object, listener) {
d3_geo_streamLine(object.coordinates, listener, 0);
},
MultiLineString: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 0);
},
Polygon: function(object, listener) {
d3_geo_streamPolygon(object.coordinates, listener);
},
MultiPolygon: function(object, listener) {
var coordinates = object.coordinates, i = -1, n = coordinates.length;
while (++i < n) d3_geo_streamPolygon(coordinates[i], listener);
},
GeometryCollection: function(object, listener) {
var geometries = object.geometries, i = -1, n = geometries.length;
while (++i < n) d3_geo_streamGeometry(geometries[i], listener);
}
};
function d3_geo_streamLine(coordinates, listener, closed) {
var i = -1, n = coordinates.length - closed, coordinate;
listener.lineStart();
while (++i < n) coordinate = coordinates[i], listener.point(coordinate[0], coordinate[1]);
listener.lineEnd();
}
function d3_geo_streamPolygon(coordinates, listener) {
var i = -1, n = coordinates.length;
listener.polygonStart();
while (++i < n) d3_geo_streamLine(coordinates[i], listener, 1);
listener.polygonEnd();
}
function d3_geo_spherical(cartesian) {
return [ Math.atan2(cartesian[1], cartesian[0]), Math.asin(Math.max(-1, Math.min(1, cartesian[2]))) ];
}
function d3_geo_sphericalEqual(a, b) {
return Math.abs(a[0] - b[0]) < ε && Math.abs(a[1] - b[1]) < ε;
}
function d3_geo_cartesian(spherical) {
var λ = spherical[0], φ = spherical[1], cosφ = Math.cos(φ);
return [ cosφ * Math.cos(λ), cosφ * Math.sin(λ), Math.sin(φ) ];
}
function d3_geo_cartesianDot(a, b) {
return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];
}
function d3_geo_cartesianCross(a, b) {
return [ a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0] ];
}
function d3_geo_cartesianAdd(a, b) {
a[0] += b[0];
a[1] += b[1];
a[2] += b[2];
}
function d3_geo_cartesianScale(vector, k) {
return [ vector[0] * k, vector[1] * k, vector[2] * k ];
}
function d3_geo_cartesianNormalize(d) {
var l = Math.sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);
d[0] /= l;
d[1] /= l;
d[2] /= l;
}
function d3_geo_resample(project) {
var δ2 = .5, maxDepth = 16;
function resample(stream) {
var λ0, x0, y0, a0, b0, c0;
var resample = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
stream.polygonStart();
resample.lineStart = polygonLineStart;
},
polygonEnd: function() {
stream.polygonEnd();
resample.lineStart = lineStart;
}
};
function point(x, y) {
x = project(x, y);
stream.point(x[0], x[1]);
}
function lineStart() {
x0 = NaN;
resample.point = linePoint;
stream.lineStart();
}
function linePoint(λ, φ) {
var c = d3_geo_cartesian([ λ, φ ]), p = project(λ, φ);
resampleLineTo(x0, y0, λ0, a0, b0, c0, x0 = p[0], y0 = p[1], λ0 = λ, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);
stream.point(x0, y0);
}
function lineEnd() {
resample.point = point;
stream.lineEnd();
}
function polygonLineStart() {
var λ00, φ00, x00, y00, a00, b00, c00;
lineStart();
resample.point = function(λ, φ) {
linePoint(λ00 = λ, φ00 = φ), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;
resample.point = linePoint;
};
resample.lineEnd = function() {
resampleLineTo(x0, y0, λ0, a0, b0, c0, x00, y00, λ00, a00, b00, c00, maxDepth, stream);
resample.lineEnd = lineEnd;
lineEnd();
};
}
return resample;
}
function resampleLineTo(x0, y0, λ0, a0, b0, c0, x1, y1, λ1, a1, b1, c1, depth, stream) {
var dx = x1 - x0, dy = y1 - y0, d2 = dx * dx + dy * dy;
if (d2 > 4 * δ2 && depth--) {
var a = a0 + a1, b = b0 + b1, c = c0 + c1, m = Math.sqrt(a * a + b * b + c * c), φ2 = Math.asin(c /= m), λ2 = Math.abs(Math.abs(c) - 1) < ε ? (λ0 + λ1) / 2 : Math.atan2(b, a), p = project(λ2, φ2), x2 = p[0], y2 = p[1], dx2 = x2 - x0, dy2 = y2 - y0, dz = dy * dx2 - dx * dy2;
if (dz * dz / d2 > δ2 || Math.abs((dx * dx2 + dy * dy2) / d2 - .5) > .3) {
resampleLineTo(x0, y0, λ0, a0, b0, c0, x2, y2, λ2, a /= m, b /= m, c, depth, stream);
stream.point(x2, y2);
resampleLineTo(x2, y2, λ2, a, b, c, x1, y1, λ1, a1, b1, c1, depth, stream);
}
}
}
resample.precision = function(_) {
if (!arguments.length) return Math.sqrt(δ2);
maxDepth = (δ2 = _ * _) > 0 && 16;
return resample;
};
return resample;
}
d3.geo.albersUsa = function() {
var lower48 = d3.geo.albers();
var alaska = d3.geo.albers().rotate([ 160, 0 ]).center([ 0, 60 ]).parallels([ 55, 65 ]);
var hawaii = d3.geo.albers().rotate([ 160, 0 ]).center([ 0, 20 ]).parallels([ 8, 18 ]);
var puertoRico = d3.geo.albers().rotate([ 60, 0 ]).center([ 0, 10 ]).parallels([ 8, 18 ]);
function albersUsa(coordinates) {
return projection(coordinates)(coordinates);
}
function projection(point) {
var lon = point[0], lat = point[1];
return lat > 50 ? alaska : lon < -140 ? hawaii : lat < 21 ? puertoRico : lower48;
}
albersUsa.scale = function(x) {
if (!arguments.length) return lower48.scale();
lower48.scale(x);
alaska.scale(x * .6);
hawaii.scale(x);
puertoRico.scale(x * 1.5);
return albersUsa.translate(lower48.translate());
};
albersUsa.translate = function(x) {
if (!arguments.length) return lower48.translate();
var dz = lower48.scale(), dx = x[0], dy = x[1];
lower48.translate(x);
alaska.translate([ dx - .4 * dz, dy + .17 * dz ]);
hawaii.translate([ dx - .19 * dz, dy + .2 * dz ]);
puertoRico.translate([ dx + .58 * dz, dy + .43 * dz ]);
return albersUsa;
};
return albersUsa.scale(lower48.scale());
};
function d3_geo_albers(φ0, φ1) {
var sinφ0 = Math.sin(φ0), n = (sinφ0 + Math.sin(φ1)) / 2, C = 1 + sinφ0 * (2 * n - sinφ0), ρ0 = Math.sqrt(C) / n;
function albers(λ, φ) {
var ρ = Math.sqrt(C - 2 * n * Math.sin(φ)) / n;
return [ ρ * Math.sin(λ *= n), ρ0 - ρ * Math.cos(λ) ];
}
albers.invert = function(x, y) {
var ρ0_y = ρ0 - y;
return [ Math.atan2(x, ρ0_y) / n, Math.asin((C - (x * x + ρ0_y * ρ0_y) * n * n) / (2 * n)) ];
};
return albers;
}
(d3.geo.albers = function() {
var φ0 = 29.5 * d3_radians, φ1 = 45.5 * d3_radians, m = d3_geo_projectionMutator(d3_geo_albers), p = m(φ0, φ1);
p.parallels = function(_) {
if (!arguments.length) return [ φ0 * d3_degrees, φ1 * d3_degrees ];
return m(φ0 = _[0] * d3_radians, φ1 = _[1] * d3_radians);
};
return p.rotate([ 98, 0 ]).center([ 0, 38 ]).scale(1e3);
}).raw = d3_geo_albers;
var d3_geo_azimuthalEqualArea = d3_geo_azimuthal(function(cosλcosφ) {
return Math.sqrt(2 / (1 + cosλcosφ));
}, function(ρ) {
return 2 * Math.asin(ρ / 2);
});
(d3.geo.azimuthalEqualArea = function() {
return d3_geo_projection(d3_geo_azimuthalEqualArea);
}).raw = d3_geo_azimuthalEqualArea;
var d3_geo_azimuthalEquidistant = d3_geo_azimuthal(function(cosλcosφ) {
var c = Math.acos(cosλcosφ);
return c && c / Math.sin(c);
}, d3_identity);
(d3.geo.azimuthalEquidistant = function() {
return d3_geo_projection(d3_geo_azimuthalEquidistant);
}).raw = d3_geo_azimuthalEquidistant;
d3.geo.bounds = d3_geo_bounds(d3_identity);
function d3_geo_bounds(projectStream) {
var x0, y0, x1, y1;
var bound = {
point: boundPoint,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
bound.lineEnd = boundPolygonLineEnd;
},
polygonEnd: function() {
bound.point = boundPoint;
}
};
function boundPoint(x, y) {
if (x < x0) x0 = x;
if (x > x1) x1 = x;
if (y < y0) y0 = y;
if (y > y1) y1 = y;
}
function boundPolygonLineEnd() {
bound.point = bound.lineEnd = d3_noop;
}
return function(feature) {
y1 = x1 = -(x0 = y0 = Infinity);
d3.geo.stream(feature, projectStream(bound));
return [ [ x0, y0 ], [ x1, y1 ] ];
};
}
d3.geo.centroid = function(object) {
d3_geo_centroidDimension = d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
d3.geo.stream(object, d3_geo_centroid);
var m;
if (d3_geo_centroidW && Math.abs(m = Math.sqrt(d3_geo_centroidX * d3_geo_centroidX + d3_geo_centroidY * d3_geo_centroidY + d3_geo_centroidZ * d3_geo_centroidZ)) > ε) {
return [ Math.atan2(d3_geo_centroidY, d3_geo_centroidX) * d3_degrees, Math.asin(Math.max(-1, Math.min(1, d3_geo_centroidZ / m))) * d3_degrees ];
}
};
var d3_geo_centroidDimension, d3_geo_centroidW, d3_geo_centroidX, d3_geo_centroidY, d3_geo_centroidZ;
var d3_geo_centroid = {
sphere: function() {
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
},
point: d3_geo_centroidPoint,
lineStart: d3_geo_centroidLineStart,
lineEnd: d3_geo_centroidLineEnd,
polygonStart: function() {
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_centroid.lineStart = d3_geo_centroidRingStart;
},
polygonEnd: function() {
d3_geo_centroid.lineStart = d3_geo_centroidLineStart;
}
};
function d3_geo_centroidPoint(λ, φ) {
if (d3_geo_centroidDimension) return;
++d3_geo_centroidW;
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians);
d3_geo_centroidX += (cosφ * Math.cos(λ) - d3_geo_centroidX) / d3_geo_centroidW;
d3_geo_centroidY += (cosφ * Math.sin(λ) - d3_geo_centroidY) / d3_geo_centroidW;
d3_geo_centroidZ += (Math.sin(φ) - d3_geo_centroidZ) / d3_geo_centroidW;
}
function d3_geo_centroidRingStart() {
var λ00, φ00;
d3_geo_centroidDimension = 1;
d3_geo_centroidLineStart();
d3_geo_centroidDimension = 2;
var linePoint = d3_geo_centroid.point;
d3_geo_centroid.point = function(λ, φ) {
linePoint(λ00 = λ, φ00 = φ);
};
d3_geo_centroid.lineEnd = function() {
d3_geo_centroid.point(λ00, φ00);
d3_geo_centroidLineEnd();
d3_geo_centroid.lineEnd = d3_geo_centroidLineEnd;
};
}
function d3_geo_centroidLineStart() {
var x0, y0, z0;
if (d3_geo_centroidDimension > 1) return;
if (d3_geo_centroidDimension < 1) {
d3_geo_centroidDimension = 1;
d3_geo_centroidW = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_centroid.point = function(λ, φ) {
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians);
x0 = cosφ * Math.cos(λ);
y0 = cosφ * Math.sin(λ);
z0 = Math.sin(φ);
d3_geo_centroid.point = nextPoint;
};
function nextPoint(λ, φ) {
λ *= d3_radians;
var cosφ = Math.cos(φ *= d3_radians), x = cosφ * Math.cos(λ), y = cosφ * Math.sin(λ), z = Math.sin(φ), w = Math.atan2(Math.sqrt((w = y0 * z - z0 * y) * w + (w = z0 * x - x0 * z) * w + (w = x0 * y - y0 * x) * w), x0 * x + y0 * y + z0 * z);
d3_geo_centroidW += w;
d3_geo_centroidX += w * (x0 + (x0 = x));
d3_geo_centroidY += w * (y0 + (y0 = y));
d3_geo_centroidZ += w * (z0 + (z0 = z));
}
}
function d3_geo_centroidLineEnd() {
d3_geo_centroid.point = d3_geo_centroidPoint;
}
d3.geo.circle = function() {
var origin = [ 0, 0 ], angle, precision = 6, interpolate;
function circle() {
var center = typeof origin === "function" ? origin.apply(this, arguments) : origin, rotate = d3_geo_rotation(-center[0] * d3_radians, -center[1] * d3_radians, 0).invert, ring = [];
interpolate(null, null, 1, {
point: function(x, y) {
ring.push(x = rotate(x, y));
x[0] *= d3_degrees, x[1] *= d3_degrees;
}
});
return {
type: "Polygon",
coordinates: [ ring ]
};
}
circle.origin = function(x) {
if (!arguments.length) return origin;
origin = x;
return circle;
};
circle.angle = function(x) {
if (!arguments.length) return angle;
interpolate = d3_geo_circleInterpolate((angle = +x) * d3_radians, precision * d3_radians);
return circle;
};
circle.precision = function(_) {
if (!arguments.length) return precision;
interpolate = d3_geo_circleInterpolate(angle * d3_radians, (precision = +_) * d3_radians);
return circle;
};
return circle.angle(90);
};
function d3_geo_circleInterpolate(radians, precision) {
var cr = Math.cos(radians), sr = Math.sin(radians);
return function(from, to, direction, listener) {
if (from != null) {
from = d3_geo_circleAngle(cr, from);
to = d3_geo_circleAngle(cr, to);
if (direction > 0 ? from < to : from > to) from += direction * 2 * π;
} else {
from = radians + direction * 2 * π;
to = radians;
}
var point;
for (var step = direction * precision, t = from; direction > 0 ? t > to : t < to; t -= step) {
listener.point((point = d3_geo_spherical([ cr, -sr * Math.cos(t), -sr * Math.sin(t) ]))[0], point[1]);
}
};
}
function d3_geo_circleAngle(cr, point) {
var a = d3_geo_cartesian(point);
a[0] -= cr;
d3_geo_cartesianNormalize(a);
var angle = Math.acos(Math.max(-1, Math.min(1, -a[1])));
return ((-a[2] < 0 ? -angle : angle) + 2 * Math.PI - ε) % (2 * Math.PI);
}
function d3_geo_clip(pointVisible, clipLine, interpolate) {
return function(listener) {
var line = clipLine(listener);
var clip = {
point: point,
lineStart: lineStart,
lineEnd: lineEnd,
polygonStart: function() {
clip.point = pointRing;
clip.lineStart = ringStart;
clip.lineEnd = ringEnd;
invisible = false;
invisibleArea = visibleArea = 0;
segments = [];
listener.polygonStart();
},
polygonEnd: function() {
clip.point = point;
clip.lineStart = lineStart;
clip.lineEnd = lineEnd;
segments = d3.merge(segments);
if (segments.length) {
d3_geo_clipPolygon(segments, interpolate, listener);
} else if (visibleArea < -ε || invisible && invisibleArea < -ε) {
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
}
listener.polygonEnd();
segments = null;
},
sphere: function() {
listener.polygonStart();
listener.lineStart();
interpolate(null, null, 1, listener);
listener.lineEnd();
listener.polygonEnd();
}
};
function point(λ, φ) {
if (pointVisible(λ, φ)) listener.point(λ, φ);
}
function pointLine(λ, φ) {
line.point(λ, φ);
}
function lineStart() {
clip.point = pointLine;
line.lineStart();
}
function lineEnd() {
clip.point = point;
line.lineEnd();
}
var segments, visibleArea, invisibleArea, invisible;
var buffer = d3_geo_clipBufferListener(), ringListener = clipLine(buffer), ring;
function pointRing(λ, φ) {
ringListener.point(λ, φ);
ring.push([ λ, φ ]);
}
function ringStart() {
ringListener.lineStart();
ring = [];
}
function ringEnd() {
pointRing(ring[0][0], ring[0][1]);
ringListener.lineEnd();
var clean = ringListener.clean(), ringSegments = buffer.buffer(), segment, n = ringSegments.length;
if (!n) {
invisible = true;
invisibleArea += d3_geo_clipAreaRing(ring, -1);
ring = null;
return;
}
ring = null;
if (clean & 1) {
segment = ringSegments[0];
visibleArea += d3_geo_clipAreaRing(segment, 1);
var n = segment.length - 1, i = -1, point;
listener.lineStart();
while (++i < n) listener.point((point = segment[i])[0], point[1]);
listener.lineEnd();
return;
}
if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));
segments.push(ringSegments.filter(d3_geo_clipSegmentLength1));
}
return clip;
};
}
function d3_geo_clipPolygon(segments, interpolate, listener) {
var subject = [], clip = [];
segments.forEach(function(segment) {
var n = segment.length;
if (n <= 1) return;
var p0 = segment[0], p1 = segment[n - 1], a = {
point: p0,
points: segment,
other: null,
visited: false,
entry: true,
subject: true
}, b = {
point: p0,
points: [ p0 ],
other: a,
visited: false,
entry: false,
subject: false
};
a.other = b;
subject.push(a);
clip.push(b);
a = {
point: p1,
points: [ p1 ],
other: null,
visited: false,
entry: false,
subject: true
};
b = {
point: p1,
points: [ p1 ],
other: a,
visited: false,
entry: true,
subject: false
};
a.other = b;
subject.push(a);
clip.push(b);
});
clip.sort(d3_geo_clipSort);
d3_geo_clipLinkCircular(subject);
d3_geo_clipLinkCircular(clip);
if (!subject.length) return;
var start = subject[0], current, points, point;
while (1) {
current = start;
while (current.visited) if ((current = current.next) === start) return;
points = current.points;
listener.lineStart();
do {
current.visited = current.other.visited = true;
if (current.entry) {
if (current.subject) {
for (var i = 0; i < points.length; i++) listener.point((point = points[i])[0], point[1]);
} else {
interpolate(current.point, current.next.point, 1, listener);
}
current = current.next;
} else {
if (current.subject) {
points = current.prev.points;
for (var i = points.length; --i >= 0; ) listener.point((point = points[i])[0], point[1]);
} else {
interpolate(current.point, current.prev.point, -1, listener);
}
current = current.prev;
}
current = current.other;
points = current.points;
} while (!current.visited);
listener.lineEnd();
}
}
function d3_geo_clipLinkCircular(array) {
if (!(n = array.length)) return;
var n, i = 0, a = array[0], b;
while (++i < n) {
a.next = b = array[i];
b.prev = a;
a = b;
}
a.next = b = array[0];
b.prev = a;
}
function d3_geo_clipSort(a, b) {
return ((a = a.point)[0] < 0 ? a[1] - π / 2 - ε : π / 2 - a[1]) - ((b = b.point)[0] < 0 ? b[1] - π / 2 - ε : π / 2 - b[1]);
}
function d3_geo_clipSegmentLength1(segment) {
return segment.length > 1;
}
function d3_geo_clipBufferListener() {
var lines = [], line;
return {
lineStart: function() {
lines.push(line = []);
},
point: function(λ, φ) {
line.push([ λ, φ ]);
},
lineEnd: d3_noop,
buffer: function() {
var buffer = lines;
lines = [];
line = null;
return buffer;
}
};
}
function d3_geo_clipAreaRing(ring, invisible) {
if (!(n = ring.length)) return 0;
var n, i = 0, area = 0, p = ring[0], λ = p[0], φ = p[1], cosφ = Math.cos(φ), x0 = Math.atan2(invisible * Math.sin(λ) * cosφ, Math.sin(φ)), y0 = 1 - invisible * Math.cos(λ) * cosφ, x1 = x0, x, y;
while (++i < n) {
p = ring[i];
cosφ = Math.cos(φ = p[1]);
x = Math.atan2(invisible * Math.sin(λ = p[0]) * cosφ, Math.sin(φ));
y = 1 - invisible * Math.cos(λ) * cosφ;
if (Math.abs(y0 - 2) < ε && Math.abs(y - 2) < ε) continue;
if (Math.abs(y) < ε || Math.abs(y0) < ε) {} else if (Math.abs(Math.abs(x - x0) - π) < ε) {
if (y + y0 > 2) area += 4 * (x - x0);
} else if (Math.abs(y0 - 2) < ε) area += 4 * (x - x1); else area += ((3 * π + x - x0) % (2 * π) - π) * (y0 + y);
x1 = x0, x0 = x, y0 = y;
}
return area;
}
var d3_geo_clipAntimeridian = d3_geo_clip(d3_true, d3_geo_clipAntimeridianLine, d3_geo_clipAntimeridianInterpolate);
function d3_geo_clipAntimeridianLine(listener) {
var λ0 = NaN, φ0 = NaN, sλ0 = NaN, clean;
return {
lineStart: function() {
listener.lineStart();
clean = 1;
},
point: function(λ1, φ1) {
var sλ1 = λ1 > 0 ? π : -π, dλ = Math.abs(λ1 - λ0);
if (Math.abs(dλ - π) < ε) {
listener.point(λ0, φ0 = (φ0 + φ1) / 2 > 0 ? π / 2 : -π / 2);
listener.point(sλ0, φ0);
listener.lineEnd();
listener.lineStart();
listener.point(sλ1, φ0);
listener.point(λ1, φ0);
clean = 0;
} else if (sλ0 !== sλ1 && dλ >= π) {
if (Math.abs(λ0 - sλ0) < ε) λ0 -= sλ0 * ε;
if (Math.abs(λ1 - sλ1) < ε) λ1 -= sλ1 * ε;
φ0 = d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1);
listener.point(sλ0, φ0);
listener.lineEnd();
listener.lineStart();
listener.point(sλ1, φ0);
clean = 0;
}
listener.point(λ0 = λ1, φ0 = φ1);
sλ0 = sλ1;
},
lineEnd: function() {
listener.lineEnd();
λ0 = φ0 = NaN;
},
clean: function() {
return 2 - clean;
}
};
}
function d3_geo_clipAntimeridianIntersect(λ0, φ0, λ1, φ1) {
var cosφ0, cosφ1, sinλ0_λ1 = Math.sin(λ0 - λ1);
return Math.abs(sinλ0_λ1) > ε ? Math.atan((Math.sin(φ0) * (cosφ1 = Math.cos(φ1)) * Math.sin(λ1) - Math.sin(φ1) * (cosφ0 = Math.cos(φ0)) * Math.sin(λ0)) / (cosφ0 * cosφ1 * sinλ0_λ1)) : (φ0 + φ1) / 2;
}
function d3_geo_clipAntimeridianInterpolate(from, to, direction, listener) {
var φ;
if (from == null) {
φ = direction * π / 2;
listener.point(-π, φ);
listener.point(0, φ);
listener.point(π, φ);
listener.point(π, 0);
listener.point(π, -φ);
listener.point(0, -φ);
listener.point(-π, -φ);
listener.point(-π, 0);
listener.point(-π, φ);
} else if (Math.abs(from[0] - to[0]) > ε) {
var s = (from[0] < to[0] ? 1 : -1) * π;
φ = direction * s / 2;
listener.point(-s, φ);
listener.point(0, φ);
listener.point(s, φ);
} else {
listener.point(to[0], to[1]);
}
}
function d3_geo_clipCircle(degrees) {
var radians = degrees * d3_radians, cr = Math.cos(radians), interpolate = d3_geo_circleInterpolate(radians, 6 * d3_radians);
return d3_geo_clip(visible, clipLine, interpolate);
function visible(λ, φ) {
return Math.cos(λ) * Math.cos(φ) > cr;
}
function clipLine(listener) {
var point0, v0, v00, clean;
return {
lineStart: function() {
v00 = v0 = false;
clean = 1;
},
point: function(λ, φ) {
var point1 = [ λ, φ ], point2, v = visible(λ, φ);
if (!point0 && (v00 = v0 = v)) listener.lineStart();
if (v !== v0) {
point2 = intersect(point0, point1);
if (d3_geo_sphericalEqual(point0, point2) || d3_geo_sphericalEqual(point1, point2)) {
point1[0] += ε;
point1[1] += ε;
v = visible(point1[0], point1[1]);
}
}
if (v !== v0) {
clean = 0;
if (v0 = v) {
listener.lineStart();
point2 = intersect(point1, point0);
listener.point(point2[0], point2[1]);
} else {
point2 = intersect(point0, point1);
listener.point(point2[0], point2[1]);
listener.lineEnd();
}
point0 = point2;
}
if (v && (!point0 || !d3_geo_sphericalEqual(point0, point1))) listener.point(point1[0], point1[1]);
point0 = point1;
},
lineEnd: function() {
if (v0) listener.lineEnd();
point0 = null;
},
clean: function() {
return clean | (v00 && v0) << 1;
}
};
}
function intersect(a, b) {
var pa = d3_geo_cartesian(a, 0), pb = d3_geo_cartesian(b, 0);
var n1 = [ 1, 0, 0 ], n2 = d3_geo_cartesianCross(pa, pb), n2n2 = d3_geo_cartesianDot(n2, n2), n1n2 = n2[0], determinant = n2n2 - n1n2 * n1n2;
if (!determinant) return a;
var c1 = cr * n2n2 / determinant, c2 = -cr * n1n2 / determinant, n1xn2 = d3_geo_cartesianCross(n1, n2), A = d3_geo_cartesianScale(n1, c1), B = d3_geo_cartesianScale(n2, c2);
d3_geo_cartesianAdd(A, B);
var u = n1xn2, w = d3_geo_cartesianDot(A, u), uu = d3_geo_cartesianDot(u, u), t = Math.sqrt(w * w - uu * (d3_geo_cartesianDot(A, A) - 1)), q = d3_geo_cartesianScale(u, (-w - t) / uu);
d3_geo_cartesianAdd(q, A);
return d3_geo_spherical(q);
}
}
function d3_geo_compose(a, b) {
function compose(x, y) {
return x = a(x, y), b(x[0], x[1]);
}
if (a.invert && b.invert) compose.invert = function(x, y) {
return x = b.invert(x, y), x && a.invert(x[0], x[1]);
};
return compose;
}
function d3_geo_equirectangular(λ, φ) {
return [ λ, φ ];
}
(d3.geo.equirectangular = function() {
return d3_geo_projection(d3_geo_equirectangular).scale(250 / π);
}).raw = d3_geo_equirectangular.invert = d3_geo_equirectangular;
var d3_geo_gnomonic = d3_geo_azimuthal(function(cosλcosφ) {
return 1 / cosλcosφ;
}, Math.atan);
(d3.geo.gnomonic = function() {
return d3_geo_projection(d3_geo_gnomonic);
}).raw = d3_geo_gnomonic;
d3.geo.graticule = function() {
var x1, x0, y1, y0, dx = 22.5, dy = dx, x, y, precision = 2.5;
function graticule() {
return {
type: "MultiLineString",
coordinates: lines()
};
}
function lines() {
return d3.range(Math.ceil(x0 / dx) * dx, x1, dx).map(x).concat(d3.range(Math.ceil(y0 / dy) * dy, y1, dy).map(y));
}
graticule.lines = function() {
return lines().map(function(coordinates) {
return {
type: "LineString",
coordinates: coordinates
};
});
};
graticule.outline = function() {
return {
type: "Polygon",
coordinates: [ x(x0).concat(y(y1).slice(1), x(x1).reverse().slice(1), y(y0).reverse().slice(1)) ]
};
};
graticule.extent = function(_) {
if (!arguments.length) return [ [ x0, y0 ], [ x1, y1 ] ];
x0 = +_[0][0], x1 = +_[1][0];
y0 = +_[0][1], y1 = +_[1][1];
if (x0 > x1) _ = x0, x0 = x1, x1 = _;
if (y0 > y1) _ = y0, y0 = y1, y1 = _;
return graticule.precision(precision);
};
graticule.step = function(_) {
if (!arguments.length) return [ dx, dy ];
dx = +_[0], dy = +_[1];
return graticule;
};
graticule.precision = function(_) {
if (!arguments.length) return precision;
precision = +_;
x = d3_geo_graticuleX(y0, y1, precision);
y = d3_geo_graticuleY(x0, x1, precision);
return graticule;
};
return graticule.extent([ [ -180 + ε, -90 + ε ], [ 180 - ε, 90 - ε ] ]);
};
function d3_geo_graticuleX(y0, y1, dy) {
var y = d3.range(y0, y1 - ε, dy).concat(y1);
return function(x) {
return y.map(function(y) {
return [ x, y ];
});
};
}
function d3_geo_graticuleY(x0, x1, dx) {
var x = d3.range(x0, x1 - ε, dx).concat(x1);
return function(y) {
return x.map(function(x) {
return [ x, y ];
});
};
}
d3.geo.interpolate = function(source, target) {
return d3_geo_interpolate(source[0] * d3_radians, source[1] * d3_radians, target[0] * d3_radians, target[1] * d3_radians);
};
function d3_geo_interpolate(x0, y0, x1, y1) {
var cy0 = Math.cos(y0), sy0 = Math.sin(y0), cy1 = Math.cos(y1), sy1 = Math.sin(y1), kx0 = cy0 * Math.cos(x0), ky0 = cy0 * Math.sin(x0), kx1 = cy1 * Math.cos(x1), ky1 = cy1 * Math.sin(x1), d = Math.acos(Math.max(-1, Math.min(1, sy0 * sy1 + cy0 * cy1 * Math.cos(x1 - x0)))), k = 1 / Math.sin(d);
function interpolate(t) {
var B = Math.sin(t *= d) * k, A = Math.sin(d - t) * k, x = A * kx0 + B * kx1, y = A * ky0 + B * ky1, z = A * sy0 + B * sy1;
return [ Math.atan2(y, x) / d3_radians, Math.atan2(z, Math.sqrt(x * x + y * y)) / d3_radians ];
}
interpolate.distance = d;
return interpolate;
}
d3.geo.greatArc = function() {
var source = d3_source, source_, target = d3_target, target_, precision = 6 * d3_radians, interpolate;
function greatArc() {
var p0 = source_ || source.apply(this, arguments), p1 = target_ || target.apply(this, arguments), i = interpolate || d3.geo.interpolate(p0, p1), t = 0, dt = precision / i.distance, coordinates = [ p0 ];
while ((t += dt) < 1) coordinates.push(i(t));
coordinates.push(p1);
return {
type: "LineString",
coordinates: coordinates
};
}
greatArc.distance = function() {
return (interpolate || d3.geo.interpolate(source_ || source.apply(this, arguments), target_ || target.apply(this, arguments))).distance;
};
greatArc.source = function(_) {
if (!arguments.length) return source;
source = _, source_ = typeof _ === "function" ? null : _;
interpolate = source_ && target_ ? d3.geo.interpolate(source_, target_) : null;
return greatArc;
};
greatArc.target = function(_) {
if (!arguments.length) return target;
target = _, target_ = typeof _ === "function" ? null : _;
interpolate = source_ && target_ ? d3.geo.interpolate(source_, target_) : null;
return greatArc;
};
greatArc.precision = function(_) {
if (!arguments.length) return precision / d3_radians;
precision = _ * d3_radians;
return greatArc;
};
return greatArc;
};
function d3_geo_mercator(λ, φ) {
return [ λ / (2 * π), Math.max(-.5, Math.min(+.5, Math.log(Math.tan(π / 4 + φ / 2)) / (2 * π))) ];
}
d3_geo_mercator.invert = function(x, y) {
return [ 2 * π * x, 2 * Math.atan(Math.exp(2 * π * y)) - π / 2 ];
};
(d3.geo.mercator = function() {
return d3_geo_projection(d3_geo_mercator).scale(500);
}).raw = d3_geo_mercator;
var d3_geo_orthographic = d3_geo_azimuthal(function() {
return 1;
}, Math.asin);
(d3.geo.orthographic = function() {
return d3_geo_projection(d3_geo_orthographic);
}).raw = d3_geo_orthographic;
d3.geo.path = function() {
var pointRadius = 4.5, projection, context, projectStream, contextStream;
function path(object) {
if (object) d3.geo.stream(object, projectStream(contextStream.pointRadius(typeof pointRadius === "function" ? +pointRadius.apply(this, arguments) : pointRadius)));
return contextStream.result();
}
path.area = function(object) {
d3_geo_pathAreaSum = 0;
d3.geo.stream(object, projectStream(d3_geo_pathArea));
return d3_geo_pathAreaSum;
};
path.centroid = function(object) {
d3_geo_centroidDimension = d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
d3.geo.stream(object, projectStream(d3_geo_pathCentroid));
return d3_geo_centroidZ ? [ d3_geo_centroidX / d3_geo_centroidZ, d3_geo_centroidY / d3_geo_centroidZ ] : undefined;
};
path.bounds = function(object) {
return d3_geo_bounds(projectStream)(object);
};
path.projection = function(_) {
if (!arguments.length) return projection;
projectStream = (projection = _) ? _.stream || d3_geo_pathProjectStream(_) : d3_identity;
return path;
};
path.context = function(_) {
if (!arguments.length) return context;
contextStream = (context = _) == null ? new d3_geo_pathBuffer() : new d3_geo_pathContext(_);
return path;
};
path.pointRadius = function(_) {
if (!arguments.length) return pointRadius;
pointRadius = typeof _ === "function" ? _ : +_;
return path;
};
return path.projection(d3.geo.albersUsa()).context(null);
};
function d3_geo_pathCircle(radius) {
return "m0," + radius + "a" + radius + "," + radius + " 0 1,1 0," + -2 * radius + "a" + radius + "," + radius + " 0 1,1 0," + +2 * radius + "z";
}
function d3_geo_pathProjectStream(project) {
var resample = d3_geo_resample(function(λ, φ) {
return project([ λ * d3_degrees, φ * d3_degrees ]);
});
return function(stream) {
stream = resample(stream);
return {
point: function(λ, φ) {
stream.point(λ * d3_radians, φ * d3_radians);
},
sphere: function() {
stream.sphere();
},
lineStart: function() {
stream.lineStart();
},
lineEnd: function() {
stream.lineEnd();
},
polygonStart: function() {
stream.polygonStart();
},
polygonEnd: function() {
stream.polygonEnd();
}
};
};
}
function d3_geo_pathBuffer() {
var pointCircle = d3_geo_pathCircle(4.5), buffer = [];
var stream = {
point: point,
lineStart: function() {
stream.point = pointLineStart;
},
lineEnd: lineEnd,
polygonStart: function() {
stream.lineEnd = lineEndPolygon;
},
polygonEnd: function() {
stream.lineEnd = lineEnd;
stream.point = point;
},
pointRadius: function(_) {
pointCircle = d3_geo_pathCircle(_);
return stream;
},
result: function() {
if (buffer.length) {
var result = buffer.join("");
buffer = [];
return result;
}
}
};
function point(x, y) {
buffer.push("M", x, ",", y, pointCircle);
}
function pointLineStart(x, y) {
buffer.push("M", x, ",", y);
stream.point = pointLine;
}
function pointLine(x, y) {
buffer.push("L", x, ",", y);
}
function lineEnd() {
stream.point = point;
}
function lineEndPolygon() {
buffer.push("Z");
}
return stream;
}
function d3_geo_pathContext(context) {
var pointRadius = 4.5;
var stream = {
point: point,
lineStart: function() {
stream.point = pointLineStart;
},
lineEnd: lineEnd,
polygonStart: function() {
stream.lineEnd = lineEndPolygon;
},
polygonEnd: function() {
stream.lineEnd = lineEnd;
stream.point = point;
},
pointRadius: function(_) {
pointRadius = _;
return stream;
},
result: d3_noop
};
function point(x, y) {
context.moveTo(x, y);
context.arc(x, y, pointRadius, 0, 2 * π);
}
function pointLineStart(x, y) {
context.moveTo(x, y);
stream.point = pointLine;
}
function pointLine(x, y) {
context.lineTo(x, y);
}
function lineEnd() {
stream.point = point;
}
function lineEndPolygon() {
context.closePath();
}
return stream;
}
var d3_geo_pathAreaSum, d3_geo_pathAreaPolygon, d3_geo_pathArea = {
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
d3_geo_pathAreaPolygon = 0;
d3_geo_pathArea.lineStart = d3_geo_pathAreaRingStart;
},
polygonEnd: function() {
d3_geo_pathArea.lineStart = d3_geo_pathArea.lineEnd = d3_geo_pathArea.point = d3_noop;
d3_geo_pathAreaSum += Math.abs(d3_geo_pathAreaPolygon / 2);
}
};
function d3_geo_pathAreaRingStart() {
var x00, y00, x0, y0;
d3_geo_pathArea.point = function(x, y) {
d3_geo_pathArea.point = nextPoint;
x00 = x0 = x, y00 = y0 = y;
};
function nextPoint(x, y) {
d3_geo_pathAreaPolygon += y0 * x - x0 * y;
x0 = x, y0 = y;
}
d3_geo_pathArea.lineEnd = function() {
nextPoint(x00, y00);
};
}
var d3_geo_pathCentroid = {
point: d3_geo_pathCentroidPoint,
lineStart: d3_geo_pathCentroidLineStart,
lineEnd: d3_geo_pathCentroidLineEnd,
polygonStart: function() {
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidRingStart;
},
polygonEnd: function() {
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
d3_geo_pathCentroid.lineStart = d3_geo_pathCentroidLineStart;
d3_geo_pathCentroid.lineEnd = d3_geo_pathCentroidLineEnd;
}
};
function d3_geo_pathCentroidPoint(x, y) {
if (d3_geo_centroidDimension) return;
d3_geo_centroidX += x;
d3_geo_centroidY += y;
++d3_geo_centroidZ;
}
function d3_geo_pathCentroidLineStart() {
var x0, y0;
if (d3_geo_centroidDimension !== 1) {
if (d3_geo_centroidDimension < 1) {
d3_geo_centroidDimension = 1;
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
} else return;
}
d3_geo_pathCentroid.point = function(x, y) {
d3_geo_pathCentroid.point = nextPoint;
x0 = x, y0 = y;
};
function nextPoint(x, y) {
var dx = x - x0, dy = y - y0, z = Math.sqrt(dx * dx + dy * dy);
d3_geo_centroidX += z * (x0 + x) / 2;
d3_geo_centroidY += z * (y0 + y) / 2;
d3_geo_centroidZ += z;
x0 = x, y0 = y;
}
}
function d3_geo_pathCentroidLineEnd() {
d3_geo_pathCentroid.point = d3_geo_pathCentroidPoint;
}
function d3_geo_pathCentroidRingStart() {
var x00, y00, x0, y0;
if (d3_geo_centroidDimension < 2) {
d3_geo_centroidDimension = 2;
d3_geo_centroidX = d3_geo_centroidY = d3_geo_centroidZ = 0;
}
d3_geo_pathCentroid.point = function(x, y) {
d3_geo_pathCentroid.point = nextPoint;
x00 = x0 = x, y00 = y0 = y;
};
function nextPoint(x, y) {
var z = y0 * x - x0 * y;
d3_geo_centroidX += z * (x0 + x);
d3_geo_centroidY += z * (y0 + y);
d3_geo_centroidZ += z * 3;
x0 = x, y0 = y;
}
d3_geo_pathCentroid.lineEnd = function() {
nextPoint(x00, y00);
};
}
d3.geo.area = function(object) {
d3_geo_areaSum = 0;
d3.geo.stream(object, d3_geo_area);
return d3_geo_areaSum;
};
var d3_geo_areaSum, d3_geo_areaRingU, d3_geo_areaRingV;
var d3_geo_area = {
sphere: function() {
d3_geo_areaSum += 4 * π;
},
point: d3_noop,
lineStart: d3_noop,
lineEnd: d3_noop,
polygonStart: function() {
d3_geo_areaRingU = 1, d3_geo_areaRingV = 0;
d3_geo_area.lineStart = d3_geo_areaRingStart;
},
polygonEnd: function() {
var area = 2 * Math.atan2(d3_geo_areaRingV, d3_geo_areaRingU);
d3_geo_areaSum += area < 0 ? 4 * π + area : area;
d3_geo_area.lineStart = d3_geo_area.lineEnd = d3_geo_area.point = d3_noop;
}
};
function d3_geo_areaRingStart() {
var λ00, φ00, λ0, cosφ0, sinφ0;
d3_geo_area.point = function(λ, φ) {
d3_geo_area.point = nextPoint;
λ0 = (λ00 = λ) * d3_radians, cosφ0 = Math.cos(φ = (φ00 = φ) * d3_radians / 2 + π / 4),
sinφ0 = Math.sin(φ);
};
function nextPoint(λ, φ) {
λ *= d3_radians;
φ = φ * d3_radians / 2 + π / 4;
var dλ = λ - λ0, cosφ = Math.cos(φ), sinφ = Math.sin(φ), k = sinφ0 * sinφ, u0 = d3_geo_areaRingU, v0 = d3_geo_areaRingV, u = cosφ0 * cosφ + k * Math.cos(dλ), v = k * Math.sin(dλ);
d3_geo_areaRingU = u0 * u - v0 * v;
d3_geo_areaRingV = v0 * u + u0 * v;
λ0 = λ, cosφ0 = cosφ, sinφ0 = sinφ;
}
d3_geo_area.lineEnd = function() {
nextPoint(λ00, φ00);
};
}
d3.geo.projection = d3_geo_projection;
d3.geo.projectionMutator = d3_geo_projectionMutator;
function d3_geo_projection(project) {
return d3_geo_projectionMutator(function() {
return project;
})();
}
function d3_geo_projectionMutator(projectAt) {
var project, rotate, projectRotate, projectResample = d3_geo_resample(function(x, y) {
x = project(x, y);
return [ x[0] * k + δx, δy - x[1] * k ];
}), k = 150, x = 480, y = 250, λ = 0, φ = 0, δλ = 0, δφ = 0, δγ = 0, δx, δy, clip = d3_geo_clipAntimeridian, clipAngle = null;
function projection(point) {
point = projectRotate(point[0] * d3_radians, point[1] * d3_radians);
return [ point[0] * k + δx, δy - point[1] * k ];
}
function invert(point) {
point = projectRotate.invert((point[0] - δx) / k, (δy - point[1]) / k);
return point && [ point[0] * d3_degrees, point[1] * d3_degrees ];
}
projection.stream = function(stream) {
return d3_geo_projectionRadiansRotate(rotate, clip(projectResample(stream)));
};
projection.clipAngle = function(_) {
if (!arguments.length) return clipAngle;
clip = _ == null ? (clipAngle = _, d3_geo_clipAntimeridian) : d3_geo_clipCircle(clipAngle = +_);
return projection;
};
projection.scale = function(_) {
if (!arguments.length) return k;
k = +_;
return reset();
};
projection.translate = function(_) {
if (!arguments.length) return [ x, y ];
x = +_[0];
y = +_[1];
return reset();
};
projection.center = function(_) {
if (!arguments.length) return [ λ * d3_degrees, φ * d3_degrees ];
λ = _[0] % 360 * d3_radians;
φ = _[1] % 360 * d3_radians;
return reset();
};
projection.rotate = function(_) {
if (!arguments.length) return [ δλ * d3_degrees, δφ * d3_degrees, δγ * d3_degrees ];
δλ = _[0] % 360 * d3_radians;
δφ = _[1] % 360 * d3_radians;
δγ = _.length > 2 ? _[2] % 360 * d3_radians : 0;
return reset();
};
d3.rebind(projection, projectResample, "precision");
function reset() {
projectRotate = d3_geo_compose(rotate = d3_geo_rotation(δλ, δφ, δγ), project);
var center = project(λ, φ);
δx = x - center[0] * k;
δy = y + center[1] * k;
return projection;
}
return function() {
project = projectAt.apply(this, arguments);
projection.invert = project.invert && invert;
return reset();
};
}
function d3_geo_projectionRadiansRotate(rotate, stream) {
return {
point: function(x, y) {
y = rotate(x * d3_radians, y * d3_radians), x = y[0];
stream.point(x > π ? x - 2 * π : x < -π ? x + 2 * π : x, y[1]);
},
sphere: function() {
stream.sphere();
},
lineStart: function() {
stream.lineStart();
},
lineEnd: function() {
stream.lineEnd();
},
polygonStart: function() {
stream.polygonStart();
},
polygonEnd: function() {
stream.polygonEnd();
}
};
}
function d3_geo_rotation(δλ, δφ, δγ) {
return δλ ? δφ || δγ ? d3_geo_compose(d3_geo_rotationλ(δλ), d3_geo_rotationφγ(δφ, δγ)) : d3_geo_rotationλ(δλ) : δφ || δγ ? d3_geo_rotationφγ(δφ, δγ) : d3_geo_equirectangular;
}
function d3_geo_forwardRotationλ(δλ) {
return function(λ, φ) {
return λ += δλ, [ λ > π ? λ - 2 * π : λ < -π ? λ + 2 * π : λ, φ ];
};
}
function d3_geo_rotationλ(δλ) {
var rotation = d3_geo_forwardRotationλ(δλ);
rotation.invert = d3_geo_forwardRotationλ(-δλ);
return rotation;
}
function d3_geo_rotationφγ(δφ, δγ) {
var cosδφ = Math.cos(δφ), sinδφ = Math.sin(δφ), cosδγ = Math.cos(δγ), sinδγ = Math.sin(δγ);
function rotation(λ, φ) {
var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδφ + x * sinδφ;
return [ Math.atan2(y * cosδγ - k * sinδγ, x * cosδφ - z * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδγ + y * sinδγ))) ];
}
rotation.invert = function(λ, φ) {
var cosφ = Math.cos(φ), x = Math.cos(λ) * cosφ, y = Math.sin(λ) * cosφ, z = Math.sin(φ), k = z * cosδγ - y * sinδγ;
return [ Math.atan2(y * cosδγ + z * sinδγ, x * cosδφ + k * sinδφ), Math.asin(Math.max(-1, Math.min(1, k * cosδφ - x * sinδφ))) ];
};
return rotation;
}
var d3_geo_stereographic = d3_geo_azimuthal(function(cosλcosφ) {
return 1 / (1 + cosλcosφ);
}, function(ρ) {
return 2 * Math.atan(ρ);
});
(d3.geo.stereographic = function() {
return d3_geo_projection(d3_geo_stereographic);
}).raw = d3_geo_stereographic;
function d3_geo_azimuthal(scale, angle) {
function azimuthal(λ, φ) {
var cosλ = Math.cos(λ), cosφ = Math.cos(φ), k = scale(cosλ * cosφ);
return [ k * cosφ * Math.sin(λ), k * Math.sin(φ) ];
}
azimuthal.invert = function(x, y) {
var ρ = Math.sqrt(x * x + y * y), c = angle(ρ), sinc = Math.sin(c), cosc = Math.cos(c);
return [ Math.atan2(x * sinc, ρ * cosc), Math.asin(ρ && y * sinc / ρ) ];
};
return azimuthal;
}
d3.geom = {};
d3.geom.hull = function(vertices) {
if (vertices.length < 3) return [];
var len = vertices.length, plen = len - 1, points = [], stack = [], i, j, h = 0, x1, y1, x2, y2, u, v, a, sp;
for (i = 1; i < len; ++i) {
if (vertices[i][1] < vertices[h][1]) {
h = i;
} else if (vertices[i][1] == vertices[h][1]) {
h = vertices[i][0] < vertices[h][0] ? i : h;
}
}
for (i = 0; i < len; ++i) {
if (i === h) continue;
y1 = vertices[i][1] - vertices[h][1];
x1 = vertices[i][0] - vertices[h][0];
points.push({
angle: Math.atan2(y1, x1),
index: i
});
}
points.sort(function(a, b) {
return a.angle - b.angle;
});
a = points[0].angle;
v = points[0].index;
u = 0;
for (i = 1; i < plen; ++i) {
j = points[i].index;
if (a == points[i].angle) {
x1 = vertices[v][0] - vertices[h][0];
y1 = vertices[v][1] - vertices[h][1];
x2 = vertices[j][0] - vertices[h][0];
y2 = vertices[j][1] - vertices[h][1];
if (x1 * x1 + y1 * y1 >= x2 * x2 + y2 * y2) {
points[i].index = -1;
} else {
points[u].index = -1;
a = points[i].angle;
u = i;
v = j;
}
} else {
a = points[i].angle;
u = i;
v = j;
}
}
stack.push(h);
for (i = 0, j = 0; i < 2; ++j) {
if (points[j].index !== -1) {
stack.push(points[j].index);
i++;
}
}
sp = stack.length;
for (;j < plen; ++j) {
if (points[j].index === -1) continue;
while (!d3_geom_hullCCW(stack[sp - 2], stack[sp - 1], points[j].index, vertices)) {
--sp;
}
stack[sp++] = points[j].index;
}
var poly = [];
for (i = 0; i < sp; ++i) {
poly.push(vertices[stack[i]]);
}
return poly;
};
function d3_geom_hullCCW(i1, i2, i3, v) {
var t, a, b, c, d, e, f;
t = v[i1];
a = t[0];
b = t[1];
t = v[i2];
c = t[0];
d = t[1];
t = v[i3];
e = t[0];
f = t[1];
return (f - b) * (c - a) - (d - b) * (e - a) > 0;
}
d3.geom.polygon = function(coordinates) {
coordinates.area = function() {
var i = 0, n = coordinates.length, area = coordinates[n - 1][1] * coordinates[0][0] - coordinates[n - 1][0] * coordinates[0][1];
while (++i < n) {
area += coordinates[i - 1][1] * coordinates[i][0] - coordinates[i - 1][0] * coordinates[i][1];
}
return area * .5;
};
coordinates.centroid = function(k) {
var i = -1, n = coordinates.length, x = 0, y = 0, a, b = coordinates[n - 1], c;
if (!arguments.length) k = -1 / (6 * coordinates.area());
while (++i < n) {
a = b;
b = coordinates[i];
c = a[0] * b[1] - b[0] * a[1];
x += (a[0] + b[0]) * c;
y += (a[1] + b[1]) * c;
}
return [ x * k, y * k ];
};
coordinates.clip = function(subject) {
var input, i = -1, n = coordinates.length, j, m, a = coordinates[n - 1], b, c, d;
while (++i < n) {
input = subject.slice();
subject.length = 0;
b = coordinates[i];
c = input[(m = input.length) - 1];
j = -1;
while (++j < m) {
d = input[j];
if (d3_geom_polygonInside(d, a, b)) {
if (!d3_geom_polygonInside(c, a, b)) {
subject.push(d3_geom_polygonIntersect(c, d, a, b));
}
subject.push(d);
} else if (d3_geom_polygonInside(c, a, b)) {
subject.push(d3_geom_polygonIntersect(c, d, a, b));
}
c = d;
}
a = b;
}
return subject;
};
return coordinates;
};
function d3_geom_polygonInside(p, a, b) {
return (b[0] - a[0]) * (p[1] - a[1]) < (b[1] - a[1]) * (p[0] - a[0]);
}
function d3_geom_polygonIntersect(c, d, a, b) {
var x1 = c[0], x3 = a[0], x21 = d[0] - x1, x43 = b[0] - x3, y1 = c[1], y3 = a[1], y21 = d[1] - y1, y43 = b[1] - y3, ua = (x43 * (y1 - y3) - y43 * (x1 - x3)) / (y43 * x21 - x43 * y21);
return [ x1 + ua * x21, y1 + ua * y21 ];
}
d3.geom.voronoi = function(vertices) {
var polygons = vertices.map(function() {
return [];
}), Z = 1e6;
d3_voronoi_tessellate(vertices, function(e) {
var s1, s2, x1, x2, y1, y2;
if (e.a === 1 && e.b >= 0) {
s1 = e.ep.r;
s2 = e.ep.l;
} else {
s1 = e.ep.l;
s2 = e.ep.r;
}
if (e.a === 1) {
y1 = s1 ? s1.y : -Z;
x1 = e.c - e.b * y1;
y2 = s2 ? s2.y : Z;
x2 = e.c - e.b * y2;
} else {
x1 = s1 ? s1.x : -Z;
y1 = e.c - e.a * x1;
x2 = s2 ? s2.x : Z;
y2 = e.c - e.a * x2;
}
var v1 = [ x1, y1 ], v2 = [ x2, y2 ];
polygons[e.region.l.index].push(v1, v2);
polygons[e.region.r.index].push(v1, v2);
});
polygons = polygons.map(function(polygon, i) {
var cx = vertices[i][0], cy = vertices[i][1], angle = polygon.map(function(v) {
return Math.atan2(v[0] - cx, v[1] - cy);
}), order = d3.range(polygon.length).sort(function(a, b) {
return angle[a] - angle[b];
});
return order.filter(function(d, i) {
return !i || angle[d] - angle[order[i - 1]] > ε;
}).map(function(d) {
return polygon[d];
});
});
polygons.forEach(function(polygon, i) {
var n = polygon.length;
if (!n) return polygon.push([ -Z, -Z ], [ -Z, Z ], [ Z, Z ], [ Z, -Z ]);
if (n > 2) return;
var p0 = vertices[i], p1 = polygon[0], p2 = polygon[1], x0 = p0[0], y0 = p0[1], x1 = p1[0], y1 = p1[1], x2 = p2[0], y2 = p2[1], dx = Math.abs(x2 - x1), dy = y2 - y1;
if (Math.abs(dy) < ε) {
var y = y0 < y1 ? -Z : Z;
polygon.push([ -Z, y ], [ Z, y ]);
} else if (dx < ε) {
var x = x0 < x1 ? -Z : Z;
polygon.push([ x, -Z ], [ x, Z ]);
} else {
var y = (x2 - x1) * (y1 - y0) < (x1 - x0) * (y2 - y1) ? Z : -Z, z = Math.abs(dy) - dx;
if (Math.abs(z) < ε) {
polygon.push([ dy < 0 ? y : -y, y ]);
} else {
if (z > 0) y *= -1;
polygon.push([ -Z, y ], [ Z, y ]);
}
}
});
return polygons;
};
var d3_voronoi_opposite = {
l: "r",
r: "l"
};
function d3_voronoi_tessellate(vertices, callback) {
var Sites = {
list: vertices.map(function(v, i) {
return {
index: i,
x: v[0],
y: v[1]
};
}).sort(function(a, b) {
return a.y < b.y ? -1 : a.y > b.y ? 1 : a.x < b.x ? -1 : a.x > b.x ? 1 : 0;
}),
bottomSite: null
};
var EdgeList = {
list: [],
leftEnd: null,
rightEnd: null,
init: function() {
EdgeList.leftEnd = EdgeList.createHalfEdge(null, "l");
EdgeList.rightEnd = EdgeList.createHalfEdge(null, "l");
EdgeList.leftEnd.r = EdgeList.rightEnd;
EdgeList.rightEnd.l = EdgeList.leftEnd;
EdgeList.list.unshift(EdgeList.leftEnd, EdgeList.rightEnd);
},
createHalfEdge: function(edge, side) {
return {
edge: edge,
side: side,
vertex: null,
l: null,
r: null
};
},
insert: function(lb, he) {
he.l = lb;
he.r = lb.r;
lb.r.l = he;
lb.r = he;
},
leftBound: function(p) {
var he = EdgeList.leftEnd;
do {
he = he.r;
} while (he != EdgeList.rightEnd && Geom.rightOf(he, p));
he = he.l;
return he;
},
del: function(he) {
he.l.r = he.r;
he.r.l = he.l;
he.edge = null;
},
right: function(he) {
return he.r;
},
left: function(he) {
return he.l;
},
leftRegion: function(he) {
return he.edge == null ? Sites.bottomSite : he.edge.region[he.side];
},
rightRegion: function(he) {
return he.edge == null ? Sites.bottomSite : he.edge.region[d3_voronoi_opposite[he.side]];
}
};
var Geom = {
bisect: function(s1, s2) {
var newEdge = {
region: {
l: s1,
r: s2
},
ep: {
l: null,
r: null
}
};
var dx = s2.x - s1.x, dy = s2.y - s1.y, adx = dx > 0 ? dx : -dx, ady = dy > 0 ? dy : -dy;
newEdge.c = s1.x * dx + s1.y * dy + (dx * dx + dy * dy) * .5;
if (adx > ady) {
newEdge.a = 1;
newEdge.b = dy / dx;
newEdge.c /= dx;
} else {
newEdge.b = 1;
newEdge.a = dx / dy;
newEdge.c /= dy;
}
return newEdge;
},
intersect: function(el1, el2) {
var e1 = el1.edge, e2 = el2.edge;
if (!e1 || !e2 || e1.region.r == e2.region.r) {
return null;
}
var d = e1.a * e2.b - e1.b * e2.a;
if (Math.abs(d) < 1e-10) {
return null;
}
var xint = (e1.c * e2.b - e2.c * e1.b) / d, yint = (e2.c * e1.a - e1.c * e2.a) / d, e1r = e1.region.r, e2r = e2.region.r, el, e;
if (e1r.y < e2r.y || e1r.y == e2r.y && e1r.x < e2r.x) {
el = el1;
e = e1;
} else {
el = el2;
e = e2;
}
var rightOfSite = xint >= e.region.r.x;
if (rightOfSite && el.side === "l" || !rightOfSite && el.side === "r") {
return null;
}
return {
x: xint,
y: yint
};
},
rightOf: function(he, p) {
var e = he.edge, topsite = e.region.r, rightOfSite = p.x > topsite.x;
if (rightOfSite && he.side === "l") {
return 1;
}
if (!rightOfSite && he.side === "r") {
return 0;
}
if (e.a === 1) {
var dyp = p.y - topsite.y, dxp = p.x - topsite.x, fast = 0, above = 0;
if (!rightOfSite && e.b < 0 || rightOfSite && e.b >= 0) {
above = fast = dyp >= e.b * dxp;
} else {
above = p.x + p.y * e.b > e.c;
if (e.b < 0) {
above = !above;
}
if (!above) {
fast = 1;
}
}
if (!fast) {
var dxs = topsite.x - e.region.l.x;
above = e.b * (dxp * dxp - dyp * dyp) < dxs * dyp * (1 + 2 * dxp / dxs + e.b * e.b);
if (e.b < 0) {
above = !above;
}
}
} else {
var yl = e.c - e.a * p.x, t1 = p.y - yl, t2 = p.x - topsite.x, t3 = yl - topsite.y;
above = t1 * t1 > t2 * t2 + t3 * t3;
}
return he.side === "l" ? above : !above;
},
endPoint: function(edge, side, site) {
edge.ep[side] = site;
if (!edge.ep[d3_voronoi_opposite[side]]) return;
callback(edge);
},
distance: function(s, t) {
var dx = s.x - t.x, dy = s.y - t.y;
return Math.sqrt(dx * dx + dy * dy);
}
};
var EventQueue = {
list: [],
insert: function(he, site, offset) {
he.vertex = site;
he.ystar = site.y + offset;
for (var i = 0, list = EventQueue.list, l = list.length; i < l; i++) {
var next = list[i];
if (he.ystar > next.ystar || he.ystar == next.ystar && site.x > next.vertex.x) {
continue;
} else {
break;
}
}
list.splice(i, 0, he);
},
del: function(he) {
for (var i = 0, ls = EventQueue.list, l = ls.length; i < l && ls[i] != he; ++i) {}
ls.splice(i, 1);
},
empty: function() {
return EventQueue.list.length === 0;
},
nextEvent: function(he) {
for (var i = 0, ls = EventQueue.list, l = ls.length; i < l; ++i) {
if (ls[i] == he) return ls[i + 1];
}
return null;
},
min: function() {
var elem = EventQueue.list[0];
return {
x: elem.vertex.x,
y: elem.ystar
};
},
extractMin: function() {
return EventQueue.list.shift();
}
};
EdgeList.init();
Sites.bottomSite = Sites.list.shift();
var newSite = Sites.list.shift(), newIntStar;
var lbnd, rbnd, llbnd, rrbnd, bisector;
var bot, top, temp, p, v;
var e, pm;
while (true) {
if (!EventQueue.empty()) {
newIntStar = EventQueue.min();
}
if (newSite && (EventQueue.empty() || newSite.y < newIntStar.y || newSite.y == newIntStar.y && newSite.x < newIntStar.x)) {
lbnd = EdgeList.leftBound(newSite);
rbnd = EdgeList.right(lbnd);
bot = EdgeList.rightRegion(lbnd);
e = Geom.bisect(bot, newSite);
bisector = EdgeList.createHalfEdge(e, "l");
EdgeList.insert(lbnd, bisector);
p = Geom.intersect(lbnd, bisector);
if (p) {
EventQueue.del(lbnd);
EventQueue.insert(lbnd, p, Geom.distance(p, newSite));
}
lbnd = bisector;
bisector = EdgeList.createHalfEdge(e, "r");
EdgeList.insert(lbnd, bisector);
p = Geom.intersect(bisector, rbnd);
if (p) {
EventQueue.insert(bisector, p, Geom.distance(p, newSite));
}
newSite = Sites.list.shift();
} else if (!EventQueue.empty()) {
lbnd = EventQueue.extractMin();
llbnd = EdgeList.left(lbnd);
rbnd = EdgeList.right(lbnd);
rrbnd = EdgeList.right(rbnd);
bot = EdgeList.leftRegion(lbnd);
top = EdgeList.rightRegion(rbnd);
v = lbnd.vertex;
Geom.endPoint(lbnd.edge, lbnd.side, v);
Geom.endPoint(rbnd.edge, rbnd.side, v);
EdgeList.del(lbnd);
EventQueue.del(rbnd);
EdgeList.del(rbnd);
pm = "l";
if (bot.y > top.y) {
temp = bot;
bot = top;
top = temp;
pm = "r";
}
e = Geom.bisect(bot, top);
bisector = EdgeList.createHalfEdge(e, pm);
EdgeList.insert(llbnd, bisector);
Geom.endPoint(e, d3_voronoi_opposite[pm], v);
p = Geom.intersect(llbnd, bisector);
if (p) {
EventQueue.del(llbnd);
EventQueue.insert(llbnd, p, Geom.distance(p, bot));
}
p = Geom.intersect(bisector, rrbnd);
if (p) {
EventQueue.insert(bisector, p, Geom.distance(p, bot));
}
} else {
break;
}
}
for (lbnd = EdgeList.right(EdgeList.leftEnd); lbnd != EdgeList.rightEnd; lbnd = EdgeList.right(lbnd)) {
callback(lbnd.edge);
}
}
d3.geom.delaunay = function(vertices) {
var edges = vertices.map(function() {
return [];
}), triangles = [];
d3_voronoi_tessellate(vertices, function(e) {
edges[e.region.l.index].push(vertices[e.region.r.index]);
});
edges.forEach(function(edge, i) {
var v = vertices[i], cx = v[0], cy = v[1];
edge.forEach(function(v) {
v.angle = Math.atan2(v[0] - cx, v[1] - cy);
});
edge.sort(function(a, b) {
return a.angle - b.angle;
});
for (var j = 0, m = edge.length - 1; j < m; j++) {
triangles.push([ v, edge[j], edge[j + 1] ]);
}
});
return triangles;
};
d3.geom.quadtree = function(points, x1, y1, x2, y2) {
var p, i = -1, n = points.length;
if (arguments.length < 5) {
if (arguments.length === 3) {
y2 = y1;
x2 = x1;
y1 = x1 = 0;
} else {
x1 = y1 = Infinity;
x2 = y2 = -Infinity;
while (++i < n) {
p = points[i];
if (p.x < x1) x1 = p.x;
if (p.y < y1) y1 = p.y;
if (p.x > x2) x2 = p.x;
if (p.y > y2) y2 = p.y;
}
}
}
var dx = x2 - x1, dy = y2 - y1;
if (dx > dy) y2 = y1 + dx; else x2 = x1 + dy;
function insert(n, p, x1, y1, x2, y2) {
if (isNaN(p.x) || isNaN(p.y)) return;
if (n.leaf) {
var v = n.point;
if (v) {
if (Math.abs(v.x - p.x) + Math.abs(v.y - p.y) < .01) {
insertChild(n, p, x1, y1, x2, y2);
} else {
n.point = null;
insertChild(n, v, x1, y1, x2, y2);
insertChild(n, p, x1, y1, x2, y2);
}
} else {
n.point = p;
}
} else {
insertChild(n, p, x1, y1, x2, y2);
}
}
function insertChild(n, p, x1, y1, x2, y2) {
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, right = p.x >= sx, bottom = p.y >= sy, i = (bottom << 1) + right;
n.leaf = false;
n = n.nodes[i] || (n.nodes[i] = d3_geom_quadtreeNode());
if (right) x1 = sx; else x2 = sx;
if (bottom) y1 = sy; else y2 = sy;
insert(n, p, x1, y1, x2, y2);
}
var root = d3_geom_quadtreeNode();
root.add = function(p) {
insert(root, p, x1, y1, x2, y2);
};
root.visit = function(f) {
d3_geom_quadtreeVisit(f, root, x1, y1, x2, y2);
};
points.forEach(root.add);
return root;
};
function d3_geom_quadtreeNode() {
return {
leaf: true,
nodes: [],
point: null
};
}
function d3_geom_quadtreeVisit(f, node, x1, y1, x2, y2) {
if (!f(node, x1, y1, x2, y2)) {
var sx = (x1 + x2) * .5, sy = (y1 + y2) * .5, children = node.nodes;
if (children[0]) d3_geom_quadtreeVisit(f, children[0], x1, y1, sx, sy);
if (children[1]) d3_geom_quadtreeVisit(f, children[1], sx, y1, x2, sy);
if (children[2]) d3_geom_quadtreeVisit(f, children[2], x1, sy, sx, y2);
if (children[3]) d3_geom_quadtreeVisit(f, children[3], sx, sy, x2, y2);
}
}
d3.time = {};
var d3_time = Date, d3_time_daySymbols = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ];
function d3_time_utc() {
this._ = new Date(arguments.length > 1 ? Date.UTC.apply(this, arguments) : arguments[0]);
}
d3_time_utc.prototype = {
getDate: function() {
return this._.getUTCDate();
},
getDay: function() {
return this._.getUTCDay();
},
getFullYear: function() {
return this._.getUTCFullYear();
},
getHours: function() {
return this._.getUTCHours();
},
getMilliseconds: function() {
return this._.getUTCMilliseconds();
},
getMinutes: function() {
return this._.getUTCMinutes();
},
getMonth: function() {
return this._.getUTCMonth();
},
getSeconds: function() {
return this._.getUTCSeconds();
},
getTime: function() {
return this._.getTime();
},
getTimezoneOffset: function() {
return 0;
},
valueOf: function() {
return this._.valueOf();
},
setDate: function() {
d3_time_prototype.setUTCDate.apply(this._, arguments);
},
setDay: function() {
d3_time_prototype.setUTCDay.apply(this._, arguments);
},
setFullYear: function() {
d3_time_prototype.setUTCFullYear.apply(this._, arguments);
},
setHours: function() {
d3_time_prototype.setUTCHours.apply(this._, arguments);
},
setMilliseconds: function() {
d3_time_prototype.setUTCMilliseconds.apply(this._, arguments);
},
setMinutes: function() {
d3_time_prototype.setUTCMinutes.apply(this._, arguments);
},
setMonth: function() {
d3_time_prototype.setUTCMonth.apply(this._, arguments);
},
setSeconds: function() {
d3_time_prototype.setUTCSeconds.apply(this._, arguments);
},
setTime: function() {
d3_time_prototype.setTime.apply(this._, arguments);
}
};
var d3_time_prototype = Date.prototype;
var d3_time_formatDateTime = "%a %b %e %X %Y", d3_time_formatDate = "%m/%d/%Y", d3_time_formatTime = "%H:%M:%S";
var d3_time_days = [ "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday" ], d3_time_dayAbbreviations = [ "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat" ], d3_time_months = [ "January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December" ], d3_time_monthAbbreviations = [ "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec" ];
d3.time.format = function(template) {
var n = template.length;
function format(date) {
var string = [], i = -1, j = 0, c, p, f;
while (++i < n) {
if (template.charCodeAt(i) === 37) {
string.push(template.substring(j, i));
if ((p = d3_time_formatPads[c = template.charAt(++i)]) != null) c = template.charAt(++i);
if (f = d3_time_formats[c]) c = f(date, p == null ? c === "e" ? " " : "0" : p);
string.push(c);
j = i + 1;
}
}
string.push(template.substring(j, i));
return string.join("");
}
format.parse = function(string) {
var d = {
y: 1900,
m: 0,
d: 1,
H: 0,
M: 0,
S: 0,
L: 0
}, i = d3_time_parse(d, template, string, 0);
if (i != string.length) return null;
if ("p" in d) d.H = d.H % 12 + d.p * 12;
var date = new d3_time();
date.setFullYear(d.y, d.m, d.d);
date.setHours(d.H, d.M, d.S, d.L);
return date;
};
format.toString = function() {
return template;
};
return format;
};
function d3_time_parse(date, template, string, j) {
var c, p, i = 0, n = template.length, m = string.length;
while (i < n) {
if (j >= m) return -1;
c = template.charCodeAt(i++);
if (c === 37) {
p = d3_time_parsers[template.charAt(i++)];
if (!p || (j = p(date, string, j)) < 0) return -1;
} else if (c != string.charCodeAt(j++)) {
return -1;
}
}
return j;
}
function d3_time_formatRe(names) {
return new RegExp("^(?:" + names.map(d3.requote).join("|") + ")", "i");
}
function d3_time_formatLookup(names) {
var map = new d3_Map(), i = -1, n = names.length;
while (++i < n) map.set(names[i].toLowerCase(), i);
return map;
}
function d3_time_formatPad(value, fill, width) {
value += "";
var length = value.length;
return length < width ? new Array(width - length + 1).join(fill) + value : value;
}
var d3_time_dayRe = d3_time_formatRe(d3_time_days), d3_time_dayAbbrevRe = d3_time_formatRe(d3_time_dayAbbreviations), d3_time_monthRe = d3_time_formatRe(d3_time_months), d3_time_monthLookup = d3_time_formatLookup(d3_time_months), d3_time_monthAbbrevRe = d3_time_formatRe(d3_time_monthAbbreviations), d3_time_monthAbbrevLookup = d3_time_formatLookup(d3_time_monthAbbreviations);
var d3_time_formatPads = {
"-": "",
_: " ",
"0": "0"
};
var d3_time_formats = {
a: function(d) {
return d3_time_dayAbbreviations[d.getDay()];
},
A: function(d) {
return d3_time_days[d.getDay()];
},
b: function(d) {
return d3_time_monthAbbreviations[d.getMonth()];
},
B: function(d) {
return d3_time_months[d.getMonth()];
},
c: d3.time.format(d3_time_formatDateTime),
d: function(d, p) {
return d3_time_formatPad(d.getDate(), p, 2);
},
e: function(d, p) {
return d3_time_formatPad(d.getDate(), p, 2);
},
H: function(d, p) {
return d3_time_formatPad(d.getHours(), p, 2);
},
I: function(d, p) {
return d3_time_formatPad(d.getHours() % 12 || 12, p, 2);
},
j: function(d, p) {
return d3_time_formatPad(1 + d3.time.dayOfYear(d), p, 3);
},
L: function(d, p) {
return d3_time_formatPad(d.getMilliseconds(), p, 3);
},
m: function(d, p) {
return d3_time_formatPad(d.getMonth() + 1, p, 2);
},
M: function(d, p) {
return d3_time_formatPad(d.getMinutes(), p, 2);
},
p: function(d) {
return d.getHours() >= 12 ? "PM" : "AM";
},
S: function(d, p) {
return d3_time_formatPad(d.getSeconds(), p, 2);
},
U: function(d, p) {
return d3_time_formatPad(d3.time.sundayOfYear(d), p, 2);
},
w: function(d) {
return d.getDay();
},
W: function(d, p) {
return d3_time_formatPad(d3.time.mondayOfYear(d), p, 2);
},
x: d3.time.format(d3_time_formatDate),
X: d3.time.format(d3_time_formatTime),
y: function(d, p) {
return d3_time_formatPad(d.getFullYear() % 100, p, 2);
},
Y: function(d, p) {
return d3_time_formatPad(d.getFullYear() % 1e4, p, 4);
},
Z: d3_time_zone,
"%": function() {
return "%";
}
};
var d3_time_parsers = {
a: d3_time_parseWeekdayAbbrev,
A: d3_time_parseWeekday,
b: d3_time_parseMonthAbbrev,
B: d3_time_parseMonth,
c: d3_time_parseLocaleFull,
d: d3_time_parseDay,
e: d3_time_parseDay,
H: d3_time_parseHour24,
I: d3_time_parseHour24,
L: d3_time_parseMilliseconds,
m: d3_time_parseMonthNumber,
M: d3_time_parseMinutes,
p: d3_time_parseAmPm,
S: d3_time_parseSeconds,
x: d3_time_parseLocaleDate,
X: d3_time_parseLocaleTime,
y: d3_time_parseYear,
Y: d3_time_parseFullYear
};
function d3_time_parseWeekdayAbbrev(date, string, i) {
d3_time_dayAbbrevRe.lastIndex = 0;
var n = d3_time_dayAbbrevRe.exec(string.substring(i));
return n ? i += n[0].length : -1;
}
function d3_time_parseWeekday(date, string, i) {
d3_time_dayRe.lastIndex = 0;
var n = d3_time_dayRe.exec(string.substring(i));
return n ? i += n[0].length : -1;
}
function d3_time_parseMonthAbbrev(date, string, i) {
d3_time_monthAbbrevRe.lastIndex = 0;
var n = d3_time_monthAbbrevRe.exec(string.substring(i));
return n ? (date.m = d3_time_monthAbbrevLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
}
function d3_time_parseMonth(date, string, i) {
d3_time_monthRe.lastIndex = 0;
var n = d3_time_monthRe.exec(string.substring(i));
return n ? (date.m = d3_time_monthLookup.get(n[0].toLowerCase()), i += n[0].length) : -1;
}
function d3_time_parseLocaleFull(date, string, i) {
return d3_time_parse(date, d3_time_formats.c.toString(), string, i);
}
function d3_time_parseLocaleDate(date, string, i) {
return d3_time_parse(date, d3_time_formats.x.toString(), string, i);
}
function d3_time_parseLocaleTime(date, string, i) {
return d3_time_parse(date, d3_time_formats.X.toString(), string, i);
}
function d3_time_parseFullYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 4));
return n ? (date.y = +n[0], i += n[0].length) : -1;
}
function d3_time_parseYear(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.y = d3_time_expandYear(+n[0]), i += n[0].length) : -1;
}
function d3_time_expandYear(d) {
return d + (d > 68 ? 1900 : 2e3);
}
function d3_time_parseMonthNumber(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.m = n[0] - 1, i += n[0].length) : -1;
}
function d3_time_parseDay(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.d = +n[0], i += n[0].length) : -1;
}
function d3_time_parseHour24(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.H = +n[0], i += n[0].length) : -1;
}
function d3_time_parseMinutes(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.M = +n[0], i += n[0].length) : -1;
}
function d3_time_parseSeconds(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 2));
return n ? (date.S = +n[0], i += n[0].length) : -1;
}
function d3_time_parseMilliseconds(date, string, i) {
d3_time_numberRe.lastIndex = 0;
var n = d3_time_numberRe.exec(string.substring(i, i + 3));
return n ? (date.L = +n[0], i += n[0].length) : -1;
}
var d3_time_numberRe = /^\s*\d+/;
function d3_time_parseAmPm(date, string, i) {
var n = d3_time_amPmLookup.get(string.substring(i, i += 2).toLowerCase());
return n == null ? -1 : (date.p = n, i);
}
var d3_time_amPmLookup = d3.map({
am: 0,
pm: 1
});
function d3_time_zone(d) {
var z = d.getTimezoneOffset(), zs = z > 0 ? "-" : "+", zh = ~~(Math.abs(z) / 60), zm = Math.abs(z) % 60;
return zs + d3_time_formatPad(zh, "0", 2) + d3_time_formatPad(zm, "0", 2);
}
d3.time.format.utc = function(template) {
var local = d3.time.format(template);
function format(date) {
try {
d3_time = d3_time_utc;
var utc = new d3_time();
utc._ = date;
return local(utc);
} finally {
d3_time = Date;
}
}
format.parse = function(string) {
try {
d3_time = d3_time_utc;
var date = local.parse(string);
return date && date._;
} finally {
d3_time = Date;
}
};
format.toString = local.toString;
return format;
};
var d3_time_formatIso = d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ");
d3.time.format.iso = Date.prototype.toISOString ? d3_time_formatIsoNative : d3_time_formatIso;
function d3_time_formatIsoNative(date) {
return date.toISOString();
}
d3_time_formatIsoNative.parse = function(string) {
var date = new Date(string);
return isNaN(date) ? null : date;
};
d3_time_formatIsoNative.toString = d3_time_formatIso.toString;
function d3_time_interval(local, step, number) {
function round(date) {
var d0 = local(date), d1 = offset(d0, 1);
return date - d0 < d1 - date ? d0 : d1;
}
function ceil(date) {
step(date = local(new d3_time(date - 1)), 1);
return date;
}
function offset(date, k) {
step(date = new d3_time(+date), k);
return date;
}
function range(t0, t1, dt) {
var time = ceil(t0), times = [];
if (dt > 1) {
while (time < t1) {
if (!(number(time) % dt)) times.push(new Date(+time));
step(time, 1);
}
} else {
while (time < t1) times.push(new Date(+time)), step(time, 1);
}
return times;
}
function range_utc(t0, t1, dt) {
try {
d3_time = d3_time_utc;
var utc = new d3_time_utc();
utc._ = t0;
return range(utc, t1, dt);
} finally {
d3_time = Date;
}
}
local.floor = local;
local.round = round;
local.ceil = ceil;
local.offset = offset;
local.range = range;
var utc = local.utc = d3_time_interval_utc(local);
utc.floor = utc;
utc.round = d3_time_interval_utc(round);
utc.ceil = d3_time_interval_utc(ceil);
utc.offset = d3_time_interval_utc(offset);
utc.range = range_utc;
return local;
}
function d3_time_interval_utc(method) {
return function(date, k) {
try {
d3_time = d3_time_utc;
var utc = new d3_time_utc();
utc._ = date;
return method(utc, k)._;
} finally {
d3_time = Date;
}
};
}
d3.time.second = d3_time_interval(function(date) {
return new d3_time(Math.floor(date / 1e3) * 1e3);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 1e3);
}, function(date) {
return date.getSeconds();
});
d3.time.seconds = d3.time.second.range;
d3.time.seconds.utc = d3.time.second.utc.range;
d3.time.minute = d3_time_interval(function(date) {
return new d3_time(Math.floor(date / 6e4) * 6e4);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 6e4);
}, function(date) {
return date.getMinutes();
});
d3.time.minutes = d3.time.minute.range;
d3.time.minutes.utc = d3.time.minute.utc.range;
d3.time.hour = d3_time_interval(function(date) {
var timezone = date.getTimezoneOffset() / 60;
return new d3_time((Math.floor(date / 36e5 - timezone) + timezone) * 36e5);
}, function(date, offset) {
date.setTime(date.getTime() + Math.floor(offset) * 36e5);
}, function(date) {
return date.getHours();
});
d3.time.hours = d3.time.hour.range;
d3.time.hours.utc = d3.time.hour.utc.range;
d3.time.day = d3_time_interval(function(date) {
var day = new d3_time(1970, 0);
day.setFullYear(date.getFullYear(), date.getMonth(), date.getDate());
return day;
}, function(date, offset) {
date.setDate(date.getDate() + offset);
}, function(date) {
return date.getDate() - 1;
});
d3.time.days = d3.time.day.range;
d3.time.days.utc = d3.time.day.utc.range;
d3.time.dayOfYear = function(date) {
var year = d3.time.year(date);
return Math.floor((date - year - (date.getTimezoneOffset() - year.getTimezoneOffset()) * 6e4) / 864e5);
};
d3_time_daySymbols.forEach(function(day, i) {
day = day.toLowerCase();
i = 7 - i;
var interval = d3.time[day] = d3_time_interval(function(date) {
(date = d3.time.day(date)).setDate(date.getDate() - (date.getDay() + i) % 7);
return date;
}, function(date, offset) {
date.setDate(date.getDate() + Math.floor(offset) * 7);
}, function(date) {
var day = d3.time.year(date).getDay();
return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7) - (day !== i);
});
d3.time[day + "s"] = interval.range;
d3.time[day + "s"].utc = interval.utc.range;
d3.time[day + "OfYear"] = function(date) {
var day = d3.time.year(date).getDay();
return Math.floor((d3.time.dayOfYear(date) + (day + i) % 7) / 7);
};
});
d3.time.week = d3.time.sunday;
d3.time.weeks = d3.time.sunday.range;
d3.time.weeks.utc = d3.time.sunday.utc.range;
d3.time.weekOfYear = d3.time.sundayOfYear;
d3.time.month = d3_time_interval(function(date) {
date = d3.time.day(date);
date.setDate(1);
return date;
}, function(date, offset) {
date.setMonth(date.getMonth() + offset);
}, function(date) {
return date.getMonth();
});
d3.time.months = d3.time.month.range;
d3.time.months.utc = d3.time.month.utc.range;
d3.time.year = d3_time_interval(function(date) {
date = d3.time.day(date);
date.setMonth(0, 1);
return date;
}, function(date, offset) {
date.setFullYear(date.getFullYear() + offset);
}, function(date) {
return date.getFullYear();
});
d3.time.years = d3.time.year.range;
d3.time.years.utc = d3.time.year.utc.range;
function d3_time_scale(linear, methods, format) {
function scale(x) {
return linear(x);
}
scale.invert = function(x) {
return d3_time_scaleDate(linear.invert(x));
};
scale.domain = function(x) {
if (!arguments.length) return linear.domain().map(d3_time_scaleDate);
linear.domain(x);
return scale;
};
scale.nice = function(m) {
return scale.domain(d3_scale_nice(scale.domain(), function() {
return m;
}));
};
scale.ticks = function(m, k) {
var extent = d3_time_scaleExtent(scale.domain());
if (typeof m !== "function") {
var span = extent[1] - extent[0], target = span / m, i = d3.bisect(d3_time_scaleSteps, target);
if (i == d3_time_scaleSteps.length) return methods.year(extent, m);
if (!i) return linear.ticks(m).map(d3_time_scaleDate);
if (Math.log(target / d3_time_scaleSteps[i - 1]) < Math.log(d3_time_scaleSteps[i] / target)) --i;
m = methods[i];
k = m[1];
m = m[0].range;
}
return m(extent[0], new Date(+extent[1] + 1), k);
};
scale.tickFormat = function() {
return format;
};
scale.copy = function() {
return d3_time_scale(linear.copy(), methods, format);
};
return d3.rebind(scale, linear, "range", "rangeRound", "interpolate", "clamp");
}
function d3_time_scaleExtent(domain) {
var start = domain[0], stop = domain[domain.length - 1];
return start < stop ? [ start, stop ] : [ stop, start ];
}
function d3_time_scaleDate(t) {
return new Date(t);
}
function d3_time_scaleFormat(formats) {
return function(date) {
var i = formats.length - 1, f = formats[i];
while (!f[1](date)) f = formats[--i];
return f[0](date);
};
}
function d3_time_scaleSetYear(y) {
var d = new Date(y, 0, 1);
d.setFullYear(y);
return d;
}
function d3_time_scaleGetYear(d) {
var y = d.getFullYear(), d0 = d3_time_scaleSetYear(y), d1 = d3_time_scaleSetYear(y + 1);
return y + (d - d0) / (d1 - d0);
}
var d3_time_scaleSteps = [ 1e3, 5e3, 15e3, 3e4, 6e4, 3e5, 9e5, 18e5, 36e5, 108e5, 216e5, 432e5, 864e5, 1728e5, 6048e5, 2592e6, 7776e6, 31536e6 ];
var d3_time_scaleLocalMethods = [ [ d3.time.second, 1 ], [ d3.time.second, 5 ], [ d3.time.second, 15 ], [ d3.time.second, 30 ], [ d3.time.minute, 1 ], [ d3.time.minute, 5 ], [ d3.time.minute, 15 ], [ d3.time.minute, 30 ], [ d3.time.hour, 1 ], [ d3.time.hour, 3 ], [ d3.time.hour, 6 ], [ d3.time.hour, 12 ], [ d3.time.day, 1 ], [ d3.time.day, 2 ], [ d3.time.week, 1 ], [ d3.time.month, 1 ], [ d3.time.month, 3 ], [ d3.time.year, 1 ] ];
var d3_time_scaleLocalFormats = [ [ d3.time.format("%Y"), d3_true ], [ d3.time.format("%B"), function(d) {
return d.getMonth();
} ], [ d3.time.format("%b %d"), function(d) {
return d.getDate() != 1;
} ], [ d3.time.format("%a %d"), function(d) {
return d.getDay() && d.getDate() != 1;
} ], [ d3.time.format("%I %p"), function(d) {
return d.getHours();
} ], [ d3.time.format("%I:%M"), function(d) {
return d.getMinutes();
} ], [ d3.time.format(":%S"), function(d) {
return d.getSeconds();
} ], [ d3.time.format(".%L"), function(d) {
return d.getMilliseconds();
} ] ];
var d3_time_scaleLinear = d3.scale.linear(), d3_time_scaleLocalFormat = d3_time_scaleFormat(d3_time_scaleLocalFormats);
d3_time_scaleLocalMethods.year = function(extent, m) {
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleGetYear)).ticks(m).map(d3_time_scaleSetYear);
};
d3.time.scale = function() {
return d3_time_scale(d3.scale.linear(), d3_time_scaleLocalMethods, d3_time_scaleLocalFormat);
};
var d3_time_scaleUTCMethods = d3_time_scaleLocalMethods.map(function(m) {
return [ m[0].utc, m[1] ];
});
var d3_time_scaleUTCFormats = [ [ d3.time.format.utc("%Y"), d3_true ], [ d3.time.format.utc("%B"), function(d) {
return d.getUTCMonth();
} ], [ d3.time.format.utc("%b %d"), function(d) {
return d.getUTCDate() != 1;
} ], [ d3.time.format.utc("%a %d"), function(d) {
return d.getUTCDay() && d.getUTCDate() != 1;
} ], [ d3.time.format.utc("%I %p"), function(d) {
return d.getUTCHours();
} ], [ d3.time.format.utc("%I:%M"), function(d) {
return d.getUTCMinutes();
} ], [ d3.time.format.utc(":%S"), function(d) {
return d.getUTCSeconds();
} ], [ d3.time.format.utc(".%L"), function(d) {
return d.getUTCMilliseconds();
} ] ];
var d3_time_scaleUTCFormat = d3_time_scaleFormat(d3_time_scaleUTCFormats);
function d3_time_scaleUTCSetYear(y) {
var d = new Date(Date.UTC(y, 0, 1));
d.setUTCFullYear(y);
return d;
}
function d3_time_scaleUTCGetYear(d) {
var y = d.getUTCFullYear(), d0 = d3_time_scaleUTCSetYear(y), d1 = d3_time_scaleUTCSetYear(y + 1);
return y + (d - d0) / (d1 - d0);
}
d3_time_scaleUTCMethods.year = function(extent, m) {
return d3_time_scaleLinear.domain(extent.map(d3_time_scaleUTCGetYear)).ticks(m).map(d3_time_scaleUTCSetYear);
};
d3.time.scale.utc = function() {
return d3_time_scale(d3.scale.linear(), d3_time_scaleUTCMethods, d3_time_scaleUTCFormat);
};
return d3;
}();
group size x y
2 1.13654379997914 68.6840487804878 5.423
3 1.49377985111696 39.2041219512195 7.742
5 1.22467519269876 69.6740487804878 4.037
6 1.239103296736 70.6800975609756 2.385
7 1.37578886571743 40.1618048780488 7.2
8 1.72134520939447 69.4696097560976 3.325
10 1.37362263859957 72.4236585365854 1.62
11 1.5213408793359 74.3336585365854 1.891
12 1.03119361352345 72.2201463414634 2.392
13 1.33756567188016 64.6813170731707 3.286
14 1.27522028399879 70.2735853658537 2.092
15 1.0668242863953 71.9743658536586 2.004
16 2.23565044084979 55.2358536585366 6.374
17 1.42702031042521 73.2070731707317 1.672
18 1.35516939439045 46.3316097560976 7.069
19 1.40482057004483 71.1575609756098 2.05
20 1.08076000644451 69.8744878048781 4.917
21 1.27611445890189 46.8593170731707 6.651
22 1.26206482179741 45.2471219512195 7.025
24 1.05859932557246 70.7172195121951 4.246
25 1.31501461337507 51.9635609756098 5.521
26 2.50105489569261 62.4965853658537 4.073
27 1.06131757165131 67.6973658536586 2.989
28 1.08660401052403 46.3592195121951 6.553
29 1.13536679277731 60.4592195121951 6.217
30 1.42230782877107 70.3346585365854 2.03
31 1.05028740728298 70.147 5.849
32 1.67457752824227 75.0780487804878 1.74
33 1.69836409898163 45.8246829268293 6.585
34 1.20482198055284 48.8095365853659 5.954
35 1.18196339118625 56.2368292682927 6.178
36 1.34179998396367 75.459268292683 1.55
37 1.39095848074938 51.404243902439 7.608
38 1.45499625788383 69.1917317073171 2.675
39 1.40643102337947 51.1865365853659 6.431
40 5.26164645700289 66.9938048780488 2.632
41 1.70597136418032 65.4611463414634 3.993
42 1.20815372364707 72.5508292682927 3.618
43 1.426496449408 73.5623414634146 1.892
44 1.07377597795234 59.8433414634146 6.375
46 1.11201322434164 74.7484878048781 2.354
47 1.43655696641545 70.2780487804878 2.07
48 2.2037072933049 72.8186341463415 1.44
49 1.08068491299522 47.9128536585366 6.686
50 1.30770651914399 74.1017073170732 1.546
52 1.32816066098718 63.0011951219512 4.422
53 1.60027417054755 59.6036829268293 6.909
54 1.38243578679482 62.9199268292683 5.059
55 1.16493241898128 69.0330487804878 2.02
56 1.91187211057085 56.1501951219512 5.366
57 1.21107734317603 43.9783658536585 6.513
58 1.83236007668677 75.3492682926829 2.217
59 1.80755404251018 43.914243902439 6.837
60 1.29719619205756 73.44 1.63
61 1.10779021948561 63.0091463414634 3.907
62 1.03480333403293 65.1835853658537 6.223
64 2.01094968637066 74.0512195121951 1.85
65 1.11535477308798 54.8438292682927 5.17
66 2.02087500534745 73.6756097560976 1.89
67 1.03883429390623 65.0093170731707 4.251
68 1.28732175966735 69.3627804878049 2.315
69 1.44699568227378 53.1104390243902 6.539
71 1.10510508114015 47.5411707317073 6.337
72 1.28821512394557 38.8347317073171 6.942
73 1.06279825934657 42.8141707317073 5.728
74 1.42229698109309 74.4152926829268 2.226
75 1.35978430778349 57.312 6.18
76 1.04228580650778 69.3905365853659 3.247
77 1.12250036588503 40.0567317073171 6.322
78 1.11933538084681 59.5235853658537 3.567
79 1.30589885176547 74.6731707317073 2.047
80 1.25914711406851 59.4186829268293 6.313
81 1.2911708046119 70.1753658536586 2.004
82 1.32436612650113 50.8797317073171 6.058
83 1.44509984453438 69.0617073170732 1.91
84 2.64098478133466 57.5911219512195 4.43
85 1.25105487735139 72.5493658536585 3.229
86 1.26765459359961 73.8756097560976 3.242
88 4.5968151891142 55.3470731707317 4.68
89 1.50256540983562 57.2847073170732 6.564
90 1.84833393125988 52.344243902439 6.479
91 1.06390106821892 76.8465853658537 2.48
92 2.02195924780166 73.9431707317073 1.64
93 1.04726336221702 73.3449512195122 1.454
94 1.19834468559701 70.4855365853659 3.733
95 1.20057180949831 67.0367804878049 7.232
96 2.47016652462627 76.0917073170732 1.75
97 1.54860268234533 57.7401707317073 7.455
98 1.25848696651144 62.870243902439 4.035
99 1.35193491674607 38.6240731707317 5.862
101 1.07526708179335 51.9551707317073 7.129
103 1.56692492015672 67.6986341463415 2.705
104 1.83994129443894 65.8019512195122 2.83
106 1.15888936081606 70.4567073170732 5.549
108 1.52499079535322 66.6243902439025 2.9
109 1.24501504752584 48.7622195121951 6.277
110 1.21927687484753 66.5743902439024 4.111
111 1.04521610218089 68.9843902439025 4.703
113 1.52231629553185 68.2219268292683 3.408
114 1.18678788562851 43.8481707317073 6.972
115 1.15511145252779 53.6587317073171 5.589
116 1.2510696956968 70.4821951219512 2.03
117 1.0812453399753 71.9602682926829 1.5
118 1.21529056251471 68.8085365853659 1.86
119 1.23840391554295 60.0124634146342 7.38
120 1.60524107005532 57.631243902439 5.649
122 1.25047177041248 64.7687073170732 2.481
123 1.10285481362007 73.6019756097561 2.286
125 1.40218254135555 48.2081219512195 6.514
127 1.18694626580056 69.6565853658537 2.429
128 1.35287962782553 39.6098292682927 7.046
129 1.79872220656412 55.0355853658537 4.565
130 1.17644849443521 57.3329024390244 6.205
131 1.06647047527621 73.2440487804878 1.665
133 1.16809603629778 52.9948048780488 6.427
134 1.0756408012111 72.9324390243903 1.99
135 1.13319347900789 66.9879756097561 2.672
136 1.05212454566634 52.6288292682927 7.071
137 1.33955658454325 44.3361951219512 7.432
138 2.1410658065608 66.5718536585366 4.705
139 1.50587615070868 67.4028536585366 3.789
140 1.47391812015528 42.8059024390244 6.49
141 1.13640383625443 57.8029024390244 6.451
142 1.05007513719679 66.569512195122 3.256
143 1.32840121423276 39.5295853658537 7.7
144 2.16788085117856 45.4882682926829 6.787
145 1.24499789873771 58.4604390243903 6.131
146 1.51162552934519 75.7431707317073 1.602
147 1.27473958460694 75.6717073170732 1.72
148 1.51585996520301 48.1546097560976 5.834
149 1.23974501969993 72.8292682926829 2.03
150 1.14569541252808 60.7683902439024 8.299
151 1.19155928998285 69.9607073170732 3.742
152 1.56621225116556 60.0161951219512 5.009
153 1.05165835355479 64.4997073170732 3.971
154 1.24367271646904 52.8837073170732 5.694
155 1.93656964605139 63.1697317073171 5.183
156 2.21667477393718 57.9148292682927 6.535
157 1.81136056564587 70.0975609756098 2.276
158 1.2433122911468 73.7759268292683 2.607
160 1.4250015241258 71.2146341463415 2.19
162 1.24304010778149 66.7257317073171 5.219
163 1.0632626717576 71.2498780487805 5.804
164 1.64152322682702 69.0909756097561 2.43
166 2.60399804484787 67.0339024390244 1.89
167 1.30824017406096 48.2001463414634 8.292
168 1.42667391030836 62.2977073170732 7.206
169 1.06425865726597 58.8907317073171 6.748
171 1.51645521303941 49.2990487804878 6.442
172 1.39202182297448 75.7409756097561 1.68
173 1.21104897398264 71.681756097561 1.737
174 1.18722268855053 71.1048780487805 2.055
175 1.30336871576746 70.4085365853659 2.32
176 1.24233039690026 43.0436585365854 5.558
178 1.32083664814101 47.3332682926829 7.425
179 1.33552298264271 42.9156341463415 6.843
180 1.08141215878445 65.9350731707317 3.922
182 1.04022701799863 59.4880243902439 6.409
183 1.29346785719271 56.8276097560976 5.137
185 1.40697793897699 66.2019512195122 7.094
186 1.10501717005676 54.2261951219512 6.658
188 1.28876941716147 47.8966829268293 6.759
189 1.2241003401981 49.6226829268293 7.21
190 1.93628012796775 65.4977804878049 3.392
191 1.26902178152907 62.2442682926829 5.663
192 1.10300244956028 34.6581463414634 4.767
193 1.2298156521231 60.8361951219512 5.012
194 1.34354441978932 62.1231707317073 5.325
195 1.03977680583219 67.55 5.553
196 1.90139728562965 56.5696097560976 4.454
197 1.14124017031296 67.2882926829268 3.338
199 1.58799369468856 50.4534390243902 6.653
200 1.96168062872552 68.827512195122 1.95
201 1.48181505257918 50.0716097560976 7.1
202 3.050753364273 73.6585365853659 1.8395
203 1.23200932990405 70.2482195121951 2.724
204 1.54452040533352 65.266512195122 5.127
205 1.04148486434986 65.6770243902439 3.985
206 1.52847136340614 68.2224878048781 4.199
207 1.04069522195908 71.4251951219512 4.013
208 1.99689468332857 55.6710731707317 5.39
209 1.0447325332173 58.5427073170732 5.575
210 1.05234388711182 59.969512195122 4.81
211 1.38237637374479 48.8352682926829 8.993
212 1.7143300818477 56.9700243902439 4.786
213 1.32876716100312 52.0180243902439 7.182
214 1.36711684053085 59.1740487804878 7.095
group size x y
2 1.17736209850883 71.861243902439 4.566
3 1.45546259426116 42.0211951219512 7.937
5 1.25074533521886 71.7542195121951 3.38
6 1.25579924314968 67.9126097560976 2.565
7 1.43115898908396 41.091243902439 7.182
8 1.77156060810129 71.2921707317073 3.016
10 1.37535582158528 75.2480487804878 1.45
11 1.55774547179743 76.7136585365854 1.838
12 1.03147008159565 73.3444878048781 2.272
13 1.36242294189039 65.0892682926829 2.8
14 1.29106697985312 68.8140243902439 1.775
15 1.06814884137602 74.2505365853659 1.758
16 2.3925628722891 58.9580731707317 4.728
17 1.42871724528155 75.6326829268293 1.58
18 1.39832837880434 48.3846341463415 6.889
19 1.40517331945606 71.7224390243903 1.9
20 1.09362809977926 72.3097073170732 3.852
21 1.31736893524303 46.8498048780488 6.508
22 1.29895674384157 48.1980487804878 6.805
24 1.06695696731757 73.3810975609756 3.608
25 1.3502580900965 58.2189268292683 4.952
26 2.64989493215846 65.9543658536585 2.917
27 1.06724934757592 69.4268048780488 2.654
28 1.09829361859835 51.8628780487805 5.907
29 1.15724685970586 64.0963902439024 4.863
30 1.4337028870295 71.5878048780488 2.03
31 1.05704992926245 72.3260487804878 4.584
32 1.71177326061357 77.0656097560976 1.77
33 1.7900212954096 46.7759024390244 7.047
34 1.2294369685198 49.1595609756098 5.826
35 1.2069078227633 56.573512195122 5.431
36 1.35055531804543 77.4212195121951 1.56
37 1.46542778179448 52.8558536585366 6.399
38 1.4900284142242 73.2819024390244 2.64
39 1.46554408841677 53.3008780487805 6.004
40 5.5502810385794 69.2469268292683 2.444
41 1.77737865399493 68.1778292682927 3.155
42 1.23539357415568 75.5396585365854 3.254
43 1.44077017064487 74.4300487804878 1.785
44 1.07917533474112 64.6254878048781 5.441
46 1.11731120064475 76.344268292683 2.43
47 1.43776099596298 71.6756097560976 1.874
48 2.20725951428008 75.1228780487805 1.42
49 1.10113410031445 51.1088048780488 6.267
50 1.30799412074878 74.799756097561 1.62
52 1.36229404275594 67.2051463414634 3.537
53 1.68793917709583 66.6150731707317 4.954
54 1.42761856916984 68.3415365853659 3.793
55 1.16995705777596 70.0390243902439 2.21
56 2.01079024234032 61.368512195122 4.522
57 1.24344940914331 47.4790243902439 6.26
58 1.84726365311627 76.8136585365854 1.36
59 1.92700402638614 46.5579024390244 7.083
60 1.30289721569391 74.7921951219512 1.71
61 1.11518625390258 65.3438536585366 3.427
62 1.04002821678457 66.0845853658537 5.052
64 2.03705889390321 76.3487804878049 1.79
65 1.13005154948466 61.0672682926829 5.187
66 2.0277640134584 75.5829268292683 1.8
67 1.04066587534174 68.2620731707317 3.966
68 1.29793530366021 70.1985609756098 2.217
69 1.51312839510637 56.3380487804878 5.725
71 1.12716104858948 52.9915609756098 6.114
72 1.32604284960268 43.2059268292683 6.797
73 1.08104061602607 46.3684634146341 5.897
74 1.43198168389218 76.6878048780488 1.41
75 1.40083932026607 61.7563658536585 5.636
76 1.04712845374207 71.8435365853659 3.13
77 1.13518084506401 42.6596829268293 6.68
78 1.11550934683114 60.9543414634146 2.624
79 1.32420228765203 77.0292682926829 1.296
80 1.29680438547798 65.8643902439024 5.236
81 1.29680560151989 71.8446341463415 1.63
82 1.3588651496295 54.6443902439024 5.549
83 1.44030424726332 69.4617073170732 1.78
84 2.80207589460458 61.7008048780488 3.229
85 1.25464938827712 74.5156097560976 2.08
86 1.28893736510347 76.3073170731707 2.886
88 4.96963904464843 58.0993902439024 3.994
89 1.56202821752099 65.9364146341464 6.053
90 2.00832442849611 59.8407073170732 5.151
91 1.06738531176969 78.1409756097561 2.2
92 2.02411131248426 76.8048780487805 1.28
93 1.04942930097229 75.1985853658537 1.457
94 1.20932740834729 70.755512195122 3.005
95 1.23753843285447 70.1832682926829 6.058
96 2.50951190945209 78.8180487804878 1.57
97 1.64761187919303 59.5526829268293 6.231
98 1.28211458113728 67.9073170731707 3.875
99 1.4026918622986 55.1478536585366 5.896
101 1.08552461846727 55.3461951219512 5.735
103 1.60671778539442 70.5028292682927 2.434
104 1.8855936300766 70.859512195122 1.58
105 1.18351248422567 67.5785365853659 3.9223
106 1.19487188213303 72.5280975609756 2.844
108 1.54829209798422 68.290243902439 2.82
109 1.27598703113088 53.5602682926829 6.222
110 1.22226658511812 68.4069268292683 3.206
111 1.04875555657012 70.766 3.495
113 1.55792132751459 69.5780487804878 2.548
114 1.19853207257264 42.4556341463415 6.602
115 1.17005531570818 58.7561463414634 5.004
116 1.26086957903215 71.4253658536585 1.98
117 1.08270730331236 74.5916829268293 1.52
118 1.22186400569341 70.1553658536586 2.05
119 1.27727022220395 67.5221951219512 5.154
120 1.66932627143813 63.598243902439 4.201
122 1.26075407986628 67.3992926829268 2.506
123 1.10575482205261 75.2006829268293 1.902
125 1.45526393266728 50.1998048780488 6.268
127 1.1923307712634 71.0867317073171 2.149
128 1.38042041444417 43.8281951219512 7.076
129 1.87577285307087 56.7567073170732 3.581
130 1.19871835142618 60.316756097561 4.402
131 1.07943882654731 75.8756341463415 1.798
133 1.19055336062575 55.7361951219512 5.99
134 1.079701098912 74.9603414634146 2.11
135 1.13883549619895 69.1300731707317 2.23
136 1.0611490552224 60.1373414634146 6.427
137 1.41035831981762 46.961243902439 6.848
138 2.24927000153286 70.3959512195122 3.489
139 1.57236562811341 69.8294146341464 3.546
140 1.49777871770792 42.9466829268293 6.277
141 1.15827233599382 60.6428780487805 5.358
142 1.05385083226362 70.3439024388537 3.1433333333
143 1.37288399226368 41.0353902439024 7.817
144 2.31321496965025 45.7198048780488 6.464
145 1.27338897410082 63.4078780487805 4.865
146 1.52411880209717 76.7341463414634 1.55
147 1.27945808721318 76.500487804878 1.88
148 1.57192035628693 53.3614390243903 5.279
149 1.24683176149877 74.8243902439024 2.12
150 1.17922372221764 69.8407073170732 7.462
151 1.21196625685094 72.1544634146342 3.081
152 1.62815594972444 65.0643902439025 3.933
153 1.0587885351839 68.9900731707317 3.421
154 1.27378961422343 55.4220243902439 4.861
155 2.05735667124239 64.9779512195122 4.397
156 2.41292302960946 60.4990731707317 6.138
157 1.83814926311823 71.0439024390244 2.078
158 1.25445454076758 74.4636829268293 2.236
160 1.43016763463046 74.2658536585366 1.48
162 1.27654140437086 67.8011707317073 4.637
163 1.09182533050636 73.8801463414634 4.345
164 1.65464364175639 69.5307317073171 2.2
166 2.65349400858506 69.1717073170732 2.01
167 1.36546773810617 36.9656097560976 7.326
168 1.5383374886387 68.292 6.004
169 1.07398479290196 56.3777317073171 5.961
171 1.59749695156988 52.1844390243903 6.005
172 1.39630515898676 77.7268292682927 2.02
173 1.23261743371073 75.0827317073171 1.754
174 1.19186288141325 72.7048780487805 1.52
175 1.31227170840434 71.0263414634146 2.07
176 1.27160232566733 39.4623414634146 5.662
178 1.36701939588687 52.9438536585366 6.752
179 1.34087946302801 44.9679512195122 6.632
180 1.08525844258327 67.4158780487805 2.823
182 1.04452786827719 60.764 5.501
183 1.31207711576426 64.9131707317073 4.047
185 1.47286874872525 70.6399512195122 5.55
186 1.12366632583731 59.1685365853659 5.905
188 1.32643346946467 50.6838048780488 6.682
189 1.26088827408756 52.7132682926829 6.417
190 2.01650619589677 72.3136341463415 2.179
191 1.30882775057728 63.0904146341463 5.27
192 1.11565155145699 44.8200487804878 5.273
193 1.25680441765098 62.6523170731707 4.44
194 1.38362603321612 68.0709024390244 3.833
195 1.04022678793999 69.4576829268293 4.691
196 1.99098968784691 62.5041463414634 3.139
197 1.14941156912397 68.8501463414634 2.585
199 1.67584933147257 50.8364390243902 6.273
200 1.97884216682994 70.5390243902439 1.92
201 1.55953872395259 47.986756097561 7.097
202 3.1373480128496 75.0170731707317 2.014
203 1.2388198839459 72.3098048780488 2.523
204 1.60947675143158 66.8472926829268 4.179
205 1.04292657983312 68.9592195121951 3.01
206 1.5968860219209 70.8501951219512 3.524
207 1.04203755045081 74.4644390243903 3.097
208 2.09488296397535 64.5360975609756 3.752
209 1.05004777736846 62.7580243902439 4.971
210 1.05347158722277 64.5194146341463 4.783
211 1.456580879832 55.7256585365854 8.797
212 1.79890518569126 61.4186097560976 3.791
213 1.3760293943765 48.3896097560976 6.534
214 1.43364723278646 61.1514634146342 5.376
group size x y
2 1.18247563794473 72.1435365853659 4.388
3 1.46582664215686 42.3293658536585 7.96
5 1.25230810202471 71.6454390243903 3.219
6 1.25587068658699 67.757243902439 2.538
7 1.4371850844213 41.1414146341463 7.165
8 1.77699262796517 71.4982926829268 2.989
10 1.3767900718722 75.53 1.45
11 1.56188988325932 76.9946341463415 1.902
12 1.03179657502549 73.3899756097561 2.249
13 1.36382319248844 64.7463658536585 2.74
14 1.2892098405015 67.4668536585366 1.708
15 1.06827000220364 74.4172682926829 1.748
16 2.40977847232449 59.4711463414634 4.538
17 1.42935750057298 76.0519512195122 1.62
18 1.40366439986708 48.4530487804878 6.844
19 1.40153248984976 71.6414634146342 1.81
20 1.09507992775496 72.4649512195122 3.709
21 1.32190113918822 46.2271463414634 6.505
22 1.30402254653956 48.6485365853659 6.744
24 1.06794293056817 73.6536585365854 3.532
25 1.35441832329851 58.7780731707317 4.913
26 2.66424630692449 66.3407317073171 2.809
27 1.0678623823651 69.4370487804878 2.639
28 1.09887741656272 52.5896341463415 5.753
29 1.15961101120096 64.0171707317073 4.698
30 1.43410812821632 70.8365853658537 1.91
31 1.05772466087979 72.4868048780488 4.508
32 1.71711011763426 77.3770731707317 1.83
33 1.80375623934548 46.8400731707317 7.084
34 1.23189318487828 48.8288780487805 5.78
35 1.20969770053928 56.2465609756098 5.358
36 1.35236186562804 77.2424390243902 1.59
37 1.47340606069619 52.6441463414634 6.257
38 1.49440729917073 73.6035609756098 2.624
39 1.47251678865126 53.2530975609756 5.923
40 5.58378723128858 69.4597317073171 2.336
41 1.78507450945923 68.3055365853658 3.104
42 1.23841540562162 75.747 3.175
43 1.44280093758555 74.4598048780488 1.752
44 1.07984472070734 65.0802195121951 5.307
46 1.1185326677298 76.5047073170732 2.411
47 1.43717473290895 71.3839024390244 1.893
48 2.21247434401367 75.3161219512195 1.45
49 1.10382522437181 51.3663170731707 6.166
50 1.30824476767068 74.8053658536585 1.67
52 1.36600744260143 67.7041951219512 3.466
53 1.6968026356273 67.0717804878049 4.713
54 1.43271150058893 68.8568780487805 3.67
55 1.17001384200056 69.4756097560976 2.04
56 2.02107802993048 62.0128292682927 4.35
57 1.24583102281058 48.2335365853659 6.215
58 1.84790744248975 76.8375609756098 1.33
59 1.94291491460871 47.0453902439024 7.078
60 1.30357047594464 74.8131707317073 1.78
61 1.11550590164299 65.5708536585366 3.398
62 1.04054279846194 66.1975853658537 4.958
64 2.03969325626036 76.6 1.77
65 1.13184586790594 61.2891219512195 5.178
66 2.02930151491935 75.8804878048781 1.83
67 1.04053252518587 68.9273658536586 3.842
68 1.29789491997395 70.2478780487805 2.18
69 1.52021587569041 56.8430243902439 5.616
71 1.12973071755709 53.1250487804878 6.09
72 1.33359788678556 43.6706829268293 6.745
73 1.08234295342201 46.7654390243902 5.9
74 1.43342330592444 76.9390243902439 1.4
75 1.40547829134661 62.2866829268293 5.58
76 1.04770558185292 72.0855365853659 3.131
77 1.13671719932274 42.8241463414634 6.649
78 1.11524151744944 61.1014634146342 2.586
79 1.32472425181916 77.3804878048781 1.272
80 1.3010376173224 66.3393902439024 5.142
81 1.29721067158117 72.1704878048781 1.63
82 1.36257760120212 55.0904146341463 5.43
83 1.43803404784013 69.3156097560976 1.84
84 2.81829588925611 62.1038536585366 3.122
85 1.25475712043133 74.7413170731707 2.12
86 1.29345032313768 76.6073170731707 2.824
88 5.01026675361427 58.3528536585366 3.917
89 1.56929266923403 67.5341951219512 5.989
90 2.02130689405275 61.9104634146342 4.818
91 1.06765587329826 78.0363414634146 2.31
92 2.02454009360288 76.8590243902439 1.26
93 1.04964246840808 75.418243902439 1.46
94 1.20999393131398 70.6456341463415 2.948
95 1.24193913217475 70.434512195122 5.808
96 2.51209078196484 78.8368292682927 1.54
97 1.65866003181124 59.3399512195122 6.037
98 1.2848470606639 68.2975609756098 3.69
99 1.40927234009194 55.3972926829268 5.741
101 1.08660881911231 55.5994146341463 5.573
103 1.61126101100424 70.4662682926829 2.406
104 1.89068907261576 71.2948780487805 1.59
105 1.18526912888924 67.7587804878049 3.9028
106 1.19489809507886 72.6818536585366 2.588
108 1.54995215279692 68.3365853658537 2.72
109 1.28004095096478 54.3082195121951 6.152
110 1.22336326678733 68.6720243902439 3.137
111 1.04917627006325 70.9086585365854 3.398
113 1.56106410984233 69.6786829268293 2.488
114 1.19693416386731 42.2768048780488 6.519
115 1.17155064659572 59.3268536585366 4.919
116 1.26135100205229 71.1607317073171 2.03
117 1.08323710838707 74.8532926829268 1.62
118 1.22170527380467 69.2731707317073 2.02
119 1.28054581935455 68.0800243902439 4.826
120 1.6757011957912 64.146 4.034
122 1.26128590961038 67.4436829268293 2.413
123 1.10600200989697 75.4203170731707 1.869
125 1.46212841409406 50.7423902439024 6.258
127 1.19250617713909 71.2797804878049 2.125
128 1.38375559514455 44.1622195121951 7.063
129 1.88290389979624 57.2737073170732 3.446
130 1.20071751540413 60.5382682926829 4.095
131 1.08074086711448 76.1404390243903 1.694
133 1.19319974160667 55.9369756097561 5.937
134 1.08010046516855 75.1757804878049 2.05
135 1.13949080237495 69.4048780487805 2.32
136 1.06209728953327 60.8846341463415 6.129
137 1.41799329736808 47.0942682926829 6.75
138 2.26216797044597 70.7910975609756 3.4
139 1.58045810002499 70.0653658536585 3.514
140 1.50099035233799 43.1762682926829 6.237
141 1.16142911491511 60.7774146341464 5.227
142 1.0544999696205 70.4853658536586 3.19
143 1.37865354130493 41.4328536585366 7.813
144 2.33028235211901 45.6373414634146 6.399
145 1.2764912687775 64.1580243902439 4.754
146 1.52592737823213 76.8780487804878 1.62
147 1.27994023828504 76.5373170731707 1.93
148 1.57886319888879 53.9567317073171 5.194
149 1.24797640357174 75.3780487804878 2.18
150 1.18265837983341 70.6329512195122 7.165
151 1.21421644933691 72.3481707317073 3.017
152 1.63469783224774 65.5495121951219 3.828
153 1.05943372646108 69.3337804878049 3.324
154 1.27716372799226 55.7093414634146 4.802
155 2.07073560808773 65.1593902439025 4.32
156 2.43389404163704 60.7671951219512 6.024
157 1.8397956447335 70.890243902439 2.04
158 1.25559221581333 74.3985853658537 2.219
159 1.1909876832542 68.0477317073171 6.528
160 1.42969876520799 73.9658536585366 1.43
161 1.01183227699791 69.0692682926829 2.7572
162 1.28021363501091 67.9726097560976 4.541
163 1.09316982619633 74.1287804878049 4.234
164 1.65521419347987 69.7412195121951 1.84
166 2.65668679251456 68.9024390243902 1.89
167 1.36523718024395 32.8269756097561 7.04
168 1.54755869354668 68.7704878048781 5.844
169 1.0750517234855 56.704756097561 5.851
171 1.60844517568661 52.5306585365854 5.95
172 1.39784040958681 77.5368292682927 2.13
173 1.2371875318109 75.5821951219512 1.865
174 1.19195016728934 73.2048780487805 1.46
175 1.31295984364615 70.9326829268293 2.09
176 1.27328926411626 38.7214634146341 5.705
178 1.37274666917947 53.2483414634146 6.646
179 1.34185973527995 44.5211707317073 6.599
180 1.08596250202272 67.4989268292683 2.733
182 1.04509538824197 60.915756097561 5.396
183 1.31428887153651 65.9908536585366 3.951
185 1.47992438112895 71.064756097561 5.335
186 1.12581348021858 59.3440487804878 5.744
188 1.33169105406562 50.6799268292683 6.671
189 1.264510484654 52.9919756097561 6.299
190 2.02330623622011 72.4709268292683 2.113
191 1.31290362405916 62.8568536585366 5.175
192 1.11734598547329 45.7858048780488 5.34
193 1.26029228178869 62.6627073170732 4.345
194 1.38831851166189 70.3073170731707 3.633
195 1.04027576075959 69.5823170731707 4.644
196 1.9996258704999 63.0604634146342 3.049
197 1.14992349305059 68.9447804878049 2.446
199 1.68670336377186 50.5971463414634 6.213
200 1.97996661658626 70.1365853658537 1.848
201 1.5695741248644 47.3567317073171 7.091
202 3.14945482032537 75.2146341463415 2.081
203 1.23963077027988 72.4846829268293 2.518
204 1.61602127817034 66.6821219512195 4.072
205 1.04301875344481 69.2184146341463 2.956
206 1.60435483099437 71.0623658536585 3.448
207 1.04224902252597 74.788 3.086
208 2.10533703212773 65.4783658536585 3.598
209 1.05074212155505 63.1968536585366 4.926
210 1.0536209147294 65.0404146341463 4.762
211 1.46699842990686 56.0690243902439 8.659
212 1.80708165036991 61.5496097560976 3.658
213 1.38086164777311 47.4806341463415 6.464
214 1.43988500130408 60.5289268292683 5.187
group size x y
2 1.18755294029298 72.4153170731707 4.193
3 1.483009518596 42.636 7.984
5 1.25278012970445 71.5314878048781 3.058
6 1.2546822032668 67.7360731707317 2.482
7 1.44388403116426 41.2088780487805 7.144
8 1.78233788010195 71.7179268292683 2.956
10 1.37867759016109 75.5678048780488 1.5
11 1.56548375869913 77.2756097560976 1.849
12 1.0325089555102 73.4331219512195 2.221
13 1.36666106120111 64.4241463414634 2.87
14 1.28427841367031 66.3856829268293 1.645
15 1.0683836408058 74.5583658536585 1.739
16 2.42641167342471 59.9897073170732 4.356
17 1.43015657638794 76.1921951219512 1.57
18 1.4091083914437 48.5274146341463 6.794
19 1.39954724642005 71.5609756097561 1.65
20 1.09640428281037 72.6096829268293 3.567
21 1.32601199424717 45.6215365853659 6.492
22 1.30949080105088 49.1231219512195 6.677
24 1.06894392380177 73.9232195121951 3.435
25 1.35864131415554 59.3024146341464 4.866
26 2.67811939763316 66.734243902439 2.717
27 1.06850897940421 69.4571219512195 2.631
28 1.09879942019922 53.3589512195122 5.573
29 1.1619480243128 63.648 4.542
30 1.43421470777502 70.3780487804878 1.8
31 1.05833324242938 72.6361707317073 4.436
32 1.72200623173104 77.5534146341464 1.7
33 1.81906735251197 46.8238292682927 7.112
34 1.23454251272138 48.4149756097561 5.734
35 1.21249197553746 55.8807804878049 5.293
36 1.35457318543428 77.5146341463415 1.58
37 1.48143649347757 52.3796341463415 6.117
38 1.498926732024 73.9164146341464 2.597
39 1.47951539999441 53.1279024390244 5.832
40 5.61516572682228 69.6640243902439 2.219
41 1.79270377913003 68.4601219512195 3.057
42 1.24140221143444 75.9568536585366 3.09
43 1.4445528641705 74.5215853658537 1.715
44 1.08073020671815 65.519512195122 5.164
46 1.11981608029838 76.6621219512195 2.381
47 1.43664991388798 71.8982926829268 1.86
48 2.21689989570912 75.319512195122 1.33
49 1.10582620567332 51.6243658536585 6.048
50 1.30864558925872 75.1578048780488 1.68
52 1.36971223144945 68.1671463414634 3.397
53 1.70543463686369 67.4289756097561 4.468
54 1.43775173626588 69.3557317073171 3.557
55 1.16958545044115 69.3731707317073 1.77
56 2.03055952625424 62.6876585365854 4.179
57 1.24730069514466 49.0215853658537 6.164
58 1.8488740753438 76.9712195121951 1.31
59 1.9594659308369 47.5029024390244 7.059
60 1.30440187036909 75.2275609756098 1.8
61 1.11605503342302 65.7933170731707 3.374
62 1.04110252373736 66.3101219512195 4.882
64 2.04100864870829 76.8487804878049 1.75
65 1.13364704938352 61.3965365853659 5.15
66 2.03089450206728 76.0829268292683 1.82
67 1.04057109358459 69.5831951219512 3.701
68 1.29894621856909 70.2768292682927 2.132
69 1.52753576662498 57.2862926829268 5.505
71 1.13204057757317 53.209 6.066
72 1.34267482430459 44.1099512195122 6.685
73 1.08374345197784 47.1348536585366 5.901
74 1.43554033207639 77.1365853658537 1.38
75 1.41020457416526 62.8184634146342 5.525
76 1.04829766002952 72.3200487804878 3.124
77 1.13828755094729 42.984756097561 6.608
78 1.11509816298384 61.2744390243902 2.56
79 1.32607517788677 77.8829268292683 1.281
80 1.30525319352821 66.7858536585366 5.048
81 1.28868101463287 72.1853658536586 1.53
82 1.36625805888209 55.5348048780488 5.318
83 1.43802162471797 69.3770731707317 1.86
84 2.83427390995073 62.4969024390244 3.024
85 1.25549208039077 74.9505365853659 2.09
86 1.30242721439651 76.7585365853659 2.762
88 5.05035447852413 58.6156829268293 3.838
89 1.57724083716874 68.7992682926829 5.917
90 2.03131989768513 63.7254878048781 4.478
91 1.0680610586669 77.9919512195122 2.19
92 2.02489485269434 76.8780487804878 1.27
93 1.0498097816116 75.6369268292683 1.461
94 1.21069972432143 70.5388048780488 2.899
95 1.25588171784604 70.6672195121951 5.554
96 2.51443917824052 79.1007317073171 1.53
97 1.66967651969741 58.9795853658537 5.847
98 1.28718966955187 68.5512195121951 3.671
99 1.41646418428952 55.5814634146342 5.605
101 1.08768974629343 55.829243902439 5.447
103 1.61602450812739 70.1393170731707 2.391
104 1.89482520760086 71.730243902439 1.74
105 1.18705875404539 67.9290243902439 3.5844
106 1.19202199163346 72.8225365853659 2.418
108 1.55167431732113 67.9829268292683 2.61
109 1.28415549379359 55.0806097560976 6.057
110 1.22540296722067 68.9362195121951 3.078
111 1.04954730095829 71.4414634146341 3.2
113 1.56520547305614 69.7313902439024 2.435
114 1.19519635146066 42.1279512195122 6.437
115 1.17318103667392 59.642 4.837
116 1.26157385099213 70.3641463414634 1.97
117 1.08380774451834 75.4634146341463 1.6
118 1.22117994740622 69.0324390243903 1.86
119 1.28381576305632 68.605 4.521
120 1.68187857490265 64.6802682926829 3.876
122 1.26163986219662 67.3723902439024 2.305
123 1.10613785733609 75.6126341463415 1.843
125 1.46913414791086 51.4204146341463 6.225
127 1.19227061452184 71.4514146341463 2.098
128 1.38774785548429 44.4742682926829 7.046
129 1.88978868053646 57.8447073170732 3.31
130 1.20226893268898 60.6984146341463 3.786
131 1.08185067360391 76.4002682926829 1.589
133 1.19592134882985 56.1267317073171 5.878
134 1.08051038047224 75.3901951219512 2.04
135 1.14025110314759 69.9560975609756 2.3
136 1.06300041960694 61.6763414634146 5.797
137 1.42262585965906 47.1501463414634 6.652
138 2.27539273830769 71.1863414634146 3.308
139 1.58835802284017 70.2958292682927 3.478
140 1.50696908503078 43.4966829268293 6.194
141 1.16431026352456 60.8552195121951 5.098
142 1.05520302599399 70.3585365853659 3.02
143 1.38471882258264 41.9133170731707 7.803
144 2.34734257092631 45.5345365853659 6.334
145 1.27979742000009 64.8876829268293 4.642
146 1.52800474501574 77 1.61
147 1.28060918146925 76.9807317073171 1.92
148 1.58614358507063 54.5807073170732 5.104
149 1.25407056065278 76.0317073170732 2.16
150 1.18641626963388 71.3212926829268 6.834
151 1.21646685036958 72.5410975609756 2.957
152 1.64110049539065 66.0281707317073 3.722
153 1.05999938358234 69.6715365853659 3.219
154 1.28061132517396 56.0470731707317 4.757
155 2.08385986767544 65.3373658536585 4.246
156 2.4540079365101 61.0333414634146 5.899
157 1.84128655028872 70.5878048780488 2.05
158 1.25649979358266 74.3151463414634 2.201
159 1.19532834778234 68.3919756097561 6.54
160 1.42936825608754 74.0146341463415 1.42
162 1.28384324991901 68.1505365853659 4.448
163 1.09402136364574 74.3713902439025 4.129
164 1.65237353913798 69.7843902439024 1.57
165 1.37476532883253 71.4878048780488 1.8
166 2.65854036651098 68.4743902439024 1.732
167 1.3590778664084 29.4400487804878 6.763
168 1.55650785380034 69.2054878048781 5.685
169 1.07614308741872 57.2138536585366 5.728
171 1.62097140500076 52.8822926829268 5.895
172 1.39919984193456 77.6668292682927 2.11
173 1.24060044957161 76.0513414634146 1.77
174 1.19201129199151 73.3536585365854 1.42
175 1.31308126833093 70.8829268292683 2.05
176 1.27364727218695 38.1223902439024 5.749
178 1.37854840738544 53.5018048780488 6.534
179 1.34180331428469 44.1238536585366 6.564
180 1.08661886285772 67.5770487804878 2.672
182 1.04565808392935 61.0669756097561 5.3
183 1.31666697239939 66.8924634146342 3.862
185 1.48694544053095 71.4674146341463 5.121
186 1.12760436812061 59.2925853658537 5.571
188 1.3369775896883 50.6070975609756 6.662
189 1.26799032785144 53.2468048780488 6.179
190 2.02873256309794 72.4997804878049 2.054
191 1.31644072041755 62.6176341463415 5.066
192 1.11932335987747 46.8501951219512 5.469
193 1.26397631675296 62.6730487804878 4.222
194 1.39220282497956 70.5073170731707 3.428
195 1.0403115904333 69.6930487804878 4.612
196 2.0080763035658 63.6228292682927 2.977
197 1.15041663315654 69.0125609756098 2.309
199 1.69809896064338 50.329243902439 6.148
200 1.98099044138906 68.8780487804878 1.81
201 1.57958051102073 46.7023658536585 7.082
202 3.1638644963799 75.3658536585366 2.0625
203 1.24047871748664 72.6637073170732 2.506
204 1.62262607898769 66.5067317073171 4.199
205 1.04308367317223 69.4427317073171 2.907
206 1.61163110443661 71.2493658536585 3.37
207 1.04243349595351 75.0990243902439 3.074
208 2.11555212778361 66.4110975609756 3.436
209 1.0514927334603 63.6477804878049 4.884
210 1.05382900222633 65.5589512195122 4.741
211 1.47863073074321 56.3539024390244 8.498
212 1.81544463337349 61.5315365853659 3.53
213 1.38554010975213 46.5600975609756 6.398
214 1.44555549819996 59.5817073170732 5.009
group size x y
2 1.1926631709573 72.6785853658537 3.989
3 1.50547602866704 42.9397317073171 8.01
4 1.03216869404973 74.2463414634146 1.7
5 1.25230722171409 71.4652195121951 2.91
6 1.25240400081087 67.8285365853659 2.399
7 1.45112280969989 41.3145365853659 7.12
8 1.78759150391289 71.9440731707317 2.918
10 1.3807691303502 75.8553658536585 1.49
11 1.56892644512418 77.3780487804878 1.888
12 1.03352144137776 73.471756097561 2.187
13 1.3694520850081 64.207243902439 2.74
14 1.27666794125971 65.829 1.592
15 1.06849019999306 74.6783414634146 1.73
16 2.44251722848758 60.5147317073171 4.184
17 1.43103072052653 76.3512195121951 1.56
18 1.41465877916769 48.6117317073171 6.739
19 1.39740584825342 71.4943902439024 1.54
20 1.09765431847174 72.7473902439024 3.43
21 1.32976320502666 45.1109512195122 6.468
22 1.31528844560411 49.6033902439024 6.603
24 1.06995705298799 74.1887804878049 3.321
25 1.36291380480793 59.7934634146342 4.81
26 2.6915463904072 67.1334146341463 2.643
27 1.06918043927451 69.515 2.621
28 1.09817915720377 54.1637804878049 5.372
29 1.16424942276654 62.966 4.394
30 1.43468334738371 70.0219512195122 1.75
31 1.05888998415699 72.7738536585366 4.363
32 1.72645206105792 77.3207317073171 1.71
33 1.83560018834514 46.7076341463415 7.131
34 1.23733532438235 47.9173902439024 5.691
35 1.21529563483932 55.5086097560976 5.235
36 1.35653537034769 77.8060975609756 1.58
37 1.48946081469573 52.0708292682927 5.977
38 1.50354277250653 74.2139512195122 2.559
39 1.48653720651096 52.9293170731707 5.731
40 5.64353299921224 69.8618292682927 2.106
41 1.80026656334098 68.649 3.012
42 1.24435860880501 76.1692195121951 3.002
43 1.44607120885793 74.6253170731707 1.68
44 1.08178156096353 65.9453170731707 5.016
46 1.12116191408386 76.8160487804878 2.337
47 1.43687335199503 72.2717073170732 1.72
48 2.22153546663617 75.819512195122 1.29
49 1.1072839336668 51.8804146341463 5.918
50 1.30915705879607 75.1941463414634 1.76
51 1.03427035853273 73.9512195121951 2.5
52 1.37339934671687 68.5885365853659 3.33
53 1.71380066397788 67.7191951219512 4.216
54 1.44274506831949 69.8420975609756 3.456
55 1.16803821848449 68.8634146341464 1.69
56 2.039350591536 63.3895853658537 4.018
57 1.24805543531076 49.8426585365854 6.107
58 1.85027597991186 77.41 1.32
59 1.97650085074196 47.9489512195122 7.024
60 1.30525959047633 75.4553658536585 1.85
61 1.11678089445797 66.011243902439 3.352
62 1.04168648711903 66.4226585365854 4.82
64 2.04360253597588 77.1 1.74
65 1.13545488845962 61.4129756097561 5.097
66 2.03228955767716 76.4341463414634 1.79
67 1.04074090595431 70.2019268292683 3.551
68 1.30010795306204 70.3020487804878 2.076
69 1.53500257913599 57.6300487804878 5.392
70 1.02973670988757 65.3414634146341 2.53
71 1.13413965899116 53.2834634146341 6.039
72 1.35285326992375 44.521756097561 6.619
73 1.08519046507414 47.4722926829268 5.902
74 1.43794695179455 77.3829268292683 1.38
75 1.41501123876362 63.3537073170732 5.465
76 1.04889619661507 72.5460487804878 3.114
77 1.13988274997656 43.1449756097561 6.554
78 1.11507797938758 61.4771707317073 2.544
79 1.32744879392236 77.6780487804878 1.347
80 1.30944172716945 67.2273414634146 4.95
81 1.28739583241949 71.2414634146342 1.48
82 1.36989924646426 55.9715365853659 5.21
83 1.43793585753207 69.1170731707317 1.77
84 2.85000103887257 62.8804634146341 2.934
85 1.2563669843134 75.136243902439 2.02
86 1.30770570709397 76.5048780487805 2.7
88 5.08992013628133 58.892512195122 3.758
89 1.58578983915387 69.7719268292683 5.839
90 2.03878720604976 65.2640487804878 4.138
91 1.06850290030228 78.760243902439 2.21
92 2.02524303497144 77.2378048780488 1.3
93 1.04993781751659 75.8496829268293 1.457
94 1.21144516643575 70.4415853658537 2.855
95 1.26259315109023 70.8804146341463 5.308
96 2.51632015920569 79.1539024390244 1.502
97 1.68064071787971 58.4631219512195 5.668
98 1.28885407615491 68.1024390243903 3.617
99 1.42403060742975 55.7143902439024 5.464
100 1.03492729314173 58.1951219512195 3.8
101 1.08877189823818 56.0481219512195 5.355
102 1.02502509059789 67.9512195121951 2.6
103 1.62093064303466 69.4963414634146 2.38
104 1.8989011313081 72.2060975609756 1.78
105 1.18873337443277 68.0892682926829 2.9581
108 1.55148296379565 67.7317073170732 2.5
109 1.2882905080317 55.866487804878 5.934
110 1.22823438859221 69.1904390243902 3.027
111 1.04987773724027 71.5780487804878 3
113 1.56780293460775 69.6991219512195 2.385
114 1.19341560861763 42.0236097560976 6.357
115 1.17490705137329 59.5982682926829 4.759
116 1.26143158372556 70.2343902439025 1.89
117 1.08437726350852 75.7707317073171 1.67
118 1.21965824382299 68.3960975609756 1.73
119 1.287048298054 69.1180243902439 4.241
120 1.68784589068546 65.1965853658537 3.722
122 1.26174595463745 67.2274878048781 2.191
123 1.1061790047597 75.7574390243903 1.825
125 1.47629231088042 52.1973902439024 6.179
127 1.19170503911272 71.6113414634146 2.065
128 1.39231000845141 44.7753170731707 7.026
129 1.89642087314839 58.4377317073171 3.181
130 1.20343630895478 60.8246341463415 3.492
131 1.08278548107708 76.6550975609756 1.487
133 1.19871560370806 56.296 5.814
134 1.08091547434899 75.8334146341463 2.12
135 1.14118335003271 70.0585365853659 2.37
136 1.06386122860518 62.5114146341463 5.441
137 1.42485172703904 47.1224146341464 6.558
138 2.28887483019522 71.5817073170732 3.211
139 1.59609556440032 70.5208292682927 3.438
140 1.5152423685576 43.9004634146341 6.147
141 1.16696625242944 60.8613170731707 4.97
142 1.05596177280425 71.5121951219512 2.85
143 1.39106969698196 42.468756097561 7.787
144 2.36445295804784 45.4153658536585 6.27
145 1.28325448804413 65.5775609756098 4.519
146 1.53000552704651 77.2170731707317 1.59
147 1.28142159394482 77.1843902439025 1.88
148 1.5936962261689 55.2424878048781 5.01
149 1.25540023999952 76.1243902439025 2.12
150 1.19037314154069 71.9016585365854 6.478
151 1.21872003457687 72.731756097561 2.906
152 1.64736735514699 66.5088048780488 3.617
153 1.06049844686605 69.9952682926829 3.11
154 1.28412771142007 56.3991951219512 4.724
155 2.09676210161775 65.5123658536585 4.177
156 2.47336930386215 61.2950243902439 5.767
157 1.84257782838149 71.090243902439 1.93
158 1.25733067218187 74.2374878048781 2.179
159 1.19976692911123 68.7226829268293 6.526
160 1.42941297803338 74.3121951219512 1.48
162 1.28742590694802 68.3314634146341 4.356
163 1.09446100799203 74.6084878048781 4.02
164 1.64943224435117 69.7843902439024 1.52
166 2.6589030225987 66.8731707317073 1.552
167 1.34785713050059 27.3345853658537 6.516
168 1.56515001236383 69.5909512195122 5.522
169 1.07725557325209 57.8211219512195 5.596
170 1.03445322836461 70.6707317073171 2.696
171 1.63469412865598 53.2303658536585 5.84
172 1.40037329673643 77.9987804878049 2.09
173 1.24424996544234 76.478756097561 1.76
174 1.19186997185818 73.3048780487805 1.33
175 1.31313216576669 71.7951219512195 1.93
176 1.27291827408908 37.663243902439 5.789
178 1.38440380906394 53.724243902439 6.417
179 1.34111180668349 43.8934634146341 6.532
180 1.08723804380699 67.6476585365854 2.64
182 1.04621713276473 61.2176341463415 5.212
183 1.31916592000329 67.622512195122 3.777
185 1.49392094137604 71.8469268292683 4.913
186 1.12909684147224 58.9767804878049 5.392
188 1.3423282599877 50.4757804878049 6.654
189 1.27134146702775 53.4782682926829 6.056
190 2.03301188050802 72.4528780487805 2.001
191 1.31951568151527 62.4198048780488 4.947
192 1.12147795107134 47.9631463414634 5.651
193 1.26779193061255 62.7055365853659 4.071
194 1.39623360177902 70.7560975609756 3.223
195 1.04033958889974 69.7972195121951 4.583
196 2.01634097639332 64.200756097561 2.915
197 1.15088228012127 69.0518536585366 2.179
199 1.70991281622117 50.0647073170732 6.081
200 1.98240258249051 68.8780487804878 1.72
201 1.58959113046806 46.0791463414634 7.071
202 3.17892225286502 75.6421951219512 2.046
203 1.24135152509271 72.85 2.487
204 1.62997004168766 66.3602195121951 4.004
205 1.04312446662475 69.6311219512195 2.86
206 1.6187440709278 71.415756097561 3.292
207 1.04263019820326 75.400512195122 3.047
208 2.12552653515558 67.292756097561 3.261
209 1.05228869553717 64.1034146341463 4.844
210 1.05408541924233 66.0700243902439 4.724
211 1.49115880031104 56.6032926829268 8.312
212 1.82399818731373 61.3569268292683 3.408
213 1.39010374158269 45.6693902439024 6.341
214 1.45068171752943 58.3153414634146 4.839
group size x y
2 1.19779067720612 72.9353414634146 3.784
3 1.52985112985556 43.2420975609756 8.034
5 1.25121996771409 71.487 2.784
6 1.24946003646064 68.012756097561 2.295
7 1.45863821400236 41.4781951219512 7.093
8 1.79275819284899 72.171756097561 2.875
10 1.38234384391188 76.1063414634146 1.48
11 1.57171746863843 77.8780487804878 1.859
12 1.03467839810634 73.5053170731707 2.149
13 1.37227190414859 64.1540243902439 2.7
14 1.2678118011396 65.9418536585366 1.556
15 1.06859160170081 74.782243902439 1.719
16 2.45825581445368 61.0467317073171 4.021
17 1.43187406039784 76.3453658536585 1.61
18 1.42031931859632 48.7100243902439 6.681
19 1.39582262158868 71.3468292682927 1.45
20 1.09887488943411 72.8810975609756 3.303
21 1.3331423635052 44.753756097561 6.432
22 1.32122616589264 50.0734634146341 6.526
24 1.07097058498377 74.4508292682927 3.197
25 1.36720949610132 60.2537804878049 4.742
26 2.70469772525152 67.5368048780488 2.583
27 1.06984716684039 69.6311707317073 2.601
28 1.09730351904113 54.9941219512195 5.155
29 1.16650078737647 61.9767073170732 4.252
30 1.43517274918151 68.9707317073171 1.61
31 1.05944151155293 72.901 4.286
32 1.73043890302505 77.6851219512195 1.7
33 1.85233656619418 46.492512195122 7.14
34 1.24021719298337 47.3506097560976 5.653
35 1.21813988290947 55.1599268292683 5.183
36 1.35816436277724 78.0853658536586 1.51
37 1.49741989895154 51.7321951219512 5.84
38 1.50815119274687 74.4951951219512 2.51
39 1.49357019325899 52.6668780487805 5.62
40 5.67030151024517 70.0546341463415 2.007
41 1.80777458247103 68.8749024390244 2.966
42 1.24732269844411 76.3815853658537 2.917
43 1.44739000014325 74.7769024390244 1.65
44 1.08293079167035 66.3601219512195 4.863
46 1.1225407013918 76.9679756097561 2.278
47 1.43710063517312 72.7678048780488 1.67
48 2.22555758088074 75.8707317073171 1.28
49 1.10835915203715 52.1314878048781 5.779
50 1.30967324219134 75.1168292682927 1.75
52 1.37704409998958 68.9648780487805 3.262
53 1.72182519623481 67.976 3.957
54 1.44769554675625 70.3200243902439 3.368
55 1.16587848891114 67.909756097561 1.45
56 2.04766115409794 64.1127073170732 3.876
57 1.2485290979749 50.692243902439 6.042
58 1.85159906394735 77.5465853658537 1.27
59 1.99371345877767 48.398 6.97
60 1.30600009386516 75.7051219512195 1.81
61 1.11761657638669 66.2241463414634 3.33
62 1.04224332690478 66.5357073170732 4.766
64 2.04586902053869 77.3 1.73
65 1.13726939176779 61.3609512195122 5.015
66 2.03352789495105 76.3853658536585 1.82
67 1.040990241879 70.7642926829268 3.401
68 1.30126520772472 70.3386097560976 2.013
69 1.54248480650757 57.8559512195122 5.278
71 1.13609689178654 53.3804390243902 6.009
72 1.36324047441773 44.9085853658537 6.547
73 1.08667258780324 47.7722926829268 5.902
74 1.43996380468673 77.390243902439 1.34
75 1.41988042693932 63.8934634146341 5.397
76 1.04948394133197 72.7625609756098 3.101
77 1.14149724703324 43.310243902439 6.486
78 1.11515885327416 61.7111219512195 2.534
79 1.3302769693471 78.0317073170732 1.342
80 1.31357000899398 67.6783658536585 4.846
81 1.2928189035751 71.5224390243903 1.52
82 1.3735123720862 56.3900731707317 5.103
83 1.43768604598736 69.1012195121951 1.69
84 2.86545624687952 63.2545365853659 2.849
85 1.25700985639088 75.2964390243903 1.93
86 1.31182856989561 77.1536585365854 2.8
88 5.12901025287974 59.1864878048781 3.676
89 1.59483412088558 70.4960975609756 5.758
90 2.04478322987968 66.5198536585366 3.808
91 1.06886239619541 78.9346341463415 2.22
92 2.02555651993999 77.51 1.25
93 1.05004222963393 76.053 1.45
94 1.21223065892632 70.3590975609756 2.815
95 1.26862098964365 71.0741219512195 5.081
96 2.51819271396764 79.2936585365854 1.458
97 1.6914619400993 57.7995853658537 5.506
98 1.28889572363073 67.1926829268293 3.3
99 1.43172251070378 55.8160487804878 5.301
101 1.0898633668509 56.2645365853659 5.293
103 1.62580235321358 68.5706097560976 2.363
104 1.90293815812057 72.6819512195122 1.67
105 1.19034465238512 68.249512195122 2.8396
108 1.54965622172343 66.7268292682927 2.3
109 1.2923716987431 56.6543658536585 5.782
110 1.23141530507577 69.427512195122 2.977
111 1.05018442734848 71.6317073170732 2.8
113 1.57137743479658 69.5779756097561 2.337
114 1.19234453248105 41.9878048780488 6.282
115 1.17664967898961 59.1357804878049 4.686
116 1.26081132132983 68.9104878048781 1.67
117 1.08495658179175 75.7121951219512 1.69
118 1.21749687791619 66.7226829268293 1.51
119 1.29021639057996 69.6310487804878 3.988
120 1.69361626350966 65.6904390243903 3.573
122 1.26160448848851 67.0511219512195 2.079
123 1.10614866879721 75.8410243902439 1.815
125 1.48361883017579 53.0399268292683 6.126
127 1.19102407042988 71.7686829268293 2.028
128 1.39729344739565 45.0768780487805 7.004
129 1.90290443706652 59.020756097561 3.06
130 1.20433047355414 60.9470243902439 3.227
131 1.08359114024939 76.9054390243902 1.394
133 1.20158279068616 56.439243902439 5.746
134 1.08130842087501 76.6024390243903 2.01
135 1.14202857608727 70.1073170731707 2.21
136 1.06468884590986 63.3861219512195 5.073
137 1.42574826259897 47.0175853658537 6.47
138 2.30241694640997 71.9741951219512 3.111
139 1.60375156124258 70.7398536585366 3.395
140 1.52490063357629 44.3696341463415 6.098
141 1.16948533660729 60.786243902439 4.842
142 1.05677805232186 71.6560975609756 2.7633333333
143 1.39770027814103 43.0881951219512 7.766
144 2.38165714415842 45.2902682926829 6.209
145 1.28676305464073 66.2114634146342 4.381
146 1.53185671133084 76.9165853658537 1.57
147 1.28226186640535 77.1517073170732 1.86
148 1.60144929094735 55.9456829268293 4.912
149 1.2568635841369 76.4341463414634 2.05
150 1.19414344241629 72.3749756097561 6.108
151 1.22098492091235 72.9176097560976 2.864
152 1.65351564424738 66.9933902439025 3.514
153 1.06096777902665 70.2994390243903 3.003
154 1.28772548224135 56.7384634146342 4.701
155 2.10951864655844 65.6843902439025 4.113
156 2.49237538507755 61.5517317073171 5.634
157 1.84365069438278 71.5951219512195 1.85
158 1.25841882488014 74.1916585365854 2.153
159 1.20430565200192 69.0443658536585 6.474
160 1.42968526111562 74.5121951219512 1.53
162 1.29096063712132 68.5123658536586 4.266
163 1.0946948718938 74.8385853658537 3.902
164 1.64899028042465 69.5634146341464 1.44
166 2.65795995177242 64.9358536585366 1.385
167 1.33487585349227 26.8187073170732 6.316
168 1.57319016763748 69.9278780487805 5.352
169 1.07838603852691 58.4545853658537 5.461
171 1.64873654692977 53.5743658536585 5.784
172 1.40153875887419 78.0604878048781 2
173 1.24736733517897 76.857 1.778
174 1.19164062954195 73.2536585365854 1.33
175 1.31373122927799 72.4487804878049 1.87
176 1.27154841543062 37.3456341463415 5.822
178 1.39022485393083 53.9326829268293 6.298
179 1.34043903844831 43.9059512195122 6.508
180 1.08783284376655 67.7091951219512 2.635
182 1.0467544586411 61.3667317073171 5.129
183 1.32165520694836 68.1965609756098 3.695
185 1.50089397201195 72.2017804878049 4.711
186 1.13040047994417 58.3847317073171 5.211
188 1.34778579666505 50.2989512195122 6.647
189 1.27463183950662 53.6878780487805 5.932
190 2.03666608136068 72.3788536585366 1.952
191 1.32221504735485 62.3032682926829 4.825
192 1.12353649411794 49.0801219512195 5.874
193 1.27156487588562 62.7733658536585 3.898
194 1.40012665525465 70.7536585365854 3.025
195 1.04036642164563 69.9007317073171 4.547
196 2.02448438632498 64.8002195121951 2.856
197 1.15130637598617 69.0621463414634 2.06
199 1.72181872158284 49.8359756097561 6.013
200 1.98267520609525 67.8780487804878 1.6
201 1.59958396199481 45.5394878048781 7.057
202 3.19333664663493 75.419512195122 2.0195
203 1.24223987019396 73.0470975609756 2.463
204 1.6371712770053 66.2741707317073 3.8
205 1.0431450633861 69.7876341463415 2.811
206 1.62571397215363 71.769512195122 3.218
207 1.04281778454486 75.6949024390244 2.996
208 2.13530491144013 68.0933414634146 3.071
209 1.05309172490958 64.5593414634146 4.804
210 1.05436497465138 66.5691463414634 4.709
211 1.50391649676512 56.8416585365854 8.1
212 1.83274647954388 61.0248536585366 3.296
213 1.39466933297237 44.8484146341463 6.294
214 1.45537072277646 56.7708048780488 4.674
group size x y
2 1.2029185980901 73.1870975609756 3.584
3 1.55225306632163 43.5426585365854 8.052
5 1.25000456476337 71.6177317073171 2.683
6 1.24648444131688 68.2789268292683 2.176
7 1.46606973011725 41.7162195121951 7.063
8 1.79784795264655 72.3984390243903 2.827
10 1.38308101581182 76.4570731707317 1.44
11 1.57475261932243 77.8780487804878 1.842
12 1.03578220931876 73.535756097561 2.108
13 1.37479901026779 64.2815853658537 2.52
14 1.2599866541601 66.730243902439 1.534
15 1.06868962028171 74.8740731707317 1.705
16 2.47386008635754 61.5832195121951 3.867
17 1.43254058201443 76.6917073170732 1.55
18 1.42609485052912 48.8308292682927 6.62
19 1.39515051511301 71.2087804878049 1.37
20 1.10012670793755 73.0138048780488 3.188
21 1.33614967748456 44.5784634146342 6.381
22 1.32706119765794 50.5224146341464 6.446
24 1.0719699736849 74.7098780487805 3.064
25 1.37149480100447 60.6863902439024 4.663
26 2.71779487964833 67.9408780487805 2.537
27 1.07046912152719 69.8130975609756 2.566
28 1.09659062538235 55.8469756097561 4.929
29 1.16868541410463 60.7116341463415 4.117
30 1.43491747782192 68.7682926829268 1.51
31 1.06004995431092 73.0197317073171 4.201
32 1.7339589226959 77.8619512195122 1.6695
33 1.86798588983041 46.1999024390244 7.138
34 1.24310806798897 46.7385853658537 5.622
35 1.2210642666777 54.8562195121951 5.137
36 1.35959633020133 78.35 1.49
37 1.50523770467133 51.3852195121951 5.706
38 1.51261809636049 74.7656829268293 2.453
39 1.50060207608848 52.3505609756098 5.502
40 5.69676968739724 70.2429268292683 1.927
41 1.81524402773537 69.1393414634147 2.92
42 1.25034518994832 76.5954390243902 2.835
43 1.44857314342113 74.9738536585366 1.628
44 1.08408379635792 66.7704390243903 4.708
46 1.12391893467555 77.1159024390244 2.206
47 1.43717964408647 72.9726829268293 1.44
48 2.22768508609714 76.2707317073171 1.24
49 1.10928552227786 52.3790731707317 5.633
50 1.31019733804222 75.3751219512195 1.806
52 1.38061476309717 69.2971219512195 3.195
53 1.72941622029806 68.2178780487805 3.697
54 1.45261167290679 70.7894878048781 3.292
55 1.16410523032316 66.5 1.37
56 2.05579253997134 64.8499756097561 3.757
57 1.24932125016406 51.5528780487805 5.97
58 1.85274551604203 77.9014634146342 1.2
59 2.0107233939723 48.8530487804878 6.898
60 1.30666129109075 76.3956097560976 1.85
61 1.11845870676372 66.4335365853659 3.305
62 1.04270524493554 66.648243902439 4.716
64 2.04782027806062 77.6487804878049 1.73
65 1.13909196188968 61.2554878048781 4.906
66 2.03484451537149 76.8853658536585 1.74
67 1.04123807028244 71.2583170731707 3.254
68 1.29974076346932 70.396512195122 1.946
69 1.54980536015702 57.9690731707317 5.166
71 1.13801041493137 53.5204634146342 5.974
72 1.37274525398198 45.2789512195122 6.471
73 1.08816695431039 48.0313902439024 5.901
74 1.44180066164485 77.6390243902439 1.36
75 1.42478558869376 64.4368292682927 5.32
76 1.05003927059069 72.9715609756098 3.086
77 1.14312392311785 43.4850243902439 6.404
78 1.11530542303823 61.9812195121951 2.526
79 1.33402170374315 78.5292682926829 1.355
80 1.31759776044051 68.1419268292683 4.735
81 1.29313478336811 71.8034146341464 1.47
82 1.3771129424226 56.7854146341463 4.997
83 1.43738637155649 69.469756097561 1.64
84 2.88060713575435 63.6206097560976 2.771
85 1.25751797455665 75.4376341463415 1.86
86 1.3158976287155 77.4024390243903 2.9
87 1.03447176055087 76.5292682926829 1.8
88 5.16770514569797 59.4991707317073 3.594
89 1.60421618558915 70.9761707317073 5.676
90 2.05079527563131 67.4774878048781 3.496
91 1.06917027170071 79.2470731707317 2.14
92 2.02566100266049 77.749756097561 1.22
93 1.05014679345019 76.2473902439024 1.441
94 1.21305662562785 70.2983902439024 2.778
95 1.27390900949394 71.2508292682927 4.877
96 2.5207812075514 79.6870731707317 1.5
97 1.7020285590919 57.0174634146342 5.366
98 1.28884446434617 66.0390243902439 3.14
99 1.4392214917528 55.9238536585366 5.113
101 1.09097337970337 56.4844390243903 5.257
103 1.63040402452581 67.4401707317073 2.338
104 1.90699803047476 73.0381707317073 1.67
105 1.19189418351141 68.4 2.7064
108 1.54568145653104 65.6731707317073 2.28
109 1.29631072862424 57.430756097561 5.603
110 1.23434747032019 69.6444146341463 2.926
111 1.05049145406398 72.1878048780488 2.8
113 1.57533199177834 69.3952682926829 2.289
114 1.19295936633348 42.0485853658537 6.213
115 1.17830055653402 58.2461219512195 4.617
116 1.25990601617867 68.530243902439 1.57
117 1.0855482048101 76.3707317073171 1.72
118 1.21567885157594 65.6643902439025 1.39
119 1.29327628182977 70.1460731707317 3.764
120 1.69921039952443 66.1623414634146 3.427
122 1.26121506153944 66.8693902439024 1.975
123 1.10608230044497 75.8576341463415 1.813
125 1.49113617022407 53.9310243902439 6.066
127 1.19053179579404 71.9269512195122 1.985
128 1.40247986919407 45.3839512195122 6.98
129 1.90937326234404 59.5732926829268 2.951
130 1.2051123038366 61.0843902439024 2.999
131 1.0843342577649 77.1502682926829 1.312
133 1.20452101895653 56.5569756097561 5.673
134 1.08167602609712 76.9 1.89
135 1.14303317486254 70.1585365853659 2.25
136 1.06549640015311 64.2990731707317 4.704
137 1.42685762822418 46.8521707317073 6.393
138 2.31576231173861 72.3622195121951 3.007
139 1.61144546516539 70.9538780487805 3.349
140 1.53468712384802 44.884756097561 6.046
141 1.17199749638935 60.6280243902439 4.715
142 1.05765391542387 70.6731707317073 2.6766666667
143 1.40459711204514 43.7621219512195 7.738
144 2.39901717226919 45.1797317073171 6.152
145 1.29018781713572 66.7857073170732 4.225
146 1.53346330446554 77.3751219512195 1.57
147 1.28306799909714 77.689756097561 1.87
148 1.60930559907014 56.6893658536585 4.809
149 1.25858003692844 76.8829268292683 2
150 1.19723323581744 72.7477317073171 5.734
151 1.22327226200723 73.1011219512195 2.833
152 1.6595715498032 67.4853902439025 3.413
153 1.06145687101606 70.5870243902439 2.901
154 1.29141737513162 57.0559268292683 4.685
155 2.12223857984579 65.8529512195122 4.056
156 2.51156392878418 61.8019756097561 5.499
157 1.84454144177708 71.6951219512195 1.798
158 1.25962431675025 74.1976829268293 2.123
159 1.20894676036725 69.3604878048781 6.38
160 1.43014786298104 74.9146341463415 1.44
162 1.29444819213261 68.693756097561 4.177
163 1.09499832652215 75.0631463414634 3.774
164 1.64851854783917 69.509756097561 1.41
166 2.65693256609353 64.4670731707317 1.4
167 1.32540650212094 27.9363414634146 6.167
168 1.58023347611246 70.2197804878049 5.174
169 1.07952999297737 59.0837317073171 5.326
171 1.66197845316735 53.9213658536585 5.727
172 1.40296940865685 78.650243902439 1.88
173 1.25128332180652 76.2975609756098 1.75
174 1.19152938273332 73.4048780487805 1.32
175 1.31435084923111 72.3 1.67
176 1.27018551812733 37.1876097560976 5.847
178 1.39590334636024 54.1421219512195 6.177
179 1.3407017262959 44.1848536585366 6.492
180 1.08842531733872 67.7620975609756 2.653
182 1.04724808672114 61.5152682926829 5.052
183 1.32396078762694 68.6201219512195 3.614
185 1.50791926220496 72.5319756097561 4.52
186 1.13167167627624 57.523512195122 5.035
188 1.35341142703257 50.0880975609756 6.641
189 1.27794988668422 53.8771707317073 5.809
190 2.04042239389374 72.3063902439025 1.906
191 1.32467041140664 62.2857073170732 4.702
192 1.12514882284379 50.1846341463415 6.125
193 1.27507259277744 62.8820975609756 3.707
194 1.40376450677207 70.9536585365854 2.9
195 1.04040125466615 70.0064634146342 4.501
196 2.0325857120892 65.4236585365854 2.797
197 1.15166718206962 69.0458780487805 1.957
199 1.73339667774374 49.6660243902439 5.946
200 1.98024083653788 67.8731707317073 1.5
201 1.60954460679422 45.1223658536585 7.039
202 3.20682675045236 75.5743902439025 2.0015
203 1.24313098361845 73.2565365853659 2.432
204 1.64345838378795 66.2601219512195 3.537
205 1.04315192678855 69.9158292682927 2.76
206 1.63257378849644 72.1231707317073 3.147
207 1.04297742898432 75.9821951219512 2.92
208 2.14488338777474 68.8048292682927 2.87
209 1.05385237893837 65.0121463414634 4.761
210 1.05463327590106 67.0518048780488 4.698
211 1.51607261844152 57.0915365853659 7.868
212 1.84169379547615 60.5388292682927 3.196
213 1.39938762433447 44.1265609756098 6.257
214 1.45977685520802 55.0080243902439 4.516
group size x y
2 1.2080593578115 73.4348536585366 3.394
3 1.57040597698696 43.8409024390244 8.058
5 1.24902133414213 71.8702926829268 2.604
6 1.24396460332611 68.6204634146342 2.053
7 1.47319382985113 42.0509268292683 7.03
8 1.80286428665406 72.6236341463415 2.774
10 1.38337466693236 76.7156097560976 1.4
11 1.57823615122607 77.8292682926829 1.822
12 1.03670804373311 73.5636097560976 2.064
13 1.37696564601557 64.5758292682927 2.29
14 1.25501208061785 68.0681951219512 1.524
15 1.06878709557562 74.9593658536585 1.688
16 2.48947574932904 62.1226829268293 3.723
17 1.43299410611731 76.8407317073171 1.57
18 1.43198978188779 48.979756097561 6.558
19 1.39427071206318 71.0534146341464 1.23
20 1.1014635404248 73.1470243902439 3.085
21 1.33882260992687 44.588512195122 6.316
22 1.33264067591132 50.9412682926829 6.364
24 1.07294489028419 74.9674146341464 2.929
25 1.37574505175832 61.0958780487805 4.575
26 2.73098609978039 68.3406341463415 2.502
27 1.07102246512144 70.0563658536585 2.514
28 1.09635243034816 56.7233902439024 4.7
29 1.17078933751789 59.1978048780488 3.989
30 1.43421470777502 68.4609756097561 1.386
31 1.06075687588695 73.1276097560976 4.108
32 1.73700517845519 77.9775609756098 1.639
33 1.8817451050032 45.8788048780488 7.125
34 1.24594890171571 46.1062926829268 5.596
35 1.22409187426779 54.6093902439024 5.096
36 1.36080112122906 78.4170731707317 1.47
37 1.51284739663265 51.0513658536585 5.581
38 1.51685000482137 75.0414634146342 2.388
39 1.50762635598074 51.9919024390244 5.384
40 5.72235469723087 70.4247317073171 1.868
41 1.82268483673933 69.4366829268293 2.872
42 1.25345411930476 76.8088048780488 2.758
43 1.44966917133809 75.206756097561 1.614
44 1.08517438578466 67.1823170731707 4.55
46 1.12527247731112 77.2623170731707 2.124
47 1.43704554065787 73.0748780487805 1.278
48 2.2294906895658 76.4219512195122 1.25
49 1.11023038725763 52.6241951219512 5.486
50 1.31100756629484 75.2126829268293 1.807
52 1.38409065752311 69.5917317073171 3.13
53 1.73652111181917 68.4658780487805 3.446
54 1.4574996315866 71.252 3.226
55 1.16263920589537 67.5439024390244 1.32
56 2.06397004835295 65.5934634146342 3.659
57 1.25087093910289 52.4046097560976 5.889
58 1.853743917773 77.9807317073171 1.18
59 2.02728493208494 49.3136341463415 6.805
60 1.30724791109895 76.409512195122 1.81
61 1.11923141757658 66.6389024390244 3.276
62 1.04302886328168 66.759756097561 4.664
64 2.04971675815445 77.7512195121951 1.74
65 1.14092327090324 61.0976097560976 4.774
66 2.03621442631576 76.8365853658537 1.71
67 1.0414283860368 71.6853658536585 3.116
68 1.29577485529833 70.4902682926829 1.88
69 1.55685748273231 57.9929268292683 5.058
71 1.1399525306454 53.7135365853659 5.933
72 1.38068317860792 45.6518536585366 6.393
73 1.08965808997379 48.2426097560976 5.897
74 1.44350145359405 77.5853658536585 1.32
75 1.42971261346163 64.9863902439024 5.237
76 1.05054641096433 73.1750731707317 3.067
77 1.14475814827791 43.6752926829268 6.312
78 1.11548963576224 62.2924878048781 2.518
79 1.33734929389084 78.6829268292683 1.295
80 1.32150017678589 68.607 4.617
81 1.29373401911597 72.0843902439024 1.58
82 1.38070914119086 57.1460731707317 4.889
83 1.43708179117418 69.7917073170732 1.57
84 2.8954440265538 63.9777073170732 2.699
85 1.25818034884526 75.5708536585366 1.87
86 1.32014627812374 77.4512195121951 2.9
88 5.20605900491191 59.8315609756098 3.512
89 1.61381099106492 71.2347073170732 5.595
90 2.05786344384754 68.1544634146342 3.21
91 1.06936360100677 77.9843902439024 2.08
92 2.0256691504035 78.0143902439025 1.18
93 1.05026881650545 76.4373414634146 1.43
94 1.21392351332378 70.2634634146341 2.744
95 1.27839964787182 71.4124878048781 4.695
96 2.52368724732607 79.5363414634147 1.422
97 1.7122811624275 56.1492195121951 5.251
98 1.29029224325385 65.790243902439 3.31
99 1.44630573118187 56.0652682926829 4.903
100 1.03569883157481 59.4390243902439 4.5
101 1.09210870169699 56.7098048780488 5.246
103 1.63457596690257 66.2719024390244 2.306
104 1.91350492432338 73.3943902439024 1.65
105 1.19343130211889 68.5451219512195 2.7014
106 1.17093395533929 73.2942195121951 2.525
108 1.54091923389499 64.919512195122 2.26
109 1.3000454083145 58.1821463414634 5.4
110 1.2366565288286 69.8400731707317 2.868
111 1.05081629758977 71.4341463414634 2.9
113 1.57925955195623 69.2288536585366 2.245
114 1.19585241933843 42.247 6.149
115 1.17978434437435 56.9378780487805 4.548
116 1.25890559140699 69.0063414634147 1.55
117 1.08616262052629 76.5121951219512 1.68
118 1.21414212926621 66.3912195121951 1.25
119 1.29620067583215 70.6531219512195 3.575
120 1.70463957533478 66.6133170731707 3.286
122 1.26054456050646 66.7158780487805 1.882
123 1.10600794649702 75.8041219512195 1.815
125 1.49885345845354 54.8547317073171 5.999
127 1.19044249918463 72.087512195122 1.937
128 1.40772078022297 45.697512195122 6.955
129 1.91590138526681 60.0783414634146 2.852
130 1.20590235722691 61.2615609756098 2.808
131 1.08506370399404 77.3910975609756 1.242
133 1.20752860890112 56.6527073170732 5.597
134 1.08195790321018 77.1439024390244 1.83
135 1.14365368078629 70.3258536585366 2.14
136 1.066293280401 65.2537317073171 4.345
137 1.42928606332409 46.6426829268293 6.325
138 2.32871821228192 72.7376341463415 2.906
139 1.61924840939663 71.1634390243903 3.301
140 1.5437509558163 45.4109512195122 5.993
141 1.17458155611326 60.3607317073171 4.59
142 1.05859158652907 72.009756097561 2.59
143 1.41174630261103 44.477512195122 7.706
144 2.41658247850469 45.1157073170732 6.099
145 1.29343322957913 67.3041951219512 4.055
146 1.53478303806489 77.4046341463415 1.53
147 1.28380496974063 77.7365853658537 1.87
148 1.61717932664838 57.4686341463415 4.701
149 1.26048420501176 76.7341463414634 1.99
150 1.19934997043381 73.0430243902439 5.361
151 1.22558892333616 73.2832195121951 2.812
152 1.66554843978757 67.9847804878049 3.317
153 1.06199899898495 70.867512195122 2.805
154 1.29520888741421 57.3519512195122 4.671
155 2.13499542653845 66.0185365853659 4.006
156 2.53126414232772 62.0457317073171 5.359
157 1.84511485838178 71.8926829268293 1.61
158 1.2608287077554 74.2885853658537 2.087
159 1.21369263452697 69.6675609756098 6.244
160 1.43071322318436 75.3121951219512 1.38
161 1.01341989099251 71.8446341463415 2.8605
162 1.29788976289369 68.8802195121951 4.09
163 1.09558569472508 75.2827317073171 3.642
164 1.64786262483101 69.4560975609756 1.343
166 2.65584306486427 65.2212195121951 1.34
167 1.32356332144206 30.4731707317073 6.068
168 1.58611039592052 70.4726829268293 4.989
169 1.08068365128713 59.6959512195122 5.197
171 1.67370885642595 54.2909756097561 5.668
172 1.4040289016299 78.7404878048781 1.73
173 1.25513921126061 76.3951219512195 1.71
174 1.19155011054832 73.9585365853659 1.29
175 1.3148117800852 72.2536585365854 1.52
176 1.26934711894414 37.2087073170732 5.86
178 1.40137663164118 54.3630731707317 6.059
179 1.34253111805757 44.7121707317073 6.486
180 1.0890311044423 67.8058536585366 2.684
182 1.04768540231832 61.661243902439 4.977
183 1.32596200066934 68.9138048780488 3.529
185 1.51502284973609 72.8355365853659 4.342
186 1.13301465131029 56.3937317073171 4.867
188 1.35925016972697 49.8497317073171 6.636
189 1.28135897395586 54.0500975609756 5.686
190 2.04479672917532 72.2611707317073 1.862
191 1.32699146870898 62.3746097560976 4.581
192 1.12610531282165 51.2641707317073 6.384
193 1.27816718961003 63.0307317073171 3.512
194 1.40700849995407 71.3536585365854 2.67
195 1.04045070262273 70.1192682926829 4.447
196 2.04069965825295 66.0730975609756 2.734
197 1.15195278614536 68.9970975609756 1.87
199 1.7443806738807 49.573756097561 5.883
200 1.97637423216133 67.1170731707317 1.4
201 1.61947779954974 44.8652926829268 7.018
202 3.22000562329043 75.6219512195122 1.978
203 1.24401049911534 73.4762682926829 2.6
204 1.64929993191452 66.3176097560976 3.596
205 1.04315042551255 70.0184146341464 2.703
206 1.63934831312055 72.169512195122 3.082
207 1.04308496197711 76.2629024390244 2.82
208 2.15431023534779 69.4316829268293 2.666
209 1.05454002965316 65.4593414634146 4.716
210 1.05486519216395 67.5150243902439 4.688
211 1.52709960831991 57.3789024390244 7.622
212 1.85084454200891 59.8874146341464 3.11
213 1.40435858564079 43.5152682926829 6.23
214 1.46399869509307 53.0983902439024 4.369
group size x y
2 1.21352557455425 73.6800975609756 3.217
3 1.58370484643589 44.1368048780488 8.043
5 1.24839564098477 72.2410731707317 2.54
6 1.24207010827603 69.0294390243903 1.938
7 1.47993221010236 42.5016097560976 6.997
8 1.80781598644005 72.8462926829268 2.717
10 1.38363381549926 76.9836585365854 1.42
11 1.58204872630738 78.0780487804878 1.796
12 1.03742436455493 73.5894390243902 2.021
13 1.37887571514259 64.994 2.06
14 1.25372337432767 69.7141951219512 1.518
15 1.06888376118905 75.0426341463415 1.667
16 2.50512135005254 62.6621219512195 3.589
17 1.43341764755123 77.1873170731707 1.55
18 1.43800391904718 49.1594390243902 6.495
19 1.39325442489975 70.8973170731707 1.24
20 1.10290959489968 73.280243902439 2.994
21 1.34112442214988 44.7584146341463 6.233
22 1.33790348167723 51.324512195122 6.282
24 1.0738912937248 75.2239268292683 2.798
25 1.37994780916141 61.4872926829268 4.482
26 2.74430942039567 68.7315609756098 2.474
27 1.07149364685825 70.3480487804878 2.443
28 1.0966869642674 57.6294390243903 4.474
29 1.17281132810723 57.4776585365854 3.866
30 1.43348945003124 68.6121951219512 1.31
31 1.06157586936127 73.2211463414634 4.008
32 1.74098628443014 78.2304878048781 1.592
33 1.89332018255179 45.5966829268293 7.102
34 1.24874025533563 45.4801707317073 5.573
35 1.22724708846128 54.4214634146341 5.06
36 1.36159956850535 78.8960975609756 1.5
37 1.52028165828329 50.7471219512195 5.469
38 1.52081380369161 75.3396341463415 2.321
39 1.51464012538144 51.5999024390244 5.273
40 5.74716829502175 70.5990243902439 1.828
41 1.83010095693573 69.7576097560976 2.823
42 1.25666192253758 77.0216585365854 2.686
43 1.45067126532204 75.457243902439 1.609
44 1.08618034100821 67.6031951219512 4.388
46 1.12658479547005 77.405756097561 2.035
47 1.43679110955307 73.7146341463415 1.185
48 2.23127167544534 76.6731707317073 1.3
49 1.11122431572341 52.8653902439024 5.339
50 1.31189011664669 75.5914634146342 1.747
52 1.38746365726281 69.8596097560976 3.069
53 1.74314766203753 68.7344878048781 3.214
54 1.46235603271793 71.7094634146342 3.167
55 1.16143754203697 69.6121951219512 1.335
56 2.07224626687044 66.3355853658537 3.58
57 1.25327886600475 53.227 5.803
58 1.85473161438438 78.1204878048781 1.15
59 2.04330013278184 49.7752682926829 6.693
60 1.30775301295257 76.6934146341464 1.76
61 1.11993257822338 66.840243902439 3.244
62 1.04319758352454 66.8677073170732 4.608
64 2.05157805714514 77.9536585365854 1.75
65 1.14276453829213 60.8794390243903 4.625
66 2.03753467524307 77.0878048780488 1.72
67 1.04154950790415 72.0596829268293 2.988
68 1.29206256687531 70.6292926829268 1.815
69 1.5636010384466 57.9684878048781 4.957
71 1.14193445422159 53.9596341463415 5.885
72 1.3868943235754 46.0488292682927 6.313
73 1.0911485901749 48.4 5.888
74 1.44505931894794 77.6853658536585 1.3
75 1.43465402962786 65.5438048780488 5.148
76 1.05100171933891 73.3745609756098 3.042
77 1.14639815255791 43.885512195122 6.214
78 1.11570811243432 62.6478780487805 2.509
79 1.34492895885167 79.6268292682927 1.191
80 1.32526925038986 69.0545365853659 4.493
81 1.28816762955355 72.3653658536585 1.67
82 1.38430484781083 57.4610731707317 4.779
83 1.43670628743537 70.3287804878049 1.46
84 2.90996435221111 64.3278048780488 2.635
85 1.25920596003023 75.7853658536585 1.91
86 1.32436780983604 78.1048780487805 2.9
88 5.24404755635221 60.1786097560976 3.43
89 1.62359307585825 71.3117804878049 5.517
90 2.06633756687358 68.6031951219512 2.954
91 1.06955652601443 78.7778048780488 2.12
92 2.02581330873427 78.3319512195122 1.21
93 1.05041257802903 76.6299024390244 1.42
94 1.21521413756854 70.2552682926829 2.712
95 1.28268807193904 71.5610975609756 4.532
96 2.52564175204698 80.200243902439 1.425
97 1.72219260489103 55.2363170731707 5.165
98 1.29245205557986 66.5439024390244 2.99
99 1.45292148190728 56.2572682926829 4.678
101 1.09327217906894 56.9421463414634 5.253
103 1.63825269041959 65.2720731707317 2.266
104 1.91787100123639 73.8210975609756 1.58
105 1.19486133897579 68.6856097560976 2.6981
106 1.17088635871609 73.3956585365854 2.64
108 1.53683648497301 64.109756097561 2.13
109 1.3035753840963 58.8955853658537 5.175
110 1.23812149699573 70.015487804878 2.797
111 1.05116513048309 71.5487804878049 2.5
113 1.58244608945327 69.178243902439 2.208
114 1.20134552896902 42.6270731707317 6.089
115 1.18108573024161 55.2516097560976 4.475
116 1.25792112904167 70.1080487804878 1.49
117 1.08676201989574 76.519512195122 1.76
118 1.21293583407668 68.7765853658537 1.16
119 1.2989912269915 71.1337804878049 3.423
120 1.70992651710705 67.0483658536585 3.151
122 1.26028332191545 66.6181219512195 1.801
123 1.10592978373593 75.6843170731707 1.821
125 1.50677007021327 55.8030731707317 5.924
127 1.19084027091574 72.2501951219512 1.884
128 1.41298242098615 46.0130487804878 6.928
129 1.92256584466749 60.5264146341463 2.761
130 1.20673375812657 61.4990731707317 2.649
131 1.0857973036554 77.6284390243902 1.178
133 1.21060144637836 56.7314634146341 5.52
134 1.08221202706468 77.290243902439 2.1
135 1.14439513990027 70.3229268292683 2.12
136 1.06708345400688 66.2518536585366 4.007
137 1.43334670877038 46.4121463414634 6.267
138 2.34125796427505 73.0942926829268 2.811
139 1.62718490640532 71.368512195122 3.253
140 1.55189111328867 45.9108292682927 5.937
141 1.17726940468791 59.9579024390244 4.469
142 1.05922001674882 71.9975609756098 2.645
143 1.41915366020115 45.2253414634146 7.669
144 2.43438015571955 45.1332195121951 6.051
145 1.29648211465272 67.7819024390244 3.878
146 1.53601879619466 77.4356097560976 1.53
147 1.28452640347806 78.1504878048781 1.89
148 1.62504818402109 58.273512195122 4.589
149 1.26255790581614 76.7878048780488 1.96
150 1.20034088020813 73.2905365853659 4.992
151 1.22793644699048 73.4658536585366 2.797
152 1.67145588081196 68.4920975609756 3.226
153 1.06260535114903 71.1503902439024 2.718
154 1.29910467758392 57.6308536585366 4.654
155 2.14779147933812 66.1806341463415 3.962
156 2.55164171496391 62.282 5.208
157 1.8454364393231 72.2463414634146 1.58
158 1.26229888413594 74.4918292682927 1.94
159 1.21854563839715 69.9606097560976 6.076
160 1.43130337703891 75.2609756097561 1.43
162 1.30128366923926 69.0798048780488 4.005
163 1.09667566905007 75.4958048780488 3.514
164 1.64692964547428 69.1048780487805 1.3
166 2.65359475086839 66.1941463414634 1.277
167 1.33107668871683 33.9758048780488 6.005
168 1.59053076201355 70.6956097560976 4.795
169 1.08184558546576 60.2965853658537 5.077
171 1.68370777571006 54.7103414634146 5.608
172 1.40435080399305 78.9590243902439 1.6
173 1.26038826108273 76.7463414634146 1.696
174 1.19148999853638 74.4585365853658 1.28
175 1.31514561268457 72.6536585365854 1.47
176 1.26909284405773 37.4188780487805 5.858
178 1.40661717329474 54.6045365853659 5.943
179 1.34614852043778 45.4279268292683 6.487
180 1.08964828349678 67.8359756097561 2.718
182 1.04806139594329 61.8036341463415 4.902
183 1.32762538740465 69.1112926829268 3.432
185 1.52230399890066 73.1129512195122 4.176
186 1.13447316507046 55.008 4.712
188 1.36527835291538 49.5858536585366 6.632
189 1.28487880116404 54.2111707317073 5.565
190 2.04990562893358 72.2539268292683 1.821
191 1.32919210882388 62.5613170731707 4.463
192 1.12627575006242 52.314756097561 6.627
193 1.28080560874125 63.207756097561 3.325
194 1.40999441152728 71.5536585365854 2.51
195 1.04051699618214 70.238512195122 4.391
196 2.04885056745101 66.7459756097561 2.667
197 1.15215752957369 68.9129024390244 1.801
199 1.7547045675052 49.5676341463415 5.828
200 1.97205091167591 67.3107317073171 1.3
201 1.62936293052746 44.791756097561 6.994
202 3.23295752333636 75.9965853658537 1.976
203 1.24488889654858 73.5280487804878 2.5
204 1.65554130493456 66.4326341463415 3.32
205 1.04314098772426 70.1001951219512 2.641
206 1.64603972782029 72.379512195122 3.022
207 1.04314420538402 76.5365609756098 2.704
208 2.16358277666181 69.9898536585366 2.473
209 1.0551418013849 65.8994878048781 4.667
210 1.05505345109154 67.9542682926829 4.677
211 1.5368493407149 57.7237804878049 7.373
212 1.86036562421949 59.0627073170732 3.04
213 1.40963334287711 43.0084878048781 6.209
214 1.4681041230067 51.1242682926829 4.235
group size x y
2 1.21943293503407 73.9208292682927 3.055
3 1.59323381464176 44.4298048780488 8.004
4 1.03460733847757 74.7317073170732 1.7
5 1.24803301196082 72.6960731707317 2.478
6 1.24069859064654 69.4916341463415 1.838
7 1.48643366282222 43.0616341463415 6.963
8 1.81268975997974 73.0673902439025 2.657
10 1.38385144320317 77.3875609756098 1.36
11 1.58531495191949 78.4804878048781 1.778
12 1.03797717129577 73.6148048780488 1.979
13 1.38070935996915 65.4623902439024 2.07
14 1.25555593257298 71.3479512195122 1.508
15 1.06898069382551 75.1273902439024 1.641
16 2.52068575521665 63.1965609756098 3.463
17 1.43394277153534 77.3707317073171 1.6
18 1.44413946239503 49.3699756097561 6.432
19 1.3920581055967 70.3512195121951 1.09
20 1.10448947887052 73.4134634146341 2.913
21 1.34315555901751 45.0267073170732 6.136
22 1.34293239926823 51.6740731707317 6.2
24 1.07481150320898 75.4809024390244 2.677
25 1.38410402984492 61.8657317073171 4.39
26 2.75769721960094 69.1090975609756 2.451
27 1.07190243277119 70.6627073170732 2.357
28 1.09750209650064 58.5621463414634 4.256
29 1.17474766304954 55.6515365853659 3.746
30 1.43257047089718 68.4609756097561 1.23
31 1.06248727659557 73.3007073170732 3.905
32 1.74491381428711 78.4804878048781 1.55
33 1.90316768406792 45.4100243902439 7.068
34 1.25149437458502 44.8916341463415 5.55
35 1.23051258548851 54.2834146341463 5.026
36 1.36203582561998 79.079512195122 1.48
37 1.52751990753771 50.4899268292683 5.371
38 1.5245344853863 75.6698048780488 2.254
39 1.52165012404887 51.1915365853659 5.175
40 5.77152315411568 70.7663170731707 1.799
41 1.83748461277488 70.085243902439 2.775
42 1.25993720628505 77.229512195122 2.616
43 1.45156347100688 75.7064146341463 1.61
44 1.08711723675319 68.0370487804878 4.221
46 1.12785686900725 77.5471707317073 1.945
47 1.43655565207898 73.8248780487805 1.17
48 2.2321728447586 77.0731707317073 1.35
49 1.11221884234793 53.1036585365854 5.196
50 1.31253977131195 75.9451219512195 1.752
51 1.03421035596614 75.9512195121951 1.9
52 1.39074412452592 70.1156097560976 3.014
53 1.74935156595885 69.0256585365854 3.012
54 1.46717754198548 72.1573902439024 3.113
55 1.16051430607739 69.809756097561 1.24
56 2.08058998042792 67.0653170731707 3.512
57 1.25643639295479 54.0065365853659 5.713
58 1.85585938088999 78.6041463414634 1.15
59 2.05887707425887 50.2389512195122 6.561
60 1.30821162008878 76.8785365853659 1.75
61 1.1205829327214 67.0375609756098 3.209
62 1.04323270421337 66.9716097560976 4.544
64 2.05344013493793 78.3048780487805 1.77
65 1.14461391180755 60.6049512195122 4.472
66 2.03887181129736 77.2109756097561 1.72
67 1.04162272334498 72.4058780487805 2.87
68 1.2893726397171 70.8139512195122 1.756
69 1.57012015964855 57.9551219512195 4.866
70 1.02995376904483 65.2853658536585 2.683
71 1.14394515512982 54.2402682926829 5.831
72 1.39168993018104 46.4883414634146 6.232
73 1.09264897444926 48.5115365853659 5.872
74 1.44645720188923 78.1365853658537 1.31
75 1.43962939270425 66.1061463414634 5.058
76 1.05140765310978 73.5725365853659 3.01
77 1.14804555674149 44.1151951219512 6.115
78 1.11596329301096 63.0444390243902 2.5
79 1.34636942107289 80.1268292682927 1.127
80 1.3289213264067 69.464 4.366
81 1.29066181718862 72.4951219512195 1.69
82 1.38788862392688 57.7314878048781 4.665
83 1.43626629572889 70.7024390243902 1.38
84 2.92421749774398 64.6694390243903 2.579
85 1.26051159584798 75.969756097561 1.92
86 1.32845058295027 78 2.94
88 5.28163278802557 60.5357317073171 3.349
89 1.63355309329874 71.264243902439 5.443
90 2.07585604878273 68.9196585365854 2.727
91 1.06985021420702 78.8853658536585 2.04
92 2.02608474381594 78.6285365853659 1.22
93 1.05057331804456 76.8315365853659 1.411
94 1.21624992875051 70.2712926829268 2.683
95 1.28704139852957 71.6986097560976 4.377
96 2.52764222128655 80.4241463414634 1.388
97 1.73183425121873 54.3371219512195 5.102
98 1.29459603380293 66.8926829268293 2.79
99 1.45911824704895 56.4922682926829 4.45
100 1.03630216821243 60.4390243902439 4.2
101 1.09446306538443 57.1764634146341 5.27
102 1.0259420627378 70.0363414634146 2.4
103 1.64149697116152 64.6018048780488 2.224
104 1.92218630209926 74.2478048780488 1.54
105 1.19613945787797 68.8209756097561 2.4573
106 1.17361329617033 73.4910487804878 2.722
108 1.53261022678032 64.4634146341463 2
109 1.30691441356225 59.5695609756098 4.938
110 1.2389646918633 70.1771951219512 2.711
111 1.0515313599102 71.76 2.6
113 1.5861207697055 69.316243902439 2.184
114 1.20890210985601 43.1993414634146 6.031
115 1.18223107068907 53.3281707317073 4.394
116 1.25696937961867 70.9090243902439 1.47
117 1.08731757043671 76.880487804878 1.71
118 1.21187398219231 69.3492682926829 1.11
119 1.30167186700042 71.5680975609756 3.302
120 1.71505937967115 67.47 3.024
122 1.25999541068685 66.5851463414634 1.73
123 1.10584570532118 75.5166829268293 1.826
125 1.51486108359905 56.7700487804878 5.841
127 1.19163778034289 72.414756097561 1.829
128 1.41832821414293 46.3265365853659 6.901
129 1.92928868141185 60.9234878048781 2.675
130 1.20758813345541 61.8036097560976 2.514
131 1.08652767849937 77.8612926829268 1.116
133 1.21373853580856 56.800756097561 5.443
134 1.08249846708862 77.4365853658537 1.95
135 1.14530799821987 70.4048780487805 2.04
136 1.06786360970435 67.2816097560976 3.692
137 1.43867313095222 46.1964634146342 6.216
138 2.35339534381995 73.4260487804878 2.73
139 1.63519047977844 71.5690975609756 3.204
140 1.55940606063678 46.3554878048781 5.879
141 1.17999758518471 59.4344878048781 4.351
142 1.05994105098455 71.7390243902439 2.7
143 1.42681174952492 45.9906097560976 7.629
144 2.4524178205704 45.2537073170732 6.006
145 1.29935989241626 68.2414878048781 3.702
146 1.53740086591933 77.7943902439024 1.53
147 1.28530015664025 78.1426829268293 1.86
148 1.63287652752989 59.09 4.472
149 1.2642899017901 77.3341463414634 1.95
150 1.20042054901601 73.5148292682927 4.629
151 1.23030995135847 73.6514634146342 2.786
152 1.67727280256854 69.0008780487805 3.142
153 1.06326003852541 71.444756097561 2.64
154 1.30309428226665 57.9062926829268 4.631
155 2.16059022883785 66.339756097561 3.923
156 2.57245957477324 62.5123170731707 5.042
157 1.84571323029478 72.6463414634146 1.513
158 1.26352297494858 74.8102195121951 1.9
159 1.22350819283884 70.2336097560976 5.892
160 1.43201643136236 75.4121951219512 1.46
162 1.3046307447765 69.2955609756098 3.921
163 1.09829098230538 75.7043902439025 3.398
164 1.64599875689999 69.0048780487805 1.32
165 1.37609632486368 72.0390243902439 1.6
166 2.65115842506801 66.9507317073171 1.23
167 1.34587016938599 37.7641951219512 5.958
168 1.59385163393969 70.8991219512195 4.594
169 1.08301567097117 60.9086097560976 4.968
170 1.03594194808658 71.4146341463415 2.1
171 1.69232563418874 55.192512195122 5.546
172 1.40446668927916 79.1975609756098 1.52
173 1.26480414621821 77.0487804878049 1.635
174 1.19136081950897 74.7073170731707 1.25
175 1.31543708166157 72.7048780487805 1.43
176 1.26938862163754 37.7990243902439 5.843
178 1.41167823865301 54.8635365853659 5.834
179 1.35125004987332 46.2216829268293 6.492
180 1.09026934212657 67.8555121951219 2.745
182 1.04838878271421 61.9429756097561 4.827
183 1.32899185591915 69.2559512195122 3.323
185 1.52973231066178 73.3662682926829 4.023
186 1.13599607890755 53.4418048780488 4.57
188 1.37148418849227 49.304512195122 6.629
189 1.28849793725069 54.3658536585366 5.446
190 2.05557405488006 72.2792926829268 1.785
191 1.3312891183486 62.8129512195122 4.348
192 1.12580568286393 53.3393902439025 6.832
193 1.28304766287156 63.3954878048781 3.159
194 1.41282200821353 71.9024390243902 2.38
195 1.04059822923119 70.3636829268293 4.34
196 2.05702380387669 67.4328048780488 2.596
197 1.15229808544047 68.7973658536585 1.745
199 1.76451922824334 49.6445365853659 5.78
200 1.96763201208398 67.2953658536585 1.3
201 1.63923804777971 44.8901951219512 6.967
202 3.24644040011507 76.4292682926829 1.971
203 1.24575519213828 73.6634146341463 2.4
204 1.66175178243226 66.5741951219512 3.082
205 1.04312446662475 70.168243902439 2.576
206 1.65264342798872 72.5695121951219 2.98
207 1.04320036852352 76.8025609756098 2.584
208 2.17269520201843 70.5063170731707 2.302
209 1.05567660528038 66.3300975609756 4.616
210 1.05520704934266 68.3705365853659 4.661
211 1.54555967398243 58.1306829268293 7.128
212 1.87026721372706 58.0911219512195 2.983
213 1.41517118461283 42.5896097560976 6.19
214 1.47203579457721 49.1889024390244 4.118
group size x y
2 1.22544504752187 74.1570487804878 2.906
3 1.6006075828067 44.7213414634146 7.939
5 1.24781423128761 73.1978048780488 2.409
6 1.23974725858352 69.9855365853659 1.762
7 1.49297535930534 43.7143170731707 6.925
8 1.81744228294779 73.2864634146342 2.596
10 1.38406229702243 77.5731707317073 1.37
11 1.58837433405084 78.6317073170732 1.762
12 1.03842028982979 73.6422926829268 1.94
13 1.3825221189225 65.9233658536585 2
14 1.25932414720172 72.7164878048781 1.487
15 1.06908311709564 75.2156341463415 1.614
16 2.53602492392601 63.7219756097561 3.344
17 1.43440665551681 77.4731707317073 1.6
18 1.45040583354135 49.6103414634146 6.372
19 1.39075099294625 71.0609756097561 1.11
20 1.10625802933921 73.5431707317073 2.84
21 1.34525538277295 45.3384390243903 6.026
22 1.34789418852082 51.9958292682927 6.12
24 1.07571038556062 75.7363658536586 2.569
25 1.38821873658581 62.235756097561 4.302
26 2.7710562214386 69.471243902439 2.427
27 1.07229790006456 70.9828536585366 2.263
28 1.09868995293927 59.5100487804878 4.048
29 1.17658098330878 53.8417073170732 3.631
30 1.43154232217867 68.4073170731707 1.27
31 1.06345708187906 73.3726341463415 3.8
32 1.74814564841597 78.6624390243902 1.53
33 1.91216607833182 45.3557804878049 7.026
34 1.25418126884753 44.3725609756098 5.522
35 1.23382204985924 54.188243902439 4.995
36 1.36257466589351 79.3243902439025 1.47
37 1.53439290497119 50.2942195121951 5.289
38 1.52805050705475 76.0330243902439 2.192
39 1.52867230946963 50.786756097561 5.094
40 5.79447088347224 70.9270975609756 1.776
41 1.84481977478976 70.4051951219512 2.727
42 1.26321216802941 77.4303658536586 2.548
43 1.45237571447448 75.9403414634147 1.615
44 1.08800189797596 68.4878048780488 4.05
46 1.12910350817755 77.6860975609756 1.86
47 1.43634874313242 74.5146341463415 1.16
48 2.2322661548266 77.4756097560976 1.36
49 1.11320618543368 53.343512195122 5.058
50 1.31310860973577 76.1390243902439 1.72
52 1.39395292972147 70.3715609756098 2.966
53 1.75519468666491 69.3383658536585 2.845
54 1.47196993476171 72.5912682926829 3.06
55 1.1597410695505 69.3585365853659 1.28
56 2.08903885615112 67.7735853658537 3.447
57 1.26030472554545 54.735756097561 5.62
58 1.85735780074711 78.6658536585366 1.16
59 2.07423257555103 50.7086829268293 6.414
60 1.30862160082294 77.0907317073171 1.7
61 1.12115855324481 67.2308536585366 3.171
62 1.04317486836701 67.0729024390244 4.471
64 2.05538323463394 78.4560975609756 1.78
65 1.14646514503758 60.2926829268293 4.322
66 2.04038677774541 77.190243902439 1.71
67 1.04166205957585 72.7436829268293 2.762
68 1.28795237765966 71.0381219512195 1.703
69 1.57658257298214 58.001243902439 4.786
70 1.02998464922731 65.3365853658537 2.39
71 1.14600607436245 54.5374146341464 5.772
72 1.39546960506564 46.9789024390244 6.15
73 1.09416034287385 48.5871951219512 5.847
74 1.44766563407067 77.8390243902439 1.26
75 1.44468314275996 66.6674146341464 4.97
76 1.05176090418688 73.77 2.972
77 1.14970308388574 44.3603170731707 6.02
78 1.11623965051198 63.4786341463415 2.49
79 1.34781988228104 80.1317073170732 1.017
80 1.3324874557108 69.8213658536585 4.239
81 1.28839234797937 72.3170731707317 1.45
82 1.39143495667946 57.9648780487805 4.547
83 1.43575866867154 70.5578048780488 1.32
84 2.93830816930575 65.0035609756098 2.53
85 1.26187660143005 76.1953658536585 1.94
86 1.33223261878766 78.1487804878049 2.98
88 5.31883495613375 60.8953414634146 3.27
89 1.6436047667039 71.1406585365854 5.374
90 2.08588116537218 69.1880243902439 2.525
91 1.07023589158715 79.6024390243903 2.05
92 2.02623239685821 78.4268292682927 1.21
93 1.05074868695103 77.0472195121951 1.405
94 1.21721970135136 70.3109512195122 2.655
95 1.29145671941945 71.8290243902439 4.226
96 2.52957352124811 80.5014634146342 1.384
97 1.74136519384698 53.5119756097561 5.059
98 1.29686795596604 67.0512195121951 2.648
99 1.4649146319832 56.7671463414634 4.227
101 1.09567995031664 57.4112926829268 5.289
103 1.64443555179931 64.3568292682927 2.182
104 1.92552207090195 74.8106097560976 1.47
105 1.19039326612185 68.9512195121951 2.5677
106 1.17814945130396 73.5823902439025 2.749
108 1.52803107269525 64.5609756097561 1.8
109 1.31003971277822 60.2065609756098 4.696
110 1.23978801805021 70.331756097561 2.613
111 1.05190213767037 71.4536585365854 2.1
113 1.589521433668 69.6771463414634 2.173
114 1.21727529098948 43.958756097561 5.971
115 1.18324041406488 51.3218292682927 4.302
116 1.25603831043291 71.219512195122 1.46
117 1.08787224160607 77.0170731707317 1.68
118 1.21087433395307 69.0121951219512 1.09
119 1.30426502882519 71.9441219512195 3.207
120 1.71997692134137 67.8811707317073 2.906
122 1.25975025886891 66.6219268292683 1.667
123 1.10577004760115 75.3196585365854 1.828
125 1.52308196136176 57.7461219512195 5.749
127 1.1926698957189 72.5796097560976 1.774
128 1.42382518267881 46.6339756097561 6.872
129 1.93580622015228 61.2765853658537 2.59
130 1.208473191455 62.175756097561 2.394
131 1.08724971224877 78.0901707317073 1.053
133 1.21694374466603 56.8660731707317 5.366
134 1.082753838605 77.1804878048781 1.88
135 1.14607894854362 70.6073170731707 1.97
136 1.06862653771649 68.3257317073171 3.404
137 1.44487227954734 46.0350243902439 6.17
138 2.36504037482447 73.7318780487805 2.664
139 1.64314271094427 71.7647073170732 3.157
140 1.56657493741414 46.7275365853659 5.82
141 1.18263892310151 58.8318536585366 4.24
142 1.06045728349178 74.3756097560976 2.6766666667
143 1.43467921704249 46.7603414634146 7.587
144 2.47070382807164 45.4861463414634 5.963
145 1.30206958437115 68.7016585365854 3.535
146 1.53906113771584 77.8829268292683 1.63
147 1.28615222886913 78.3292682926829 1.81
148 1.64055275529289 59.9060975609756 4.35
149 1.2654673400253 78.0853658536585 1.92
150 1.20011611270367 73.7308048780488 4.277
151 1.23270096596561 73.84 2.776
152 1.68294658466612 69.5046341463415 3.064
153 1.06393610654403 71.7561219512195 2.571
154 1.30714927983703 58.189512195122 4.599
155 2.17337563916052 66.4953902439025 3.888
156 2.59316809616331 62.7351707317073 4.861
157 1.84586445845009 72.9975609756098 1.44
158 1.26428293338528 75.229512195122 1.9
159 1.22639009303884 70.4820975609756 5.709
160 1.43283332709528 75.7121951219512 1.48
162 1.30793789617865 69.5309756097561 3.839
163 1.1002372836157 75.9079756097561 3.3
164 1.64533033469412 69.8073170731708 1.32
166 2.64888688576102 66.7839024390244 1.24
167 1.36409419839511 41.2739268292683 5.909
168 1.5973030305548 71.0942682926829 4.39
169 1.08419257866862 61.5436341463415 4.872
171 1.70013554601899 55.7400243902439 5.481
172 1.40457906446199 79.3390243902439 1.5
173 1.26935038304658 77.4 1.494
174 1.19115144362002 74.8073170731708 1.23
175 1.31564898334007 72.5512195121951 1.37
176 1.27053894468316 38.3254878048781 5.816
178 1.41667741367864 55.1385609756098 5.73
179 1.3573032305859 46.9949756097561 6.499
180 1.09089756069564 67.8710487804878 2.757
182 1.048697818557 62.0802682926829 4.748
183 1.33010930778633 69.3890487804878 3.201
185 1.53706686537892 73.6000243902439 3.881
186 1.13748058743928 51.7945365853659 4.441
188 1.37792962542482 49.0171707317073 6.624
189 1.29220860680038 54.5170731707317 5.329
190 2.06165944795711 72.3302926829268 1.755
191 1.33339864243953 63.1042682926829 4.237
192 1.12510096912518 54.334512195122 6.986
193 1.28498000927476 63.577243902439 3.021
194 1.41546556555216 72.0512195121951 2.23
195 1.04069317520742 70.4928536585366 4.3
196 2.06518541322535 68.1190487804878 2.524
197 1.15241149335053 68.6610487804878 1.7
199 1.77405057562869 49.8008536585366 5.741
200 1.96331695123002 67.9682926829268 1.2
201 1.64923509125774 45.1448780487805 6.937
202 3.25957253510043 76.5804878048781 1.999
203 1.24654953777779 73.9541463414634 2.38
204 1.66710037718401 66.714756097561 2.815
205 1.04310772450988 70.2315853658537 2.509
206 1.65916932249952 72.7292682926829 2.9
207 1.04323891161091 77.0592926829268 2.472
208 2.18173109811656 71.0015609756098 2.162
209 1.05618458232341 66.7511951219512 4.562
210 1.05533898682082 68.7648048780488 4.638
211 1.55357897727119 58.5965853658537 6.896
212 1.88055995907043 57.0176097560976 2.937
213 1.42086962589329 42.2550731707317 6.171
214 1.47562345517853 47.3995609756098 4.017
group size x y
2 1.14159041766806 69.0996097560976 5.344
3 1.4897026403324 39.5269512195122 7.763
5 1.22731928170725 70.0004634146341 3.985
6 1.24101493086811 70.6587317073171 2.373
7 1.38225275049449 40.2902195121951 7.201
8 1.72684083468735 69.7417804878049 3.27
10 1.37409982071448 72.7580487804878 1.67
11 1.52549590798245 74.6634146341463 1.935
12 1.03133303859223 72.4623414634146 2.377
13 1.34024048186982 64.7164390243903 3.179
14 1.27650371985339 70.5480731707317 2.05
15 1.06695047083477 72.2553902439025 1.96
16 2.25250473087001 55.8089268292683 6.232
17 1.42701467556921 73.6217073170732 1.67
18 1.3593739802192 46.7850487804878 7.074
19 1.40549627608475 71.5719512195122 2.01
20 1.08237374259873 70.2622926829268 4.803
21 1.27988475977292 47.225512195122 6.597
22 1.26571843207386 45.5922682926829 7.025
24 1.05955163921753 71.035756097561 4.103
25 1.31875896215487 52.738243902439 5.423
26 2.51864854782302 62.8944390243903 3.966
27 1.06202944244545 67.9644634146342 2.994
28 1.08780713083482 46.9834878048781 6.501
29 1.13785905162835 60.9659512195122 6.125
30 1.42377353795151 70.3248048780488 2.02
31 1.05091200137114 70.4672926829268 5.684
32 1.67877620254418 75.4785365853659 1.7
33 1.70761805205085 45.9631951219512 6.638
34 1.20778081352558 49.1763414634146 5.955
35 1.18466722971707 56.4593414634146 6.112
36 1.34273731231547 75.6931707317073 1.55
37 1.39949644764508 51.9206585365854 7.501
38 1.45845784493203 69.8580731707317 2.656
39 1.4125113155926 51.5930731707317 6.425
40 5.28902909177642 67.2629268292683 2.589
41 1.71399538722616 66.0129756097561 3.867
42 1.2110854542228 73.0736829268293 3.577
43 1.42760476131302 73.7679024390244 1.843
44 1.0741314997545 60.4391951219512 6.274
46 1.11232402316733 74.9424878048781 2.385
47 1.43648060114181 70.7221951219512 2
48 2.2046244047521 73.0891951219512 1.43
49 1.08247658939875 48.4219024390244 6.65
50 1.30766275561642 74.2304878048781 1.437
52 1.33198366337853 63.3813414634146 4.302
53 1.60989035596562 60.3363170731707 6.757
54 1.38733537389504 63.5484146341463 4.917
55 1.16551757406662 68.9780487804878 2.07
56 1.92210255253902 56.733512195122 5.31
57 1.2145173117377 43.9432926829268 6.509
58 1.83570579600279 75.5285365853659 2.031
59 1.81727337366545 43.7784634146342 6.873
60 1.29783166190496 73.7465853658537 1.65
61 1.10913069809523 63.2964634146341 3.864
62 1.03546057312959 65.2895853658537 6.129
64 2.01351524012194 74.3 1.85
65 1.11680339846424 55.6982682926829 5.185
66 2.02105278775531 74.0268292682927 1.81
67 1.03920688929506 65.1253170731707 4.244
68 1.28850464155421 69.3865609756098 2.296
69 1.45348346995203 53.4090731707317 6.468
71 1.10694178984383 48.3959756097561 6.324
72 1.29069607454417 39.3296829268293 6.948
73 1.06455953124233 43.1603902439024 5.751
74 1.42419590098941 74.6970487804878 2.091
75 1.36426816846275 57.7413170731707 6.152
76 1.04279811147555 69.6865365853659 3.173
77 1.12354308632671 40.4640487804878 6.423
78 1.11923723881108 59.768243902439 3.432
79 1.30951696462623 75.3243902439025 1.933
80 1.26322148527119 60.2024878048781 6.19
81 1.29180579041038 70.3443902439025 1.993
82 1.3280551430825 51.2982682926829 6.122
83 1.44511493932017 69.1392682926829 1.877
84 2.65992581565737 58.0936097560976 4.301
85 1.25253240777746 72.7777804878049 3.07
86 1.27033810446152 74.2609756097561 3.186
88 4.63810510175308 55.7375853658537 4.598
89 1.50973449797914 56.3282195121951 6.481
90 1.86508334639644 51.1549024390244 6.516
91 1.06427896091046 76.5214634146341 2.33
92 2.02257296688087 74.3539024390244 1.617
93 1.04741487061125 73.5739268292683 1.441
94 1.19970711236096 70.6883414634146 3.643
95 1.20451257515927 67.4825609756098 7.167
96 2.47560783564361 76.4143902439025 1.74
97 1.5591833239441 58.2286585365854 7.366
98 1.26092438332397 63.2290487804878 4.046
99 1.35357146780009 41.9405853658537 6.255
101 1.07653514335391 52.3626585365854 7.102
103 1.57101027875138 68.0829024390244 2.756
104 1.84651540137875 66.3092682926829 2.66
105 1.16907640672115 65.9326829268293 4.5758
106 1.1628056737626 70.7508292682927 5.362
108 1.52801940508627 66.7060975609756 2.95
109 1.24745056323501 49.1267073170732 6.315
110 1.21971785190535 66.7488536585366 4.021
111 1.04554423154433 69.4666097560976 4.512
113 1.52408512845868 68.6451219512195 3.319
114 1.19018876162581 43.7965365853659 6.973
115 1.15708516453872 54.2439756097561 5.542
116 1.25179645378216 70.4607317073171 1.98
117 1.08136769962711 72.2386585365854 1.55
118 1.215622161443 68.7863414634146 1.88
119 1.2433527957659 60.9770487804878 7.308
120 1.61247824316876 58.4294390243902 5.537
122 1.2516513436234 64.8414634146342 2.51
123 1.10317319860399 73.7939024390244 2.245
125 1.40759912217348 48.5883902439024 6.359
127 1.18772526783375 69.6719024390244 2.387
128 1.35627965527342 40.1114390243902 7.059
129 1.8080976695682 55.1745853658537 4.449
130 1.17873389708776 57.4783658536585 6.031
131 1.06730368371119 73.5617073170732 1.777
133 1.17052996457601 53.4715609756098 6.37
134 1.07592619151548 73.1668292682927 1.87
135 1.13410288447981 67.4235853658537 2.532
136 1.05302980789974 53.6889024390244 7.146
137 1.34408099137694 44.7113902439025 7.39
138 2.15367493151039 67.0399512195122 4.509
139 1.51217319163541 67.7011219512195 3.753
140 1.47967527210266 42.8267317073171 6.474
141 1.13786724130557 58.2871707317073 6.362
142 1.05025961060545 66.7024390243903 3.198
143 1.333003937005 39.6613902439024 7.725
144 2.1838692673257 45.6439024390244 6.782
145 1.2484885060298 58.8390975609756 6.018
146 1.51338447191387 75.9343902439025 1.563
147 1.27521352509769 75.8690243902439 1.7
148 1.52180625614898 48.7263170731707 5.791
149 1.2402077925175 73.6219512195122 2.01
150 1.1498375423955 61.8253902439024 8.338
151 1.19386490564205 70.3029512195122 3.64
152 1.57332451626255 60.618 4.866
153 1.0524650336484 65.2317804878049 3.897
154 1.24701870746998 53.5312926829268 5.609
155 1.94950381847643 63.387 5.078
156 2.23740655628552 58.2423658536585 6.508
157 1.81505276029808 71.0512195121951 2.235
158 1.24469862154912 73.877 2.548
160 1.42684949790684 71.6146341463415 2.144
162 1.24655997263602 66.8340731707317 5.213
163 1.06672630158743 71.5961463414634 5.659
164 1.64400711582653 69.3682926829268 2.36
166 2.60936064739935 67.2639024390244 1.91
167 1.31338673566625 49.0020975609756 8.293
168 1.44036786574685 63.1418292682927 7.14
169 1.06538283896704 58.8833658536585 6.632
171 1.52563734108294 49.6753658536585 6.404
172 1.39225716355852 76.0260975609756 1.63
173 1.2162041893172 71.9121463414634 1.723
174 1.18748034173437 71.2048780487805 1.992
175 1.30447376354784 70.6292682926829 2.29
176 1.24520228405533 43.5598292682927 5.538
178 1.32527129892425 48.1312195121951 7.378
179 1.33996260183432 43.3615609756098 6.791
180 1.08152813858926 66.2125853658537 3.815
182 1.04069317520742 59.644 6.348
183 1.29579006143871 56.9774390243903 5.004
185 1.41421583356192 66.7373414634147 6.976
186 1.10658647964477 54.9031707317073 6.618
188 1.2918982876639 48.365756097561 6.759
189 1.22783597690164 49.9946829268293 7.16
190 1.9456278441848 66.3608536585366 3.202
191 1.27286313152688 62.4504146341463 5.601
192 1.10325703323296 36.2978292682927 4.956
193 1.23263107936182 61.1438536585366 4.915
194 1.34812532065783 62.948756097561 5.173
195 1.03987997391517 67.7997317073171 5.532
196 1.91192148388667 57.3119756097561 4.328
197 1.14236622352061 67.4997073170732 3.3
199 1.5972914100255 50.6406097560976 6.618
200 1.96405698759475 68.9320243902439 1.93
201 1.4890771986188 49.9922195121951 7.101
202 3.06084163349415 74.0073170731707 1.812
203 1.23277592057924 70.5219024390244 2.665
204 1.55173899939563 65.5867317073171 4.968
205 1.04167893831619 66.1064390243902 3.832
206 1.53634720320445 68.535 4.104
207 1.04092200121246 71.7264634146341 3.878
208 2.00634067259159 56.9382926829268 5.194
209 1.04533751534475 59.1205609756098 5.503
210 1.05249941931917 60.468512195122 4.807
211 1.38990092585105 49.8860731707317 9.108
212 1.72306897786184 57.5596097560976 4.695
213 1.33412062872913 52.0375853658537 7.098
214 1.37418439097235 59.710487804878 6.967
group size x y
2 1.23112662941964 74.3887317073171 2.77
3 1.60811452350652 45.0098536585366 7.847
5 1.24753342682407 73.7218292682927 2.33
6 1.2390073659487 70.4924878048781 1.712
7 1.49992996131419 44.4390975609756 6.882
8 1.82201707193547 73.5034634146342 2.535
10 1.38443645346518 77.7756097560976 1.34
11 1.59174640848141 78.9317073170732 1.755
12 1.03883429390623 73.6753902439025 1.905
13 1.38420590924286 66.3554878048781 2.07
14 1.26326205537756 73.714 1.454
15 1.06919689152444 75.3094146341464 1.585
16 2.55094446204926 64.2339024390244 3.231
17 1.43490511463075 77.619512195122 1.62
18 1.4568142204806 49.8854878048781 6.314
19 1.38965615835047 71.4121951219512 1.23
20 1.10827482327616 73.6713658536585 2.775
21 1.34786173303941 45.6705609756098 5.904
22 1.35301712907114 52.291756097561 6.041
24 1.07659594141957 75.9883414634146 2.477
25 1.39230210576164 62.6008780487805 4.219
26 2.78424842962754 69.8144634146341 2.399
27 1.07274657603285 71.3034390243903 2.165
28 1.10007391743279 60.4560975609756 3.855
29 1.17829048683626 52.1589512195122 3.519
30 1.43081256559157 67.9073170731707 1.31
31 1.0644378566017 73.4443170731708 3.696
32 1.75124779287406 78.8829268292683 1.51
33 1.92153477180629 45.4424146341463 6.974
34 1.25676711630166 43.9533414634146 5.488
35 1.2370877812225 54.1409024390244 4.964
36 1.36344120902373 79.580487804878 1.48
37 1.54069029571362 50.1789024390244 5.22
38 1.53142444767992 76.4228292682927 2.135
39 1.53572788260785 50.406512195122 5.03
40 5.81527250071622 71.0833902439025 1.755
41 1.85208485481585 70.7118292682927 2.682
42 1.26639769276519 77.6227317073171 2.481
43 1.45314555610034 76.158 1.621
44 1.08886379992313 68.9563902439024 3.876
46 1.13034844841634 77.823512195122 1.781
47 1.43612571529231 74.6682926829268 1.13
48 2.23266449072451 77.7268292682927 1.36
49 1.11416107953486 53.5894146341464 4.926
50 1.31362779109073 76.3414634146341 1.73
52 1.39711970618128 70.6308292682927 2.926
53 1.76076052071065 69.6730487804878 2.715
54 1.47674086400708 73.0061463414634 3.007
55 1.15913147648137 70.0634146341463 1.32
56 2.09761629150922 68.4493658536585 3.382
57 1.26478261697685 55.4075853658537 5.526
58 1.85956949923105 78.7170731707317 1.19
59 2.0896712903997 51.1929268292683 6.253
60 1.308980512964 77.2912195121951 1.73
61 1.12163433015961 67.4201219512195 3.132
62 1.04308302875533 67.1726341463415 4.39
64 2.0581006546691 78.6073170731707 1.81
65 1.14831080536694 59.9720487804878 4.181
66 2.04212280268924 77.390243902439 1.68
67 1.04169292472374 73.0774634146342 2.666
68 1.2868317544585 71.2931951219512 1.659
69 1.58321305997578 58.1348048780488 4.716
70 1.02998464922731 65.4390243902439 2.34
71 1.14813748258495 54.8450731707317 5.708
72 1.39881797865004 47.522 6.07
73 1.09568391591801 48.6409512195122 5.814
74 1.44865064767686 77.9878048780488 1.24
75 1.44987287501242 67.2181219512195 4.884
76 1.05205970074829 73.9679512195122 2.927
77 1.151374864486 44.6193658536585 5.93
78 1.11651956212704 63.9464390243903 2.479
79 1.34948682599816 80.3829268292683 0.982
80 1.33601023143106 70.1256829268293 4.116
81 1.29008813884503 72.6419512195122 1.38
82 1.3949103371315 58.1718536585366 4.426
83 1.43514148648868 70.6770731707317 1.28
84 2.95237029110356 65.3307073170732 2.489
85 1.26335983387404 76.0736585365854 1.9
86 1.33649504201161 78.6585365853659 2.965
88 5.35568057414936 61.2558780487805 3.194
89 1.65365261089666 70.9688780487805 5.31
90 2.09559911667818 69.4518292682927 2.352
91 1.07067382671742 79.3512195121951 1.99
92 2.02631872238014 78.8268292682927 1.23
93 1.05093308294611 77.2779268292683 1.402
94 1.2179644011191 70.3762682926829 2.629
95 1.29411185474447 71.9533170731707 4.076
96 2.53102493095559 80.5707317073171 1.342
97 1.75099394368825 52.8132195121951 5.03
98 1.29908549365518 67.0024390243903 2.629
99 1.47035955854704 57.0888292682927 4.017
101 1.0969196584365 57.6450975609756 5.306
103 1.64725501006769 64.5495609756098 2.144
104 1.92881596906759 75.3734146341463 1.42
105 1.18020471921108 66.9512195121951 2.8781
106 1.18307852471796 73.6697073170732 2.714
108 1.52552101820146 65.519512195122 1.7
109 1.31292905868467 60.8110731707317 4.457
110 1.24143008055336 70.4836829268293 2.503
111 1.05225877576325 71.3048780487805 2.1
113 1.59377604703467 70.2517073170732 2.176
114 1.22496247948005 44.888756097561 5.91
115 1.1841473595729 49.3578292682927 4.2
116 1.25512970767894 71.5707317073171 1.46
117 1.08847836377653 77.7707317073171 1.74
118 1.21001517224118 69.7429268292683 1.16
119 1.30680026130286 72.2628536585366 3.135
120 1.72459746020808 68.2839024390244 2.798
122 1.25954452893107 66.7269756097561 1.613
123 1.10571928724527 75.1070487804878 1.825
125 1.53137709526119 58.7162926829268 5.651
126 1.02871582489355 67.5048780487805 5.71
127 1.19369364479079 72.7442195121951 1.72
128 1.42957146097247 46.9383902439024 6.841
129 1.94176465142922 61.5871463414634 2.507
130 1.20938474199169 62.616512195122 2.29
131 1.08795098434009 78.3155609756098 0.991
133 1.22022212521409 56.9314146341464 5.291
134 1.08295980093535 77.1487804878049 1.77
135 1.14701647935286 70.9609756097561 2.05
136 1.06936199993881 69.3642195121951 3.146
137 1.45132686203807 45.9636829268293 6.13
138 2.37610011530606 74.013243902439 2.615
139 1.65088078734617 71.9563414634146 3.11
140 1.57383572827789 47.0209756097561 5.758
141 1.1850266535112 58.2058536585366 4.134
142 1.0610989398012 73.8756097560976 2.6533333333
143 1.44270514245231 47.5220243902439 7.545
144 2.48924150847435 45.8295365853659 5.922
145 1.3046249118461 69.1685365853659 3.384
146 1.54085869259295 77.8365853658537 1.65
147 1.28713530165678 78.2829268292683 1.85
148 1.64794672789676 60.7158048780488 4.224
149 1.26616713055539 77.890243902439 1.94
150 1.20016938087202 73.9382682926829 3.943
151 1.23509809220144 74.0309024390244 2.764
152 1.68840832330775 69.9989268292683 2.993
153 1.06459507202006 72.0825365853659 2.509
154 1.31123268322586 58.4848780487805 4.557
155 2.18612185580215 66.6480243902439 3.852
156 2.61303328248418 62.9525365853659 4.669
157 1.84582933732565 73.0439024390244 1.37
158 1.26494673325524 75.731 1.97425
159 1.22930894699438 70.7060487804878 5.535
160 1.43374447367068 75.9634146341463 1.5
162 1.31121424689488 69.7825365853659 3.758
163 1.1022291012555 76.1070731707317 3.219
164 1.64482384870558 70.5121951219512 1.3
166 2.64557211850572 66.0436585365854 1.17
167 1.38106810877492 44.2348048780488 5.852
168 1.6025130129212 71.2890731707317 4.187
169 1.08537472564729 62.1908780487805 4.789
171 1.70794640187658 56.3422682926829 5.413
172 1.40473686778225 79.4414634146342 1.5
173 1.27043051838646 77.5512195121951 1.475
174 1.19121998659558 75.009756097561 1.21
175 1.31581031447869 72.9024390243902 1.33
176 1.27287462895835 38.9746829268293 5.776
178 1.42177199296112 55.4311219512195 5.634
179 1.3635698541728 47.6993414634146 6.504
180 1.09153622933264 67.8926341463415 2.751
182 1.04902850608037 62.2175365853659 4.665
183 1.33105527611943 69.533243902439 3.07
185 1.54399239651927 73.8162195121951 3.75
186 1.13878416099783 50.1620731707317 4.326
188 1.38469094142007 48.7388292682927 6.617
189 1.2959929854589 54.6672926829268 5.215
190 2.0679181615497 72.4094634146341 1.73
191 1.33565959829544 63.4207073170732 4.13
192 1.12474248264064 55.2896585365854 7.079
193 1.28673258782906 63.7454634146342 2.914
194 1.41818757866934 72.5 2.09
195 1.04079901648042 70.6250731707317 4.27
196 2.0732830983343 68.7947317073171 2.452
197 1.15254726528599 68.5199756097561 1.664
199 1.78361321534347 50.0409756097561 5.711
200 1.95878536202208 68.1939024390244 1.2
201 1.6595216250868 45.5481463414634 6.903
202 3.27258399437049 76.5829268292683 2.0075
203 1.24719458032198 74.1539024390244 2.25
204 1.6707065739296 66.8443170731707 2.72
205 1.04309827737081 70.2980731707317 2.442
206 1.66562826442858 72.8641463414634 2.85
207 1.04325196564279 77.3061707317073 2.372
208 2.19062847179045 71.4826097560976 2.055
209 1.05672097533485 67.1598292682927 4.507
210 1.05546910893237 69.1370487804878 4.607
211 1.56140265900706 59.1194878048781 6.682
212 1.8912550046889 55.8925365853659 2.899
213 1.42658527586416 42.0212195121951 6.152
214 1.47863428845506 45.8474878048781 3.932
group size x y
2 1.23638051843509 74.6159024390244 2.645
3 1.6173023176139 45.2928536585366 7.73
5 1.24704717920019 74.2387317073171 2.241
6 1.23832016874942 70.9894390243903 1.688
7 1.50754166582617 45.2049268292683 6.826
8 1.82637946231752 73.7179756097561 2.477
10 1.38489938778741 78.0268292682927 1.36
11 1.59528596157371 79.2341463414634 1.756
12 1.03927363290423 73.7200975609756 1.874
13 1.38578880811508 66.7572195121951 2
14 1.26614153883918 74.3081219512195 1.412
15 1.06932650010487 75.4082682926829 1.558
16 2.56529705612375 64.7303414634146 3.121
17 1.4354331843333 77.7219512195122 1.67
18 1.46337159316048 50.2012926829268 6.259
19 1.38869421389193 71.6634146341463 1.26
20 1.11058578945329 73.7960731707317 2.72
21 1.35127723939919 46.0050487804878 5.772
22 1.35845108481394 52.5653414634146 5.966
23 1.03170476019586 77.8648780487805 1.74
24 1.07747292830641 76.2323414634146 2.401
25 1.39635902855482 62.9636829268293 4.14
26 2.79716112067118 70.1382682926829 2.364
27 1.07329371104467 71.6282926829268 2.071
28 1.10152007522236 61.3742195121951 3.676
29 1.17986416565079 50.765487804878 3.414
30 1.43016763463046 68.9121951219512 1.31
31 1.06539670880478 73.5311219512195 3.594
32 1.75457269758247 79.2365853658537 1.49
33 1.93212050694523 45.6519024390244 6.911
34 1.25923473541194 43.6633658536585 5.446
35 1.2402580268031 54.1458536585366 4.932
36 1.36446490913265 79.6804878048781 1.5
37 1.54629391559679 50.1608780487805 5.162
38 1.53470335882435 76.8217317073171 2.087
39 1.54283352809483 50.0712682926829 4.983
40 5.83428116343401 71.2417073170732 1.737
41 1.85926492586616 71.0009756097561 2.64
42 1.26943241928407 77.8040731707317 2.414
43 1.45389723061593 76.3658048780488 1.626
44 1.08971969140735 69.4482682926829 3.701
46 1.13160587305439 77.9569268292683 1.714
47 1.43588081126032 74.9682926829268 1.14
48 2.23349955854003 77.9268292682927 1.38
49 1.11506824818204 53.8503414634146 4.801
50 1.31415309620194 76.5926829268293 1.77
52 1.40026589099476 70.8937073170732 2.892
53 1.76613246142045 70.0241707317073 2.622
54 1.48149433134006 73.3920487804878 2.953
55 1.15877405167601 70.4170731707317 1.38
56 2.10634036794507 69.0826585365854 3.315
57 1.26976745042407 56.0249756097561 5.43
58 1.86318962334724 78.9658536585366 1.23
59 2.10539981648309 51.7101219512195 6.08
60 1.30930187924444 77.4658536585366 1.73
61 1.12199823289103 67.6073170731707 3.09
62 1.04300175495958 67.2737317073171 4.3
64 2.06172931287427 78.9585365853659 1.89
65 1.15014696870796 59.6909512195122 4.051
66 2.0439864624781 77.7414634146342 1.64
67 1.04173263830211 73.4077073170732 2.582
68 1.28572617028789 71.5630975609756 1.625
69 1.59016525047943 58.382243902439 4.656
70 1.03001549764002 65.9268292682927 2.308
71 1.15035244775599 55.156756097561 5.64
72 1.40217361306176 48.1101463414634 5.991
73 1.09722007170993 48.6902682926829 5.773
74 1.44937001237561 77.8878048780488 1.26
75 1.45523618427781 67.7441707317073 4.801
76 1.05230391441347 74.1653902439025 2.878
77 1.15306393833316 44.8848780487805 5.846
78 1.11679127536583 64.4482682926829 2.466
79 1.35103251057833 80.8780487804878 1.035
80 1.3395221599871 70.3820243902439 3.997
81 1.28597546119026 72.8078048780488 1.39
82 1.39829141265414 58.3720731707317 4.303
83 1.43457626518753 71.2463414634146 1.32
84 2.96650108007444 65.6463658536586 2.453
85 1.26512457123574 76.5407317073171 1.89
86 1.34097566561211 78.9536585365854 2.95
88 5.39217263547185 61.6138780487805 3.122
89 1.66362529142881 70.7434878048781 5.252
90 2.10445212931236 69.7396585365854 2.206
91 1.07117280768851 79.6536585365854 2.08
92 2.02655125927733 79.4268292682927 1.26
93 1.05112224488739 77.5241219512195 1.402
94 1.21860455717155 70.4722926829268 2.603
95 1.29773954705684 72.0750243902439 3.931
96 2.5323541821828 81.0760975609756 1.359
97 1.76086701662024 52.2996341463415 5.012
98 1.30087482431263 68.5585365853659 2.4
99 1.47549445247963 57.4641463414634 3.822
101 1.09817991129547 57.8764390243903 5.315
103 1.65008658364982 65.110512195122 2.11
104 1.93270368270544 75.8554878048781 1.47
105 1.17699202542492 67.9512195121951 2.9543
106 1.18746553232249 73.7524878048781 2.626
108 1.52473148934418 65.5170731707317 1.8
109 1.31558344833168 61.3946097560976 4.227
110 1.2444272246979 70.6370243902439 2.387
111 1.05258994868431 71.1056097560976 2
113 1.59449256707472 70.9842926829268 2.191
114 1.23105935071049 45.9643170731707 5.849
115 1.18498043168855 47.5863658536585 4.089
116 1.25423209106381 72.0195121951219 1.39
117 1.08908555619692 77.8731707317073 1.76
118 1.20924272740629 70.3146341463415 1.24
119 1.30930116114543 72.530756097561 3.079
120 1.72887519771117 68.6751463414634 2.703
122 1.25928014117999 66.8882682926829 1.568
123 1.10570431703935 74.8900243902439 1.818
125 1.53970629893305 59.6745609756098 5.548
127 1.19453474098445 72.9102195121951 1.67
128 1.43563137206638 47.2432682926829 6.808
129 1.94693283765132 61.8557073170732 2.427
130 1.21032301262629 63.1213414634146 2.207
131 1.08862801970965 78.5369756097561 0.933
133 1.22357348032726 56.9947804878049 5.219
134 1.08318294467246 78.2 1.7
135 1.14774525959877 71.6634146341463 1.99
136 1.07006412511436 70.3741219512195 2.919
137 1.45761483880577 46.0297317073171 6.095
138 2.38653054941531 74.274243902439 2.581
139 1.65829900191804 72.1424878048781 3.065
140 1.58148588208988 47.2378536585366 5.693
141 1.18705642875252 57.6577317073171 4.033
142 1.06170423779656 74.919512195122 2.63
143 1.45085721269785 48.2666829268293 7.503
144 2.50804425617553 46.2723170731707 5.883
145 1.30704091161637 69.6457317073171 3.251
146 1.54279601990013 77.9878048780488 1.72
147 1.28807020783768 78.6341463414634 1.85
148 1.65496473628314 61.5216341463415 4.091
149 1.266951768843 78.6365853658537 2
150 1.201103339486 74.1102926829268 3.636
151 1.23749214361859 74.2231463414634 2.749
152 1.69361272774905 70.4762682926829 2.929
153 1.06520978476362 72.4210731707317 2.455
154 1.31531779687228 58.7957804878049 4.507
155 2.1988018978253 66.7951463414634 3.814
156 2.63158230964068 63.1619512195122 4.474
157 1.84356676147328 73.7487804878049 1.35
158 1.26531408020808 76.6892682926829 2.0485
159 1.23226519438129 70.9079512195122 5.376
160 1.43489270852799 76.3146341463415 1.55
161 1.01468374691936 70.4936585365854 1.535
162 1.31446629243021 70.0451951219512 3.677
163 1.10416063549694 76.3031951219512 3.149
164 1.64440651380706 71.1634146341463 1.31
165 1.37280218040697 72.1365853658537 1.48
166 2.64553837471078 65.3414634146341 1.21
167 1.39402440788094 46.5102195121951 5.786
168 1.61050691761431 71.4920975609756 3.99
169 1.08656029355216 62.834243902439 4.72
171 1.71631984986293 56.9740975609756 5.34
172 1.40506222865148 79.6439024390244 1.54
174 1.19150435175229 75.4121951219512 1.26
175 1.31559632183013 73.0512195121951 1.3
176 1.27655716608719 39.7315853658537 5.726
178 1.42707312274963 55.739243902439 5.546
179 1.36953764379059 48.2957804878049 6.507
180 1.09218633552292 67.9352926829268 2.726
182 1.0494105746305 62.3577804878049 4.577
183 1.33189243889874 69.7016097560976 2.934
185 1.550342556409 74.0188780487805 3.633
186 1.13981816357792 48.6702195121951 4.222
188 1.39180032465085 48.4889756097561 6.605
189 1.29983809707106 54.8094878048781 5.102
190 2.07414157112847 72.5152195121951 1.71
191 1.33817270935058 63.7553414634146 4.03
192 1.12513913523759 56.190243902439 7.112
193 1.28840579342828 63.895512195122 2.837
194 1.42056203983843 72.6 2.08
195 1.04091340657659 70.7609268292683 4.25
196 2.08127845442348 69.4468780487805 2.383
197 1.15274121491769 68.3956097560976 1.638
199 1.79344157778433 50.3732926829268 5.688
200 1.95397120146002 67.8634146341464 1.1
201 1.67020953021045 46.0916829268293 6.865
202 3.2852638812284 76.6365853658537 2.056
203 1.24764182555614 74.8868292682927 2.19
204 1.67536454122487 66.9508780487805 2.58
205 1.04310214235979 70.3769512195122 2.379
206 1.67202856029492 73.269512195122 2.83
207 1.04326116529823 77.5756585367561 2.0553
208 2.19864017192431 71.945512195122 1.983
209 1.05732342275117 67.555 4.45
210 1.05561174182943 69.4878048780488 4.564
211 1.56937420459112 59.6898536585366 6.489
212 1.90236401091015 54.7763170731707 2.866
213 1.43222761958544 41.9298780487805 6.134
214 1.48092824408855 44.6179756097561 3.862
group size x y
2 1.24048518268623 74.8370731707317 2.527
3 1.62848134423809 45.5672682926829 7.595
5 1.24633950804055 74.7236585365854 2.142
6 1.23769266520231 71.4580487804878 1.684
7 1.51586748202343 45.9733170731707 6.751
8 1.83051599731685 73.929512195122 2.425
10 1.38563748212242 78.5268292682927 1.33
11 1.59931439179254 79.6341463414634 1.739
12 1.03975050634533 73.7823902439024 1.848
13 1.38728758524454 67.1476829268293 1.8
14 1.2677013714528 74.5531707317073 1.363
15 1.06947398558868 75.5086829268293 1.534
16 2.5791078529023 65.2083170731707 3.013
17 1.43618321744547 77.9731707317073 1.6632
18 1.47007640229703 50.5655609756098 6.208
19 1.38510889884959 71.7682926829268 1.21
20 1.1131102526495 73.9182926829268 2.677
21 1.35560000713223 46.3363902439024 5.632
22 1.3642276946776 52.8190975609756 5.895
24 1.07834163399495 76.4649024390244 2.341
25 1.40039638775024 63.3241707317073 4.063
26 2.8098015559284 70.4396341463415 2.319
27 1.07395313908303 71.9696829268293 1.989
28 1.10301664453913 62.2373170731707 3.51
29 1.18129779770036 49.8115609756098 3.316
30 1.42850786892147 68.5073170731707 1.27
31 1.06632579924116 73.6489268292683 3.493
32 1.75839204554833 79.4878048780488 1.505
33 1.9441340113312 45.9421951219512 6.835
34 1.26157070213153 43.5235365853659 5.392
35 1.24329844576832 54.2130487804878 4.899
36 1.36562105883449 80.1804878048781 1.38
37 1.55116533556667 50.2505609756098 5.109
38 1.53789383023362 77.2072195121951 2.047
39 1.54999321136968 49.7929756097561 4.947
40 5.85187083170949 71.4055365853659 1.72
41 1.86635125913115 71.2736585365854 2.603
42 1.27229899276063 77.9749268292683 2.345
43 1.45465199806548 76.5796341463415 1.626
44 1.09058057341161 69.9698536585366 3.528
46 1.1328791189738 78.0853414634146 1.658
47 1.43511938857746 75.1731707317073 1.14
48 2.23453761953014 78.3292682926829 1.35
49 1.11593719356857 54.134756097561 4.681
50 1.31471722488217 76.7926829268293 1.74
52 1.40339526957373 71.1545365853659 2.863
53 1.77131817151843 70.3811219512195 2.56
54 1.48623349450451 73.7380731707317 2.898
55 1.1584581687906 70.2585365853659 1.34
56 2.11523508681014 69.6674390243902 3.247
57 1.27527764391051 56.5942926829268 5.334
58 1.86807830393476 79.3682926829268 1.24
59 2.12146362731698 52.2822195121951 5.894
60 1.30965471301383 77.9658536585366 1.73
61 1.12222960807129 67.7929024390244 3.047
62 1.04294576306739 67.3792682926829 4.204
64 2.06559820530695 79.0585365853659 1.9
65 1.15197093448101 59.4977804878049 3.933
66 2.04589456632773 77.9926829268293 1.63
67 1.04178339002447 73.727 2.512
68 1.28469106821743 71.8267317073171 1.601
69 1.59746456348639 58.7555365853659 4.607
70 1.03006171090471 66.9268292682927 2.451
71 1.15266309479943 55.4654878048781 5.57
72 1.4055929417979 48.7298292682927 5.915
73 1.09877009712263 48.7555609756098 5.726
74 1.45003832149663 78.3878048780488 1.25
75 1.46078878103017 68.2289512195122 4.717
76 1.05249624620082 74.3608048780488 2.825
77 1.15477368569863 45.1468536585366 5.768
78 1.11704346189201 64.9855609756098 2.451
79 1.35232984796152 81.4243902439025 0.932
80 1.34303328696549 70.6009756097561 3.883
81 1.28642816150662 74.5129268292683 1.38
82 1.40157761542311 58.5897073170732 4.182
83 1.43407776957032 72.2487804878049 1.31
84 2.98071704572799 65.9490731707317 2.419
85 1.26724776906336 77.139756097561 1.94
86 1.34502285211239 79.4073170731707 2.92
88 5.42834744787088 61.9687804878049 3.054
89 1.67353190429984 70.4345853658537 5.198
90 2.1123554715376 70.0585365853659 2.088
91 1.07166043727872 80.690243902439 1.95
92 2.02686772452333 79.8292682926829 1.25
93 1.05131630041359 77.7852682926829 1.404
94 1.21925554428605 70.6056097560976 2.578
95 1.30144639495892 72.1926585365854 3.796
96 2.53403825786119 81.4170731707317 1.33
97 1.77103199374301 52.0180731707317 4.998
98 1.30230784730997 68.7073170731707 2.4
99 1.4803300661847 57.8964634146341 3.643
101 1.09945955573921 58.0998048780488 5.313
103 1.65297324458509 65.8982682926829 2.084
104 1.93616015358824 76.3375609756098 1.3
105 1.17705235541292 67.9475609756098 2.799
106 1.19110181207346 73.8307804878049 2.508
108 1.52428524911537 65.7682926829268 1.9
109 1.31797576238311 61.9781707317073 4.011
110 1.2490117457309 70.7953170731707 2.272
111 1.05288843606782 73.9543902439025 2.2
113 1.58972547762677 71.7838048780488 2.216
114 1.23529817613897 47.1488292682927 5.788
115 1.18574306582549 46.1355853658537 3.975
116 1.25356710400835 71.6585365853659 1.3
117 1.0896267054705 77.8243902439025 1.66
118 1.20844624375608 70.7609756097561 1.21
119 1.31175961954726 72.7628048780488 3.034
120 1.73281375024022 69.0548780487805 2.623
122 1.25898986409306 67.0808292682927 1.535
123 1.10573311748138 74.6751707317073 1.806
125 1.54806025155878 60.6209268292683 5.443
127 1.19515073629416 73.0763170731707 1.625
128 1.44200449503524 47.5526585365854 6.773
129 1.95123502161784 62.0837804878049 2.353
130 1.21129741471908 63.6819756097561 2.154
131 1.08927027785516 78.7523902439025 0.887
133 1.22699571938654 57.0501707317073 5.148
134 1.08447076922498 78.4414634146342 1.48
135 1.14855782717446 71.7658536585366 1.91
136 1.07073194342125 71.3306829268293 2.722
137 1.46367551020161 46.2764878048781 6.066
138 2.39628302724009 74.5204634146342 2.559
139 1.66536042959909 72.3211219512195 3.02
140 1.5895484186093 47.3956585365854 5.625
141 1.18869816399757 57.3012195121951 3.938
142 1.0623152404194 74.8317073170732 2.47
143 1.45912784178433 48.9908292682927 7.462
144 2.527121090874 46.7914634146342 5.845
145 1.30931612119704 70.1309024390244 3.139
146 1.54484948007365 78.190243902439 1.71
147 1.2888012392928 78.7853658536585 1.78
148 1.66158560672004 62.3326097560976 3.949
149 1.26774102077811 78.6926829268293 1.97
150 1.20323149579467 74.2058536585366 3.367
151 1.2398804345461 74.4137317073171 2.731
152 1.6985621977998 70.9307073170732 2.872
153 1.06577627978603 72.7642926829268 2.406
154 1.3193929651957 59.124756097561 4.451
155 2.21144139534807 66.934243902439 3.767
156 2.64865159429394 63.3623902439024 4.29
157 1.84130726391651 74.2 1.31
158 1.26559887412571 77.0668292682927 1.9346
159 1.23525939243459 71.0903170731707 5.236
160 1.43631960091148 76.8146341463415 1.45
162 1.31769775045439 70.3093414634146 3.595
163 1.10575788483906 76.4963902439024 3.08
164 1.63992453353915 71.1609756097561 1.27
165 1.37248148651863 72.1853658536586 1.58
166 2.64354953233052 65.4878048780488 1.25
167 1.40249276851592 48.1367073170732 5.715
168 1.621727572147 71.7079512195122 3.805
169 1.08774882732578 63.4531463414634 4.665
171 1.72537111876298 57.6002682926829 5.259
172 1.40560679167845 79.7951219512195 1.57
173 1.27649836462065 78.3512195121951 1.41
174 1.19165579236333 75.7585365853659 1.21
175 1.31530726008138 73.4024390243903 1.2
176 1.28172614148064 40.5776829268293 5.669
178 1.43261578167127 56.0584390243903 5.466
179 1.37510173569654 48.7663658536585 6.506
180 1.09285092821614 68.0176097560976 2.686
182 1.04984971212732 62.5045365853659 4.484
183 1.33263068786024 69.8956829268293 2.803
185 1.55586039976445 74.2120243902439 3.529
186 1.14054739523326 47.439756097561 4.128
188 1.39928194675911 48.2825853658537 6.585
189 1.30374705850381 54.9340975609756 4.992
190 2.08037585912817 72.6414390243902 1.695
191 1.34098489355281 64.1048536585366 3.935
192 1.1264463235182 57.0217804878049 7.092
193 1.29001673218727 64.0257804878049 2.783
194 1.4229778723351 72.8487804878049 2.05
195 1.04103582296082 70.8990487804878 4.236
196 2.08917357357141 70.064 2.321
197 1.15300558141249 68.3143902439025 1.62
199 1.80358128626657 50.8047317073171 5.671
200 1.94918643740316 68.2870731707317 1.1
201 1.68133505224083 46.7667317073171 6.822
202 3.29660131293339 76.7365853658537 2.034
203 1.24786299865862 74.8721951219512 2.14
204 1.67965435640472 67.0289268292683 2.46
205 1.04312189133785 70.4773658536585 2.321
206 1.67837307056092 73.4292682926829 2.79
207 1.0432070089505 77.8451463412927 1.8997
208 2.20626038427241 72.3813170731707 1.94
209 1.05800183386534 67.9357073170732 4.39
210 1.05577010843516 69.8200731707317 4.509
211 1.57756338273948 60.2931463414634 6.318
212 1.91164644099219 53.7273170731707 2.835
213 1.43778359472101 42.0308292682927 6.119
214 1.4825249062846 43.7684390243902 3.803
group size x y
2 1.24399479689953 75.0522195121951 2.413
3 1.64094814043914 45.8331463414634 7.447
4 1.03663334250656 75.280487804878 1.7
5 1.24549321933559 75.1612195121951 2.04
6 1.23718760984658 71.8896097560976 1.692
7 1.52478347984224 46.7119268292683 6.654
8 1.83445338178418 74.1386097560976 2.379
10 1.38658816883069 78.6780487804878 1.39
11 1.60298450060114 79.9365853658537 1.756
12 1.04023667927358 73.8641951219512 1.825
13 1.38873654456496 67.5548536585366 1.8
14 1.26833071200579 74.6153658536585 1.315
15 1.06963737387136 75.6081951219512 1.516
16 2.59239526175895 65.6683170731707 2.907
17 1.43716266641954 78.0756097560976 1.6599
18 1.47692338055937 50.9776341463415 6.161
19 1.38144321273082 71.8658536585366 1.21
20 1.11584208442043 74.0375365853659 2.647
21 1.36072518925778 46.6730731707317 5.484
22 1.37027139351546 53.061512195122 5.828
24 1.07919847493335 76.6810487804878 2.292
25 1.40440463162086 63.6788048780488 3.983
26 2.82216262798519 70.7240975609756 2.264
27 1.07470442187046 72.3384878048781 1.925
28 1.10458287760278 63.0268048780488 3.352
29 1.18260127046554 49.3375365853659 3.228
30 1.42714508176117 68.0560975609756 1.22
31 1.06723599755616 73.8086341463415 3.396
32 1.76180239674202 79.590243902439 1.52
33 1.95727463851331 46.2538048780488 6.746
34 1.26379738894521 43.5288292682927 5.329
35 1.2462506430791 54.3414878048781 4.864
36 1.36700802355841 80.3853658536585 1.39
37 1.55542740582121 50.4438780487805 5.055
38 1.54098587962185 77.5552195121951 2.014
39 1.55720833724878 49.5780975609756 4.917
40 5.86815194012901 71.5794390243902 1.705
41 1.87334822391813 71.5340243902439 2.57
42 1.2750163342311 78.134756097561 2.275
43 1.45539760944905 76.8153414634146 1.621
44 1.09142747948803 70.5136585365854 3.358
46 1.13415421548678 78.2092682926829 1.613
47 1.43444595939399 75.2219512195122 1.17
48 2.2355759543804 78.2292682926829 1.34
49 1.11678834344719 54.4471219512195 4.562
50 1.31522107411018 76.8951219512195 1.72
51 1.03395239044666 76.5975609756098 1.9
52 1.4065025157574 71.4053170731707 2.836
53 1.77637425093585 70.7299024390244 2.519
54 1.49095311271312 74.0408048780488 2.844
55 1.15813913853417 70.9048780487805 1.37
56 2.12431565940651 70.203243902439 3.18
57 1.28126287910962 57.1324634146342 5.235
58 1.87438257348757 79.5682926829268 1.26
59 2.13777902897426 52.9186829268293 5.699
60 1.31003075778335 78.119512195122 1.72
61 1.12234592582142 67.9773658536586 3.001
62 1.04290544679947 67.4937317073171 4.106
64 2.06947764271997 79.2609756097561 1.88
65 1.15378813149208 59.4239024390244 3.823
66 2.04782041937563 78.1439024390244 1.64
67 1.04183872554429 74.026512195122 2.455
68 1.28373374312991 72.0686341463415 1.586
69 1.6050514971188 59.2321951219512 4.564
70 1.03014133901452 68.8634146341464 2.489
71 1.15506753371638 55.768756097561 5.498
72 1.40901015814785 49.3570243902439 5.841
73 1.10033251920769 48.8517804878049 5.675
74 1.45081057394712 78.6414634146341 1.27
75 1.46651244051853 68.6623170731707 4.633
76 1.05264130847305 74.5532195121951 2.772
77 1.15650407949386 45.3988048780488 5.692
78 1.11727822046683 65.551756097561 2.435
79 1.35311172840056 81.4780487804878 0.939
80 1.34654307591919 70.8026097560976 3.776
81 1.28642816150662 74.7173170731707 1.34
82 1.40477713207992 58.8432926829268 4.065
83 1.43345973126811 72.3487804878049 1.3
84 2.99499982971877 66.2378048780488 2.386
85 1.2695134347514 77.6365853658537 1.97
86 1.34851895164276 79.4512195121951 2.89
87 1.03620337550503 77.9658536585366 1.65
88 5.4641580403251 62.3211219512195 2.991
89 1.68337262783924 70.0258780487805 5.147
90 2.11956738418461 70.3867804878049 1.996
91 1.0719896451125 80.5024390243903 1.93
92 2.02849037847442 79.9780487804878 1.27
93 1.05151591280568 78.0538536585366 1.406
94 1.21979122239092 70.776243902439 2.552
95 1.30513854112318 72.3077804878049 3.676
96 2.53582292862503 81.5634146341463 1.32
97 1.78145408353466 51.9659512195122 4.983
98 1.30370059134449 68.1073170731707 2.5
99 1.48487008593354 58.3752195121951 3.479
100 1.03806285249874 62.8243902439024 3.6
101 1.10075858773204 58.3172195121951 5.303
102 1.02700786632536 71.3365853658537 2.107
103 1.65586675754247 66.7150731707317 2.065
104 1.93877619419858 76.8239024390244 1.17
105 1.17711276935528 67.9387804878049 2.6645
106 1.19434926167784 73.9035609756098 2.392
108 1.52429606951982 65.9682926829268 2
109 1.3201533603201 62.575243902439 3.811
110 1.2548163264627 70.9590731707317 2.165
111 1.05316192639782 73.7073170731707 2.1
113 1.59166820641807 72.5439024390244 2.247
114 1.23810940973339 48.3872195121951 5.729
115 1.18643865796858 45.0547804878049 3.862
116 1.25312063942187 71.7609756097561 1.24
117 1.09010556928204 77.9658536585366 1.63
118 1.20771742351114 70.9609756097561 1.23
119 1.31417586696324 72.9769268292683 2.994
120 1.73647059792076 69.4195853658537 2.557
122 1.25868949498038 67.2790731707317 1.511
123 1.10580311624276 74.4695853658537 1.79
125 1.55644355975083 61.5513658536586 5.337
127 1.19559330339109 73.2426829268293 1.585
128 1.44865233912963 47.8730975609756 6.735
129 1.95479994734992 62.2828292682927 2.287
130 1.21232689117181 64.2769268292683 2.138
131 1.08989734535818 78.9612926829268 0.858
133 1.23047636943246 57.0950487804878 5.079
134 1.08479237050454 78.0926829268293 1.45
135 1.14919902582931 71.9658536585366 1.94
136 1.07137251249044 72.2180731707317 2.549
137 1.46969624384776 46.7073170731707 6.042
138 2.40542480368598 74.7620731707317 2.542
139 1.67211451376247 72.4922682926829 2.973
140 1.59787493056903 47.5267804878049 5.554
141 1.19001876564232 57.2016585365854 3.848
142 1.06293089916482 75.1024390243903 2.37
143 1.46753413509727 49.6960243902439 7.421
144 2.54650949196864 47.3504878048781 5.809
145 1.31145965796812 70.6141707317073 3.046
146 1.54659193803645 78.2926829268293 1.73
147 1.28958232984317 78.9878048780488 1.75
148 1.66781946049573 63.1536585365854 3.798
149 1.27008123320001 78.8463414634146 1.89
150 1.20636684759693 74.1956585365854 3.138
151 1.24226214213691 74.5996585365854 2.71
152 1.70328307876889 71.359243902439 2.821
153 1.06630263294585 73.1012195121951 2.363
154 1.32346116770294 59.4689024390244 4.392
155 2.22402589323774 67.0638048780488 3.71
156 2.66449843133381 63.5533658536585 4.126
157 1.84111240584397 74.4975609756098 1.25
158 1.26577049542365 77.7604878048781 1.8317
159 1.23829201358916 71.2606341463415 5.113
160 1.43791603508341 77.0658536585366 1.47
162 1.32090768561419 70.5663902439024 3.513
163 1.1073160184017 76.6876341463415 3.004
164 1.63515105289662 71.009756097561 1.25
165 1.37239695200816 72.2853658536585 1.57
166 2.63988602960246 65.0853658536585 1.3
167 1.40769059043842 49.3775853658537 5.646
168 1.63547280731784 71.9351219512195 3.635
169 1.08893791885887 64.0339268292683 4.619
170 1.03754903666237 72.9536585365854 2.04
171 1.73489795811356 58.1875853658537 5.17
172 1.40626788715402 79.8463414634146 1.65
173 1.27776733279743 78.6951219512195 1.37
174 1.1917750249797 76.0073170731707 1.21
175 1.31531280734945 73.6048780487805 1.19
176 1.28813702219074 41.4894390243903 5.606
178 1.4383732657427 56.3826585365854 5.393
179 1.38040961303391 49.1375365853659 6.5
180 1.09352494899408 68.1495853658537 2.638
182 1.05034185160235 62.6613170731707 4.387
183 1.33327023603331 70.0988292682927 2.683
185 1.56072877271312 74.3976585365854 3.438
186 1.14103526082017 46.5279756097561 4.04
188 1.40706452245295 48.1295853658537 6.555
189 1.30772597762756 55.0386341463415 4.882
190 2.08660061069087 72.7769268292683 1.683
191 1.34408594028242 64.4699024390244 3.847
192 1.12848029600188 57.7802195121951 7.037
193 1.29155738993969 64.141243902439 2.741
194 1.42534082245878 73 2
195 1.04116619402958 71.0391219512195 4.221
196 2.09697972295711 70.6391463414634 2.268
197 1.153330404118 68.2902195121951 1.61
199 1.81400644942236 51.3282682926829 5.658
200 1.9444814827419 68.2756097560976 1.1
201 1.69285660823923 47.5431219512195 6.772
202 3.30728024881353 76.8365853658537 2.013
203 1.24789055208827 74.8363414634146 2.15
204 1.68382727303605 67.0859756097561 2.52
205 1.04315643030321 70.6014390243903 2.271
206 1.68466275131386 73.6292682926829 2.76
207 1.04316886614108 78.1146341463415 2.1127
208 2.21328063911481 72.7770975609756 1.918
209 1.05874144746498 68.3014634146342 4.33
210 1.05593993935577 70.1358292682927 4.443
211 1.58585336110549 60.9068536585366 6.162
212 1.91795460253179 52.7924146341463 2.801
213 1.44331440406235 42.3425365853659 6.111
214 1.48356252868599 43.2847804878049 3.752
group size x y
2 1.24944449178325 75.2608780487805 2.301
3 1.65400270613864 46.0924390243902 7.294
5 1.24457881570307 75.5420243902439 1.941
6 1.23675919731923 72.2783902439025 1.704
7 1.53412622983507 47.3933658536585 6.533
8 1.83824732927047 74.3442926829268 2.341
10 1.38753179500734 78.6317073170732 1.38
11 1.6067178311548 80.2390243902439 1.748
12 1.04069863298309 73.966 1.805
13 1.3902133278172 67.9943170731707 1.9
14 1.2682686240287 74.6348780487805 1.273
15 1.06981257653441 75.7052926829268 1.504
16 2.60501310558666 66.1098536585366 2.802
17 1.43807936389604 78.1292682926829 1.66
18 1.48391003121784 51.4323658536585 6.117
19 1.38035202466352 72.0658536585366 1.23
20 1.11895718703952 74.1552926829268 2.629
21 1.36649292386373 47.0215609756098 5.333
22 1.37649106378444 53.3014878048781 5.764
24 1.08004024789317 76.8808048780488 2.25
25 1.4083543407724 64.0275121951219 3.899
26 2.83410549866194 70.9961463414634 2.203
27 1.07551577996665 72.7371707317073 1.881
28 1.106157474093 63.7316097560976 3.199
29 1.18379477632755 49.3273414634146 3.149
30 1.42566924078822 68.5536585365854 1.21
31 1.06813566759693 74.0136585365854 3.301
32 1.76560743652557 79.8390243902439 1.53
33 1.97124259717177 46.541243902439 6.644
34 1.26597708116358 43.6721951219512 5.256
35 1.24922787848602 54.5296585365854 4.827
36 1.36837341194738 80.5365853658537 1.39
37 1.55932619935559 50.7328292682927 4.997
38 1.54399066126479 77.8511707317073 1.985
39 1.56448910857717 49.4355609756098 4.886
40 5.88333656997512 71.7648780487805 1.692
41 1.88026950554097 71.7882195121951 2.542
42 1.27760552862507 78.2855853658537 2.204
43 1.45608399285897 77.0808292682927 1.61
44 1.09221353708284 71.0676341463415 3.195
46 1.13540835319625 78.3301951219512 1.577
47 1.43449940270147 75.1707317073171 1.18
48 2.23591806076187 78.3804878048781 1.34
49 1.11762932250924 54.7893902439024 4.445
50 1.31565068384372 77.1439024390244 1.76
52 1.4095883140111 71.6406097560976 2.809
53 1.78148863984461 71.059 2.49
54 1.49563886296318 74.299243902439 2.791
55 1.15784115870258 71.3170731707317 1.37
56 2.13357526813567 70.6915609756098 3.114
57 1.28747738697938 57.6539268292683 5.135
58 1.88166111428113 79.619512195122 1.31
59 2.15426346099168 53.618 5.498
60 1.31040115925942 78.3682926829268 1.76
61 1.12242056216105 68.1602682926829 2.954
62 1.04286941038248 67.6171463414634 4.008
64 2.07327184571468 79.2634146341464 1.89
65 1.15561283282721 59.483756097561 3.718
66 2.04994197109011 78.4463414634146 1.71
67 1.04189840582006 74.2989512195122 2.41
68 1.28281571999989 72.2758292682927 1.577
69 1.6128837670987 59.7857317073171 4.525
71 1.15754719716346 56.0655609756098 5.426
72 1.41258837141413 49.9737317073171 5.769
73 1.10190240861562 48.9889268292683 5.622
74 1.45154840733245 78.8414634146341 1.28
75 1.4723694032662 69.0421219512195 4.546
76 1.05274352708952 74.7411219512195 2.721
77 1.15825116760801 45.6397804878049 5.616
78 1.11751337634537 66.1368780487805 2.419
79 1.35276298246557 81.3292682926829 0.901
80 1.35006021210536 71.0034634146342 3.676
81 1.28642816150662 74.6139024390244 1.33
82 1.40788816812346 59.1417804878049 3.955
83 1.43283892896402 72.3 1.27
84 3.00936263958095 66.5165365853659 2.353
85 1.27172172838888 77.9175609756098 1.96
86 1.35168309325073 79.6487804878049 2.95
88 5.49942902458357 62.6709512195122 2.933
89 1.6930714904583 69.5260975609756 5.098
90 2.12629154357467 70.7073902439025 1.924
91 1.07224603913785 80.9634146341464 1.99
92 2.03250699147634 79.9317073170732 1.29
93 1.05171869155644 78.3238292682927 1.408
94 1.22013642223249 70.9821951219512 2.526
95 1.308936360742 72.4203658536585 3.6506666667
96 2.53746708922872 81.76 1.29
97 1.79209325121092 52.127243902439 4.965
98 1.30529924250043 68.2560975609756 2.5
99 1.4891463553411 58.8894390243903 3.327
101 1.10207835232244 58.5316585365854 5.283
103 1.65869854328769 67.4055853658537 2.053
104 1.94110966301457 77.260243902439 1.19
105 1.1771731626972 68.189512195122 2.343
106 1.19756642790338 73.9738292682927 2.305
108 1.52517914782124 65.8658536585366 2.03
109 1.32228029632765 63.1923170731707 3.626
110 1.26107720697821 71.1293414634146 2.073
111 1.05343089933066 73.7414634146342 2.101
113 1.59559680817263 73.1815609756098 2.279
114 1.24018166961932 49.6259268292683 5.673
115 1.1870962021217 44.363756097561 3.755
116 1.25257656351069 72.0609756097561 1.26
117 1.09066410931343 77.7268292682927 1.62
118 1.20712481806329 71.2658536585366 1.29
119 1.31658861086659 73.1895609756098 2.955
120 1.73992437833241 69.767243902439 2.504
122 1.25832469327612 67.4624634146341 1.497
123 1.10590129894408 74.2829024390244 1.773
125 1.5648496408148 62.4573170731707 5.234
127 1.19589706800649 73.4099756097561 1.55
128 1.45555227351789 48.2075853658537 6.693
129 1.95785637381744 62.4668292682927 2.229
130 1.21342955125257 64.8824390243903 2.156
131 1.09057025373262 79.1662195121951 0.849
133 1.23399257507648 57.1329268292683 5.011
134 1.08507708478561 78.3512195121951 1.48
135 1.14997947031438 72.121300813 1.87
136 1.07199877185774 73.0244146341463 2.394
137 1.47580319106284 47.3086341463415 6.025
138 2.41417291729964 75.0047317073171 2.525
139 1.67864876567907 72.6579024390244 2.926
140 1.60638307788246 47.6621219512195 5.479
141 1.1911324641017 57.3889512195122 3.76
142 1.06355209807078 75.2707317073171 2.3
143 1.47610070810341 50.3822682926829 7.381
144 2.5662834002337 47.9163658536585 5.772
145 1.31351206865296 71.0855853658537 2.968
146 1.54788351105058 78.4926829268293 1.75
147 1.29043423438427 79.390243902439 1.8
148 1.67365122844236 63.9802926829268 3.641
149 1.27276462039783 79.1463414634146 1.91
150 1.20995518973345 74.0730731707317 2.948
151 1.24463254076816 74.78 2.687
152 1.70778780303394 71.7593902439024 2.774
153 1.06678993185499 73.4222926829268 2.322
154 1.32752797608694 59.8253170731707 4.335
155 2.23644588903628 67.1893658536585 3.643
156 2.67958809917451 63.7388536585366 3.987
157 1.84082855310788 74.5975609756098 1.22
158 1.26585384519735 78.0712195121951 1.7624
159 1.24136348833569 71.4238780487805 5.003
160 1.43944913992964 77.219512195122 1.44
162 1.32409236848623 70.8098048780488 3.43
163 1.10991417368311 76.8763902439025 2.914
164 1.63425992958085 71.309756097561 1.27
165 1.37191352906062 72.4365853658537 1.59
166 2.63592949640167 65.0075609756098 1.31
167 1.41082574434036 50.4490975609756 5.586
168 1.65025892868822 72.1710243902439 3.484
169 1.09012200103476 64.5672195121951 4.579
170 1.03732655851577 71.0292682926829 2.1
171 1.74474954313386 58.7119268292683 5.075
172 1.40702507559561 80.0951219512195 1.71
173 1.27572075489854 79.0390243902439 1.27
174 1.19183306973711 76.8585365853659 1.2
175 1.31532897898671 73.6048780487805 1.2
176 1.29510961932832 42.4307804878049 5.541
178 1.44431764575404 56.7074146341463 5.323
179 1.38552738736493 49.4362926829268 6.49
180 1.09419228007286 68.334243902439 2.59
182 1.05089182030837 62.8296097560976 4.288
183 1.33385448133088 70.2999756097561 2.581
185 1.5657206191945 74.5782682926829 3.36
186 1.14141180305269 45.9617317073171 3.954
188 1.41497375159748 48.0359756097561 6.514
189 1.31176790151839 55.1265609756098 4.774
190 2.09246572499903 72.9154634146341 1.673
191 1.34744475658938 64.8474878048781 3.763
192 1.13090657981433 58.4655365853659 6.964
193 1.29307280302143 64.2479512195122 2.702
194 1.42659874792457 73.0512195121951 2.06
195 1.04130265196552 71.1798048780488 4.202
196 2.10468013193351 71.1683170731708 2.227
197 1.15370084971487 68.3330487804878 1.608
199 1.82478503647774 51.9353902439024 5.645
200 1.94065671426391 68.2107317073171 1.2
201 1.70470964030499 48.385243902439 6.716
202 3.31721716978724 76.9878048780488 2.042
203 1.24781255077071 74.8768292682927 2.1
204 1.68781881992127 67.131 2.36
205 1.04319994007382 70.7479268292683 2.23
206 1.69090074757069 72.7829268292683 2.72
207 1.04314248932868 78.2513821138293 2.0065
208 2.22035151204556 73.1259024390244 1.907
209 1.05952428187839 68.654243902439 4.269
210 1.05611915164149 70.4396097560976 4.368
211 1.59417033343807 61.5119512195122 6.018
212 1.92381556185571 52.0134390243903 2.764
213 1.44889685198429 42.8585609756098 6.111
214 1.48417802538829 43.1434878048781 3.704
group size x y
2 1.25995992001186 75.4639756097561 2.191
3 1.66665188544967 46.3511951219512 7.14
5 1.24369983226042 75.8591219512195 1.847
6 1.23635311110833 72.6164146341464 1.715
7 1.54366830126084 48.0037073170732 6.391
8 1.84197474415037 74.5455853658537 2.31
10 1.38873692547247 79.1804878048781 1.42
11 1.61024637336239 80.490243902439 1.768
12 1.04108946252009 74.087756097561 1.787
13 1.39192665070727 68.4571951219512 2.0535
14 1.26795603425308 74.6596341463415 1.239
15 1.06999276189619 75.8015365853659 1.5
16 2.61678480555481 66.5313658536585 2.699
17 1.43902905631629 78.8780487804878 1.72
18 1.49103259741854 51.9222195121951 6.075
19 1.37931906248117 72.5634146341463 1.29
20 1.12266834299747 74.2715365853659 2.621
21 1.37266375933686 47.3803658536585 5.18
22 1.38275904501311 53.5489512195122 5.702
24 1.08086250230542 77.0626341463415 2.213
25 1.41220752832763 64.3692926829268 3.811
26 2.845460416263 71.2617804878049 2.136
27 1.07634167038842 73.1578292682927 1.858
28 1.10767313278198 64.3482195121951 3.053
29 1.18490607235994 49.7374878048781 3.08
30 1.42421008159475 68.9560975609756 1.2
31 1.06903889531983 74.2599268292683 3.209
32 1.7694537981642 80.1414634146341 1.53
33 1.98557237333626 46.7870243902439 6.531
34 1.26819327131619 43.9461219512195 5.175
35 1.25238093708892 54.7726097560976 4.788
36 1.36964303720003 81.0878048780488 1.42
37 1.56319323841546 51.1113902439024 4.932
38 1.54691881877404 78.0895853658537 1.96
39 1.57184630481109 49.3748536585366 4.85
40 5.89786007802666 71.9623414634146 1.68
41 1.88713496462403 72.0367804878049 2.518
42 1.28010095810266 78.4284146341463 2.134
43 1.45664038643666 77.3740975609756 1.592
44 1.09287733728002 71.6177804878049 3.041
46 1.136611221575 78.4500975609756 1.55
47 1.43468368802865 75.7219512195122 1.23
48 2.2357838985876 78.6804878048781 1.36
49 1.11846745640277 55.1590243902439 4.329
50 1.31605938927415 77.4926829268293 1.78
52 1.41265135133563 71.863 2.781
53 1.78689253611156 71.3649024390244 2.466
54 1.50027184781034 74.5164146341463 2.739
55 1.15759077727145 71.909756097561 1.47
56 2.14299668810595 71.1338780487805 3.05
57 1.29362441887689 58.1626829268293 5.033
58 1.88884484489693 79.8707317073171 1.32
59 2.17079371248134 54.3706585365854 5.294
60 1.31085276337889 78.7146341463415 1.8
61 1.12255437015225 68.3406585365854 2.907
62 1.04281735226686 67.752512195122 3.914
64 2.07722797208566 80.1634146341463 1.92
65 1.15746358593281 59.6818048780488 3.621
66 2.05259708086676 78.7463414634146 1.77
67 1.04196153012989 74.5443414634146 2.374
68 1.28246864444386 72.4473414634146 1.574
69 1.62089224832981 60.3966097560976 4.487
71 1.16007546607807 56.3548536585366 5.354
72 1.41649609344313 50.5689512195122 5.698
73 1.10347334381667 49.1719268292683 5.567
74 1.45233037803839 79.0390243902439 1.3
75 1.4783068875406 69.3678048780488 4.458
76 1.05280858380341 74.9240487804878 2.673
77 1.16000937143458 45.873243902439 5.54
78 1.11777509657089 66.7268780487805 2.401
79 1.35414283981982 81.7804878048781 0.927
80 1.35359170008803 71.2120487804878 3.582
81 1.28639584950052 75.520243902439 1.35
82 1.41091057111834 59.4880731707317 3.851
83 1.43235959997487 72.6487804878049 1.28
84 3.02381031066098 66.791243902439 2.318
85 1.27422176554882 78.1985365853659 1.94
86 1.35480858623414 80.1463414634146 2.9
88 5.53393235142875 63.0193170731707 2.879
89 1.70254087125708 68.9787804878049 5.048
90 2.13283739939726 71.0224634146341 1.868
91 1.07257233553751 80.9975609756098 2.04
92 2.03760924164575 80.7292682926829 1.33
93 1.0519213913218 78.5901951219512 1.409
94 1.2206571030937 71.2184390243902 2.499
95 1.31268805653276 72.5314634146342 3.6253333333
96 2.53772589932589 82.030243902439 1.29
97 1.80288086218328 52.4839268292683 4.939
98 1.30715482379006 68.1536585365854 2.6
99 1.49319765467705 59.4286341463415 3.188
101 1.10342020343917 58.7480731707317 5.254
103 1.66136432864592 67.9053658536586 2.046
104 1.94287805921422 77.8465853658537 1.16
105 1.17723353545974 68.440243902439 2.533
106 1.2012841583353 74.0425853658537 2.254
108 1.52700800293085 65.8878048780488 2.21
109 1.32457065906637 63.8258536585366 3.46
110 1.2668089699461 71.3066585365854 1.997
111 1.05372350888311 73.2429268292683 2.066
113 1.59965401712506 73.6651463414634 2.308
114 1.24249860272857 50.8233658536585 5.618
115 1.18775119697658 44.0759024390244 3.655
116 1.25189361281896 71.9609756097561 1.26
117 1.09132164038944 79.1219512195122 1.66
118 1.20656451991311 72.0268292682927 1.24
119 1.31904591184496 73.4071951219512 2.913
120 1.74327980336214 70.0998780487805 2.462
122 1.25800439610757 67.6264634146342 1.49
123 1.10600803379749 74.1264878048781 1.755
125 1.57327526521309 63.3207804878049 5.134
127 1.19612662354557 73.5771707317073 1.521
128 1.46267187835726 48.5576341463415 6.648
129 1.96073141783315 62.6517073170732 2.181
130 1.21462526713969 65.4808780487805 2.204
131 1.09136692819592 79.3686341463415 0.859
133 1.23751602967909 57.173756097561 4.943
134 1.08536876348665 78.5536585365854 1.4
135 1.15063059175865 72.2767479674878 1.87
136 1.07262727658685 73.7431463414634 2.256
137 1.48218584850099 48.0629024390244 6.013
138 2.4228190304202 75.25 2.507
139 1.68508795688147 72.8215609756098 2.878
140 1.61495110983492 47.8196097560976 5.402
141 1.19219873863492 57.8535853658537 3.675
142 1.06417997404863 75.5146341463415 2.18
143 1.48486170682103 51.0435609756098 7.341
144 2.58653190208196 48.4726097560976 5.736
145 1.31552532043992 71.5397804878049 2.904
146 1.54883666033053 79.0951219512195 1.72
147 1.29129505318785 79.8414634146342 1.83
148 1.67907486138605 64.7989512195122 3.48
149 1.27480290472393 79.5487804878049 2
150 1.21323025717504 73.8551707317073 2.796
151 1.24698674778997 74.9542682926829 2.662
152 1.71209622449387 72.1286829268293 2.731
153 1.06724219119388 73.722512195122 2.282
154 1.33160418655509 60.1925365853659 4.28
155 2.24856165867695 67.3139512195122 3.568
156 2.69457141764852 63.9208048780488 3.874
157 1.84058254473466 74.8463414634146 1.23
158 1.26588110054305 78.1758536585366 1.7822
159 1.24447439641671 71.5855853658537 4.906
160 1.44072968790306 77.6707317073171 1.4
162 1.32724608850965 71.0385609756098 3.348
163 1.11486668346816 77.0636097560976 2.811
164 1.63342589413145 71.5942756097561 1.29
165 1.37147945511442 72.5829268292683 1.57
166 2.63168191038132 65.4212195121951 1.33
167 1.41370385547649 51.3964146341463 5.536
168 1.66415605179615 72.4151219512195 3.352
169 1.09129447719611 65.0495365853659 4.541
170 1.03725210387013 72.609756097561 2
171 1.7546815014358 59.1647804878049 4.973
172 1.4078269487937 80.4975609756098 1.75
173 1.2774573059141 79.490243902439 1.26
174 1.19189476223864 77.2073170731707 1.25
175 1.3154120546696 73.9585365853659 1.24
176 1.30178927772085 43.3686097560976 5.474
178 1.45040032687729 57.0291707317073 5.257
179 1.39058941097472 49.6735853658537 6.477
180 1.09483140025807 68.5695609756098 2.545
182 1.05150405490899 63.0109268292683 4.189
183 1.33443419162657 70.4996341463415 2.498
185 1.57186332973173 74.7548536585366 3.292
186 1.14185801577021 45.7469756097561 3.87
188 1.42279019206236 48.011243902439 6.463
189 1.3158639657832 55.2083658536585 4.666
190 2.09752879439633 73.0529512195122 1.663
191 1.35100427382639 65.2295365853659 3.685
192 1.133262040075 59.0822682926829 6.648
193 1.29461098665979 64.3469268292683 2.662
194 1.42860288582385 73.3024390243903 2.02
195 1.04144312693014 71.3202682926829 4.177
196 2.11225572129095 71.6480487804878 2.196
197 1.15409238757047 68.4433170731707 1.61
199 1.83597798206906 52.6116097560976 5.632
200 1.93709486892094 68.1853658536585 1.2
201 1.71680014191941 49.257512195122 6.654
202 3.32796503225877 77.3390243902439 2.045
203 1.24775320254401 75.2163414634146 2.08
204 1.69179937620058 67.1720487804878 2.46
205 1.0432446901111 70.9167073170732 2.197
206 1.69708969479415 72.9778048780488 2.69
207 1.04311352059307 78.3881300812927 2.0683
208 2.22768020132815 73.4317804878049 1.902
209 1.06032472761494 68.9935609756098 4.208
210 1.05630305353858 70.7323902439024 4.287
211 1.60239018254971 62.0954390243902 5.884
212 1.92929182836907 51.425243902439 2.722
213 1.4546354082495 43.5549512195122 6.119
214 1.48455908372291 43.3369756097561 3.657
group size x y
2 1.27686238476236 75.6604634146342 2.086
3 1.67824228318307 46.6164146341463 6.989
5 1.24293658900183 76.112 1.764
6 1.23593240137365 72.9007073170732 1.724
7 1.55324688159992 48.5384390243903 6.233
8 1.84569346720534 74.7414634146342 2.287
10 1.39006457245484 79.3317073170732 1.41
11 1.61428817964583 80.8414634146341 1.807
12 1.04137876449318 74.2249756097561 1.77
13 1.39393686120565 68.9227317073171 2
14 1.26771779189448 74.7236341463415 1.212
15 1.0701727483538 75.9009512195122 1.501
16 2.62762497764891 66.9322926829268 2.601
17 1.44023904296625 78.9804878048781 1.76
18 1.4982855108214 52.4351951219512 6.036
19 1.37831104593711 72.5609756097561 1.32
20 1.12704367603531 74.3877317073171 2.618
21 1.37905623163296 47.7514634146342 5.028
22 1.38898434127344 53.8137317073171 5.64
23 1.03237516677606 78.5767073170732 1.752
24 1.0816617480422 77.2285853658537 2.179
25 1.41594218027294 64.7040487804878 3.721
26 2.85612169730886 71.5295365853659 2.068
27 1.07714816557274 73.5836585365854 1.854
28 1.10908413163578 64.8806341463415 2.914
29 1.18595743638622 50.4465609756098 3.019
30 1.42274588596464 68.8512195121951 1.21
31 1.0699550686253 74.5368780487805 3.124
32 1.77325709176799 80.2926829268293 1.54
33 1.99993502171817 46.9916829268293 6.409
34 1.2705056926424 44.3475609756098 5.088
35 1.25580456139915 55.0648536585366 4.748
36 1.37083011174109 81.2365853658537 1.42
37 1.56728103310503 51.5755609756098 4.858
38 1.54977962280745 78.2749756097561 1.939
39 1.57928725456347 49.4124146341463 4.807
40 5.91228412853025 72.1713170731707 1.668
41 1.89395630183352 72.2797804878049 2.496
42 1.28252859454226 78.564243902439 2.067
43 1.45701951840078 77.6831951219512 1.57
44 1.09338155555449 72.1406585365854 2.899
46 1.13774232941383 78.5739512195122 1.529
47 1.43510528701385 75.9243902439025 1.28
48 2.2354330880762 78.9317073170732 1.34
49 1.11930885554757 55.5500243902439 4.215
50 1.31649563917203 77.8439024390244 1.8
52 1.41568963741316 72.0766829268293 2.752
53 1.79274600524769 71.6461463414634 2.442
54 1.50483949639762 74.6992926829268 2.69
55 1.1574031560906 72.5682926829268 1.5
56 2.15256255005424 71.5286829268293 2.989
57 1.29950805962278 58.6642682926829 4.931
58 1.89617017415203 80.1707317073171 1.34
59 2.18728566182974 55.1566585365854 5.091
60 1.31138593012859 78.8170731707317 1.8
61 1.12281755521367 68.515243902439 2.86
62 1.04273578976816 67.8998536585366 3.824
64 2.08129354364635 80.1146341463415 1.94
65 1.15935295717468 60.0055853658537 3.531
66 2.05572629703149 79.0487804878049 1.78
67 1.04202676174 74.7642682926829 2.345
68 1.28387722169879 72.5887804878049 1.573
69 1.62901493757492 61.0383170731707 4.447
70 1.03024126786173 68.4853658536586 2.3
71 1.16263436912712 56.6400731707317 5.281
72 1.42084429368176 51.1356585365854 5.628
73 1.10504140139624 49.4002926829268 5.511
74 1.45319426209974 79.2390243902439 1.33
75 1.48428917926525 69.6478536585366 4.369
76 1.05284484748354 75.1039512195122 2.63
77 1.16177661239562 46.1096585365854 5.462
78 1.11808076172375 67.3033170731707 2.382
79 1.3549181188046 81.5804878048781 0.966
80 1.35714382556373 71.4388536585366 3.495
81 1.2864927745859 75.2446341463415 1.41
82 1.41384923479473 59.8734390243903 3.755
83 1.43192955744568 72.6487804878049 1.31
84 3.03833230305195 67.0733658536585 2.282
85 1.2772308675102 78.479512195122 1.87
86 1.35795332659415 80.1512195121951 2.84
88 5.56752289532623 63.367243902439 2.83
89 1.71174784105594 68.4636341463415 4.997
90 2.1394374551049 71.3330975609756 1.825
91 1.07316417332576 81.5024390243902 2.05
92 2.04145279517052 80.5804878048781 1.32
93 1.0521213497259 78.8448780487805 1.411
94 1.22117237392766 71.4794146341464 2.471
95 1.31624898567946 72.6450243902439 3.6
96 2.53779811762559 81.9251219512195 1.26
97 1.81377017594596 53.0095609756098 4.907
98 1.30889441927364 67.9560975609756 2.5
99 1.49706741209003 59.9793902439024 3.06
100 1.03918162445907 60.9487804878049 3.44
101 1.10478426409239 58.9784146341464 5.216
103 1.66379508332665 68.1954878048781 2.043
104 1.9438492648448 78.4326829268293 1.076
105 1.17729399206171 68.6909756097561 2.6473
106 1.20582373115862 74.1132926829268 2.239
108 1.52935667230662 65.909756097561 2.22
109 1.32717017596265 64.4622682926829 3.311
110 1.27139265626996 71.4895121951219 1.939
111 1.05405786354136 72.7392682926829 2.046
113 1.60287091543505 73.9893414634146 2.331
114 1.24572645772284 51.9430243902439 5.563
115 1.18843127301135 44.1711707317073 3.564
116 1.25111031264705 71.2536585365854 1.27
117 1.09203462243532 79.4317073170732 1.63
118 1.20601240127767 71.3560975609756 1.31
119 1.32157256419366 73.6352926829268 2.865
120 1.74662934597328 70.4174634146341 2.429
122 1.25769027305948 67.7795365853659 1.488
123 1.10610838179184 74.0152682926829 1.736
125 1.58172099964419 64.1121707317073 5.04
127 1.19633017523675 73.7457073170732 1.497
128 1.46998146043263 48.9261951219512 6.599
129 1.96367311978427 62.8588780487805 2.142
130 1.21592586550115 66.0523658536585 2.272
131 1.09233489277505 79.5745853658537 0.887
133 1.24102564373587 57.2310243902439 4.875
134 1.08564680752361 79.5048780487805 1.38
135 1.15123559235029 72.4321951219512 1.82
136 1.07327060061643 74.3711463414634 2.134
137 1.48896425630324 48.9380487804878 6.005
138 2.43157478927818 75.4989024390244 2.483
139 1.69151994404693 72.9882926829268 2.83
140 1.62349316038327 48.0171463414634 5.322
141 1.19333683479864 58.5441219512195 3.593
142 1.06480062419317 75.1682926829268 2.2
143 1.49384295224798 51.6729024390244 7.3
144 2.60731731400954 49.0047073170732 5.701
145 1.31754035101661 71.9728048780488 2.85
146 1.54947854604483 79.3463414634146 1.71
147 1.29229033828898 80.0414634146342 1.84
148 1.68410070245391 65.5865853658537 3.321
149 1.27636110138162 79.8512195121951 1.96
150 1.21574676570283 73.5847073170732 2.678
151 1.24932110168816 75.1244878048781 2.635
152 1.71623564805795 72.4666097560976 2.691
153 1.06766380656703 73.998756097561 2.245
154 1.33569538383851 60.5666097560976 4.227
155 2.26029105556535 67.4471463414634 3.486
156 2.70990301487454 64.1046829268293 3.786
157 1.84039781500218 74.9951219512195 1.24
158 1.26568903528252 78.2960975609756 1.7702
159 1.24762519503964 71.7492682926829 4.82
160 1.44172501434177 78.0707317073171 1.4
162 1.3303657825891 71.2526585365854 3.268
163 1.12271767321997 77.2476829268293 2.7
164 1.63268736552129 71.8788951219512 1.32
165 1.37092129084146 72.6341463414634 1.45
166 2.62770924081173 65.47 1.29
167 1.41760198156721 52.2476341463415 5.497
168 1.67590788110016 72.6647804878049 3.237
169 1.09245078390314 65.4876585365854 4.503
170 1.03735134374992 72.1317073170732 2.2
171 1.76451719459158 59.548243902439 4.869
172 1.40864398488271 80.5463414634146 1.77
173 1.28074331285874 79.990243902439 1.26
174 1.19206165222231 77.6121951219512 1.26
175 1.31554590984824 73.9048780487805 1.25
176 1.30761230704353 44.260243902439 5.404
178 1.45658896718629 57.3493414634146 5.191
179 1.39569693123249 49.8668780487805 6.459
180 1.09542765168179 68.8470487804878 2.503
182 1.05217760515498 63.2062682926829 4.09
183 1.33504908485903 70.6988048780488 2.435
185 1.57976047058299 74.9284146341464 3.23
186 1.14250137021385 45.8601951219512 3.784
188 1.43037009651619 48.0588536585366 6.401
189 1.32000789814894 55.304 4.559
190 2.1015023180571 73.1887804878049 1.654
191 1.3547213271705 65.6078536585366 3.612
192 1.13437808998019 59.6383414634146 6.332
193 1.29620754947143 64.4383170731707 2.617
194 1.43068365665995 73.5024390243903 2.04
195 1.04158602046744 71.4596585365854 4.144
196 2.11969780039004 72.0778536585366 2.175
197 1.15448550903647 68.6135121951219 1.616
199 1.84762305929551 53.3469268292683 5.618
200 1.93366713453503 67.9568292682927 1.2
201 1.7290624039977 50.1239268292683 6.584
202 3.33871864780728 77.3390243902439 2.054
203 1.24780299027997 75.6092682926829 2.04
204 1.69583629819669 67.2225853658537 2.36
205 1.04328469040185 71.1057804878049 2.171
206 1.70323028262568 73.1726829268293 2.65
207 1.04309484153404 78.5248780487805 2.1115
208 2.23486423049651 73.6997317073171 1.897
209 1.06112332131677 69.3209024390244 4.147
210 1.05648914186953 71.0157073170732 4.203
211 1.610432286327 62.6493170731707 5.757
212 1.93459165850889 51.0596829268293 2.676
213 1.46060875179743 44.3843658536585 6.135
214 1.48489400091839 43.8615853658537 3.606
group size x y
2 1.30017390699539 75.8518048780488 1.989
3 1.6886744511302 46.8990975609756 6.843
5 1.24230503755418 76.3096341463415 1.692
6 1.23546099007727 73.1342195121951 1.728
7 1.56283299345023 49.0071463414634 6.066
8 1.84941763478974 74.9314390243902 2.269
10 1.39103166596225 79.8317073170732 1.41
11 1.61883767962284 81.0414634146342 1.883
12 1.0415570802179 74.3741463414634 1.755
13 1.39610862592422 69.3614146341463 1.97
14 1.26755627468583 74.8343658536585 1.194
15 1.07035122196843 76.0085609756098 1.508
16 2.63745198026333 67.3100731707317 2.509
17 1.44169429922175 79.380487804878 1.8
18 1.50566605427965 52.9579024390244 5.998
19 1.37730968150695 72.6121951219512 1.38
20 1.1321437077982 74.5078292682927 2.616
21 1.38564434550282 48.1388780487805 4.88
22 1.39515238873314 54.1066829268293 5.577
23 1.03248047535167 78.7190731707317 1.7544
24 1.08243798075451 77.3806097560976 2.148
25 1.41954626398447 65.0302195121951 3.634
26 2.86602685927768 71.8109268292683 2.002
27 1.07792803003074 73.9919268292683 1.862
28 1.1103620362343 65.3423902439025 2.785
29 1.1869570078118 51.2843170731707 2.963
30 1.42145230764216 69.4048780487805 1.287
31 1.07088355498951 74.827 3.044
32 1.77641116695796 80.6439024390244 1.5862
33 2.01429616282155 47.168756097561 6.281
34 1.27293088816463 44.867512195122 4.996
35 1.25953219135956 55.4014390243903 4.706
36 1.3719967056252 81.490243902439 1.44
37 1.57164327755465 52.1183658536585 4.777
38 1.55257994777496 78.4158536585366 1.92
39 1.5868141023326 49.5611707317073 4.756
40 5.92601783774996 72.3897317073171 1.656
41 1.90073564977394 72.518756097561 2.475
42 1.28488906652595 78.6950731707317 2.007
43 1.45720217544948 77.9931951219512 1.545
44 1.09370694384322 72.6103414634146 2.772
45 1.04904624616838 74.709756097561 2.1
46 1.13879502990388 78.7087317073171 1.514
47 1.43581311893595 76.5243902439024 1.33
48 2.23473645213637 79.1317073170732 1.33
49 1.12015591604885 55.9528536585366 4.106
50 1.31701686364113 78.0951219512195 1.85
52 1.41870441835035 72.2879268292683 2.72
53 1.79909821042611 71.9052926829268 2.415
54 1.50933588069899 74.8578292682927 2.644
55 1.1572531569168 72.6914634146341 1.55
56 2.16226217705297 71.8789756097561 2.931
57 1.30504863272489 59.1577317073171 4.831
58 1.9035574278795 80.8219512195122 1.37
59 2.20372323118941 55.9515609756098 4.893
60 1.31198487608331 79.2146341463415 1.84
61 1.12323700163045 68.6791951219512 2.816
62 1.04262477063312 68.0591707317073 3.74
64 2.08506761570146 80.5146341463415 2
65 1.16128343388651 60.4271707317073 3.453
66 2.05897634684522 79.2487804878049 1.84
67 1.04209475040985 74.962756097561 2.322
68 1.28506790384191 72.7142439024391 1.572
69 1.63725520812986 61.6813658536585 4.402
71 1.16521861805028 56.9266585365854 5.208
72 1.42571191656172 51.6733658536585 5.557
73 1.10660410399666 49.665512195122 5.454
74 1.45410197234789 79.4390243902439 1.4
75 1.49029919861034 69.8947317073171 4.282
76 1.0528497508051 75.2823902439024 2.591
77 1.16354852340681 46.3619756097561 5.383
78 1.11843550146613 67.8472195121951 2.362
79 1.35606097825458 82.3756097560976 0.984
80 1.36071751821373 71.6898292682927 3.414
81 1.28642816150662 75.8368292682927 1.38
82 1.41669649192278 60.2810731707317 3.665
83 1.43159314450257 73.0975609756098 1.34
84 3.0529400765786 67.3768292682927 2.246
85 1.28056330226274 78.7604878048781 1.93
86 1.36113475034466 85.1634146341463 2.88
88 5.60012060157628 63.7168048780488 2.785
89 1.72062588181963 68.0718048780488 4.943
90 2.14611208373893 71.6384634146341 1.79
91 1.0740503095567 81.1585365853659 2.08
92 2.04442060576902 81.1317073170732 1.35
93 1.05231771375185 79.0829024390244 1.414
94 1.22170314492371 71.7560731707317 2.443
95 1.31988600713391 72.763512195122 3.7
96 2.53769580736664 82.3219512195122 1.32
97 1.82474763751758 53.6621951219512 4.869
98 1.31056170022096 67.6951219512195 2.7
99 1.5007519079259 60.5283170731707 2.944
101 1.10616993974801 59.2370731707317 5.168
103 1.66597457943728 68.3080243902439 2.042
104 1.94614087877795 78.9692682926829 1.123
105 1.17801059154888 68.9368292682927 2.4252
106 1.21119998400635 74.1919024390244 2.251
108 1.53216490582072 66.1609756097561 2.36
109 1.33013487452847 65.080512195122 3.178
110 1.27454424440927 71.6764146341463 1.896
111 1.05444186421176 73.4165365853658 2.035
113 1.60614708327719 74.1826341463415 2.345
114 1.25002025969494 52.9628292682927 5.507
115 1.18914545625956 44.5901219512195 3.481
116 1.25036393158836 71.0560975609756 1.31
117 1.0927836258877 79.2878048780488 1.65
118 1.20544722250876 70.8658536585366 1.35
119 1.324210137595 73.8693658536585 2.81
120 1.74996426194613 70.7235365853659 2.4
122 1.25734304337506 67.9386829268293 1.488
123 1.10619852677216 73.9623658536585 1.718
125 1.59018237418863 64.8014390243902 4.953
127 1.19650719165121 73.9169268292683 1.478
128 1.47748861446828 49.311243902439 6.545
129 1.9667322317454 63.1112195121951 2.109
130 1.21733538231198 66.5792682926829 2.347
131 1.09349614932338 79.7915853658537 0.926
133 1.24451554119796 57.3261951219512 4.807
134 1.08592416724602 78.5487804878049 1.39
135 1.15181245922621 72.4321951219512 1.7
136 1.07393061032824 74.9126829268293 2.027
137 1.49615634745251 49.8891463414634 6.001
138 2.44049957577593 75.7499756097561 2.455
139 1.69796233612472 73.1666097560976 2.784
140 1.63199871489691 48.2651463414634 5.24
141 1.19457289056397 59.3742682926829 3.513
142 1.06537873406311 76.4609756097561 2.29
143 1.50305034562634 52.2652682926829 7.258
144 2.62864658186809 49.5106585365854 5.665
145 1.3195654962195 72.3791951219512 2.803
146 1.54992019566341 79.6975609756098 1.72
147 1.2934716729184 80.3439024390244 1.9
148 1.68871155300683 66.3151463414634 3.171
149 1.27805371669631 80.0487804878049 2
150 1.21713980095559 73.3175853658537 2.586
151 1.25163328631727 75.2922195121951 2.606
152 1.7201967288739 72.7721951219512 2.651
153 1.06805208377945 74.2494146341463 2.209
154 1.33980105385001 60.9445609756098 4.175
155 2.27158827380796 67.6 3.404
156 2.72571174125129 64.2974390243903 3.714
157 1.84013152221034 75.1439024390244 1.27
158 1.26512596748839 78.4163414634146 1.7123
159 1.25081641024265 71.9189268292683 4.742
160 1.44245601569027 78.419512195122 1.36
162 1.33344993564891 71.4571707317073 3.192
163 1.13330474266546 77.4284878048781 2.587
164 1.63200382538777 72.1634146341463 1.32
165 1.37019202920351 73.1551219512195 1.43
166 2.62400937873418 66.6431707317073 1.3
167 1.4227009184082 53.0063902439024 5.466
168 1.68518044369592 72.9158292682927 3.138
169 1.09358885060935 65.8927317073171 4.46
170 1.03777020436684 72.2170731707317 2.1
171 1.7742801206499 59.8764390243903 4.765
172 1.40979583942647 80.7487804878049 1.85
173 1.28517826129773 80.1414634146341 1.28
174 1.19236950224655 78.0865853658537 1.31
175 1.31567516421729 74.2048780487805 1.24
176 1.31241887672541 45.0730243902439 5.331
178 1.46287163917435 57.6678780487805 5.123
179 1.40082618302387 50.0380975609756 6.437
180 1.09597527649758 69.1536829268293 2.466
182 1.05291572628432 63.4161219512195 3.995
183 1.33571559078424 70.9004878048781 2.387
185 1.58984965874671 75.0969024390244 3.173
186 1.14338259230727 46.2394878048781 3.698
188 1.43767122361186 48.1812926829268 6.329
189 1.32419215380823 55.4374390243902 4.455
190 2.10422510209917 73.3254146341464 1.642
191 1.35858417852362 65.9736829268293 3.543
192 1.13651763550132 60.1463170731707 6.016
193 1.29788233778397 64.5212195121951 2.57
194 1.43280360604458 73.9 2.03
195 1.04173197302281 71.5990975609756 4.104
196 2.12697469729838 72.4627317073171 2.159
197 1.15487709487046 68.8291219512195 1.622
199 1.85974259619587 54.1293658536585 5.603
200 1.93051573442554 68.0775609756098 1.31
201 1.7414794180267 50.9530731707317 6.507
202 3.35002175309476 77.5878048780488 2.1005
203 1.24799196563625 75.729756097561 2.03
204 1.70009585057564 67.2981707317073 2.39
205 1.04331867228991 71.3077804878049 2.15
206 1.70932311465217 73.3675609756098 2.62
207 1.04305982332402 78.659756097561 1.9499
208 2.24173619529788 73.940756097561 1.889
209 1.06191744431413 69.6377804878049 4.088
210 1.05667641538211 71.2905365853659 4.12
211 1.61829629117766 63.1706097560976 5.638
212 1.93984958074832 50.9296585365854 2.628
213 1.46682723838675 45.288512195122 6.157
214 1.4851557671229 44.7017804878049 3.551
group size x y
2 1.32735966989106 76.0384390243903 1.906
3 1.69825590331318 47.2053170731707 6.7
5 1.24179457463799 76.4734146341464 1.635
6 1.23494834086736 73.3278292682927 1.731
7 1.57245875364166 49.4352926829268 5.898
8 1.8531403524753 75.1149756097561 2.254
10 1.3917917502906 79.9829268292683 1.38
11 1.62357514805683 81.2926829268293 1.931
12 1.04164361839932 74.5282926829268 1.74
13 1.39836264668386 69.7486585365854 1.97
14 1.26733162755729 74.9686097560976 1.179
15 1.07052911274279 76.1293658536585 1.518
16 2.64640462313094 67.6666585365854 2.427
17 1.4433201866235 79.7829268292683 1.82
18 1.51316570927695 53.4769512195122 5.961
19 1.37634558959372 72.6634146341463 1.42
20 1.1377266738642 74.6312926829268 2.609
21 1.39244135851067 48.5466341463415 4.736
22 1.4012835166193 54.4307317073171 5.511
23 1.032584307542 78.8614390243903 1.7568
24 1.08319151089226 77.5241951219512 2.119
25 1.42304035558626 65.3477317073171 3.551
26 2.87524195908151 72.1099512195122 1.944
27 1.07868758354888 74.3654390243903 1.876
28 1.11151299922877 65.7590975609756 2.668
29 1.18790713995289 52.0689512195122 2.91
30 1.42048501462928 70.2034146341464 1.37
31 1.07181885154401 75.1118536585366 2.971
32 1.78058900282104 80.8043902439024 1.6589
33 2.02876511035138 47.3492926829268 6.152
34 1.27545536357159 45.4825365853659 4.903
35 1.26350288636861 55.7704146341463 4.665
36 1.37366434856246 81.7414634146342 1.46
37 1.57626517959051 52.7258780487805 4.691
38 1.55532584148034 78.5342682926829 1.904
39 1.59442525096874 49.8151707317073 4.696
40 5.93889832460893 72.6125853658537 1.643
41 1.90746104875823 72.7537804878049 2.454
42 1.28717761733212 78.8214146341464 1.954
43 1.45721379403413 78.285243902439 1.52
44 1.09388188294985 73.0108536585366 2.659
45 1.04948786862149 75.3634146341464 2
46 1.13977711983255 78.8579024390244 1.503
47 1.43719177361179 76.7243902439025 1.44
48 2.2339111166503 79.5341463414634 1.37
49 1.12101134868839 56.3565365853659 4.005
50 1.31772154880132 78.1951219512195 1.84
52 1.42169411339924 72.5044634146342 2.686
53 1.80590021074732 72.1509024390244 2.383
54 1.51376629431335 75.0049512195122 2.599
55 1.1571427720611 72.8146341463415 1.63
56 2.17208483406454 72.1922195121951 2.877
57 1.31030669161843 59.6392195121951 4.732
58 1.91133379333535 80.8731707317073 1.39
59 2.22014149144693 56.7239268292683 4.703
60 1.312650170413 79.2634146341464 1.83
61 1.12378637744218 68.8316341463415 2.774
62 1.04249669652794 68.2274878048781 3.661
64 2.08842793201418 80.8146341463415 1.98
65 1.16324998646154 60.8991463414634 3.386
66 2.06238800500079 79.4487804878049 1.9
67 1.04216636071994 75.146756097561 2.301
68 1.2847560754552 72.8413414634146 1.571
69 1.64559293282495 62.300243902439 4.352
70 1.0301247543819 68.4390243902439 2.23
71 1.16783514788023 57.2200487804878 5.133
72 1.4310695593367 52.1885609756098 5.483
73 1.10816407943552 49.9526341463415 5.393
74 1.45500396661404 79.4390243902439 1.41
75 1.49635022075905 70.1250487804878 4.199
76 1.05283258718872 75.4598292682927 2.556
77 1.16533133567029 46.6426829268293 5.303
78 1.11882867430011 68.3481707317073 2.34
79 1.35759636258961 82.3268292682927 1.028
80 1.36431724927974 71.9589024390244 3.339
81 1.28629889160163 75.7056097560976 1.4
82 1.41946505891699 60.6877317073171 3.58
83 1.43125872237297 73.1512195121951 1.32
84 3.06759712895163 67.7095853658537 2.21
85 1.28373149254726 79.0414634146342 2.01
86 1.36435951648529 85.1146341463415 2.9
88 5.63180984292934 64.0685365853659 2.742
89 1.7292624429769 67.8640731707317 4.887
90 2.15281578193906 71.9346341463415 1.759
91 1.07501681894645 81.4536585365854 2.09
92 2.04825734492009 81.2853658536585 1.37
93 1.05251034748135 79.300756097561 1.421
94 1.22223264825252 72.0408048780488 2.414
95 1.32348213888385 72.8869268292683 3.8
96 2.53778457695274 82.5070731707317 1.34
97 1.83583588239346 54.3860243902439 4.83
98 1.31204811214114 67.8463414634146 2.8
99 1.50429212790065 61.0645853658537 2.84
101 1.10757364222969 59.53 5.112
103 1.66794592917992 68.3409268292683 2.041
104 1.9483488901759 79.3495121951219 1.25
105 1.17873011722817 69.1824390243903 2.431
106 1.21714044025798 74.2799024390244 2.272
108 1.5352187102639 66.5048780487805 2.5
109 1.33340821888128 65.6595609756098 3.057
110 1.27655904003193 71.8628536585366 1.865
111 1.05486367404168 73.7232195121951 2.026
113 1.60890428836275 74.3120731707317 2.35
114 1.2550591814926 53.8888536585366 5.447
115 1.18989604232614 45.2150243902439 3.405
116 1.24968048852171 70.9 1.35
117 1.09351445941935 79.3829268292683 1.61
118 1.20491282415574 71.019512195122 1.41
119 1.32692857538606 74.1029268292683 2.751
120 1.75331312471941 71.0191219512195 2.373
122 1.2570330088312 68.1239024390244 1.488
123 1.10628093286424 73.9695365853658 1.7
125 1.59866583668651 65.3755609756098 4.87
127 1.1966399082171 74.0906097560976 1.462
128 1.48518096508867 49.710756097561 6.487
129 1.96987558220708 63.4181707317073 2.08
130 1.21884486253635 67.0575609756098 2.414
131 1.09481305166186 80.0226829268293 0.971
133 1.24798524831812 57.4702682926829 4.739
134 1.08620825679976 79.4439024390244 1.37
135 1.15228143464444 72.5707317073171 1.66
136 1.07460525030219 75.3870243902439 1.938
137 1.50367642428098 50.8623170731707 5.998
138 2.44954982313939 75.9971463414634 2.424
139 1.70438639032193 73.3590487804878 2.741
140 1.64049457155863 48.5605853658537 5.157
141 1.19588922569686 60.2232682926829 3.436
142 1.06593423392252 75.9463414634146 2.2
143 1.51248381495624 52.8181463414634 7.213
144 2.65050450302614 49.9994878048781 5.63
145 1.32160373037285 72.7593902439024 2.759
146 1.55051889410036 80.0975609756098 1.72
147 1.29499638912131 80.3951219512195 1.9
148 1.69294450565783 66.9660975609756 3.034
149 1.27950441271984 80.1512195121951 2.11
150 1.2177711115911 73.1088780487805 2.511
151 1.25392241298977 75.4594878048781 2.576
152 1.72401235655702 73.0503902439024 2.613
153 1.06840880806696 74.4788780487805 2.176
154 1.34391120618762 61.3239024390244 4.122
155 2.28252348773677 67.7800975609756 3.325
156 2.74184539931212 64.5025365853659 3.648
157 1.8399033913636 75.2439024390244 1.31
158 1.26434924834534 78.4258536585366 1.6505
159 1.25404855893763 72.0935853658537 4.669
160 1.44295753461149 78.3219512195122 1.33
162 1.33650288021038 71.6586585365854 3.122
163 1.1455736576777 77.6044390243902 2.483
164 1.63140620354626 72.5658536585366 1.3
165 1.3694415390677 73.3829268292683 1.38
166 2.62172834502048 67.4975609756098 1.41
167 1.42851095730204 53.6597317073171 5.442
168 1.69248495445217 73.1631219512195 3.049
169 1.09470972571553 66.2837804878049 4.412
170 1.0378761504796 73.1926829268293 2.24
171 1.78402831290791 60.1786097560976 4.664
172 1.41131934561287 80.9 1.88
173 1.29118987433305 80.4414634146342 1.29
174 1.19291015195284 78.5609756097561 1.38
175 1.31584834894892 74.2073170731707 1.25
176 1.31639570800558 45.7958780487805 5.252
178 1.46926643734914 57.9872195121951 5.052
179 1.40594641069797 50.2111707317073 6.413
180 1.09647989899152 69.4684146341464 2.432
182 1.05371144915386 63.6389512195122 3.903
183 1.33643871161931 71.1041707317073 2.349
184 1.02431382156777 74.5439024390244 1.5
185 1.60160278822598 75.2587804878049 3.116
186 1.14445800028724 46.769512195122 3.613
188 1.44475131617942 48.3685853658537 6.249
189 1.32841693863656 55.6261951219512 4.354
190 2.10584117382791 73.4659024390244 1.629
191 1.36260080206607 66.3237804878049 3.477
192 1.13864265417886 60.6236585365854 5.7
193 1.29963688140237 64.5983170731707 2.523
194 1.4348770461158 74.2024390243903 2.04
195 1.04188073164151 71.7380487804878 4.059
196 2.13409793968775 72.8106585365854 2.145
197 1.15526870638783 69.0661463414634 1.629
199 1.87232387233382 54.942512195122 5.589
200 1.92774274480622 68.2221951219512 1.345
201 1.75407025737258 51.7296829268293 6.425
202 3.36122364975381 77.8390243902439 2.122
203 1.24829655410844 75.8551219512195 2.02
204 1.705097885428 67.4112926829268 2.55
205 1.04334793091593 71.5154634146341 2.131
206 1.71536496083777 73.5624390243902 2.58
207 1.0430002484406 78.7943902439025 1.9149
208 2.24848583732717 74.1653414634146 1.878
209 1.06271154622805 69.9446585365854 4.03
210 1.05686665254805 71.5563658536585 4.043
211 1.62603779764766 63.6653414634146 5.524
212 1.94501811430864 51.0036585365854 2.58
213 1.47328511602944 46.1976341463415 6.182
214 1.48545805638984 45.7970731707317 3.491
group size x y
2 1.35453813069571 76.2213414634146 1.839
3 1.70724971938317 47.5385609756098 6.559
5 1.2414263239684 76.620756097561 1.59
6 1.23445963656565 73.4959512195122 1.734
7 1.58210343546902 49.8474146341463 5.736
8 1.85687165117802 75.2925365853659 2.24
10 1.39264444118851 80.2341463414634 1.41
11 1.62902032242241 81.3951219512195 1.933
12 1.04167138814589 74.6819268292683 1.726
13 1.40257086841488 70.0678536585366 1.9
14 1.26707311212993 75.1063170731708 1.168
15 1.07070694862174 76.2643658536585 1.529
16 2.65488688126024 68.0040243902439 2.356
17 1.44507595380648 79.6804878048781 1.86
18 1.52076623284727 53.9824878048781 5.924
19 1.37545019057888 72.9634146341463 1.48
20 1.14323955506739 74.7586097560976 2.595
21 1.39935988667778 48.975756097561 4.597
22 1.4073674424148 54.7873170731707 5.44
23 1.03269347180663 79.0038048780488 1.7592
24 1.08391997252601 77.6622926829268 2.092
25 1.42647503195721 65.6580975609756 3.475
26 2.88394995163928 72.4270975609756 1.895
27 1.07942402979207 74.6938536585366 1.888
28 1.11256977539285 66.1513170731707 2.565
29 1.18881764683295 52.6636829268293 2.857
30 1.41978012882209 70.4560975609756 1.42
31 1.07275955093307 75.377512195122 2.905
32 1.78520087964037 80.9648780487805 1.6808
33 2.04333492212477 47.5573414634146 6.023
34 1.2780705575383 46.163243902439 4.81
35 1.26760185931388 56.1593414634146 4.625
36 1.37604819688726 81.9926829268293 1.48
37 1.58123796370891 53.3777073170732 4.605
38 1.55802389547971 78.6472195121951 1.889
39 1.6021186563794 50.1609024390244 4.631
40 5.95156775375136 72.8353414634146 1.629
41 1.91411294552454 72.9843414634147 2.43
42 1.28940816888798 78.9462682926829 1.91
43 1.45710611852147 78.5474146341463 1.499
44 1.09397430220747 73.3361951219512 2.561
45 1.0497560570819 75.309756097561 2.2
46 1.14070060225602 79.0214634146342 1.493
47 1.4390964847027 76.9756097560976 1.5
48 2.23273846995009 79.7365853658537 1.38
49 1.12188082401167 56.7550975609756 3.912
50 1.31865759164127 78.4463414634146 1.89
52 1.42465042618421 72.7289512195122 2.651
53 1.81308366241265 72.3890487804878 2.348
54 1.51814294976764 75.1505853658537 2.557
55 1.15708404516497 73.7707317073171 1.65
56 2.18201003344484 72.4754390243903 2.825
57 1.31540398575532 60.1052682926829 4.636
58 1.91818064682788 81.1756097560976 1.46
59 2.23656944937596 57.4507804878049 4.522
60 1.31337982539373 79.5682926829268 1.85
61 1.12441718393128 68.9715853658537 2.735
62 1.04236605090305 68.402756097561 3.587
64 2.09147211267678 80.8682926829268 2.01
65 1.16524768673019 61.3811219512195 3.33
66 2.06592640685459 79.6 1.96
67 1.04224223150497 75.3217804878049 2.28
68 1.28460653661002 72.9846341463415 1.568
69 1.65391775442465 62.8735121951219 4.297
70 1.03005493740592 68.3541463414634 2.247
71 1.17049273175283 57.524243902439 5.056
72 1.43677918078278 52.687243902439 5.407
73 1.10972768544801 50.2472195121951 5.328
74 1.45590474469277 79.9390243902439 1.51
75 1.50247238902733 70.3523414634146 4.122
76 1.05282890854543 75.6378048780488 2.524
77 1.1671452432156 46.9592682926829 5.222
78 1.11924321498286 68.7992195121951 2.315
79 1.35866876905314 82.3756097560976 1.064
80 1.36795530827395 72.2409756097561 3.269
81 1.28623423475618 75.9121951219512 1.47
82 1.42220383299464 61.0747804878049 3.497
83 1.43088104351418 73.7024390243903 1.35
84 3.08218520459554 68.0751463414634 2.176
85 1.28596520246442 79.1414634146342 2.1
86 1.36761389733529 80.9512195121951 2.96
88 5.66280977796966 64.4229512195122 2.702
89 1.73795674607519 67.8711219512195 4.828
90 2.15963262684738 72.2196585365854 1.731
91 1.07573482884594 81.609756097561 2.15
92 2.05228327015575 81.3853658536585 1.42
93 1.05269630635864 79.4984634146342 1.431
94 1.22270687822512 72.3230243902439 2.385
95 1.32703872980682 73.0162195121951 3.8
96 2.53738305686126 82.5875609756098 1.37
97 1.84706487734818 55.1242195121951 4.792
98 1.31353633228934 68.4512195121951 2.8
99 1.50782581884959 61.5808536585366 2.745
101 1.10898856149197 59.8611707317073 5.051
103 1.66977101028003 68.3740975609756 2.038
104 1.9517679912236 79.8326829268293 1.192
105 1.17945248233035 69.4180487804878 2.3835
106 1.22333020103369 74.3782926829268 2.29
108 1.53849069000229 67.0219512195122 2.7
109 1.33688334962458 66.1843902439024 2.946
110 1.27810323784329 72.0473170731707 1.84
111 1.05529799937237 73.9991951219512 2.014
113 1.61160367144815 74.433268292683 2.346
114 1.26045983149587 54.7276341463415 5.382
115 1.19069434614494 45.9315609756098 3.333
116 1.24903088502194 71.8121951219512 1.47
117 1.09436730015225 80.5390243902439 1.61
118 1.20446042042307 72.419512195122 1.44
119 1.32959831458543 74.329 2.689
120 1.75684376573415 71.307756097561 2.345
122 1.25678816429918 68.3486585365854 1.486
123 1.10635483491781 74.0335853658537 1.684
125 1.60719637229065 65.8355365853659 4.793
127 1.19674102150884 74.2671219512195 1.448
128 1.49298957013874 50.1201951219512 6.426
129 1.9731625630183 63.781756097561 2.053
130 1.22043613193465 67.486243902439 2.466
131 1.09620084196326 80.2673414634146 1.015
133 1.25142695119985 57.668243902439 4.671
134 1.08651901473065 79.4317073170732 1.44
135 1.15277665578843 72.5707317073171 1.58
136 1.07529720001073 75.8110487804878 1.863
137 1.51141578618904 51.8047317073171 5.996
138 2.4587031354609 76.2363414634146 2.391
139 1.7107759249812 73.5681219512195 2.702
140 1.64897951409925 48.8983902439024 5.075
141 1.19730571674333 60.9893414634146 3.36
142 1.06615633087808 76.1151219512195 2.166
143 1.52215494566934 53.3344878048781 7.165
144 2.67289722464236 50.4797317073171 5.595
145 1.32368185487115 73.1108048780488 2.715
146 1.5515919943878 80.2512195121951 1.77
147 1.29684338987793 80.5926829268293 1.96
148 1.6969315068606 67.5279512195122 2.913
149 1.28084548403526 80.3512195121951 2.19
150 1.21877951757414 72.9986097560976 2.442
151 1.25618823282096 75.6293170731707 2.546
152 1.72780157188 73.3057073170732 2.576
153 1.06874833742692 74.6910975609756 2.145
154 1.3480107904505 61.7011707317073 4.067
155 2.29327153713092 67.9889268292683 3.255
156 2.75813220438785 64.7219512195122 3.579
157 1.83996067503083 75.5439024390244 1.39
158 1.26357340037113 78.5589268292683 1.6516
159 1.25774435303888 72.272756097561 4.598
160 1.44325156342581 78.5243902439025 1.37
162 1.33953426212912 71.8617073170732 3.059
163 1.15816664126802 77.774512195122 2.395
164 1.63091865404943 72.5658536585366 1.35
165 1.36865518123644 73.6365853658537 1.4
166 2.62087212978159 67.8487804878049 1.49
167 1.43483152402812 54.2061951219512 5.42
168 1.69848270532439 73.4020731707317 2.966
169 1.09581652384068 66.6734634146341 4.358
170 1.03834313186043 73.1634146341463 2.3
171 1.79366960736256 60.4779268292683 4.569
172 1.41292594630198 81.1 1.91
173 1.29905454924149 80.790243902439 1.28
174 1.19306331803142 78.7658536585366 1.53
175 1.31612096129613 74.7048780487805 1.32
176 1.31977428594597 46.4252682926829 5.167
178 1.47580420248083 58.3093658536585 4.978
179 1.41114306798296 50.4051219512195 6.388
180 1.09695250032576 69.7757073170732 2.399
181 1.41065042671437 61.5121951219512 3.85
182 1.05454291419743 63.869756097561 3.816
183 1.33723065218156 71.3108780487805 2.315
184 1.02468964290343 74.5365853658537 1.7
185 1.61355338840772 75.4126097560976 3.058
186 1.14566707993325 47.3419268292683 3.528
188 1.45169418620523 48.605756097561 6.163
189 1.33269166872359 55.8803170731707 4.256
190 2.10674808697616 73.6132682926829 1.614
191 1.36676836622626 66.6559756097561 3.415
192 1.14075465871365 61.0859512195122 5.7
193 1.30146306485405 64.6757073170732 2.479
194 1.43708041489523 74.3024390243903 2.06
195 1.04202588090664 71.8764878048781 4.011
196 2.14115094679007 73.1296341463415 2.129
197 1.15565023597786 69.3051463414634 1.634
199 1.88531969045449 55.7694390243902 5.574
200 1.925234047066 68.2514634146342 1.39
201 1.76684904844944 52.4399756097561 6.337
202 3.3724173740167 77.9390243902439 2.0845
203 1.24868812473706 75.9807317073171 2.01
204 1.71078181015195 67.5669756097561 2.64
205 1.04337204908918 71.7210975609756 2.111
206 1.7213474802242 73.7575609756098 2.55
207 1.04292873568018 78.9447804878049 1.88
208 2.25514831018447 74.3854634146342 1.864
209 1.06350300469174 70.2435853658537 3.974
210 1.05706225652665 71.8137073170732 3.973
211 1.63369877049062 64.1395609756098 5.414
212 1.95025012382009 51.2402195121951 2.536
213 1.48002055680727 47.0524390243902 6.209
214 1.48629386385277 47.0706097560976 3.428
group size x y
2 1.14578367834194 69.4961463414634 5.274
3 1.48343949228399 39.8398292682927 7.785
4 1.03371825964505 72.2480487804878 2
5 1.22993248432629 70.351243902439 3.942
6 1.24281263599024 70.5352195121951 2.381
7 1.38916823040096 40.4100487804878 7.203
8 1.73240841835423 69.9904390243903 3.213
10 1.37423412489141 72.8970731707317 1.66
11 1.52989785018701 74.9048780487805 1.929
12 1.03156169945729 72.6731951219512 2.364
13 1.34295906089749 64.8307317073171 3.092
14 1.27774194361058 70.8754878048781 2.017
15 1.06710014457316 72.5323902439024 1.922
16 2.26935933534592 56.0801951219512 6.075
17 1.42695661054902 73.8880487804878 1.614
18 1.36380426691744 47.1799512195122 7.07
19 1.40609698278427 71.1860975609756 2.02
20 1.0836917169956 70.6175121951219 4.692
21 1.28381132839019 47.5598048780488 6.549
22 1.26949310590158 45.9059024390244 7.021
24 1.06046539596439 71.3482926829268 3.992
25 1.32254661177151 53.5039756097561 5.337
26 2.53630744623078 63.2879024390244 3.848
27 1.06275182079178 68.2450975609756 2.989
28 1.0889079456077 47.5907073170732 6.449
29 1.14031628172787 61.4692682926829 6.012
30 1.4252124311466 70.3704878048781 2.05
31 1.05162179420587 70.7670975609756 5.51
32 1.68288130682166 75.6804878048781 1.69
33 1.71681032855981 46.0901951219512 6.693
34 1.21092255975425 49.4568292682927 5.956
35 1.18742504729291 56.6682926829268 6.036
36 1.34374125636682 76.0339024390244 1.56
37 1.4080788920644 52.3520975609756 7.382
38 1.46207796604901 70.4637804878049 2.65
39 1.41873467601136 51.9681219512195 6.407
40 5.32072761527744 67.5349024390244 2.586
41 1.72202944489622 66.5121951219512 3.744
42 1.21406860479665 73.5440487804878 3.544
43 1.42856378028157 73.9392195121951 1.826
44 1.07483475610877 61.0173170731707 6.174
46 1.11253293854851 75.131487804878 2.415
47 1.43678231661897 70.8078048780488 2.02
48 2.20405160613154 73.3614146341463 1.41
49 1.08360697057353 48.8978780487805 6.62
50 1.30754957321686 74.5512195121951 1.427
51 1.03538376143595 71.4634146341463 3.52
52 1.33581737890677 63.7797317073171 4.19
53 1.6198637399579 61.1255609756098 6.58
54 1.39222998341269 64.1849756097561 4.773
55 1.16611743754272 69.1268292682927 2.08
56 1.9325388094622 57.3074146341463 5.251
57 1.21794918481426 44.0036097560976 6.499
58 1.83794249385595 76.1341463414634 1.936
59 1.82869401389683 43.7421463414634 6.912
60 1.29866849609628 74.2980487804878 1.72
61 1.11058411570903 63.5786829268293 3.813
62 1.03613147302344 65.3735853658537 6.02
64 2.01635444370779 74.5 1.86
65 1.11830039854093 56.5577073170732 5.195
66 2.02086979278198 74.1780487804878 1.78
67 1.03979634463136 65.2791707317073 4.243
68 1.28973061014968 69.4243658536585 2.284
69 1.46098353594856 53.6894634146342 6.392
71 1.10889605196646 49.2307804878049 6.305
72 1.29388007868849 39.8195609756098 6.951
73 1.06709959288525 43.5227073170732 5.776
74 1.42550643352883 74.976 2.024
75 1.36884363547623 58.1876341463415 6.109
76 1.04331931320138 69.9755365853659 3.12
77 1.12482169157083 40.858756097561 6.542
78 1.1189212392612 59.985756097561 3.301
79 1.31193242670234 75.4292682926829 1.86
80 1.26731947628411 60.9993414634146 6.062
81 1.29266083582579 70.4826829268293 1.9
82 1.33189455808918 51.7144146341464 6.154
83 1.44498366408477 69.3578048780488 1.92
84 2.67882069360048 58.5840975609756 4.167
85 1.25373158105788 73.0037804878049 2.957
86 1.2728935189665 74.109756097561 3.13
88 4.67943217101131 56.0903658536585 4.518
89 1.51677499251952 55.8321219512195 6.407
90 1.88266704953722 50.3404146341463 6.517
91 1.06472445866355 77.0378048780488 2.26
92 2.02295185802851 74.8146341463415 1.592
93 1.0476086809579 73.7959268292683 1.434
94 1.20145117135542 70.854 3.559
95 1.20865676930001 67.8975121951219 7.098
96 2.48062293243526 76.9229268292683 1.77
97 1.56998026596003 58.662512195122 7.27
98 1.26351840949669 63.6237317073171 4.068
99 1.35828919422819 45.2767317073171 6.57
100 1.03036861165148 51.9048780487805 4.5
101 1.07773492842698 52.7775853658537 7.033
102 1.02553794037572 63.9512195121951 3.3
103 1.5754645377419 68.4544390243902 2.797
104 1.8530822397699 66.7742682926829 2.42
105 1.17071058578122 66.1626829268293 4.8844
106 1.16659836182921 71.0304878048781 5.14
108 1.53106546896179 66.7878048780488 3
109 1.2503331753385 49.5226829268293 6.345
110 1.22041291417229 66.9278536585366 3.924
111 1.04585952119966 69.8558536585366 4.328
113 1.53021212293348 68.972 3.222
114 1.19378144324252 43.6984878048781 6.964
115 1.1590378167843 54.7937073170732 5.491
116 1.25268550903694 70.8368292682927 1.99
117 1.08140181368058 72.5257073170732 1.49
118 1.2161219887468 69.3282926829268 1.97
119 1.24844254347482 61.9303414634146 7.189
120 1.61987781875885 59.2085853658537 5.416
122 1.25293520316508 65.0227073170732 2.546
123 1.1034359515824 73.9569268292683 2.2
125 1.41294961282404 48.8771707317073 6.24
127 1.18827822185315 69.7059268292683 2.347
128 1.35987059637325 40.6205609756098 7.07
129 1.81750574794669 55.2640975609756 4.346
130 1.18101043561973 57.709 5.867
131 1.06848452462554 73.8723902439024 1.882
133 1.17299534497694 53.8998292682927 6.315
134 1.07676454549321 73.398756097561 1.98
135 1.13490244429675 67.7751707317073 2.412
136 1.05399722577835 54.7048536585366 7.21
137 1.34823420378677 45.0775609756098 7.342
138 2.16564118880221 67.4910975609756 4.333
139 1.51869961002384 67.9913902439024 3.725
140 1.48525020030055 42.7990243902439 6.457
141 1.13935691983808 58.7314878048781 6.259
142 1.05035159386433 68.3170731707317 3.14
143 1.33766923191936 39.7782195121951 7.748
144 2.1994035616036 45.762512195122 6.768
145 1.25194599847093 59.2408292682927 5.89
146 1.51456353196259 75.9885365853659 1.495
147 1.27572031855416 76.0109756097561 1.69
148 1.527885545291 49.3022195121951 5.744
149 1.24140685012171 73.7243902439024 1.95
150 1.15406013281917 62.8887804878049 8.352
151 1.19615507499534 70.6083414634146 3.552
152 1.58033699634246 61.2188292682927 4.729
153 1.05327773901192 65.93 3.839
154 1.2504273544241 54.0581219512195 5.515
155 1.96258622692026 63.5998048780488 4.978
156 2.25867702604487 58.5519756097561 6.483
157 1.81881259086549 71.1024390243903 2.336
158 1.24601503518835 73.9843658536585 2.49
160 1.42815722539552 72.4146341463415 2.19
162 1.25021673313631 66.9393902439025 5.191
163 1.07065601564089 71.9208780487805 5.502
164 1.64544569603421 69.5317073170732 2.166
166 2.6144245765491 67.8060975609756 2.04
167 1.31841665283541 49.6565365853659 8.284
168 1.45459432803836 63.9366341463415 7.05
169 1.0665074995934 58.678756097561 6.525
170 1.03283668377257 68.6829268292683 3.5
171 1.53495601053169 50.0251463414634 6.361
172 1.39236945044861 76.3273170731707 1.65
173 1.22103006146862 72.1640487804878 1.706
174 1.18766797440497 71.0536585365854 1.93
175 1.30565669673486 70.6890243902439 2.28
176 1.24801920622801 43.8061463414634 5.524
178 1.32992212246504 48.9146829268293 7.323
179 1.34050139318188 43.8604878048781 6.749
180 1.08167081376319 66.4660975609756 3.708
182 1.04110297405014 59.7721951219512 6.271
183 1.29797788698746 57.3509268292683 4.87
185 1.42166244396966 67.2638048780488 6.843
186 1.10813969201292 55.5703902439024 6.573
188 1.29521064296116 48.8228048780488 6.756
189 1.23198391942186 50.3641951219512 7.097
190 1.95466537473724 67.2846341463415 3.024
191 1.27679686102654 62.6693170731707 5.561
192 1.10441611784434 38.0129024390244 5.13
193 1.23545603772776 61.4511707317073 4.836
194 1.35272043630097 63.7185609756097 5.018
195 1.03993354379394 68.0494878048781 5.475
196 1.9226271540135 58.0432682926829 4.188
197 1.14353464288735 67.7046097560976 3.253
199 1.60675799218707 50.8036829268293 6.58
200 1.96562045208175 69.0993658536586 1.98
201 1.4964706354648 49.935512195122 7.101
202 3.07068858706771 74.3609756097561 1.8275
203 1.23354003457564 70.7925853658537 2.614
204 1.55898937264966 65.915756097561 4.829
205 1.04186150250221 66.5121951219512 3.692
206 1.54390079473597 68.8403170731708 4.014
207 1.04181682143552 72.0364634146342 3.74
208 2.01517224015185 58.1200243902439 5.004
209 1.04591659567044 59.6648780487805 5.43
210 1.05266942958325 60.966512195122 4.816
211 1.39779821015889 50.8928780487805 9.185
212 1.73219066646139 58.165756097561 4.602
213 1.33951646310876 51.9751463414634 7.015
214 1.38164497006175 60.2358780487805 6.811
group size x y
2 1.37778274542839 76.3995609756098 1.787
3 1.71604059053956 47.8988536585366 6.422
5 1.24121835563222 76.7610975609756 1.558
6 1.23409091675041 73.6455365853658 1.735
7 1.59175657399057 50.2510243902439 5.584
8 1.8606172261317 75.4640975609756 2.226
10 1.39331205355523 80.0829268292683 1.39
11 1.63479646523408 81.5439024390244 1.857
12 1.04168781911881 74.8315365853659 1.713
13 1.40677520975181 70.3176341463415 1.82
14 1.26680425260303 75.2504390243902 1.157
15 1.07088629669339 76.4130243902439 1.541
16 2.66343845421011 68.3252195121951 2.296
17 1.446871358869 79.9829268292683 1.84
18 1.5284457078255 54.4660487804878 5.887
19 1.37450582595425 73.4121951219512 1.57
20 1.14803724248154 74.8897804878049 2.572
21 1.40630727086071 49.4212682926829 4.465
22 1.4133996013648 55.1734146341463 5.366
23 1.03279606530525 79.1461707317073 1.7616
24 1.08462095088668 77.7979268292683 2.066
25 1.42991813111345 65.9638536585366 3.407
26 2.89240645114134 72.7598048780488 1.857
27 1.08013765936277 74.9752682926829 1.895
28 1.11358324009202 66.5320487804878 2.476
29 1.18969763675908 53.0115365853659 2.804
30 1.41931690354942 70.4073170731707 1.42
31 1.0737038139745 75.618512195122 2.845
32 1.79000969816747 80.6617804878049 1.668
33 2.05802023742967 47.7969268292683 5.897
34 1.28075804757734 46.8837073170732 4.719
35 1.27167489334838 56.558756097561 4.584
36 1.37840719697484 82.0439024390244 1.5
37 1.58664698657436 54.0559024390244 4.518
38 1.56068013185014 78.7627073170732 1.876
39 1.60989056840319 50.5829268292683 4.561
40 5.96389723693203 73.056512195122 1.614
41 1.9206652905669 73.2099756097561 2.403
42 1.29159715966019 79.0691707317073 1.875
43 1.45695366135863 78.7732195121951 1.481
44 1.0940789277212 73.5868048780488 2.477
45 1.04988478743806 76.1560975609756 2.1
46 1.14158342382664 79.1969512195122 1.485
47 1.44041897245288 77.0780487804878 1.49
48 2.23117753832421 79.8365853658537 1.36
49 1.12277090347528 57.1450487804878 3.827
50 1.31951243749776 78.5975609756098 1.84
52 1.42756227446787 72.9619756097561 2.615
53 1.82053801682261 72.622756097561 2.308
54 1.52248324592271 75.3021951219512 2.517
55 1.15706024185594 74.8243902439024 1.62
56 2.19201373935764 72.7341219512195 2.778
57 1.32051864703214 60.5569268292683 4.543
58 1.92173052022038 81.4756097560976 1.39
59 2.25305057269396 58.1181707317073 4.352
60 1.31413114869275 79.719512195122 1.86
61 1.12505731530473 69.1020243902439 2.7
62 1.04225340325061 68.5830487804878 3.517
64 2.09428200066837 81.0682926829268 2
65 1.16726894557063 61.8491219512195 3.286
66 2.06954511928416 80.0512195121951 1.94
67 1.04232190251332 75.4923414634146 2.258
68 1.28548638689029 73.1471463414634 1.563
69 1.66209478560795 63.3881707317073 4.236
71 1.17320412059648 57.8382195121951 4.977
72 1.44264221532067 53.1699268292683 5.327
73 1.11130416495962 50.544756097561 5.259
74 1.45683079194744 80.1878048780488 1.52
75 1.50870836244826 70.5846341463415 4.05
76 1.05288336133421 75.8167804878049 2.496
77 1.16901646030187 47.313243902439 5.142
78 1.11965508203786 69.1978780487805 2.289
79 1.35905559776741 82.7756097560976 1.055
80 1.37164600882635 72.532 3.202
81 1.28607252870869 76.1682926829268 1.5
82 1.42497628577433 61.4346829268293 3.418
83 1.43054718600155 73.9048780487805 1.32
84 3.09655138520505 68.4709756097561 2.145
85 1.28703952853644 79.8878048780488 2.07
86 1.37203815012016 81.4048780487805 2.96
88 5.69342485215982 64.7785609756098 2.663
89 1.74709716407113 68.091512195122 4.766
90 2.16665080007955 72.4920731707317 1.701
91 1.07586729642051 81.7512195121951 2.23
92 2.05544917467648 81.3853658536585 1.41
93 1.05287356047024 79.6755365853659 1.444
94 1.22305566567435 72.5946585365854 2.357
95 1.33066902452783 73.1509512195122 3.8
96 2.53650343904921 82.9314634146342 1.37
97 1.85847563842332 55.8393658536585 4.755
98 1.31543734571069 69.1024390243903 2.9
99 1.51152467592936 62.0721951219512 2.659
101 1.11040638727874 60.2290731707317 4.986
103 1.67153691882385 68.4323902439024 2.032
104 1.95403088407635 80.2973170731707 1.149
105 1.18017770406757 69.6487804878049 2.3368
106 1.22937637599798 74.4875609756098 2.298
108 1.54565232020163 68.4292682926829 2.6
109 1.34040434970345 66.651512195122 2.843
110 1.28012038497166 72.2297804878049 1.819
111 1.05570917480777 74.2380731707317 1.997
113 1.61511923200511 74.5666097560976 2.333
114 1.265691752184 55.4791951219512 5.312
115 1.19155015886229 46.6693658536585 3.265
116 1.24833650663918 72.9146341463415 1.55
117 1.09525875751759 80.6365853658537 1.59
118 1.20395011922806 73.0804878048781 1.31
119 1.33204663044695 74.5455609756098 2.627
120 1.76076379305139 71.5894146341464 2.314
122 1.25662579053861 68.6114390243903 1.482
123 1.10642085938354 74.1500731707317 1.669
125 1.61580633529072 66.1913658536585 4.72
127 1.19682515670412 74.4438780487805 1.435
128 1.50083029946645 50.5360487804878 6.361
129 1.97664140725559 64.1995121951219 2.027
130 1.22208363947824 67.8641219512195 2.496
131 1.0975467918734 80.5210487804878 1.056
133 1.25483350453365 57.9196341463415 4.602
134 1.08673705649053 79.8926829268293 1.43
135 1.15316789760881 72.8824390243903 1.5
136 1.07600878714369 76.1956585365854 1.802
137 1.51923018641154 52.6809512195122 5.994
138 2.46790335360105 76.4655609756098 2.356
139 1.71710139357457 73.7908048780488 2.666
140 1.65745882140382 49.2780243902439 4.993
141 1.19883390747607 61.6185853658537 3.288
142 1.0663790789216 76.2839024390244 2.2
143 1.53207556397261 53.8158292682927 7.115
144 2.69582500821442 50.9494146341464 5.56
145 1.32582898779737 73.4344390243903 2.67
146 1.55301284506607 80.5487804878049 1.79
147 1.29872404885454 80.7951219512195 1.98
148 1.70084487299184 68.0016829268293 2.812
149 1.28238672483248 80.7024390243902 2.14
150 1.22170832099086 73.0040975609756 2.376
151 1.25843132303548 75.801243902439 2.515
152 1.73171608038399 73.5430731707317 2.538
153 1.06908874329117 74.8895853658537 2.116
154 1.35208098804878 62.0739024390244 4.01
155 2.30406849362906 68.225512195122 3.194
156 2.77430165252056 64.9552195121951 3.504
157 1.84024537165999 75.6951219512195 1.4
158 1.26285417131584 78.8069756097561 1.6528
159 1.26150605365993 72.4569512195122 4.526
160 1.44346174190811 78.7268292682927 1.32
162 1.34255659519619 72.0683170731707 3.004
163 1.16973643736856 77.9391951219512 2.324
164 1.63043116789319 73.309756097561 1.38
165 1.36791604503325 73.6853658536586 1.44
166 2.62064372932034 68.6048780487805 1.54
167 1.4413109138184 54.6658048780488 5.398
168 1.70415716587536 73.6321707317073 2.887
169 1.09691354708966 67.0671219512195 4.296
170 1.03842558874825 73.0341463414634 2.4
171 1.8030949070528 60.7854634146342 4.481
172 1.41469000152145 81.3512195121951 1.94
173 1.30360611159016 81.2414634146342 1.22
174 1.19394107907281 78.9707317073171 1.53
175 1.31647101756505 74.909756097561 1.41
176 1.32291466515644 46.9576829268293 5.077
178 1.48252613376573 58.6323170731707 4.9
179 1.41652348981177 50.6309024390244 6.363
180 1.09740969907866 70.0670243902439 2.367
182 1.05538261763055 64.1075365853659 3.734
183 1.33809968809445 71.5206097560976 2.283
184 1.02418750523448 75.5878048780488 1.7
185 1.62380730882392 75.5603414634146 2.997
186 1.14691641927517 47.8888292682927 3.445
188 1.45862144551585 48.8853170731707 6.073
189 1.33702973862794 56.2028048780488 4.162
190 2.10751707527689 73.7680243902439 1.598
191 1.37108659873184 66.9676829268293 3.355
192 1.14285351370675 61.5421707317073 5.7
193 1.30334269308841 64.7599512195122 2.437
194 1.43941807617896 74.4512195121951 2.05
195 1.04215999540641 72.0138780487805 3.962
196 2.1482458314913 73.4246341463415 2.111
197 1.15601066516422 69.5360975609756 1.638
199 1.89866175198149 56.5897317073171 5.559
200 1.92318228357562 69.19 1.46
201 1.77983948364501 53.0705853658537 6.244
202 3.38283936910166 78.090243902439 2.0007
203 1.24911693791079 76.1112195121951 1.9966
204 1.71680548701874 67.7647073170732 2.53
205 1.04339146194415 71.9212682926829 2.088
206 1.72725983168405 73.9424390243903 2.52
207 1.04284587326 79.0698292682927 1.845
208 2.26178660586913 74.6055853658537 1.845
209 1.0642901899591 70.5350243902439 3.921
210 1.05726624290985 72.0635609756098 3.912
211 1.64133525873431 64.593756097561 5.307
212 1.95537006388121 51.6113170731707 2.495
213 1.48707331043718 47.8145365853659 6.234
214 1.48828567474433 48.4504878048781 3.36
group size x y
2 1.39510240687344 76.5736097560976 1.749
3 1.72489893124151 48.2821951219512 6.288
5 1.24117837510663 76.9009512195122 1.536
6 1.23390669496652 73.7835609756098 1.736
7 1.6014127301415 50.6536585365854 5.443
8 1.86437895812127 75.6321463414634 2.211
10 1.39388801735055 80.3829268292683 1.44
11 1.63895962892766 81.6951219512195 1.87
12 1.04172753755636 74.9751707317073 1.699
13 1.40920433956873 70.5065121951219 1.92
14 1.26654338550314 75.4004390243903 1.148
15 1.07106753617568 76.5728292682927 1.551
16 2.67244018744894 68.6348048780488 2.245
17 1.44891884892881 80.2341463414634 1.84
18 1.53618772818615 54.9241951219512 5.85
19 1.37324733672286 73.5121951219512 1.49
20 1.15174020397107 75.0238292682927 2.54
21 1.41321979912912 49.8772195121951 4.338
22 1.4193786523469 55.5855853658537 5.287
23 1.03265126711054 79.2885365853658 1.764
24 1.08529295353825 77.9320243902439 2.042
25 1.43341687886087 66.2685609756098 3.348
26 2.9007955179832 73.0995365853658 1.83
27 1.08082827512886 75.2221219512195 1.896
28 1.11458887229967 66.9088536585366 2.399
29 1.1905555946805 53.109512195122 2.75
30 1.41894153652077 70.4048780487805 1.44
31 1.07464939791945 75.8399512195122 2.79
32 1.79467738675904 80.7978048780488 1.6269
33 2.07282929570275 48.0695853658537 5.775
34 1.28350275328756 47.6184634146341 4.631
35 1.27561718765367 56.9601951219512 4.544
36 1.3803849194688 82.2463414634147 1.52
37 1.59253704520816 54.7415609756098 4.432
38 1.56329897018362 78.8857317073171 1.862
39 1.61773667559245 51.062756097561 4.487
40 5.97589860053269 73.2730975609756 1.598
41 1.9270985932324 73.4296829268293 2.1
42 1.29375560031203 79.1926097560976 1.848
43 1.45681069542112 78.9641463414634 1.467
44 1.09426436919397 73.7740487804878 2.405
46 1.14243920566644 79.3803902439025 1.476
47 1.4411037597362 77.4243902439025 1.49
48 2.23023474033586 79.9878048780488 1.39
49 1.12368495830229 57.5273902439024 3.75
50 1.32022382686619 79.1 1.87
52 1.43042135826758 73.2000243902439 2.58
53 1.82816658883568 72.8525365853659 2.264
54 1.52679878021701 75.4622926829268 2.479
55 1.15705376013208 75.4292682926829 1.63
56 2.20206954825143 72.9752682926829 2.733
57 1.32576734728544 60.9941951219512 4.453
58 1.92335941154522 81.6268292682927 1.38
59 2.26961229091624 58.7150975609756 4.193
60 1.31485155181951 79.8707317073171 1.87
61 1.12565383234162 69.2258292682927 2.668
62 1.04217360283911 68.7648292682927 3.451
64 2.09705509949337 81.3682926829268 2.03
65 1.16930734390482 62.2866829268293 3.25
66 2.07351931575463 80.4024390243902 1.98
67 1.04240513408486 75.6604390243903 2.235
68 1.28684143371141 73.3273414634146 1.555
69 1.67003358762149 63.8372682926829 4.17
70 1.03023208575499 70.2390243902439 2.2
71 1.17597681956669 58.1600243902439 4.896
72 1.44851557902644 53.6385853658537 5.246
73 1.11289879882655 50.8408048780488 5.185
74 1.45733174441395 80.3878048780488 1.51
75 1.51508279148532 70.8254146341463 3.983
76 1.05302649199332 75.9942682926829 2.47
77 1.17096107786129 47.7006585365854 5.063
78 1.12004665038124 69.5491463414634 2.262
79 1.36037798165945 82.9780487804878 1.127
80 1.37539618029902 72.8259268292683 3.139
81 1.28570997504623 76.4756097560976 1.46
82 1.42782485480731 61.763 3.34
83 1.43006054704893 74.2073170731707 1.25
84 3.11058384032634 68.8896585365854 2.117
85 1.28753606747834 80.8951219512195 2.07
86 1.37545524363067 81.6024390243903 3.03
88 5.72386275973563 65.1313414634146 2.625
89 1.75693215545613 68.4860487804878 4.702
90 2.17392104036275 72.7518536585366 1.67
91 1.07581140746348 81.8975609756098 2.2
92 2.05799494943173 81.7365853658537 1.41
93 1.05304010334046 79.832 1.46
94 1.2232878879605 72.8471219512195 2.329
95 1.33431526282325 73.2896585365854 3.8
96 2.53585582306045 82.8426829268293 1.39
97 1.87008780745962 56.4970731707317 4.718
98 1.3173269709189 69.3 3.06
99 1.51550224242945 62.5362195121951 2.581
101 1.11182096756127 60.6262682926829 4.919
103 1.67330759738391 68.5321463414634 2.022
104 1.95624003313003 80.5658536585366 1.226
105 1.18090590155461 69.8843902439024 2.2893
106 1.23501521507368 74.6047317073171 2.295
108 1.54953612724941 68.2953658536585 2.59
109 1.34385980482447 67.064 2.747
110 1.283214396421 72.408756097561 1.8
111 1.05607295814329 74.4399024390244 1.98
113 1.61816584785009 74.7226097560976 2.313
114 1.27040622000758 56.1475853658537 5.238
115 1.19246824299707 47.3650731707317 3.199
116 1.24636715672763 73.2682926829268 1.55
117 1.09614551089886 80.6317073170732 1.63
118 1.20323072166471 73.4829268292683 1.17
119 1.33416607841588 74.7531219512195 2.564
120 1.76520069326743 71.8646341463415 2.279
122 1.25649806173047 68.9037073170732 1.475
123 1.10647910782965 74.3110975609756 1.656
125 1.62451880346046 66.4670731707317 4.651
127 1.19690309897939 74.6188536585366 1.422
128 1.5086532915459 50.9548292682927 6.294
129 1.98033703380441 64.6620975609756 2.002
130 1.22376558900809 68.1949756097561 2.504
131 1.09877328279841 80.7753170731707 1.092
133 1.25820110242729 58.2169512195122 4.533
134 1.08695061351642 80.9487804878049 1.38
135 1.15352348495743 72.9673170731707 1.47
136 1.0767399478096 76.5514146341463 1.752
137 1.52702047076859 53.4626341463415 5.99
138 2.47710227350875 76.6837804878049 2.32
139 1.72334001471385 74.0245609756098 2.635
140 1.66593772557364 49.6969268292683 4.912
141 1.20047798327869 62.0700975609756 3.217
142 1.06699137434406 76.3016829268293 2.141
143 1.54225412941183 54.2656341463415 7.063
144 2.71927509765888 51.4100243902439 5.525
145 1.32806177244494 73.7292195121951 2.622
146 1.55443357651034 80.7024390243902 1.79
147 1.30059331117473 80.9975609756098 1.95
148 1.70480928210117 68.3948292682927 2.727
149 1.2840857884411 80.7024390243902 2.16
150 1.22745859504757 73.1246097560976 2.309
151 1.26065212842408 75.974243902439 2.484
152 1.73585946964549 73.7649756097561 2.501
153 1.06944320753759 75.0768780487805 2.09
154 1.35610892927877 62.4406097560976 3.951
155 2.31507808101207 68.4843170731707 3.142
156 2.79016684008588 65.1988536585366 3.423
157 1.84059862972608 76.2463414634146 1.38
158 1.26217723733309 78.9132926829268 1.797
159 1.26533141573483 72.6436829268293 4.453
160 1.44356323648856 79.0268292682927 1.36
162 1.34557820445517 72.277 2.954
163 1.17957260259032 78.0975853658537 2.271
164 1.62980844064744 73.4585365853659 1.33
165 1.36717650472808 73.9365853658537 1.4
166 2.62337671318178 68.8048780487805 1.54
167 1.44770391864268 55.0571219512195 5.371
168 1.71020330701736 73.8504146341463 2.811
169 1.09800395667352 67.4651951219512 4.229
170 1.03901641126992 73.4560975609756 2.1
171 1.81224807626015 61.108243902439 4.4
172 1.41646287320655 81.4512195121951 1.98
173 1.30631002460798 81.5414634146342 1.15
174 1.19436597491933 79.4219512195122 1.57
175 1.31680739591941 75.1121951219512 1.4
176 1.32607449672684 47.4021951219512 4.982
178 1.48945266543718 58.9540731707317 4.819
179 1.42215819388456 50.8955365853659 6.339
180 1.09786343802703 70.3353170731707 2.336
182 1.05620994299203 64.3492926829268 3.657
183 1.33904847472656 71.7323658536586 2.25
185 1.63119765804431 75.7025609756098 2.934
186 1.14813779494805 48.3428048780488 3.364
188 1.46561974170723 49.1948292682927 5.981
189 1.3414371365959 56.5887073170732 4.072
190 2.10856093967535 73.9276585365854 1.579
191 1.37554707407999 67.2599024390244 3.297
192 1.14493927960121 61.9998536585366 5.578
193 1.30525968142724 64.863512195122 2.399
194 1.44171822619078 74.6024390243903 2.13
195 1.04227858360856 72.1506585365854 3.911
196 2.15544851120403 73.6966585365854 2.088
197 1.1563411425578 69.755 1.639
199 1.91229176452033 57.3874878048781 5.544
200 1.92134997060731 70.2756097560976 1.445
201 1.79305308969279 53.6146341463415 6.149
202 3.39274080598458 78.5414634146342 1.931
203 1.24954568176294 76.2368292682927 1.9856
204 1.72699713555347 68.001 2.499
205 1.04340574937583 72.1125365853659 2.064
206 1.73309313408358 74.1273170731707 2.49
207 1.04275072928642 79.1894390243903 1.8
208 2.26842518131289 74.828243902439 1.822
209 1.06507226157862 70.8194878048781 3.869
210 1.05747997151311 72.3063902439024 3.86
211 1.64898640171608 65.0304634146342 5.2
212 1.961849435558 52.0814878048781 2.458
213 1.49446448077917 48.4554878048781 6.258
214 1.49183708702959 49.8608780487805 3.29
group size x y
2 1.40627103070169 76.7425365853659 1.721
3 1.73387788718132 48.6805853658537 6.158
5 1.24132184448708 77.0422682926829 1.523
6 1.23393138229864 73.9160243902439 1.736
7 1.61105096673341 51.0593170731707 5.313
8 1.86816629502379 75.7976585365854 2.196
10 1.39468286273346 81.0317073170732 1.42
11 1.64269421876362 81.8463414634146 1.87
12 1.0418017695397 75.1127804878049 1.687
13 1.41188122839943 70.6528536585366 1.92
14 1.26631388769356 75.5528536585366 1.14
15 1.07125065263514 76.7392195121951 1.561
16 2.68202427468247 68.9373658536585 2.202
17 1.45204473173157 80.4853658536586 1.84
18 1.54398479198066 55.3579024390244 5.812
19 1.36860765719061 74.1634146341463 1.51
20 1.1542355604062 75.1562682926829 2.501
21 1.42005257523404 50.3370975609756 4.218
22 1.42529501949739 56.0144390243902 5.206
23 1.03249215523601 79.2885365853658 1.764
24 1.08593536793769 78.0651219512195 2.017
25 1.43698607652415 66.5773658536585 3.294
26 2.90917558551194 73.4352195121951 1.811
27 1.08149339604773 75.4522682926829 1.891
28 1.11559320146816 67.2847073170732 2.332
29 1.19139684563069 53.0184878048781 2.696
30 1.41856583286564 70.6512195121951 1.51
31 1.0755961307802 76.0529024390244 2.741
32 1.79882902870108 80.929243902439 1.6269
33 2.0877384870066 48.3693170731707 5.657
34 1.28630590599128 48.3456097560976 4.546
35 1.27940701760612 57.3561951219512 4.504
36 1.38250755416202 82.6951219512195 1.52
37 1.59895841229079 55.421243902439 4.348
38 1.56588374262356 79.016756097561 1.849
39 1.62565495576034 51.5764634146342 4.409
40 5.98783397928261 73.4856341463415 1.582
41 1.93340583640734 73.6419024390244 2.1
42 1.29588997699947 79.3150975609756 1.827
43 1.45669490032735 79.1256341463415 1.457
44 1.09455403571058 73.9167804878049 2.344
46 1.14327024099599 79.5628536585366 1.468
47 1.44060615896114 77.8731707317073 1.43
48 2.2303907714397 80.7414634146342 1.36
49 1.1246249115231 57.9091707317073 3.679
50 1.32088464270046 79.8 1.75
52 1.43322459939137 73.437512195122 2.544
53 1.83595388162802 73.0799024390244 2.217
54 1.5310925087271 75.6303902439025 2.443
55 1.15704002977894 76.1268292682927 1.52
56 2.21216469613443 73.2019024390244 2.691
57 1.33116827763125 61.4170731707317 4.366
58 1.92439747954542 82.3268292682927 1.36
59 2.28625239740355 59.2430975609756 4.045
60 1.3155831844048 80.4707317073171 1.83
61 1.12619488707677 69.3493170731707 2.639
62 1.04213079044248 68.9481219512195 3.39
64 2.09992271517558 81.6682926829268 2.03
65 1.17136173003952 62.6912926829268 3.221
66 2.07766045449488 80.7536585365854 1.98
67 1.04249168750062 75.8270731707317 2.21
69 1.67769423276663 64.2243170731707 4.1
71 1.1788109784313 58.4847073170732 4.814
72 1.45436825938317 54.092243902439 5.162
73 1.11451268742053 51.1368780487805 5.106
74 1.45717942321946 80.7439024390244 1.43
75 1.52159959549786 71.0722195121951 3.922
76 1.05327339623957 76.1687804878049 2.446
77 1.17298469895976 48.1125853658537 4.988
78 1.12041273817064 69.862512195122 2.234
79 1.36159317010975 83.4219512195122 1.204
80 1.37920945177584 73.1132195121951 3.078
81 1.28123076341384 76.8756097560976 1.46
82 1.43076667843403 62.0619024390244 3.264
83 1.42945120891011 74.8585365853659 1.23
84 3.12424290345213 69.319243902439 2.09
85 1.29081295216108 80.4951219512195 2.05
86 1.37894654490353 81.7560975609756 3
88 5.75419357144632 65.4782682926829 2.589
89 1.7666223847838 68.984512195122 4.636
90 2.18148035093499 72.9994146341463 1.636
91 1.07593009185441 82.3585365853659 2.02
92 2.06009381707488 82.0878048780488 1.41
93 1.0531949917378 79.9724146341463 1.479
94 1.22350744753232 73.0763902439025 2.302
95 1.33803168860732 73.4288780487805 3.7
96 2.53806455575853 82.5912195121951 1.39
97 1.88190637792695 57.0808780487805 4.68
98 1.31926628849799 69.6024390243903 3.06
99 1.51980955764545 62.9774146341463 2.51
101 1.11323021722919 61.0417804878049 4.85
103 1.67510263907572 68.6756585365854 2.01
104 1.95980459274443 80.8658536585366 1.244
105 1.18168574140544 70.1487804878049 2.2
106 1.24020027958562 74.7283414634147 2.283
108 1.55348603598375 68.8934146341464 2.59
109 1.34722374048381 67.4323658536586 2.658
110 1.28457369256009 72.5872195121951 1.783
111 1.05638140362831 74.611 1.954
113 1.62139116466364 74.9019756097561 2.287
114 1.27453999707246 56.7428536585366 5.161
115 1.19345598809901 47.9837317073171 3.137
116 1.23653006730592 73.5634146341464 1.76
117 1.09723606260486 80.9878048780488 1.52
118 1.19482258084628 73.5756097560976 1.34
119 1.33589585569413 74.9501951219512 2.502
120 1.77022826312237 72.1319024390244 2.242
122 1.25645256034069 69.2124634146341 1.466
123 1.10652828990836 74.5041463414634 1.644
125 1.63333886916777 66.6956829268293 4.584
127 1.19698176212345 74.7880731707317 1.411
128 1.5164314514225 51.3720731707317 6.227
129 1.98428951870136 65.1501707317073 1.976
130 1.22547423226882 68.4881707317073 2.494
131 1.09985904739003 81.0185853658537 1.123
133 1.26152534018033 58.5467073170732 4.464
134 1.08702306523658 82.0048780487805 1.38
135 1.15383223509053 73.2668292682927 1.45
136 1.07749239706267 76.8829024390244 1.709
137 1.53475751223319 54.1363658536585 5.985
138 2.48631385428111 76.889512195122 2.283
139 1.72949512025981 74.2608536585366 2.607
140 1.67441791593295 50.1506097560976 4.832
141 1.20225433674088 62.3324146341464 3.15
142 1.06754607982124 76.6105609756098 2.122
143 1.55269603193365 54.6909268292683 7.012
144 2.743250649522 51.8631219512195 5.489
145 1.3303931221748 73.9960975609756 2.573
146 1.5557286901908 81.2048780487805 1.76
147 1.30255228503441 81.2951219512195 1.88
148 1.70887265403402 68.7259268292683 2.658
149 1.28530155146782 80.9048780487805 2.1
150 1.23631872999614 73.3418048780488 2.24
151 1.2628496646645 76.1478292682927 2.454
152 1.7402738782357 73.9763658536585 2.464
153 1.06981655330336 75.2560731707317 2.065
154 1.3600896584393 62.8008048780488 3.891
155 2.32635350424968 68.7572926829268 3.099
156 2.8056965743594 65.4489024390244 3.336
157 1.84444834781911 76.7463414634146 1.3
158 1.26121835640073 79.0281463414634 1.782
159 1.26934526354197 72.8309512195122 4.379
160 1.44188368907917 80.7219512195122 1.35
162 1.34860117945151 72.4847073170732 2.911
163 1.18769598232794 78.2492195121951 2.232
164 1.62902667824865 74.5121951219512 1.25
165 1.36635161370904 74.5853658536585 1.36
166 2.6266286131033 69.0048780487805 1.54
167 1.45401748986138 55.3945853658537 5.339
168 1.71673225310784 74.0583658536585 2.738
169 1.09908862471069 67.8633170731707 4.157
170 1.03846001392277 73.4560975609756 2.1
171 1.82107494089505 61.4477317073171 4.325
172 1.41803956828137 81.8024390243903 1.9
173 1.30952593448581 81.8926829268293 1.2
174 1.19456870494055 79.9707317073171 1.56
175 1.3158795818454 75.9585365853659 1.45
176 1.32928048393444 47.7763658536585 4.884
178 1.4965889337185 59.2721951219512 4.735
179 1.42807361106113 51.1945609756098 6.319
180 1.09831640075617 70.5806097560976 2.307
182 1.05701893713583 64.5920487804878 3.585
183 1.34008540643973 71.9451463414634 2.217
185 1.63745699553236 75.8438048780488 2.87
186 1.14932073753449 48.6589268292683 3.286
188 1.47270630052784 49.5232682926829 5.886
189 1.34591501168763 57.0265853658537 3.985
190 2.11001271852622 74.0911951219512 1.559
191 1.38014011100311 67.5357317073171 3.24
192 1.14705506205255 62.4610243902439 5.453
193 1.30721411372591 64.9978780487805 2.363
194 1.44432316531781 74.7536585365854 2.13
195 1.04237828191803 72.286243902439 3.861
196 2.16280257974975 73.9441707317073 2.063
197 1.15663606769433 69.9633658536585 1.637
199 1.92619784494062 58.1512195121951 5.529
200 1.91969515147199 70.8092682926829 1.459
201 1.80648589703303 54.074243902439 6.052
202 3.40147216569798 78.6414634146341 1.8945
203 1.24997195020971 76.4121951219512 1.976
204 1.73684505978859 68.2653170731707 2.499
205 1.04341449011203 72.2954146341464 2.037
206 1.73884404905315 74.3121951219512 2.46
207 1.04264604275467 79.3055853658537 1.8
208 2.27502919277424 75.0514146341464 1.795
209 1.06584687196172 71.097512195122 3.82
210 1.05770493787586 72.543243902439 3.815
211 1.65665853660046 65.4516585365854 5.092
212 1.96756173220867 52.6147804878049 2.425
213 1.50220505402401 48.9688292682927 6.279
214 1.49711049295195 51.2364390243903 3.219
group size x y
2 1.14952023423666 69.8756829268293 5.209
3 1.47586521423923 40.149243902439 7.807
5 1.23259161219798 70.7154146341463 3.904
6 1.24457226951893 70.2919268292683 2.406
7 1.39623276095172 40.5297804878049 7.205
8 1.73802665756122 70.2121219512195 3.163
10 1.37393156329287 72.9685365853659 1.56
11 1.53322318815227 75.1463414634146 1.924
12 1.03181286992014 72.8490243902439 2.353
13 1.34571352352801 65.0080975609756 3.026
14 1.27906860292694 71.2393658536586 1.992
15 1.06726530906914 72.8072926829268 1.889
16 2.28629990490827 56.3081219512195 5.903
17 1.42693963820632 73.8690243902439 1.56
18 1.36842129276263 47.5113414634146 7.059
19 1.40660442757816 71.3863414634146 2
20 1.08484452511625 70.9411463414634 4.583
21 1.28794074305004 47.8462926829268 6.514
22 1.27337980027009 46.1964634146342 7.01
24 1.06135755457025 71.6538292682927 3.906
25 1.32637795449874 54.2558292682927 5.259
26 2.55385862784068 63.6762926829268 3.721
27 1.06347180995522 68.5236585365854 2.965
28 1.08998562943152 48.1824146341464 6.399
29 1.14274917421387 61.9666585365854 5.88
30 1.42666816242626 70.4620243902439 2.11
31 1.05239089555157 71.0464146341463 5.336
32 1.68631493413139 76.0363414634146 1.68
33 1.726081411697 46.2006829268293 6.748
34 1.21411386358638 49.6525365853659 5.955
35 1.19021698221415 56.8532195121951 5.952
36 1.34447987612775 76.0312195121951 1.51
37 1.41664325277746 52.6931707317073 7.253
38 1.46583580072272 71.0063658536586 2.651
39 1.42509390679069 52.3071951219512 6.377
40 5.35205705496802 67.7998536585366 2.602
41 1.73005700556368 66.9430975609756 3.63
42 1.21708903433695 73.9583902439024 3.517
43 1.42952350208243 74.0802682926829 1.825
44 1.07574008312195 61.5797073170732 6.075
46 1.1127271007565 75.3154878048781 2.438
47 1.43697360242952 70.5914634146341 1.97
48 2.20247426226618 73.6377073170732 1.33
49 1.0845162240462 49.3273170731707 6.592
50 1.30744384453489 74.4204878048781 1.377
52 1.33965348878107 64.2024390243903 4.082
53 1.63003288431916 61.968512195122 6.38
54 1.39714091241281 64.8221463414634 4.629
55 1.16669199289367 69.3756097560976 2.16
56 1.94320044357473 57.8743658536585 5.189
57 1.22141447136037 44.1779024390244 6.481
58 1.83992398484552 75.9090243902439 1.792
59 1.8414310510378 43.842243902439 6.95
60 1.29956123235149 74.2009756097561 1.74
61 1.11201454625582 63.8533414634146 3.755
62 1.03679668022287 65.4535853658537 5.894
64 2.01938410581691 74.8 1.86
65 1.11984612273753 57.4076341463415 5.197
66 2.02104389619777 74.3780487804878 1.77
67 1.04046282645341 65.4833658536585 4.245
68 1.2910086615281 69.4941707317073 2.277
69 1.46908433492965 53.9646585365854 6.31
71 1.11100268335425 50.0315853658537 6.28
72 1.29762374151004 40.3074146341463 6.949
73 1.07000704035948 43.9001707317073 5.802
74 1.42674682577411 75.2491707317073 1.94
75 1.37347176024184 58.6529756097561 6.054
76 1.04384888338393 70.2585365853659 3.088
77 1.12626724832293 41.2253414634146 6.642
78 1.11844683121978 60.1744146341463 3.174
79 1.31431460627676 75.2756097560976 1.722
80 1.27144513141939 61.8017317073171 5.932
81 1.29341878443051 70.2748780487805 1.88
82 1.33582655568576 52.1255609756098 6.149
83 1.44464928107517 68.9736585365854 1.73
84 2.69755531353465 59.0631219512195 4.028
85 1.25463452383937 73.2223902439025 2.759
86 1.2753916221875 74.4585365853658 3.106
88 4.72080748806358 56.419756097561 4.439
89 1.523653465744 55.9501707317073 6.343
90 1.90085215428923 50.105756097561 6.473
91 1.065168615084 76.8456097560976 2.24
92 2.02313753791245 74.640243902439 1.52
93 1.04783654133347 74.0064634146342 1.433
94 1.20331230784903 70.9734146341463 3.477
95 1.21287819610448 68.2876341463415 7.022
96 2.48567716322558 76.9614634146342 1.8
97 1.58094141799845 59.0272682926829 7.165
98 1.26627837029222 64.0422682926829 4.086
99 1.36505857647047 48.2511951219512 6.758
101 1.07888245932994 53.196 6.921
103 1.5801517281714 68.8146097560976 2.807
104 1.85939433212261 67.2392682926829 2.08
105 1.17243664074571 66.3826829268293 4.4761
106 1.17039945116954 71.2941463414634 4.876
108 1.53412908767016 67.6621951219512 3.04
109 1.25357772453673 49.9567073170732 6.363
110 1.22120982036739 67.1083902439024 3.82
111 1.04617887097193 70.1427073170732 4.161
113 1.53405561961664 69.1948292682927 3.119
114 1.19715237290961 43.5695609756098 6.944
115 1.16093366390953 55.3014390243903 5.436
116 1.25370940403861 70.7778048780488 2.04
117 1.08141284083302 72.8232926829268 1.44
118 1.21676040525538 69.1190243902439 2.07
119 1.25350669357312 62.8713658536585 7.017
120 1.62734435088713 59.9501951219512 5.278
122 1.25424898101231 65.3133414634146 2.585
123 1.10367393980282 74.1024634146342 2.154
125 1.41833013881276 49.0729756097561 6.165
127 1.18869806590918 69.7896341463415 2.311
128 1.36348928125062 41.1331951219512 7.08
129 1.82682014498147 55.3321219512195 4.248
130 1.18332130512722 58.019243902439 5.707
131 1.06992251704214 74.1765853658537 1.966
133 1.17548141208565 54.2725853658537 6.263
134 1.07732023350128 73.6286829268293 1.965
135 1.13559015756548 68.042 2.325
136 1.05500955920413 55.6512195121951 7.245
137 1.35277271531609 45.4247317073171 7.29
138 2.17721180420603 67.930243902439 4.172
139 1.52549548531654 68.2741951219512 3.702
140 1.49024606174995 42.7487073170732 6.439
141 1.14100618875228 59.1283658536585 6.145
142 1.05051674166373 68.4666666666585 3.0933333333
143 1.34240124435686 39.8870731707317 7.768
144 2.2147337086713 45.8440487804878 6.747
145 1.25533627639406 59.6766097560976 5.746
146 1.51554064136553 76.1641463414634 1.468
147 1.27617793292857 76.0668292682927 1.66
148 1.53405920666753 49.8817317073171 5.692
149 1.24305731854944 73.7756097560976 1.92
150 1.15825572899123 63.9511219512195 8.34
151 1.19843238495592 70.8833902439024 3.475
152 1.58727312211218 61.8131707317073 4.598
153 1.05409277646429 66.5583414634146 3.79
154 1.25386292556984 54.4456341463415 5.415
155 1.97581438993677 63.8091219512195 4.883
156 2.28036794286614 58.8481463414634 6.46
157 1.82266135932342 71 2.416
158 1.24727893689596 74.101512195122 2.436
160 1.42915238294585 72.2658536585366 1.946
162 1.2539683676853 67.0421951219512 5.151
163 1.07473129946793 72.2290975609756 5.33
164 1.64649727954536 69.7263414634147 2.06
166 2.61926121947487 67.6526829268293 2.11
167 1.32365108896593 50.0319756097561 8.26
168 1.46887405599167 64.683756097561 6.939
169 1.06762522572926 58.3013902439024 6.431
171 1.54428387474322 50.3514146341464 6.316
172 1.39245836075399 76.5517073170732 1.61
173 1.22244908908015 72.4510487804878 1.608
174 1.18825816612904 70.5414634146342 1.81
175 1.3067710604564 70.4790243902439 2.28
176 1.25089041609324 43.7664146341463 5.518
178 1.33477670936882 49.6721707317073 7.261
179 1.33854247263363 44.3784146341463 6.719
180 1.08186989260536 66.6859024390244 3.594
182 1.04148687204361 59.8947317073171 6.181
183 1.30006471592441 57.9682926829268 4.738
185 1.42921823651602 67.7803170731708 6.695
186 1.10976740288696 56.2119268292683 6.52
188 1.29875893058232 49.2557804878049 6.749
189 1.23637879578243 50.7277317073171 7.024
190 1.96352219040315 68.2397073170732 2.859
191 1.2808743159481 62.8919756097561 5.533
192 1.10618074794245 39.550512195122 5.256
193 1.23831119829392 61.7455853658537 4.772
194 1.3573073226416 64.4295365853659 4.863
195 1.03995485898476 68.2952926829268 5.385
196 1.93334447159831 58.7590243902439 4.033
197 1.14469458681814 67.9037317073171 3.196
199 1.61636202791794 50.9506341463415 6.542
200 1.96734404128352 69.3138780487805 2.08
201 1.50412374259102 49.8720243902439 7.102
202 3.08017753434093 74.4634146341463 1.799
203 1.23429964219761 71.055243902439 2.574
204 1.56625879884259 66.2370731707317 4.711
205 1.04203424807833 66.9049756097561 3.561
206 1.55126649128643 69.1463902439024 3.933
207 1.04225712650949 72.3616341463415 3.602
208 2.0239578659621 59.2005365853659 4.813
209 1.04648049972379 60.1721219512195 5.356
210 1.05284169510799 61.464512195122 4.827
211 1.40594593195106 51.8461951219512 9.223
212 1.74163674811947 58.7679268292683 4.504
213 1.34491849487706 51.8201951219512 6.937
214 1.38935284082699 60.7227804878049 6.633
group size x y
2 1.15330487102724 70.2411951219512 5.141
3 1.46826413602066 40.4586829268293 7.829
5 1.2353986457624 71.076487804878 3.865
6 1.24639600422375 69.9390487804878 2.441
7 1.40306144538734 40.655487804878 7.207
8 1.74366249713108 70.4093170731707 3.123
10 1.37391978243791 73.5275609756098 1.53
11 1.53625186213828 75.3878048780488 1.84
12 1.03199474791002 72.989756097561 2.342
13 1.34848859918359 65.2259024390244 2.98
14 1.28066395623273 71.5952926829268 1.973
15 1.06743212767657 73.0805365853659 1.858
16 2.30348585443408 56.5819024390244 5.719
17 1.42693643007594 74.4048780487805 1.591
18 1.37317182929949 47.7782195121951 7.043
19 1.40708077753844 71.499756097561 1.99
20 1.0860119028255 71.2357317073171 4.476
21 1.29233969544516 48.062512195122 6.491
22 1.27736616549827 46.4748536585366 6.994
24 1.06225000961229 71.9543658536585 3.843
25 1.33025250649007 54.9867317073171 5.189
26 2.57108641270535 64.059756097561 3.587
27 1.06417218694937 68.7896097560976 2.919
28 1.09114584875551 48.7621219512195 6.348
29 1.14517552804262 62.4456341463415 5.731
30 1.42811894381679 70.5851707317073 2.11
31 1.05318368222438 71.3051951219512 5.17
32 1.68962411912115 76.3175609756098 1.65
33 1.73561669031107 46.2936585365854 6.802
34 1.21718373795901 49.7640243902439 5.952
35 1.19301619188801 57.0031219512195 5.864
36 1.34509969143861 76.6085365853659 1.52
37 1.42511519789754 52.9404146341463 7.117
38 1.46969366271382 71.4847804878049 2.655
39 1.43158047164774 52.6052926829268 6.335
40 5.38070211275593 68.0592682926829 2.625
41 1.73805958577139 67.2982926829268 3.525
42 1.2201305785878 74.3177073170732 3.491
43 1.43067458861276 74.1970731707317 1.832
44 1.07663387043032 62.126512195122 5.979
46 1.11302578409604 75.4959756097561 2.453
47 1.43710821488965 70.8375609756098 1.97
48 2.20039758225547 73.917 1.29
49 1.08579708792466 49.7062195121951 6.562
50 1.30736322192402 74.5621951219512 1.4
52 1.34347981536551 64.6514634146342 3.978
53 1.64019221134187 62.8491707317073 6.161
54 1.40209612647629 65.4534390243902 4.485
55 1.16723917681067 69.2780487804878 2.17
56 1.95411254882478 58.4373170731707 5.123
57 1.22497272265311 44.4786829268293 6.456
58 1.84164269208738 76.2953658536586 1.72
59 1.85489860034834 44.0902682926829 6.984
60 1.30036388679354 74.5190243902439 1.7
61 1.11324476461325 64.1199756097561 3.693
62 1.03743598522422 65.5395853658537 5.752
64 2.02246615923942 75 1.86
65 1.12144107293461 58.2290975609756 5.194
66 2.02185228544574 74.7780487804878 1.77
67 1.04102138691127 65.7467804878049 4.243
68 1.29225579281974 69.5999268292683 2.275
69 1.47722223545212 54.2455365853659 6.223
71 1.11330220035217 50.7813658536585 6.252
72 1.30171238929034 40.7927073170732 6.942
73 1.0727952835498 44.289756097561 5.826
74 1.42781189726821 75.514512195122 1.823
75 1.37809840446692 59.1393658536585 5.987
76 1.04438506297796 70.5355365853659 3.076
77 1.12777425436018 41.5543170731707 6.71
78 1.11790397276507 60.3373902439024 3.052
79 1.31586540143841 76.0292682926829 1.559
80 1.27560741641703 62.5981463414634 5.802
81 1.29408038698338 70.2185365853659 1.87
82 1.33977656853149 52.5321707317073 6.106
83 1.44420432332751 69.0258536585366 1.73
84 2.71598819396604 59.5306341463415 3.887
85 1.25542643689721 73.4345853658537 2.589
86 1.27720035459847 74.8073170731707 3.082
88 4.76227036828672 56.7326585365854 4.363
89 1.53033167225071 56.7224146341463 6.289
90 1.91935415649432 50.5314390243902 6.377
91 1.06552747846104 77.5765853658537 2.08
92 2.02325189980601 75.389512195122 1.462
93 1.04808603689132 74.2065365853659 1.434
94 1.20508437301908 71.0425609756098 3.394
95 1.21698613477888 68.6533902439024 6.931
96 2.49039760965561 77.3653658536585 1.81
97 1.59200383922465 59.3103902439024 7.049
98 1.26897905242537 64.4696341463415 4.097
99 1.37237955569541 50.6716097560976 6.802
101 1.08000509057896 53.6109268292683 6.766
103 1.58485627829716 69.159243902439 2.779
104 1.86471910362839 67.8860975609756 1.96
105 1.17419872312534 66.5978048780488 4.8199
106 1.17437862238634 71.5412926829268 4.575
108 1.53721036248209 68.5365853658537 3.08
109 1.25704658246484 50.4327804878049 6.369
110 1.22187543467853 67.2909756097561 3.709
111 1.04652428242347 70.3306097560976 4.014
113 1.53726910959955 69.3199024390244 3.01
114 1.19977823251097 43.420243902439 6.915
115 1.16273102030735 55.7686585365854 5.377
116 1.25476551181612 70.32 2.09
117 1.08145557115045 73.1264390243903 1.43
118 1.21744398152345 69.1629268292683 2.09
119 1.25833683775007 63.7896585365854 6.79
120 1.63475715967536 60.6441951219512 5.12
122 1.25555600499975 65.6957804878049 2.62
123 1.10393044046193 74.2423902439024 2.108
125 1.423868349785 49.1927804878049 6.135
127 1.18912099057791 69.9329512195122 2.277
128 1.36691957970014 41.6433170731707 7.088
129 1.83588174220962 55.4036341463415 4.153
130 1.18572228786686 58.4 5.547
131 1.07149287017972 74.4732926829268 2.021
133 1.1779742477091 54.5918536585366 6.214
134 1.07732849174855 73.8551219512195 1.95
135 1.1361642967251 68.2298536585366 2.16
136 1.05604258168428 56.5183658536585 7.24
137 1.35868110243017 45.7464390243902 7.234
138 2.18871797987073 68.3588780487805 4.027
139 1.53260442252475 68.550512195122 3.679
140 1.49416208260361 42.6967804878049 6.42
141 1.1429812743639 59.4723414634146 6.022
142 1.05146342989993 68.6162601626098 3.0466666667
143 1.34720468308207 39.996 7.785
144 2.23022185407878 45.8905365853659 6.718
145 1.25861822190263 60.1555853658537 5.589
146 1.51656536951188 76.2331707317073 1.491
147 1.27656861033741 76.2243902439024 1.66
148 1.54027597703132 50.4658048780488 5.635
149 1.24411352458236 74.3707317073171 1.93
150 1.1623000559302 65.0034146341464 8.299
151 1.20069971718997 71.1310731707317 3.405
152 1.59416841763887 62.3980487804878 4.475
153 1.05490549138655 67.1023414634146 3.745
154 1.25727783617725 54.7004390243902 5.312
155 1.98918390087735 64.0134634146341 4.795
156 2.30234115511667 59.1338780487805 6.436
157 1.82639141146454 70.8 2.372
158 1.24851287688838 74.2259756097561 2.387
160 1.4299789601326 72.5146341463415 1.92
162 1.25776040248256 67.1454634146342 5.094
163 1.07859343821474 72.5258048780488 5.148
164 1.6474578117917 69.6587804878049 2.26
166 2.62540493108194 67.2026829268293 2.06
167 1.3295137601053 50.0053902439024 8.216
168 1.48264123460672 65.383243902439 6.806
169 1.06872706499103 57.7946829268293 6.349
171 1.55346314518744 50.6571707317073 6.268
172 1.39263687521348 76.8158536585366 1.66
173 1.22456081798087 72.7820975609756 1.615
174 1.18874092567615 70.9024390243903 1.74
175 1.30782890366558 70.7509756097561 2.26
176 1.25396395843602 43.4455853658537 5.519
178 1.3398083528027 50.3891951219512 7.193
179 1.33617178417381 44.8818780487805 6.701
180 1.08216529754413 66.8701219512195 3.471
182 1.0418886859447 60.0211951219512 6.078
183 1.3020937561031 58.8220487804878 4.609
185 1.43675544940068 68.2858780487805 6.534
186 1.11158667067137 56.8127804878049 6.459
188 1.3026000295334 49.6501951219512 6.74
189 1.24080026596755 51.0847804878049 6.941
190 1.97236695523677 69.1920487804878 2.707
191 1.28515693967136 63.1067804878049 5.51
192 1.10810588280449 40.812512195122 5.324
193 1.24122130978433 62.0150487804878 4.718
194 1.36084890760393 65.0841463414634 4.707
195 1.0399696802394 68.5336585365854 5.266
196 1.94385113761907 59.4541951219512 3.868
197 1.14577961547815 68.093756097561 3.129
199 1.62606047394169 51.0769756097561 6.504
200 1.96916005998197 69.5518292682927 2.09
201 1.51220096320277 49.7853658536585 7.103
202 3.08920261351364 74.5634146341464 1.8065
203 1.23505711006266 71.3048048780488 2.546
204 1.57352686768354 66.5341463414634 4.616
205 1.04220058524312 67.2868780487805 3.439
206 1.55863092281737 69.4542195121951 3.861
207 1.04312425202338 72.7020487804878 3.467
208 2.03328652466428 60.1716829268293 4.622
209 1.04704374276207 60.6422682926829 5.282
210 1.05299873495982 61.962512195122 4.836
211 1.41420113204849 52.731 9.223
212 1.75132368371441 59.3457073170732 4.402
213 1.3502819219998 51.5648048780488 6.865
214 1.3971186574921 61.1367804878049 6.435
group size x y
2 1.15746905169099 70.5941707317073 5.065
3 1.46179175588823 40.7705853658537 7.85
5 1.23839129910927 71.3975853658537 3.816
6 1.24832499113064 69.5044146341464 2.481
7 1.40941493037439 40.7803414634146 7.208
8 1.74928923254838 70.586512195122 3.093
10 1.37400765966411 73.7451219512195 1.46
11 1.53993240830193 75.6292682926829 1.923
12 1.03205167991126 73.0979756097561 2.332
13 1.35127252353732 65.4277804878049 2.91
14 1.28258872841755 71.7950731707317 1.953
15 1.06759127828267 73.3470975609756 1.83
16 2.32099997280061 56.9524146341463 5.527
17 1.42700006794243 74.520243902439 1.49
18 1.37801767216882 47.9815853658537 7.022
19 1.40707777664843 71.2280487804878 1.95
20 1.08731492071603 71.501756097561 4.365
21 1.29702861419993 48.1605609756098 6.483
22 1.28144993937919 46.7579756097561 6.972
24 1.06315857560802 72.2489024390244 3.794
25 1.33417009408732 55.6896829268293 5.127
26 2.58783679317455 64.4393414634146 3.449
27 1.06484217024335 69.0233658536585 2.857
28 1.09244457734525 49.3393658536585 6.292
29 1.14760638734135 62.9001463414634 5.567
30 1.42952173530048 70.9926829268293 2.09
31 1.05397374033756 71.5438048780488 5.019
32 1.69283736040853 76.3034146341464 1.67
33 1.74556791787731 46.3786585365854 6.856
34 1.2200224221355 49.7922926829268 5.944
35 1.19580483013484 57.0941219512195 5.774
36 1.34586313214862 76.7336585365854 1.51
37 1.43344745460388 53.0898536585366 6.977
38 1.47362398027349 71.905 2.657
39 1.43818423832673 52.8563902439024 6.282
40 5.41063008614026 68.3131463414634 2.639
41 1.74602273118326 67.5755853658537 3.43
42 1.22318076398677 74.624 3.463
43 1.43214280118426 74.2882195121951 1.837
44 1.07737311889649 62.6583170731707 5.883
46 1.11351404410865 75.6729512195122 2.458
47 1.43725438455289 71.0463414634146 1.95
48 2.19905681809649 74.1917317073171 1.37
49 1.08782241196823 50.0376097560976 6.527
50 1.30742560243427 74.4275609756098 1.447
52 1.34728722207265 65.1303170731707 3.878
53 1.65018924462017 63.736 5.928
54 1.40711192183307 66.0708292682927 4.342
55 1.16780068140772 69.3804878048781 2.12
56 1.96526147258515 59.0012195121951 5.045
57 1.22864056573981 44.9069756097561 6.423
58 1.84318335690132 76.259512195122 1.63
59 1.8686826232158 44.4752195121951 7.014
60 1.30099186951288 74.2229268292683 1.64
61 1.11416197125395 64.3790975609756 3.629
62 1.03803609785609 65.6365853658537 5.6
64 2.02549639175631 75.3 1.86
65 1.12308408738234 58.9950975609756 5.189
66 2.02301265141175 74.6292682926829 1.8
67 1.04135102203645 66.0871707317073 4.231
68 1.29354176622607 69.7340731707317 2.273
69 1.48501418782747 54.5554146341463 6.131
71 1.11580620855612 51.4521219512195 6.223
72 1.30601760441239 41.2764878048781 6.929
73 1.07516545144495 44.6929268292683 5.848
74 1.42864390933863 75.7699756097561 1.677
75 1.382688388862 59.6447804878049 5.913
76 1.04492699737998 70.8075365853659 3.079
77 1.12926798792094 41.840756097561 6.743
78 1.11736428083645 60.4773414634146 2.938
79 1.31756894045847 76.4341463414634 1.491
80 1.27980945936214 63.3675365853659 5.675
81 1.29474050444402 70.8860975609756 1.82
82 1.34369050276151 52.9377073170732 6.028
83 1.44380033531262 68.9721951219512 1.83
84 2.73402049019604 59.9866585365854 3.745
85 1.25563139013611 73.6409024390244 2.5
86 1.27965998903428 75.2073170731707 3.058
88 4.80382626900147 57.0319268292683 4.289
89 1.53681065583823 58.1053170731707 6.243
90 1.93788598031195 51.6350975609756 6.226
91 1.06579442723726 77.6024390243903 1.93
92 2.02339978974659 75.4953658536585 1.39
93 1.04834573142123 74.3981219512195 1.437
94 1.20648749055616 71.0593658536585 3.308
95 1.22090441551499 68.997756097561 6.819
96 2.4949607778356 77.650487804878 1.76
97 1.60311675430891 59.5099268292683 6.918
98 1.27150976522309 64.8821219512195 4.093
99 1.37922326466441 52.4350243902439 6.711
101 1.08112199719649 54.0149024390244 6.576
103 1.58942890000425 69.4930731707317 2.716
104 1.86898950819536 68.5329268292683 1.67
105 1.17604832686282 66.8129268292683 4.5635
106 1.17857662882368 71.7718780487805 4.239
108 1.54030939525189 68.5365853658537 3.08
109 1.26063664762938 50.9574146341463 6.361
110 1.222265669099 67.4817073170732 3.596
111 1.04691017552786 70.4397317073171 3.888
113 1.54137027009359 69.3727317073171 2.902
114 1.20132902739409 43.253512195122 6.873
115 1.1644062109346 56.2383414634146 5.313
116 1.25586518886392 70.5012195121951 2.1
117 1.08153597064635 73.4333170731707 1.38
118 1.21815893082449 69.2914634146342 2.08
119 1.26279797348118 64.6663170731707 6.513
120 1.64202632017141 61.2901219512195 4.944
122 1.25678430803147 66.1324390243903 2.643
123 1.10423311089553 74.3909756097561 2.064
125 1.42965342682288 49.2735365853659 6.146
127 1.18963771836282 70.134243902439 2.246
128 1.37003279933271 42.1429268292683 7.093
129 1.84458044065717 55.5146585365854 4.056
130 1.18823653501214 58.826 5.376
131 1.07309938168589 74.7650243902439 2.04
133 1.18046639213664 54.8636097560976 6.17
134 1.07802653658601 74.0805609756098 1.99
135 1.13662341489269 68.3667317073171 2.02
136 1.05707749972317 57.3080731707317 7.184
137 1.36649744387897 46.0411951219512 7.173
138 2.20040266284986 68.7789024390244 3.896
139 1.54004106620138 68.8198536585366 3.656
140 1.49674010645674 42.6627317073171 6.398
141 1.14537835772341 59.7694146341463 5.893
142 1.0518903680332 68.7658536585366 3
143 1.35209100259708 40.1184390243902 7.797
144 2.24611504788258 45.9040243902439 6.682
145 1.26177098618233 60.6908536585366 5.426
146 1.51777184409126 76.2846341463415 1.511
147 1.27698379669383 75.9168292682927 1.68
148 1.5465080536278 51.0498292682927 5.573
149 1.24487056732631 73.8292682926829 1.93
150 1.16611754896441 66.0387317073171 8.222
151 1.20295986839757 71.3569268292683 3.34
152 1.60104447459144 62.9690487804878 4.36
153 1.05571050377178 67.5615365853659 3.698
154 1.26064239977513 54.8522682926829 5.21
155 2.00267956212155 64.2143414634147 4.712
156 2.32446843842334 59.4131707317073 6.407
157 1.82971914879231 70.5487804878049 2.329
158 1.24973170786841 74.3442926829268 2.344
160 1.43056788504294 72.8146341463415 1.74
162 1.26155184355505 67.252243902439 5.02
163 1.08202483642604 72.813 4.962
164 1.64887828764635 69.7068292682927 2.31
166 2.63172969894569 67.8568292682927 2.05
167 1.33615256823016 49.2796585365854 8.136
168 1.49552644504605 66.0371951219512 6.656
169 1.06980793668431 57.2450487804878 6.278
171 1.56242522889919 50.9499268292683 6.218
172 1.39296156248052 76.6678048780488 1.74
173 1.22472560455804 73.1641463414634 1.614
174 1.1892055305475 71.3512195121951 1.71
175 1.30886949136015 70.7346341463415 2.26
176 1.2573026549847 42.8720731707317 5.53
178 1.34499310412776 51.0477317073171 7.118
179 1.33493545850751 45.2923658536585 6.692
180 1.08258177358245 67.0183414634146 3.338
182 1.04233829961533 60.1581219512195 5.967
183 1.30410037250065 59.887 4.485
185 1.44418661408675 68.7804390243902 6.36
186 1.11366061792939 57.3743902439024 6.384
188 1.30676617326636 49.9915609756098 6.73
189 1.24509325948617 51.4338780487805 6.85
190 1.98128714169317 70.0900487804878 2.571
191 1.28966314099904 63.2799024390244 5.486
192 1.10988368980335 41.7819024390244 5.336
193 1.24420445572915 62.2463902439024 4.669
194 1.36639243305038 65.6948780487805 4.549
195 1.03999629838032 68.7596585365854 5.128
196 1.95399284778142 60.1213658536585 3.698
197 1.14674353072868 68.2733414634146 3.049
199 1.63583148620837 51.166756097561 6.465
200 1.97071530533548 69.773243902439 2.06
201 1.52079884164567 49.6386341463415 7.103
202 3.09847996091965 74.5634146341464 1.844
203 1.23581473501083 71.536756097561 2.53
204 1.58077814177331 66.7763902439024 4.539
205 1.04236146336198 67.6569756097561 3.328
206 1.56611764037174 69.7622195121951 3.794
207 1.04290911348003 73.0557317073171 3.343
208 2.04376913248733 61.0549024390244 4.432
209 1.04761742760517 61.0821951219512 5.209
210 1.05312936304859 62.463 4.838
211 1.42248996240254 53.5273170731707 9.186
212 1.76114465088594 59.8850731707317 4.293
213 1.35557439745431 51.1885365853659 6.799
214 1.40479304463333 61.4474146341464 6.224
group size x y
2 1.16208522887681 70.9336341463415 4.973
3 1.45641894044157 41.0848780487805 7.871
5 1.24164154336518 71.6373658536586 3.747
6 1.25045370196329 69.0312195121951 2.519
7 1.41518431375542 40.8905609756098 7.206
8 1.75490108488116 70.7537073170732 3.073
10 1.37412663593407 74.2229268292683 1.47
11 1.54437741809779 75.8707317073171 1.868
12 1.03194061197671 73.1793658536585 2.32
13 1.3540505809875 65.5413414634147 2.9
14 1.28510870861943 71.6509268292683 1.925
15 1.06774117555624 73.6034634146341 1.806
16 2.33884062753923 57.4232195121951 5.328
17 1.42707624317504 74.7317073170732 1.54
18 1.38294986267 48.1284390243902 6.996
19 1.407023756845 71.7307317073171 1.99
20 1.08879326709195 71.7397073170732 4.249
21 1.30201817088416 48.0869512195122 6.485
22 1.28560144323793 47.0637804878049 6.942
24 1.06408545554969 72.5384390243903 3.755
25 1.33812585494518 56.3630731707317 5.074
26 2.60407532200535 64.8164878048781 3.308
27 1.06547435386866 69.2039024390244 2.789
28 1.09394859553035 49.9257073170732 6.225
29 1.1500366603365 63.3241951219512 5.393
30 1.43098438418934 71.549512195122 2.09
31 1.05476203297363 71.7636097560976 4.886
32 1.69632822025726 76.44 1.675
33 1.75582455128528 46.4681707317073 6.907
34 1.22258276091665 49.7393170731707 5.927
35 1.19858203742437 57.101756097561 5.684
36 1.3467652731287 76.8990243902439 1.52
37 1.4416035661004 53.1439756097561 6.834
38 1.47760797151034 72.2789512195122 2.656
39 1.44489886460904 53.054 6.22
40 5.44355442978718 68.5594878048781 2.629
41 1.75393990906901 67.7796341463415 3.347
42 1.22623695028243 74.8857804878049 3.427
43 1.43399491206695 74.3513414634146 1.836
44 1.07791555948406 63.1733170731707 5.784
46 1.11421683911098 75.8459268292683 2.456
47 1.43736250384152 70.9973170731707 1.94
48 2.19933126862252 74.4533170731707 1.43
49 1.09069595114774 50.328 6.481
50 1.3076315308206 74.579756097561 1.48
52 1.35107018240906 65.6355365853659 3.783
53 1.65996465559852 64.5879512195122 5.686
54 1.41219372061911 66.6697804878049 4.201
55 1.16842873544079 70.0853658536585 2.17
56 1.97668424681436 59.571 4.947
57 1.23249932360835 45.4498048780488 6.386
58 1.84446434821733 76.5104878048781 1.6
59 1.88267291049498 44.9641219512195 7.04
60 1.30148182122141 74.56 1.6
61 1.11471430941835 64.6297073170732 3.568
62 1.03858181930725 65.7455853658537 5.446
64 2.02847021334465 75.6 1.85
65 1.1247739349013 59.6776585365854 5.185
66 2.02419819629151 74.9292682926829 1.78
67 1.04140447677087 66.5171951219512 4.2
68 1.29485038033753 69.880512195122 2.269
69 1.49235685685108 54.9205609756098 6.035
71 1.11853165273856 52.0128292682927 6.194
72 1.31036388852994 41.7607317073171 6.908
73 1.07704817568785 45.1081463414634 5.866
74 1.42935392252646 76.016 1.615
75 1.38723269270307 60.1651951219512 5.837
76 1.04547081750326 71.0755365853659 3.092
77 1.13073630426164 42.0841951219512 6.743
78 1.1168437205035 60.5988048780488 2.836
79 1.31955602623112 76.6853658536585 1.367
80 1.28404320764584 64.0883902439025 5.554
81 1.29539914676847 71.4190243902439 1.76
82 1.34754987307042 53.3497317073171 5.921
83 1.44342171360448 69.1734146341463 1.83
84 2.75161396951049 60.4311951219512 3.606
85 1.25568959745042 73.8488048780488 2.45
86 1.28183560740318 74.9560975609756 3.034
88 4.84545820175028 57.3173658536585 4.216
89 1.54306336263185 59.9601951219512 6.201
90 1.95653649383636 53.3405609756098 6.017
91 1.06604362418461 77.9907317073171 1.93
92 2.02342767780434 75.8107317073171 1.34
93 1.04861736506536 74.5877317073171 1.441
94 1.20759156618625 71.0263170731707 3.224
95 1.2250548157393 69.3221707317073 6.676
96 2.49952240325123 78.0646341463415 1.72
97 1.6142506955872 59.6303414634146 6.769
98 1.27409477465485 65.254512195122 4.073
99 1.38534742863666 53.5709024390244 6.523
101 1.08223543813596 54.396 6.362
103 1.59382270944816 69.8172926829268 2.633
104 1.87300584332683 69.1710975609756 1.6
105 1.17787869924165 67.0180487804878 4.4662
106 1.18323793930601 71.9849024390244 3.878
108 1.54229411879215 68.9134146341463 3.135
109 1.26432123983214 51.5365609756098 6.342
110 1.22229468841563 67.6866829268293 3.485
111 1.04734298901508 70.5056097560976 3.781
113 1.54622052398961 69.3938048780488 2.798
114 1.20176180379933 43.0683414634146 6.819
115 1.16593276479004 56.7723902439024 5.244
116 1.25710536926641 72.0807317073171 2.14
117 1.08172292214239 73.7366829268293 1.44
118 1.21904876562736 70.6224390243903 2.12
119 1.26684535312085 65.4834390243903 6.194
120 1.64911870677537 61.8944634146342 4.755
122 1.25793501473258 66.5687073170732 2.646
123 1.10459623875031 74.563 2.022
125 1.43571190057164 49.3677073170732 6.182
127 1.19030516889499 70.3758292682927 2.218
128 1.37276305528543 42.6170243902439 7.095
129 1.85288272587786 55.6961707317073 3.95
130 1.19089370346768 59.2624390243902 5.181
131 1.0747275842469 75.050756097561 2.019
133 1.18295605261871 55.1013658536585 6.127
134 1.07869605110457 74.303512195122 1.98
135 1.13721011778878 68.4949512195122 1.99
136 1.05811166403377 58.034 7.07
137 1.37654393391534 46.3110243902439 7.105
138 2.21230022023113 69.1917073170732 3.78
139 1.54782379652365 69.0827073170732 3.63
140 1.49770865929856 42.6620731707317 6.373
141 1.14823902836877 60.0290487804878 5.76
142 1.0520684106494 69.4134146341463 3.025
143 1.35706369463016 40.2694146341463 7.807
144 2.26246886528417 45.8875609756098 6.637
145 1.26476650385059 61.2935853658537 5.267
146 1.51921129306136 76.2704878048781 1.553
147 1.27747911912771 76.2412195121951 1.71
148 1.55272586959433 51.6306341463415 5.507
149 1.24484033055924 74.1219512195122 1.96
150 1.16963073880775 67.0516829268293 8.101
151 1.20521510521391 71.5674390243902 3.276
152 1.60790427502927 63.5216585365854 4.25
153 1.05651223700456 67.9504634146342 3.644
154 1.26394974126529 54.9490731707317 5.11
155 2.0163085685137 64.4112195121951 4.632
156 2.34674546951319 59.6880487804878 6.367
157 1.83255000246574 70.8487804878049 2.22
158 1.25093517792972 74.437512195122 2.308
160 1.43076388551851 73.2658536585366 1.63
162 1.26532932297482 67.3690487804878 4.931
163 1.08504466265394 73.0916829268293 4.782
164 1.6503576350035 69.4963414634146 2.386
166 2.63759495318633 69.389756097561 2.15
167 1.3441364204316 47.5376097560976 8.007
168 1.50742117907374 66.6506341463415 6.496
169 1.07086540484632 56.7538536585366 6.211
171 1.57100403889899 51.2401951219512 6.166
172 1.39341919358498 76.9312195121951 1.79
173 1.22460202595963 73.5991219512195 1.433
174 1.19039151624272 71.8024390243903 1.67
175 1.30982890327322 71.0212195121951 2.2
176 1.26101984654653 42.0959024390244 5.552
178 1.35032020289378 51.6332682926829 7.036
179 1.33533029146859 45.5224146341464 6.686
180 1.08313030424234 67.1371463414634 3.2
182 1.042840905059 60.3070243902439 5.849
183 1.30607611684861 61.1142926829268 4.367
185 1.45148806561732 69.265 6.172
186 1.1160216164035 57.9046097560976 6.291
188 1.31128608295084 50.2684146341463 6.718
189 1.2492322972584 51.7729512195122 6.75
190 1.99040524964712 70.8770731707317 2.451
191 1.29442361274105 63.3748780487805 5.453
192 1.11142266871639 42.528243902439 5.308
193 1.24723856641867 62.4244146341464 4.623
194 1.37221304626703 66.2822195121951 4.384
195 1.04004162417214 68.9659024390244 4.989
196 1.96372972061077 60.755512195122 3.533
197 1.14756851321279 68.440512195122 2.954
199 1.64561956662433 51.1955609756098 6.424
200 1.97242986417568 69.9320731707317 2.08
201 1.52994536970775 49.3904634146341 7.103
202 3.10819940533937 74.6146341463415 1.8375
203 1.23656449594461 71.7494878048781 2.523
204 1.58798661200888 66.9336341463415 4.474
205 1.0425184680472 68.0143414634146 3.23
206 1.57375800450134 70.0633170731707 3.73
207 1.04280113869016 73.4168292682927 3.242
208 2.05594273484676 61.893243902439 4.247
209 1.04819926140151 61.5022195121951 5.141
210 1.05322699333125 62.969 4.832
211 1.43066354338741 54.2196341463415 9.118
212 1.77097125034071 60.3760243902439 4.177
213 1.36080391706753 50.670512195122 6.736
214 1.41234847520576 61.6287073170732 6.006
group size x y
2 1.16702771037883 71.2575365853659 4.86
3 1.45235914347012 41.399 7.893
4 1.03218307523391 73.0082926829268 1.9
5 1.24503725606677 71.7749268292683 3.65
6 1.25268093090029 68.5769268292683 2.549
7 1.42050750744876 40.9779756097561 7.202
8 1.7604962418476 70.9223902439024 3.056
10 1.37424515399492 74.6692682926829 1.42
11 1.54853509974312 76.1517073170732 1.845
12 1.03170534398588 73.2427073170732 2.307
13 1.35682244171743 65.5259268292683 2.9026
14 1.28802484233902 71.0824146341463 1.887
15 1.0678844710764 73.8416341463415 1.786
16 2.35686753822362 57.9363658536585 5.126
17 1.42725846681508 75.3658536585366 1.55
18 1.38797698675581 48.2338292682927 6.965
19 1.40732350356177 71.5268292682927 1.96
20 1.09039586748153 71.9515853658537 4.124
21 1.30721528856329 47.8301463414634 6.494
22 1.28983714874346 47.402756097561 6.904
24 1.06502716235925 72.8234878048781 3.715
25 1.34211962810429 57.0088780487805 5.029
26 2.6198305108214 65.1934634146342 3.17
27 1.06607402491603 69.3271219512195 2.728
28 1.09558937379023 50.5361463414634 6.141
29 1.15245550956826 63.6917804878049 5.214
30 1.4324420859891 70.990243902439 2.03
31 1.05555113427712 71.9660731707317 4.771
32 1.70091164670158 76.739512195122 1.68
33 1.76639232125964 46.5677073170732 6.957
34 1.22491940368387 49.6130487804878 5.902
35 1.20135582453118 57.0150975609756 5.596
36 1.34785729012723 77.1975609756098 1.55
37 1.44960137310707 53.1137804878049 6.689
38 1.48165212474845 72.6234878048781 2.653
39 1.45171235915905 53.1960975609756 6.152
40 5.47932643129898 68.7973170731707 2.594
41 1.76180821571928 67.9340487804878 3.275
42 1.2292972427543 75.1170487804878 3.38
43 1.43616942610719 74.3905609756098 1.827
44 1.07832627550776 63.6721951219512 5.68
46 1.11510789166039 76.0153902439024 2.45
47 1.43747021562462 71.4456097560976 1.91
48 2.20025290349821 74.6962682926829 1.43
49 1.09416162056979 50.5949024390244 6.424
50 1.3078267089909 74.6912195121951 1.5
51 1.03464368792638 71.9634146341463 3
52 1.35482937394266 66.1581951219512 3.695
53 1.66952023136806 65.3669024390244 5.441
54 1.41732651607592 67.2482195121951 4.061
55 1.16908850291867 70.6439024390244 2.26
56 1.98828757986046 60.1521463414634 4.827
57 1.23647317082201 46.0761707317073 6.345
58 1.84550704112074 76.7280487804878 1.47
59 1.89698828015056 45.5015365853659 7.061
60 1.30191032119849 74.5919512195122 1.59
61 1.11496420957202 64.8732926829268 3.512
62 1.03907661267291 65.8585853658537 5.299
64 2.03141402537785 75.8 1.83
65 1.12650522736663 60.2577804878049 5.185
66 2.02528783343298 75.280487804878 1.82
67 1.04123313280088 67.0341463414634 4.146
68 1.29607195309523 70.0147073170732 2.26
69 1.49938136268386 55.3458536585366 5.935
71 1.12142697399391 52.4534634146342 6.166
72 1.31484323338743 42.2454634146342 6.879
73 1.07855727998654 45.5308292682927 5.881
74 1.43007285583862 76.2514878048781 1.5
75 1.39175116716369 60.6946097560976 5.764
76 1.04601545091155 71.3375365853659 3.108
77 1.13220427328965 42.2952195121951 6.728
78 1.11633936670188 60.712243902439 2.749
79 1.32145886692546 76.8829268292683 1.311
80 1.2882945848884 64.7471463414634 5.441
81 1.29596253071015 71.470243902439 1.64
82 1.35136156096875 53.770756097561 5.799
83 1.44304957796229 69.6512195121951 1.81
84 2.76879078309572 60.8652195121951 3.472
85 1.25570288047159 74.0633170731707 2.31
86 1.28412487766073 75.2585365853659 3.01
88 4.88707681878898 57.5884390243902 4.143
89 1.54917548424046 62.0253658536585 6.157
90 1.97509963802336 55.4142195121951 5.76
91 1.06641796560727 77.3390243902439 2.05
92 2.02347990708991 76.2251219512195 1.28
93 1.04889998185356 74.7818292682927 1.446
94 1.20825031315003 70.9564390243902 3.143
95 1.22921081468105 69.6275853658537 6.5
96 2.50321468344345 78.4836585365854 1.69
97 1.62539012696392 59.6787317073171 6.602
98 1.27671918193588 65.5676097560976 4.039
99 1.39108848630118 54.2961463414634 6.297
100 1.03285386223198 54.6951219512195 4.4
101 1.08333944496595 54.746243902439 6.141
102 1.02502250178903 65.9512195121951 2.8
103 1.5981018570717 70.1148048780488 2.55
104 1.87714095664273 69.8092682926829 1.55
105 1.17974192329431 67.2131707317073 4.4299
106 1.18814305017116 72.1808780487805 3.511
108 1.54428612590809 69.290243902439 3.19
109 1.26811544672904 52.1676829268293 6.313
110 1.22208193094237 67.9094634146342 3.381
111 1.04781215892468 70.5652195121951 3.683
113 1.55037268981057 69.422 2.702
114 1.20127211186451 42.8656585365854 6.755
115 1.16732918620048 57.3918292682927 5.169
116 1.25844997961556 71.9346341463415 2.16
117 1.08199369049548 74.0328536585366 1.4
118 1.22017354046838 70.6929268292683 2.15
119 1.2705361396277 66.2321707317073 5.851
120 1.65603655430375 62.473243902439 4.564
122 1.25900915932285 66.9490975609756 2.625
123 1.10500201161285 74.7598780487805 1.98
125 1.44201963271505 49.5282195121951 6.225
126 1.02531482420767 72.1414634146341 5.9
127 1.1910756595372 70.6290975609756 2.194
128 1.3752182932463 43.0580975609756 7.092
129 1.86081939824162 55.9621951219512 3.836
130 1.19363916872987 59.6711707317073 4.953
131 1.07637257659915 75.3310243902439 1.966
133 1.18545316022094 55.3196341463415 6.084
134 1.07897356491352 74.5244634146342 1.98
135 1.13775401952219 68.6530975609756 2.05
136 1.05914386236518 58.729 6.901
137 1.38821458866729 46.5564390243902 7.028
138 2.22437003261028 69.5982195121951 3.675
139 1.55590228719094 69.3375853658537 3.604
140 1.49740603795966 42.7028292682927 6.345
141 1.151476072883 60.260243902439 5.625
142 1.05255509397021 70.0609756097561 3.05
143 1.36214720992899 40.4634146341463 7.813
144 2.27918085974989 45.8466829268293 6.585
145 1.2676312534762 61.9561707317073 5.118
146 1.52086202759843 76.7051219512195 1.558
147 1.278130424132 76.0817073170732 1.8
148 1.55896033292735 52.2066341463415 5.435
149 1.24590016872669 74.1780487804878 2.03
150 1.17287204642038 68.0318048780488 7.933
151 1.20746705994973 71.7670975609756 3.212
152 1.61472876227356 64.0544390243902 4.144
153 1.05730727603556 68.3041219512195 3.581
154 1.2672202375204 55.0516097560976 5.018
155 2.03003698437532 64.6036097560976 4.554
156 2.3690971554097 59.961 6.31
157 1.83490242821236 70.8975609756098 2.154
158 1.2521234483106 74.4899024390244 2.279
160 1.43070581025661 73.6658536585366 1.57
162 1.26909284405773 67.4988780487805 4.835
163 1.08772467221237 73.3628536585366 4.617
164 1.6516393571105 69.2268292682927 2.313
166 2.6433153838922 69.44 2.22
167 1.35302722192263 44.7661951219512 7.825
168 1.51842857545132 67.2295609756098 6.331
169 1.07190539303524 56.4109756097561 6.139
170 1.03355382232561 69.7319512195122 3
171 1.5793229113328 51.5384390243902 6.113
172 1.39407671049669 77.0921951219512 1.9
173 1.22632598606526 74.0744146341464 1.621
174 1.19154547235096 72.0024390243902 1.65
175 1.31069398130116 71.0887804878049 2.14
176 1.26497746972979 41.210756097561 5.582
178 1.35578143427879 52.1423170731707 6.948
179 1.33687730593471 45.5355365853659 6.676
180 1.08379139988983 67.2379024390244 3.063
182 1.04338335653358 60.4598780487805 5.73
183 1.30802428726501 62.4146341463415 4.255
185 1.45868423843017 69.7375365853659 5.973
186 1.11859558022139 58.3988292682927 6.18
188 1.31613416419569 50.4772926829268 6.706
189 1.25325149684463 52.1015365853659 6.644
190 1.99961149270672 71.5204146341463 2.346
191 1.29935930504113 63.3729024390244 5.408
192 1.11281745324322 43.2143414634146 5.271
193 1.25031738911305 62.546512195122 4.572
194 1.37695954191465 66.8676829268293 4.211
195 1.04010028648212 69.1519268292683 4.864
196 1.97310789935863 61.3601707317073 3.381
197 1.14826861718438 68.5936829268293 2.843
199 1.65544921058927 51.1489756097561 6.379
200 1.97429339675267 70.4951219512195 2.05
201 1.53955821103058 49.028 7.102
202 3.11764263676373 74.7658536585366 1.872
203 1.23730404949588 71.9460487804878 2.523
204 1.59514971298435 66.9942682926829 4.5
205 1.04266947321763 68.3534146341463 3.144
206 1.58149191397307 70.3483902439024 3.665
207 1.04269289082163 73.7759512195122 3.167
208 2.069016935212 62.7363170731707 4.073
209 1.04878876292473 61.9146341463415 5.078
210 1.05330048935419 63.4809756097561 4.82
211 1.43879395609301 54.8104634146342 9.027
212 1.7806549602006 60.8071463414634 4.052
213 1.36597687160021 50.0168292682927 6.671
214 1.41976231513417 61.657756097561 5.788
group size x y
2 1.17217722309525 71.5669024390244 4.724
3 1.45133994416451 41.7109268292683 7.915
5 1.24822386277492 71.8093658536585 3.527
6 1.254628672319 68.1938536585366 2.566
7 1.4256921771025 41.0418048780488 7.194
8 1.7660563322227 71.1005365853659 3.037
10 1.3745104222381 75.1441463414634 1.43
11 1.55304316765011 76.4326829268293 1.831
12 1.03148331216405 73.296243902439 2.291
13 1.35960518325274 65.3691463414634 2.8
14 1.29041543371099 70.1033658536585 1.836
15 1.06802025418196 74.0576585365854 1.77
16 2.37486505672737 58.4469756097561 4.925
17 1.4279387085274 75.5658536585366 1.56
18 1.39310095830118 48.3152195121951 6.93
19 1.40755261963858 71.6043902439024 1.97
20 1.09204427521435 72.1399268292683 3.991
21 1.31241662542718 47.4061219512195 6.503
22 1.29424948663136 47.780487804878 6.858
24 1.06598446376398 73.1040487804878 3.668
25 1.34615996315727 57.628512195122 4.989
26 2.63509868946195 65.5726097560976 3.039
27 1.06665802914738 69.3984634146342 2.683
28 1.097136933785 51.1797073170732 6.036
29 1.15486000424556 63.9629756097561 5.036
30 1.43306226045419 71.3414634146341 2.04
31 1.05632145999685 72.1526829268293 4.671
32 1.70545217665286 76.8092682926829 1.68
33 1.77763892103795 46.6737804878049 7.005
34 1.22714945062307 49.4179756097561 5.868
35 1.20412932312464 56.8356829268293 5.511
36 1.34913938950157 77.2265853658537 1.57
37 1.45751097965296 53.014243902439 6.543
38 1.48578079007166 72.955512195122 2.649
39 1.45860265843269 53.2797317073171 6.08
40 5.51553239035145 69.0271219512195 2.532
41 1.76962245226385 68.0610975609756 3.211
42 1.23235263712721 75.3323414634147 3.323
43 1.43850451497994 74.4129512195122 1.81
44 1.07870028454077 64.1561951219512 5.565
46 1.11615610320883 76.1818292682927 2.442
47 1.43763853226176 71.6414634146342 1.94
48 2.20259998938295 74.9186097560976 1.46
49 1.09780980445118 50.8533414634146 6.353
50 1.30790161972254 74.7717073170732 1.56
52 1.35856858980581 66.6848536585366 3.613
53 1.67884342928068 66.0462682926829 5.195
54 1.42248104706611 67.8061463414634 3.925
55 1.16961742637414 70.6975609756098 2.26
56 1.99977962496604 60.7506341463415 4.684
57 1.24025402077313 46.7580731707317 6.304
58 1.84643721931863 76.7470731707317 1.42
59 1.91171631084477 46.0399512195122 7.076
60 1.30235012089055 74.5770731707317 1.7
61 1.11505377048561 65.1113414634146 3.465
62 1.03954650183626 65.9725853658537 5.167
64 2.03429061170005 76.1 1.81
65 1.12826849475101 60.7234878048781 5.186
66 2.02642701353489 75.3804878048781 1.83
67 1.04093624623836 67.6214146341463 4.068
68 1.29754366166351 70.1217073170732 2.243
69 1.50623151674874 55.8246829268293 5.831
71 1.12435833291291 52.7760487804878 6.139
72 1.3198836348025 42.7276829268293 6.842
73 1.07982339100623 45.9539512195122 5.891
74 1.43085516151357 76.4773658536585 1.5
75 1.39627316535718 61.2254878048781 5.697
76 1.04656583785826 71.5935365853659 3.122
77 1.13368014495558 42.4848780487805 6.706
78 1.11588329998246 60.8275853658537 2.678
79 1.32252517804485 77.0829268292683 1.4
80 1.2925525101293 65.3383170731707 5.335
81 1.29649363258633 71.4882926829268 1.79
82 1.35512926478757 54.2033170731707 5.673
83 1.44270992956563 70.0234146341463 1.79
84 2.78558998481724 61.2882682926829 3.346
85 1.25515549710993 74.2864390243903 2.17
86 1.2864927745859 74.4365853658537 2.948
88 4.92853186921243 57.8470975609756 4.069
89 1.55539274772361 64.0624878048781 6.109
90 1.99271242098337 57.6270731707317 5.468
91 1.06695655266728 77.0829268292683 2.2
92 2.02372724564318 76.4056097560976 1.32
93 1.04917739919812 74.9854634146342 1.452
94 1.20850790312625 70.8628048780488 3.07
95 1.2332927882427 69.9139512195122 6.292
96 2.50642495034825 78.3992682926829 1.66
97 1.63651574297758 59.6561463414634 6.422
98 1.27917642577735 65.8097804878049 3.992
99 1.39672184446496 54.7996341463415 6.083
101 1.08443537420088 55.0631463414634 5.928
103 1.60235672091201 70.3551219512195 2.482
104 1.88135117574883 70.3343902439024 1.56
105 1.18168793168794 67.3982926829268 4.2631
106 1.19239581562087 72.3617804878049 3.161
108 1.54628544335447 68.8487804878049 3.13
109 1.27200631186715 52.8442682926829 6.274
110 1.22193232057668 68.1510487804878 3.288
111 1.04829363595108 70.6492195121951 3.589
113 1.55415986203665 69.4819024390244 2.619
114 1.20008332168559 42.6559268292683 6.681
115 1.16866977749486 58.0727073170732 5.088
116 1.25983140821727 71.7621951219512 2.09
117 1.08229787258485 74.318512195122 1.51
118 1.22129928959841 70.6153658536585 2.11
119 1.27396549542842 66.9110731707317 5.5
120 1.66277161613532 63.04 4.379
122 1.25997209489165 67.2321219512195 2.578
123 1.10540780278732 74.9750731707317 1.94
125 1.4485511501553 49.7985853658537 6.256
127 1.19181401292151 70.8685609756098 2.171
128 1.37765482489862 43.4621463414634 7.086
129 1.86842839251125 56.3167073170732 3.712
130 1.19631494917982 60.0257317073171 4.691
131 1.07796721019211 75.6058292682927 1.891
133 1.18797725977791 55.5294146341463 6.039
134 1.07930567305737 74.7429024390244 2.08
135 1.13829582587489 68.8640975609756 2.14
136 1.06016142947128 59.4245853658537 6.686
137 1.40007542114509 46.776 6.941
138 2.23667528426917 69.9993170731707 3.579
139 1.56414069878254 69.5864878048781 3.576
140 1.49692851884117 42.7945365853659 6.313
141 1.15490105442437 60.466 5.491
142 1.05307359332295 70.202439024561 3.0966666667
143 1.36739783545452 40.7159024390244 7.817
144 2.29614738055255 45.7884146341463 6.527
145 1.27046254784306 62.666 4.985
146 1.52254824718967 76.890243902439 1.55
147 1.27888084135269 76.2204878048781 1.84
148 1.56531362785673 52.7817317073171 5.359
149 1.24623865418781 74.4243902439024 2.1
150 1.17599943163195 68.9666341463415 7.719
151 1.2097170739431 71.9614390243902 3.147
152 1.62149115003514 64.5678536585366 4.038
153 1.05807470522709 68.6475121951219 3.507
154 1.2704857462987 55.2028048780488 4.934
155 2.04376229641748 64.7925365853659 4.476
156 2.3912605380372 60.230512195122 6.234
157 1.836634725643 71.3317073170732 2.13
158 1.25329708367525 74.4967073170732 2.256
160 1.43048183670317 73.7146341463415 1.53
162 1.27283257110162 67.642756097561 4.736
163 1.09000506498387 73.624512195122 4.471
164 1.65317465342882 69.3880487804878 2.306
166 2.6486511396082 69.4643902439024 2.12
167 1.36093186120918 41.1419756097561 7.594
168 1.52867013881288 67.776512195122 6.166
169 1.07293968841284 56.2772926829268 6.056
171 1.58792141587014 51.8521951219512 6.059
172 1.39498414906937 76.9792682926829 1.975
173 1.22921081468105 74.5734634146341 1.956
174 1.19180716165424 72.4463414634146 1.63
175 1.31151964368279 71.2078048780488 2.13
176 1.26870634828642 40.3103414634146 5.62
178 1.3613558120045 52.5778292682927 6.853
179 1.33902489046988 45.3382195121951 6.659
180 1.08452060394215 67.329512195122 2.936
182 1.04395196833433 60.6122195121951 5.613
183 1.3100013537312 63.7012682926829 4.148
185 1.46579817197254 70.1965365853659 5.764
186 1.12121460596227 58.8319756097561 6.051
188 1.32122219007918 50.615756097561 6.694
189 1.25713736696411 52.4151463414634 6.533
190 2.00849395291528 72.0009512195122 2.256
191 1.30425246672889 63.2733902439024 5.347
192 1.11417259028227 43.9674146341463 5.256
193 1.25348665091944 62.6201219512195 4.513
194 1.38117990377211 67.463756097561 4.026
195 1.04016577595841 69.3151951219512 4.763
196 1.98217016764189 61.9408780487805 3.249
197 1.14886954040805 68.731243902439 2.719
199 1.66546375207647 51.0260731707317 6.328
200 1.97645670469555 70.4975609756098 2.02
201 1.54948779245363 48.5539024390244 7.1
202 3.12727887979562 74.7658536585366 1.934
203 1.23804873095548 72.1319756097561 2.524
204 1.60229865794776 66.9611707317073 4.28
205 1.04280827342047 68.6697073170732 3.072
206 1.58923906161739 70.6123658536585 3.597
207 1.04236648778582 74.1262926829268 3.12
208 2.08203579671825 63.615756097561 3.908
209 1.04939952275916 62.331756097561 5.022
210 1.05337163004349 63.9989512195122 4.803
211 1.44726717266465 55.3092926829268 8.919
212 1.79002823952241 61.1624878048781 3.923
213 1.37106370397959 49.246512195122 6.604
214 1.42690881314584 61.5086341463415 5.577
fill key showSelectedlegendfillcolour clickSelects group
#C49A00 Andorra Europe & Central Asia (all income levels) Andorra 1
#00C094 United Arab Emirates Middle East & North Africa (all income levels) United Arab Emirates 2
#A58AFF Afghanistan South Asia Afghanistan 3
#53B400 Antigua and Barbuda Latin America & Caribbean (all income levels) Antigua and Barbuda 4
#C49A00 Albania Europe & Central Asia (all income levels) Albania 5
#C49A00 Armenia Europe & Central Asia (all income levels) Armenia 6
#FB61D7 Angola Sub-Saharan Africa (all income levels) Angola 7
#53B400 Argentina Latin America & Caribbean (all income levels) Argentina 8
#F8766D American Samoa East Asia & Pacific (all income levels) American Samoa 9
#C49A00 Austria Europe & Central Asia (all income levels) Austria 10
#F8766D Australia East Asia & Pacific (all income levels) Australia 11
#53B400 Aruba Latin America & Caribbean (all income levels) Aruba 12
#C49A00 Azerbaijan Europe & Central Asia (all income levels) Azerbaijan 13
#C49A00 Bosnia and Herzegovina Europe & Central Asia (all income levels) Bosnia and Herzegovina 14
#53B400 Barbados Latin America & Caribbean (all income levels) Barbados 15
#A58AFF Bangladesh South Asia Bangladesh 16
#C49A00 Belgium Europe & Central Asia (all income levels) Belgium 17
#FB61D7 Burkina Faso Sub-Saharan Africa (all income levels) Burkina Faso 18
#C49A00 Bulgaria Europe & Central Asia (all income levels) Bulgaria 19
#00C094 Bahrain Middle East & North Africa (all income levels) Bahrain 20
#FB61D7 Burundi Sub-Saharan Africa (all income levels) Burundi 21
#FB61D7 Benin Sub-Saharan Africa (all income levels) Benin 22
#00B6EB Bermuda North America Bermuda 23
#F8766D Brunei Darussalam East Asia & Pacific (all income levels) Brunei Darussalam 24
#53B400 Bolivia Latin America & Caribbean (all income levels) Bolivia 25
#53B400 Brazil Latin America & Caribbean (all income levels) Brazil 26
#53B400 Bahamas, The Latin America & Caribbean (all income levels) Bahamas, The 27
#A58AFF Bhutan South Asia Bhutan 28
#FB61D7 Botswana Sub-Saharan Africa (all income levels) Botswana 29
#C49A00 Belarus Europe & Central Asia (all income levels) Belarus 30
#53B400 Belize Latin America & Caribbean (all income levels) Belize 31
#00B6EB Canada North America Canada 32
#FB61D7 Congo, Dem. Rep. Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 33
#FB61D7 Central African Republic Sub-Saharan Africa (all income levels) Central African Republic 34
#FB61D7 Congo, Rep. Sub-Saharan Africa (all income levels) Congo, Rep. 35
#C49A00 Switzerland Europe & Central Asia (all income levels) Switzerland 36
#FB61D7 Cote d'Ivoire Sub-Saharan Africa (all income levels) Cote d'Ivoire 37
#53B400 Chile Latin America & Caribbean (all income levels) Chile 38
#FB61D7 Cameroon Sub-Saharan Africa (all income levels) Cameroon 39
#F8766D China East Asia & Pacific (all income levels) China 40
#53B400 Colombia Latin America & Caribbean (all income levels) Colombia 41
#53B400 Costa Rica Latin America & Caribbean (all income levels) Costa Rica 42
#53B400 Cuba Latin America & Caribbean (all income levels) Cuba 43
#FB61D7 Cape Verde Sub-Saharan Africa (all income levels) Cape Verde 44
#53B400 Curacao Latin America & Caribbean (all income levels) Curacao 45
#C49A00 Cyprus Europe & Central Asia (all income levels) Cyprus 46
#C49A00 Czech Republic Europe & Central Asia (all income levels) Czech Republic 47
#C49A00 Germany Europe & Central Asia (all income levels) Germany 48
#00C094 Djibouti Middle East & North Africa (all income levels) Djibouti 49
#C49A00 Denmark Europe & Central Asia (all income levels) Denmark 50
#53B400 Dominica Latin America & Caribbean (all income levels) Dominica 51
#53B400 Dominican Republic Latin America & Caribbean (all income levels) Dominican Republic 52
#00C094 Algeria Middle East & North Africa (all income levels) Algeria 53
#53B400 Ecuador Latin America & Caribbean (all income levels) Ecuador 54
#C49A00 Estonia Europe & Central Asia (all income levels) Estonia 55
#00C094 Egypt, Arab Rep. Middle East & North Africa (all income levels) Egypt, Arab Rep. 56
#FB61D7 Eritrea Sub-Saharan Africa (all income levels) Eritrea 57
#C49A00 Spain Europe & Central Asia (all income levels) Spain 58
#FB61D7 Ethiopia Sub-Saharan Africa (all income levels) Ethiopia 59
#C49A00 Finland Europe & Central Asia (all income levels) Finland 60
#F8766D Fiji East Asia & Pacific (all income levels) Fiji 61
#F8766D Micronesia, Fed. Sts. East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 62
#C49A00 Faeroe Islands Europe & Central Asia (all income levels) Faeroe Islands 63
#C49A00 France Europe & Central Asia (all income levels) France 64
#FB61D7 Gabon Sub-Saharan Africa (all income levels) Gabon 65
#C49A00 United Kingdom Europe & Central Asia (all income levels) United Kingdom 66
#53B400 Grenada Latin America & Caribbean (all income levels) Grenada 67
#C49A00 Georgia Europe & Central Asia (all income levels) Georgia 68
#FB61D7 Ghana Sub-Saharan Africa (all income levels) Ghana 69
#C49A00 Greenland Europe & Central Asia (all income levels) Greenland 70
#FB61D7 Gambia, The Sub-Saharan Africa (all income levels) Gambia, The 71
#FB61D7 Guinea Sub-Saharan Africa (all income levels) Guinea 72
#FB61D7 Equatorial Guinea Sub-Saharan Africa (all income levels) Equatorial Guinea 73
#C49A00 Greece Europe & Central Asia (all income levels) Greece 74
#53B400 Guatemala Latin America & Caribbean (all income levels) Guatemala 75
#F8766D Guam East Asia & Pacific (all income levels) Guam 76
#FB61D7 Guinea-Bissau Sub-Saharan Africa (all income levels) Guinea-Bissau 77
#53B400 Guyana Latin America & Caribbean (all income levels) Guyana 78
#F8766D Hong Kong SAR, China East Asia & Pacific (all income levels) Hong Kong SAR, China 79
#53B400 Honduras Latin America & Caribbean (all income levels) Honduras 80
#C49A00 Croatia Europe & Central Asia (all income levels) Croatia 81
#53B400 Haiti Latin America & Caribbean (all income levels) Haiti 82
#C49A00 Hungary Europe & Central Asia (all income levels) Hungary 83
#F8766D Indonesia East Asia & Pacific (all income levels) Indonesia 84
#C49A00 Ireland Europe & Central Asia (all income levels) Ireland 85
#00C094 Israel Middle East & North Africa (all income levels) Israel 86
#C49A00 Isle of Man Europe & Central Asia (all income levels) Isle of Man 87
#A58AFF India South Asia India 88
#00C094 Iraq Middle East & North Africa (all income levels) Iraq 89
#00C094 Iran, Islamic Rep. Middle East & North Africa (all income levels) Iran, Islamic Rep. 90
#C49A00 Iceland Europe & Central Asia (all income levels) Iceland 91
#C49A00 Italy Europe & Central Asia (all income levels) Italy 92
#C49A00 Channel Islands Europe & Central Asia (all income levels) Channel Islands 93
#53B400 Jamaica Latin America & Caribbean (all income levels) Jamaica 94
#00C094 Jordan Middle East & North Africa (all income levels) Jordan 95
#F8766D Japan East Asia & Pacific (all income levels) Japan 96
#FB61D7 Kenya Sub-Saharan Africa (all income levels) Kenya 97
#C49A00 Kyrgyz Republic Europe & Central Asia (all income levels) Kyrgyz Republic 98
#F8766D Cambodia East Asia & Pacific (all income levels) Cambodia 99
#F8766D Kiribati East Asia & Pacific (all income levels) Kiribati 100
#FB61D7 Comoros Sub-Saharan Africa (all income levels) Comoros 101
#53B400 St. Kitts and Nevis Latin America & Caribbean (all income levels) St. Kitts and Nevis 102
#F8766D Korea, Dem. Rep. East Asia & Pacific (all income levels) Korea, Dem. Rep. 103
#F8766D Korea, Rep. East Asia & Pacific (all income levels) Korea, Rep. 104
#C49A00 Kosovo Europe & Central Asia (all income levels) Kosovo 105
#00C094 Kuwait Middle East & North Africa (all income levels) Kuwait 106
#53B400 Cayman Islands Latin America & Caribbean (all income levels) Cayman Islands 107
#C49A00 Kazakhstan Europe & Central Asia (all income levels) Kazakhstan 108
#F8766D Lao PDR East Asia & Pacific (all income levels) Lao PDR 109
#00C094 Lebanon Middle East & North Africa (all income levels) Lebanon 110
#53B400 St. Lucia Latin America & Caribbean (all income levels) St. Lucia 111
#C49A00 Liechtenstein Europe & Central Asia (all income levels) Liechtenstein 112
#A58AFF Sri Lanka South Asia Sri Lanka 113
#FB61D7 Liberia Sub-Saharan Africa (all income levels) Liberia 114
#FB61D7 Lesotho Sub-Saharan Africa (all income levels) Lesotho 115
#C49A00 Lithuania Europe & Central Asia (all income levels) Lithuania 116
#C49A00 Luxembourg Europe & Central Asia (all income levels) Luxembourg 117
#C49A00 Latvia Europe & Central Asia (all income levels) Latvia 118
#00C094 Libya Middle East & North Africa (all income levels) Libya 119
#00C094 Morocco Middle East & North Africa (all income levels) Morocco 120
#C49A00 Monaco Europe & Central Asia (all income levels) Monaco 121
#C49A00 Moldova Europe & Central Asia (all income levels) Moldova 122
#C49A00 Montenegro Europe & Central Asia (all income levels) Montenegro 123
#53B400 St. Martin (French part) Latin America & Caribbean (all income levels) St. Martin (French part) 124
#FB61D7 Madagascar Sub-Saharan Africa (all income levels) Madagascar 125
#F8766D Marshall Islands East Asia & Pacific (all income levels) Marshall Islands 126
#C49A00 Macedonia, FYR Europe & Central Asia (all income levels) Macedonia, FYR 127
#FB61D7 Mali Sub-Saharan Africa (all income levels) Mali 128
#F8766D Myanmar East Asia & Pacific (all income levels) Myanmar 129
#F8766D Mongolia East Asia & Pacific (all income levels) Mongolia 130
#F8766D Macao SAR, China East Asia & Pacific (all income levels) Macao SAR, China 131
#F8766D Northern Mariana Islands East Asia & Pacific (all income levels) Northern Mariana Islands 132
#FB61D7 Mauritania Sub-Saharan Africa (all income levels) Mauritania 133
#00C094 Malta Middle East & North Africa (all income levels) Malta 134
#FB61D7 Mauritius Sub-Saharan Africa (all income levels) Mauritius 135
#A58AFF Maldives South Asia Maldives 136
#FB61D7 Malawi Sub-Saharan Africa (all income levels) Malawi 137
#53B400 Mexico Latin America & Caribbean (all income levels) Mexico 138
#F8766D Malaysia East Asia & Pacific (all income levels) Malaysia 139
#FB61D7 Mozambique Sub-Saharan Africa (all income levels) Mozambique 140
#FB61D7 Namibia Sub-Saharan Africa (all income levels) Namibia 141
#F8766D New Caledonia East Asia & Pacific (all income levels) New Caledonia 142
#FB61D7 Niger Sub-Saharan Africa (all income levels) Niger 143
#FB61D7 Nigeria Sub-Saharan Africa (all income levels) Nigeria 144
#53B400 Nicaragua Latin America & Caribbean (all income levels) Nicaragua 145
#C49A00 Netherlands Europe & Central Asia (all income levels) Netherlands 146
#C49A00 Norway Europe & Central Asia (all income levels) Norway 147
#A58AFF Nepal South Asia Nepal 148
#F8766D New Zealand East Asia & Pacific (all income levels) New Zealand 149
#00C094 Oman Middle East & North Africa (all income levels) Oman 150
#53B400 Panama Latin America & Caribbean (all income levels) Panama 151
#53B400 Peru Latin America & Caribbean (all income levels) Peru 152
#F8766D French Polynesia East Asia & Pacific (all income levels) French Polynesia 153
#F8766D Papua New Guinea East Asia & Pacific (all income levels) Papua New Guinea 154
#F8766D Philippines East Asia & Pacific (all income levels) Philippines 155
#A58AFF Pakistan South Asia Pakistan 156
#C49A00 Poland Europe & Central Asia (all income levels) Poland 157
#53B400 Puerto Rico Latin America & Caribbean (all income levels) Puerto Rico 158
#00C094 West Bank and Gaza Middle East & North Africa (all income levels) West Bank and Gaza 159
#C49A00 Portugal Europe & Central Asia (all income levels) Portugal 160
#F8766D Palau East Asia & Pacific (all income levels) Palau 161
#53B400 Paraguay Latin America & Caribbean (all income levels) Paraguay 162
#00C094 Qatar Middle East & North Africa (all income levels) Qatar 163
#C49A00 Romania Europe & Central Asia (all income levels) Romania 164
#C49A00 Serbia Europe & Central Asia (all income levels) Serbia 165
#C49A00 Russian Federation Europe & Central Asia (all income levels) Russian Federation 166
#FB61D7 Rwanda Sub-Saharan Africa (all income levels) Rwanda 167
#00C094 Saudi Arabia Middle East & North Africa (all income levels) Saudi Arabia 168
#F8766D Solomon Islands East Asia & Pacific (all income levels) Solomon Islands 169
#FB61D7 Seychelles Sub-Saharan Africa (all income levels) Seychelles 170
#FB61D7 Sudan Sub-Saharan Africa (all income levels) Sudan 171
#C49A00 Sweden Europe & Central Asia (all income levels) Sweden 172
#F8766D Singapore East Asia & Pacific (all income levels) Singapore 173
#C49A00 Slovenia Europe & Central Asia (all income levels) Slovenia 174
#C49A00 Slovak Republic Europe & Central Asia (all income levels) Slovak Republic 175
#FB61D7 Sierra Leone Sub-Saharan Africa (all income levels) Sierra Leone 176
#C49A00 San Marino Europe & Central Asia (all income levels) San Marino 177
#FB61D7 Senegal Sub-Saharan Africa (all income levels) Senegal 178
#FB61D7 Somalia Sub-Saharan Africa (all income levels) Somalia 179
#53B400 Suriname Latin America & Caribbean (all income levels) Suriname 180
#FB61D7 South Sudan Sub-Saharan Africa (all income levels) South Sudan 181
#FB61D7 Sao Tome and Principe Sub-Saharan Africa (all income levels) Sao Tome and Principe 182
#53B400 El Salvador Latin America & Caribbean (all income levels) El Salvador 183
#53B400 Sint Maarten (Dutch part) Latin America & Caribbean (all income levels) Sint Maarten (Dutch part) 184
#00C094 Syrian Arab Republic Middle East & North Africa (all income levels) Syrian Arab Republic 185
#FB61D7 Swaziland Sub-Saharan Africa (all income levels) Swaziland 186
#53B400 Turks and Caicos Islands Latin America & Caribbean (all income levels) Turks and Caicos Islands 187
#FB61D7 Chad Sub-Saharan Africa (all income levels) Chad 188
#FB61D7 Togo Sub-Saharan Africa (all income levels) Togo 189
#F8766D Thailand East Asia & Pacific (all income levels) Thailand 190
#C49A00 Tajikistan Europe & Central Asia (all income levels) Tajikistan 191
#F8766D Timor-Leste East Asia & Pacific (all income levels) Timor-Leste 192
#C49A00 Turkmenistan Europe & Central Asia (all income levels) Turkmenistan 193
#00C094 Tunisia Middle East & North Africa (all income levels) Tunisia 194
#F8766D Tonga East Asia & Pacific (all income levels) Tonga 195
#C49A00 Turkey Europe & Central Asia (all income levels) Turkey 196
#53B400 Trinidad and Tobago Latin America & Caribbean (all income levels) Trinidad and Tobago 197
#F8766D Tuvalu East Asia & Pacific (all income levels) Tuvalu 198
#FB61D7 Tanzania Sub-Saharan Africa (all income levels) Tanzania 199
#C49A00 Ukraine Europe & Central Asia (all income levels) Ukraine 200
#FB61D7 Uganda Sub-Saharan Africa (all income levels) Uganda 201
#00B6EB United States North America United States 202
#53B400 Uruguay Latin America & Caribbean (all income levels) Uruguay 203
#C49A00 Uzbekistan Europe & Central Asia (all income levels) Uzbekistan 204
#53B400 St. Vincent and the Grenadines Latin America & Caribbean (all income levels) St. Vincent and the Grenadines 205
#53B400 Venezuela, RB Latin America & Caribbean (all income levels) Venezuela, RB 206
#53B400 Virgin Islands (U.S.) Latin America & Caribbean (all income levels) Virgin Islands (U.S.) 207
#F8766D Vietnam East Asia & Pacific (all income levels) Vietnam 208
#F8766D Vanuatu East Asia & Pacific (all income levels) Vanuatu 209
#F8766D Samoa East Asia & Pacific (all income levels) Samoa 210
#00C094 Yemen, Rep. Middle East & North Africa (all income levels) Yemen, Rep. 211
#FB61D7 South Africa Sub-Saharan Africa (all income levels) South Africa 212
#FB61D7 Zambia Sub-Saharan Africa (all income levels) Zambia 213
#FB61D7 Zimbabwe Sub-Saharan Africa (all income levels) Zimbabwe 214
We can't make this file beautiful and searchable because it's too large.
colour x y key showSelectedlegendfillcolour showSelected1 group
#00C094 68.6840487804878 5.423 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 69.0996097560976 5.344 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 69.4961463414634 5.274 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 69.8756829268293 5.209 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 70.2411951219512 5.141 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 70.5941707317073 5.065 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 70.9336341463415 4.973 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 71.2575365853659 4.86 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 71.5669024390244 4.724 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 71.861243902439 4.566 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 72.1435365853659 4.388 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 72.4153170731707 4.193 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 72.6785853658537 3.989 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 72.9353414634146 3.784 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 73.1870975609756 3.584 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 73.4348536585366 3.394 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 73.6800975609756 3.217 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 73.9208292682927 3.055 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 74.1570487804878 2.906 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 74.3887317073171 2.77 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 74.6159024390244 2.645 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 74.8370731707317 2.527 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 75.0522195121951 2.413 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 75.2608780487805 2.301 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 75.4639756097561 2.191 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 75.6604634146342 2.086 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 75.8518048780488 1.989 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 76.0384390243903 1.906 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 76.2213414634146 1.839 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 76.3995609756098 1.787 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 76.5736097560976 1.749 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#00C094 76.7425365853659 1.721 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) United Arab Emirates 153
#A58AFF 39.2041219512195 7.742 South Asia South Asia Afghanistan 159
#A58AFF 39.5269512195122 7.763 South Asia South Asia Afghanistan 159
#A58AFF 39.8398292682927 7.785 South Asia South Asia Afghanistan 159
#A58AFF 40.149243902439 7.807 South Asia South Asia Afghanistan 159
#A58AFF 40.4586829268293 7.829 South Asia South Asia Afghanistan 159
#A58AFF 40.7705853658537 7.85 South Asia South Asia Afghanistan 159
#A58AFF 41.0848780487805 7.871 South Asia South Asia Afghanistan 159
#A58AFF 41.399 7.893 South Asia South Asia Afghanistan 159
#A58AFF 41.7109268292683 7.915 South Asia South Asia Afghanistan 159
#A58AFF 42.0211951219512 7.937 South Asia South Asia Afghanistan 159
#A58AFF 42.3293658536585 7.96 South Asia South Asia Afghanistan 159
#A58AFF 42.636 7.984 South Asia South Asia Afghanistan 159
#A58AFF 42.9397317073171 8.01 South Asia South Asia Afghanistan 159
#A58AFF 43.2420975609756 8.034 South Asia South Asia Afghanistan 159
#A58AFF 43.5426585365854 8.052 South Asia South Asia Afghanistan 159
#A58AFF 43.8409024390244 8.058 South Asia South Asia Afghanistan 159
#A58AFF 44.1368048780488 8.043 South Asia South Asia Afghanistan 159
#A58AFF 44.4298048780488 8.004 South Asia South Asia Afghanistan 159
#A58AFF 44.7213414634146 7.939 South Asia South Asia Afghanistan 159
#A58AFF 45.0098536585366 7.847 South Asia South Asia Afghanistan 159
#A58AFF 45.2928536585366 7.73 South Asia South Asia Afghanistan 159
#A58AFF 45.5672682926829 7.595 South Asia South Asia Afghanistan 159
#A58AFF 45.8331463414634 7.447 South Asia South Asia Afghanistan 159
#A58AFF 46.0924390243902 7.294 South Asia South Asia Afghanistan 159
#A58AFF 46.3511951219512 7.14 South Asia South Asia Afghanistan 159
#A58AFF 46.6164146341463 6.989 South Asia South Asia Afghanistan 159
#A58AFF 46.8990975609756 6.843 South Asia South Asia Afghanistan 159
#A58AFF 47.2053170731707 6.7 South Asia South Asia Afghanistan 159
#A58AFF 47.5385609756098 6.559 South Asia South Asia Afghanistan 159
#A58AFF 47.8988536585366 6.422 South Asia South Asia Afghanistan 159
#A58AFF 48.2821951219512 6.288 South Asia South Asia Afghanistan 159
#A58AFF 48.6805853658537 6.158 South Asia South Asia Afghanistan 159
#53B400 72.2480487804878 2 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94
#53B400 73.0082926829268 1.9 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94
#53B400 74.2463414634146 1.7 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94
#53B400 74.7317073170732 1.7 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94
#53B400 75.280487804878 1.7 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Antigua and Barbuda 94
#C49A00 69.6740487804878 4.037 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 70.0004634146341 3.985 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 70.351243902439 3.942 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 70.7154146341463 3.904 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.076487804878 3.865 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.3975853658537 3.816 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.6373658536586 3.747 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.7749268292683 3.65 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.8093658536585 3.527 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.7542195121951 3.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.6454390243903 3.219 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.5314878048781 3.058 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.4652195121951 2.91 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.487 2.784 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.6177317073171 2.683 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 71.8702926829268 2.604 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 72.2410731707317 2.54 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 72.6960731707317 2.478 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 73.1978048780488 2.409 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 73.7218292682927 2.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 74.2387317073171 2.241 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 74.7236585365854 2.142 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 75.1612195121951 2.04 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 75.5420243902439 1.941 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 75.8591219512195 1.847 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 76.112 1.764 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 76.3096341463415 1.692 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 76.4734146341464 1.635 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 76.620756097561 1.59 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 76.7610975609756 1.558 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 76.9009512195122 1.536 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 77.0422682926829 1.523 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Albania 37
#C49A00 70.6800975609756 2.385 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 70.6587317073171 2.373 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 70.5352195121951 2.381 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 70.2919268292683 2.406 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 69.9390487804878 2.441 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 69.5044146341464 2.481 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 69.0312195121951 2.519 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 68.5769268292683 2.549 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 68.1938536585366 2.566 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 67.9126097560976 2.565 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 67.757243902439 2.538 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 67.7360731707317 2.482 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 67.8285365853659 2.399 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 68.012756097561 2.295 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 68.2789268292683 2.176 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 68.6204634146342 2.053 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 69.0294390243903 1.938 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 69.4916341463415 1.838 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 69.9855365853659 1.762 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 70.4924878048781 1.712 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 70.9894390243903 1.688 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 71.4580487804878 1.684 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 71.8896097560976 1.692 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 72.2783902439025 1.704 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 72.6164146341464 1.715 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 72.9007073170732 1.724 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 73.1342195121951 1.728 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 73.3278292682927 1.731 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 73.4959512195122 1.734 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 73.6455365853658 1.735 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 73.7835609756098 1.736 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#C49A00 73.9160243902439 1.736 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Armenia 39
#FB61D7 40.1618048780488 7.2 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 40.2902195121951 7.201 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 40.4100487804878 7.203 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 40.5297804878049 7.205 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 40.655487804878 7.207 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 40.7803414634146 7.208 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 40.8905609756098 7.206 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 40.9779756097561 7.202 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 41.0418048780488 7.194 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 41.091243902439 7.182 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 41.1414146341463 7.165 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 41.2088780487805 7.144 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 41.3145365853659 7.12 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 41.4781951219512 7.093 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 41.7162195121951 7.063 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 42.0509268292683 7.03 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 42.5016097560976 6.997 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 43.0616341463415 6.963 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 43.7143170731707 6.925 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 44.4390975609756 6.882 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 45.2049268292683 6.826 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 45.9733170731707 6.751 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 46.7119268292683 6.654 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 47.3933658536585 6.533 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 48.0037073170732 6.391 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 48.5384390243903 6.233 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 49.0071463414634 6.066 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 49.4352926829268 5.898 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 49.8474146341463 5.736 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 50.2510243902439 5.584 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 50.6536585365854 5.443 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#FB61D7 51.0593170731707 5.313 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Angola 167
#53B400 69.4696097560976 3.325 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 69.7417804878049 3.27 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 69.9904390243903 3.213 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 70.2121219512195 3.163 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 70.4093170731707 3.123 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 70.586512195122 3.093 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 70.7537073170732 3.073 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 70.9223902439024 3.056 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 71.1005365853659 3.037 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 71.2921707317073 3.016 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 71.4982926829268 2.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 71.7179268292683 2.956 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 71.9440731707317 2.918 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 72.171756097561 2.875 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 72.3984390243903 2.827 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 72.6236341463415 2.774 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 72.8462926829268 2.717 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 73.0673902439025 2.657 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 73.2864634146342 2.596 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 73.5034634146342 2.535 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 73.7179756097561 2.477 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 73.929512195122 2.425 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 74.1386097560976 2.379 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 74.3442926829268 2.341 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 74.5455853658537 2.31 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 74.7414634146342 2.287 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 74.9314390243902 2.269 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 75.1149756097561 2.254 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 75.2925365853659 2.24 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 75.4640975609756 2.226 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 75.6321463414634 2.211 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#53B400 75.7976585365854 2.196 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Argentina 95
#C49A00 72.4236585365854 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 72.7580487804878 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 72.8970731707317 1.66 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 72.9685365853659 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 73.5275609756098 1.53 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 73.7451219512195 1.46 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 74.2229268292683 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 74.6692682926829 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 75.1441463414634 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 75.2480487804878 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 75.53 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 75.5678048780488 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 75.8553658536585 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 76.1063414634146 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 76.4570731707317 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 76.7156097560976 1.4 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 76.9836585365854 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 77.3875609756098 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 77.5731707317073 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 77.7756097560976 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 78.0268292682927 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 78.5268292682927 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 78.6780487804878 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 78.6317073170732 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 79.1804878048781 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 79.3317073170732 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 79.8317073170732 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 79.9829268292683 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 80.2341463414634 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 80.0829268292683 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 80.3829268292683 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#C49A00 81.0317073170732 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Austria 40
#F8766D 74.3336585365854 1.891 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 74.6634146341463 1.935 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 74.9048780487805 1.929 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 75.1463414634146 1.924 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 75.3878048780488 1.84 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 75.6292682926829 1.923 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 75.8707317073171 1.868 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 76.1517073170732 1.845 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 76.4326829268293 1.831 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 76.7136585365854 1.838 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 76.9946341463415 1.902 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 77.2756097560976 1.849 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 77.3780487804878 1.888 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 77.8780487804878 1.859 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 77.8780487804878 1.842 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 77.8292682926829 1.822 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 78.0780487804878 1.796 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 78.4804878048781 1.778 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 78.6317073170732 1.762 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 78.9317073170732 1.755 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 79.2341463414634 1.756 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 79.6341463414634 1.739 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 79.9365853658537 1.756 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 80.2390243902439 1.748 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 80.490243902439 1.768 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 80.8414634146341 1.807 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 81.0414634146342 1.883 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 81.2926829268293 1.931 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 81.3951219512195 1.933 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 81.5439024390244 1.857 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 81.6951219512195 1.87 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#F8766D 81.8463414634146 1.87 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Australia 2
#53B400 72.2201463414634 2.392 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 72.4623414634146 2.377 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 72.6731951219512 2.364 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 72.8490243902439 2.353 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 72.989756097561 2.342 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.0979756097561 2.332 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.1793658536585 2.32 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.2427073170732 2.307 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.296243902439 2.291 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.3444878048781 2.272 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.3899756097561 2.249 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.4331219512195 2.221 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.471756097561 2.187 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.5053170731707 2.149 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.535756097561 2.108 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.5636097560976 2.064 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.5894390243902 2.021 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.6148048780488 1.979 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.6422926829268 1.94 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.6753902439025 1.905 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.7200975609756 1.874 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.7823902439024 1.848 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.8641951219512 1.825 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 73.966 1.805 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 74.087756097561 1.787 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 74.2249756097561 1.77 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 74.3741463414634 1.755 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 74.5282926829268 1.74 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 74.6819268292683 1.726 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 74.8315365853659 1.713 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 74.9751707317073 1.699 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#53B400 75.1127804878049 1.687 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Aruba 96
#C49A00 64.6813170731707 3.286 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.7164390243903 3.179 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.8307317073171 3.092 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.0080975609756 3.026 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.2259024390244 2.98 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.4277804878049 2.91 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.5413414634147 2.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.5259268292683 2.9026 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.3691463414634 2.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.0892682926829 2.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.7463658536585 2.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.4241463414634 2.87 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.207243902439 2.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.1540243902439 2.7 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.2815853658537 2.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.5758292682927 2.29 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 64.994 2.06 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.4623902439024 2.07 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 65.9233658536585 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 66.3554878048781 2.07 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 66.7572195121951 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 67.1476829268293 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 67.5548536585366 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 67.9943170731707 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 68.4571951219512 2.0535 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 68.9227317073171 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 69.3614146341463 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 69.7486585365854 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 70.0678536585366 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 70.3176341463415 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 70.5065121951219 1.92 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 70.6528536585366 1.92 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Azerbaijan 41
#C49A00 70.2735853658537 2.092 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 70.5480731707317 2.05 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 70.8754878048781 2.017 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 71.2393658536586 1.992 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 71.5952926829268 1.973 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 71.7950731707317 1.953 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 71.6509268292683 1.925 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 71.0824146341463 1.887 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 70.1033658536585 1.836 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 68.8140243902439 1.775 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 67.4668536585366 1.708 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 66.3856829268293 1.645 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 65.829 1.592 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 65.9418536585366 1.556 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 66.730243902439 1.534 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 68.0681951219512 1.524 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 69.7141951219512 1.518 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 71.3479512195122 1.508 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 72.7164878048781 1.487 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 73.714 1.454 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 74.3081219512195 1.412 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 74.5531707317073 1.363 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 74.6153658536585 1.315 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 74.6348780487805 1.273 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 74.6596341463415 1.239 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 74.7236341463415 1.212 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 74.8343658536585 1.194 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 74.9686097560976 1.179 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 75.1063170731708 1.168 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 75.2504390243902 1.157 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 75.4004390243903 1.148 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#C49A00 75.5528536585366 1.14 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bosnia and Herzegovina 44
#53B400 71.9743658536586 2.004 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 72.2553902439025 1.96 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 72.5323902439024 1.922 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 72.8072926829268 1.889 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 73.0805365853659 1.858 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 73.3470975609756 1.83 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 73.6034634146341 1.806 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 73.8416341463415 1.786 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 74.0576585365854 1.77 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 74.2505365853659 1.758 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 74.4172682926829 1.748 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 74.5583658536585 1.739 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 74.6783414634146 1.73 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 74.782243902439 1.719 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 74.8740731707317 1.705 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 74.9593658536585 1.688 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.0426341463415 1.667 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.1273902439024 1.641 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.2156341463415 1.614 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.3094146341464 1.585 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.4082682926829 1.558 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.5086829268293 1.534 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.6081951219512 1.516 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.7052926829268 1.504 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.8015365853659 1.5 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 75.9009512195122 1.501 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 76.0085609756098 1.508 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 76.1293658536585 1.518 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 76.2643658536585 1.529 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 76.4130243902439 1.541 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 76.5728292682927 1.551 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#53B400 76.7392195121951 1.561 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Barbados 98
#A58AFF 55.2358536585366 6.374 South Asia South Asia Bangladesh 160
#A58AFF 55.8089268292683 6.232 South Asia South Asia Bangladesh 160
#A58AFF 56.0801951219512 6.075 South Asia South Asia Bangladesh 160
#A58AFF 56.3081219512195 5.903 South Asia South Asia Bangladesh 160
#A58AFF 56.5819024390244 5.719 South Asia South Asia Bangladesh 160
#A58AFF 56.9524146341463 5.527 South Asia South Asia Bangladesh 160
#A58AFF 57.4232195121951 5.328 South Asia South Asia Bangladesh 160
#A58AFF 57.9363658536585 5.126 South Asia South Asia Bangladesh 160
#A58AFF 58.4469756097561 4.925 South Asia South Asia Bangladesh 160
#A58AFF 58.9580731707317 4.728 South Asia South Asia Bangladesh 160
#A58AFF 59.4711463414634 4.538 South Asia South Asia Bangladesh 160
#A58AFF 59.9897073170732 4.356 South Asia South Asia Bangladesh 160
#A58AFF 60.5147317073171 4.184 South Asia South Asia Bangladesh 160
#A58AFF 61.0467317073171 4.021 South Asia South Asia Bangladesh 160
#A58AFF 61.5832195121951 3.867 South Asia South Asia Bangladesh 160
#A58AFF 62.1226829268293 3.723 South Asia South Asia Bangladesh 160
#A58AFF 62.6621219512195 3.589 South Asia South Asia Bangladesh 160
#A58AFF 63.1965609756098 3.463 South Asia South Asia Bangladesh 160
#A58AFF 63.7219756097561 3.344 South Asia South Asia Bangladesh 160
#A58AFF 64.2339024390244 3.231 South Asia South Asia Bangladesh 160
#A58AFF 64.7303414634146 3.121 South Asia South Asia Bangladesh 160
#A58AFF 65.2083170731707 3.013 South Asia South Asia Bangladesh 160
#A58AFF 65.6683170731707 2.907 South Asia South Asia Bangladesh 160
#A58AFF 66.1098536585366 2.802 South Asia South Asia Bangladesh 160
#A58AFF 66.5313658536585 2.699 South Asia South Asia Bangladesh 160
#A58AFF 66.9322926829268 2.601 South Asia South Asia Bangladesh 160
#A58AFF 67.3100731707317 2.509 South Asia South Asia Bangladesh 160
#A58AFF 67.6666585365854 2.427 South Asia South Asia Bangladesh 160
#A58AFF 68.0040243902439 2.356 South Asia South Asia Bangladesh 160
#A58AFF 68.3252195121951 2.296 South Asia South Asia Bangladesh 160
#A58AFF 68.6348048780488 2.245 South Asia South Asia Bangladesh 160
#A58AFF 68.9373658536585 2.202 South Asia South Asia Bangladesh 160
#C49A00 73.2070731707317 1.672 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 73.6217073170732 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 73.8880487804878 1.614 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 73.8690243902439 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 74.4048780487805 1.591 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 74.520243902439 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 74.7317073170732 1.54 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 75.3658536585366 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 75.5658536585366 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 75.6326829268293 1.58 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 76.0519512195122 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 76.1921951219512 1.57 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 76.3512195121951 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 76.3453658536585 1.61 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 76.6917073170732 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 76.8407317073171 1.57 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 77.1873170731707 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 77.3707317073171 1.6 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 77.4731707317073 1.6 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 77.619512195122 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 77.7219512195122 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 77.9731707317073 1.6632 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 78.0756097560976 1.6599 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 78.1292682926829 1.66 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 78.8780487804878 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 78.9804878048781 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 79.380487804878 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 79.7829268292683 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 79.6804878048781 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 79.9829268292683 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 80.2341463414634 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#C49A00 80.4853658536586 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belgium 43
#FB61D7 46.3316097560976 7.069 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 46.7850487804878 7.074 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 47.1799512195122 7.07 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 47.5113414634146 7.059 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 47.7782195121951 7.043 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 47.9815853658537 7.022 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.1284390243902 6.996 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.2338292682927 6.965 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.3152195121951 6.93 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.3846341463415 6.889 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.4530487804878 6.844 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.5274146341463 6.794 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.6117317073171 6.739 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.7100243902439 6.681 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.8308292682927 6.62 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 48.979756097561 6.558 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 49.1594390243902 6.495 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 49.3699756097561 6.432 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 49.6103414634146 6.372 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 49.8854878048781 6.314 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 50.2012926829268 6.259 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 50.5655609756098 6.208 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 50.9776341463415 6.161 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 51.4323658536585 6.117 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 51.9222195121951 6.075 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 52.4351951219512 6.036 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 52.9579024390244 5.998 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 53.4769512195122 5.961 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 53.9824878048781 5.924 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 54.4660487804878 5.887 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 54.9241951219512 5.85 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#FB61D7 55.3579024390244 5.812 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burkina Faso 170
#C49A00 71.1575609756098 2.05 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.5719512195122 2.01 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.1860975609756 2.02 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.3863414634146 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.499756097561 1.99 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.2280487804878 1.95 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.7307317073171 1.99 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.5268292682927 1.96 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.6043902439024 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.7224390243903 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.6414634146342 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.5609756097561 1.65 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.4943902439024 1.54 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.3468292682927 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.2087804878049 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.0534146341464 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 70.8973170731707 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 70.3512195121951 1.09 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.0609756097561 1.11 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.4121951219512 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.6634146341463 1.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.7682926829268 1.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 71.8658536585366 1.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 72.0658536585366 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 72.5634146341463 1.29 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 72.5609756097561 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 72.6121951219512 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 72.6634146341463 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 72.9634146341463 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 73.4121951219512 1.57 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 73.5121951219512 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#C49A00 74.1634146341463 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Bulgaria 45
#00C094 69.8744878048781 4.917 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 70.2622926829268 4.803 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 70.6175121951219 4.692 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 70.9411463414634 4.583 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 71.2357317073171 4.476 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 71.501756097561 4.365 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 71.7397073170732 4.249 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 71.9515853658537 4.124 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 72.1399268292683 3.991 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 72.3097073170732 3.852 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 72.4649512195122 3.709 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 72.6096829268293 3.567 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 72.7473902439024 3.43 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 72.8810975609756 3.303 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 73.0138048780488 3.188 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 73.1470243902439 3.085 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 73.280243902439 2.994 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 73.4134634146341 2.913 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 73.5431707317073 2.84 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 73.6713658536585 2.775 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 73.7960731707317 2.72 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 73.9182926829268 2.677 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 74.0375365853659 2.647 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 74.1552926829268 2.629 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 74.2715365853659 2.621 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 74.3877317073171 2.618 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 74.5078292682927 2.616 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 74.6312926829268 2.609 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 74.7586097560976 2.595 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 74.8897804878049 2.572 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 75.0238292682927 2.54 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#00C094 75.1562682926829 2.501 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Bahrain 136
#FB61D7 46.8593170731707 6.651 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 47.225512195122 6.597 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 47.5598048780488 6.549 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 47.8462926829268 6.514 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 48.062512195122 6.491 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 48.1605609756098 6.483 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 48.0869512195122 6.485 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 47.8301463414634 6.494 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 47.4061219512195 6.503 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 46.8498048780488 6.508 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 46.2271463414634 6.505 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 45.6215365853659 6.492 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 45.1109512195122 6.468 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 44.753756097561 6.432 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 44.5784634146342 6.381 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 44.588512195122 6.316 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 44.7584146341463 6.233 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 45.0267073170732 6.136 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 45.3384390243903 6.026 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 45.6705609756098 5.904 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 46.0050487804878 5.772 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 46.3363902439024 5.632 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 46.6730731707317 5.484 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 47.0215609756098 5.333 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 47.3803658536585 5.18 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 47.7514634146342 5.028 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 48.1388780487805 4.88 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 48.5466341463415 4.736 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 48.975756097561 4.597 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 49.4212682926829 4.465 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 49.8772195121951 4.338 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 50.3370975609756 4.218 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Burundi 171
#FB61D7 45.2471219512195 7.025 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 45.5922682926829 7.025 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 45.9059024390244 7.021 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 46.1964634146342 7.01 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 46.4748536585366 6.994 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 46.7579756097561 6.972 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 47.0637804878049 6.942 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 47.402756097561 6.904 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 47.780487804878 6.858 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 48.1980487804878 6.805 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 48.6485365853659 6.744 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 49.1231219512195 6.677 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 49.6033902439024 6.603 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 50.0734634146341 6.526 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 50.5224146341464 6.446 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 50.9412682926829 6.364 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 51.324512195122 6.282 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 51.6740731707317 6.2 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 51.9958292682927 6.12 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 52.291756097561 6.041 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 52.5653414634146 5.966 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 52.8190975609756 5.895 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 53.061512195122 5.828 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 53.3014878048781 5.764 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 53.5489512195122 5.702 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 53.8137317073171 5.64 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 54.1066829268293 5.577 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 54.4307317073171 5.511 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 54.7873170731707 5.44 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 55.1734146341463 5.366 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 55.5855853658537 5.287 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#FB61D7 56.0144390243902 5.206 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Benin 168
#00B6EB 77.8648780487805 1.74 North America North America Bermuda 156
#00B6EB 78.5767073170732 1.752 North America North America Bermuda 156
#00B6EB 78.7190731707317 1.7544 North America North America Bermuda 156
#00B6EB 78.8614390243903 1.7568 North America North America Bermuda 156
#00B6EB 79.0038048780488 1.7592 North America North America Bermuda 156
#00B6EB 79.1461707317073 1.7616 North America North America Bermuda 156
#00B6EB 79.2885365853658 1.764 North America North America Bermuda 156
#00B6EB 79.2885365853658 1.764 North America North America Bermuda 156
#F8766D 70.7172195121951 4.246 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 71.035756097561 4.103 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 71.3482926829268 3.992 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 71.6538292682927 3.906 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 71.9543658536585 3.843 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 72.2489024390244 3.794 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 72.5384390243903 3.755 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 72.8234878048781 3.715 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 73.1040487804878 3.668 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 73.3810975609756 3.608 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 73.6536585365854 3.532 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 73.9232195121951 3.435 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 74.1887804878049 3.321 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 74.4508292682927 3.197 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 74.7098780487805 3.064 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 74.9674146341464 2.929 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 75.2239268292683 2.798 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 75.4809024390244 2.677 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 75.7363658536586 2.569 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 75.9883414634146 2.477 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 76.2323414634146 2.401 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 76.4649024390244 2.341 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 76.6810487804878 2.292 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 76.8808048780488 2.25 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 77.0626341463415 2.213 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 77.2285853658537 2.179 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 77.3806097560976 2.148 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 77.5241951219512 2.119 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 77.6622926829268 2.092 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 77.7979268292683 2.066 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 77.9320243902439 2.042 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#F8766D 78.0651219512195 2.017 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Brunei Darussalam 3
#53B400 51.9635609756098 5.521 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 52.738243902439 5.423 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 53.5039756097561 5.337 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 54.2558292682927 5.259 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 54.9867317073171 5.189 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 55.6896829268293 5.127 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 56.3630731707317 5.074 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 57.0088780487805 5.029 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 57.628512195122 4.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 58.2189268292683 4.952 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 58.7780731707317 4.913 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 59.3024146341464 4.866 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 59.7934634146342 4.81 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 60.2537804878049 4.742 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 60.6863902439024 4.663 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 61.0958780487805 4.575 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 61.4872926829268 4.482 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 61.8657317073171 4.39 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 62.235756097561 4.302 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 62.6008780487805 4.219 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 62.9636829268293 4.14 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 63.3241707317073 4.063 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 63.6788048780488 3.983 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 64.0275121951219 3.899 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 64.3692926829268 3.811 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 64.7040487804878 3.721 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 65.0302195121951 3.634 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 65.3477317073171 3.551 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 65.6580975609756 3.475 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 65.9638536585366 3.407 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 66.2685609756098 3.348 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 66.5773658536585 3.294 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bolivia 100
#53B400 62.4965853658537 4.073 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 62.8944390243903 3.966 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 63.2879024390244 3.848 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 63.6762926829268 3.721 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 64.059756097561 3.587 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 64.4393414634146 3.449 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 64.8164878048781 3.308 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 65.1934634146342 3.17 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 65.5726097560976 3.039 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 65.9543658536585 2.917 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 66.3407317073171 2.809 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 66.734243902439 2.717 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 67.1334146341463 2.643 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 67.5368048780488 2.583 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 67.9408780487805 2.537 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 68.3406341463415 2.502 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 68.7315609756098 2.474 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 69.1090975609756 2.451 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 69.471243902439 2.427 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 69.8144634146341 2.399 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 70.1382682926829 2.364 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 70.4396341463415 2.319 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 70.7240975609756 2.264 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 70.9961463414634 2.203 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 71.2617804878049 2.136 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 71.5295365853659 2.068 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 71.8109268292683 2.002 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 72.1099512195122 1.944 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 72.4270975609756 1.895 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 72.7598048780488 1.857 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 73.0995365853658 1.83 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 73.4352195121951 1.811 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Brazil 101
#53B400 67.6973658536586 2.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 67.9644634146342 2.994 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 68.2450975609756 2.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 68.5236585365854 2.965 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 68.7896097560976 2.919 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.0233658536585 2.857 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.2039024390244 2.789 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.3271219512195 2.728 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.3984634146342 2.683 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.4268048780488 2.654 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.4370487804878 2.639 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.4571219512195 2.631 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.515 2.621 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.6311707317073 2.601 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 69.8130975609756 2.566 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 70.0563658536585 2.514 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 70.3480487804878 2.443 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 70.6627073170732 2.357 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 70.9828536585366 2.263 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 71.3034390243903 2.165 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 71.6282926829268 2.071 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 71.9696829268293 1.989 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 72.3384878048781 1.925 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 72.7371707317073 1.881 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 73.1578292682927 1.858 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 73.5836585365854 1.854 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 73.9919268292683 1.862 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 74.3654390243903 1.876 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 74.6938536585366 1.888 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 74.9752682926829 1.895 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 75.2221219512195 1.896 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#53B400 75.4522682926829 1.891 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Bahamas, The 97
#A58AFF 46.3592195121951 6.553 South Asia South Asia Bhutan 161
#A58AFF 46.9834878048781 6.501 South Asia South Asia Bhutan 161
#A58AFF 47.5907073170732 6.449 South Asia South Asia Bhutan 161
#A58AFF 48.1824146341464 6.399 South Asia South Asia Bhutan 161
#A58AFF 48.7621219512195 6.348 South Asia South Asia Bhutan 161
#A58AFF 49.3393658536585 6.292 South Asia South Asia Bhutan 161
#A58AFF 49.9257073170732 6.225 South Asia South Asia Bhutan 161
#A58AFF 50.5361463414634 6.141 South Asia South Asia Bhutan 161
#A58AFF 51.1797073170732 6.036 South Asia South Asia Bhutan 161
#A58AFF 51.8628780487805 5.907 South Asia South Asia Bhutan 161
#A58AFF 52.5896341463415 5.753 South Asia South Asia Bhutan 161
#A58AFF 53.3589512195122 5.573 South Asia South Asia Bhutan 161
#A58AFF 54.1637804878049 5.372 South Asia South Asia Bhutan 161
#A58AFF 54.9941219512195 5.155 South Asia South Asia Bhutan 161
#A58AFF 55.8469756097561 4.929 South Asia South Asia Bhutan 161
#A58AFF 56.7233902439024 4.7 South Asia South Asia Bhutan 161
#A58AFF 57.6294390243903 4.474 South Asia South Asia Bhutan 161
#A58AFF 58.5621463414634 4.256 South Asia South Asia Bhutan 161
#A58AFF 59.5100487804878 4.048 South Asia South Asia Bhutan 161
#A58AFF 60.4560975609756 3.855 South Asia South Asia Bhutan 161
#A58AFF 61.3742195121951 3.676 South Asia South Asia Bhutan 161
#A58AFF 62.2373170731707 3.51 South Asia South Asia Bhutan 161
#A58AFF 63.0268048780488 3.352 South Asia South Asia Bhutan 161
#A58AFF 63.7316097560976 3.199 South Asia South Asia Bhutan 161
#A58AFF 64.3482195121951 3.053 South Asia South Asia Bhutan 161
#A58AFF 64.8806341463415 2.914 South Asia South Asia Bhutan 161
#A58AFF 65.3423902439025 2.785 South Asia South Asia Bhutan 161
#A58AFF 65.7590975609756 2.668 South Asia South Asia Bhutan 161
#A58AFF 66.1513170731707 2.565 South Asia South Asia Bhutan 161
#A58AFF 66.5320487804878 2.476 South Asia South Asia Bhutan 161
#A58AFF 66.9088536585366 2.399 South Asia South Asia Bhutan 161
#A58AFF 67.2847073170732 2.332 South Asia South Asia Bhutan 161
#FB61D7 60.4592195121951 6.217 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 60.9659512195122 6.125 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 61.4692682926829 6.012 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 61.9666585365854 5.88 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 62.4456341463415 5.731 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 62.9001463414634 5.567 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 63.3241951219512 5.393 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 63.6917804878049 5.214 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 63.9629756097561 5.036 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 64.0963902439024 4.863 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 64.0171707317073 4.698 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 63.648 4.542 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 62.966 4.394 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 61.9767073170732 4.252 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 60.7116341463415 4.117 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 59.1978048780488 3.989 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 57.4776585365854 3.866 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 55.6515365853659 3.746 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 53.8417073170732 3.631 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 52.1589512195122 3.519 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 50.765487804878 3.414 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 49.8115609756098 3.316 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 49.3375365853659 3.228 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 49.3273414634146 3.149 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 49.7374878048781 3.08 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 50.4465609756098 3.019 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 51.2843170731707 2.963 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 52.0689512195122 2.91 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 52.6636829268293 2.857 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 53.0115365853659 2.804 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 53.109512195122 2.75 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#FB61D7 53.0184878048781 2.696 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Botswana 169
#C49A00 70.3346585365854 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.3248048780488 2.02 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.3704878048781 2.05 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.4620243902439 2.11 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.5851707317073 2.11 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.9926829268293 2.09 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 71.549512195122 2.09 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.990243902439 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 71.3414634146341 2.04 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 71.5878048780488 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.8365853658537 1.91 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.3780487804878 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.0219512195122 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.9707317073171 1.61 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.7682926829268 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.4609756097561 1.386 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.6121951219512 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.4609756097561 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.4073170731707 1.27 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 67.9073170731707 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.9121951219512 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.5073170731707 1.27 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.0560975609756 1.22 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.5536585365854 1.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.9560975609756 1.2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 68.8512195121951 1.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 69.4048780487805 1.287 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.2034146341464 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.4560975609756 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.4073170731707 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.4048780487805 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#C49A00 70.6512195121951 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Belarus 42
#53B400 70.147 5.849 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 70.4672926829268 5.684 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 70.7670975609756 5.51 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 71.0464146341463 5.336 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 71.3051951219512 5.17 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 71.5438048780488 5.019 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 71.7636097560976 4.886 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 71.9660731707317 4.771 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 72.1526829268293 4.671 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 72.3260487804878 4.584 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 72.4868048780488 4.508 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 72.6361707317073 4.436 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 72.7738536585366 4.363 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 72.901 4.286 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.0197317073171 4.201 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.1276097560976 4.108 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.2211463414634 4.008 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.3007073170732 3.905 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.3726341463415 3.8 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.4443170731708 3.696 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.5311219512195 3.594 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.6489268292683 3.493 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 73.8086341463415 3.396 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 74.0136585365854 3.301 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 74.2599268292683 3.209 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 74.5368780487805 3.124 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 74.827 3.044 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 75.1118536585366 2.971 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 75.377512195122 2.905 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 75.618512195122 2.845 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 75.8399512195122 2.79 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#53B400 76.0529024390244 2.741 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Belize 99
#00B6EB 75.0780487804878 1.74 North America North America Canada 157
#00B6EB 75.4785365853659 1.7 North America North America Canada 157
#00B6EB 75.6804878048781 1.69 North America North America Canada 157
#00B6EB 76.0363414634146 1.68 North America North America Canada 157
#00B6EB 76.3175609756098 1.65 North America North America Canada 157
#00B6EB 76.3034146341464 1.67 North America North America Canada 157
#00B6EB 76.44 1.675 North America North America Canada 157
#00B6EB 76.739512195122 1.68 North America North America Canada 157
#00B6EB 76.8092682926829 1.68 North America North America Canada 157
#00B6EB 77.0656097560976 1.77 North America North America Canada 157
#00B6EB 77.3770731707317 1.83 North America North America Canada 157
#00B6EB 77.5534146341464 1.7 North America North America Canada 157
#00B6EB 77.3207317073171 1.71 North America North America Canada 157
#00B6EB 77.6851219512195 1.7 North America North America Canada 157
#00B6EB 77.8619512195122 1.6695 North America North America Canada 157
#00B6EB 77.9775609756098 1.639 North America North America Canada 157
#00B6EB 78.2304878048781 1.592 North America North America Canada 157
#00B6EB 78.4804878048781 1.55 North America North America Canada 157
#00B6EB 78.6624390243902 1.53 North America North America Canada 157
#00B6EB 78.8829268292683 1.51 North America North America Canada 157
#00B6EB 79.2365853658537 1.49 North America North America Canada 157
#00B6EB 79.4878048780488 1.505 North America North America Canada 157
#00B6EB 79.590243902439 1.52 North America North America Canada 157
#00B6EB 79.8390243902439 1.53 North America North America Canada 157
#00B6EB 80.1414634146341 1.53 North America North America Canada 157
#00B6EB 80.2926829268293 1.54 North America North America Canada 157
#00B6EB 80.6439024390244 1.5862 North America North America Canada 157
#00B6EB 80.8043902439024 1.6589 North America North America Canada 157
#00B6EB 80.9648780487805 1.6808 North America North America Canada 157
#00B6EB 80.6617804878049 1.668 North America North America Canada 157
#00B6EB 80.7978048780488 1.6269 North America North America Canada 157
#00B6EB 80.929243902439 1.6269 North America North America Canada 157
#FB61D7 45.8246829268293 6.585 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 45.9631951219512 6.638 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.0901951219512 6.693 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.2006829268293 6.748 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.2936585365854 6.802 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.3786585365854 6.856 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.4681707317073 6.907 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.5677073170732 6.957 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.6737804878049 7.005 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.7759024390244 7.047 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.8400731707317 7.084 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.8238292682927 7.112 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.7076341463415 7.131 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.492512195122 7.14 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.1999024390244 7.138 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 45.8788048780488 7.125 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 45.5966829268293 7.102 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 45.4100243902439 7.068 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 45.3557804878049 7.026 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 45.4424146341463 6.974 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 45.6519024390244 6.911 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 45.9421951219512 6.835 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.2538048780488 6.746 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.541243902439 6.644 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.7870243902439 6.531 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 46.9916829268293 6.409 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 47.168756097561 6.281 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 47.3492926829268 6.152 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 47.5573414634146 6.023 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 47.7969268292683 5.897 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 48.0695853658537 5.775 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 48.3693170731707 5.657 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Dem. Rep. 177
#FB61D7 48.8095365853659 5.954 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.1763414634146 5.955 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.4568292682927 5.956 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.6525365853659 5.955 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.7640243902439 5.952 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.7922926829268 5.944 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.7393170731707 5.927 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.6130487804878 5.902 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.4179756097561 5.868 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 49.1595609756098 5.826 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 48.8288780487805 5.78 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 48.4149756097561 5.734 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 47.9173902439024 5.691 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 47.3506097560976 5.653 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 46.7385853658537 5.622 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 46.1062926829268 5.596 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 45.4801707317073 5.573 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 44.8916341463415 5.55 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 44.3725609756098 5.522 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 43.9533414634146 5.488 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 43.6633658536585 5.446 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 43.5235365853659 5.392 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 43.5288292682927 5.329 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 43.6721951219512 5.256 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 43.9461219512195 5.175 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 44.3475609756098 5.088 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 44.867512195122 4.996 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 45.4825365853659 4.903 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 46.163243902439 4.81 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 46.8837073170732 4.719 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 47.6184634146341 4.631 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 48.3456097560976 4.546 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Central African Republic 174
#FB61D7 56.2368292682927 6.178 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.4593414634146 6.112 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.6682926829268 6.036 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.8532195121951 5.952 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 57.0031219512195 5.864 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 57.0941219512195 5.774 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 57.101756097561 5.684 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 57.0150975609756 5.596 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.8356829268293 5.511 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.573512195122 5.431 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.2465609756098 5.358 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 55.8807804878049 5.293 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 55.5086097560976 5.235 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 55.1599268292683 5.183 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.8562195121951 5.137 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.6093902439024 5.096 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.4214634146341 5.06 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.2834146341463 5.026 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.188243902439 4.995 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.1409024390244 4.964 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.1458536585366 4.932 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.2130487804878 4.899 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.3414878048781 4.864 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.5296585365854 4.827 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 54.7726097560976 4.788 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 55.0648536585366 4.748 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 55.4014390243903 4.706 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 55.7704146341463 4.665 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.1593414634146 4.625 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.558756097561 4.584 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 56.9601951219512 4.544 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#FB61D7 57.3561951219512 4.504 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Congo, Rep. 178
#C49A00 75.459268292683 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 75.6931707317073 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 76.0339024390244 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 76.0312195121951 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 76.6085365853659 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 76.7336585365854 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 76.8990243902439 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 77.1975609756098 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 77.2265853658537 1.57 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 77.4212195121951 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 77.2424390243902 1.59 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 77.5146341463415 1.58 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 77.8060975609756 1.58 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 78.0853658536586 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 78.35 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 78.4170731707317 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 78.8960975609756 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 79.079512195122 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 79.3243902439025 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 79.580487804878 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 79.6804878048781 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 80.1804878048781 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 80.3853658536585 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 80.5365853658537 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 81.0878048780488 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 81.2365853658537 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 81.490243902439 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 81.7414634146342 1.46 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 81.9926829268293 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 82.0439024390244 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 82.2463414634147 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#C49A00 82.6951219512195 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Switzerland 87
#FB61D7 51.404243902439 7.608 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 51.9206585365854 7.501 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.3520975609756 7.382 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.6931707317073 7.253 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.9404146341463 7.117 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 53.0898536585366 6.977 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 53.1439756097561 6.834 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 53.1137804878049 6.689 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 53.014243902439 6.543 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.8558536585366 6.399 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.6441463414634 6.257 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.3796341463415 6.117 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.0708292682927 5.977 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 51.7321951219512 5.84 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 51.3852195121951 5.706 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 51.0513658536585 5.581 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 50.7471219512195 5.469 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 50.4899268292683 5.371 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 50.2942195121951 5.289 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 50.1789024390244 5.22 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 50.1608780487805 5.162 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 50.2505609756098 5.109 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 50.4438780487805 5.055 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 50.7328292682927 4.997 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 51.1113902439024 4.932 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 51.5755609756098 4.858 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.1183658536585 4.777 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 52.7258780487805 4.691 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 53.3777073170732 4.605 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 54.0559024390244 4.518 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 54.7415609756098 4.432 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#FB61D7 55.421243902439 4.348 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cote d'Ivoire 179
#53B400 69.1917317073171 2.675 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 69.8580731707317 2.656 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 70.4637804878049 2.65 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 71.0063658536586 2.651 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 71.4847804878049 2.655 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 71.905 2.657 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 72.2789512195122 2.656 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 72.6234878048781 2.653 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 72.955512195122 2.649 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 73.2819024390244 2.64 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 73.6035609756098 2.624 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 73.9164146341464 2.597 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 74.2139512195122 2.559 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 74.4951951219512 2.51 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 74.7656829268293 2.453 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 75.0414634146342 2.388 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 75.3396341463415 2.321 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 75.6698048780488 2.254 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 76.0330243902439 2.192 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 76.4228292682927 2.135 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 76.8217317073171 2.087 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 77.2072195121951 2.047 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 77.5552195121951 2.014 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 77.8511707317073 1.985 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 78.0895853658537 1.96 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 78.2749756097561 1.939 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 78.4158536585366 1.92 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 78.5342682926829 1.904 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 78.6472195121951 1.889 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 78.7627073170732 1.876 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 78.8857317073171 1.862 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#53B400 79.016756097561 1.849 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Chile 103
#FB61D7 51.1865365853659 6.431 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 51.5930731707317 6.425 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 51.9681219512195 6.407 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 52.3071951219512 6.377 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 52.6052926829268 6.335 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 52.8563902439024 6.282 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 53.054 6.22 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 53.1960975609756 6.152 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 53.2797317073171 6.08 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 53.3008780487805 6.004 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 53.2530975609756 5.923 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 53.1279024390244 5.832 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 52.9293170731707 5.731 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 52.6668780487805 5.62 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 52.3505609756098 5.502 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 51.9919024390244 5.384 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 51.5999024390244 5.273 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 51.1915365853659 5.175 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 50.786756097561 5.094 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 50.406512195122 5.03 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 50.0712682926829 4.983 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 49.7929756097561 4.947 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 49.5780975609756 4.917 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 49.4355609756098 4.886 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 49.3748536585366 4.85 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 49.4124146341463 4.807 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 49.5611707317073 4.756 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 49.8151707317073 4.696 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 50.1609024390244 4.631 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 50.5829268292683 4.561 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 51.062756097561 4.487 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#FB61D7 51.5764634146342 4.409 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cameroon 172
#F8766D 66.9938048780488 2.632 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 67.2629268292683 2.589 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 67.5349024390244 2.586 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 67.7998536585366 2.602 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 68.0592682926829 2.625 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 68.3131463414634 2.639 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 68.5594878048781 2.629 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 68.7973170731707 2.594 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 69.0271219512195 2.532 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 69.2469268292683 2.444 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 69.4597317073171 2.336 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 69.6640243902439 2.219 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 69.8618292682927 2.106 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 70.0546341463415 2.007 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 70.2429268292683 1.927 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 70.4247317073171 1.868 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 70.5990243902439 1.828 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 70.7663170731707 1.799 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 70.9270975609756 1.776 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 71.0833902439025 1.755 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 71.2417073170732 1.737 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 71.4055365853659 1.72 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 71.5794390243902 1.705 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 71.7648780487805 1.692 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 71.9623414634146 1.68 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 72.1713170731707 1.668 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 72.3897317073171 1.656 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 72.6125853658537 1.643 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 72.8353414634146 1.629 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 73.056512195122 1.614 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 73.2730975609756 1.598 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#F8766D 73.4856341463415 1.582 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) China 5
#53B400 65.4611463414634 3.993 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 66.0129756097561 3.867 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 66.5121951219512 3.744 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 66.9430975609756 3.63 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 67.2982926829268 3.525 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 67.5755853658537 3.43 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 67.7796341463415 3.347 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 67.9340487804878 3.275 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 68.0610975609756 3.211 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 68.1778292682927 3.155 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 68.3055365853658 3.104 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 68.4601219512195 3.057 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 68.649 3.012 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 68.8749024390244 2.966 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 69.1393414634147 2.92 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 69.4366829268293 2.872 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 69.7576097560976 2.823 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 70.085243902439 2.775 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 70.4051951219512 2.727 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 70.7118292682927 2.682 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 71.0009756097561 2.64 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 71.2736585365854 2.603 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 71.5340243902439 2.57 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 71.7882195121951 2.542 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 72.0367804878049 2.518 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 72.2797804878049 2.496 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 72.518756097561 2.475 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 72.7537804878049 2.454 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 72.9843414634147 2.43 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 73.2099756097561 2.403 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 73.4296829268293 2.1 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 73.6419024390244 2.1 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Colombia 104
#53B400 72.5508292682927 3.618 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 73.0736829268293 3.577 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 73.5440487804878 3.544 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 73.9583902439024 3.517 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 74.3177073170732 3.491 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 74.624 3.463 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 74.8857804878049 3.427 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 75.1170487804878 3.38 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 75.3323414634147 3.323 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 75.5396585365854 3.254 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 75.747 3.175 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 75.9568536585366 3.09 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 76.1692195121951 3.002 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 76.3815853658537 2.917 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 76.5954390243902 2.835 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 76.8088048780488 2.758 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 77.0216585365854 2.686 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 77.229512195122 2.616 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 77.4303658536586 2.548 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 77.6227317073171 2.481 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 77.8040731707317 2.414 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 77.9749268292683 2.345 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 78.134756097561 2.275 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 78.2855853658537 2.204 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 78.4284146341463 2.134 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 78.564243902439 2.067 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 78.6950731707317 2.007 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 78.8214146341464 1.954 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 78.9462682926829 1.91 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 79.0691707317073 1.875 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 79.1926097560976 1.848 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 79.3150975609756 1.827 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Costa Rica 105
#53B400 73.5623414634146 1.892 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 73.7679024390244 1.843 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 73.9392195121951 1.826 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.0802682926829 1.825 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.1970731707317 1.832 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.2882195121951 1.837 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.3513414634146 1.836 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.3905609756098 1.827 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.4129512195122 1.81 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.4300487804878 1.785 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.4598048780488 1.752 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.5215853658537 1.715 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.6253170731707 1.68 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.7769024390244 1.65 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 74.9738536585366 1.628 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 75.206756097561 1.614 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 75.457243902439 1.609 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 75.7064146341463 1.61 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 75.9403414634147 1.615 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 76.158 1.621 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 76.3658048780488 1.626 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 76.5796341463415 1.626 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 76.8153414634146 1.621 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 77.0808292682927 1.61 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 77.3740975609756 1.592 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 77.6831951219512 1.57 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 77.9931951219512 1.545 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 78.285243902439 1.52 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 78.5474146341463 1.499 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 78.7732195121951 1.481 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 78.9641463414634 1.467 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#53B400 79.1256341463415 1.457 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Cuba 106
#FB61D7 59.8433414634146 6.375 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 60.4391951219512 6.274 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 61.0173170731707 6.174 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 61.5797073170732 6.075 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 62.126512195122 5.979 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 62.6583170731707 5.883 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 63.1733170731707 5.784 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 63.6721951219512 5.68 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 64.1561951219512 5.565 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 64.6254878048781 5.441 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 65.0802195121951 5.307 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 65.519512195122 5.164 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 65.9453170731707 5.016 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 66.3601219512195 4.863 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 66.7704390243903 4.708 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 67.1823170731707 4.55 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 67.6031951219512 4.388 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 68.0370487804878 4.221 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 68.4878048780488 4.05 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 68.9563902439024 3.876 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 69.4482682926829 3.701 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 69.9698536585366 3.528 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 70.5136585365854 3.358 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 71.0676341463415 3.195 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 71.6177804878049 3.041 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 72.1406585365854 2.899 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 72.6103414634146 2.772 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 73.0108536585366 2.659 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 73.3361951219512 2.561 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 73.5868048780488 2.477 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 73.7740487804878 2.405 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#FB61D7 73.9167804878049 2.344 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Cape Verde 173
#53B400 74.709756097561 2.1 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Curacao 107
#53B400 75.3634146341464 2 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Curacao 107
#53B400 75.309756097561 2.2 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Curacao 107
#53B400 76.1560975609756 2.1 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Curacao 107
#C49A00 74.7484878048781 2.354 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 74.9424878048781 2.385 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 75.131487804878 2.415 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 75.3154878048781 2.438 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 75.4959756097561 2.453 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 75.6729512195122 2.458 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 75.8459268292683 2.456 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 76.0153902439024 2.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 76.1818292682927 2.442 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 76.344268292683 2.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 76.5047073170732 2.411 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 76.6621219512195 2.381 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 76.8160487804878 2.337 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 76.9679756097561 2.278 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 77.1159024390244 2.206 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 77.2623170731707 2.124 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 77.405756097561 2.035 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 77.5471707317073 1.945 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 77.6860975609756 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 77.823512195122 1.781 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 77.9569268292683 1.714 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 78.0853414634146 1.658 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 78.2092682926829 1.613 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 78.3301951219512 1.577 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 78.4500975609756 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 78.5739512195122 1.529 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 78.7087317073171 1.514 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 78.8579024390244 1.503 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 79.0214634146342 1.493 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 79.1969512195122 1.485 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 79.3803902439025 1.476 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 79.5628536585366 1.468 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Cyprus 48
#C49A00 70.2780487804878 2.07 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 70.7221951219512 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 70.8078048780488 2.02 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 70.5914634146341 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 70.8375609756098 1.97 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 71.0463414634146 1.95 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 70.9973170731707 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 71.4456097560976 1.91 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 71.6414634146342 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 71.6756097560976 1.874 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 71.3839024390244 1.893 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 71.8982926829268 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 72.2717073170732 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 72.7678048780488 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 72.9726829268293 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 73.0748780487805 1.278 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 73.7146341463415 1.185 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 73.8248780487805 1.17 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 74.5146341463415 1.16 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 74.6682926829268 1.13 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 74.9682926829268 1.14 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 75.1731707317073 1.14 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 75.2219512195122 1.17 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 75.1707317073171 1.18 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 75.7219512195122 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 75.9243902439025 1.28 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 76.5243902439024 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 76.7243902439025 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 76.9756097560976 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 77.0780487804878 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 77.4243902439025 1.49 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 77.8731707317073 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Czech Republic 49
#C49A00 72.8186341463415 1.44 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 73.0891951219512 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 73.3614146341463 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 73.6377073170732 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 73.917 1.29 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 74.1917317073171 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 74.4533170731707 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 74.6962682926829 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 74.9186097560976 1.46 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 75.1228780487805 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 75.3161219512195 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 75.319512195122 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 75.819512195122 1.29 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 75.8707317073171 1.28 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 76.2707317073171 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 76.4219512195122 1.25 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 76.6731707317073 1.3 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 77.0731707317073 1.35 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 77.4756097560976 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 77.7268292682927 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 77.9268292682927 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 78.3292682926829 1.35 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 78.2292682926829 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 78.3804878048781 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 78.6804878048781 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 78.9317073170732 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 79.1317073170732 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 79.5341463414634 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 79.7365853658537 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 79.8365853658537 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 79.9878048780488 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#C49A00 80.7414634146342 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Germany 56
#00C094 47.9128536585366 6.686 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 48.4219024390244 6.65 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 48.8978780487805 6.62 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 49.3273170731707 6.592 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 49.7062195121951 6.562 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 50.0376097560976 6.527 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 50.328 6.481 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 50.5949024390244 6.424 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 50.8533414634146 6.353 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 51.1088048780488 6.267 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 51.3663170731707 6.166 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 51.6243658536585 6.048 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 51.8804146341463 5.918 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 52.1314878048781 5.779 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 52.3790731707317 5.633 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 52.6241951219512 5.486 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 52.8653902439024 5.339 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 53.1036585365854 5.196 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 53.343512195122 5.058 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 53.5894146341464 4.926 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 53.8503414634146 4.801 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 54.134756097561 4.681 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 54.4471219512195 4.562 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 54.7893902439024 4.445 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 55.1590243902439 4.329 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 55.5500243902439 4.215 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 55.9528536585366 4.106 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 56.3565365853659 4.005 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 56.7550975609756 3.912 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 57.1450487804878 3.827 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 57.5273902439024 3.75 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#00C094 57.9091707317073 3.679 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Djibouti 137
#C49A00 74.1017073170732 1.546 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.2304878048781 1.437 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.5512195121951 1.427 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.4204878048781 1.377 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.5621951219512 1.4 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.4275609756098 1.447 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.579756097561 1.48 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.6912195121951 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.7717073170732 1.56 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.799756097561 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 74.8053658536585 1.67 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 75.1578048780488 1.68 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 75.1941463414634 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 75.1168292682927 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 75.3751219512195 1.806 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 75.2126829268293 1.807 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 75.5914634146342 1.747 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 75.9451219512195 1.752 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 76.1390243902439 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 76.3414634146341 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 76.5926829268293 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 76.7926829268293 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 76.8951219512195 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 77.1439024390244 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 77.4926829268293 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 77.8439024390244 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 78.0951219512195 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 78.1951219512195 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 78.4463414634146 1.89 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 78.5975609756098 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 79.1 1.87 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#C49A00 79.8 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Denmark 50
#53B400 71.4634146341463 3.52 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108
#53B400 71.9634146341463 3 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108
#53B400 73.9512195121951 2.5 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108
#53B400 75.9512195121951 1.9 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108
#53B400 76.5975609756098 1.9 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominica 108
#53B400 63.0011951219512 4.422 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 63.3813414634146 4.302 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 63.7797317073171 4.19 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 64.2024390243903 4.082 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 64.6514634146342 3.978 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 65.1303170731707 3.878 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 65.6355365853659 3.783 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 66.1581951219512 3.695 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 66.6848536585366 3.613 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 67.2051463414634 3.537 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 67.7041951219512 3.466 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 68.1671463414634 3.397 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 68.5885365853659 3.33 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 68.9648780487805 3.262 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 69.2971219512195 3.195 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 69.5917317073171 3.13 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 69.8596097560976 3.069 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 70.1156097560976 3.014 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 70.3715609756098 2.966 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 70.6308292682927 2.926 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 70.8937073170732 2.892 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 71.1545365853659 2.863 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 71.4053170731707 2.836 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 71.6406097560976 2.809 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 71.863 2.781 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 72.0766829268293 2.752 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 72.2879268292683 2.72 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 72.5044634146342 2.686 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 72.7289512195122 2.651 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 72.9619756097561 2.615 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 73.2000243902439 2.58 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#53B400 73.437512195122 2.544 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Dominican Republic 109
#00C094 59.6036829268293 6.909 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 60.3363170731707 6.757 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 61.1255609756098 6.58 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 61.968512195122 6.38 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 62.8491707317073 6.161 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 63.736 5.928 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 64.5879512195122 5.686 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 65.3669024390244 5.441 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 66.0462682926829 5.195 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 66.6150731707317 4.954 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 67.0717804878049 4.713 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 67.4289756097561 4.468 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 67.7191951219512 4.216 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 67.976 3.957 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 68.2178780487805 3.697 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 68.4658780487805 3.446 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 68.7344878048781 3.214 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 69.0256585365854 3.012 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 69.3383658536585 2.845 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 69.6730487804878 2.715 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 70.0241707317073 2.622 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 70.3811219512195 2.56 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 70.7299024390244 2.519 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 71.059 2.49 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 71.3649024390244 2.466 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 71.6461463414634 2.442 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 71.9052926829268 2.415 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 72.1509024390244 2.383 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 72.3890487804878 2.348 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 72.622756097561 2.308 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 72.8525365853659 2.264 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#00C094 73.0799024390244 2.217 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Algeria 135
#53B400 62.9199268292683 5.059 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 63.5484146341463 4.917 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 64.1849756097561 4.773 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 64.8221463414634 4.629 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 65.4534390243902 4.485 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 66.0708292682927 4.342 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 66.6697804878049 4.201 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 67.2482195121951 4.061 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 67.8061463414634 3.925 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 68.3415365853659 3.793 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 68.8568780487805 3.67 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 69.3557317073171 3.557 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 69.8420975609756 3.456 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 70.3200243902439 3.368 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 70.7894878048781 3.292 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 71.252 3.226 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 71.7094634146342 3.167 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 72.1573902439024 3.113 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 72.5912682926829 3.06 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 73.0061463414634 3.007 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 73.3920487804878 2.953 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 73.7380731707317 2.898 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 74.0408048780488 2.844 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 74.299243902439 2.791 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 74.5164146341463 2.739 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 74.6992926829268 2.69 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 74.8578292682927 2.644 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 75.0049512195122 2.599 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 75.1505853658537 2.557 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 75.3021951219512 2.517 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 75.4622926829268 2.479 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#53B400 75.6303902439025 2.443 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Ecuador 110
#C49A00 69.0330487804878 2.02 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 68.9780487804878 2.07 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.1268292682927 2.08 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.3756097560976 2.16 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.2780487804878 2.17 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.3804878048781 2.12 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 70.0853658536585 2.17 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 70.6439024390244 2.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 70.6975609756098 2.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 70.0390243902439 2.21 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.4756097560976 2.04 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.3731707317073 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 68.8634146341464 1.69 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 67.909756097561 1.45 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 66.5 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 67.5439024390244 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.6121951219512 1.335 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.809756097561 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 69.3585365853659 1.28 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 70.0634146341463 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 70.4170731707317 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 70.2585365853659 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 70.9048780487805 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 71.3170731707317 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 71.909756097561 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 72.5682926829268 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 72.6914634146341 1.55 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 72.8146341463415 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 73.7707317073171 1.65 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 74.8243902439024 1.62 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 75.4292682926829 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#C49A00 76.1268292682927 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Estonia 51
#00C094 56.1501951219512 5.366 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 56.733512195122 5.31 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 57.3074146341463 5.251 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 57.8743658536585 5.189 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 58.4373170731707 5.123 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 59.0012195121951 5.045 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 59.571 4.947 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 60.1521463414634 4.827 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 60.7506341463415 4.684 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 61.368512195122 4.522 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 62.0128292682927 4.35 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 62.6876585365854 4.179 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 63.3895853658537 4.018 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 64.1127073170732 3.876 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 64.8499756097561 3.757 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 65.5934634146342 3.659 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 66.3355853658537 3.58 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 67.0653170731707 3.512 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 67.7735853658537 3.447 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 68.4493658536585 3.382 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 69.0826585365854 3.315 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 69.6674390243902 3.247 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 70.203243902439 3.18 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 70.6915609756098 3.114 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 71.1338780487805 3.05 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 71.5286829268293 2.989 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 71.8789756097561 2.931 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 72.1922195121951 2.877 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 72.4754390243903 2.825 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 72.7341219512195 2.778 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 72.9752682926829 2.733 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#00C094 73.2019024390244 2.691 Middle East & North Africa (all income levels) Middle East & North Africa (all income levels) Egypt, Arab Rep. 138
#FB61D7 43.9783658536585 6.513 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 43.9432926829268 6.509 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 44.0036097560976 6.499 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 44.1779024390244 6.481 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 44.4786829268293 6.456 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 44.9069756097561 6.423 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 45.4498048780488 6.386 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 46.0761707317073 6.345 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 46.7580731707317 6.304 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 47.4790243902439 6.26 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 48.2335365853659 6.215 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 49.0215853658537 6.164 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 49.8426585365854 6.107 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 50.692243902439 6.042 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 51.5528780487805 5.97 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 52.4046097560976 5.889 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 53.227 5.803 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 54.0065365853659 5.713 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 54.735756097561 5.62 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 55.4075853658537 5.526 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 56.0249756097561 5.43 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 56.5942926829268 5.334 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 57.1324634146342 5.235 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 57.6539268292683 5.135 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 58.1626829268293 5.033 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 58.6642682926829 4.931 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 59.1577317073171 4.831 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 59.6392195121951 4.732 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 60.1052682926829 4.636 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 60.5569268292683 4.543 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 60.9941951219512 4.453 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#FB61D7 61.4170731707317 4.366 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Eritrea 181
#C49A00 75.3492682926829 2.217 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 75.5285365853659 2.031 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.1341463414634 1.936 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 75.9090243902439 1.792 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.2953658536586 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.259512195122 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.5104878048781 1.6 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.7280487804878 1.47 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.7470731707317 1.42 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.8136585365854 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.8375609756098 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 76.9712195121951 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 77.41 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 77.5465853658537 1.27 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 77.9014634146342 1.2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 77.9807317073171 1.18 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 78.1204878048781 1.15 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 78.6041463414634 1.15 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 78.6658536585366 1.16 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 78.7170731707317 1.19 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 78.9658536585366 1.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 79.3682926829268 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 79.5682926829268 1.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 79.619512195122 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 79.8707317073171 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 80.1707317073171 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 80.8219512195122 1.37 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 80.8731707317073 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 81.1756097560976 1.46 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 81.4756097560976 1.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 81.6268292682927 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#C49A00 82.3268292682927 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Spain 85
#FB61D7 43.914243902439 6.837 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 43.7784634146342 6.873 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 43.7421463414634 6.912 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 43.842243902439 6.95 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 44.0902682926829 6.984 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 44.4752195121951 7.014 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 44.9641219512195 7.04 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 45.5015365853659 7.061 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 46.0399512195122 7.076 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 46.5579024390244 7.083 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 47.0453902439024 7.078 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 47.5029024390244 7.059 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 47.9489512195122 7.024 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 48.398 6.97 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 48.8530487804878 6.898 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 49.3136341463415 6.805 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 49.7752682926829 6.693 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 50.2389512195122 6.561 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 50.7086829268293 6.414 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 51.1929268292683 6.253 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 51.7101219512195 6.08 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 52.2822195121951 5.894 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 52.9186829268293 5.699 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 53.618 5.498 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 54.3706585365854 5.294 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 55.1566585365854 5.091 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 55.9515609756098 4.893 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 56.7239268292683 4.703 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 57.4507804878049 4.522 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 58.1181707317073 4.352 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 58.7150975609756 4.193 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#FB61D7 59.2430975609756 4.045 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ethiopia 182
#C49A00 73.44 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 73.7465853658537 1.65 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.2980487804878 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.2009756097561 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.5190243902439 1.7 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.2229268292683 1.64 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.56 1.6 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.5919512195122 1.59 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.5770731707317 1.7 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.7921951219512 1.71 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 74.8131707317073 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 75.2275609756098 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 75.4553658536585 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 75.7051219512195 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 76.3956097560976 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 76.409512195122 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 76.6934146341464 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 76.8785365853659 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 77.0907317073171 1.7 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 77.2912195121951 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 77.4658536585366 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 77.9658536585366 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 78.119512195122 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 78.3682926829268 1.76 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 78.7146341463415 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 78.8170731707317 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 79.2146341463415 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 79.2634146341464 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 79.5682926829268 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 79.719512195122 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 79.8707317073171 1.87 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#C49A00 80.4707317073171 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Finland 53
#F8766D 63.0091463414634 3.907 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 63.2964634146341 3.864 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 63.5786829268293 3.813 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 63.8533414634146 3.755 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 64.1199756097561 3.693 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 64.3790975609756 3.629 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 64.6297073170732 3.568 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 64.8732926829268 3.512 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 65.1113414634146 3.465 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 65.3438536585366 3.427 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 65.5708536585366 3.398 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 65.7933170731707 3.374 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 66.011243902439 3.352 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 66.2241463414634 3.33 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 66.4335365853659 3.305 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 66.6389024390244 3.276 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 66.840243902439 3.244 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 67.0375609756098 3.209 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 67.2308536585366 3.171 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 67.4201219512195 3.132 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 67.6073170731707 3.09 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 67.7929024390244 3.047 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 67.9773658536586 3.001 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 68.1602682926829 2.954 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 68.3406585365854 2.907 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 68.515243902439 2.86 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 68.6791951219512 2.816 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 68.8316341463415 2.774 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 68.9715853658537 2.735 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 69.1020243902439 2.7 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 69.2258292682927 2.668 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 69.3493170731707 2.639 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Fiji 6
#F8766D 65.1835853658537 6.223 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 65.2895853658537 6.129 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 65.3735853658537 6.02 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 65.4535853658537 5.894 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 65.5395853658537 5.752 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 65.6365853658537 5.6 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 65.7455853658537 5.446 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 65.8585853658537 5.299 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 65.9725853658537 5.167 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.0845853658537 5.052 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.1975853658537 4.958 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.3101219512195 4.882 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.4226585365854 4.82 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.5357073170732 4.766 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.648243902439 4.716 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.759756097561 4.664 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.8677073170732 4.608 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 66.9716097560976 4.544 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 67.0729024390244 4.471 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 67.1726341463415 4.39 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 67.2737317073171 4.3 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 67.3792682926829 4.204 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 67.4937317073171 4.106 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 67.6171463414634 4.008 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 67.752512195122 3.914 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 67.8998536585366 3.824 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 68.0591707317073 3.74 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 68.2274878048781 3.661 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 68.402756097561 3.587 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 68.5830487804878 3.517 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 68.7648292682927 3.451 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#F8766D 68.9481219512195 3.39 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Micronesia, Fed. Sts. 19
#C49A00 74.0512195121951 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 74.3 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 74.5 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 74.8 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 75 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 75.3 1.86 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 75.6 1.85 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 75.8 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 76.1 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 76.3487804878049 1.79 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 76.6 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 76.8487804878049 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 77.1 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 77.3 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 77.6487804878049 1.73 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 77.7512195121951 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 77.9536585365854 1.75 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 78.3048780487805 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 78.4560975609756 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 78.6073170731707 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 78.9585365853659 1.89 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 79.0585365853659 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 79.2609756097561 1.88 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 79.2634146341464 1.89 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 80.1634146341463 1.92 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 80.1146341463415 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 80.5146341463415 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 80.8146341463415 1.98 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 80.8682926829268 2.01 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 81.0682926829268 2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 81.3682926829268 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#C49A00 81.6682926829268 2.03 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) France 54
#FB61D7 54.8438292682927 5.17 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 55.6982682926829 5.185 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 56.5577073170732 5.195 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 57.4076341463415 5.197 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 58.2290975609756 5.194 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 58.9950975609756 5.189 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 59.6776585365854 5.185 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 60.2577804878049 5.185 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 60.7234878048781 5.186 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.0672682926829 5.187 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.2891219512195 5.178 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.3965365853659 5.15 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.4129756097561 5.097 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.3609512195122 5.015 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.2554878048781 4.906 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.0976097560976 4.774 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 60.8794390243903 4.625 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 60.6049512195122 4.472 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 60.2926829268293 4.322 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 59.9720487804878 4.181 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 59.6909512195122 4.051 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 59.4977804878049 3.933 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 59.4239024390244 3.823 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 59.483756097561 3.718 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 59.6818048780488 3.621 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 60.0055853658537 3.531 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 60.4271707317073 3.453 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 60.8991463414634 3.386 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.3811219512195 3.33 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 61.8491219512195 3.286 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 62.2866829268293 3.25 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#FB61D7 62.6912926829268 3.221 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gabon 183
#C49A00 73.6756097560976 1.89 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 74.0268292682927 1.81 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 74.1780487804878 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 74.3780487804878 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 74.7780487804878 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 74.6292682926829 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 74.9292682926829 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 75.280487804878 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 75.3804878048781 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 75.5829268292683 1.8 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 75.8804878048781 1.83 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 76.0829268292683 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 76.4341463414634 1.79 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 76.3853658536585 1.82 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 76.8853658536585 1.74 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 76.8365853658537 1.71 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 77.0878048780488 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 77.2109756097561 1.72 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 77.190243902439 1.71 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 77.390243902439 1.68 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 77.7414634146342 1.64 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 77.9926829268293 1.63 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 78.1439024390244 1.64 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 78.4463414634146 1.71 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 78.7463414634146 1.77 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 79.0487804878049 1.78 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 79.2487804878049 1.84 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 79.4487804878049 1.9 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 79.6 1.96 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 80.0512195121951 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 80.4024390243902 1.98 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#C49A00 80.7536585365854 1.98 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) United Kingdom 92
#53B400 65.0093170731707 4.251 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 65.1253170731707 4.244 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 65.2791707317073 4.243 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 65.4833658536585 4.245 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 65.7467804878049 4.243 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 66.0871707317073 4.231 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 66.5171951219512 4.2 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 67.0341463414634 4.146 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 67.6214146341463 4.068 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 68.2620731707317 3.966 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 68.9273658536586 3.842 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 69.5831951219512 3.701 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 70.2019268292683 3.551 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 70.7642926829268 3.401 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 71.2583170731707 3.254 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 71.6853658536585 3.116 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 72.0596829268293 2.988 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 72.4058780487805 2.87 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 72.7436829268293 2.762 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 73.0774634146342 2.666 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 73.4077073170732 2.582 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 73.727 2.512 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 74.026512195122 2.455 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 74.2989512195122 2.41 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 74.5443414634146 2.374 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 74.7642682926829 2.345 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 74.962756097561 2.322 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 75.146756097561 2.301 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 75.3217804878049 2.28 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 75.4923414634146 2.258 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 75.6604390243903 2.235 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#53B400 75.8270731707317 2.21 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Grenada 112
#C49A00 69.3627804878049 2.315 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 69.3865609756098 2.296 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 69.4243658536585 2.284 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 69.4941707317073 2.277 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 69.5999268292683 2.275 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 69.7340731707317 2.273 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 69.880512195122 2.269 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.0147073170732 2.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.1217073170732 2.243 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.1985609756098 2.217 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.2478780487805 2.18 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.2768292682927 2.132 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.3020487804878 2.076 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.3386097560976 2.013 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.396512195122 1.946 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.4902682926829 1.88 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.6292926829268 1.815 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 70.8139512195122 1.756 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 71.0381219512195 1.703 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 71.2931951219512 1.659 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 71.5630975609756 1.625 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 71.8267317073171 1.601 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 72.0686341463415 1.586 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 72.2758292682927 1.577 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 72.4473414634146 1.574 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 72.5887804878049 1.573 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 72.7142439024391 1.572 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 72.8413414634146 1.571 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 72.9846341463415 1.568 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 73.1471463414634 1.563 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#C49A00 73.3273414634146 1.555 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Georgia 55
#FB61D7 53.1104390243902 6.539 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 53.4090731707317 6.468 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 53.6894634146342 6.392 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 53.9646585365854 6.31 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 54.2455365853659 6.223 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 54.5554146341463 6.131 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 54.9205609756098 6.035 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 55.3458536585366 5.935 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 55.8246829268293 5.831 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 56.3380487804878 5.725 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 56.8430243902439 5.616 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 57.2862926829268 5.505 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 57.6300487804878 5.392 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 57.8559512195122 5.278 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 57.9690731707317 5.166 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 57.9929268292683 5.058 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 57.9684878048781 4.957 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 57.9551219512195 4.866 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 58.001243902439 4.786 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 58.1348048780488 4.716 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 58.382243902439 4.656 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 58.7555365853659 4.607 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 59.2321951219512 4.564 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 59.7857317073171 4.525 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 60.3966097560976 4.487 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 61.0383170731707 4.447 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 61.6813658536585 4.402 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 62.300243902439 4.352 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 62.8735121951219 4.297 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 63.3881707317073 4.236 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 63.8372682926829 4.17 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#FB61D7 64.2243170731707 4.1 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Ghana 185
#C49A00 65.3414634146341 2.53 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 65.2853658536585 2.683 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 65.3365853658537 2.39 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 65.4390243902439 2.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 65.9268292682927 2.308 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 66.9268292682927 2.451 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 68.8634146341464 2.489 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 68.4853658536586 2.3 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 68.4390243902439 2.23 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 68.3541463414634 2.247 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#C49A00 70.2390243902439 2.2 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greenland 58
#FB61D7 47.5411707317073 6.337 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 48.3959756097561 6.324 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 49.2307804878049 6.305 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 50.0315853658537 6.28 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 50.7813658536585 6.252 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 51.4521219512195 6.223 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 52.0128292682927 6.194 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 52.4534634146342 6.166 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 52.7760487804878 6.139 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 52.9915609756098 6.114 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 53.1250487804878 6.09 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 53.209 6.066 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 53.2834634146341 6.039 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 53.3804390243902 6.009 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 53.5204634146342 5.974 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 53.7135365853659 5.933 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 53.9596341463415 5.885 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 54.2402682926829 5.831 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 54.5374146341464 5.772 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 54.8450731707317 5.708 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 55.156756097561 5.64 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 55.4654878048781 5.57 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 55.768756097561 5.498 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 56.0655609756098 5.426 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 56.3548536585366 5.354 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 56.6400731707317 5.281 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 56.9266585365854 5.208 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 57.2200487804878 5.133 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 57.524243902439 5.056 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 57.8382195121951 4.977 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 58.1600243902439 4.896 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 58.4847073170732 4.814 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Gambia, The 184
#FB61D7 38.8347317073171 6.942 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 39.3296829268293 6.948 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 39.8195609756098 6.951 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 40.3074146341463 6.949 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 40.7927073170732 6.942 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 41.2764878048781 6.929 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 41.7607317073171 6.908 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 42.2454634146342 6.879 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 42.7276829268293 6.842 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 43.2059268292683 6.797 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 43.6706829268293 6.745 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 44.1099512195122 6.685 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 44.521756097561 6.619 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 44.9085853658537 6.547 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 45.2789512195122 6.471 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 45.6518536585366 6.393 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 46.0488292682927 6.313 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 46.4883414634146 6.232 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 46.9789024390244 6.15 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 47.522 6.07 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 48.1101463414634 5.991 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 48.7298292682927 5.915 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 49.3570243902439 5.841 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 49.9737317073171 5.769 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 50.5689512195122 5.698 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 51.1356585365854 5.628 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 51.6733658536585 5.557 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 52.1885609756098 5.483 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 52.687243902439 5.407 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 53.1699268292683 5.327 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 53.6385853658537 5.246 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 54.092243902439 5.162 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea 186
#FB61D7 42.8141707317073 5.728 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 43.1603902439024 5.751 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 43.5227073170732 5.776 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 43.9001707317073 5.802 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 44.289756097561 5.826 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 44.6929268292683 5.848 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 45.1081463414634 5.866 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 45.5308292682927 5.881 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 45.9539512195122 5.891 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 46.3684634146341 5.897 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 46.7654390243902 5.9 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 47.1348536585366 5.901 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 47.4722926829268 5.902 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 47.7722926829268 5.902 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.0313902439024 5.901 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.2426097560976 5.897 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.4 5.888 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.5115365853659 5.872 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.5871951219512 5.847 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.6409512195122 5.814 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.6902682926829 5.773 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.7555609756098 5.726 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.8517804878049 5.675 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 48.9889268292683 5.622 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 49.1719268292683 5.567 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 49.4002926829268 5.511 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 49.665512195122 5.454 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 49.9526341463415 5.393 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 50.2472195121951 5.328 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 50.544756097561 5.259 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 50.8408048780488 5.185 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#FB61D7 51.1368780487805 5.106 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Equatorial Guinea 180
#C49A00 74.4152926829268 2.226 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 74.6970487804878 2.091 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 74.976 2.024 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 75.2491707317073 1.94 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 75.514512195122 1.823 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 75.7699756097561 1.677 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 76.016 1.615 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 76.2514878048781 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 76.4773658536585 1.5 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 76.6878048780488 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 76.9390243902439 1.4 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.1365853658537 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.3829268292683 1.38 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.390243902439 1.34 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.6390243902439 1.36 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.5853658536585 1.32 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.6853658536585 1.3 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 78.1365853658537 1.31 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.8390243902439 1.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.9878048780488 1.24 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 77.8878048780488 1.26 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 78.3878048780488 1.25 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 78.6414634146341 1.27 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 78.8414634146341 1.28 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 79.0390243902439 1.3 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 79.2390243902439 1.33 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 79.4390243902439 1.4 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 79.4390243902439 1.41 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 79.9390243902439 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 80.1878048780488 1.52 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 80.3878048780488 1.51 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#C49A00 80.7439024390244 1.43 Europe & Central Asia (all income levels) Europe & Central Asia (all income levels) Greece 57
#53B400 57.312 6.18 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 57.7413170731707 6.152 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 58.1876341463415 6.109 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 58.6529756097561 6.054 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 59.1393658536585 5.987 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 59.6447804878049 5.913 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 60.1651951219512 5.837 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 60.6946097560976 5.764 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 61.2254878048781 5.697 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 61.7563658536585 5.636 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 62.2866829268293 5.58 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 62.8184634146342 5.525 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 63.3537073170732 5.465 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 63.8934634146341 5.397 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 64.4368292682927 5.32 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 64.9863902439024 5.237 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 65.5438048780488 5.148 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 66.1061463414634 5.058 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 66.6674146341464 4.97 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 67.2181219512195 4.884 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 67.7441707317073 4.801 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 68.2289512195122 4.717 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 68.6623170731707 4.633 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 69.0421219512195 4.546 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 69.3678048780488 4.458 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 69.6478536585366 4.369 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 69.8947317073171 4.282 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 70.1250487804878 4.199 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 70.3523414634146 4.122 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 70.5846341463415 4.05 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 70.8254146341463 3.983 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#53B400 71.0722195121951 3.922 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guatemala 113
#F8766D 69.3905365853659 3.247 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 69.6865365853659 3.173 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 69.9755365853659 3.12 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 70.2585365853659 3.088 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 70.5355365853659 3.076 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 70.8075365853659 3.079 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 71.0755365853659 3.092 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 71.3375365853659 3.108 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 71.5935365853659 3.122 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 71.8435365853659 3.13 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 72.0855365853659 3.131 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 72.3200487804878 3.124 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 72.5460487804878 3.114 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 72.7625609756098 3.101 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 72.9715609756098 3.086 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 73.1750731707317 3.067 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 73.3745609756098 3.042 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 73.5725365853659 3.01 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 73.77 2.972 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 73.9679512195122 2.927 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 74.1653902439025 2.878 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 74.3608048780488 2.825 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 74.5532195121951 2.772 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 74.7411219512195 2.721 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 74.9240487804878 2.673 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 75.1039512195122 2.63 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 75.2823902439024 2.591 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 75.4598292682927 2.556 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 75.6378048780488 2.524 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 75.8167804878049 2.496 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 75.9942682926829 2.47 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#F8766D 76.1687804878049 2.446 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Guam 8
#FB61D7 40.0567317073171 6.322 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 40.4640487804878 6.423 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 40.858756097561 6.542 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 41.2253414634146 6.642 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 41.5543170731707 6.71 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 41.840756097561 6.743 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 42.0841951219512 6.743 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 42.2952195121951 6.728 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 42.4848780487805 6.706 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 42.6596829268293 6.68 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 42.8241463414634 6.649 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 42.984756097561 6.608 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 43.1449756097561 6.554 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 43.310243902439 6.486 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 43.4850243902439 6.404 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 43.6752926829268 6.312 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 43.885512195122 6.214 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 44.1151951219512 6.115 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 44.3603170731707 6.02 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 44.6193658536585 5.93 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 44.8848780487805 5.846 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 45.1468536585366 5.768 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 45.3988048780488 5.692 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 45.6397804878049 5.616 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 45.873243902439 5.54 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 46.1096585365854 5.462 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 46.3619756097561 5.383 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 46.6426829268293 5.303 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 46.9592682926829 5.222 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 47.313243902439 5.142 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 47.7006585365854 5.063 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#FB61D7 48.1125853658537 4.988 Sub-Saharan Africa (all income levels) Sub-Saharan Africa (all income levels) Guinea-Bissau 187
#53B400 59.5235853658537 3.567 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 59.768243902439 3.432 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 59.985756097561 3.301 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 60.1744146341463 3.174 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 60.3373902439024 3.052 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 60.4773414634146 2.938 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 60.5988048780488 2.836 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 60.712243902439 2.749 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 60.8275853658537 2.678 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 60.9543414634146 2.624 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 61.1014634146342 2.586 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 61.2744390243902 2.56 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 61.4771707317073 2.544 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 61.7111219512195 2.534 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 61.9812195121951 2.526 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 62.2924878048781 2.518 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 62.6478780487805 2.509 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 63.0444390243902 2.5 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 63.4786341463415 2.49 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 63.9464390243903 2.479 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 64.4482682926829 2.466 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 64.9855609756098 2.451 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 65.551756097561 2.435 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 66.1368780487805 2.419 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 66.7268780487805 2.401 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 67.3033170731707 2.382 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 67.8472195121951 2.362 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 68.3481707317073 2.34 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 68.7992195121951 2.315 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 69.1978780487805 2.289 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 69.5491463414634 2.262 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#53B400 69.862512195122 2.234 Latin America & Caribbean (all income levels) Latin America & Caribbean (all income levels) Guyana 114
#F8766D 74.6731707317073 2.047 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9
#F8766D 75.3243902439025 1.933 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9
#F8766D 75.4292682926829 1.86 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9
#F8766D 75.2756097560976 1.722 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9
#F8766D 76.0292682926829 1.559 East Asia & Pacific (all income levels) East Asia & Pacific (all income levels) Hong Kong SAR, China 9
#F8766D 76.
View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

View raw

(Sorry about that, but we can’t show files that are this big right now.)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment