1 (
function(){
function e(e,t){
try{
for(var n in t)Object.defineProperty(e.prototype,n,{value:t[n],enumerable:!1})}
catch(r){e.prototype=t}}
function t(e){var t=-1,n=e.length,r=[];
while(++t<n)r.push(e[t]);
return r}
function n(e){
return Array.prototype.slice.call(e)}
function r(){}
function i(e){
return e}
function s(){
return this}
function o(){
return!0}
function u(e){
return typeof e==
"function"?e:
function(){
return e}}
function a(e,t,n){
return function(){var r=n.apply(t,arguments);
return arguments.length?e:r}}
function f(e){
return e!=null&&!isNaN(e)}
function l(e){
return e.length}
function c(e){
return e==null}
function h(e){
return e.trim().replace(/\s+/g,
" ")}
function p(e){var t=1;
while(e*t%1)t*=10;
return t}
function d(){}
function v(e){
function t(){var t=n,r=-1,i=t.length,s;
while(++r<i)(s=t[r].on)&&s.apply(
this,arguments);
return e}var n=[],i=
new r;
return t.on=
function(t,r){var s=i.get(t),o;
return arguments.length<2?s&&s.on:(s&&(s.on=null,n=n.slice(0,o=n.indexOf(s)).concat(n.slice(o+1)),i.remove(t)),r&&n.push(i.set(t,{on:r})),e)},t}
function m(e,t){
return t-(e?1+Math.floor(Math.log(e+Math.pow(10,1+Math.floor(Math.log(e)/Math.LN10)-t))/Math.LN10):1)}
function g(e){
return e+
""}
function y(e){var t=e.lastIndexOf(
"."),n=t>=0?e.substring(t):(t=e.length,
""),r=[];
while(t>0)r.push(e.substring(t-=3,t+3));
return r.reverse().join(
",")+n}
function b(e,t){var n=Math.pow(10,Math.abs(8-t)*3);
return{scale:t>8?
function(e){
return e/n}:
function(e){
return e*n},symbol:e}}
function w(e){
return function(t){
return t<=0?0:t>=1?1:e(t)}}
function E(e){
return function(t){
return 1-e(1-t)}}
function S(e){
return function(t){
return.5*(t<.5?e(2*t):2-e(2-2*t))}}function x(e){
return e}
function T(e){
return function(t){
return Math.pow(t,e)}}
function N(e){
return 1-Math.cos(e*Math.PI/2)}
function C(e){
return Math.pow(2,10*(e-1))}
function k(e){
return 1-Math.sqrt(1-e*e)}
function L(e,t){var n;
return arguments.length<2&&(t=.45),arguments.length<1?(e=1,n=t/4):n=t/(2*Math.PI)*Math.asin(1/e),
function(r){
return 1+e*Math.pow(2,10*-r)*Math.sin((r-n)*2*Math.PI/t)}}
function A(e){
return e||(e=1.70158),
function(t){
return t*t*((e+1)*t-e)}}
function O(e){
return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375}
function M(){d3.event.stopPropagation(),d3.event.preventDefault()}
function _(){var e=d3.event,t;
while(t=e.sourceEvent)e=t;
return e}
function D(e){var t=
new d,n=0,r=arguments.length;
while(++n<r)t[arguments[n]]=v(t);
return t.of=
function(n,r){
return function(i){
try{var s=i.sourceEvent=d3.event;i.target=e,d3.event=i,t[i.type].apply(n,r)}
finally{d3.event=s}}},t}
function P(e){var t=[e.a,e.b],n=[e.c,e.d],r=B(t),i=H(t,n),s=B(j(n,t,-i))||0;t[0]*n[1]<n[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-n[0],n[1]))*ls,this.translate=[e.e,e.f],
this.scale=[r,s],
this.skew=s?Math.atan2(i,s)*ls:0}
function H(e,t){
return e[0]*t[0]+e[1]*t[1]}
function B(e){var t=Math.sqrt(H(e,e));
return t&&(e[0]/=t,e[1]/=t),t}
function j(e,t,n){
return e[0]+=n*t[0],e[1]+=n*t[1],e}
function F(e){
return e==
"transform"?d3.interpolateTransform:d3.interpolate}
function I(e,t){
return t=t-(e=+e)?1/(t-e):0,function(n){
return(n-e)*t}}
function q(e,t){
return t=t-(e=+e)?1/(t-e):0,function(n){
return Math.max(0,Math.min(1,(n-e)*t))}}
function R(){}
function U(e,t,n){
return new z(e,t,n)}
function z(e,t,n){this.r=e,this.g=t,this.b=n}
function W(e){
return e<16?
"0"+Math.max(0,e).toString(16):Math.min(255,e).toString(16)}
function X(e,t,n){var r=0,i=0,s=0,o,u,a;o=/([a-z]+)\((.*)\)/i.exec(e);
if(o){u=o[2].split(
",");
switch(o[1]){
case"hsl":
return n(parseFloat(u[0]),parseFloat(u[1])/100,parseFloat(u[2])/100);
case"rgb":
return t(K(u[0]),K(u[1]),K(u[2]))}}
return(a=ds.get(e))?t(a.r,a.g,a.b):(e!=null&&e.charAt(0)===
"#"&&(e.length===4?(r=e.charAt(1),r+=r,i=e.charAt(2),i+=i,s=e.charAt(3),s+=s):e.length===7&&(r=e.substring(1,3),i=e.substring(3,5),s=e.substring(5,7)),r=parseInt(r,16),i=parseInt(i,16),s=parseInt(s,16)),t(r,i,s))}
function V(e,t,n){var r=Math.min(e/=255,t/=255,n/=255),i=Math.max(e,t,n),s=i-r,o,u,a=(i+r)/2;
return s?(u=a<.5?s/(i+r):s/(2-i-r),e==i?o=(t-n)/s+(t<n?6:0):t==i?o=(n-e)/s+2:o=(e-t)/s+4,o*=60):u=o=0,Q(o,u,a)}
function $(e,t,n){e=J(e),t=J(t),n=J(n);var r=ut((.4124564*e+.3575761*t+.1804375*n)/ys),i=ut((.2126729*e+.7151522*t+.072175*n)/bs),s=ut((.0193339*e+.119192*t+.9503041*n)/ws);
return nt(116*i-16,500*(r-i),200*(i-s))}
function J(e){
return(e/=255)<=.04045?e/12.92:Math.pow((e+.055)/1.055,2.4)}
function K(e){var t=parseFloat(e);
return e.charAt(e.length-1)===
"%"?Math.round(t*2.55):t}
function Q(e,t,n){
return new G(e,t,n)}
function G(e,t,n){this.h=e,this.s=t,this.l=n}
function Y(e,t,n){
function r(e){
return e>360?e-=360:e<0&&(e+=360),e<60?s+(o-s)*e/60:e<180?o:e<240?s+(o-s)*(240-e)/60:s}
function i(e){
return Math.round(r(e)*255)}var s,o;
return e%=360,e<0&&(e+=360),t=t<0?0:t>1?1:t,n=n<0?0:n>1?1:n,o=n<=.5?n*(1+t):n+t-n*t,s=2*n-o,U(i(e+120),i(e),i(e-120))}
function Z(e,t,n){
return new et(e,t,n)}
function et(e,t,n){this.h=e,this.c=t,this.l=n}
function tt(e,t,n){
return nt(n,Math.cos(e*=Math.PI/180)*t,Math.sin(e)*t)}
function nt(e,t,n){
return new rt(e,t,n)}
function rt(e,t,n){this.l=e,this.a=t,this.b=n}
function it(e,t,n){var r=(e+16)/116,i=r+t/500,s=r-n/200;
return i=ot(i)*ys,r=ot(r)*bs,s=ot(s)*ws,U(at(3.2404542*i-1.5371385*r-.4985314*s),at(-0.969266*i+1.8760108*r+.041556*s),at(.0556434*i-.2040259*r+1.0572252*s))}
function st(e,t,n){
return Z(Math.atan2(n,t)/Math.PI*180,Math.sqrt(t*t+n*n),e)}
function ot(e){
return e>.206893034?e*e*e:(e-4/29)/7.787037}
function ut(e){
return e>.008856?Math.pow(e,1/3):7.787037*e+4/29}
function at(e){
return Math.round(255*(e<=.00304?12.92*e:1.055*Math.pow(e,1/2.4)-.055))}
function ft(e){
return Qi(e,ks),e}
function lt(e){
return function(){
return Ss(e,
this)}}
function ct(e){
return function(){
return xs(e,
this)}}
function ht(e,t){
function n(){this.removeAttribute(e)}
function r(){this.removeAttributeNS(e.space,e.local)}
function i(){this.setAttribute(e,t)}
function s(){this.setAttributeNS(e.space,e.local,t)}
function o(){var n=t.apply(
this,arguments);n==null?this.removeAttribute(e):this.setAttribute(e,n)}function u(){var n=t.apply(
this,arguments);n==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,n)}return e=d3.ns.qualify(e),t==null?e.local?r:n:typeof t==
"function"?e.local?u:o:e.local?s:i}function pt(e){
return new RegExp(
"(?:^|\\s+)"+d3.requote(e)+
"(?:\\s+|$)",
"g")}
function dt(e,t){
function n(){var n=-1;
while(++n<i)e[n](
this,t)}
function r(){var n=-1,r=t.apply(
this,arguments);
while(++n<i)e[n](
this,r)}e=e.trim().split(/\s+/).map(vt);var i=e.length;
return typeof t==
"function"?r:n}
function vt(e){var t=pt(e);
return function(n,r){
if(i=n.classList)
return r?i.add(e):i.remove(e);var i=n.className,s=i.baseVal!=null,o=s?i.baseVal:i;r?(t.lastIndex=0,t.test(o)||(o=h(o+
" "+e),s?i.baseVal=o:n.className=o)):o&&(o=h(o.replace(t,
" ")),s?i.baseVal=o:n.className=o)}}function mt(e,t,n){
function r(){this.style.removeProperty(e)}
function i(){this.style.setProperty(e,t,n)}
function s(){var r=t.apply(
this,arguments);r==null?this.style.removeProperty(e):this.style.setProperty(e,r,n)}
return t==null?r:typeof t==
"function"?s:i}
function gt(e,t){
function n(){
delete this[e]}
function r(){
this[e]=t}
function i(){var n=t.apply(
this,arguments);n==null?
delete this[e]:
this[e]=n}
return t==null?n:typeof t==
"function"?i:r}
function yt(e){
return{__data__:e}}
function bt(e){
return function(){
return Cs(
this,e)}}
function wt(e){
return arguments.length||(e=d3.ascending),
function(t,n){
return e(t&&t.__data__,n&&n.__data__)}}
function Et(e,t,n){
function r(){var t=
this[s];t&&(this.removeEventListener(e,t,t.$),
delete this[s])}
function i(){
function i(e){var n=d3.event;d3.event=e,u[0]=o.__data__;
try{t.apply(o,u)}
finally{d3.event=n}}var o=
this,u=arguments;r.call(
this),this.addEventListener(e,
this[s]=i,i.$=n),i._=t}var s=
"__on"+e,o=e.indexOf(
".");
return o>0&&(e=e.substring(0,o)),t?i:r}
function St(e,t){
for(var n=0,r=e.length;n<r;n++)
for(var i=e[n],s=0,o=i.length,u;s<o;s++)(u=i[s])&&t(u,s,n);
return e}
function xt(e){
return Qi(e,As),e}
function Tt(e,t,n){Qi(e,Os);var i=
new r,s=d3.dispatch(
"start",
"end"),o=Fs;
return e.id=t,e.time=n,e.tween=
function(t,n){
return arguments.length<2?i.get(t):(n==null?i.remove(t):i.set(t,n),e)},e.ease=
function(t){
return arguments.length?(o=typeof t==
"function"?t:d3.ease.apply(d3,arguments),e):o},e.each=
function(t,n){
return arguments.length<2?Nt.call(e,t):(s.on(t,n),e)},d3.timer(
function(r){
return St(e,
function(e,u,a){
function f(r){
return v.active>t?c():(v.active=t,i.forEach(function(t,n){(n=n.call(e,m,u))&&h.push(n)}),s.start.call(e,m,u),l(r)||d3.timer(l,0,n),1)}
function l(n){
if(v.active!==t)
return c();var r=(n-p)/d,i=o(r),a=h.length;
while(a>0)h[--a].call(e,i);
if(r>=1)
return c(),_s=t,s.end.call(e,m,u),_s=0,1}
function c(){
return--v.count||
delete e.__transition__,1}var h=[],p=e.delay,d=e.duration,v=(e=e.node).__transition__||(e.__transition__={active:0,count:0}),m=e.__data__;++v.count,p<=r?f(r):d3.timer(f,p,n)})},0,n),e}
function Nt(e){var t=_s,n=Fs,r=Bs,i=js;
return _s=this.id,Fs=this.ease(),St(
this,
function(t,n,r){Bs=t.delay,js=t.duration,e.call(t=t.node,t.__data__,n,r)}),_s=t,Fs=n,Bs=r,js=i,
this}
function Ct(e,t,n){
return n!=
""&&Is}
function kt(e,t){
return d3.tween(e,F(t))}
function Lt(){var e,t=Date.now(),n=Us;
while(n)e=t-n.then,e>=n.delay&&(n.flush=n.callback(e)),n=n.next;var r=At()-t;r>24?(isFinite(r)&&(clearTimeout(Ws),Ws=setTimeout(Lt,r)),zs=0):(zs=1,Xs(Lt))}function At(){var e=null,t=Us,n=Infinity;
while(t)t.flush?(
delete Rs[t.callback.id],t=e?e.next=t.next:Us=t.next):(n=Math.min(n,t.then+t.delay),t=(e=t).next);
return n}
function Ot(e,t){var n=e.ownerSVGElement||e;
if(n.createSVGPoint){var r=n.createSVGPoint();
if(Vs<0&&(window.scrollX||window.scrollY)){n=d3.select(document.body).append(
"svg").style(
"position",
"absolute").style(
"top",0).style(
"left",0);var i=n[0][0].getScreenCTM();Vs=!i.f&&!i.e,n.remove()}
return Vs?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(e.getScreenCTM().inverse()),[r.x,r.y]}var s=e.getBoundingClientRect();
return[t.clientX-s.left-e.clientLeft,t.clientY-s.top-e.clientTop]}
function Mt(){}
function _t(e){var t=e[0],n=e[e.length-1];
return t<n?[t,n]:[n,t]}
function Dt(e){
return e.rangeExtent?e.rangeExtent():_t(e.range())}
function Pt(e,t){var n=0,r=e.length-1,i=e[n],s=e[r],o;s<i&&(o=n,n=r,r=o,o=i,i=s,s=o);
if(t=t(s-i))e[n]=t.floor(i),e[r]=t.ceil(s);
return e}
function Ht(){
return Math}
function Bt(e,t,n,r){
function i(){var i=Math.min(e.length,t.length)>2?zt:Ut,a=r?q:I;
return o=i(e,t,a,n),u=i(t,e,a,d3.interpolate),s}
function s(e){
return o(e)}var o,u;
return s.invert=
function(e){
return u(e)},s.domain=
function(t){
return arguments.length?(e=t.map(Number),i()):e},s.range=
function(e){
return arguments.length?(t=e,i()):t},s.rangeRound=
function(e){
return s.range(e).interpolate(d3.interpolateRound)},s.clamp=
function(e){
return arguments.length?(r=e,i()):r},s.interpolate=
function(e){
return arguments.length?(n=e,i()):n},s.ticks=
function(t){
return qt(e,t)},s.tickFormat=
function(t){
return Rt(e,t)},s.nice=
function(){
return Pt(e,Ft),i()},s.copy=
function(){
return Bt(e,t,n,r)},i()}
function jt(e,t){
return d3.rebind(e,t,
"range",
"rangeRound",
"interpolate",
"clamp")}
function Ft(e){
return e=Math.pow(10,Math.round(Math.log(e)/Math.LN10)-1),e&&{floor:
function(t){
return Math.floor(t/e)*e},ceil:
function(t){
return Math.ceil(t/e)*e}}}
function It(e,t){var n=_t(e),r=n[1]-n[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),s=t/r*i;
return s<=.15?i*=10:s<=.35?i*=5:s<=.75&&(i*=2),n[0]=Math.ceil(n[0]/i)*i,n[1]=Math.floor(n[1]/i)*i+i*.5,n[2]=i,n}
function qt(e,t){
return d3.range.apply(d3,It(e,t))}
function Rt(e,t){
return d3.format(
",."+Math.max(0,-Math.floor(Math.log(It(e,t)[2])/Math.LN10+.01))+
"f")}
function Ut(e,t,n,r){var i=n(e[0],e[1]),s=r(t[0],t[1]);
return function(e){
return s(i(e))}}
function zt(e,t,n,r){var i=[],s=[],o=0,u=Math.min(e.length,t.length)-1;e[u]<e[0]&&(e=e.slice().reverse(),t=t.slice().reverse());
while(++o<=u)i.push(n(e[o-1],e[o])),s.push(r(t[o-1],t[o]));
return function(t){var n=d3.bisect(e,t,1,u)-1;
return s[n](i[n](t))}}
function Wt(e,t){
function n(n){
return e(t(n))}var r=t.pow;
return n.invert=
function(t){
return r(e.invert(t))},n.domain=
function(i){
return arguments.length?(t=i[0]<0?Vt:Xt,r=t.pow,e.domain(i.map(t)),n):e.domain().map(r)},n.nice=
function(){
return e.domain(Pt(e.domain(),Ht)),n},n.ticks=
function(){var n=_t(e.domain()),i=[];
if(n.every(isFinite)){var s=Math.floor(n[0]),o=Math.ceil(n[1]),u=r(n[0]),a=r(n[1]);
if(t===Vt){i.push(r(s));
for(;s++<o;)
for(var f=9;f>0;f--)i.push(r(s)*f)}
else{
for(;s<o;s++)
for(var f=1;f<10;f++)i.push(r(s)*f);i.push(r(s))}
for(s=0;i[s]<u;s++);
for(o=i.length;i[o-1]>a;o--);i=i.slice(s,o)}
return i},n.tickFormat=
function(e,i){arguments.length<2&&(i=$s);
if(arguments.length<1)
return i;var s=Math.max(.1,e/n.ticks().length),o=t===Vt?(u=-1e-12,Math.floor):(u=1e-12,Math.ceil),u;
return function(e){
return e/r(o(t(e)+u))<=s?i(e):
""}},n.copy=function(){
return Wt(e.copy(),t)},jt(n,e)}
function Xt(e){
return Math.log(e<0?0:e)/Math.LN10}
function Vt(e){
return-Math.log(e>0?0:-e)/Math.LN10}
function $t(e,t){
function n(t){
return e(r(t))}var r=Jt(t),i=Jt(1/t);
return n.invert=
function(t){
return i(e.invert(t))},n.domain=
function(t){
return arguments.length?(e.domain(t.map(r)),n):e.domain().map(i)},n.ticks=
function(e){
return qt(n.domain(),e)},n.tickFormat=
function(e){
return Rt(n.domain(),e)},n.nice=
function(){
return n.domain(Pt(n.domain(),Ft))},n.exponent=
function(e){
if(!arguments.length)
return t;var s=n.domain();
return r=Jt(t=e),i=Jt(1/t),n.domain(s)},n.copy=
function(){
return $t(e.copy(),t)},jt(n,e)}
function Jt(e){
return function(t){
return t<0?-Math.pow(-t,e):Math.pow(t,e)}}
function Kt(e,t){
function n(t){
return o[((s.get(t)||s.set(t,e.push(t)))-1)%o.length]}
function i(t,n){
return d3.range(e.length).map(
function(e){
return t+n*e})}var s,o,u;
return n.domain=
function(i){
if(!arguments.length)
return e;e=[],s=
new r;var o=-1,u=i.length,a;
while(++o<u)s.has(a=i[o])||s.set(a,e.push(a));
return n[t.t].apply(n,t.a)},n.range=
function(e){
return arguments.length?(o=e,u=0,t={t:
"range",a:arguments},n):o},n.rangePoints=
function(r,s){arguments.length<2&&(s=0);var a=r[0],f=r[1],l=(f-a)/(Math.max(1,e.length-1)+s);
return o=i(e.length<2?(a+f)/2:a+l*s/2,l),u=0,t={t:
"rangePoints",a:arguments},n},n.rangeBands=
function(r,s,a){arguments.length<2&&(s=0),arguments.length<3&&(a=s);var f=r[1]<r[0],l=r[f-0],c=r[1-f],h=(c-l)/(e.length-s+2*a);
return o=i(l+h*a,h),f&&o.reverse(),u=h*(1-s),t={t:
"rangeBands",a:arguments},n},n.rangeRoundBands=
function(r,s,a){arguments.length<2&&(s=0),arguments.length<3&&(a=s);var f=r[1]<r[0],l=r[f-0],c=r[1-f],h=Math.floor((c-l)/(e.length-s+2*a)),p=c-l-(e.length-s)*h;
return o=i(l+Math.round(p/2),h),f&&o.reverse(),u=Math.round(h*(1-s)),t={t:
"rangeRoundBands",a:arguments},n},n.rangeBand=
function(){
return u},n.rangeExtent=
function(){
return _t(t.a[0])},n.copy=
function(){
return Kt(e,t)},n.domain(e)}
function Qt(e,t){
function n(){var n=0,s=e.length,o=t.length;i=[];
while(++n<o)i[n-1]=d3.quantile(e,n/o);
return r}
function r(e){
return isNaN(e=+e)?NaN:t[d3.bisect(i,e)]}var i;
return r.domain=
function(t){
return arguments.length?(e=t.filter(
function(e){
return!isNaN(e)}).sort(d3.ascending),n()):e},r.range=
function(e){
return arguments.length?(t=e,n()):t},r.quantiles=
function(){
return i},r.copy=
function(){
return Qt(e,t)},n()}
function Gt(e,t,n){
function r(t){
return n[Math.max(0,Math.min(o,Math.floor(s*(t-e))))]}
function i(){
return s=n.length/(t-e),o=n.length-1,r}var s,o;
return r.domain=
function(n){
return arguments.length?(e=+n[0],t=+n[n.length-1],i()):[e,t]},r.range=
function(e){
return arguments.length?(n=e,i()):n},r.copy=
function(){
return Gt(e,t,n)},i()}
function Yt(e,t){
function n(n){
return t[d3.bisect(e,n)]}
return n.domain=
function(t){
return arguments.length?(e=t,n):e},n.range=
function(e){
return arguments.length?(t=e,n):t},n.copy=
function(){
return Yt(e,t)},n}
function Zt(e){
function t(e){
return+e}
return t.invert=t,t.domain=t.range=
function(n){
return arguments.length?(e=n.map(t),t):e},t.ticks=
function(t){
return qt(e,t)},t.tickFormat=
function(t){
return Rt(e,t)},t.copy=
function(){
return Zt(e)},t}
function en(e){
return e.innerRadius}
function tn(e){
return e.outerRadius}
function nn(e){
return e.startAngle}
function rn(e){
return e.endAngle}
function sn(e){
function t(t){
function o(){a.push(
"M",s(e(l),f))}var a=[],l=[],c=-1,h=t.length,p,d=u(n),v=u(r);
while(++c<h)i.call(
this,p=t[c],c)?l.push([+d.call(
this,p,c),+v.call(
this,p,c)]):l.length&&(o(),l=[]);
return l.length&&o(),a.length?a.join(
""):null}var n=on,r=un,i=o,s=an,a=s.key,f=.7;
return t.x=
function(e){
return arguments.length?(n=e,t):n},t.y=
function(e){
return arguments.length?(r=e,t):r},t.defined=
function(e){
return arguments.length?(i=e,t):i},t.interpolate=
function(e){
return arguments.length?(typeof e==
"function"?a=s=e:a=(s=eo.get(e)||an).key,t):a},t.tension=
function(e){
return arguments.length?(f=e,t):f},t}
function on(e){
return e[0]}
function un(e){
return e[1]}
function an(e){
return e.join(
"L")}
function fn(e){
return an(e)+
"Z"}
function ln(e){var t=0,n=e.length,r=e[0],i=[r[0],
",",r[1]];
while(++t<n)i.push(
"V",(r=e[t])[1],
"H",r[0]);
return i.join(
"")}
function cn(e){var t=0,n=e.length,r=e[0],i=[r[0],
",",r[1]];
while(++t<n)i.push(
"H",(r=e[t])[0],
"V",r[1]);
return i.join(
"")}
function hn(e,t){
return e.length<4?an(e):e[1]+vn(e.slice(1,e.length-1),mn(e,t))}function pn(e,t){
return e.length<3?an(e):e[0]+vn((e.push(e[0]),e),mn([e[e.length-2]].concat(e,[e[1]]),t))}function dn(e,t,n){
return e.length<3?an(e):e[0]+vn(e,mn(e,t))}function vn(e,t){
if(t.length<1||e.length!=t.length&&e.length!=t.length+2)
return an(e);var n=e.length!=t.length,r=
"",i=e[0],s=e[1],o=t[0],u=o,a=1;n&&(r+=
"Q"+(s[0]-o[0]*2/3)+
","+(s[1]-o[1]*2/3)+
","+s[0]+
","+s[1],i=e[1],a=2);
if(t.length>1){u=t[1],s=e[a],a++,r+=
"C"+(i[0]+o[0])+
","+(i[1]+o[1])+
","+(s[0]-u[0])+
","+(s[1]-u[1])+
","+s[0]+
","+s[1];
for(var f=2;f<t.length;f++,a++)s=e[a],u=t[f],r+=
"S"+(s[0]-u[0])+
","+(s[1]-u[1])+
","+s[0]+
","+s[1]}
if(n){var l=e[a];r+=
"Q"+(s[0]+u[0]*2/3)+
","+(s[1]+u[1]*2/3)+
","+l[0]+
","+l[1]}
return r}
function mn(e,t){var n=[],r=(1-t)/2,i,s=e[0],o=e[1],u=1,a=e.length;
while(++u<a)i=s,s=o,o=e[u],n.push([r*(o[0]-i[0]),r*(o[1]-i[1])]);
return n}
function gn(e){
if(e.length<3)
return an(e);var t=1,n=e.length,r=e[0],i=r[0],s=r[1],o=[i,i,i,(r=e[1])[0]],u=[s,s,s,r[1]],a=[i,
",",s];Sn(a,o,u);
while(++t<n)r=e[t],o.shift(),o.push(r[0]),u.shift(),u.push(r[1]),Sn(a,o,u);t=-1;
while(++t<2)o.shift(),o.push(r[0]),u.shift(),u.push(r[1]),Sn(a,o,u);
return a.join(
"")}
function yn(e){
if(e.length<4)
return an(e);var t=[],n=-1,r=e.length,i,s=[0],o=[0];
while(++n<3)i=e[n],s.push(i[0]),o.push(i[1]);t.push(En(ro,s)+
","+En(ro,o)),--n;
while(++n<r)i=e[n],s.shift(),s.push(i[0]),o.shift(),o.push(i[1]),Sn(t,s,o);
return t.join(
"")}
function bn(e){var t,n=-1,r=e.length,i=r+4,s,o=[],u=[];
while(++n<4)s=e[n%r],o.push(s[0]),u.push(s[1]);t=[En(ro,o),
",",En(ro,u)],--n;
while(++n<i)s=e[n%r],o.shift(),o.push(s[0]),u.shift(),u.push(s[1]),Sn(t,o,u);
return t.join(
"")}
function wn(e,t){var n=e.length-1;
if(n){var r=e[0][0],i=e[0][1],s=e[n][0]-r,o=e[n][1]-i,u=-1,a,f;
while(++u<=n)a=e[u],f=u/n,a[0]=t*a[0]+(1-t)*(r+f*s),a[1]=t*a[1]+(1-t)*(i+f*o)}
return gn(e)}
function En(e,t){
return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}
function Sn(e,t,n){e.push(
"C",En(to,t),
",",En(to,n),
",",En(no,t),
",",En(no,n),
",",En(ro,t),
",",En(ro,n))}
function xn(e,t){
return(t[1]-e[1])/(t[0]-e[0])}
function Tn(e){var t=0,n=e.length-1,r=[],i=e[0],s=e[1],o=r[0]=xn(i,s);
while(++t<n)r[t]=(o+(o=xn(i=s,s=e[t+1])))/2;
return r[t]=o,r}
function Nn(e){var t=[],n,r,i,s,o=Tn(e),u=-1,a=e.length-1;
while(++u<a)n=xn(e[u],e[u+1]),Math.abs(n)<1e-6?o[u]=o[u+1]=0:(r=o[u]/n,i=o[u+1]/n,s=r*r+i*i,s>9&&(s=n*3/Math.sqrt(s),o[u]=s*r,o[u+1]=s*i));u=-1;
while(++u<=a)s=(e[Math.min(a,u+1)][0]-e[Math.max(0,u-1)][0])/(6*(1+o[u]*o[u])),t.push([s||0,o[u]*s||0]);
return t}
function Cn(e){
return e.length<3?an(e):e[0]+vn(e,Nn(e))}function kn(e){var t,n=-1,r=e.length,i,s;
while(++n<r)t=e[n],i=t[0],s=t[1]+Ys,t[0]=i*Math.cos(s),t[1]=i*Math.sin(s);
return e}
function Ln(e){
function t(t){
function o(){l.push(
"M",f(e(v),p),h,c(e(d.reverse()),p),
"Z")}var l=[],d=[],v=[],m=-1,g=t.length,y,b=u(n),w=u(i),E=n===r?
function(){
return x}:u(r),S=i===s?
function(){
return T}:u(s),x,T;
while(++m<g)a.call(
this,y=t[m],m)?(d.push([x=+b.call(
this,y,m),T=+w.call(
this,y,m)]),v.push([+E.call(
this,y,m),+S.call(
this,y,m)])):d.length&&(o(),d=[],v=[]);
return d.length&&o(),l.length?l.join(
""):null}var n=on,r=on,i=0,s=un,a=o,f=an,l=f.key,c=f,h=
"L",p=.7;
return t.x=
function(e){
return arguments.length?(n=r=e,t):r},t.x0=
function(e){
return arguments.length?(n=e,t):n},t.x1=
function(e){
return arguments.length?(r=e,t):r},t.y=
function(e){
return arguments.length?(i=s=e,t):s},t.y0=
function(e){
return arguments.length?(i=e,t):i},t.y1=
function(e){
return arguments.length?(s=e,t):s},t.defined=
function(e){
return arguments.length?(a=e,t):a},t.interpolate=
function(e){
return arguments.length?(typeof e==
"function"?l=f=e:l=(f=eo.get(e)||an).key,c=f.reverse||f,h=f.closed?
"M":
"L",t):l},t.tension=
function(e){
return arguments.length?(p=e,t):p},t}
function An(e){
return e.source}
function On(e){
return e.target}
function Mn(e){
return e.radius}
function _n(e){
return e.startAngle}
function Dn(e){
return e.endAngle}
function Pn(e){
return[e.x,e.y]}
function Hn(e){
return function(){var t=e.apply(
this,arguments),n=t[0],r=t[1]+Ys;
return[n*Math.cos(r),n*Math.sin(r)]}}
function Bn(){
return 64}
function jn(){
return"circle"}
function Fn(e){var t=Math.sqrt(e/Math.PI);
return"M0,"+t+
"A"+t+
","+t+
" 0 1,1 0,"+ -t+
"A"+t+
","+t+
" 0 1,1 0,"+t+
"Z"}
function In(e,t){e.attr(
"transform",
function(e){
return"translate("+t(e)+
",0)"})}
function qn(e,t){e.attr(
"transform",
function(e){
return"translate(0,"+t(e)+
")"})}
function Rn(e,t,n){i=[];
if(n&&t.length>1){var r=_t(e.domain()),i,s=-1,o=t.length,u=(t[1]-t[0])/++n,a,f;
while(++s<o)
for(a=n;--a>0;)(f=+t[s]-a*u)>=r[0]&&i.push(f);
for(--s,a=0;++a<n&&(f=+t[s]+a*u)<r[1];)i.push(f)}
return i}
function Un(){fo||(fo=d3.select(
"body").append(
"div").style(
"visibility",
"hidden").style(
"top",0).style(
"height",0).style(
"width",0).style(
"overflow-y",
"scroll").append(
"div").style(
"height",
"2000px").node().parentNode);var e=d3.event,t;
try{fo.scrollTop=1e3,fo.dispatchEvent(e),t=1e3-fo.scrollTop}
catch(n){t=e.wheelDelta||-e.detail*5}
return t}
function zn(e){var t=e.source,n=e.target,r=Xn(t,n),i=[t];
while(t!==r)t=t.parent,i.push(t);var s=i.length;
while(n!==r)i.splice(s,0,n),n=n.parent;
return i}
function Wn(e){var t=[],n=e.parent;
while(n!=null)t.push(e),e=n,n=n.parent;
return t.push(e),t}
function Xn(e,t){
if(e===t)
return e;var n=Wn(e),r=Wn(t),i=n.pop(),s=r.pop(),o=null;
while(i===s)o=i,i=n.pop(),s=r.pop();
return o}
function Vn(e){e.fixed|=2}
function $n(e){e.fixed&=1}
function Jn(e){e.fixed|=4}
function Kn(e){e.fixed&=3}
function Qn(e,t,n){var r=0,i=0;e.charge=0;
if(!e.leaf){var s=e.nodes,o=s.length,u=-1,a;
while(++u<o){a=s[u];
if(a==null)
continue;Qn(a,t,n),e.charge+=a.charge,r+=a.charge*a.cx,i+=a.charge*a.cy}}
if(e.point){e.leaf||(e.point.x+=Math.random()-.5,e.point.y+=Math.random()-.5);var f=t*n[e.point.index];e.charge+=e.pointCharge=f,r+=f*e.point.x,i+=f*e.point.y}e.cx=r/e.charge,e.cy=i/e.charge}
function Gn(e){
return 20}
function Yn(e){
return 1}
function Zn(e){
return e.x}
function er(e){
return e.y}
function tr(e,t,n){e.y0=t,e.y=n}
function nr(e){
return d3.range(e.length)}
function rr(e){var t=-1,n=e[0].length,r=[];
while(++t<n)r[t]=0;
return r}
function ir(e){var t=1,n=0,r=e[0][1],i,s=e.length;
for(;t<s;++t)(i=e[t][1])>r&&(n=t,r=i);
return n}
function sr(e){
return e.reduce(or,0)}
function or(e,t){
return e+t[1]}
function ur(e,t){
return ar(e,Math.ceil(Math.log(t.length)/Math.LN2+1))}
function ar(e,t){var n=-1,r=+e[0],i=(e[1]-r)/t,s=[];
while(++n<=t)s[n]=i*n+r;
return s}
function fr(e){
return[d3.min(e),d3.max(e)]}
function lr(e,t){
return d3.rebind(e,t,
"sort",
"children",
"value"),e.links=dr,e.nodes=
function(t){
return vo=!0,(e.nodes=e)(t)},e}
function cr(e){
return e.children}
function hr(e){
return e.value}
function pr(e,t){
return t.value-e.value}
function dr(e){
return d3.merge(e.map(
function(e){
return(e.children||[]).map(
function(t){
return{source:e,target:t}})}))}
function vr(e,t){
return e.value-t.value}
function mr(e,t){var n=e._pack_next;e._pack_next=t,t._pack_prev=e,t._pack_next=n,n._pack_prev=t}
function gr(e,t){e._pack_next=t,t._pack_prev=e}
function yr(e,t){var n=t.x-e.x,r=t.y-e.y,i=e.r+t.r;
return i*i-n*n-r*r>.001}
function br(e){
function t(e){r=Math.min(e.x-e.r,r),i=Math.max(e.x+e.r,i),s=Math.min(e.y-e.r,s),o=Math.max(e.y+e.r,o)}
if(!(n=e.children)||!(p=n.length))
return;var n,r=Infinity,i=-Infinity,s=Infinity,o=-Infinity,u,a,f,l,c,h,p;n.forEach(wr),u=n[0],u.x=-u.r,u.y=0,t(u);
if(p>1){a=n[1],a.x=a.r,a.y=0,t(a);
if(p>2){f=n[2],xr(u,a,f),t(f),mr(u,f),u._pack_prev=f,mr(f,a),a=u._pack_next;
for(l=3;l<p;l++){xr(u,a,f=n[l]);var d=0,v=1,m=1;
for(c=a._pack_next;c!==a;c=c._pack_next,v++)
if(yr(c,f)){d=1;
break}
if(d==1)
for(h=u._pack_prev;h!==c._pack_prev;h=h._pack_prev,m++)
if(yr(h,f))
break;d?(v<m||v==m&&a.r<u.r?gr(u,a=c):gr(u=h,a),l--):(mr(u,f),a=f,t(f))}}}var g=(r+i)/2,y=(s+o)/2,b=0;
for(l=0;l<p;l++)f=n[l],f.x-=g,f.y-=y,b=Math.max(b,f.r+Math.sqrt(f.x*f.x+f.y*f.y));e.r=b,n.forEach(Er)}
function wr(e){e._pack_next=e._pack_prev=e}
function Er(e){
delete e._pack_next,
delete e._pack_prev}
function Sr(e,t,n,r){var i=e.children;e.x=t+=r*e.x,e.y=n+=r*e.y,e.r*=r;
if(i){var s=-1,o=i.length;
while(++s<o)Sr(i[s],t,n,r)}}
function xr(e,t,n){var r=e.r+n.r,i=t.x-e.x,s=t.y-e.y;
if(r&&(i||s)){var o=t.r+n.r,u=i*i+s*s;o*=o,r*=r;var a=.5+(r-o)/(2*u),f=Math.sqrt(Math.max(0,2*o*(r+u)-(r-=u)*r-o*o))/(2*u);n.x=e.x+a*i+f*s,n.y=e.y+a*s-f*i}
else n.x=e.x+r,n.y=e.y}
function Tr(e){
return 1+d3.max(e,
function(e){
return e.y})}
function Nr(e){
return e.reduce(
function(e,t){
return e+t.x},0)/e.length}
function Cr(e){var t=e.children;
return t&&t.length?Cr(t[0]):e}function kr(e){var t=e.children,n;
return t&&(n=t.length)?kr(t[n-1]):e}function Lr(e,t){
return e.parent==t.parent?1:2}
function Ar(e){var t=e.children;
return t&&t.length?t[0]:e._tree.thread}
function Or(e){var t=e.children,n;
return t&&(n=t.length)?t[n-1]:e._tree.thread}
function Mr(e,t){var n=e.children;
if(n&&(i=n.length)){var r,i,s=-1;
while(++s<i)t(r=Mr(n[s],t),e)>0&&(e=r)}
return e}
function _r(e,t){
return e.x-t.x}
function Dr(e,t){
return t.x-e.x}
function Pr(e,t){
return e.depth-t.depth}
function Hr(e,t){
function n(e,r){var i=e.children;
if(i&&(a=i.length)){var s,o=null,u=-1,a;
while(++u<a)s=i[u],n(s,o),o=s}t(e,r)}n(e,null)}
function Br(e){var t=0,n=0,r=e.children,i=r.length,s;
while(--i>=0)s=r[i]._tree,s.prelim+=t,s.mod+=t,t+=s.shift+(n+=s.change)}
function jr(e,t,n){e=e._tree,t=t._tree;var r=n/(t.number-e.number);e.change+=r,t.change-=r,t.shift+=n,t.prelim+=n,t.mod+=n}
function Fr(e,t,n){
return e._tree.ancestor.parent==t.parent?e._tree.ancestor:n}
function Ir(e){
return{x:e.x,y:e.y,dx:e.dx,dy:e.dy}}
function qr(e,t){var n=e.x+t[3],r=e.y+t[0],i=e.dx-t[1]-t[3],s=e.dy-t[0]-t[2];
return i<0&&(n+=i/2,i=0),s<0&&(r+=s/2,s=0),{x:n,y:r,dx:i,dy:s}}
function Rr(e,t){
function n(e,r){d3.text(e,t,
function(e){r(e&&n.parse(e))})}
function r(t){
return t.map(i).join(e)}
function i(e){
return o.test(e)?
'"'+e.replace(/\
"/g,'""')+'"':e}var s=new RegExp("\r\n|["+e+"\r\n]","g"),o=new RegExp('[
"'+e+"\n]
"),u=e.charCodeAt(0);return n.parse=function(e){var t;return n.parseRows(e,function(e,n){if(n){var r={},i=-1,s=t.length;while(++i<s)r[t[i]]=e[i];return r}return t=e,null})},n.parseRows=function(e,t){function n(){if(s.lastIndex>=e.length)return i;if(l)return l=!1,r;var t=s.lastIndex;if(e.charCodeAt(t)===34){var n=t;while(n++<e.length)if(e.charCodeAt(n)===34){if(e.charCodeAt(n+1)!==34)break;n++}s.lastIndex=n+2;var o=e.charCodeAt(n+1);return o===13?(l=!0,e.charCodeAt(n+2)===10&&s.lastIndex++):o===10&&(l=!0),e.substring(t+1,n).replace(/""/g,'"')}var a=s.exec(e);return a?(l=a[0].charCodeAt(0)!==u,e.substring(t,a.index)):(s.lastIndex=e.length,e.substring(t))}var r={},i={},o=[],a=0,f,l;s.lastIndex=0;while((f=n())!==i){var c=[];while(f!==r&&f!==i)c.push(f),f=n();if(t&&!(c=t(c,a++)))continue;o.push(c)}return o},n.format=function(e){return e.map(r).join("\n")},n}function Ur(e,t){return function(n){return n&&e.hasOwnProperty(n.type)?e[n.type](n):t}}function zr(e){return"m0,"+e+"a"+e+","+e+" 0 1,1 0,"+ -2*e+"a"+e+","+e+" 0 1,1 0,"+2*e+"z"}function Wr(e,t){go.hasOwnProperty(e.type)&&go[e.type](e,t)}function Xr(e,t){Wr(e.geometry,t)}function Vr(e,t){for(var n=e.features,r=0,i=n.length;r<i;r++)Wr(n[r].geometry,t)}function $r(e,t){for(var n=e.geometries,r=0,i=n.length;r<i;r++)Wr(n[r],t)}function Jr(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)t.apply(null,n[r])}function Kr(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)for(var s=n[r],o=0,u=s.length;o<u;o++)t.apply(null,s[o])}function Qr(e,t){for(var n=e.coordinates,r=0,i=n.length;r<i;r++)for(var s=n[r][0],o=0,u=s.length;o<u;o++)t.apply(null,s[o])}function Gr(e,t){t.apply(null,e.coordinates)}function Yr(e,t){for(var n=e.coordinates[0],r=0,i=n.length;r<i;r++)t.apply(null,n[r])}function Zr(e){return e.source}function ei(e){return e.target}function ti(){function e(e){var t=Math.sin(e*=p)*d,n=Math.sin(p-e)*d,r=n*s+t*c,u=n*o+t*h,a=n*i+t*l;return[Math.atan2(u,r)/mo,Math.atan2(a,Math.sqrt(r*r+u*u))/mo]}var t,n,r,i,s,o,u,a,f,l,c,h,p,d;return e.distance=function(){return p==null&&(d=1/Math.sin(p=Math.acos(Math.max(-1,Math.min(1,i*l+r*f*Math.cos(u-t)))))),p},e.source=function(u){var a=Math.cos(t=u[0]*mo),f=Math.sin(t);return r=Math.cos(n=u[1]*mo),i=Math.sin(n),s=r*a,o=r*f,p=null,e},e.target=function(t){var n=Math.cos(u=t[0]*mo),r=Math.sin(u);return f=Math.cos(a=t[1]*mo),l=Math.sin(a),c=f*n,h=f*r,p=null,e},e}function ni(e,t){var n=ti().source(e).target(t);return n.distance(),n}function ri(e){var t=0,n=0;for(;;){if(e(t,n))return[t,n];t===0?(t=n+1,n=0):(t-=1,n+=1)}}function ii(e,t,n,r){var i,s,o,u,a,f,l;return i=r[e],s=i[0],o=i[1],i=r[t],u=i[0],a=i[1],i=r[n],f=i[0],l=i[1],(l-o)*(u-s)-(a-o)*(f-s)>0}function si(e,t,n){return(n[0]-t[0])*(e[1]-t[1])<(n[1]-t[1])*(e[0]-t[0])}function oi(e,t,n,r){var i=e[0],s=t[0],o=n[0],u=r[0],a=e[1],f=t[1],l=n[1],c=r[1],h=i-o,p=s-i,d=u-o,v=a-l,m=f-a,g=c-l,y=(d*v-g*h)/(g*p-d*m);return[i+y*p,a+y*m]}function ui(e,t){var n={list:e.map(function(e,t){return{index:t,x:e[0],y:e[1]}}).sort(function(e,t){return e.y<t.y?-1:e.y>t.y?1:e.x<t.x?-1:e.x>t.x?1:0}),bottomSite:null},r={list:[],leftEnd:null,rightEnd:null,init:function(){r.leftEnd=r.createHalfEdge(null,"l"),r.rightEnd=r.createHalfEdge(null,"l"),r.leftEnd.r=r.rightEnd,r.rightEnd.l=r.leftEnd,r.list.unshift(r.leftEnd,r.rightEnd)},createHalfEdge:function(e,t){return{edge:e,side:t,vertex:null,l:null,r:null}},insert:function(e,t){t.l=e,t.r=e.r,e.r.l=t,e.r=t},leftBound:function(e){var t=r.leftEnd;do t=t.r;while(t!=r.rightEnd&&i.rightOf(t,e));return t=t.l,t},del:function(e){e.l.r=e.r,e.r.l=e.l,e.edge=null},right:function(e){return e.r},left:function(e){return e.l},leftRegion:function(e){return e.edge==null?n.bottomSite:e.edge.region[e.side]},rightRegion:function(e){return e.edge==null?n.bottomSite:e.edge.region[wo[e.side]]}},i={bisect:function(e,t){var n={region:{l:e,r:t},ep:{l:null,r:null}},r=t.x-e.x,i=t.y-e.y,s=r>0?r:-r,o=i>0?i:-i;return n.c=e.x*r+e.y*i+(r*r+i*i)*.5,s>o?(n.a=1,n.b=i/r,n.c/=r):(n.b=1,n.a=r/i,n.c/=i),n},intersect:function(e,t){var n=e.edge,r=t.edge;if(!n||!r||n.region.r==r.region.r)return null;var i=n.a*r.b-n.b*r.a;if(Math.abs(i)<1e-10)return null;var s=(n.c*r.b-r.c*n.b)/i,o=(r.c*n.a-n.c*r.a)/i,u=n.region.r,a=r.region.r,f,l;u.y<a.y||u.y==a.y&&u.x<a.x?(f=e,l=n):(f=t,l=r);var c=s>=l.region.r.x;return c&&f.side==="l"||!c&&f.side==="r"?null:{x:s,y:o}},rightOf:function(e,t){var n=e.edge,r=n.region.r,i=t.x>r.x;if(i&&e.side==="l")return 1;if(!i&&e.side==="r")return 0;if(n.a===1){var s=t.y-r.y,o=t.x-r.x,u=0,a=0;!i&&n.b<0||i&&n.b>=0?a=u=s>=n.b*o:(a=t.x+t.y*n.b>n.c,n.b<0&&(a=!a),a||(u=1));if(!u){var f=r.x-n.region.l.x;a=n.b*(o*o-s*s)<f*s*(1+2*o/f+n.b*n.b),n.b<0&&(a=!a)}}else{var l=n.c-n.a*t.x,c=t.y-l,h=t.x-r.x,p=l-r.y;a=c*c>h*h+p*p}return e.side==="l"?a:!a},endPoint:function(e,n,r){e.ep[n]=r;if(!e.ep[wo[n]])return;t(e)},distance:function(e,t){var n=e.x-t.x,r=e.y-t.y;return Math.sqrt(n*n+r*r)}},s={list:[],insert:function(e,t,n){e.vertex=t,e.ystar=t.y+n;for(var r=0,i=s.list,o=i.length;r<o;r++){var u=i[r];if(e.ystar>u.ystar||e.ystar==u.ystar&&t.x>u.vertex.x)continue;break}i.splice(r,0,e)},del:function(e){for(var t=0,n=s.list,r=n.length;t<r&&n[t]!=e;++t);n.splice(t,1)},empty:function(){return s.list.length===0},nextEvent:function(e){for(var t=0,n=s.list,r=n.length;t<r;++t)if(n[t]==e)return n[t+1];return null},min:function(){var e=s.list[0];return{x:e.vertex.x,y:e.ystar}},extractMin:function(){return s.list.shift()}};r.init(),n.bottomSite=n.list.shift();var o=n.list.shift(),u,a,f,l,c,h,p,d,v,m,g,y,b;for(;;){s.empty()||(u=s.min());if(o&&(s.empty()||o.y<u.y||o.y==u.y&&o.x<u.x))a=r.leftBound(o),f=r.right(a),p=r.rightRegion(a),y=i.bisect(p,o),h=r.createHalfEdge(y,"l"),r.insert(a,h),m=i.intersect(a,h),m&&(s.del(a),s.insert(a,m,i.