2016-10-03 17:18:48 +00:00
// https://d3js.org Version 4.2.6. Copyright 2016 Mike Bostock.
( function ( t , n ) { "object" == typeof exports && "undefined" != typeof module ? n ( exports ) : "function" == typeof define && define . amd ? define ( [ "exports" ] , n ) : n ( t . d3 = t . d3 || { } ) } ) ( this , function ( t ) { "use strict" ; function n ( t ) { return function ( n , e ) { return ms ( t ( n ) , e ) } } function e ( t , n , e ) { var r = Math . abs ( n - t ) / Math . max ( 0 , e ) , i = Math . pow ( 10 , Math . floor ( Math . log ( r ) / Math . LN10 ) ) , o = r / i ; return o >= Rs ? i *= 10 : o >= Us ? i *= 5 : o >= Ds && ( i *= 2 ) , n < t ? - i : i } function r ( t ) { return t . length } function i ( ) { } function o ( t , n ) { var e = new i ; if ( t instanceof i ) t . each ( function ( t , n ) { e . set ( n , t ) } ) ; else if ( Array . isArray ( t ) ) { var r , o = - 1 , u = t . length ; if ( null == n ) for ( ; ++ o < u ; ) e . set ( o , t [ o ] ) ; else for ( ; ++ o < u ; ) e . set ( n ( r = t [ o ] , o , t ) , r ) } else if ( t ) for ( var a in t ) e . set ( a , t [ a ] ) ; return e } function u ( ) { return { } } function a ( t , n , e ) { t [ n ] = e } function c ( ) { return o ( ) } function s ( t , n , e ) { t . set ( n , e ) } function f ( ) { } function l ( t , n ) { var e = new f ; if ( t instanceof f ) t . each ( function ( t ) { e . add ( t ) } ) ; else if ( t ) { var r = - 1 , i = t . length ; if ( null == n ) for ( ; ++ r < i ; ) e . add ( t [ r ] ) ; else for ( ; ++ r < i ; ) e . add ( n ( t [ r ] , r , t ) ) } return e } function h ( t ) { return + t } function p ( t ) { return t * t } function d ( t ) { return t * ( 2 - t ) } function v ( t ) { return ( ( t *= 2 ) <= 1 ? t * t : -- t * ( 2 - t ) + 1 ) / 2 } function _ ( t ) { return t * t * t } function y ( t ) { return -- t * t * t + 1 } function g ( t ) { return ( ( t *= 2 ) <= 1 ? t * t * t : ( t -= 2 ) * t * t + 2 ) / 2 } function m ( t ) { return 1 - Math . cos ( t * xf ) } function x ( t ) { return Math . sin ( t * xf ) } function b ( t ) { return ( 1 - Math . cos ( mf * t ) ) / 2 } function w ( t ) { return Math . pow ( 2 , 10 * t - 10 ) } function M ( t ) { return 1 - Math . pow ( 2 , - 10 * t ) } function T ( t ) { return ( ( t *= 2 ) <= 1 ? Math . pow ( 2 , 10 * t - 10 ) : 2 - Math . pow ( 2 , 10 - 10 * t ) ) / 2 } function N ( t ) { return 1 - Math . sqrt ( 1 - t * t ) } function k ( t ) { return Math . sqrt ( 1 - -- t * t ) } function S ( t ) { return ( ( t *= 2 ) <= 1 ? 1 - Math . sqrt ( 1 - t * t ) : Math . sqrt ( 1 - ( t -= 2 ) * t ) + 1 ) / 2 } function A ( t ) { return 1 - E ( 1 - t ) } function E ( t ) { return ( t = + t ) < bf ? Cf * t * t : t < Mf ? Cf * ( t -= wf ) * t + Tf : t < kf ? Cf * ( t -= Nf ) * t + Sf : Cf * ( t -= Af ) * t + Ef } function C ( t ) { return ( ( t *= 2 ) <= 1 ? 1 - E ( 1 - t ) : E ( t - 1 ) + 1 ) / 2 } function z ( t , n ) { return t [ 0 ] - n [ 0 ] || t [ 1 ] - n [ 1 ] } function P ( t ) { for ( var n = t . length , e = [ 0 , 1 ] , r = 2 , i = 2 ; i < n ; ++ i ) { for ( ; r > 1 && jf ( t [ e [ r - 2 ] ] , t [ e [ r - 1 ] ] , t [ i ] ) <= 0 ; ) -- r ; e [ r ++ ] = i } return e . slice ( 0 , r ) } function q ( ) { this . _x0 = this . _y0 = this . _x1 = this . _y1 = null , this . _ = [ ] } function L ( ) { return new q } function R ( t , n , e , r ) { if ( isNaN ( n ) || isNaN ( e ) ) return t ; var i , o , u , a , c , s , f , l , h , p = t . _root , d = { data : r } , v = t . _x0 , _ = t . _y0 , y = t . _x1 , g = t . _y1 ; if ( ! p ) return t . _root = d , t ; for ( ; p . length ; ) if ( ( s = n >= ( o = ( v + y ) / 2 ) ) ? v = o : y = o , ( f = e >= ( u = ( _ + g ) / 2 ) ) ? _ = u : g = u , i = p , ! ( p = p [ l = f << 1 | s ] ) ) return i [ l ] = d , t ; if ( a = + t . _x . call ( null , p . data ) , c = + t . _y . call ( null , p . data ) , n === a && e === c ) return d . next = p , i ? i [ l ] = d : t . _root = d , t ; do i = i ? i [ l ] = new Array ( 4 ) : t . _root = new Array ( 4 ) , ( s = n >= ( o = ( v + y ) / 2 ) ) ? v = o : y = o , ( f = e >= ( u = ( _ + g ) / 2 ) ) ? _ = u : g = u ; while ( ( l = f << 1 | s ) === ( h = ( c >= u ) << 1 | a >= o ) ) ; return i [ h ] = p , i [ l ] = d , t } function U ( t ) { var n , e , r , i , o = t . length , u = new Array ( o ) , a = new Array ( o ) , c = 1 / 0 , s = 1 / 0 , f = - ( 1 / 0 ) , l = - ( 1 / 0 ) ; for ( e = 0 ; e < o ; ++ e ) isNaN ( r = + this . _x . call ( null , n = t [ e ] ) ) || isNaN ( i = + this . _y . call ( null , n ) ) || ( u [ e ] = r , a [ e ] = i , r < c && ( c = r ) , r > f && ( f = r ) , i < s && ( s = i ) , i > l && ( l = i ) ) ; for ( f < c && ( c = this . _x0 , f = this . _x1 ) , l < s && ( s = this . _y0 , l = this . _y1 ) , this . cover ( c , s ) . cover ( f , l ) , e = 0 ; e < o ; ++ e ) R ( this , u [ e ] , a [ e ] , t [ e ] ) ; return this } function D ( t ) { for ( var n = 0 , e = t . length ; n < e ; ++ n ) this . remove ( t [ n ] ) ; return this } function O ( t ) { return t [ 0 ] } function F ( t ) { return t [ 1 ] } function I ( t , n , e ) { var r = new Y ( null == n ? O : n , null == e ? F : e , NaN , NaN , NaN , NaN ) ; return null == t ? r : r . addAll ( t ) } function Y ( t , n , e , r , i , o ) { this . _x = t , this . _y = n , this . _x0 = e , this . _y0 = r , this . _x1 = i , this . _y1 = o , this . _root = void 0 } function B ( t ) { for ( var n = { data : t . data } , e = n ; t = t . next ; ) e = e . next = { data : t . data } ; return n } function j ( t ) { if ( ! ( t >= 1 ) ) throw new Error ; this . _size = t , this . _call = this . _error = null , this . _tasks = [ ] , this . _data = [ ] , this . _waiting = this . _active = this . _ended = this . _start = 0 } function H ( t ) { if ( ! t . _start ) try { X ( t ) } catch ( n ) { if ( t . _tasks [ t . _ended + t . _active - 1 ] ) W ( t , n ) ; else if ( ! t . _data ) throw n } } function X ( t ) { for ( ; t . _start = t . _waiting && t . _active < t . _size ; ) { var n = t . _ended + t . _active , e = t . _tasks [ n ] , r = e . length - 1 , i = e [ r ] ; e [ r ] = V ( t , n ) , -- t . _waiting , ++ t . _active , e = i . apply ( null , e ) , t . _tasks [ n ] && ( t . _tasks [ n ] = e || hl ) } } function V ( t , n ) { return function ( e , r ) { t . _tasks [ n ] && ( -- t . _active , ++ t . _ended , t . _tasks [ n ] = null , null == t . _error && ( null != e ? W ( t , e ) : ( t . _data [ n ] = r , t . _waiting ? H ( t ) : $ ( t ) ) ) ) } } function W ( t , n
} function Pr ( t ) { return t instanceof Date ? + t : + new Date ( + t ) } function qr ( t , n , r , i , o , u , a , c , s ) { function f ( e ) { return ( a ( e ) < e ? v : u ( e ) < e ? _ : o ( e ) < e ? y : i ( e ) < e ? g : n ( e ) < e ? r ( e ) < e ? m : x : t ( e ) < e ? b : w ) ( e ) } function l ( n , r , i , o ) { if ( null == n && ( n = 10 ) , "number" == typeof n ) { var u = Math . abs ( i - r ) / n , a = xs ( function ( t ) { return t [ 2 ] } ) . right ( M , u ) ; a === M . length ? ( o = e ( r / n _ , i / n _ , n ) , n = t ) : a ? ( a = M [ u / M [ a - 1 ] [ 2 ] < M [ a ] [ 2 ] / u ? a - 1 : a ] , o = a [ 1 ] , n = a [ 0 ] ) : ( o = e ( r , i , n ) , n = c ) } return null == o ? n : n . every ( o ) } var h = dr ( cr , ap ) , p = h . invert , d = h . domain , v = s ( ".%L" ) , _ = s ( ":%S" ) , y = s ( "%I:%M" ) , g = s ( "%I %p" ) , m = s ( "%a %d" ) , x = s ( "%b %d" ) , b = s ( "%B" ) , w = s ( "%Y" ) , M = [ [ a , 1 , Zv ] , [ a , 5 , 5 * Zv ] , [ a , 15 , 15 * Zv ] , [ a , 30 , 30 * Zv ] , [ u , 1 , Gv ] , [ u , 5 , 5 * Gv ] , [ u , 15 , 15 * Gv ] , [ u , 30 , 30 * Gv ] , [ o , 1 , Jv ] , [ o , 3 , 3 * Jv ] , [ o , 6 , 6 * Jv ] , [ o , 12 , 12 * Jv ] , [ i , 1 , Qv ] , [ i , 2 , 2 * Qv ] , [ r , 1 , Kv ] , [ n , 1 , t _ ] , [ n , 3 , 3 * t _ ] , [ t , 1 , n _ ] ] ; return h . invert = function ( t ) { return new Date ( p ( t ) ) } , h . domain = function ( t ) { return arguments . length ? d ( Yv . call ( t , Pr ) ) : d ( ) . map ( zr ) } , h . ticks = function ( t , n ) { var e , r = d ( ) , i = r [ 0 ] , o = r [ r . length - 1 ] , u = o < i ; return u && ( e = i , i = o , o = e ) , e = l ( t , i , o , n ) , e = e ? e . range ( i , o + 1 ) : [ ] , u ? e . reverse ( ) : e } , h . tickFormat = function ( t , n ) { return null == n ? f : s ( n ) } , h . nice = function ( t , n ) { var e = d ( ) ; return ( t = l ( t , e [ 0 ] , e [ e . length - 1 ] , n ) ) ? d ( $v ( e , t ) ) : h } , h . copy = function ( ) { return pr ( h , qr ( t , n , r , i , o , u , a , c , s ) ) } , h } function Lr ( t ) { var n = t . length ; return function ( e ) { return t [ Math . max ( 0 , Math . min ( n - 1 , Math . floor ( e * n ) ) ) ] } } function Rr ( t ) { function n ( n ) { var o = ( n - e ) / ( r - e ) ; return t ( i ? Math . max ( 0 , Math . min ( 1 , o ) ) : o ) } var e = 0 , r = 1 , i = ! 1 ; return n . domain = function ( t ) { return arguments . length ? ( e = + t [ 0 ] , r = + t [ 1 ] , n ) : [ e , r ] } , n . clamp = function ( t ) { return arguments . length ? ( i = ! ! t , n ) : i } , n . interpolator = function ( e ) { return arguments . length ? ( t = e , n ) : t } , n . copy = function ( ) { return Rr ( t ) . domain ( [ e , r ] ) . clamp ( i ) } , vr ( n ) } function Ur ( t ) { return function ( ) { var n = this . ownerDocument , e = this . namespaceURI ; return e === g _ && n . documentElement . namespaceURI === g _ ? n . createElement ( t ) : n . createElementNS ( e , t ) } } function Dr ( t ) { return function ( ) { return this . ownerDocument . createElementNS ( t . space , t . local ) } } function Or ( ) { return new Fr } function Fr ( ) { this . _ = "@" + ( ++ w _ ) . toString ( 36 ) } function Ir ( t , n , e ) { return t = Yr ( t , n , e ) , function ( n ) { var e = n . relatedTarget ; e && ( e === this || 8 & e . compareDocumentPosition ( this ) ) || t . call ( this , n ) } } function Yr ( n , e , r ) { return function ( i ) { var o = t . event ; t . event = i ; try { n . call ( this , this . _ _data _ _ , e , r ) } finally { t . event = o } } } function Br ( t ) { return t . trim ( ) . split ( /^|\s+/ ) . map ( function ( t ) { var n = "" , e = t . indexOf ( "." ) ; return e >= 0 && ( n = t . slice ( e + 1 ) , t = t . slice ( 0 , e ) ) , { type : t , name : n } } ) } function jr ( t ) { return function ( ) { var n = this . _ _on ; if ( n ) { for ( var e , r = 0 , i = - 1 , o = n . length ; r < o ; ++ r ) e = n [ r ] , t . type && e . type !== t . type || e . name !== t . name ? n [ ++ i ] = e : this . removeEventListener ( e . type , e . listener , e . capture ) ; ++ i ? n . length = i : delete this . _ _on } } } function Hr ( t , n , e ) { var r = S _ . hasOwnProperty ( t . type ) ? Ir : Yr ; return function ( i , o , u ) { var a , c = this . _ _on , s = r ( n , o , u ) ; if ( c ) for ( var f = 0 , l = c . length ; f < l ; ++ f ) if ( ( a = c [ f ] ) . type === t . type && a . name === t . name ) return this . removeEventListener ( a . type , a . listener , a . capture ) , this . addEventListener ( a . type , a . listener = s , a . capture = e ) , void ( a . value = n ) ; this . addEventListener ( t . type , s , e ) , a = { type : t . type , name : t . name , value : n , listener : s , capture : e } , c ? c . push ( a ) : this . _ _on = [ a ] } } function Xr ( n , e , r , i ) { var o = t . event ; n . sourceEvent = t . event , t . event = n ; try { return e . apply ( r , i ) } finally { t . event = o } } function Vr ( ) { } function Wr ( ) { return [ ] } function $r ( t , n ) { this . ownerDocument = t . ownerDocument , this . namespaceURI = t . namespaceURI , this . _next = null , this . _parent = t , this . _ _data _ _ = n } function Zr ( t , n , e , r , i , o ) { for ( var u , a = 0 , c = n . length , s = o . length ; a < s ; ++ a ) ( u = n [ a ] ) ? ( u . _ _data _ _ = o [ a ] , r [ a ] = u ) : e [ a ] = new $r ( t , o [ a ] ) ; for ( ; a < c ; ++ a ) ( u = n [ a ] ) && ( i [ a ] = u ) } function Gr ( t , n , e , r , i , o , u ) { var a , c , s , f = { } , l = n . length , h = o . length , p = new Array ( l ) ; for ( a = 0 ; a < l ; ++ a ) ( c = n [ a ] ) && ( p [ a ] = s = Y _ + u . call ( c , c . _ _data _ _ , a , n ) , s in f ? i [ a ] = c : f [ s ] = c ) ; for ( a = 0 ; a < h ; ++ a ) s = Y _ + u . call ( t , o [ a ] , a , o ) , ( c = f [ s ] ) ? ( r [ a ] = c , c . _ _data _ _ = o [ a ] , f [ s ] = null ) : e [ a ] = new $r ( t , o [ a ] ) ; for ( a = 0 ; a < l ; ++ a ) ( c = n [ a ] ) && f [ p [ a ] ] === c && ( i [ a ] = c ) } function Jr ( t , n ) { return t < n ? - 1 : t > n ? 1 : t >= n ? 0 : NaN } function Qr ( t ) { return function ( ) { this . removeAttribute ( t ) } } function Kr ( t ) { return function ( ) { this . removeAttributeNS ( t . space , t . local ) } } function ti ( t , n ) { return function ( ) { this . setAttribute ( t , n ) } } funct
} ) : t . each ( function ( ) { var t = this , o = arguments , u = t . _ _brush , a = n . input ( "function" == typeof e ? e . apply ( t , o ) : e , u . extent ) , c = i ( t , o ) . beforestart ( ) ; Ay ( t ) , u . selection = null == a || pa ( a ) ? null : a , r . call ( t ) , c . start ( ) . brush ( ) . end ( ) } ) } , o . prototype = { beforestart : function ( ) { return 1 === ++ this . active && ( this . state . emitter = this , this . starting = ! 0 ) , this } , start : function ( ) { return this . starting && ( this . starting = ! 1 , this . emit ( "start" ) ) , this } , brush : function ( ) { return this . emit ( "brush" ) , this } , end : function ( ) { return 0 === -- this . active && ( delete this . state . emitter , this . emit ( "end" ) ) , this } , emit : function ( t ) { Xr ( new _m ( e , t , n . output ( this . state . selection ) ) , l . apply , l , [ t , this . that , this . args ] ) } } , e . extent = function ( t ) { return arguments . length ? ( s = "function" == typeof t ? t : vm ( [ [ + t [ 0 ] [ 0 ] , + t [ 0 ] [ 1 ] ] , [ + t [ 1 ] [ 0 ] , + t [ 1 ] [ 1 ] ] ] ) , e ) : s } , e . filter = function ( t ) { return arguments . length ? ( f = "function" == typeof t ? t : vm ( ! ! t ) , e ) : f } , e . handleSize = function ( t ) { return arguments . length ? ( h = + t , e ) : h } , e . on = function ( ) { var t = l . on . apply ( l , arguments ) ; return t === l ? e : t } , e } function ga ( t ) { return function ( n , e ) { return t ( n . source . value + n . target . value , e . source . value + e . target . value ) } } function ma ( t ) { return t . source } function xa ( t ) { return t . target } function ba ( t ) { return t . radius } function wa ( t ) { return t . startAngle } function Ma ( t ) { return t . endAngle } function Ta ( ) { this . reset ( ) } function Na ( t , n , e ) { var r = t . s = n + e , i = r - n , o = r - i ; t . t = n - o + ( e - i ) } function ka ( t ) { return t > 1 ? 0 : t < - 1 ? wx : Math . acos ( t ) } function Sa ( t ) { return t > 1 ? Mx : t < - 1 ? - Mx : Math . asin ( t ) } function Aa ( t ) { return ( t = Ux ( t / 2 ) ) * t } function Ea ( ) { } function Ca ( t , n ) { t && Yx . hasOwnProperty ( t . type ) && Yx [ t . type ] ( t , n ) } function za ( t , n , e ) { var r , i = - 1 , o = t . length - e ; for ( n . lineStart ( ) ; ++ i < o ; ) r = t [ i ] , n . point ( r [ 0 ] , r [ 1 ] , r [ 2 ] ) ; n . lineEnd ( ) } function Pa ( t , n ) { var e = - 1 , r = t . length ; for ( n . polygonStart ( ) ; ++ e < r ; ) za ( t [ e ] , n , 1 ) ; n . polygonEnd ( ) } function qa ( ) { Xx . point = Ra } function La ( ) { Ua ( Bm , jm ) } function Ra ( t , n ) { Xx . point = Ua , Bm = t , jm = n , t *= Sx , n *= Sx , Hm = t , Xm = zx ( n = n / 2 + Tx ) , Vm = Ux ( n ) } function Ua ( t , n ) { t *= Sx , n *= Sx , n = n / 2 + Tx ; var e = t - Hm , r = e >= 0 ? 1 : - 1 , i = r * e , o = zx ( n ) , u = Ux ( n ) , a = Vm * u , c = Xm * o + a * zx ( i ) , s = a * r * Ux ( i ) ; jx . add ( Cx ( s , c ) ) , Hm = t , Xm = o , Vm = u } function Da ( t ) { return [ Cx ( t [ 1 ] , t [ 0 ] ) , Sa ( t [ 2 ] ) ] } function Oa ( t ) { var n = t [ 0 ] , e = t [ 1 ] , r = zx ( e ) ; return [ r * zx ( n ) , r * Ux ( n ) , Ux ( e ) ] } function Fa ( t , n ) { return t [ 0 ] * n [ 0 ] + t [ 1 ] * n [ 1 ] + t [ 2 ] * n [ 2 ] } function Ia ( t , n ) { return [ t [ 1 ] * n [ 2 ] - t [ 2 ] * n [ 1 ] , t [ 2 ] * n [ 0 ] - t [ 0 ] * n [ 2 ] , t [ 0 ] * n [ 1 ] - t [ 1 ] * n [ 0 ] ] } function Ya ( t , n ) { t [ 0 ] += n [ 0 ] , t [ 1 ] += n [ 1 ] , t [ 2 ] += n [ 2 ] } function Ba ( t , n ) { return [ t [ 0 ] * n , t [ 1 ] * n , t [ 2 ] * n ] } function ja ( t ) { var n = Ox ( t [ 0 ] * t [ 0 ] + t [ 1 ] * t [ 1 ] + t [ 2 ] * t [ 2 ] ) ; t [ 0 ] /= n , t [ 1 ] /= n , t [ 2 ] /= n } function Ha ( t , n ) { nx . push ( ex = [ Wm = t , Zm = t ] ) , n < $m && ( $m = n ) , n > Gm && ( Gm = n ) } function Xa ( t , n ) { var e = Oa ( [ t * Sx , n * Sx ] ) ; if ( tx ) { var r = Ia ( tx , e ) , i = [ r [ 1 ] , - r [ 0 ] , 0 ] , o = Ia ( i , r ) ; ja ( o ) , o = Da ( o ) ; var u , a = t - Jm , c = a > 0 ? 1 : - 1 , s = o [ 0 ] * kx * c , f = Ax ( a ) > 180 ; f ^ ( c * Jm < s && s < c * t ) ? ( u = o [ 1 ] * kx , u > Gm && ( Gm = u ) ) : ( s = ( s + 360 ) % 360 - 180 , f ^ ( c * Jm < s && s < c * t ) ? ( u = - o [ 1 ] * kx , u < $m && ( $m = u ) ) : ( n < $m && ( $m = n ) , n > Gm && ( Gm = n ) ) ) , f ? t < Jm ? Ja ( Wm , t ) > Ja ( Wm , Zm ) && ( Zm = t ) : Ja ( t , Zm ) > Ja ( Wm , Zm ) && ( Wm = t ) : Zm >= Wm ? ( t < Wm && ( Wm = t ) , t > Zm && ( Zm = t ) ) : t > Jm ? Ja ( Wm , t ) > Ja ( Wm , Zm ) && ( Zm = t ) : Ja ( t , Zm ) > Ja ( Wm , Zm ) && ( Wm = t ) } else Ha ( t , n ) ; tx = e , Jm = t } function Va ( ) { $x . point = Xa } function Wa ( ) { ex [ 0 ] = Wm , ex [ 1 ] = Zm , $x . point = Ha , tx = null } function $a ( t , n ) { if ( tx ) { var e = t - Jm ; Wx . add ( Ax ( e ) > 180 ? e + ( e > 0 ? 360 : - 360 ) : e ) } else Qm = t , Km = n ; Xx . point ( t , n ) , Xa ( t , n ) } function Za ( ) { Xx . lineStart ( ) } function Ga ( ) { $a ( Qm , Km ) , Xx . lineEnd ( ) , Ax ( Wx ) > xx && ( Wm = - ( Zm = 180 ) ) , ex [ 0 ] = Wm , ex [ 1 ] = Zm , tx = null } function Ja ( t , n ) { return ( n -= t ) < 0 ? n + 360 : n } function Qa ( t , n ) { return t [ 0 ] - n [ 0 ] } function Ka ( t , n ) { return t [ 0 ] <= t [ 1 ] ? t [ 0 ] <= n && n <= t [ 1 ] : n < t [ 0 ] || t [ 1 ] < n } function tc ( t , n ) { t *= Sx , n *= Sx ; var e = zx ( n ) ; nc ( e * zx ( t ) , e * Ux ( t ) , Ux ( n ) ) } function nc ( t , n , e ) { ++ rx , ox += ( t - ox ) / rx , ux += ( n - ux ) / rx , ax += ( e - ax ) / rx } function ec ( ) { Gx . point = rc } function rc ( t , n ) { t *= Sx , n *= Sx ; var e = zx ( n ) ; _x = e * zx ( t ) , yx = e * Ux ( t ) , gx = Ux ( n ) , Gx . point = ic , nc ( _x , yx , gx ) } function ic ( t , n ) { t *= Sx , n *= Sx ; var e = zx ( n ) , r = e * zx ( t ) , i = e * Ux ( t ) , o = Ux ( n ) , u = Cx ( Ox ( ( u = yx * o - gx * i ) * u + ( u = gx * r - _x * o ) * u + ( u = _x * i - yx * r ) * u ) , _x * r + yx * i + gx * o ) ; ix += u , cx += u * ( _x + ( _x = r ) ) , sx += u * ( yx + ( yx = i ) ) , fx += u * ( gx + ( gx = o ) ) , nc ( _x , yx , gx ) } function oc ( ) { Gx . point = tc } function uc ( ) { Gx . point = cc } function ac ( ) { sc ( dx , vx ) , Gx . point = tc } function cc ( t , n ) { dx = t , vx = n , t *= Sx , n *= Sx , Gx . point = sc ; var e = zx ( n ) ; _x = e * zx ( t ) , yx = e * Ux ( t ) , gx = Ux ( n ) , nc (
c . arc ( 0 , 0 , f , Math . atan2 ( _ . cy + _ . y11 , _ . cx + _ . x11 ) , Math . atan2 ( y . cy + y . y11 , y . cx + y . x11 ) , v ) , c . arc ( y . cx , y . cy , S , Math . atan2 ( y . y11 , y . x11 ) , Math . atan2 ( y . y01 , y . x01 ) , ! v ) ) ) : c . arc ( 0 , 0 , f , b , x , v ) : c . lineTo ( q , R ) } else c . moveTo ( 0 , 0 ) ; if ( c . closePath ( ) , t ) return c = null , t + "" || null } var n = G , e = J , r = pl ( 0 ) , i = null , o = Q , u = K , a = tt , c = null ; return t . centroid = function ( ) { var t = ( + n . apply ( this , arguments ) + + e . apply ( this , arguments ) ) / 2 , r = ( + o . apply ( this , arguments ) + + u . apply ( this , arguments ) ) / 2 - vl / 2 ; return [ Math . cos ( r ) * t , Math . sin ( r ) * t ] } , t . innerRadius = function ( e ) { return arguments . length ? ( n = "function" == typeof e ? e : pl ( + e ) , t ) : n } , t . outerRadius = function ( n ) { return arguments . length ? ( e = "function" == typeof n ? n : pl ( + n ) , t ) : e } , t . cornerRadius = function ( n ) { return arguments . length ? ( r = "function" == typeof n ? n : pl ( + n ) , t ) : r } , t . padRadius = function ( n ) { return arguments . length ? ( i = null == n ? null : "function" == typeof n ? n : pl ( + n ) , t ) : i } , t . startAngle = function ( n ) { return arguments . length ? ( o = "function" == typeof n ? n : pl ( + n ) , t ) : o } , t . endAngle = function ( n ) { return arguments . length ? ( u = "function" == typeof n ? n : pl ( + n ) , t ) : u } , t . padAngle = function ( n ) { return arguments . length ? ( a = "function" == typeof n ? n : pl ( + n ) , t ) : a } , t . context = function ( n ) { return arguments . length ? ( c = null == n ? null : n , t ) : c } , t } ; it . prototype = { areaStart : function ( ) { this . _line = 0 } , areaEnd : function ( ) { this . _line = NaN } , lineStart : function ( ) { this . _point = 0 } , lineEnd : function ( ) { ( this . _line || 0 !== this . _line && 1 === this . _point ) && this . _context . closePath ( ) , this . _line = 1 - this . _line } , point : function ( t , n ) { switch ( t = + t , n = + n , this . _point ) { case 0 : this . _point = 1 , this . _line ? this . _context . lineTo ( t , n ) : this . _context . moveTo ( t , n ) ; break ; case 1 : this . _point = 2 ; default : this . _context . lineTo ( t , n ) } } } ; var ml = function ( t ) { return new it ( t ) } , xl = function ( ) { function t ( t ) { var a , c , s , f = t . length , l = ! 1 ; for ( null == i && ( u = o ( s = L ( ) ) ) , a = 0 ; a <= f ; ++ a ) ! ( a < f && r ( c = t [ a ] , a , t ) ) === l && ( ( l = ! l ) ? u . lineStart ( ) : u . lineEnd ( ) ) , l && u . point ( + n ( c , a , t ) , + e ( c , a , t ) ) ; if ( s ) return u = null , s + "" || null } var n = ot , e = ut , r = pl ( ! 0 ) , i = null , o = ml , u = null ; return t . x = function ( e ) { return arguments . length ? ( n = "function" == typeof e ? e : pl ( + e ) , t ) : n } , t . y = function ( n ) { return arguments . length ? ( e = "function" == typeof n ? n : pl ( + n ) , t ) : e } , t . defined = function ( n ) { return arguments . length ? ( r = "function" == typeof n ? n : pl ( ! ! n ) , t ) : r } , t . curve = function ( n ) { return arguments . length ? ( o = n , null != i && ( u = o ( i ) ) , t ) : o } , t . context = function ( n ) { return arguments . length ? ( null == n ? i = u = null : u = o ( i = n ) , t ) : i } , t } , bl = function ( ) { function t ( t ) { var n , f , l , h , p , d = t . length , v = ! 1 , _ = new Array ( d ) , y = new Array ( d ) ; for ( null == a && ( s = c ( p = L ( ) ) ) , n = 0 ; n <= d ; ++ n ) { if ( ! ( n < d && u ( h = t [ n ] , n , t ) ) === v ) if ( v = ! v ) f = n , s . areaStart ( ) , s . lineStart ( ) ; else { for ( s . lineEnd ( ) , s . lineStart ( ) , l = n - 1 ; l >= f ; -- l ) s . point ( _ [ l ] , y [ l ] ) ; s . lineEnd ( ) , s . areaEnd ( ) } v && ( _ [ n ] = + e ( h , n , t ) , y [ n ] = + i ( h , n , t ) , s . point ( r ? + r ( h , n , t ) : _ [ n ] , o ? + o ( h , n , t ) : y [ n ] ) ) } if ( p ) return s = null , p + "" || null } function n ( ) { return xl ( ) . defined ( u ) . curve ( c ) . context ( a ) } var e = ot , r = null , i = pl ( 0 ) , o = ut , u = pl ( ! 0 ) , a = null , c = ml , s = null ; return t . x = function ( n ) { return arguments . length ? ( e = "function" == typeof n ? n : pl ( + n ) , r = null , t ) : e } , t . x0 = function ( n ) { return arguments . length ? ( e = "function" == typeof n ? n : pl ( + n ) , t ) : e } , t . x1 = function ( n ) { return arguments . length ? ( r = null == n ? null : "function" == typeof n ? n : pl ( + n ) , t ) : r } , t . y = function ( n ) { return arguments . length ? ( i = "function" == typeof n ? n : pl ( + n ) , o = null , t ) : i } , t . y0 = function ( n ) { return arguments . length ? ( i = "function" == typeof n ? n : pl ( + n ) , t ) : i } , t . y1 = function ( n ) { return arguments . length ? ( o = null == n ? null : "function" == typeof n ? n : pl ( + n ) , t ) : o } , t . lineX0 = t . lineY0 = function ( ) { return n ( ) . x ( e ) . y ( i ) } , t . lineY1 = function ( ) { return n ( ) . x ( e ) . y ( o ) } , t . lineX1 = function ( ) { return n ( ) . x ( r ) . y ( i ) } , t . defined = function ( n ) { return arguments . length ? ( u = "function" == typeof n ? n : pl ( ! ! n ) , t ) : u } , t . curve = function ( n ) { return arguments . length ? ( c = n , null != a && ( s = c ( a ) ) , t ) : c } , t . context = function ( n ) { return arguments . length ? ( null == n ? a = s = null : s = c ( a = n ) , t ) : a } , t } , wl = function ( t , n ) { return n < t ? - 1 : n > t ? 1 : n >= t ? 0 : NaN } , Ml = function ( t ) { return t } , Tl = function ( ) { function t ( t ) { var a , c , s , f , l , h = t . length , p = 0 , d = new Array ( h ) , v = new Array ( h ) , _ = + i . apply ( this , arguments ) , y = Math . min ( yl , Math . max ( - yl , o . apply ( this , arguments ) - _ ) ) , g = Math . min ( Math . abs ( y ) / h , u . apply ( this , arguments ) ) , m = g * ( y < 0 ? - 1 : 1 ) ; for ( a = 0 ; a < h ; ++ a ) ( l = v [ d [ a ] = a ] = + n ( t [ a ] , a , t ) ) > 0 && ( p +=
} ) . join ( t ) } ) ) . join ( "\n" ) } function i ( t ) { return t . map ( o ) . join ( "\n" ) } function o ( n ) { return n . map ( u ) . join ( t ) } function u ( t ) { return null == t ? "" : a . test ( t += "" ) ? '"' + t . replace ( /\"/g , '""' ) + '"' : t } var a = new RegExp ( '["' + t + "\n]" ) , c = t . charCodeAt ( 0 ) ; return { parse : n , parseRows : e , format : r , formatRows : i } } , Rp = Lp ( "," ) , Up = Rp . parse , Dp = Rp . parseRows , Op = Rp . format , Fp = Rp . formatRows , Ip = Lp ( "\t" ) , Yp = Ip . parse , Bp = Ip . parseRows , jp = Ip . format , Hp = Ip . formatRows , Xp = function ( t , n ) { function e ( t ) { var n , e = f . status ; if ( ! e && Yn ( f ) || e >= 200 && e < 300 || 304 === e ) { if ( u ) try { n = u . call ( r , f ) } catch ( t ) { return void c . call ( "error" , r , t ) } else n = f ; c . call ( "load" , r , n ) } else c . call ( "error" , r , t ) } var r , i , u , a , c = Pn ( "beforesend" , "progress" , "load" , "error" ) , s = o ( ) , f = new XMLHttpRequest , l = null , h = null , p = 0 ; if ( "undefined" == typeof XDomainRequest || "withCredentials" in f || ! /^(http(s)?:)?\/\// . test ( t ) || ( f = new XDomainRequest ) , "onload" in f ? f . onload = f . onerror = f . ontimeout = e : f . onreadystatechange = function ( t ) { f . readyState > 3 && e ( t ) } , f . onprogress = function ( t ) { c . call ( "progress" , r , t ) } , r = { header : function ( t , n ) { return t = ( t + "" ) . toLowerCase ( ) , arguments . length < 2 ? s . get ( t ) : ( null == n ? s . remove ( t ) : s . set ( t , n + "" ) , r ) } , mimeType : function ( t ) { return arguments . length ? ( i = null == t ? null : t + "" , r ) : i } , responseType : function ( t ) { return arguments . length ? ( a = t , r ) : a } , timeout : function ( t ) { return arguments . length ? ( p = + t , r ) : p } , user : function ( t ) { return arguments . length < 1 ? l : ( l = null == t ? null : t + "" , r ) } , password : function ( t ) { return arguments . length < 1 ? h : ( h = null == t ? null : t + "" , r ) } , response : function ( t ) { return u = t , r } , get : function ( t , n ) { return r . send ( "GET" , t , n ) } , post : function ( t , n ) { return r . send ( "POST" , t , n ) } , send : function ( n , e , o ) { return f . open ( n , t , ! 0 , l , h ) , null == i || s . has ( "accept" ) || s . set ( "accept" , i + ",*/*" ) , f . setRequestHeader && s . each ( function ( t , n ) { f . setRequestHeader ( n , t ) } ) , null != i && f . overrideMimeType && f . overrideMimeType ( i ) , null != a && ( f . responseType = a ) , p > 0 && ( f . timeout = p ) , null == o && "function" == typeof e && ( o = e , e = null ) , null != o && 1 === o . length && ( o = In ( o ) ) , null != o && r . on ( "error" , o ) . on ( "load" , function ( t ) { o ( null , t ) } ) , c . call ( "beforesend" , r , f ) , f . send ( null == e ? null : e ) , r } , abort : function ( ) { return f . abort ( ) , r } , on : function ( ) { var t = c . on . apply ( c , arguments ) ; return t === c ? r : t } } , null != n ) { if ( "function" != typeof n ) throw new Error ( "invalid callback: " + n ) ; return r . get ( n ) } return r } , Vp = function ( t , n ) { return function ( e , r ) { var i = Xp ( e ) . mimeType ( t ) . response ( n ) ; if ( null != r ) { if ( "function" != typeof r ) throw new Error ( "invalid callback: " + r ) ; return i . get ( r ) } return i } } , Wp = Vp ( "text/html" , function ( t ) { return document . createRange ( ) . createContextualFragment ( t . responseText ) } ) , $p = Vp ( "application/json" , function ( t ) { return JSON . parse ( t . responseText ) } ) , Zp = Vp ( "text/plain" , function ( t ) { return t . responseText } ) , Gp = Vp ( "application/xml" , function ( t ) { var n = t . responseXML ; if ( ! n ) throw new Error ( "parse error" ) ; return n } ) , Jp = function ( t , n ) { return function ( e , r , i ) { arguments . length < 3 && ( i = r , r = null ) ; var o = Xp ( e ) . mimeType ( t ) ; return o . row = function ( t ) { return arguments . length ? o . response ( Bn ( n , r = t ) ) : r } , o . row ( r ) , i ? o . get ( i ) : o } } , Qp = Jp ( "text/csv" , Up ) , Kp = Jp ( "text/tab-separated-values" , Yp ) , td = 0 , nd = 0 , ed = 0 , rd = 1e3 , id = 0 , od = 0 , ud = 0 , ad = "object" == typeof performance && performance . now ? performance : Date , cd = "function" == typeof requestAnimationFrame ? requestAnimationFrame : function ( t ) { setTimeout ( t , 17 ) } ; Xn . prototype = Vn . prototype = { constructor : Xn , restart : function ( t , n , e ) { if ( "function" != typeof t ) throw new TypeError ( "callback is not a function" ) ; e = ( null == e ? jn ( ) : + e ) + ( null == n ? 0 : + n ) , this . _next || qp === this || ( qp ? qp . _next = this : Pp = this , qp = this ) , this . _call = t , this . _time = e , Jn ( ) } , stop : function ( ) { this . _call && ( this . _call = null , this . _time = 1 / 0 , Jn ( ) ) } } ; var sd = function ( t , n , e ) { var r = new Xn ; return n = null == n ? 0 : + n , r . restart ( function ( e ) { r . stop ( ) , t ( e + n ) } , n , e ) , r } , fd = function ( t , n , e ) { var r = new Xn , i = n ; return null == n ? ( r . restart ( t , n , e ) , r ) : ( n = + n , e = null == e ? jn ( ) : + e , r . restart ( function o ( u ) { u += i , r . restart ( o , i += n , e ) , t ( u ) } , n , e ) , r ) } , ld = new Date , hd = new Date , pd = Qn ( function ( ) { } , function ( t , n ) { t . setTime ( + t + n ) } , function ( t , n ) { return n - t } ) ; pd . every = function ( t ) { return t = Math . floor ( t ) , isFinite ( t ) && t > 0 ? t > 1 ? Qn ( function ( n ) { n . setTime ( Math . floor ( n / t ) * t ) } , function ( n , e ) { n . setTime ( + n + e * t ) } , function ( n , e ) { return ( e - n ) / t } ) : pd : null } ; var dd = pd . range , vd = 1e3 , _d = 6e4 , y
Pi . prototype . transition = Qy ; var Ky = [ null ] , tg = function ( t , n ) { var e , r , i = t . _ _transition ; if ( i ) { n = null == n ? null : n + "" ; for ( r in i ) if ( ( e = i [ r ] ) . state > by && e . name === n ) return new so ( [ [ t ] ] , Ky , n , + r ) } return null } , ng = Array . prototype . slice , eg = function ( t ) { return t } , rg = 1 , ig = 2 , og = 3 , ug = 4 , ag = 1e-6 , cg = function ( ) { function t ( t ) { var o , u = 0 ; t . eachAfter ( function ( t ) { var e = t . children ; e ? ( t . x = To ( e ) , t . y = ko ( e ) ) : ( t . x = o ? u += n ( t , o ) : 0 , t . y = 0 , o = t ) } ) ; var a = Ao ( t ) , c = Eo ( t ) , s = a . x - n ( a , c ) / 2 , f = c . x + n ( c , a ) / 2 ; return t . eachAfter ( i ? function ( n ) { n . x = ( n . x - t . x ) * e , n . y = ( t . y - n . y ) * r } : function ( n ) { n . x = ( n . x - s ) / ( f - s ) * e , n . y = ( 1 - ( t . y ? n . y / t . y : 1 ) ) * r } ) } var n = Mo , e = 1 , r = 1 , i = ! 1 ; return t . separation = function ( e ) { return arguments . length ? ( n = e , t ) : n } , t . size = function ( n ) { return arguments . length ? ( i = ! 1 , e = + n [ 0 ] , r = + n [ 1 ] , t ) : i ? null : [ e , r ] } , t . nodeSize = function ( n ) { return arguments . length ? ( i = ! 0 , e = + n [ 0 ] , r = + n [ 1 ] , t ) : i ? [ e , r ] : null } , t } , sg = function ( t ) { var n , e , r , i , o = this , u = [ o ] ; do for ( n = u . reverse ( ) , u = [ ] ; o = n . pop ( ) ; ) if ( t ( o ) , e = o . children ) for ( r = 0 , i = e . length ; r < i ; ++ r ) u . push ( e [ r ] ) ; while ( u . length ) ; return this } , fg = function ( t ) { for ( var n , e , r = this , i = [ r ] ; r = i . pop ( ) ; ) if ( t ( r ) , n = r . children ) for ( e = n . length - 1 ; e >= 0 ; -- e ) i . push ( n [ e ] ) ; return this } , lg = function ( t ) { for ( var n , e , r , i = this , o = [ i ] , u = [ ] ; i = o . pop ( ) ; ) if ( u . push ( i ) , n = i . children ) for ( e = 0 , r = n . length ; e < r ; ++ e ) o . push ( n [ e ] ) ; for ( ; i = u . pop ( ) ; ) t ( i ) ; return this } , hg = function ( t ) { return this . eachAfter ( function ( n ) { for ( var e = + t ( n . data ) || 0 , r = n . children , i = r && r . length ; -- i >= 0 ; ) e += r [ i ] . value ; n . value = e } ) } , pg = function ( t ) { return this . eachBefore ( function ( n ) { n . children && n . children . sort ( t ) } ) } , dg = function ( t ) { for ( var n = this , e = Co ( n , t ) , r = [ n ] ; n !== e ; ) n = n . parent , r . push ( n ) ; for ( var i = r . length ; t !== e ; ) r . splice ( i , 0 , t ) , t = t . parent ; return r } , vg = function ( ) { for ( var t = this , n = [ t ] ; t = t . parent ; ) n . push ( t ) ; return n } , _g = function ( ) { var t = [ ] ; return this . each ( function ( n ) { t . push ( n ) } ) , t } , yg = function ( ) { var t = [ ] ; return this . eachBefore ( function ( n ) { n . children || t . push ( n ) } ) , t } , gg = function ( ) { var t = this , n = [ ] ; return t . each ( function ( e ) { e !== t && n . push ( { source : e . parent , target : e } ) } ) , n } ; Uo . prototype = zo . prototype = { constructor : Uo , each : sg , eachAfter : lg , eachBefore : fg , sum : hg , sort : pg , path : dg , ancestors : vg , descendants : _g , leaves : yg , links : gg , copy : Po } ; var mg = function ( t ) { for ( var n , e = ( t = t . slice ( ) ) . length , r = null , i = r ; e ; ) { var o = new Do ( t [ e - 1 ] ) ; i = i ? i . next = o : r = o , t [ n ] = t [ -- e ] } return { head : r , tail : i } } , xg = function ( t ) { return Fo ( mg ( t ) , [ ] ) } , bg = function ( t ) { return Wo ( t ) , t } , wg = function ( t ) { return function ( ) { return t } } , Mg = function ( ) { function t ( t ) { return t . x = e / 2 , t . y = r / 2 , n ? t . eachBefore ( Qo ( n ) ) . eachAfter ( Ko ( i , . 5 ) ) . eachBefore ( tu ( 1 ) ) : t . eachBefore ( Qo ( Jo ) ) . eachAfter ( Ko ( Go , 1 ) ) . eachAfter ( Ko ( i , t . r / Math . min ( e , r ) ) ) . eachBefore ( tu ( Math . min ( e , r ) / ( 2 * t . r ) ) ) , t } var n = null , e = 1 , r = 1 , i = Go ; return t . radius = function ( e ) { return arguments . length ? ( n = $o ( e ) , t ) : n } , t . size = function ( n ) { return arguments . length ? ( e = + n [ 0 ] , r = + n [ 1 ] , t ) : [ e , r ] } , t . padding = function ( n ) { return arguments . length ? ( i = "function" == typeof n ? n : wg ( + n ) , t ) : i } , t } , Tg = function ( t ) { t . x0 = Math . round ( t . x0 ) , t . y0 = Math . round ( t . y0 ) , t . x1 = Math . round ( t . x1 ) , t . y1 = Math . round ( t . y1 ) } , Ng = function ( t , n , e , r , i ) { for ( var o , u = t . children , a = - 1 , c = u . length , s = t . value && ( r - n ) / t . value ; ++ a < c ; ) o = u [ a ] , o . y0 = e , o . y1 = i , o . x0 = n , o . x1 = n += o . value * s } , kg = function ( ) { function t ( t ) { var u = t . height + 1 ; return t . x0 = t . y0 = i , t . x1 = e , t . y1 = r / u , t . eachBefore ( n ( r , u ) ) , o && t . eachBefore ( Tg ) , t } function n ( t , n ) { return function ( e ) { e . children && Ng ( e , e . x0 , t * ( e . depth + 1 ) / n , e . x1 , t * ( e . depth + 2 ) / n ) ; var r = e . x0 , o = e . y0 , u = e . x1 - i , a = e . y1 - i ; u < r && ( r = u = ( r + u ) / 2 ) , a < o && ( o = a = ( o + a ) / 2 ) , e . x0 = r , e . y0 = o , e . x1 = u , e . y1 = a } } var e = 1 , r = 1 , i = 0 , o = ! 1 ; return t . round = function ( n ) { return arguments . length ? ( o = ! ! n , t ) : o } , t . size = function ( n ) { return arguments . length ? ( e = + n [ 0 ] , r = + n [ 1 ] , t ) : [ e , r ] } , t . padding = function ( n ) { return arguments . length ? ( i = + n , t ) : i } , t } , Sg = "$" , Ag = { depth : - 1 } , Eg = { } , Cg = function ( ) { function t ( t ) { var r , i , o , u , a , c , s , f = t . length , l = new Array ( f ) , h = { } ; for ( i = 0 ; i < f ; ++ i ) r = t [ i ] , a = l [ i ] = new Uo ( r ) , null != ( c = n ( r , i , t ) ) && ( c += "" ) && ( s = Sg + ( a . id = c ) , h [ s ] = s in h ? Eg : a ) ; for ( i = 0 ; i < f ; ++ i ) if ( a = l [ i ] , c = e ( t [ i ] , i , t ) , null != c && ( c += "" ) ) { if ( u = h [ Sg + c ] , ! u ) throw new Error ( "missing: " + c ) ; if ( u === Eg ) throw new Error ( "ambiguous: " + c ) ; u . children ? u . children . push ( a ) : u . children = [ a ] , a . parent = u } else { if ( o ) throw new Error ( "multiple roots" ) ; o = a } i
} , Qx = function ( t ) { return function ( ) { return t } } , Kx = function ( t , n ) { function e ( e , r ) { return e = t ( e , r ) , n ( e [ 0 ] , e [ 1 ] ) } return t . invert && n . invert && ( e . invert = function ( e , r ) { return e = n . invert ( e , r ) , e && t . invert ( e [ 0 ] , e [ 1 ] ) } ) , e } ; fc . invert = fc ; var tb , nb , eb , rb , ib , ob , ub , ab , cb , sb , fb , lb = function ( t ) { function n ( n ) { return n = t ( n [ 0 ] * Sx , n [ 1 ] * Sx ) , n [ 0 ] *= kx , n [ 1 ] *= kx , n } return t = lc ( t [ 0 ] * Sx , t [ 1 ] * Sx , t . length > 2 ? t [ 2 ] * Sx : 0 ) , n . invert = function ( n ) { return n = t . invert ( n [ 0 ] * Sx , n [ 1 ] * Sx ) , n [ 0 ] *= kx , n [ 1 ] *= kx , n } , n } , hb = function ( ) { function t ( t , n ) { e . push ( t = r ( t , n ) ) , t [ 0 ] *= kx , t [ 1 ] *= kx } function n ( ) { var t = i . apply ( this , arguments ) , n = o . apply ( this , arguments ) * Sx , c = u . apply ( this , arguments ) * Sx ; return e = [ ] , r = lc ( - t [ 0 ] * Sx , - t [ 1 ] * Sx , 0 ) . invert , vc ( a , n , c , 1 ) , t = { type : "Polygon" , coordinates : [ e ] } , e = r = null , t } var e , r , i = Qx ( [ 0 , 0 ] ) , o = Qx ( 90 ) , u = Qx ( 6 ) , a = { point : t } ; return n . center = function ( t ) { return arguments . length ? ( i = "function" == typeof t ? t : Qx ( [ + t [ 0 ] , + t [ 1 ] ] ) , n ) : i } , n . radius = function ( t ) { return arguments . length ? ( o = "function" == typeof t ? t : Qx ( + t ) , n ) : o } , n . precision = function ( t ) { return arguments . length ? ( u = "function" == typeof t ? t : Qx ( + t ) , n ) : u } , n } , pb = function ( ) { var t , n = [ ] ; return { point : function ( n , e ) { t . push ( [ n , e ] ) } , lineStart : function ( ) { n . push ( t = [ ] ) } , lineEnd : Ea , rejoin : function ( ) { n . length > 1 && n . push ( n . pop ( ) . concat ( n . shift ( ) ) ) } , result : function ( ) { var e = n ; return n = [ ] , t = null , e } } } , db = function ( t , n , e , r , i , o ) { var u , a = t [ 0 ] , c = t [ 1 ] , s = n [ 0 ] , f = n [ 1 ] , l = 0 , h = 1 , p = s - a , d = f - c ; if ( u = e - a , p || ! ( u > 0 ) ) { if ( u /= p , p < 0 ) { if ( u < l ) return ; u < h && ( h = u ) } else if ( p > 0 ) { if ( u > h ) return ; u > l && ( l = u ) } if ( u = i - a , p || ! ( u < 0 ) ) { if ( u /= p , p < 0 ) { if ( u > h ) return ; u > l && ( l = u ) } else if ( p > 0 ) { if ( u < l ) return ; u < h && ( h = u ) } if ( u = r - c , d || ! ( u > 0 ) ) { if ( u /= d , d < 0 ) { if ( u < l ) return ; u < h && ( h = u ) } else if ( d > 0 ) { if ( u > h ) return ; u > l && ( l = u ) } if ( u = o - c , d || ! ( u < 0 ) ) { if ( u /= d , d < 0 ) { if ( u > h ) return ; u > l && ( l = u ) } else if ( d > 0 ) { if ( u < l ) return ; u < h && ( h = u ) } return l > 0 && ( t [ 0 ] = a + l * p , t [ 1 ] = c + l * d ) , h < 1 && ( n [ 0 ] = a + h * p , n [ 1 ] = c + h * d ) , ! 0 } } } } } , vb = function ( t , n ) { return Ax ( t [ 0 ] - n [ 0 ] ) < xx && Ax ( t [ 1 ] - n [ 1 ] ) < xx } , _b = function ( t , n , e , r , i ) { var o , u , a = [ ] , c = [ ] ; if ( t . forEach ( function ( t ) { if ( ! ( ( n = t . length - 1 ) <= 0 ) ) { var n , e , r = t [ 0 ] , u = t [ n ] ; if ( vb ( r , u ) ) { for ( i . lineStart ( ) , o = 0 ; o < n ; ++ o ) i . point ( ( r = t [ o ] ) [ 0 ] , r [ 1 ] ) ; return void i . lineEnd ( ) } a . push ( e = new yc ( r , t , null , ! 0 ) ) , c . push ( e . o = new yc ( r , null , e , ! 1 ) ) , a . push ( e = new yc ( u , t , null , ! 1 ) ) , c . push ( e . o = new yc ( u , null , e , ! 0 ) ) } } ) , a . length ) { for ( c . sort ( n ) , gc ( a ) , gc ( c ) , o = 0 , u = c . length ; o < u ; ++ o ) c [ o ] . e = e = ! e ; for ( var s , f , l = a [ 0 ] ; ; ) { for ( var h = l , p = ! 0 ; h . v ; ) if ( ( h = h . n ) === l ) return ; s = h . z , i . lineStart ( ) ; do { if ( h . v = h . o . v = ! 0 , h . e ) { if ( p ) for ( o = 0 , u = s . length ; o < u ; ++ o ) i . point ( ( f = s [ o ] ) [ 0 ] , f [ 1 ] ) ; else r ( h . x , h . n . x , 1 , i ) ; h = h . n } else { if ( p ) for ( s = h . p . z , o = s . length - 1 ; o >= 0 ; -- o ) i . point ( ( f = s [ o ] ) [ 0 ] , f [ 1 ] ) ; else r ( h . x , h . p . x , - 1 , i ) ; h = h . p } h = h . o , s = h . z , p = ! p } while ( ! h . v ) ; i . lineEnd ( ) } } } , yb = 1e9 , gb = - yb , mb = function ( ) { var t , n , e , r = 0 , i = 0 , o = 960 , u = 500 ; return e = { stream : function ( e ) { return t && n === e ? t : t = mc ( r , i , o , u ) ( n = e ) } , extent : function ( a ) { return arguments . length ? ( r = + a [ 0 ] [ 0 ] , i = + a [ 0 ] [ 1 ] , o = + a [ 1 ] [ 0 ] , u = + a [ 1 ] [ 1 ] , t = n = null , e ) : [ [ r , i ] , [ o , u ] ] } } } , xb = Ym ( ) , bb = { sphere : Ea , point : Ea , lineStart : xc , lineEnd : Ea , polygonStart : Ea , polygonEnd : Ea } , wb = function ( t ) { return xb . reset ( ) , Bx ( t , bb ) , + xb } , Mb = [ null , null ] , Tb = { type : "LineString" , coordinates : Mb } , Nb = function ( t , n ) { return Mb [ 0 ] = t , Mb [ 1 ] = n , wb ( Tb ) } , kb = function ( ) { function t ( ) { return { type : "MultiLineString" , coordinates : n ( ) } } function n ( ) { return Ls ( Px ( o / _ ) * _ , i , _ ) . map ( h ) . concat ( Ls ( Px ( s / y ) * y , c , y ) . map ( p ) ) . concat ( Ls ( Px ( r / d ) * d , e , d ) . filter ( function ( t ) { return Ax ( t % _ ) > xx } ) . map ( f ) ) . concat ( Ls ( Px ( a / v ) * v , u , v ) . filter ( function ( t ) { return Ax ( t % y ) > xx } ) . map ( l ) ) } var e , r , i , o , u , a , c , s , f , l , h , p , d = 10 , v = d , _ = 90 , y = 360 , g = 2.5 ; return t . lines = function ( ) { return n ( ) . map ( function ( t ) { return { type : "LineString" , coordinates : t } } ) } , t . outline = function ( ) { return { type : "Polygon" , coordinates : [ h ( o ) . concat ( p ( c ) . slice ( 1 ) , h ( i ) . reverse ( ) . slice ( 1 ) , p ( s ) . reverse ( ) . slice ( 1 ) ) ] } } , t . extent = function ( n ) { return arguments . length ? t . extentMajor ( n ) . extentMinor ( n ) : t . extentMinor ( ) } , t . extentMajor = function ( n ) { return arguments . length ? ( o = + n [ 0 ] [ 0 ] , i = + n [ 1 ] [ 0 ] , s = + n [ 0 ] [ 1 ] , c = + n [ 1 ] [ 1 ] , o > i && ( n = o , o = i , i = n ) , s > c && ( n = s , s = c , c = n ) , t . precision ( g ) ) : [ [ o , s ] , [ i , c ] ] } , t . extentMinor = function ( n ) { return arguments . length ? ( r = + n [ 0 ] [ 0 ] , e = + n [ 1 ] [ 0 ] , a = + n [ 0 ] [ 1 ] , u = + n [ 1 ] [ 1 ] , r > e && ( n = r , r = e , e = n ) , a > u && ( n = a , a = u , u = n ) , t . precision ( g ) ) : [ [ r , a