( function ( P ) { function kd ( ) { function r ( d , f ) { d . attr ( "transform" , function ( d ) { return "translate(" + ( f ( d ) + ca ) + ", 0)" } ) } function x ( d , f ) { d . attr ( "transform" , function ( d ) { return "translate(0," + f ( d ) + ")" } ) } function P ( d ) { var f = d [ 0 ] ; d = d [ d . length - 1 ] ; return f < d ? [ f , d ] : [ d , f ] } function Da ( d ) { for ( var f = [ ] , r = Math . ceil ( d [ 0 ] ) ; r < d [ 1 ] ; r ++ ) f . push ( r ) ; 0 < f . length && 0 < f [ 0 ] && f . unshift ( f [ 0 ] - ( f [ 1 ] - f [ 0 ] ) ) ; return f } function Ea ( d ) { d = d < da . length ? da [ d ] : d ; return N ? N ( d ) : d } function p ( p ) { p . each ( function ( ) { var p = d . select ( this ) , ia = Da ( u . domain ( ) ) ,
R = p . selectAll ( ".tick.major" ) . data ( ia , String ) , S = R . enter ( ) . insert ( "g" , "path" ) . attr ( "class" , "tick major" ) . style ( "opacity" , 1E-6 ) , T = d . transition ( R . exit ( ) ) . style ( "opacity" , 1E-6 ) . remove ( ) , w = d . transition ( R ) . style ( "opacity" , 1 ) , F , N = u . rangeExtent ? u . rangeExtent ( ) : P ( u . range ( ) ) , p = p . selectAll ( ".domain" ) . data ( [ 0 ] ) ; p . enter ( ) . append ( "path" ) . attr ( "class" , "domain" ) ; var p = d . transition ( p ) , y = u . copy ( ) , da = this . _ _chart _ _ || y ; this . _ _chart _ _ = y ; S . append ( "line" ) ; S . append ( "text" ) ; var ja = S . select ( "line" ) , Va = w . select ( "line" ) , ka = R . select ( "text" ) ,
Wa = S . select ( "text" ) , Xa = w . select ( "text" ) ; ca = ( y ( 1 ) - y ( 0 ) ) / 2 ; R = qa ? 0 : ca ; switch ( A ) { case "bottom" : F = r ; ja . attr ( "y2" , O ) ; Wa . attr ( "y" , Math . max ( O , 0 ) + f ) ; Va . attr ( "x1" , R ) . attr ( "x2" , R ) . attr ( "y2" , O ) ; Xa . attr ( "x" , 0 ) . attr ( "y" , Math . max ( O , 0 ) + f ) ; ka . attr ( "dy" , ".71em" ) . style ( "text-anchor" , "middle" ) ; ka . text ( function ( d ) { return ia . length < X || 0 === d % Math . ceil ( ia . length / X ) ? Ea ( d ) : "" } ) ; p . attr ( "d" , "M" + N [ 0 ] + "," + Y + "V0H" + N [ 1 ] + "V" + Y ) ; break ; case "left" : F = x , ja . attr ( "x2" , - O ) , Wa . attr ( "x" , - ( Math . max ( O , 0 ) + f ) ) , Va . attr ( "x2" , - O ) . attr ( "y2" , 0 ) , Xa . attr ( "x" ,
- ( Math . max ( O , 0 ) + f ) ) . attr ( "y" , ca ) , ka . attr ( "dy" , ".32em" ) . style ( "text-anchor" , "end" ) , ka . text ( function ( d ) { return ia . length < X || 0 === d % Math . ceil ( ia . length / X ) ? Ea ( d ) : "" } ) , p . attr ( "d" , "M" + - Y + "," + N [ 0 ] + "H0V" + N [ 1 ] + "H" + - Y ) } if ( u . ticks ) S . call ( F , da ) , w . call ( F , y ) , T . call ( F , y ) ; else { var Ya = y . rangeBand ( ) / 2 , T = function ( d ) { return y ( d ) + Ya } ; S . call ( F , T ) ; w . call ( F , T ) } } ) } var u = d . scale . linear ( ) , A = "bottom" , O = 6 , Y = 6 , f = 3 , qa = ! 1 , X = 10 , ca = 0 , N = null , da = [ ] ; p . scale = function ( d ) { if ( ! arguments . length ) return u ; u = d ; return p } ; p . orient = function ( d ) { if ( ! arguments . length ) return A ;
A = d in { top : 1 , right : 1 , bottom : 1 , left : 1 } ? d + "" : "bottom" ; return p } ; p . categories = function ( d ) { if ( ! arguments . length ) return da ; da = d ; return p } ; p . tickCentered = function ( d ) { if ( ! arguments . length ) return qa ; qa = d ; return p } ; p . tickTextNum = function ( d ) { if ( ! arguments . length ) return X ; X = d ; return p } ; p . tickFormat = function ( d ) { if ( ! arguments . length ) return N ; N = d ; return p } ; p . tickOffset = function ( ) { return ca } ; p . ticks = function ( ) { } ; return p } function x ( d ) { return "undefined" === typeof d } function r ( d ) { return "undefined" !== typeof d } var yb =
P . c3 = { } , d = P . d3 ; yb . generate = function ( ba ) { var fc , gc , Da , Ea , p , u , A , O , Y ; function f ( a , b ) { for ( var c = ba , e = 0 ; e < a . length ; e ++ ) { if ( ! ( a [ e ] in c ) ) return b ; c = c [ a [ e ] ] } return c } function qa ( ) { zb = null === Za ? ca ( ) : Za ; ra = X ( ) ; u = 0 ; A = ( g ? Ab + jc : 0 ) + ( $a ? $a : ab ? 1 : 40 ) ; O = 20 + ( g ? 0 : Ab ) + la ; Y = bb ? bb : Bb ? cb || g ? 1 : 40 : 20 ; q = zb - A - Y ; s = ra - u - O ; Da = g ? 0 : ra - Ab - la ; Ea = g ? kc : A ; p = 20 + la ; Cb = g ? A - kc - jc : q ; db = g ? s : ra - Da - p ; fc = ra - la ; gc = A ; Db = s / 2 ; eb = 0.95 * Db } function X ( ) { var a = null === lc ? + d . select ( sa ) . style ( "height" ) . replace ( "px" , "" ) : lc ; return 0 < a ? a : 320 } function ca ( ) { return + d . select ( sa ) . style ( "width" ) . replace ( "px" ,
"" ) } function N ( ) { return q + 2 + A + Y } function da ( ) { return 40 } function ia ( ) { return A + 20 } function yb ( ) { return s - u + 42 } function ld ( ) { var a = g ? s : q , b = ta ( U ) / ta ( m . domain ( ) ) , c = fb ( ) ; return 1 < c ? a * b / ( c - 1 ) : a } function R ( ) { Eb = g ? 10 : 0 ; Fb = g ? s : q ; Gb = g ? 0 : s ; Hb = g ? q : 1 ; Ib = g ? 0 : db ; Jb = g ? Cb : 10 ; m = S ( Eb , Fb , r ( m ) ? m . domain ( ) : void 0 , function ( ) { return J . tickOffset ( ) } ) ; z = T ( Gb , Hb , r ( z ) ? z . domain ( ) : void 0 ) ; Z = T ( Gb , Hb , r ( Z ) ? Z . domain ( ) : void 0 ) ; V = S ( Eb , Fb , r ( U ) ? U : void 0 , function ( a ) { return 0 === a % 1 ? gb . tickOffset ( ) : 0 } ) ; hb = T ( Ib , Jb ) ; ib = T ( Ib , Jb ) ; J = hc ( m , md ) ;
ua = d . svg . axis ( ) . scale ( z ) . orient ( nd ) ; jb = d . svg . axis ( ) . scale ( Z ) . orient ( od ) ; gb = hc ( V , pd ) ; kb = Va ( ) ; mc = ka ( ) ; nc = ka ( 0.98 ) } function S ( a , b , c , e ) { var k = ( B ? d . time . scale ( ) : d . scale . linear ( ) ) . range ( [ a , b ] ) ; k . orgDomain = function ( ) { return k . domain ( ) } ; r ( c ) && k . domain ( c ) ; x ( e ) && ( e = function ( ) { return 0 } ) ; if ( ea ) { var G = k , f , k = function ( a ) { return G ( a ) + e ( a ) } ; for ( f in G ) k [ f ] = G [ f ] ; k . orgDomain = function ( ) { return G . domain ( ) } ; k . domain = function ( a ) { if ( ! arguments . length ) return a = G . domain ( ) , [ a [ 0 ] , a [ 1 ] + 1 ] ; G . domain ( a ) ; return k } } return k } function T ( a ,
b ) { return d . scale . linear ( ) . range ( [ a , b ] ) } function w ( a ) { return "y2" === y ( a ) ? Z : z } function F ( a ) { return "y2" === y ( a ) ? ib : hb } function hc ( a , b ) { var c = ( ea ? kd ( ) : d . svg . axis ( ) ) . scale ( a ) . orient ( b ) ; c . tickFormat ( ic ( ) ) ; ea ? c . categories ( Fa ) . tickCentered ( qd ) : c . tickOffset = function ( ) { return 0 } ; return c } function y ( a ) { return a in oc ? oc [ a ] : "y" } function ic ( ) { var a = B ? rd : ea ? sd : function ( a ) { return a } ; lb && ( a = "function" === typeof lb ? lb : B ? function ( a ) { return d . time . format ( lb ) ( a ) } : a ) ; return a } function ja ( a ) { var b = ! 1 ; Kb ( h . data . targets ) . forEach ( function ( c ) { b ||
c . data . id !== a . data . id || ( b = ! 0 , a = c ) } ) ; return b ? a : null } function Va ( ) { var a = d . svg . arc ( ) . outerRadius ( eb ) . innerRadius ( 0 ) , b = function ( b , e ) { var k ; return e ? a ( b ) : ( k = ja ( b ) ) ? a ( k ) : "M 0 0" } ; b . centroid = a . centroid ; return b } function ka ( a ) { var b = d . svg . arc ( ) . outerRadius ( Db * ( a ? a : 1 ) ) . innerRadius ( 0 ) ; return function ( a ) { return ( a = ja ( a ) ) ? b ( a ) : "M 0 0" } } function Wa ( a ) { a = ja ( a ) ; var b , c ; b = "" ; a && ( b = kb . centroid ( a ) , a = b [ 0 ] , b = b [ 1 ] , c = Math . sqrt ( a * a + b * b ) , b = "translate(" + 0.8 * ( a / c ) * eb + "," + 0.8 * ( b / c ) * eb + ")" ) ; return b } function Xa ( a ) { return ( 100 *
( a . endAngle - a . startAngle ) / ( 2 * Math . PI ) ) . toFixed ( 1 ) + "%" } function Ya ( a , b ) { var c = n . selectAll ( ".chart-arc.target" + ( a ? "-" + a : "" ) ) , e = n . selectAll ( ".-arc" ) . filter ( function ( b ) { return b . data . id !== a } ) ; c . selectAll ( "path" ) . transition ( ) . duration ( 50 ) . attr ( "d" , mc ) . transition ( ) . duration ( 100 ) . attr ( "d" , nc ) ; b || e . style ( "opacity" , 0.3 ) } function xb ( a ) { n . selectAll ( ".chart-arc.target" + ( a ? "-" + a : "" ) ) . selectAll ( "path" ) . transition ( ) . duration ( 50 ) . attr ( "d" , kb ) ; n . selectAll ( ".-arc" ) . style ( "opacity" , 1 ) } function td ( a ) { var b = pc ( a ) , c , e ,
k , G ; if ( 0 < t . length ) for ( G = qc ( a ) , a = 0 ; a < t . length ; a ++ ) for ( e = t [ a ] [ 0 ] , G && b [ e ] && b [ e ] . forEach ( function ( a , c ) { b [ e ] [ c ] = 0 > a ? a : 0 } ) , c = 1 ; c < t [ a ] . length ; c ++ ) k = t [ a ] [ c ] , b [ k ] && b [ k ] . forEach ( function ( a , c ) { y ( k ) !== y ( e ) || ! b [ e ] || G && 0 < + a || ( b [ e ] [ c ] += + a ) } ) ; return d . min ( Object . keys ( b ) . map ( function ( a ) { return d . min ( b [ a ] ) } ) ) } function ud ( a ) { var b = pc ( a ) , c , e , k , G ; if ( 0 < t . length ) for ( G = vd ( a ) , a = 0 ; a < t . length ; a ++ ) for ( e = t [ a ] [ 0 ] , G && b [ e ] && b [ e ] . forEach ( function ( a , c ) { b [ e ] [ c ] = 0 < a ? a : 0 } ) , c = 1 ; c < t [ a ] . length ; c ++ ) k = t [ a ] [ c ] , b [ k ] && b [ k ] . forEach ( function ( a ,
c ) { y ( k ) !== y ( e ) || ! b [ e ] || G && 0 > + a || ( b [ e ] [ c ] += + a ) } ) ; return d . max ( Object . keys ( b ) . map ( function ( a ) { return d . max ( b [ a ] ) } ) ) } function mb ( a ) { var b = nb ( function ( b ) { return y ( b . id ) === a } ) , c = "y2" === a ? wd : xd , e = "y2" === a ? yd : zd , c = c ? c : td ( b ) , e = e ? e : ud ( b ) , k = 0.1 * Math . abs ( e - c ) , d = k , f = k , g = "y2" === a ? Ad : Bd ; g && ( c = Math . max ( Math . abs ( c ) , Math . abs ( e ) ) , e = c - g , c = g - c ) ; "y" === a && Ga && ( d = Ga . top ? Ga . top : k , f = Ga . bottom ? Ga . bottom : k ) ; "y2" === a && Ha && ( d = Ha . top ? Ha . top : k , f = Ha . bottom ? Ha . bottom : k ) ; Ia ( b , "bar" ) && ! qc ( b ) && ( f = c ) ; return [ c - f , e + d ] } function Cd ( a ) { return d . min ( a ,
function ( a ) { return d . min ( a . values , function ( a ) { return a . x } ) } ) } function Dd ( a ) { return d . max ( a , function ( a ) { return d . max ( a . values , function ( a ) { return a . x } ) } ) } function ob ( a ) { var b = [ Cd ( a ) , Dd ( a ) ] ; a = b [ 0 ] ; var b = b [ 1 ] , c = ea ? 0 : 0.01 * Math . abs ( a - b ) ; a = B ? new Date ( a . getTime ( ) - c ) : a - c ; b = B ? new Date ( b . getTime ( ) + c ) : b + c ; return [ a , b ] } function ta ( a ) { return a [ 1 ] - a [ 0 ] } function Ed ( a ) { for ( var b = 0 ; b < a . length ; b ++ ) if ( ! ( a [ b ] in pb ) ) return ! 1 ; return ! 0 } function Fd ( a ) { for ( var b = [ ] , c = 0 ; c < a . length ; c ++ ) a [ c ] in pb && b . push ( rc ( pb [ a [ c ] ] ) ) ; return b }
function Lb ( a ) { return "start" in a ? m ( B ? ma ( a . start ) : a . start ) : 0 } function sc ( a ) { var b = Lb ( a ) ; a = ( "end" in a ? m ( B ? ma ( a . end ) : a . end ) : q ) - b ; return 0 > a ? 0 : a } function tc ( a ) { return na && a === na || $ && Gd ( $ , a ) } function Hd ( a ) { return ! tc ( a ) } function Id ( a ) { Object . keys ( a ) . forEach ( function ( b ) { $ [ b ] = a [ b ] } ) } function qb ( a ) { var b ; a && ( b = Ja [ a . id ] , a . name = b ? b : a . id ) ; return a } function uc ( a ) { var b = a [ 0 ] , c = { } , e = [ ] , k , d ; for ( k = 1 ; k < a . length ; k ++ ) { c = { } ; for ( d = 0 ; d < a [ k ] . length ; d ++ ) c [ b [ d ] ] = a [ k ] [ d ] ; e . push ( c ) } return e } function vc ( a ) { var b = [ ] , c , e , k ; for ( c =
0 ; c < a . length ; c ++ ) for ( k = a [ c ] [ 0 ] , e = 1 ; e < a [ c ] . length ; e ++ ) x ( b [ e - 1 ] ) && ( b [ e - 1 ] = { } ) , b [ e - 1 ] [ k ] = a [ c ] [ e ] ; return b } function Ka ( a ) { var b = d . keys ( a [ 0 ] ) . filter ( Hd ) , c = d . keys ( a [ 0 ] ) . filter ( tc ) ; if ( B && 0 === c . length ) return P . alert ( 'data.x or data.xs must be specified when axis.x.type == "timeseries"' ) , [ ] ; Mb && b . forEach ( function ( b ) { var k = na ? na : $ ? $ [ b ] : null ; 0 <= c . indexOf ( k ) ? h . data . x [ b ] = a . map ( function ( a ) { return a [ k ] } ) : h . data . x [ b ] = h . data . x [ Object . keys ( h . data . x ) [ 0 ] ] } ) ; b = b . map ( function ( b ) { var c = Jd ( b ) ; return { id : c , id _org : b , values : a . map ( function ( a ,
d ) { var f ; f = na ? na : $ ? $ [ b ] : null ; f = B ? ma ( a [ f ] ) : Mb ? a [ f ] ? a [ f ] : b in h . data . x && h . data . x [ b ] && h . data . x [ b ] [ d ] ? h . data . x [ b ] [ d ] : d : d ; a . x = f ; return { x : f , value : null === a [ b ] || isNaN ( a [ b ] ) ? null : + a [ b ] , id : c } } ) } } ) ; b . forEach ( function ( a ) { var b ; a . values = a . values . sort ( function ( a , b ) { return ( a . x || 0 === a . x ? a . x : Infinity ) - ( b . x || 0 === b . x ? b . x : Infinity ) } ) ; b = 0 ; a . values . forEach ( function ( a ) { a . index = b ++ } ) } ) ; b . forEach ( function ( a ) { pb [ a . id _org ] = rc ( a ) } ) ; return b } function rc ( a ) { return { id : a . id , id _org : a . id _org , values : a . values . map ( function ( a ) { return { x : a . x ,
value : a . value , id : a . id } } ) } } function wc ( a ) { return 0 < a && h . data . targets [ 0 ] . values [ a - 1 ] ? h . data . targets [ 0 ] . values [ a - 1 ] . x : void 0 } function fb ( ) { return d . max ( h . data . targets , function ( a ) { return a . values . length } ) } function Kd ( ) { var a = h . data . targets . length , b = 0 , c ; 1 < a ? h . data . targets . forEach ( function ( a ) { a . values . length > b && ( c = a , b = a . values . length ) } ) : c = a ? h . data . targets [ 0 ] : null ; return c } function rb ( a ) { a = x ( a ) ? h . data . targets : a ; return a . map ( function ( a ) { return a . id } ) } function xc ( a ) { var b = rb ( ) , c ; for ( c = 0 ; c < b . length ; c ++ ) if ( b [ c ] ===
a ) return ! 0 ; return ! 1 } function nb ( a ) { return r ( a ) ? h . data . targets . filter ( a ) : h . data . targets } function pc ( a ) { var b = { } ; a . forEach ( function ( a ) { b [ a . id ] = [ ] ; a . values . forEach ( function ( e ) { b [ a . id ] . push ( e . value ) } ) } ) ; return b } function yc ( a , b ) { var c = Object . keys ( a ) , e , k , d ; for ( e = 0 ; e < c . length ; e ++ ) for ( d = a [ c [ e ] ] . values , k = 0 ; k < d . length ; k ++ ) if ( b ( d [ k ] . value ) ) return ! 0 ; return ! 1 } function qc ( a ) { return yc ( a , function ( a ) { return 0 > a } ) } function vd ( a ) { return yc ( a , function ( a ) { return 0 < a } ) } function sd ( a ) { return a < Fa . length ? Fa [ a ] : a } function La ( a ) { return "-shapes -shapes-" +
a . id } function zc ( a ) { return La ( a ) + " -line -line-" + a . id } function Ld ( a ) { return La ( a ) + " -circles -circles-" + a . id } function Ac ( a ) { return La ( a ) + " -bars -bars-" + a . id } function Md ( a ) { return La ( a . data ) + " -arc -arc-" + a . data . id } function Nd ( a ) { return La ( a ) + " -area -area-" + a . id } function Od ( a , b ) { return "-shape -shape-" + b + " -circle -circle-" + b } function Bc ( a , b ) { return "-shape -shape-" + b + " -bar -bar-" + b } function Pd ( a , b ) { return "region region-" + b + " " + ( "classes" in a ? [ ] . concat ( a . classes ) . join ( " " ) : "" ) } function Cc ( a , b ) { return "event-rect event-rect-" +
b } function Qd ( a ) { return a . value ? Dc ( a ) ? 0.5 : 1 : 0 } function va ( a ) { return m ( a . x ) } function Ma ( a ) { return m ( B ? ma ( a . value ) : a . value ) } function Na ( a ) { return z ( a . value ) } function Ec ( a ) { return V ( a . x ) } function Fc ( a , b ) { var c , e = a [ b ] . x , k = [ ] ; for ( c = b - 1 ; 0 <= c && e === a [ c ] . x ; c -- ) k . push ( a [ c ] ) ; for ( c = b ; c < a . length && e === a [ c ] . x ; c ++ ) k . push ( a [ c ] ) ; return k } function Gc ( a , b , c , e ) { c = c ? c : 0 ; e = e ? e : a . length - 1 ; var k = Math . floor ( ( e - c ) / 2 ) + c ; 0 < m ( a [ k ] . x ) - b [ 0 ] ? e = k : c = k ; return 1 === e - c ? ( k = [ ] , a [ c ] . x && ( k = k . concat ( Fc ( a , c ) ) ) , a [ e ] . x && ( k = k . concat ( Fc ( a , e ) ) ) ,
Hc ( k , b ) ) : Gc ( a , b , c , e ) } function Ic ( a , b ) { var c ; c = a . map ( function ( a ) { return Gc ( a . values , b ) } ) ; return Hc ( c , b ) } function Hc ( a , b ) { var c , e ; a . forEach ( function ( a ) { var d = Nb ( a , b ) ; if ( d < c || ! c ) c = d , e = a } ) ; return e } function Jc ( a , b ) { var c , e , k , d , f ; 0 !== a . filter ( function ( a ) { return a . value } ) . length && ( W . html ( Kc ( a ) ) . style ( "visibility" , "hidden" ) . style ( "display" , "block" ) , c = W . property ( "offsetWidth" ) , e = W . property ( "offsetHeight" ) , g ? d = b [ 0 ] : ( k = n . property ( "offsetLeft" ) , d = k + ( $a ? $a : ab ? 1 : 40 ) + m ( a [ 0 ] . x ) + 20 , f = d + c , k = k + ( null === Za ? ca ( ) : Za ) -
( bb ? bb : Bb ? cb || g ? 1 : 40 : 20 ) , f > k && ( d -= c + 30 ) ) , c = b [ 1 ] + 15 + e < X ( ) ? b [ 1 ] + 15 : b [ 1 ] - e , W . style ( "top" , c + "px" ) . style ( "left" , d + "px" ) . style ( "visibility" , "visible" ) ) } function Lc ( a ) { Ia ( h . data . targets , "scatter" ) || C ( h . data . targets ) || l . selectAll ( "line.xgrid-focus" ) . style ( "visibility" , "visible" ) . data ( [ a ] ) . attr ( g ? "y1" : "x1" , va ) . attr ( g ? "y2" : "x2" , va ) } function Mc ( ) { l . select ( "line.xgrid-focus" ) . style ( "visibility" , "hidden" ) } function wa ( a ) { return a . x || 0 === a . x ? m ( a . x ) : null } function xa ( a ) { return w ( a . id ) ( a . value ) } function Rd ( ) { var a =
{ } , b = 0 , c , e ; nb ( sb ) . forEach ( function ( k ) { for ( c = 0 ; c < t . length ; c ++ ) if ( ! ( 0 > t [ c ] . indexOf ( k . id ) ) ) for ( e = 0 ; e < t [ c ] . length ; e ++ ) if ( t [ c ] [ e ] in a ) { a [ k . id ] = a [ t [ c ] [ e ] ] ; break } x ( a [ k . id ] ) && ( a [ k . id ] = b ++ ) } ) ; a . _ _max _ _ = b - 1 ; return a } function Sd ( a , b , c , e ) { var k = e ? V : m ; return b ? function ( e ) { var d = e . id in c ? c [ e . id ] : 0 ; return e . x || 0 === e . x ? k ( e . x ) - a * ( b / 2 - d ) : 0 } : function ( ) { return 0 } } function Td ( a ) { return function ( b ) { return ( a ? F ( b . id ) : w ( b . id ) ) ( b . value ) } } function Ud ( a , b ) { var c = Object . keys ( a ) ; return function ( e , k ) { var d = b ? F ( e . id ) : w ( e . id ) , f =
d ( 0 ) , g = f ; nb ( sb ) . forEach ( function ( b ) { b . id !== e . id && a [ b . id ] === a [ e . id ] && c . indexOf ( b . id ) < c . indexOf ( e . id ) && 0 < b . values [ k ] . value * e . value && ( g += d ( b . values [ k ] . value ) - f ) } ) ; return g } } function Oa ( a , b ) { var c = x ( a ) ? rb ( ) : a ; "string" === typeof c && ( c = [ c ] ) ; for ( var e = 0 ; e < c . length ; e ++ ) H [ c [ e ] ] = b } function Ia ( a , b ) { var c = ! 1 ; a . forEach ( function ( a ) { H [ a . id ] === b && ( c = ! 0 ) ; a . id in H || "line" !== b || ( c = ! 0 ) } ) ; return c } function C ( a ) { return Ia ( a , "pie" ) } function Ob ( a ) { a = "string" === typeof a ? a : a . id ; return ! ( a in H ) || "line" === H [ a ] || "spline" === H [ a ] ||
"area" === H [ a ] || "area-spline" === H [ a ] } function Nc ( a ) { a = "string" === typeof a ? a : a . id ; return "spline" === H [ a ] || "area-spline" === H [ a ] } function sb ( a ) { return "bar" === H [ "string" === typeof a ? a : a . id ] } function Dc ( a ) { return "scatter" === H [ "string" === typeof a ? a : a . id ] } function Oc ( a ) { return "pie" === H [ "string" === typeof a ? a : a . id ] } function Pc ( a ) { return sb ( a ) ? a . values : [ ] } function Vd ( a ) { return Ob ( a ) || Dc ( a ) ? a . values : [ ] } function ma ( a ) { var b ; if ( ! a ) throw Error ( a + " can not be parsed as d3.time with format " + Pb + ". Maybe 'x' of this data is not defined. See data.x or data.xs option." ) ;
b = d . time . format ( Pb ) . parse ( a ) ; if ( ! b ) throw Error ( "Failed to parse '" + a + "' with format " + Pb ) ; return b } function Qc ( a , b ) { var c = d . mouse ( a ) , e = d . select ( a ) , k = 1 * e . attr ( "cx" ) , e = 1 * e . attr ( "cy" ) ; return Math . sqrt ( Math . pow ( k - c [ 0 ] , 2 ) + Math . pow ( e - c [ 1 ] , 2 ) ) < b } function Rc ( a ) { var b = d . mouse ( a ) , c = d . select ( a ) ; a = 1 * c . attr ( "x" ) ; var e = 1 * c . attr ( "y" ) , c = 1 * c . attr ( "width" ) ; return a - 10 < b [ 0 ] && b [ 0 ] < a + c + 10 && e - 10 < b [ 1 ] } function Wd ( a , b ) { var c ; for ( c = 0 ; c < b . length ; c ++ ) if ( b [ c ] . start < a && a <= b [ c ] . end ) return ! 0 ; return ! 1 } function Gd ( a , b ) { var c = ! 1 ;
Object . keys ( a ) . forEach ( function ( e ) { a [ e ] === b && ( c = ! 0 ) } ) ; return c } function Nb ( a , b ) { return Math . pow ( m ( a . x ) - b [ 0 ] , 2 ) + Math . pow ( z ( a . value ) - b [ 1 ] , 2 ) } function Sc ( a , b , c ) { Xd ( a , b ) ; l . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + c ) . data ( [ b ] ) . enter ( ) . append ( "circle" ) . attr ( "class" , function ( ) { return "selected-circle selected-circle-" + c } ) . attr ( "cx" , g ? xa : wa ) . attr ( "cy" , g ? wa : xa ) . attr ( "stroke" , function ( ) { return K ( b . id ) } ) . attr ( "r" , 1.4 * Pa ) . transition ( ) . duration ( 100 ) . attr ( "r" , Pa ) } function Qb ( a , b , c ) { Yd ( a , b ) ;
l . select ( ".selected-circles-" + b . id ) . selectAll ( ".selected-circle-" + c ) . transition ( ) . duration ( 100 ) . attr ( "r" , 0 ) . remove ( ) } function Tc ( a , b , c , e ) { a ? Sc ( b , c , e ) : Qb ( b , c , e ) } function Zd ( ) { } function Uc ( ) { } function Vc ( a , b , c , e ) { } function Rb ( a ) { return a . filter ( function ( a ) { return null !== a . value } ) } function Sb ( a , b ) { return ( b ? l . selectAll ( ".-circles-" + b ) : l ) . selectAll ( ".-circle" + ( a || 0 === a ? "-" + a : "" ) ) } function Tb ( a ) { Sb ( a ) . filter ( function ( ) { return d . select ( this ) . classed ( aa ) } ) . classed ( aa , ! 1 ) . attr ( "r" , Ub ) } function Wc ( a ) { return l . selectAll ( ".-bar" +
( a || 0 === a ? "-" + a : "" ) ) } function $d ( a , b , c , e ) { var d , f , h = "M" , l , m , ya , p , q , n = [ ] ; if ( r ( e ) ) for ( d = 0 ; d < e . length ; d ++ ) n [ d ] = { } , x ( e [ d ] . start ) ? n [ d ] . start = a [ 0 ] . x : n [ d ] . start = B ? ma ( e [ d ] . start ) : e [ d ] . start , x ( e [ d ] . end ) ? n [ d ] . end = a [ a . length - 1 ] . x : n [ d ] . end = B ? ma ( e [ d ] . end ) : e [ d ] . end ; p = g ? function ( a ) { return c ( a . value ) } : function ( a ) { return b ( a . x ) } ; q = g ? function ( a ) { return b ( a . x ) } : function ( a ) { return c ( a . value ) } ; e = B ? function ( a , e , d , k ) { var f = a . x . getTime ( ) ; a = e . x - a . x ; e = new Date ( f + a * ( d + k ) ) ; return "M" + b ( new Date ( f + a * d ) ) + " " + c ( m ( d ) ) + " " + b ( e ) + " " +
c ( m ( d + k ) ) } : function ( a , e , d , k ) { return "M" + b ( l ( d ) ) + " " + c ( m ( d ) ) + " " + b ( l ( d + k ) ) + " " + c ( m ( d + k ) ) } ; for ( d = 0 ; d < a . length ; d ++ ) if ( x ( n ) || ! Wd ( a [ d ] . x , n ) ) h += " " + p ( a [ d ] ) + " " + q ( a [ d ] ) ; else { l = S ( a [ d - 1 ] . x , a [ d ] . x ) ; m = T ( a [ d - 1 ] . value , a [ d ] . value ) ; f = b ( a [ d ] . x ) - b ( a [ d - 1 ] . x ) ; ya = c ( a [ d ] . value ) - c ( a [ d - 1 ] . value ) ; f = Math . sqrt ( Math . pow ( f , 2 ) + Math . pow ( ya , 2 ) ) ; ya = 2 / f ; var s = 2 * ya ; for ( f = ya ; 1 >= f ; f += s ) h += e ( a [ d - 1 ] , a [ d ] , f , ya ) } return h } function Vb ( a ) { var b ; tb = d . select ( sa ) ; if ( tb . empty ( ) ) P . alert ( 'No bind element found. Check the selector specified by "bindto" and existance of that element. Default "bindto" is "#chart".' ) ;
else { tb . html ( "" ) ; h . data . x = { } ; h . data . targets = Ka ( a ) ; qa ( ) ; R ( ) ; m . domain ( d . extent ( ob ( h . data . targets ) ) ) ; z . domain ( mb ( "y" ) ) ; Z . domain ( mb ( "y2" ) ) ; V . domain ( m . domain ( ) ) ; hb . domain ( z . domain ( ) ) ; ib . domain ( Z . domain ( ) ) ; J . ticks ( 10 > a . length ? a . length : 10 ) ; ua . ticks ( ae ) . outerTickSize ( 0 ) . tickFormat ( be ) ; jb . ticks ( ce ) . outerTickSize ( 0 ) . tickFormat ( de ) ; U = m . domain ( ) ; L . scale ( V ) ; oa && D . scale ( m ) ; n = d . select ( sa ) . append ( "svg" ) . attr ( "width" , q + A + Y ) . attr ( "height" , s + u + O ) . on ( "mouseenter" , ee ) . on ( "mouseleave" , fe ) ; ub = n . append ( "defs" ) ; ub . append ( "clipPath" ) . attr ( "id" ,
Wb ) . append ( "rect" ) . attr ( "y" , u ) . attr ( "width" , q ) . attr ( "height" , s - u ) ; ub . append ( "clipPath" ) . attr ( "id" , "xaxis-clip" ) . append ( "rect" ) . attr ( "x" , - 1 - A ) . attr ( "y" , - 20 ) . attr ( "width" , N ) . attr ( "height" , da ) ; ub . append ( "clipPath" ) . attr ( "id" , "yaxis-clip" ) . append ( "rect" ) . attr ( "x" , - A + 1 ) . attr ( "y" , u - 1 ) . attr ( "width" , ia ) . attr ( "height" , yb ) ; l = n . append ( "g" ) . attr ( "transform" , M . main ) ; E = za ? n . append ( "g" ) . attr ( "transform" , M . context ) : null ; Aa = Ba ? n . append ( "g" ) . attr ( "transform" , M . legend ) : null ; W = d . select ( sa ) . style ( "position" , "relative" ) . append ( "div" ) . style ( "position" ,
"absolute" ) . style ( "z-index" , "10" ) . style ( "display" , "none" ) ; l . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "clip-path" , g ? "" : "url(#xaxis-clip)" ) . attr ( "transform" , M . x ) . call ( g ? ua : J ) . append ( "text" ) . attr ( "class" , "-axis-x-label" ) . attr ( "x" , q ) . attr ( "dy" , "-.5em" ) . style ( "text-anchor" , "end" ) . text ( ge ) ; l . append ( "g" ) . attr ( "class" , "y axis" ) . attr ( "clip-path" , g ? "url(#yaxis-clip)" : "" ) . call ( g ? J : ua ) . append ( "text" ) . attr ( "transform" , "rotate(-90)" ) . attr ( "dy" , "1.2em" ) . attr ( "dx" , "-.5em" ) . style ( "text-anchor" , "end" ) . text ( he ) ; Bb &&
l . append ( "g" ) . attr ( "class" , "y2 axis" ) . attr ( "transform" , M . y2 ) . call ( jb ) ; a = l . append ( "g" ) . attr ( "clip-path" , Qa ) . attr ( "class" , "grid" ) ; Xc && a . append ( "g" ) . attr ( "class" , "xgrids" ) ; Xb && ( b = a . append ( "g" ) . attr ( "class" , "xgrid-lines" ) . selectAll ( ".xgrid-line" ) . data ( Xb ) . enter ( ) . append ( "g" ) . attr ( "class" , "xgrid-line" ) , b . append ( "line" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) , b . append ( "text" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) . attr ( "text-anchor" , "end" ) . attr ( "transform" , g ? "" : "rotate(-90)" ) . attr ( "dx" , g ?
0 : - u ) . attr ( "dy" , - 5 ) . text ( function ( a ) { return a . text } ) ) ; ie && a . append ( "g" ) . attr ( "class" , "xgrid-focus" ) . append ( "line" ) . attr ( "class" , "xgrid-focus" ) . attr ( "x1" , g ? 0 : - 10 ) . attr ( "x2" , g ? q : - 10 ) . attr ( "y1" , g ? - 10 : u ) . attr ( "y2" , g ? - 10 : s ) ; Yc && a . append ( "g" ) . attr ( "class" , "ygrids" ) ; Yb && ( a = a . append ( "g" ) . attr ( "class" , "ygrid-lines" ) . selectAll ( "ygrid-line" ) . data ( Yb ) . enter ( ) . append ( "g" ) . attr ( "class" , "ygrid-line" ) , a . append ( "line" ) . attr ( "class" , function ( a ) { return "" + a [ "class" ] } ) , a . append ( "text" ) . attr ( "class" , function ( a ) { return "" +
a [ "class" ] } ) . attr ( "text-anchor" , "end" ) . attr ( "transform" , g ? "rotate(-90)" : "" ) . attr ( "dx" , g ? 0 : - u ) . attr ( "dy" , - 5 ) . text ( function ( a ) { return a . text } ) ) ; l . append ( "g" ) . attr ( "clip-path" , Qa ) . attr ( "class" , "regions" ) ; l . append ( "g" ) . attr ( "clip-path" , Qa ) . attr ( "class" , "chart" ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "event-rects" ) . style ( "fill-opacity" , 0 ) . style ( "cursor" , oa ? "ew-resize" : null ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) ; l . select ( ".chart" ) . append ( "g" ) . attr ( "class" ,
"chart-arcs" ) . attr ( "transform" , M . arc ) ; if ( oa ) l . insert ( "rect" , je ? null : "g.grid" ) . attr ( "class" , "zoom-rect" ) . attr ( "width" , q ) . attr ( "height" , s ) . style ( "opacity" , 0 ) . style ( "cursor" , "ew-resize" ) . call ( D ) . on ( "dblclick.zoom" , null ) ; null !== vb && L . extent ( "function" !== typeof vb ? vb : vb ( ob ( ) ) ) ; za && ( E . append ( "g" ) . attr ( "clip-path" , Qa ) . attr ( "class" , "chart" ) , E . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-bars" ) , E . select ( ".chart" ) . append ( "g" ) . attr ( "class" , "chart-lines" ) , E . append ( "g" ) . attr ( "clip-path" , Qa ) . attr ( "class" , "x brush" ) . call ( L ) . selectAll ( "rect" ) . attr ( g ?
"width" : "height" , g ? Cb : db ) , E . append ( "g" ) . attr ( "class" , "x axis" ) . attr ( "transform" , M . subx ) . call ( gb ) ) ; Ba && wb ( h . data . targets ) ; Zc ( h . data . targets ) ; I ( { withTransition : ! 1 , withUpdateXDomain : ! 0 } ) ; if ( ke ) { if ( B && "string" === typeof Ca ) { Ca = ma ( Ca ) ; for ( a = 0 ; a < h . data . targets [ 0 ] . values . length && 0 !== h . data . targets [ 0 ] . values [ a ] . x - Ca ; a ++ ) ; Ca = a } W . html ( Kc ( h . data . targets . map ( function ( a ) { return qb ( a . values [ Ca ] ) } ) ) ) ; W . style ( "top" , $c . top ) . style ( "left" , $c . left ) . style ( "display" , "block" ) } null == P . onresize && ( P . onresize = le ( ) ) ; P . onresize . add &&
P . onresize . add ( me ) } } function ne ( a ) { a . append ( "rect" ) . attr ( "class" , Cc ) . style ( "cursor" , fa && pa ? "pointer" : null ) . on ( "mouseover" , function ( a , c ) { if ( ! Ra && ! C ( h . data . targets ) ) { var e = h . data . targets . map ( function ( a ) { return qb ( a . values [ c ] ) } ) , d , f ; if ( 0 < Object . keys ( Ja ) . length ) { f = [ ] ; for ( var g in Ja ) for ( d = 0 ; d < e . length ; d ++ ) if ( e [ d ] . id === g ) { f . push ( e [ d ] ) ; e . shift ( d ) ; break } e = f . concat ( e ) } Zb && Sb ( c , void 0 ) . classed ( aa , ! 0 ) . attr ( "r" , $b ) ; Wc ( c ) . classed ( aa , ! 1 ) ; Lc ( e [ 0 ] ) } } ) . on ( "mouseout" , function ( a , c ) { C ( h . data . targets ) || ( Mc ( ) , W . style ( "display" ,
"none" ) , Tb ( c ) , Wc ( void 0 ) . classed ( aa , ! 1 ) ) } ) . on ( "mousemove" , function ( a , c ) { var e ; Ra || C ( h . data . targets ) || ( e = h . data . targets . map ( function ( a ) { return qb ( a . values [ c ] ) } ) , Jc ( e , d . mouse ( this ) ) , fa && ( pa || l . selectAll ( ".-shape-" + c ) . filter ( function ( a ) { return ga ( a ) } ) . each ( function ( ) { var a = d . select ( this ) . classed ( aa , ! 0 ) ; "circle" === this . nodeName && a . attr ( "r" , $b ) ; n . select ( ".event-rect-" + c ) . style ( "cursor" , null ) } ) . filter ( function ( ) { var a = d . select ( this ) ; if ( "circle" === this . nodeName ) return Qc ( this , Pa ) ; if ( "rect" === this . nodeName ) return Rc ( this ,
a . attr ( "x" ) , a . attr ( "y" ) ) } ) . each ( function ( ) { var a = d . select ( this ) ; a . classed ( aa ) || ( a . classed ( aa , ! 0 ) , "circle" === this . nodeName && a . attr ( "r" , Pa ) ) ; n . select ( ".event-rect-" + c ) . style ( "cursor" , "pointer" ) } ) ) ) } ) . on ( "click" , function ( a , c ) { C ( h . data . targets ) || ( ac ? ac = ! 1 : l . selectAll ( ".-shape-" + c ) . each ( function ( a ) { ad ( this , a , c ) } ) ) } ) . call ( d . behavior . drag ( ) . origin ( Object ) . on ( "drag" , function ( ) { bd ( d . mouse ( this ) ) } ) . on ( "dragstart" , function ( ) { cd ( d . mouse ( this ) ) } ) . on ( "dragend" , function ( ) { dd ( ) } ) ) . call ( D ) . on ( "dblclick.zoom" , null ) }
function oe ( a ) { a . append ( "rect" ) . attr ( "x" , 0 ) . attr ( "y" , 0 ) . attr ( "width" , q ) . attr ( "height" , s ) . attr ( "class" , "event-rect" ) . on ( "mouseout" , function ( ) { C ( h . data . targets ) || ( Mc ( ) , W . style ( "display" , "none" ) , Tb ( ) ) } ) . on ( "mousemove" , function ( ) { var a , c , e ; Ra || C ( h . data . targets ) || ( a = d . mouse ( this ) , c = Ic ( h . data . targets , a ) , e = [ qb ( c ) ] , Jc ( e , a ) , Zb && ( Tb ( ) , Sb ( c . index , c . id ) . classed ( aa , ! 0 ) . attr ( "r" , $b ) ) , Lc ( e [ 0 ] ) , 100 > Nb ( c , a ) ? n . select ( ".event-rect" ) . style ( "cursor" , "pointer" ) : n . select ( ".event-rect" ) . style ( "cursor" , null ) ) } ) . on ( "click" ,
function ( ) { var a , c ; C ( h . data . targets ) || ( a = d . mouse ( this ) , c = Ic ( h . data . targets , a ) , 100 > Nb ( c , a ) && l . select ( ".-circles-" + c . id ) . select ( ".-circle-" + c . index ) . each ( function ( ) { ad ( this , c , c . index ) } ) ) } ) . call ( d . behavior . drag ( ) . origin ( Object ) . on ( "drag" , function ( ) { bd ( d . mouse ( this ) ) } ) . on ( "dragstart" , function ( ) { cd ( d . mouse ( this ) ) } ) . on ( "dragend" , function ( ) { dd ( ) } ) ) . call ( D ) . on ( "dblclick.zoom" , null ) } function ad ( a , b , c ) { var e = d . select ( a ) , f = e . classed ( ha ) , g = ! 1 , h ; "circle" === a . nodeName ? ( g = Qc ( a , 1.5 * Pa ) , h = Tc ) : "rect" === a . nodeName &&
( g = Rc ( a ) , h = Vc ) ; if ( pa || g ) fa && ga ( b ) && ( e . classed ( ha , ! f ) , h ( ! f , e , b , c ) ) , pe ( b , e ) } function bd ( a ) { var b , c , e , f , g , m , n ; C ( h . data . targets ) || ! fa || oa && ! D . altDomain || ( b = bc [ 0 ] , c = bc [ 1 ] , e = a [ 0 ] , a = a [ 1 ] , f = Math . min ( b , e ) , g = Math . max ( b , e ) , m = pa ? u : Math . min ( c , a ) , n = pa ? s : Math . max ( c , a ) , l . select ( ".dragarea" ) . attr ( "x" , f ) . attr ( "y" , m ) . attr ( "width" , g - f ) . attr ( "height" , n - m ) , l . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . filter ( function ( a ) { return ga ( a ) } ) . each ( function ( a , b ) { var c = d . select ( this ) , e = c . classed ( ha ) , h = c . classed ( cc ) , l , p , q , r ; l = ! 1 ;
"circle" === this . nodeName ? ( l = 1 * c . attr ( "cx" ) , p = 1 * c . attr ( "cy" ) , r = Tc , l = f < l && l < g && m < p && p < n ) : "rect" === this . nodeName && ( l = 1 * c . attr ( "x" ) , p = 1 * c . attr ( "y" ) , q = 1 * c . attr ( "width" ) , r = Vc , l = f < l + q && l < g && p < n ) ; l ^ h && ( c . classed ( cc , ! h ) , c . classed ( ha , ! e ) , r ( ! e , c , a , b ) ) } ) ) } function cd ( a ) { ! C ( h . data . targets ) && fa && ( bc = a , l . select ( ".chart" ) . append ( "rect" ) . attr ( "class" , "dragarea" ) . style ( "opacity" , 0.1 ) , Ra = ! 0 ) } function dd ( ) { ! C ( h . data . targets ) && fa && ( l . select ( ".dragarea" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0 ) . remove ( ) , l . selectAll ( ".-shape" ) . classed ( cc ,
! 1 ) , Ra = ! 1 ) } function I ( a ) { var b , c , e , f = Rd ( ) , n = f . _ _max _ _ + 1 , p , v , t ; a = r ( a ) ? a : { } ; c = r ( a . withY ) ? a . withY : ! 0 ; e = r ( a . withSubchart ) ? a . withSubchart : ! 0 ; v = r ( a . withTransition ) ? a . withTransition : ! 0 ; b = r ( a . withUpdateXDomain ) ? a . withUpdateXDomain : ! 1 ; a = r ( a . withUpdateOrgXDomain ) ? a . withUpdateOrgXDomain : ! 1 ; t = C ( h . data . targets ) ; v = v ? 250 : 0 ; a && ( m . domain ( d . extent ( ob ( h . data . targets ) ) ) , U = m . domain ( ) , D . scale ( m ) . updateScaleExtent ( ) , V . domain ( m . domain ( ) ) , L . scale ( V ) ) ; b && ( m . domain ( L . empty ( ) ? U : L . extent ( ) ) , oa && D . scale ( m ) . updateScaleExtent ( ) ) ;
z . domain ( mb ( "y" ) ) ; Z . domain ( mb ( "y2" ) ) ; l . select ( ".x.axis" ) . transition ( ) . duration ( g ? v : 0 ) . call ( g ? ua : J ) . style ( "opacity" , t ? 0 : 1 ) ; l . select ( ".y.axis" ) . transition ( ) . duration ( g ? 0 : v ) . call ( g ? J : ua ) . style ( "opacity" , t ? 0 : 1 ) ; l . select ( ".y2.axis" ) . transition ( ) . call ( jb ) . style ( "opacity" , t ? 0 : 1 ) ; l . select ( ".x.axis .-axis-x-label" ) . attr ( "x" , q ) ; hb . domain ( z . domain ( ) ) ; ib . domain ( Z . domain ( ) ) ; W . style ( "display" , "none" ) ; l . select ( "line.xgrid-focus" ) . style ( "visibility" , "hidden" ) . attr ( "y2" , s ) ; if ( Xc ) { if ( "year" === qe ) for ( b = [ ] , t = ob ( ) , a =
t [ 0 ] . getFullYear ( ) , t = t [ 1 ] . getFullYear ( ) ; a <= t ; a ++ ) b . push ( new Date ( a + "-01-01 00:00:00" ) ) ; else b = m . ticks ( 10 ) ; b = l . select ( ".xgrids" ) . selectAll ( ".xgrid" ) . data ( b ) ; b . enter ( ) . append ( "line" ) . attr ( "class" , "xgrid" ) ; b . attr ( "x1" , g ? 0 : function ( a ) { return m ( a ) - J . tickOffset ( ) } ) . attr ( "x2" , g ? q : function ( a ) { return m ( a ) - J . tickOffset ( ) } ) . attr ( "y1" , g ? function ( a ) { return m ( a ) - J . tickOffset ( ) } : u ) . attr ( "y2" , g ? function ( a ) { return m ( a ) - J . tickOffset ( ) } : s ) . style ( "opacity" , function ( ) { return + d . select ( this ) . attr ( g ? "y1" : "x1" ) === ( g ? s : 0 ) ?
0 : 1 } ) ; b . exit ( ) . remove ( ) } Xb && ( b = l . selectAll ( ".xgrid-lines" ) , b . selectAll ( "line" ) . transition ( ) . duration ( v ) . attr ( "x1" , g ? 0 : Ma ) . attr ( "x2" , g ? q : Ma ) . attr ( "y1" , g ? Ma : u ) . attr ( "y2" , g ? Ma : s ) , b . selectAll ( "text" ) . attr ( "x" , g ? q : 0 ) . attr ( "y" , Ma ) ) ; c && Yc && ( b = l . select ( ".ygrids" ) . selectAll ( ".ygrid" ) . data ( z . ticks ( 10 ) ) , b . enter ( ) . append ( "line" ) . attr ( "class" , "ygrid" ) , b . attr ( "x1" , g ? z : 0 ) . attr ( "x2" , g ? z : q ) . attr ( "y1" , g ? 0 : z ) . attr ( "y2" , g ? s : z ) , b . exit ( ) . remove ( ) ) ; c && Yb && ( c = l . select ( ".ygrid-lines" ) , c . selectAll ( "line" ) . transition ( ) . duration ( v ) . attr ( "x1" ,
g ? Na : 0 ) . attr ( "x2" , g ? Na : q ) . attr ( "y1" , g ? 0 : Na ) . attr ( "y2" , g ? s : Na ) , c . selectAll ( "text" ) . attr ( "x" , g ? 0 : q ) . attr ( "y" , Na ) ) ; c = function ( a ) { var b = ea ? n ? 1.2 * J . tickOffset ( ) / n : 0 : 0.6 * ( ( g ? s : q ) * ( a ? 1 : ta ( U ) / ta ( m . domain ( ) ) ) / ( fb ( ) - 1 ) ) , c = Sd ( b , n , f , ! ! a ) , e = Td ( ! ! a ) , d = Ud ( f , ! ! a ) , h = a ? F : w ; return function ( a , f ) { var k = h ( a . id ) ( 0 ) , l = d ( a , f ) || k , k = [ [ c ( a ) , l ] , [ c ( a ) , e ( a ) - ( k - l ) ] , [ c ( a ) + b , e ( a ) - ( k - l ) ] , [ c ( a ) + b , l ] ] , l = g ? 1 : 0 , m = g ? 0 : 1 ; return "M " + k [ 0 ] [ l ] + "," + k [ 0 ] [ m ] + " L" + k [ 1 ] [ l ] + "," + k [ 1 ] [ m ] + " L" + k [ 2 ] [ l ] + "," + k [ 2 ] [ m ] + " L" + k [ 3 ] [ l ] + "," + k [ 3 ] [ m ] + " z" } } ; b = l . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( Pc ) ;
b . enter ( ) . append ( "path" ) . attr ( "d" , c ( ! 1 ) ) . style ( "stroke" , "none" ) . style ( "opacity" , 0 ) . style ( "fill" , function ( a ) { return K ( a . id ) } ) . attr ( "class" , Bc ) ; b . transition ( ) . duration ( v ) . attr ( "d" , c ( ! 1 ) ) . style ( "opacity" , 1 ) ; b . exit ( ) . transition ( ) . duration ( v ) . style ( "opacity" , 0 ) . remove ( ) ; l . selectAll ( ".chart-line" ) . select ( ".-line" ) . transition ( ) . duration ( v ) . attr ( "d" , re ) ; l . selectAll ( ".-area" ) . transition ( ) . duration ( v ) . attr ( "d" , se ) ; b = l . selectAll ( ".-circles" ) . selectAll ( ".-circle" ) . data ( Vd ) ; b . enter ( ) . append ( "circle" ) . attr ( "class" ,
Od ) . attr ( "r" , Ub ) ; b . transition ( ) . duration ( v ) . style ( "opacity" , Qd ) . attr ( "cx" , g ? xa : wa ) . attr ( "cy" , g ? wa : xa ) ; b . exit ( ) . remove ( ) ; l . selectAll ( ".chart-arc" ) . select ( ".-arc" ) . style ( "opacity" , function ( a ) { return a === this . _current ? 0 : 1 } ) . transition ( ) . duration ( v ) . attrTween ( "d" , function ( a ) { a = ja ( a ) ; if ( ! a ) return function ( ) { return "M 0 0" } ; var b = d . interpolate ( this . _current , a ) ; this . _current = b ( 0 ) ; return function ( a ) { a = b ( a ) ; return Oc ( a . data ) ? kb ( a , ! 0 ) : "M 0 0" } } ) . style ( "opacity" , 1 ) ; l . selectAll ( ".chart-arc" ) . select ( "text" ) . attr ( "transform" ,
Wa ) . attr ( "opacity" , 0 ) . transition ( ) . duration ( v ) . text ( Xa ) . attr ( "opacity" , function ( a ) { return Oc ( a . data ) ? 1 : 0 } ) ; za && ( null !== d . event && "zoom" === d . event . type && L . extent ( m . orgDomain ( ) ) . update ( ) , e && ( E . select ( ".x.axis" ) . transition ( ) . duration ( g ? v : 0 ) . call ( gb ) , L . empty ( ) || L . extent ( m . orgDomain ( ) ) . update ( ) , e = E . selectAll ( ".-bars" ) . selectAll ( ".-bar" ) . data ( Pc ) , e . enter ( ) . append ( "path" ) . attr ( "d" , c ( ! 0 ) ) . style ( "stroke" , "none" ) . style ( "fill" , function ( a ) { return K ( a . id ) } ) . attr ( "class" , Bc ) , e . style ( "opacity" , 0 ) . transition ( ) . duration ( v ) . attr ( "d" ,
c ( ! 0 ) ) . style ( "opacity" , 1 ) , e . exit ( ) . transition ( ) . duration ( v ) . style ( "opacity" , 0 ) . remove ( ) , E . selectAll ( ".-line" ) . transition ( ) . duration ( v ) . attr ( "d" , te ) ) ) ; l . selectAll ( ".selected-circles" ) . filter ( function ( a ) { return sb ( a ) } ) . selectAll ( "circle" ) . remove ( ) ; l . selectAll ( ".selected-circle" ) . transition ( ) . duration ( v ) . attr ( "cx" , g ? xa : wa ) . attr ( "cy" , g ? wa : xa ) ; $ ? ( c = l . select ( ".event-rects" ) . selectAll ( ".event-rect" ) . data ( [ 0 ] ) , oe ( c . enter ( ) ) , c . attr ( "x" , 0 ) . attr ( "y" , 0 ) . attr ( "width" , q ) . attr ( "height" , s ) ) : ( Mb ? ( p = function ( a , b ) { var c =
wc ( b ) , e = b < fb ( ) - 1 ? h . data . targets [ 0 ] . values [ b + 1 ] . x : void 0 ; return ( m ( e ? e : a . x + 50 ) - m ( c ? c : a . x - 50 ) ) / 2 } , e = function ( a , b ) { var c = wc ( b ) ; return ( m ( a . x ) + m ( c ? c : a . x - 50 ) ) / 2 } ) : ( p = ld ( ) , e = function ( a ) { return m ( a . x ) - p / 2 } ) , c = Kd ( ) , l . select ( ".event-rects" ) . datum ( c ? c . values : [ ] ) , c = l . select ( ".event-rects" ) . selectAll ( ".event-rect" ) . data ( function ( a ) { return a } ) , ne ( c . enter ( ) ) , c . attr ( "class" , Cc ) . attr ( "x" , g ? 0 : e ) . attr ( "y" , g ? e : 0 ) . attr ( "width" , g ? q : p ) . attr ( "height" , g ? p : s ) , c . exit ( ) . remove ( ) ) ; e = l . select ( ".regions" ) . selectAll ( "rect.region" ) . data ( Q ) ;
e . enter ( ) . append ( "rect" ) ; e . attr ( "class" , Pd ) . attr ( "x" , g ? 0 : Lb ) . attr ( "y" , g ? Lb : u ) . attr ( "width" , g ? q : sc ) . attr ( "height" , g ? sc : s ) . style ( "fill-opacity" , function ( a ) { return r ( a . opacity ) ? a . opacity : 0.1 } ) ; e . exit ( ) . transition ( ) . duration ( v ) . style ( "fill-opacity" , 0 ) . remove ( ) } function ue ( ) { "mousemove" === d . event . sourceEvent . type && D . altDomain ? ( m . domain ( D . altDomain ) , D . scale ( m ) . updateScaleExtent ( ) ) : ( ea && m . orgDomain ( ) [ 0 ] === U [ 0 ] && m . domain ( [ U [ 0 ] - 1E-10 , m . orgDomain ( ) [ 1 ] ] ) , I ( { withTransition : ! 1 , withY : ! 1 , withSubchart : ! 1 } ) , "mousemove" ===
d . event . sourceEvent . type && ( ac = ! 0 ) ) } function le ( ) { function a ( ) { b . forEach ( function ( a ) { a ( ) } ) } var b = [ ] ; a . add = function ( a ) { b . push ( a ) } ; return a } function me ( ) { qa ( ) ; R ( ) ; L . scale ( V ) ; oa && D . scale ( m ) ; n . attr ( "width" , zb ) . attr ( "height" , ra ) ; n . select ( "#" + Wb ) . select ( "rect" ) . attr ( "width" , q ) . attr ( "height" , s ) ; n . select ( "#xaxis-clip" ) . select ( "rect" ) . attr ( "width" , N ) ; n . select ( ".zoom-rect" ) . attr ( "width" , q ) . attr ( "height" , s ) ; l . select ( ".x.axis" ) . attr ( "transform" , M . x ) ; l . select ( ".y2.axis" ) . attr ( "transform" , M . y2 ) ; l . select ( ".chart-arcs" ) . attr ( "transform" ,
M . arc ) ; za && ( E . attr ( "transform" , M . context ) , E . select ( ".x.axis" ) . attr ( "transform" , M . subx ) ) ; Ba && ( Aa . attr ( "transform" , M . legend ) , wb ( h . data . targets , { withTransition : ! 1 } ) ) ; I ( { withTransition : ! 1 , withUpdateXDomain : ! 0 } ) } function Zc ( a ) { var b ; ed && Oa ( rb ( a ) . filter ( function ( a ) { return ! ( a in H ) } ) , ed ) ; l . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" + a . id } ) . style ( "pointer-events" , "none" ) . style ( "opacity" , 0 ) . append ( "g" ) . attr ( "class" , Ac ) . style ( "fill" ,
function ( a ) { return K ( a . id ) } ) . style ( "stroke" , function ( a ) { return K ( a . id ) } ) . style ( "stroke-width" , 0 ) . style ( "cursor" , function ( a ) { return ga ( a ) ? "pointer" : null } ) ; b = l . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" + a . id } ) . style ( "pointer-events" , "none" ) . style ( "opacity" , 0 ) ; b . append ( "path" ) . attr ( "class" , zc ) . style ( "stroke" , function ( a ) { return K ( a . id ) } ) ; b . append ( "path" ) . attr ( "class" , Nd ) . style ( "fill" , function ( a ) { return K ( a . id ) } ) ;
b . append ( "g" ) . attr ( "class" , function ( a ) { return "selected-circles selected-circles-" + a . id } ) ; b . append ( "g" ) . attr ( "class" , Ld ) . style ( "fill" , function ( a ) { return K ( a . id ) } ) . style ( "cursor" , function ( a ) { return ga ( a ) ? "pointer" : null } ) ; a . forEach ( function ( a ) { l . selectAll ( ".selected-circles-" + a . id ) . selectAll ( ".selected-circle" ) . each ( function ( b ) { b . value = a . values [ b . x ] . value } ) } ) ; b = l . select ( ".chart-arcs" ) . selectAll ( ".chart-arc" ) . data ( Kb ( a ) ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-arc target target-" + a . data . id } ) . style ( "opacity" ,
0 ) ; b . append ( "path" ) . attr ( "class" , Md ) . style ( "fill" , function ( a ) { return K ( a . data . id ) } ) . style ( "cursor" , function ( a ) { return ga ( a ) ? "pointer" : null } ) . each ( function ( a ) { this . _current = a } ) . on ( "mouseover" , function ( a ) { Ya ( a . data . id ) ; fd ( a . data . id ) } ) . on ( "mouseout" , function ( a ) { xb ( a . data . id ) ; gd ( ) } ) ; b . append ( "text" ) . attr ( "dy" , ".35em" ) . style ( "text-anchor" , "middle" ) . style ( "pointer-events" , "none" ) ; za && ( b = E . select ( ".chart-bars" ) . selectAll ( ".chart-bar" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-bar target target-" +
a . id } ) . style ( "opacity" , 0 ) , b . append ( "g" ) . attr ( "class" , Ac ) . style ( "fill" , function ( a ) { return K ( a . id ) } ) , b = E . select ( ".chart-lines" ) . selectAll ( ".chart-line" ) . data ( a ) , b = b . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "chart-line target target-" + a . id } ) . style ( "opacity" , 0 ) , b . append ( "path" ) . attr ( "class" , zc ) . style ( "stroke" , function ( a ) { return K ( a . id ) } ) ) ; Ba && wb ( a ) ; n . selectAll ( ".target" ) . transition ( ) . style ( "opacity" , 1 ) } function Sa ( a , b ) { h . data . targets . forEach ( function ( b ) { for ( var e = 0 ; e < a . length ; e ++ ) if ( b . id ===
a [ e ] . id ) { b . values = a [ e ] . values ; a . splice ( e , 1 ) ; break } } ) ; h . data . targets = h . data . targets . concat ( a ) ; Zc ( h . data . targets ) ; I ( { withUpdateOrgXDomain : ! 0 , withUpdateXDomain : ! 0 } ) ; b ( ) } function fd ( a ) { n . selectAll ( ".legend-item" ) . filter ( function ( b ) { return b !== a } ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) } function gd ( ) { n . selectAll ( ".legend-item" ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) } function wb ( a , b ) { var c = rb ( a ) , e , d = q / 2 - Ta * Object . keys ( a ) . length / 2 , f ; b = x ( b ) ? { } : b ; f = r ( b . withTransition ) ? b . withTransition : ! 0 ; e =
Aa . selectAll ( ".legend-item" ) . data ( c ) . enter ( ) . append ( "g" ) . attr ( "class" , function ( a ) { return "legend-item legend-item-" + a } ) . style ( "cursor" , "pointer" ) . on ( "click" , function ( a ) { ve ( a ) } ) . on ( "mouseover" , function ( a ) { fd ( a ) ; h . focus ( a ) } ) . on ( "mouseout" , function ( ) { gd ( ) ; h . revert ( ) } ) ; e . append ( "rect" ) . attr ( "class" , "legend-item-event" ) . style ( "fill-opacity" , 0 ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return la / 2 - 16 } ) . attr ( "width" , Ta ) . attr ( "height" , 24 ) ; e . append ( "rect" ) . attr ( "class" , "legend-item-tile" ) . style ( "pointer-events" , "none" ) . style ( "fill" ,
function ( a ) { return K ( a ) } ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return la / 2 - 9 } ) . attr ( "width" , 10 ) . attr ( "height" , 10 ) ; e . append ( "text" ) . text ( function ( a ) { return r ( Ja [ a ] ) ? Ja [ a ] : a } ) . style ( "pointer-events" , "none" ) . attr ( "x" , - 200 ) . attr ( "y" , function ( ) { return la / 2 } ) ; Aa . selectAll ( "rect.legend-item-event" ) . data ( c ) . transition ( ) . duration ( f ? 250 : 0 ) . attr ( "x" , function ( a , b ) { return d + Ta * b } ) ; Aa . selectAll ( "rect.legend-item-tile" ) . data ( c ) . transition ( ) . duration ( f ? 250 : 0 ) . attr ( "x" , function ( a , b ) { return d + Ta * b } ) ; Aa . selectAll ( "text" ) . data ( c ) . transition ( ) . duration ( f ?
250 : 0 ) . attr ( "x" , function ( a , b ) { return d + Ta * b + 14 } ) } function Ua ( a ) { return r ( a ) ? ".target-" + a : ".target" } function dc ( a ) { return xc ( a . id ) } function ec ( a ) { return "data" in a && xc ( a . data . id ) } var h = { data : { } } , pb = { } , aa = "_expanded_" , ha = "_selected_" , cc = "_included_" , sa = f ( [ "bindto" ] , "#chart" ) , Za = f ( [ "size" , "width" ] , null ) , lc = f ( [ "size" , "height" ] , null ) , $a = f ( [ "padding" , "left" ] , null ) , bb = f ( [ "padding" , "right" ] , null ) , oa = f ( [ "zoom" , "enabled" ] , ! 1 ) , hd = f ( [ "zoom" , "extent" ] , null ) , je = f ( [ "zoom" , "privileged" ] , ! 1 ) , ee = f ( [ "onenter" ] , function ( ) { } ) ,
fe = f ( [ "onleave" ] , function ( ) { } ) ; if ( ! ( "data" in ba ) ) throw Error ( "data is required in config" ) ; var na = f ( [ "data" , "x" ] , null ) , $ = f ( [ "data" , "xs" ] , null ) , Pb = f ( [ "data" , "x_format" ] , "%Y-%m-%d" ) , Jd = f ( [ "data" , "id_converter" ] , function ( a ) { return a } ) , Ja = f ( [ "data" , "names" ] , { } ) , t = f ( [ "data" , "groups" ] , [ ] ) , oc = f ( [ "data" , "axes" ] , { } ) , ed = f ( [ "data" , "type" ] , null ) , H = f ( [ "data" , "types" ] , { } ) , id = f ( [ "data" , "regions" ] , { } ) , we = f ( [ "data" , "colors" ] , { } ) , fa = f ( [ "data" , "selection" , "enabled" ] , ! 1 ) , pa = f ( [ "data" , "selection" , "grouped" ] , ! 1 ) , ga = f ( [ "data" ,
"selection" , "isselectable" ] , function ( ) { return ! 0 } ) , za = f ( [ "subchart" , "show" ] , ! 1 ) , Ab = za ? f ( [ "subchart" , "size" , "height" ] , 60 ) : 0 , xe = f ( [ "color" , "pattern" ] , null ) , Ba = f ( [ "legend" , "show" ] , ! 0 ) , Ta = f ( [ "legend" , "item" , "width" ] , 80 ) , ve = f ( [ "legend" , "item" , "onclick" ] , function ( ) { } ) , jd = f ( [ "axis" , "x" , "type" ] , "indexed" ) , Fa = f ( [ "axis" , "x" , "categories" ] , [ ] ) , qd = f ( [ "axis" , "x" , "tick" , "centered" ] , ! 1 ) , lb = f ( [ "axis" , "x" , "tick" , "format" ] , null ) , vb = f ( [ "axis" , "x" , "default" ] , null ) , ge = f ( [ "axis" , "x" , "label" ] , null ) , zd = f ( [ "axis" , "y" , "max" ] ,
null ) , xd = f ( [ "axis" , "y" , "min" ] , null ) , Bd = f ( [ "axis" , "y" , "center" ] , null ) , he = f ( [ "axis" , "y" , "label" ] , null ) , ab = f ( [ "axis" , "y" , "inner" ] , ! 1 ) , be = f ( [ "axis" , "y" , "tick" , "format" ] , function ( a ) { return a } ) , Ga = f ( [ "axis" , "y" , "padding" ] , null ) , ae = f ( [ "axis" , "y" , "ticks" ] , 10 ) , Bb = f ( [ "axis" , "y2" , "show" ] , ! 1 ) , yd = f ( [ "axis" , "y2" , "max" ] , null ) , wd = f ( [ "axis" , "y2" , "min" ] , null ) , Ad = f ( [ "axis" , "y2" , "center" ] , null ) , cb = f ( [ "axis" , "y2" , "inner" ] , ! 1 ) , de = f ( [ "axis" , "y2" , "tick" , "format" ] , function ( a ) { return a } ) , Ha = f ( [ "axis" , "y2" , "padding" ] , null ) ,
ce = f ( [ "axis" , "y2" , "ticks" ] , 10 ) , g = f ( [ "axis" , "rotated" ] , ! 1 ) , Xc = f ( [ "grid" , "x" , "show" ] , ! 1 ) , qe = f ( [ "grid" , "x" , "type" ] , "tick" ) , Xb = f ( [ "grid" , "x" , "lines" ] , null ) , Yc = f ( [ "grid" , "y" , "show" ] , ! 1 ) , Yb = f ( [ "grid" , "y" , "lines" ] , null ) , Ub = f ( [ "point" , "show" ] , ! 0 ) ? f ( [ "point" , "r" ] , 2.5 ) : 0 , ie = f ( [ "point" , "focus" , "line" , "enabled" ] , ! 0 ) , Zb = f ( [ "point" , "focus" , "expand" , "enabled" ] , ! 0 ) , $b = f ( [ "point" , "focus" , "expand" , "r" ] , Zb ? 4 : Ub ) , Pa = f ( [ "point" , "focus" , "select" , "r" ] , 8 ) , pe = f ( [ "point" , "onclick" ] , function ( ) { } ) , Xd = f ( [ "point" , "onselected" ] ,
function ( ) { } ) , Yd = f ( [ "point" , "onunselected" ] , function ( ) { } ) , Q = f ( [ "regions" ] , [ ] ) , Kc = f ( [ "tooltip" , "contents" ] , function ( a ) { var b = "<table class='-tooltip'><tr><th colspan='2'>" + ic ( ) ( a [ 0 ] . x ) + "</th></tr>" , c , d , f ; for ( c = 0 ; c < a . length ; c ++ ) a [ c ] && ( a [ c ] . value || 0 === a [ c ] . value ) && ( d = r ( a [ c ] . value ) ? ( Math . round ( 100 * a [ c ] . value ) / 100 ) . toFixed ( 2 ) : "-" , f = a [ c ] . name , b += "<tr class='-tooltip-name-" + a [ c ] . id + "'><td class='name'><span style='background-color:" + K ( a [ c ] . id ) + "'></span>" + f + "</td><td class='value'>" + d + "</td></tr>" ) ; return b +
"</table>" } ) , ke = f ( [ "tooltip" , "init" , "show" ] , ! 1 ) , Ca = f ( [ "tooltip" , "init" , "x" ] , 0 ) , $c = f ( [ "tooltip" , "init" , "position" ] , { top : "0px" , left : "50px" } ) , Wb = sa . replace ( "#" , "" ) + "-clip" , Qa = "url(#" + Wb + ")" , B = "timeseries" === jd , ea = "categorized" === jd , Mb = ! B && ( na || $ ) , bc = null , Ra = ! 1 , ac = ! 1 , la = Ba ? 40 : 0 , K = function ( a , b ) { var c = [ ] , d = null !== b ? b : "#1f77b4 #ff7f0e #2ca02c #d62728 #9467bd #8c564b #e377c2 #7f7f7f #bcbd22 #17becf" . split ( " " ) ; return function ( b ) { if ( b in a ) return a [ b ] ; - 1 === c . indexOf ( b ) && c . push ( b ) ; return d [ c . indexOf ( b ) % d . length ] } } ( we ,
xe ) , rd = function ( ) { var a = [ [ d . time . format ( "%Y/%-m/%-d" ) , function ( ) { return ! 0 } ] , [ d . time . format ( "%-m/%-d" ) , function ( a ) { return a . getMonth ( ) } ] , [ d . time . format ( "%-m/%-d" ) , function ( a ) { return 1 !== a . getDate ( ) } ] , [ d . time . format ( "%-m/%-d" ) , function ( a ) { return a . getDay ( ) && 1 !== a . getDate ( ) } ] , [ d . time . format ( "%I %p" ) , function ( a ) { return a . getHours ( ) } ] , [ d . time . format ( "%I:%M" ) , function ( a ) { return a . getMinutes ( ) } ] , [ d . time . format ( ":%S" ) , function ( a ) { return a . getSeconds ( ) } ] , [ d . time . format ( ".%L" ) , function ( a ) { return a . getMilliseconds ( ) } ] ] ;
return function ( b ) { for ( var c = a . length - 1 , d = a [ c ] ; ! d [ 1 ] ( b ) ; ) d = a [ -- c ] ; return d [ 0 ] ( b ) } } ( ) , q , Cb , s , db , zb , ra , eb , Db , kb , mc , nc , Kb , Eb , Fb , Gb , Hb , Ib , Jb , m , z , Z , V , hb , ib , J , ua , jb , gb , md = g ? "left" : "bottom" , nd = g ? ab ? "top" : "bottom" : ab ? "right" : "left" , od = g ? cb ? "bottom" : "top" : cb ? "left" : "right" , pd = g ? "left" : "bottom" , M = { main : function ( ) { return "translate(" + A + "," + u + ")" } , context : function ( ) { return "translate(" + Ea + "," + Da + ")" } , legend : function ( ) { return "translate(" + gc + "," + fc + ")" } , y2 : function ( ) { return "translate(" + ( g ? 0 : q ) + "," + ( g ? 10 : 0 ) + ")" } ,
x : function ( ) { return "translate(0," + s + ")" } , subx : function ( ) { return "translate(0," + ( g ? 0 : db ) + ")" } , arc : function ( ) { return "translate(" + q / 2 + "," + s / 2 + ")" } } , kc = 40 , jc = 20 ; Kb = d . layout . pie ( ) . value ( function ( a ) { return a . values . reduce ( function ( a , c ) { return a + c . value } , 0 ) } ) ; var re = function ( ) { var a = d . svg . line ( ) . x ( g ? function ( a ) { return w ( a . id ) ( a . value ) } : va ) . y ( g ? va : function ( a ) { return w ( a . id ) ( a . value ) } ) ; return function ( b ) { var c = Rb ( b . values ) , d ; if ( Ob ( b ) ) return Nc ( b ) ? a . interpolate ( "cardinal" ) : a . interpolate ( "linear" ) , id [ b . id ] ? $d ( c ,
m , w ( b . id ) , id [ b . id ] ) : a ( c ) ; d = m ( c [ 0 ] . x ) ; b = w ( b . id ) ( c [ 0 ] . value ) ; return g ? "M " + b + " " + d : "M " + d + " " + b } } ( ) , se = function ( ) { var a ; a = g ? d . svg . area ( ) . x0 ( function ( a ) { return w ( a . id ) ( 0 ) } ) . x1 ( function ( a ) { return w ( a . id ) ( a . value ) } ) . y ( va ) : d . svg . area ( ) . x ( va ) . y0 ( function ( a ) { return w ( a . id ) ( 0 ) } ) . y1 ( function ( a ) { return w ( a . id ) ( a . value ) } ) ; return function ( b ) { var c = Rb ( b . values ) , d ; if ( Ia ( [ b ] , "area" ) || Ia ( [ b ] , "area-spline" ) ) return Nc ( b ) ? a . interpolate ( "cardinal" ) : a . interpolate ( "linear" ) , a ( c ) ; d = m ( c [ 0 ] . x ) ; b = w ( b . id ) ( c [ 0 ] . value ) ; return g ?
"M " + b + " " + d : "M " + d + " " + b } } ( ) , te = function ( ) { var a = d . svg . line ( ) . x ( g ? function ( a ) { return F ( a . id ) ( a . value ) } : Ec ) . y ( g ? Ec : function ( a ) { return F ( a . id ) ( a . value ) } ) ; return function ( b ) { var c = Rb ( b . values ) ; return Ob ( b ) ? a ( c ) : "M " + V ( c [ 0 ] . x ) + " " + F ( b . id ) ( c [ 0 ] . value ) } } ( ) , L = d . svg . brush ( ) . on ( "brush" , function ( ) { I ( { withTransition : ! 1 , withY : ! 1 , withSubchart : ! 1 , withUpdateXDomain : ! 0 } ) } ) , D = d . behavior . zoom ( ) . on ( "zoomstart" , function ( ) { D . altDomain = d . event . sourceEvent . altKey ? m . orgDomain ( ) : null } ) . on ( "zoom" , oa ? ue : null ) ; L . update = function ( ) { E &&
E . select ( ".x.brush" ) . call ( this ) ; return this } ; L . scale = function ( a ) { return g ? this . y ( a ) : this . x ( a ) } ; D . scale = function ( a ) { return g ? this . y ( a ) : this . x ( a ) } ; D . orgScaleExtent = function ( ) { var a = hd ? hd : [ 1 , 10 ] ; return [ a [ 0 ] , Math . max ( fb ( ) / a [ 1 ] , a [ 1 ] ) ] } ; D . updateScaleExtent = function ( ) { var a = ta ( m . orgDomain ( ) ) / ta ( U ) , b = this . orgScaleExtent ( ) ; this . scaleExtent ( [ b [ 0 ] * a , b [ 1 ] * a ] ) ; return this } ; var n , ub , l , E , Aa , W , tb , U ; h . focus = function ( a ) { var b = n . selectAll ( Ua ( a ) ) , c = b . filter ( dc ) , b = b . filter ( ec ) ; h . defocus ( ) ; c . classed ( "focused" , ! 0 ) . transition ( ) . duration ( 100 ) . style ( "opacity" ,
1 ) ; b . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; C ( h . data . targets ) && Ya ( a , ! 0 ) } ; h . defocus = function ( a ) { var b = n . selectAll ( Ua ( a ) ) , c = b . filter ( dc ) , b = b . filter ( ec ) ; c . classed ( "focused" , ! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) ; b . transition ( ) . duration ( 100 ) . style ( "opacity" , 0.3 ) ; C ( h . data . targets ) && xb ( a ) } ; h . revert = function ( a ) { var b = n . selectAll ( Ua ( a ) ) , c = b . filter ( dc ) , b = b . filter ( ec ) ; c . classed ( "focused" , ! 1 ) . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; b . transition ( ) . duration ( 100 ) . style ( "opacity" , 1 ) ; C ( h . data . targets ) &&
xb ( a ) } ; h . show = function ( a ) { n . selectAll ( Ua ( a ) ) . transition ( ) . style ( "opacity" , 1 ) } ; h . hide = function ( a ) { n . selectAll ( Ua ( a ) ) . transition ( ) . style ( "opacity" , 0 ) } ; h . unzoom = function ( ) { L . clear ( ) . update ( ) ; I ( { withUpdateXDomain : ! 0 } ) } ; h . load = function ( a ) { "function" !== typeof a . done && ( a . done = function ( ) { } ) ; a . xs && Id ( a . xs ) ; "categories" in a && ea && ( Fa = a . categories , J . categories ( Fa ) ) ; if ( "cacheIds" in a && Ed ( a . cacheIds ) ) Sa ( Fd ( a . cacheIds ) , a . done ) ; else if ( "data" in a ) Sa ( Ka ( a . data ) , a . done ) ; else if ( "url" in a ) d . csv ( a . url , function ( b , c ) { Sa ( Ka ( c ) ,
a . done ) } ) ; else if ( "rows" in a ) Sa ( Ka ( uc ( a . rows ) ) , a . done ) ; else if ( "columns" in a ) Sa ( Ka ( vc ( a . columns ) ) , a . done ) ; else throw Error ( "url or rows or columns is required." ) ; } ; h . unload = function ( a ) { h . data . targets = h . data . targets . filter ( function ( b ) { return b . id !== a } ) ; n . selectAll ( ".target-" + a ) . transition ( ) . style ( "opacity" , 0 ) . remove ( ) ; Ba && ( n . selectAll ( ".legend-item-" + a ) . remove ( ) , wb ( h . data . targets ) ) ; 0 < h . data . targets . length && I ( { withUpdateOrgXDomain : ! 0 , withUpdateXDomain : ! 0 } ) } ; h . selected = function ( a ) { a = r ( a ) ? "-" + a : "" ; return d . merge ( l . selectAll ( ".-shapes" +
a ) . selectAll ( ".-shape" ) . filter ( function ( ) { return d . select ( this ) . classed ( ha ) } ) . map ( function ( a ) { return a . map ( function ( a ) { return a . _ _data _ _ } ) } ) ) } ; h . select = function ( a , b , c ) { fa && l . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . each ( function ( e , f ) { var g = "circle" === this . nodeName ? Sc : Zd , h = "circle" === this . nodeName ? Qb : Uc ; 0 <= b . indexOf ( f ) ? ga ( e ) && ( pa || x ( a ) || 0 <= a . indexOf ( e . id ) ) && g ( d . select ( this ) . classed ( ha , ! 0 ) , e , f ) : r ( c ) && c && h ( d . select ( this ) . classed ( ha , ! 1 ) , e , f ) } ) } ; h . unselect = function ( a , b ) { fa && l . selectAll ( ".-shapes" ) . selectAll ( ".-shape" ) . each ( function ( c ,
e ) { var f = "circle" === this . nodeName ? Qb : Uc ; ( x ( b ) || 0 <= b . indexOf ( e ) ) && ga ( c ) && ( pa || x ( a ) || 0 <= a . indexOf ( c . id ) ) && f ( d . select ( this ) . classed ( ha , ! 1 ) , c , e ) } ) } ; h . toLine = function ( a ) { Oa ( a , "line" ) ; I ( ) } ; h . toSpline = function ( a ) { Oa ( a , "spline" ) ; I ( ) } ; h . toBar = function ( a ) { Oa ( a , "bar" ) ; I ( ) } ; h . toScatter = function ( a ) { Oa ( a , "scatter" ) ; I ( ) } ; h . groups = function ( a ) { if ( x ( a ) ) return t ; t = a ; I ( ) ; return t } ; h . regions = function ( a ) { if ( x ( a ) ) return Q ; Q = a ; I ( ) ; return Q } ; h . regions . add = function ( a ) { if ( x ( a ) ) return Q ; Q = Q . concat ( a ) ; I ( ) ; return Q } ; h . regions . remove =
function ( a , b ) { var c = [ ] . concat ( a ) ; b = r ( b ) ? b : { } ; c . forEach ( function ( a ) { var c = n . selectAll ( "." + a ) ; r ( b . duration ) && ( c = c . transition ( ) . duration ( b . duration ) . style ( "fill-opacity" , 0 ) ) ; c . remove ( ) ; Q = Q . filter ( function ( b ) { return 0 > b . classes . indexOf ( a ) } ) } ) ; return Q } ; h . data . get = function ( a ) { a = h . data . getAsTarget ( a ) ; return r ( a ) ? a . values . map ( function ( a ) { return a . value } ) : void 0 } ; h . data . getAsTarget = function ( a ) { var b = nb ( function ( b ) { return b . id === a } ) ; return 0 < b . length ? b [ 0 ] : void 0 } ; h . destroy = function ( ) { h . data . targets = void 0 ;
h . data . x = { } ; tb . html ( "" ) ; P . onresize = null } ; if ( "url" in ba . data ) d . csv ( ba . data . url , function ( a , b ) { Vb ( b ) } ) ; else if ( "rows" in ba . data ) Vb ( uc ( ba . data . rows ) ) ; else if ( "columns" in ba . data ) Vb ( vc ( ba . data . columns ) ) ; else throw Error ( "url or rows or columns is required." ) ; return h } } ) ( window ) ;