2015-05-12 17:02:51 +02:00
/*! jQuery v1.11.2 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */
! function ( a , b ) { "object" == typeof module && "object" == typeof module . exports ? module . exports = a . document ? b ( a , ! 0 ) : function ( a ) { if ( ! a . document ) throw new Error ( "jQuery requires a window with a document" ) ; return b ( a ) } : b ( a ) } ( "undefined" != typeof window ? window : this , function ( a , b ) { var c = [ ] , d = c . slice , e = c . concat , f = c . push , g = c . indexOf , h = { } , i = h . toString , j = h . hasOwnProperty , k = { } , l = "1.11.2" , m = function ( a , b ) { return new m . fn . init ( a , b ) } , n = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g , o = /^-ms-/ , p = /-([\da-z])/gi , q = function ( a , b ) { return b . toUpperCase ( ) } ; m . fn = m . prototype = { jquery : l , constructor : m , selector : "" , length : 0 , toArray : function ( ) { return d . call ( this ) } , get : function ( a ) { return null != a ? 0 > a ? this [ a + this . length ] : this [ a ] : d . call ( this ) } , pushStack : function ( a ) { var b = m . merge ( this . constructor ( ) , a ) ; return b . prevObject = this , b . context = this . context , b } , each : function ( a , b ) { return m . each ( this , a , b ) } , map : function ( a ) { return this . pushStack ( m . map ( this , function ( b , c ) { return a . call ( b , c , b ) } ) ) } , slice : function ( ) { return this . pushStack ( d . apply ( this , arguments ) ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , eq : function ( a ) { var b = this . length , c = + a + ( 0 > a ? b : 0 ) ; return this . pushStack ( c >= 0 && b > c ? [ this [ c ] ] : [ ] ) } , end : function ( ) { return this . prevObject || this . constructor ( null ) } , push : f , sort : c . sort , splice : c . splice } , m . extend = m . fn . extend = function ( ) { var a , b , c , d , e , f , g = arguments [ 0 ] || { } , h = 1 , i = arguments . length , j = ! 1 ; for ( "boolean" == typeof g && ( j = g , g = arguments [ h ] || { } , h ++ ) , "object" == typeof g || m . isFunction ( g ) || ( g = { } ) , h === i && ( g = this , h -- ) ; i > h ; h ++ ) if ( null != ( e = arguments [ h ] ) ) for ( d in e ) a = g [ d ] , c = e [ d ] , g !== c && ( j && c && ( m . isPlainObject ( c ) || ( b = m . isArray ( c ) ) ) ? ( b ? ( b = ! 1 , f = a && m . isArray ( a ) ? a : [ ] ) : f = a && m . isPlainObject ( a ) ? a : { } , g [ d ] = m . extend ( j , f , c ) ) : void 0 !== c && ( g [ d ] = c ) ) ; return g } , m . extend ( { expando : "jQuery" + ( l + Math . random ( ) ) . replace ( /\D/g , "" ) , isReady : ! 0 , error : function ( a ) { throw new Error ( a ) } , noop : function ( ) { } , isFunction : function ( a ) { return "function" === m . type ( a ) } , isArray : Array . isArray || function ( a ) { return "array" === m . type ( a ) } , isWindow : function ( a ) { return null != a && a == a . window } , isNumeric : function ( a ) { return ! m . isArray ( a ) && a - parseFloat ( a ) + 1 >= 0 } , isEmptyObject : function ( a ) { var b ; for ( b in a ) return ! 1 ; return ! 0 } , isPlainObject : function ( a ) { var b ; if ( ! a || "object" !== m . type ( a ) || a . nodeType || m . isWindow ( a ) ) return ! 1 ; try { if ( a . constructor && ! j . call ( a , "constructor" ) && ! j . call ( a . constructor . prototype , "isPrototypeOf" ) ) return ! 1 } catch ( c ) { return ! 1 } if ( k . ownLast ) for ( b in a ) return j . call ( a , b ) ; for ( b in a ) ; return void 0 === b || j . call ( a , b ) } , type : function ( a ) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? h [ i . call ( a ) ] || "object" : typeof a } , globalEval : function ( b ) { b && m . trim ( b ) && ( a . execScript || function ( b ) { a . eval . call ( a , b ) } ) ( b ) } , camelCase : function ( a ) { return a . replace ( o , "ms-" ) . replace ( p , q ) } , nodeName : function ( a , b ) { return a . nodeName && a . nodeName . toLowerCase ( ) === b . toLowerCase ( ) } , each : function ( a , b , c ) { var d , e = 0 , f = a . length , g = r ( a ) ; if ( c ) { if ( g ) { for ( ; f > e ; e ++ ) if ( d = b . apply ( a [ e ] , c ) , d === ! 1 ) break } else for ( e in a ) if ( d = b . apply ( a [ e ] , c ) , d === ! 1 ) break } else if ( g ) { for ( ; f > e ; e ++ ) if ( d = b . call ( a [ e ] , e , a [ e ] ) , d === ! 1 ) break } else for ( e in a ) if ( d = b . call ( a [ e ] , e , a [ e ] ) , d === ! 1 ) break ; return a } , trim : function ( a ) { return null == a ? "" : ( a + "" ) . replace ( n , "" ) } , makeArray : function ( a , b ) { var c = b || [ ] ; return null != a && ( r ( Object ( a ) ) ? m . merge ( c , "string" == typeof a ? [ a ] : a ) : f . call ( c , a ) ) , c } , inArray : function ( a , b , c ) { var d ; if ( b ) { if ( g ) return g . call ( b , a , c ) ; for ( d = b . length , c = c ? 0 > c ? Math . max ( 0 , d + c ) : c : 0 ; d > c ; c ++ ) if ( c in b && b [ c ] === a ) return c } return - 1 } , merge : function ( a , b ) { var c = + b . length , d = 0 , e = a . length ; while ( c > d ) a [ e ++ ] = b [ d ++ ] ; if ( c !== c ) while ( void 0 !== b [ d ] ) a [ e ++ ] = b [ d ++ ] ; return a . length = e , a } , grep : function ( a , b , c ) { for ( var d , e = [ ] , f = 0 , g = a . length , h = ! c ; g > f ; f ++ ) d = ! b ( a [ f ] , f ) , d !== h && e . push ( a [ f ] ) ; return e } , map : function ( a , b , c ) { var d , f = 0 , g = a . length , h = r ( a ) , i = [ ] ; if ( h ) for ( ; g > f ; f ++ ) d = b ( a [ f ] , f , c ) , null != d && i . push ( d ) ; else for ( f in a ) d = b ( a [ f ] , f , c ) , null != d && i . push ( d ) ; return e . apply ( [ ] , i ) } , guid : 1 , proxy : function ( a , b ) { var c , e , f ; return "string" == typeof b && ( f = a [ b ] , b = a , a = f ) , m . isFunction ( a ) ? ( c = d . call ( arguments , 2 ) , e = function ( ) { return a . apply ( b || this , c . concat ( d . call ( arguments ) ) ) } , e . guid = a . guid = a . guid || m . guid ++ , e ) : void 0 } , now : function ( ) { return + new Date } , support : k } ) , m . each (
return ! 0 } function Q ( a , b , d , e ) { if ( m . acceptData ( a ) ) { var f , g , h = m . expando , i = a . nodeType , j = i ? m . cache : a , k = i ? a [ h ] : a [ h ] && h ; if ( k && j [ k ] && ( e || j [ k ] . data ) || void 0 !== d || "string" != typeof b ) return k || ( k = i ? a [ h ] = c . pop ( ) || m . guid ++ : h ) , j [ k ] || ( j [ k ] = i ? { } : { toJSON : m . noop } ) , ( "object" == typeof b || "function" == typeof b ) && ( e ? j [ k ] = m . extend ( j [ k ] , b ) : j [ k ] . data = m . extend ( j [ k ] . data , b ) ) , g = j [ k ] , e || ( g . data || ( g . data = { } ) , g = g . data ) , void 0 !== d && ( g [ m . camelCase ( b ) ] = d ) , "string" == typeof b ? ( f = g [ b ] , null == f && ( f = g [ m . camelCase ( b ) ] ) ) : f = g , f } } function R ( a , b , c ) { if ( m . acceptData ( a ) ) { var d , e , f = a . nodeType , g = f ? m . cache : a , h = f ? a [ m . expando ] : m . expando ; if ( g [ h ] ) { if ( b && ( d = c ? g [ h ] : g [ h ] . data ) ) { m . isArray ( b ) ? b = b . concat ( m . map ( b , m . camelCase ) ) : b in d ? b = [ b ] : ( b = m . camelCase ( b ) , b = b in d ? [ b ] : b . split ( " " ) ) , e = b . length ; while ( e -- ) delete d [ b [ e ] ] ; if ( c ? ! P ( d ) : ! m . isEmptyObject ( d ) ) return } ( c || ( delete g [ h ] . data , P ( g [ h ] ) ) ) && ( f ? m . cleanData ( [ a ] , ! 0 ) : k . deleteExpando || g != g . window ? delete g [ h ] : g [ h ] = null ) } } } m . extend ( { cache : { } , noData : { "applet " : ! 0 , "embed " : ! 0 , "object " : "clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" } , hasData : function ( a ) { return a = a . nodeType ? m . cache [ a [ m . expando ] ] : a [ m . expando ] , ! ! a && ! P ( a ) } , data : function ( a , b , c ) { return Q ( a , b , c ) } , removeData : function ( a , b ) { return R ( a , b ) } , _data : function ( a , b , c ) { return Q ( a , b , c , ! 0 ) } , _removeData : function ( a , b ) { return R ( a , b , ! 0 ) } } ) , m . fn . extend ( { data : function ( a , b ) { var c , d , e , f = this [ 0 ] , g = f && f . attributes ; if ( void 0 === a ) { if ( this . length && ( e = m . data ( f ) , 1 === f . nodeType && ! m . _data ( f , "parsedAttrs" ) ) ) { c = g . length ; while ( c -- ) g [ c ] && ( d = g [ c ] . name , 0 === d . indexOf ( "data-" ) && ( d = m . camelCase ( d . slice ( 5 ) ) , O ( f , d , e [ d ] ) ) ) ; m . _data ( f , "parsedAttrs" , ! 0 ) } return e } return "object" == typeof a ? this . each ( function ( ) { m . data ( this , a ) } ) : arguments . length > 1 ? this . each ( function ( ) { m . data ( this , a , b ) } ) : f ? O ( f , a , m . data ( f , a ) ) : void 0 } , removeData : function ( a ) { return this . each ( function ( ) { m . removeData ( this , a ) } ) } } ) , m . extend ( { queue : function ( a , b , c ) { var d ; return a ? ( b = ( b || "fx" ) + "queue" , d = m . _data ( a , b ) , c && ( ! d || m . isArray ( c ) ? d = m . _data ( a , b , m . makeArray ( c ) ) : d . push ( c ) ) , d || [ ] ) : void 0 } , dequeue : function ( a , b ) { b = b || "fx" ; var c = m . queue ( a , b ) , d = c . length , e = c . shift ( ) , f = m . _queueHooks ( a , b ) , g = function ( ) { m . dequeue ( a , b ) } ; "inprogress" === e && ( e = c . shift ( ) , d -- ) , e && ( "fx" === b && c . unshift ( "inprogress" ) , delete f . stop , e . call ( a , g , f ) ) , ! d && f && f . empty . fire ( ) } , _queueHooks : function ( a , b ) { var c = b + "queueHooks" ; return m . _data ( a , c ) || m . _data ( a , c , { empty : m . Callbacks ( "once memory" ) . add ( function ( ) { m . _removeData ( a , b + "queue" ) , m . _removeData ( a , c ) } ) } ) } } ) , m . fn . extend ( { queue : function ( a , b ) { var c = 2 ; return "string" != typeof a && ( b = a , a = "fx" , c -- ) , arguments . length < c ? m . queue ( this [ 0 ] , a ) : void 0 === b ? this : this . each ( function ( ) { var c = m . queue ( this , a , b ) ; m . _queueHooks ( this , a ) , "fx" === a && "inprogress" !== c [ 0 ] && m . dequeue ( this , a ) } ) } , dequeue : function ( a ) { return this . each ( function ( ) { m . dequeue ( this , a ) } ) } , clearQueue : function ( a ) { return this . queue ( a || "fx" , [ ] ) } , promise : function ( a , b ) { var c , d = 1 , e = m . Deferred ( ) , f = this , g = this . length , h = function ( ) { -- d || e . resolveWith ( f , [ f ] ) } ; "string" != typeof a && ( b = a , a = void 0 ) , a = a || "fx" ; while ( g -- ) c = m . _data ( f [ g ] , a + "queueHooks" ) , c && c . empty && ( d ++ , c . empty . add ( h ) ) ; return h ( ) , e . promise ( b ) } } ) ; var S = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , T = [ "Top" , "Right" , "Bottom" , "Left" ] , U = function ( a , b ) { return a = b || a , "none" === m . css ( a , "display" ) || ! m . contains ( a . ownerDocument , a ) } , V = m . access = function ( a , b , c , d , e , f , g ) { var h = 0 , i = a . length , j = null == c ; if ( "object" === m . type ( c ) ) { e = ! 0 ; for ( h in c ) m . access ( a , b , h , c [ h ] , ! 0 , f , g ) } else if ( void 0 !== d && ( e = ! 0 , m . isFunction ( d ) || ( g = ! 0 ) , j && ( g ? ( b . call ( a , d ) , b = null ) : ( j = b , b = function ( a , b , c ) { return j . call ( m ( a ) , c ) } ) ) , b ) ) for ( ; i > h ; h ++ ) b ( a [ h ] , c , g ? d : d . call ( a [ h ] , h , b ( a [ h ] , c ) ) ) ; return e ? a : j ? b . call ( a ) : i ? b ( a [ 0 ] , c ) : f } , W = /^(?:checkbox|radio)$/i ; ! function ( ) { var a = y . createElement ( "input" ) , b = y . createElement ( "div" ) , c = y . createDocumentFragment ( ) ; if ( b . innerHTML = " <link/><table></table><a href='/a'>a</a><input type='checkbox'/>" , k . leadingWhitespace = 3 === b . firstChild . nodeType , k . tbody = ! b . getElementsByTagName ( "tbody" ) . length , k . htmlSerialize = ! ! b . getElementsByTagName ( "link" ) . length , k . html5Clone = "<:nav></:nav>" !== y . createElement ( "nav" ) . cloneNode ( ! 0 ) . outerHTML , a . type = "checkbox" , a . checked = ! 0 , c . appendChild ( a ) , k . appendChecked = a . checked , b . innerHTML = " < textarea > x < / t e x
} m . Tween = Zb , Zb . prototype = { constructor : Zb , init : function ( a , b , c , d , e , f ) { this . elem = a , this . prop = c , this . easing = e || "swing" , this . options = b , this . start = this . now = this . cur ( ) , this . end = d , this . unit = f || ( m . cssNumber [ c ] ? "" : "px" ) } , cur : function ( ) { var a = Zb . propHooks [ this . prop ] ; return a && a . get ? a . get ( this ) : Zb . propHooks . _default . get ( this ) } , run : function ( a ) { var b , c = Zb . propHooks [ this . prop ] ; return this . pos = b = this . options . duration ? m . easing [ this . easing ] ( a , this . options . duration * a , 0 , 1 , this . options . duration ) : a , this . now = ( this . end - this . start ) * b + this . start , this . options . step && this . options . step . call ( this . elem , this . now , this ) , c && c . set ? c . set ( this ) : Zb . propHooks . _default . set ( this ) , this } } , Zb . prototype . init . prototype = Zb . prototype , Zb . propHooks = { _default : { get : function ( a ) { var b ; return null == a . elem [ a . prop ] || a . elem . style && null != a . elem . style [ a . prop ] ? ( b = m . css ( a . elem , a . prop , "" ) , b && "auto" !== b ? b : 0 ) : a . elem [ a . prop ] } , set : function ( a ) { m . fx . step [ a . prop ] ? m . fx . step [ a . prop ] ( a ) : a . elem . style && ( null != a . elem . style [ m . cssProps [ a . prop ] ] || m . cssHooks [ a . prop ] ) ? m . style ( a . elem , a . prop , a . now + a . unit ) : a . elem [ a . prop ] = a . now } } } , Zb . propHooks . scrollTop = Zb . propHooks . scrollLeft = { set : function ( a ) { a . elem . nodeType && a . elem . parentNode && ( a . elem [ a . prop ] = a . now ) } } , m . easing = { linear : function ( a ) { return a } , swing : function ( a ) { return . 5 - Math . cos ( a * Math . PI ) / 2 } } , m . fx = Zb . prototype . init , m . fx . step = { } ; var $b , _b , ac = /^(?:toggle|show|hide)$/ , bc = new RegExp ( "^(?:([+-])=|)(" + S + ")([a-z%]*)$" , "i" ) , cc = /queueHooks$/ , dc = [ ic ] , ec = { "*" : [ function ( a , b ) { var c = this . createTween ( a , b ) , d = c . cur ( ) , e = bc . exec ( b ) , f = e && e [ 3 ] || ( m . cssNumber [ a ] ? "" : "px" ) , g = ( m . cssNumber [ a ] || "px" !== f && + d ) && bc . exec ( m . css ( c . elem , a ) ) , h = 1 , i = 20 ; if ( g && g [ 3 ] !== f ) { f = f || g [ 3 ] , e = e || [ ] , g = + d || 1 ; do h = h || ".5" , g /= h , m . style ( c . elem , a , g + f ) ; while ( h !== ( h = c . cur ( ) / d ) && 1 !== h && -- i ) } return e && ( g = c . start = + g || + d || 0 , c . unit = f , c . end = e [ 1 ] ? g + ( e [ 1 ] + 1 ) * e [ 2 ] : + e [ 2 ] ) , c } ] } ; function fc ( ) { return setTimeout ( function ( ) { $b = void 0 } ) , $b = m . now ( ) } function gc ( a , b ) { var c , d = { height : a } , e = 0 ; for ( b = b ? 1 : 0 ; 4 > e ; e += 2 - b ) c = T [ e ] , d [ "margin" + c ] = d [ "padding" + c ] = a ; return b && ( d . opacity = d . width = a ) , d } function hc ( a , b , c ) { for ( var d , e = ( ec [ b ] || [ ] ) . concat ( ec [ "*" ] ) , f = 0 , g = e . length ; g > f ; f ++ ) if ( d = e [ f ] . call ( c , b , a ) ) return d } function ic ( a , b , c ) { var d , e , f , g , h , i , j , l , n = this , o = { } , p = a . style , q = a . nodeType && U ( a ) , r = m . _data ( a , "fxshow" ) ; c . queue || ( h = m . _queueHooks ( a , "fx" ) , null == h . unqueued && ( h . unqueued = 0 , i = h . empty . fire , h . empty . fire = function ( ) { h . unqueued || i ( ) } ) , h . unqueued ++ , n . always ( function ( ) { n . always ( function ( ) { h . unqueued -- , m . queue ( a , "fx" ) . length || h . empty . fire ( ) } ) } ) ) , 1 === a . nodeType && ( "height" in b || "width" in b ) && ( c . overflow = [ p . overflow , p . overflowX , p . overflowY ] , j = m . css ( a , "display" ) , l = "none" === j ? m . _data ( a , "olddisplay" ) || Fb ( a . nodeName ) : j , "inline" === l && "none" === m . css ( a , "float" ) && ( k . inlineBlockNeedsLayout && "inline" !== Fb ( a . nodeName ) ? p . zoom = 1 : p . display = "inline-block" ) ) , c . overflow && ( p . overflow = "hidden" , k . shrinkWrapBlocks ( ) || n . always ( function ( ) { p . overflow = c . overflow [ 0 ] , p . overflowX = c . overflow [ 1 ] , p . overflowY = c . overflow [ 2 ] } ) ) ; for ( d in b ) if ( e = b [ d ] , ac . exec ( e ) ) { if ( delete b [ d ] , f = f || "toggle" === e , e === ( q ? "hide" : "show" ) ) { if ( "show" !== e || ! r || void 0 === r [ d ] ) continue ; q = ! 0 } o [ d ] = r && r [ d ] || m . style ( a , d ) } else j = void 0 ; if ( m . isEmptyObject ( o ) ) "inline" === ( "none" === j ? Fb ( a . nodeName ) : j ) && ( p . display = j ) ; else { r ? "hidden" in r && ( q = r . hidden ) : r = m . _data ( a , "fxshow" , { } ) , f && ( r . hidden = ! q ) , q ? m ( a ) . show ( ) : n . done ( function ( ) { m ( a ) . hide ( ) } ) , n . done ( function ( ) { var b ; m . _removeData ( a , "fxshow" ) ; for ( b in o ) m . style ( a , b , o [ b ] ) } ) ; for ( d in o ) g = hc ( q ? r [ d ] : 0 , d , n ) , d in r || ( r [ d ] = g . start , q && ( g . end = g . start , g . start = "width" === d || "height" === d ? 1 : 0 ) ) } } function jc ( a , b ) { var c , d , e , f , g ; for ( c in a ) if ( d = m . camelCase ( c ) , e = b [ d ] , f = a [ c ] , m . isArray ( f ) && ( e = f [ 1 ] , f = a [ c ] = f [ 0 ] ) , c !== d && ( a [ d ] = f , delete a [ c ] ) , g = m . cssHooks [ d ] , g && "expand" in g ) { f = g . expand ( f ) , delete a [ d ] ; for ( c in f ) c in a || ( a [ c ] = f [ c ] , b [ c ] = e ) } else b [ d ] = e } function kc ( a , b , c ) { var d , e , f = 0 , g = dc . length , h = m . Deferred ( ) . always ( function ( ) { delete i . elem } ) , i = function ( ) { if ( e ) return ! 1 ; for ( var b = $b || fc ( ) , c = Math . max ( 0 , j . startTime + j . duration - b ) , d = c / j . duration || 0 , f = 1 - d , g = 0 , i = j . tweens . length ; i > g ; g ++ ) j . tweens [ g ] . run ( f ) ; return h . notifyWith ( a , [ j , f , c ] ) , 1 > f && i ? c : ( h . resolveWith ( a , [ j ] ) , ! 1 ) } , j = h . promise ( { elem : a , props : m . extend ( { } , b ) , opts : m . exten
/ * !
* Bootstrap v3 . 3.1 ( http : //getbootstrap.com)
* Copyright 2011 - 2014 Twitter , Inc .
* Licensed under MIT ( https : //github.com/twbs/bootstrap/blob/master/LICENSE)
* /
/ * !
* Generated using the Bootstrap Customizer ( http : //getbootstrap.com/customize/?id=cf8e15f9354657212a08)
* Config saved to config . json and https : //gist.github.com/cf8e15f9354657212a08
* /
if ( "undefined" == typeof jQuery ) throw new Error ( "Bootstrap's JavaScript requires jQuery" ) ; + function ( t ) { var e = t . fn . jquery . split ( " " ) [ 0 ] . split ( "." ) ; if ( e [ 0 ] < 2 && e [ 1 ] < 9 || 1 == e [ 0 ] && 9 == e [ 1 ] && e [ 2 ] < 1 ) throw new Error ( "Bootstrap's JavaScript requires jQuery version 1.9.1 or higher" ) } ( jQuery ) , + function ( t ) { "use strict" ; function e ( e ) { return this . each ( function ( ) { var i = t ( this ) , s = i . data ( "bs.alert" ) ; s || i . data ( "bs.alert" , s = new o ( this ) ) , "string" == typeof e && s [ e ] . call ( i ) } ) } var i = '[data-dismiss="alert"]' , o = function ( e ) { t ( e ) . on ( "click" , i , this . close ) } ; o . VERSION = "3.3.1" , o . TRANSITION _DURATION = 150 , o . prototype . close = function ( e ) { function i ( ) { a . detach ( ) . trigger ( "closed.bs.alert" ) . remove ( ) } var s = t ( this ) , n = s . attr ( "data-target" ) ; n || ( n = s . attr ( "href" ) , n = n && n . replace ( /.*(?=#[^\s]*$)/ , "" ) ) ; var a = t ( n ) ; e && e . preventDefault ( ) , a . length || ( a = s . closest ( ".alert" ) ) , a . trigger ( e = t . Event ( "close.bs.alert" ) ) , e . isDefaultPrevented ( ) || ( a . removeClass ( "in" ) , t . support . transition && a . hasClass ( "fade" ) ? a . one ( "bsTransitionEnd" , i ) . emulateTransitionEnd ( o . TRANSITION _DURATION ) : i ( ) ) } ; var s = t . fn . alert ; t . fn . alert = e , t . fn . alert . Constructor = o , t . fn . alert . noConflict = function ( ) { return t . fn . alert = s , this } , t ( document ) . on ( "click.bs.alert.data-api" , i , o . prototype . close ) } ( jQuery ) , + function ( t ) { "use strict" ; function e ( e ) { return this . each ( function ( ) { var o = t ( this ) , s = o . data ( "bs.button" ) , n = "object" == typeof e && e ; s || o . data ( "bs.button" , s = new i ( this , n ) ) , "toggle" == e ? s . toggle ( ) : e && s . setState ( e ) } ) } var i = function ( e , o ) { this . $element = t ( e ) , this . options = t . extend ( { } , i . DEFAULTS , o ) , this . isLoading = ! 1 } ; i . VERSION = "3.3.1" , i . DEFAULTS = { loadingText : "loading..." } , i . prototype . setState = function ( e ) { var i = "disabled" , o = this . $element , s = o . is ( "input" ) ? "val" : "html" , n = o . data ( ) ; e += "Text" , null == n . resetText && o . data ( "resetText" , o [ s ] ( ) ) , setTimeout ( t . proxy ( function ( ) { o [ s ] ( null == n [ e ] ? this . options [ e ] : n [ e ] ) , "loadingText" == e ? ( this . isLoading = ! 0 , o . addClass ( i ) . attr ( i , i ) ) : this . isLoading && ( this . isLoading = ! 1 , o . removeClass ( i ) . removeAttr ( i ) ) } , this ) , 0 ) } , i . prototype . toggle = function ( ) { var t = ! 0 , e = this . $element . closest ( '[data-toggle="buttons"]' ) ; if ( e . length ) { var i = this . $element . find ( "input" ) ; "radio" == i . prop ( "type" ) && ( i . prop ( "checked" ) && this . $element . hasClass ( "active" ) ? t = ! 1 : e . find ( ".active" ) . removeClass ( "active" ) ) , t && i . prop ( "checked" , ! this . $element . hasClass ( "active" ) ) . trigger ( "change" ) } else this . $element . attr ( "aria-pressed" , ! this . $element . hasClass ( "active" ) ) ; t && this . $element . toggleClass ( "active" ) } ; var o = t . fn . button ; t . fn . button = e , t . fn . button . Constructor = i , t . fn . button . noConflict = function ( ) { return t . fn . button = o , this } , t ( document ) . on ( "click.bs.button.data-api" , '[data-toggle^="button"]' , function ( i ) { var o = t ( i . target ) ; o . hasClass ( "btn" ) || ( o = o . closest ( ".btn" ) ) , e . call ( o , "toggle" ) , i . preventDefault ( ) } ) . on ( "focus.bs.button.data-api blur.bs.button.data-api" , '[data-toggle^="button"]' , function ( e ) { t ( e . target ) . closest ( ".btn" ) . toggleClass ( "focus" , /^focus(in)?$/ . test ( e . type ) ) } ) } ( jQuery ) , + function ( t ) { "use strict" ; function e ( e ) { return this . each ( function ( ) { var o = t ( this ) , s = o . data ( "bs.carousel" ) , n = t . extend ( { } , i . DEFAULTS , o . data ( ) , "object" == typeof e && e ) , a = "string" == typeof e ? e : n . slide ; s || o . data ( "bs.carousel" , s = new i ( this , n ) ) , "number" == typeof e ? s . to ( e ) : a ? s [ a ] ( ) : n . interval && s . pause ( ) . cycle ( ) } ) } var i = function ( e , i ) { this . $element = t ( e ) , this . $indicators = this . $element . find ( ".carousel-indicators" ) , this . options = i , this . paused = this . sliding = this . interval = this . $active = this . $items = null , this . options . keyboard && this . $element . on ( "keydown.bs.carousel" , t . proxy ( this . keydown , this ) ) , "hover" == this . options . pause && ! ( "ontouchstart" in document . documentElement ) && this . $element . on ( "mouseenter.bs.carousel" , t . proxy ( this . pause , this ) ) . on ( "mouseleave.bs.carousel" , t . proxy ( this . cycle , this ) ) } ; i . VERSION = "3.3.1" , i . TRANSITION _DURATION = 600 , i . DEFAULTS = { interval : 5e3 , pause : "hover" , wrap : ! 0 , keyboard : ! 0 } , i . prototype . keydown = function ( t ) { if ( ! /input|textarea/i . test ( t . target . tagName ) ) { switch ( t . which ) { case 37 : this . prev ( ) ; break ; case 39 : this . next ( ) ; break ; default : return } t . preventDefault ( ) } } , i . prototype . cycle = function ( e ) { return e || ( this . paused = ! 1 ) , this . interval && clearInterval ( this . interval ) , this . options . interval && ! this . paused && ( this . interval = setInterval (
} , t ( document ) . on ( "click.bs.collapse.data-api" , '[data-toggle="collapse"]' , function ( o ) { var s = t ( this ) ; s . attr ( "data-target" ) || o . preventDefault ( ) ; var n = e ( s ) , a = n . data ( "bs.collapse" ) , r = a ? "toggle" : t . extend ( { } , s . data ( ) , { trigger : this } ) ; i . call ( n , r ) } ) } ( jQuery ) , + function ( t ) { "use strict" ; function e ( i , o ) { var s = t . proxy ( this . process , this ) ; this . $body = t ( "body" ) , this . $scrollElement = t ( t ( i ) . is ( "body" ) ? window : i ) , this . options = t . extend ( { } , e . DEFAULTS , o ) , this . selector = ( this . options . target || "" ) + " .nav li > a" , this . offsets = [ ] , this . targets = [ ] , this . activeTarget = null , this . scrollHeight = 0 , this . $scrollElement . on ( "scroll.bs.scrollspy" , s ) , this . refresh ( ) , this . process ( ) } function i ( i ) { return this . each ( function ( ) { var o = t ( this ) , s = o . data ( "bs.scrollspy" ) , n = "object" == typeof i && i ; s || o . data ( "bs.scrollspy" , s = new e ( this , n ) ) , "string" == typeof i && s [ i ] ( ) } ) } e . VERSION = "3.3.1" , e . DEFAULTS = { offset : 10 } , e . prototype . getScrollHeight = function ( ) { return this . $scrollElement [ 0 ] . scrollHeight || Math . max ( this . $body [ 0 ] . scrollHeight , document . documentElement . scrollHeight ) } , e . prototype . refresh = function ( ) { var e = "offset" , i = 0 ; t . isWindow ( this . $scrollElement [ 0 ] ) || ( e = "position" , i = this . $scrollElement . scrollTop ( ) ) , this . offsets = [ ] , this . targets = [ ] , this . scrollHeight = this . getScrollHeight ( ) ; var o = this ; this . $body . find ( this . selector ) . map ( function ( ) { var o = t ( this ) , s = o . data ( "target" ) || o . attr ( "href" ) , n = /^#./ . test ( s ) && t ( s ) ; return n && n . length && n . is ( ":visible" ) && [ [ n [ e ] ( ) . top + i , s ] ] || null } ) . sort ( function ( t , e ) { return t [ 0 ] - e [ 0 ] } ) . each ( function ( ) { o . offsets . push ( this [ 0 ] ) , o . targets . push ( this [ 1 ] ) } ) } , e . prototype . process = function ( ) { var t , e = this . $scrollElement . scrollTop ( ) + this . options . offset , i = this . getScrollHeight ( ) , o = this . options . offset + i - this . $scrollElement . height ( ) , s = this . offsets , n = this . targets , a = this . activeTarget ; if ( this . scrollHeight != i && this . refresh ( ) , e >= o ) return a != ( t = n [ n . length - 1 ] ) && this . activate ( t ) ; if ( a && e < s [ 0 ] ) return this . activeTarget = null , this . clear ( ) ; for ( t = s . length ; t -- ; ) a != n [ t ] && e >= s [ t ] && ( ! s [ t + 1 ] || e <= s [ t + 1 ] ) && this . activate ( n [ t ] ) } , e . prototype . activate = function ( e ) { this . activeTarget = e , this . clear ( ) ; var i = this . selector + '[data-target="' + e + '"],' + this . selector + '[href="' + e + '"]' , o = t ( i ) . parents ( "li" ) . addClass ( "active" ) ; o . parent ( ".dropdown-menu" ) . length && ( o = o . closest ( "li.dropdown" ) . addClass ( "active" ) ) , o . trigger ( "activate.bs.scrollspy" ) } , e . prototype . clear = function ( ) { t ( this . selector ) . parentsUntil ( this . options . target , ".active" ) . removeClass ( "active" ) } ; var o = t . fn . scrollspy ; t . fn . scrollspy = i , t . fn . scrollspy . Constructor = e , t . fn . scrollspy . noConflict = function ( ) { return t . fn . scrollspy = o , this } , t ( window ) . on ( "load.bs.scrollspy.data-api" , function ( ) { t ( '[data-spy="scroll"]' ) . each ( function ( ) { var e = t ( this ) ; i . call ( e , e . data ( ) ) } ) } ) } ( jQuery ) , + function ( t ) { "use strict" ; function e ( ) { var t = document . createElement ( "bootstrap" ) , e = { WebkitTransition : "webkitTransitionEnd" , MozTransition : "transitionend" , OTransition : "oTransitionEnd otransitionend" , transition : "transitionend" } ; for ( var i in e ) if ( void 0 !== t . style [ i ] ) return { end : e [ i ] } ; return ! 1 } t . fn . emulateTransitionEnd = function ( e ) { var i = ! 1 , o = this ; t ( this ) . one ( "bsTransitionEnd" , function ( ) { i = ! 0 } ) ; var s = function ( ) { i || t ( o ) . trigger ( t . support . transition . end ) } ; return setTimeout ( s , e ) , this } , t ( function ( ) { t . support . transition = e ( ) , t . support . transition && ( t . event . special . bsTransitionEnd = { bindType : t . support . transition . end , delegateType : t . support . transition . end , handle : function ( e ) { return t ( e . target ) . is ( this ) ? e . handleObj . handler . apply ( this , arguments ) : void 0 } } ) } ) } ( jQuery ) ;
/ *
AngularJS v1 . 2.28
( c ) 2010 - 2014 Google , Inc . http : //angularjs.org
License : MIT
* /
( function ( W , X , u ) { 'use strict' ; function z ( b ) { return function ( ) { var a = arguments [ 0 ] , c , a = "[" + ( b ? b + ":" : "" ) + a + "] http://errors.angularjs.org/1.2.28/" + ( b ? b + "/" : "" ) + a ; for ( c = 1 ; c < arguments . length ; c ++ ) a = a + ( 1 == c ? "?" : "&" ) + "p" + ( c - 1 ) + "=" + encodeURIComponent ( "function" == typeof arguments [ c ] ? arguments [ c ] . toString ( ) . replace ( / \{[\s\S]*$/ , "" ) : "undefined" == typeof arguments [ c ] ? "undefined" : "string" != typeof arguments [ c ] ? JSON . stringify ( arguments [ c ] ) : arguments [ c ] ) ; return Error ( a ) } } function Sa ( b ) { if ( null == b || Ja ( b ) ) return ! 1 ;
var a = b . length ; return 1 === b . nodeType && a ? ! 0 : G ( b ) || L ( b ) || 0 === a || "number" === typeof a && 0 < a && a - 1 in b } function r ( b , a , c ) { var d ; if ( b ) if ( N ( b ) ) for ( d in b ) "prototype" == d || ( "length" == d || "name" == d || b . hasOwnProperty && ! b . hasOwnProperty ( d ) ) || a . call ( c , b [ d ] , d ) ; else if ( L ( b ) || Sa ( b ) ) for ( d = 0 ; d < b . length ; d ++ ) a . call ( c , b [ d ] , d ) ; else if ( b . forEach && b . forEach !== r ) b . forEach ( a , c ) ; else for ( d in b ) b . hasOwnProperty ( d ) && a . call ( c , b [ d ] , d ) ; return b } function Xb ( b ) { var a = [ ] , c ; for ( c in b ) b . hasOwnProperty ( c ) && a . push ( c ) ; return a . sort ( ) } function Sc ( b ,
a , c ) { for ( var d = Xb ( b ) , e = 0 ; e < d . length ; e ++ ) a . call ( c , b [ d [ e ] ] , d [ e ] ) ; return d } function Yb ( b ) { return function ( a , c ) { b ( c , a ) } } function ib ( ) { for ( var b = na . length , a ; b ; ) { b -- ; a = na [ b ] . charCodeAt ( 0 ) ; if ( 57 == a ) return na [ b ] = "A" , na . join ( "" ) ; if ( 90 == a ) na [ b ] = "0" ; else return na [ b ] = String . fromCharCode ( a + 1 ) , na . join ( "" ) } na . unshift ( "0" ) ; return na . join ( "" ) } function Zb ( b , a ) { a ? b . $$hashKey = a : delete b . $$hashKey } function E ( b ) { var a = b . $$hashKey ; r ( arguments , function ( a ) { a !== b && r ( a , function ( a , c ) { b [ c ] = a } ) } ) ; Zb ( b , a ) ; return b } function U ( b ) { return parseInt ( b ,
10 ) } function $b ( b , a ) { return E ( new ( E ( function ( ) { } , { prototype : b } ) ) , a ) } function v ( ) { } function ga ( b ) { return b } function aa ( b ) { return function ( ) { return b } } function F ( b ) { return "undefined" === typeof b } function D ( b ) { return "undefined" !== typeof b } function T ( b ) { return null != b && "object" === typeof b } function G ( b ) { return "string" === typeof b } function jb ( b ) { return "number" === typeof b } function va ( b ) { return "[object Date]" === Ba . call ( b ) } function N ( b ) { return "function" === typeof b } function kb ( b ) { return "[object RegExp]" === Ba . call ( b ) }
function Ja ( b ) { return b && b . document && b . location && b . alert && b . setInterval } function Tc ( b ) { return ! ( ! b || ! ( b . nodeName || b . prop && b . attr && b . find ) ) } function Uc ( b , a , c ) { var d = [ ] ; r ( b , function ( b , f , g ) { d . push ( a . call ( c , b , f , g ) ) } ) ; return d } function Ta ( b , a ) { if ( b . indexOf ) return b . indexOf ( a ) ; for ( var c = 0 ; c < b . length ; c ++ ) if ( a === b [ c ] ) return c ; return - 1 } function Ua ( b , a ) { var c = Ta ( b , a ) ; 0 <= c && b . splice ( c , 1 ) ; return a } function Ka ( b , a , c , d ) { if ( Ja ( b ) || b && b . $evalAsync && b . $watch ) throw Va ( "cpws" ) ; if ( a ) { if ( b === a ) throw Va ( "cpi" ) ; c = c || [ ] ;
d = d || [ ] ; if ( T ( b ) ) { var e = Ta ( c , b ) ; if ( - 1 !== e ) return d [ e ] ; c . push ( b ) ; d . push ( a ) } if ( L ( b ) ) for ( var f = a . length = 0 ; f < b . length ; f ++ ) e = Ka ( b [ f ] , null , c , d ) , T ( b [ f ] ) && ( c . push ( b [ f ] ) , d . push ( e ) ) , a . push ( e ) ; else { var g = a . $$hashKey ; L ( a ) ? a . length = 0 : r ( a , function ( b , c ) { delete a [ c ] } ) ; for ( f in b ) e = Ka ( b [ f ] , null , c , d ) , T ( b [ f ] ) && ( c . push ( b [ f ] ) , d . push ( e ) ) , a [ f ] = e ; Zb ( a , g ) } } else if ( a = b ) L ( b ) ? a = Ka ( b , [ ] , c , d ) : va ( b ) ? a = new Date ( b . getTime ( ) ) : kb ( b ) ? ( a = RegExp ( b . source , b . toString ( ) . match ( /[^\/]*$/ ) [ 0 ] ) , a . lastIndex = b . lastIndex ) : T ( b ) && ( a = Ka ( b , { } , c , d ) ) ;
return a } function ha ( b , a ) { if ( L ( b ) ) { a = a || [ ] ; for ( var c = 0 ; c < b . length ; c ++ ) a [ c ] = b [ c ] } else if ( T ( b ) ) for ( c in a = a || { } , b ) ! lb . call ( b , c ) || "$" === c . charAt ( 0 ) && "$" === c . charAt ( 1 ) || ( a [ c ] = b [ c ] ) ; return a || b } function Ca ( b , a ) { if ( b === a ) return ! 0 ; if ( null === b || null === a ) return ! 1 ; if ( b !== b && a !== a ) return ! 0 ; var c = typeof b , d ; if ( c == typeof a && "object" == c ) if ( L ( b ) ) { if ( ! L ( a ) ) return ! 1 ; if ( ( c = b . length ) == a . length ) { for ( d = 0 ; d < c ; d ++ ) if ( ! Ca ( b [ d ] , a [ d ] ) ) return ! 1 ; return ! 0 } } else { if ( va ( b ) ) return va ( a ) ? isNaN ( b . getTime ( ) ) && isNaN ( a . getTime ( ) ) || b . getTime ( ) ===
a . getTime ( ) : ! 1 ; if ( kb ( b ) && kb ( a ) ) return b . toString ( ) == a . toString ( ) ; if ( b && b . $evalAsync && b . $watch || a && a . $evalAsync && a . $watch || Ja ( b ) || Ja ( a ) || L ( a ) ) return ! 1 ; c = { } ; for ( d in b ) if ( "$" !== d . charAt ( 0 ) && ! N ( b [ d ] ) ) { if ( ! Ca ( b [ d ] , a [ d ] ) ) return ! 1 ; c [ d ] = ! 0 } for ( d in a ) if ( ! c . hasOwnProperty ( d ) && "$" !== d . charAt ( 0 ) && a [ d ] !== u && ! N ( a [ d ] ) ) return ! 1 ; return ! 0 } return ! 1 } function Bb ( b , a ) { var c = 2 < arguments . length ? wa . call ( arguments , 2 ) : [ ] ; return ! N ( a ) || a instanceof RegExp ? a : c . length ? function ( ) { return arguments . length ? a . apply ( b , c . concat ( wa . call ( arguments ,
0 ) ) ) : a . apply ( b , c ) } : function ( ) { return arguments . length ? a . apply ( b , arguments ) : a . call ( b ) } } function Vc ( b , a ) { var c = a ; "string" === typeof b && "$" === b . charAt ( 0 ) ? c = u : Ja ( a ) ? c = "$WINDOW" : a && X === a ? c = "$DOCUMENT" : a && ( a . $evalAsync && a . $watch ) && ( c = "$SCOPE" ) ; return c } function oa ( b , a ) { return "undefined" === typeof b ? u : JSON . stringify ( b , Vc , a ? " " : null ) } function ac ( b ) { return G ( b ) ? JSON . parse ( b ) : b } function Wa ( b ) { "function" === typeof b ? b = ! 0 : b && 0 !== b . length ? ( b = x ( "" + b ) , b = ! ( "f" == b || "0" == b || "false" == b || "no" == b || "n" == b || "[]" == b ) ) : b = ! 1 ;
return b } function ia ( b ) { b = A ( b ) . clone ( ) ; try { b . empty ( ) } catch ( a ) { } var c = A ( "<div>" ) . append ( b ) . html ( ) ; try { return 3 === b [ 0 ] . nodeType ? x ( c ) : c . match ( /^(<[^>]+>)/ ) [ 1 ] . replace ( /^<([\w\-]+)/ , function ( a , b ) { return "<" + x ( b ) } ) } catch ( d ) { return x ( c ) } } function bc ( b ) { try { return decodeURIComponent ( b ) } catch ( a ) { } } function cc ( b ) { var a = { } , c , d ; r ( ( b || "" ) . split ( "&" ) , function ( b ) { b && ( c = b . replace ( /\+/g , "%20" ) . split ( "=" ) , d = bc ( c [ 0 ] ) , D ( d ) && ( b = D ( c [ 1 ] ) ? bc ( c [ 1 ] ) : ! 0 , lb . call ( a , d ) ? L ( a [ d ] ) ? a [ d ] . push ( b ) : a [ d ] = [ a [ d ] , b ] : a [ d ] = b ) ) } ) ; return a } function Cb ( b ) { var a =
[ ] ; r ( b , function ( b , d ) { L ( b ) ? r ( b , function ( b ) { a . push ( Da ( d , ! 0 ) + ( ! 0 === b ? "" : "=" + Da ( b , ! 0 ) ) ) } ) : a . push ( Da ( d , ! 0 ) + ( ! 0 === b ? "" : "=" + Da ( b , ! 0 ) ) ) } ) ; return a . length ? a . join ( "&" ) : "" } function mb ( b ) { return Da ( b , ! 0 ) . replace ( /%26/gi , "&" ) . replace ( /%3D/gi , "=" ) . replace ( /%2B/gi , "+" ) } function Da ( b , a ) { return encodeURIComponent ( b ) . replace ( /%40/gi , "@" ) . replace ( /%3A/gi , ":" ) . replace ( /%24/g , "$" ) . replace ( /%2C/gi , "," ) . replace ( /%20/g , a ? "%20" : "+" ) } function Wc ( b , a ) { function c ( a ) { a && d . push ( a ) } var d = [ b ] , e , f , g = [ "ng:app" , "ng-app" , "x-ng-app" ,
"data-ng-app" ] , h = /\sng[:\-]app(:\s*([\w\d_]+);?)?\s/ ; r ( g , function ( a ) { g [ a ] = ! 0 ; c ( X . getElementById ( a ) ) ; a = a . replace ( ":" , "\\:" ) ; b . querySelectorAll && ( r ( b . querySelectorAll ( "." + a ) , c ) , r ( b . querySelectorAll ( "." + a + "\\:" ) , c ) , r ( b . querySelectorAll ( "[" + a + "]" ) , c ) ) } ) ; r ( d , function ( a ) { if ( ! e ) { var b = h . exec ( " " + a . className + " " ) ; b ? ( e = a , f = ( b [ 2 ] || "" ) . replace ( /\s+/g , "," ) ) : r ( a . attributes , function ( b ) { ! e && g [ b . name ] && ( e = a , f = b . value ) } ) } } ) ; e && a ( e , f ? [ f ] : [ ] ) } function dc ( b , a ) { var c = function ( ) { b = A ( b ) ; if ( b . injector ( ) ) { var c = b [ 0 ] === X ?
"document" : ia ( b ) ; throw Va ( "btstrpd" , c . replace ( /</ , "<" ) . replace ( />/ , ">" ) ) ; } a = a || [ ] ; a . unshift ( [ "$provide" , function ( a ) { a . value ( "$rootElement" , b ) } ] ) ; a . unshift ( "ng" ) ; c = ec ( a ) ; c . invoke ( [ "$rootScope" , "$rootElement" , "$compile" , "$injector" , "$animate" , function ( a , b , c , d , e ) { a . $apply ( function ( ) { b . data ( "$injector" , d ) ; c ( b ) ( a ) } ) } ] ) ; return c } , d = /^NG_DEFER_BOOTSTRAP!/ ; if ( W && ! d . test ( W . name ) ) return c ( ) ; W . name = W . name . replace ( d , "" ) ; Xa . resumeBootstrap = function ( b ) { r ( b , function ( b ) { a . push ( b ) } ) ; c ( ) } } function nb ( b , a ) { a =
a || "_" ; return b . replace ( Xc , function ( b , d ) { return ( d ? a : "" ) + b . toLowerCase ( ) } ) } function Db ( b , a , c ) { if ( ! b ) throw Va ( "areq" , a || "?" , c || "required" ) ; return b } function Ya ( b , a , c ) { c && L ( b ) && ( b = b [ b . length - 1 ] ) ; Db ( N ( b ) , a , "not a function, got " + ( b && "object" === typeof b ? b . constructor . name || "Object" : typeof b ) ) ; return b } function Ea ( b , a ) { if ( "hasOwnProperty" === b ) throw Va ( "badname" , a ) ; } function fc ( b , a , c ) { if ( ! a ) return b ; a = a . split ( "." ) ; for ( var d , e = b , f = a . length , g = 0 ; g < f ; g ++ ) d = a [ g ] , b && ( b = ( e = b ) [ d ] ) ; return ! c && N ( b ) ? Bb ( e , b ) : b } function Eb ( b ) { var a =
b [ 0 ] ; b = b [ b . length - 1 ] ; if ( a === b ) return A ( a ) ; var c = [ a ] ; do { a = a . nextSibling ; if ( ! a ) break ; c . push ( a ) } while ( a !== b ) ; return A ( c ) } function Yc ( b ) { var a = z ( "$injector" ) , c = z ( "ng" ) ; b = b . angular || ( b . angular = { } ) ; b . $$minErr = b . $$minErr || z ; return b . module || ( b . module = function ( ) { var b = { } ; return function ( e , f , g ) { if ( "hasOwnProperty" === e ) throw c ( "badname" , "module" ) ; f && b . hasOwnProperty ( e ) && ( b [ e ] = null ) ; return b [ e ] || ( b [ e ] = function ( ) { function b ( a , d , e ) { return function ( ) { c [ e || "push" ] ( [ a , d , arguments ] ) ; return n } } if ( ! f ) throw a ( "nomod" ,
e ) ; var c = [ ] , d = [ ] , l = b ( "$injector" , "invoke" ) , n = { _invokeQueue : c , _runBlocks : d , requires : f , name : e , provider : b ( "$provide" , "provider" ) , factory : b ( "$provide" , "factory" ) , service : b ( "$provide" , "service" ) , value : b ( "$provide" , "value" ) , constant : b ( "$provide" , "constant" , "unshift" ) , animation : b ( "$animateProvider" , "register" ) , filter : b ( "$filterProvider" , "register" ) , controller : b ( "$controllerProvider" , "register" ) , directive : b ( "$compileProvider" , "directive" ) , config : l , run : function ( a ) { d . push ( a ) ; return this } } ; g && l ( g ) ; return n } ( ) ) } } ( ) ) }
function Zc ( b ) { E ( b , { bootstrap : dc , copy : Ka , extend : E , equals : Ca , element : A , forEach : r , injector : ec , noop : v , bind : Bb , toJson : oa , fromJson : ac , identity : ga , isUndefined : F , isDefined : D , isString : G , isFunction : N , isObject : T , isNumber : jb , isElement : Tc , isArray : L , version : $c , isDate : va , lowercase : x , uppercase : La , callbacks : { counter : 0 } , $$minErr : z , $$csp : Za } ) ; $a = Yc ( W ) ; try { $a ( "ngLocale" ) } catch ( a ) { $a ( "ngLocale" , [ ] ) . provider ( "$locale" , ad ) } $a ( "ng" , [ "ngLocale" ] , [ "$provide" , function ( a ) { a . provider ( { $$sanitizeUri : bd } ) ; a . provider ( "$compile" ,
gc ) . directive ( { a : cd , input : hc , textarea : hc , form : dd , script : ed , select : fd , style : gd , option : hd , ngBind : id , ngBindHtml : jd , ngBindTemplate : kd , ngClass : ld , ngClassEven : md , ngClassOdd : nd , ngCloak : od , ngController : pd , ngForm : qd , ngHide : rd , ngIf : sd , ngInclude : td , ngInit : ud , ngNonBindable : vd , ngPluralize : wd , ngRepeat : xd , ngShow : yd , ngStyle : zd , ngSwitch : Ad , ngSwitchWhen : Bd , ngSwitchDefault : Cd , ngOptions : Dd , ngTransclude : Ed , ngModel : Fd , ngList : Gd , ngChange : Hd , required : ic , ngRequired : ic , ngValue : Id } ) . directive ( { ngInclude : Jd } ) . directive ( Fb ) . directive ( jc ) ;
a . provider ( { $anchorScroll : Kd , $animate : Ld , $browser : Md , $cacheFactory : Nd , $controller : Od , $document : Pd , $exceptionHandler : Qd , $filter : kc , $interpolate : Rd , $interval : Sd , $http : Td , $httpBackend : Ud , $location : Vd , $log : Wd , $parse : Xd , $rootScope : Yd , $q : Zd , $sce : $d , $sceDelegate : ae , $sniffer : be , $templateCache : ce , $timeout : de , $window : ee , $$rAF : fe , $$asyncCallback : ge } ) } ] ) } function ab ( b ) { return b . replace ( he , function ( a , b , d , e ) { return e ? d . toUpperCase ( ) : d } ) . replace ( ie , "Moz$1" ) } function Gb ( b , a , c , d ) { function e ( b ) { var e = c && b ? [ this . filter ( b ) ] :
[ this ] , k = a , m , l , n , q , p , s ; if ( ! d || null != b ) for ( ; e . length ; ) for ( m = e . shift ( ) , l = 0 , n = m . length ; l < n ; l ++ ) for ( q = A ( m [ l ] ) , k ? q . triggerHandler ( "$destroy" ) : k = ! k , p = 0 , q = ( s = q . children ( ) ) . length ; p < q ; p ++ ) e . push ( Fa ( s [ p ] ) ) ; return f . apply ( this , arguments ) } var f = Fa . fn [ b ] , f = f . $original || f ; e . $original = f ; Fa . fn [ b ] = e } function S ( b ) { if ( b instanceof S ) return b ; G ( b ) && ( b = $ ( b ) ) ; if ( ! ( this instanceof S ) ) { if ( G ( b ) && "<" != b . charAt ( 0 ) ) throw Hb ( "nosel" ) ; return new S ( b ) } if ( G ( b ) ) { var a = b ; b = X ; var c ; if ( c = je . exec ( a ) ) b = [ b . createElement ( c [ 1 ] ) ] ; else { var d =
b , e ; b = d . createDocumentFragment ( ) ; c = [ ] ; if ( Ib . test ( a ) ) { d = b . appendChild ( d . createElement ( "div" ) ) ; e = ( ke . exec ( a ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ; e = da [ e ] || da . _default ; d . innerHTML = "<div> </div>" + e [ 1 ] + a . replace ( le , "<$1></$2>" ) + e [ 2 ] ; d . removeChild ( d . firstChild ) ; for ( a = e [ 0 ] ; a -- ; ) d = d . lastChild ; a = 0 ; for ( e = d . childNodes . length ; a < e ; ++ a ) c . push ( d . childNodes [ a ] ) ; d = b . firstChild ; d . textContent = "" } else c . push ( d . createTextNode ( a ) ) ; b . textContent = "" ; b . innerHTML = "" ; b = c } Jb ( this , b ) ; A ( X . createDocumentFragment ( ) ) . append ( this ) } else Jb ( this ,
b ) } function Kb ( b ) { return b . cloneNode ( ! 0 ) } function Ma ( b ) { Lb ( b ) ; var a = 0 ; for ( b = b . childNodes || [ ] ; a < b . length ; a ++ ) Ma ( b [ a ] ) } function lc ( b , a , c , d ) { if ( D ( d ) ) throw Hb ( "offargs" ) ; var e = pa ( b , "events" ) ; pa ( b , "handle" ) && ( F ( a ) ? r ( e , function ( a , c ) { bb ( b , c , a ) ; delete e [ c ] } ) : r ( a . split ( " " ) , function ( a ) { F ( c ) ? ( bb ( b , a , e [ a ] ) , delete e [ a ] ) : Ua ( e [ a ] || [ ] , c ) } ) ) } function Lb ( b , a ) { var c = b . ng339 , d = cb [ c ] ; d && ( a ? delete cb [ c ] . data [ a ] : ( d . handle && ( d . events . $destroy && d . handle ( { } , "$destroy" ) , lc ( b ) ) , delete cb [ c ] , b . ng339 = u ) ) } function pa ( b , a , c ) { var d =
b . ng339 , d = cb [ d || - 1 ] ; if ( D ( c ) ) d || ( b . ng339 = d = ++ me , d = cb [ d ] = { } ) , d [ a ] = c ; else return d && d [ a ] } function Mb ( b , a , c ) { var d = pa ( b , "data" ) , e = D ( c ) , f = ! e && D ( a ) , g = f && ! T ( a ) ; d || g || pa ( b , "data" , d = { } ) ; if ( e ) d [ a ] = c ; else if ( f ) { if ( g ) return d && d [ a ] ; E ( d , a ) } else return d } function Nb ( b , a ) { return b . getAttribute ? - 1 < ( " " + ( b . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g , " " ) . indexOf ( " " + a + " " ) : ! 1 } function ob ( b , a ) { a && b . setAttribute && r ( a . split ( " " ) , function ( a ) { b . setAttribute ( "class" , $ ( ( " " + ( b . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g ,
" " ) . replace ( " " + $ ( a ) + " " , " " ) ) ) } ) } function pb ( b , a ) { if ( a && b . setAttribute ) { var c = ( " " + ( b . getAttribute ( "class" ) || "" ) + " " ) . replace ( /[\n\t]/g , " " ) ; r ( a . split ( " " ) , function ( a ) { a = $ ( a ) ; - 1 === c . indexOf ( " " + a + " " ) && ( c += a + " " ) } ) ; b . setAttribute ( "class" , $ ( c ) ) } } function Jb ( b , a ) { if ( a ) { a = a . nodeName || ! D ( a . length ) || Ja ( a ) ? [ a ] : a ; for ( var c = 0 ; c < a . length ; c ++ ) b . push ( a [ c ] ) } } function mc ( b , a ) { return qb ( b , "$" + ( a || "ngController" ) + "Controller" ) } function qb ( b , a , c ) { 9 == b . nodeType && ( b = b . documentElement ) ; for ( a = L ( a ) ? a : [ a ] ; b ; ) { for ( var d =
0 , e = a . length ; d < e ; d ++ ) if ( ( c = A . data ( b , a [ d ] ) ) !== u ) return c ; b = b . parentNode || 11 === b . nodeType && b . host } } function nc ( b ) { for ( var a = 0 , c = b . childNodes ; a < c . length ; a ++ ) Ma ( c [ a ] ) ; for ( ; b . firstChild ; ) b . removeChild ( b . firstChild ) } function oc ( b , a ) { var c = rb [ a . toLowerCase ( ) ] ; return c && pc [ b . nodeName ] && c } function ne ( b , a ) { var c = function ( c , e ) { c . preventDefault || ( c . preventDefault = function ( ) { c . returnValue = ! 1 } ) ; c . stopPropagation || ( c . stopPropagation = function ( ) { c . cancelBubble = ! 0 } ) ; c . target || ( c . target = c . srcElement || X ) ; if ( F ( c . defaultPrevented ) ) { var f =
c . preventDefault ; c . preventDefault = function ( ) { c . defaultPrevented = ! 0 ; f . call ( c ) } ; c . defaultPrevented = ! 1 } c . isDefaultPrevented = function ( ) { return c . defaultPrevented || ! 1 === c . returnValue } ; var g = ha ( a [ e || c . type ] || [ ] ) ; r ( g , function ( a ) { a . call ( b , c ) } ) ; 8 >= R ? ( c . preventDefault = null , c . stopPropagation = null , c . isDefaultPrevented = null ) : ( delete c . preventDefault , delete c . stopPropagation , delete c . isDefaultPrevented ) } ; c . elem = b ; return c } function Na ( b , a ) { var c = typeof b , d ; "function" == c || "object" == c && null !== b ? "function" == typeof ( d =
b . $$hashKey ) ? d = b . $$hashKey ( ) : d === u && ( d = b . $$hashKey = ( a || ib ) ( ) ) : d = b ; return c + ":" + d } function db ( b , a ) { if ( a ) { var c = 0 ; this . nextUid = function ( ) { return ++ c } } r ( b , this . put , this ) } function qc ( b ) { var a , c ; "function" === typeof b ? ( a = b . $inject ) || ( a = [ ] , b . length && ( c = b . toString ( ) . replace ( oe , "" ) , c = c . match ( pe ) , r ( c [ 1 ] . split ( qe ) , function ( b ) { b . replace ( re , function ( b , c , d ) { a . push ( d ) } ) } ) ) , b . $inject = a ) : L ( b ) ? ( c = b . length - 1 , Ya ( b [ c ] , "fn" ) , a = b . slice ( 0 , c ) ) : Ya ( b , "fn" , ! 0 ) ; return a } function ec ( b ) { function a ( a ) { return function ( b , c ) { if ( T ( b ) ) r ( b ,
Yb ( a ) ) ; else return a ( b , c ) } } function c ( a , b ) { Ea ( a , "service" ) ; if ( N ( b ) || L ( b ) ) b = n . instantiate ( b ) ; if ( ! b . $get ) throw eb ( "pget" , a ) ; return l [ a + h ] = b } function d ( a , b ) { return c ( a , { $get : b } ) } function e ( a ) { var b = [ ] , c , d , f , h ; r ( a , function ( a ) { if ( ! m . get ( a ) ) { m . put ( a , ! 0 ) ; try { if ( G ( a ) ) for ( c = $a ( a ) , b = b . concat ( e ( c . requires ) ) . concat ( c . _runBlocks ) , d = c . _invokeQueue , f = 0 , h = d . length ; f < h ; f ++ ) { var g = d [ f ] , k = n . get ( g [ 0 ] ) ; k [ g [ 1 ] ] . apply ( k , g [ 2 ] ) } else N ( a ) ? b . push ( n . invoke ( a ) ) : L ( a ) ? b . push ( n . invoke ( a ) ) : Ya ( a , "module" ) } catch ( p ) { throw L ( a ) && ( a =
a [ a . length - 1 ] ) , p . message && ( p . stack && - 1 == p . stack . indexOf ( p . message ) ) && ( p = p . message + "\n" + p . stack ) , eb ( "modulerr" , a , p . stack || p . message || p ) ; } } } ) ; return b } function f ( a , b ) { function c ( d ) { if ( a . hasOwnProperty ( d ) ) { if ( a [ d ] === g ) throw eb ( "cdep" , d + " <- " + k . join ( " <- " ) ) ; return a [ d ] } try { return k . unshift ( d ) , a [ d ] = g , a [ d ] = b ( d ) } catch ( e ) { throw a [ d ] === g && delete a [ d ] , e ; } finally { k . shift ( ) } } function d ( a , b , e ) { var f = [ ] , h = qc ( a ) , g , k , p ; k = 0 ; for ( g = h . length ; k < g ; k ++ ) { p = h [ k ] ; if ( "string" !== typeof p ) throw eb ( "itkn" , p ) ; f . push ( e && e . hasOwnProperty ( p ) ?
e [ p ] : c ( p ) ) } L ( a ) && ( a = a [ g ] ) ; return a . apply ( b , f ) } return { invoke : d , instantiate : function ( a , b ) { var c = function ( ) { } , e ; c . prototype = ( L ( a ) ? a [ a . length - 1 ] : a ) . prototype ; c = new c ; e = d ( a , c , b ) ; return T ( e ) || N ( e ) ? e : c } , get : c , annotate : qc , has : function ( b ) { return l . hasOwnProperty ( b + h ) || a . hasOwnProperty ( b ) } } } var g = { } , h = "Provider" , k = [ ] , m = new db ( [ ] , ! 0 ) , l = { $provide : { provider : a ( c ) , factory : a ( d ) , service : a ( function ( a , b ) { return d ( a , [ "$injector" , function ( a ) { return a . instantiate ( b ) } ] ) } ) , value : a ( function ( a , b ) { return d ( a , aa ( b ) ) } ) , constant : a ( function ( a ,
b ) { Ea ( a , "constant" ) ; l [ a ] = b ; q [ a ] = b } ) , decorator : function ( a , b ) { var c = n . get ( a + h ) , d = c . $get ; c . $get = function ( ) { var a = p . invoke ( d , c ) ; return p . invoke ( b , null , { $delegate : a } ) } } } } , n = l . $injector = f ( l , function ( ) { throw eb ( "unpr" , k . join ( " <- " ) ) ; } ) , q = { } , p = q . $injector = f ( q , function ( a ) { a = n . get ( a + h ) ; return p . invoke ( a . $get , a ) } ) ; r ( e ( b ) , function ( a ) { p . invoke ( a || v ) } ) ; return p } function Kd ( ) { var b = ! 0 ; this . disableAutoScrolling = function ( ) { b = ! 1 } ; this . $get = [ "$window" , "$location" , "$rootScope" , function ( a , c , d ) { function e ( a ) { var b = null ;
r ( a , function ( a ) { b || "a" !== x ( a . nodeName ) || ( b = a ) } ) ; return b } function f ( ) { var b = c . hash ( ) , d ; b ? ( d = g . getElementById ( b ) ) ? d . scrollIntoView ( ) : ( d = e ( g . getElementsByName ( b ) ) ) ? d . scrollIntoView ( ) : "top" === b && a . scrollTo ( 0 , 0 ) : a . scrollTo ( 0 , 0 ) } var g = a . document ; b && d . $watch ( function ( ) { return c . hash ( ) } , function ( ) { d . $evalAsync ( f ) } ) ; return f } ] } function ge ( ) { this . $get = [ "$$rAF" , "$timeout" , function ( b , a ) { return b . supported ? function ( a ) { return b ( a ) } : function ( b ) { return a ( b , 0 , ! 1 ) } } ] } function se ( b , a , c , d ) { function e ( a ) { try { a . apply ( null ,
wa . call ( arguments , 1 ) ) } finally { if ( s -- , 0 === s ) for ( ; J . length ; ) try { J . pop ( ) ( ) } catch ( b ) { c . error ( b ) } } } function f ( a , b ) { ( function ea ( ) { r ( w , function ( a ) { a ( ) } ) ; t = b ( ea , a ) } ) ( ) } function g ( ) { y != h . url ( ) && ( y = h . url ( ) , r ( ba , function ( a ) { a ( h . url ( ) ) } ) ) } var h = this , k = a [ 0 ] , m = b . location , l = b . history , n = b . setTimeout , q = b . clearTimeout , p = { } ; h . isMock = ! 1 ; var s = 0 , J = [ ] ; h . $$completeOutstandingRequest = e ; h . $$incOutstandingRequestCount = function ( ) { s ++ } ; h . notifyWhenNoOutstandingRequests = function ( a ) { r ( w , function ( a ) { a ( ) } ) ; 0 === s ? a ( ) : J . push ( a ) } ;
var w = [ ] , t ; h . addPollFn = function ( a ) { F ( t ) && f ( 100 , n ) ; w . push ( a ) ; return a } ; var y = m . href , K = a . find ( "base" ) , B = null ; h . url = function ( a , c ) { m !== b . location && ( m = b . location ) ; l !== b . history && ( l = b . history ) ; if ( a ) { if ( y != a ) { var e = y && Ga ( y ) === Ga ( a ) ; y = a ; ! e && d . history ? c ? l . replaceState ( null , "" , a ) : ( l . pushState ( null , "" , a ) , K . attr ( "href" , K . attr ( "href" ) ) ) : ( e || ( B = a ) , c ? m . replace ( a ) : m . href = a ) ; return h } } else return B || m . href . replace ( /%27/g , "'" ) } ; var ba = [ ] , O = ! 1 ; h . onUrlChange = function ( a ) { if ( ! O ) { if ( d . history ) A ( b ) . on ( "popstate" , g ) ; if ( d . hashchange ) A ( b ) . on ( "hashchange" ,
g ) ; else h . addPollFn ( g ) ; O = ! 0 } ba . push ( a ) ; return a } ; h . $$checkUrlChange = g ; h . baseHref = function ( ) { var a = K . attr ( "href" ) ; return a ? a . replace ( /^(https?\:)?\/\/[^\/]*/ , "" ) : "" } ; var M = { } , ca = "" , P = h . baseHref ( ) ; h . cookies = function ( a , b ) { var d , e , f , h ; if ( a ) b === u ? k . cookie = escape ( a ) + "=;path=" + P + ";expires=Thu, 01 Jan 1970 00:00:00 GMT" : G ( b ) && ( d = ( k . cookie = escape ( a ) + "=" + escape ( b ) + ";path=" + P ) . length + 1 , 4096 < d && c . warn ( "Cookie '" + a + "' possibly not set or overflowed because it was too large (" + d + " > 4096 bytes)!" ) ) ; else { if ( k . cookie !==
ca ) for ( ca = k . cookie , d = ca . split ( "; " ) , M = { } , f = 0 ; f < d . length ; f ++ ) e = d [ f ] , h = e . indexOf ( "=" ) , 0 < h && ( a = unescape ( e . substring ( 0 , h ) ) , M [ a ] === u && ( M [ a ] = unescape ( e . substring ( h + 1 ) ) ) ) ; return M } } ; h . defer = function ( a , b ) { var c ; s ++ ; c = n ( function ( ) { delete p [ c ] ; e ( a ) } , b || 0 ) ; p [ c ] = ! 0 ; return c } ; h . defer . cancel = function ( a ) { return p [ a ] ? ( delete p [ a ] , q ( a ) , e ( v ) , ! 0 ) : ! 1 } } function Md ( ) { this . $get = [ "$window" , "$log" , "$sniffer" , "$document" , function ( b , a , c , d ) { return new se ( b , d , a , c ) } ] } function Nd ( ) { this . $get = function ( ) { function b ( b , d ) { function e ( a ) { a !=
n && ( q ? q == a && ( q = a . n ) : q = a , f ( a . n , a . p ) , f ( a , n ) , n = a , n . n = null ) } function f ( a , b ) { a != b && ( a && ( a . p = b ) , b && ( b . n = a ) ) } if ( b in a ) throw z ( "$cacheFactory" ) ( "iid" , b ) ; var g = 0 , h = E ( { } , d , { id : b } ) , k = { } , m = d && d . capacity || Number . MAX _VALUE , l = { } , n = null , q = null ; return a [ b ] = { put : function ( a , b ) { if ( m < Number . MAX _VALUE ) { var c = l [ a ] || ( l [ a ] = { key : a } ) ; e ( c ) } if ( ! F ( b ) ) return a in k || g ++ , k [ a ] = b , g > m && this . remove ( q . key ) , b } , get : function ( a ) { if ( m < Number . MAX _VALUE ) { var b = l [ a ] ; if ( ! b ) return ; e ( b ) } return k [ a ] } , remove : function ( a ) { if ( m < Number . MAX _VALUE ) { var b =
l [ a ] ; if ( ! b ) return ; b == n && ( n = b . p ) ; b == q && ( q = b . n ) ; f ( b . n , b . p ) ; delete l [ a ] } delete k [ a ] ; g -- } , removeAll : function ( ) { k = { } ; g = 0 ; l = { } ; n = q = null } , destroy : function ( ) { l = h = k = null ; delete a [ b ] } , info : function ( ) { return E ( { } , h , { size : g } ) } } } var a = { } ; b . info = function ( ) { var b = { } ; r ( a , function ( a , e ) { b [ e ] = a . info ( ) } ) ; return b } ; b . get = function ( b ) { return a [ b ] } ; return b } } function ce ( ) { this . $get = [ "$cacheFactory" , function ( b ) { return b ( "templates" ) } ] } function gc ( b , a ) { var c = { } , d = "Directive" , e = /^\s*directive\:\s*([\d\w_\-]+)\s+(.*)$/ , f = /(([\d\w_\-]+)(?:\:([^;]+))?;?)/ ,
g = /^(on[a-z]+|formaction)$/ ; this . directive = function k ( a , e ) { Ea ( a , "directive" ) ; G ( a ) ? ( Db ( e , "directiveFactory" ) , c . hasOwnProperty ( a ) || ( c [ a ] = [ ] , b . factory ( a + d , [ "$injector" , "$exceptionHandler" , function ( b , d ) { var e = [ ] ; r ( c [ a ] , function ( c , f ) { try { var g = b . invoke ( c ) ; N ( g ) ? g = { compile : aa ( g ) } : ! g . compile && g . link && ( g . compile = aa ( g . link ) ) ; g . priority = g . priority || 0 ; g . index = f ; g . name = g . name || a ; g . require = g . require || g . controller && g . name ; g . restrict = g . restrict || "A" ; e . push ( g ) } catch ( k ) { d ( k ) } } ) ; return e } ] ) ) , c [ a ] . push ( e ) ) : r ( a , Yb ( k ) ) ;
return this } ; this . aHrefSanitizationWhitelist = function ( b ) { return D ( b ) ? ( a . aHrefSanitizationWhitelist ( b ) , this ) : a . aHrefSanitizationWhitelist ( ) } ; this . imgSrcSanitizationWhitelist = function ( b ) { return D ( b ) ? ( a . imgSrcSanitizationWhitelist ( b ) , this ) : a . imgSrcSanitizationWhitelist ( ) } ; this . $get = [ "$injector" , "$interpolate" , "$exceptionHandler" , "$http" , "$templateCache" , "$parse" , "$controller" , "$rootScope" , "$document" , "$sce" , "$animate" , "$$sanitizeUri" , function ( a , b , l , n , q , p , s , J , w , t , y , K ) { function B ( a , b , c , d , e ) { a instanceof
A || ( a = A ( a ) ) ; r ( a , function ( b , c ) { 3 == b . nodeType && b . nodeValue . match ( /\S+/ ) && ( a [ c ] = A ( b ) . wrap ( "<span></span>" ) . parent ( ) [ 0 ] ) } ) ; var f = O ( a , b , a , c , d , e ) ; ba ( a , "ng-scope" ) ; return function ( b , c , d , e ) { Db ( b , "scope" ) ; var g = c ? Oa . clone . call ( a ) : a ; r ( d , function ( a , b ) { g . data ( "$" + b + "Controller" , a ) } ) ; d = 0 ; for ( var k = g . length ; d < k ; d ++ ) { var p = g [ d ] . nodeType ; 1 !== p && 9 !== p || g . eq ( d ) . data ( "$scope" , b ) } c && c ( g , b ) ; f && f ( b , g , g , e ) ; return g } } function ba ( a , b ) { try { a . addClass ( b ) } catch ( c ) { } } function O ( a , b , c , d , e , f ) { function g ( a , c , d , e ) { var f , p , l , m , q ,
n , w ; f = c . length ; var s = Array ( f ) ; for ( m = 0 ; m < f ; m ++ ) s [ m ] = c [ m ] ; n = m = 0 ; for ( q = k . length ; m < q ; n ++ ) p = s [ n ] , c = k [ m ++ ] , f = k [ m ++ ] , c ? ( c . scope ? ( l = a . $new ( ) , A . data ( p , "$scope" , l ) ) : l = a , w = c . transcludeOnThisElement ? M ( a , c . transclude , e ) : ! c . templateOnThisElement && e ? e : ! e && b ? M ( a , b ) : null , c ( f , l , p , d , w ) ) : f && f ( a , p . childNodes , u , e ) } for ( var k = [ ] , p , l , m , q , n = 0 ; n < a . length ; n ++ ) p = new Ob , l = ca ( a [ n ] , [ ] , p , 0 === n ? d : u , e ) , ( f = l . length ? I ( l , a [ n ] , p , b , c , null , [ ] , [ ] , f ) : null ) && f . scope && ba ( p . $$element , "ng-scope" ) , p = f && f . terminal || ! ( m = a [ n ] . childNodes ) || ! m . length ?
null : O ( m , f ? ( f . transcludeOnThisElement || ! f . templateOnThisElement ) && f . transclude : b ) , k . push ( f , p ) , q = q || f || p , f = null ; return q ? g : null } function M ( a , b , c ) { return function ( d , e , f ) { var g = ! 1 ; d || ( d = a . $new ( ) , g = d . $$transcluded = ! 0 ) ; e = b ( d , e , f , c ) ; if ( g ) e . on ( "$destroy" , function ( ) { d . $destroy ( ) } ) ; return e } } function ca ( a , b , c , d , g ) { var k = c . $attr , p ; switch ( a . nodeType ) { case 1 : ea ( b , qa ( Pa ( a ) . toLowerCase ( ) ) , "E" , d , g ) ; for ( var l , m , q , n = a . attributes , w = 0 , s = n && n . length ; w < s ; w ++ ) { var t = ! 1 , J = ! 1 ; l = n [ w ] ; if ( ! R || 8 <= R || l . specified ) { p = l . name ; m =
$ ( l . value ) ; l = qa ( p ) ; if ( q = U . test ( l ) ) p = nb ( l . substr ( 6 ) , "-" ) ; var y = l . replace ( /(Start|End)$/ , "" ) ; l === y + "Start" && ( t = p , J = p . substr ( 0 , p . length - 5 ) + "end" , p = p . substr ( 0 , p . length - 6 ) ) ; l = qa ( p . toLowerCase ( ) ) ; k [ l ] = p ; if ( q || ! c . hasOwnProperty ( l ) ) c [ l ] = m , oc ( a , l ) && ( c [ l ] = ! 0 ) ; S ( a , b , m , l ) ; ea ( b , l , "A" , d , g , t , J ) } } a = a . className ; if ( G ( a ) && "" !== a ) for ( ; p = f . exec ( a ) ; ) l = qa ( p [ 2 ] ) , ea ( b , l , "C" , d , g ) && ( c [ l ] = $ ( p [ 3 ] ) ) , a = a . substr ( p . index + p [ 0 ] . length ) ; break ; case 3 : x ( b , a . nodeValue ) ; break ; case 8 : try { if ( p = e . exec ( a . nodeValue ) ) l = qa ( p [ 1 ] ) , ea ( b , l , "M" , d ,
g ) && ( c [ l ] = $ ( p [ 2 ] ) ) } catch ( B ) { } } b . sort ( F ) ; return b } function P ( a , b , c ) { var d = [ ] , e = 0 ; if ( b && a . hasAttribute && a . hasAttribute ( b ) ) { do { if ( ! a ) throw ja ( "uterdir" , b , c ) ; 1 == a . nodeType && ( a . hasAttribute ( b ) && e ++ , a . hasAttribute ( c ) && e -- ) ; d . push ( a ) ; a = a . nextSibling } while ( 0 < e ) } else d . push ( a ) ; return A ( d ) } function C ( a , b , c ) { return function ( d , e , f , g , k ) { e = P ( e [ 0 ] , b , c ) ; return a ( d , e , f , g , k ) } } function I ( a , c , d , e , f , g , k , q , n ) { function w ( a , b , c , d ) { if ( a ) { c && ( a = C ( a , c , d ) ) ; a . require = H . require ; a . directiveName = z ; if ( K === H || H . $$isolateScope ) a = rc ( a ,
{ isolateScope : ! 0 } ) ; k . push ( a ) } if ( b ) { c && ( b = C ( b , c , d ) ) ; b . require = H . require ; b . directiveName = z ; if ( K === H || H . $$isolateScope ) b = rc ( b , { isolateScope : ! 0 } ) ; q . push ( b ) } } function t ( a , b , c , d ) { var e , f = "data" , g = ! 1 ; if ( G ( b ) ) { for ( ; "^" == ( e = b . charAt ( 0 ) ) || "?" == e ; ) b = b . substr ( 1 ) , "^" == e && ( f = "inheritedData" ) , g = g || "?" == e ; e = null ; d && "data" === f && ( e = d [ b ] ) ; e = e || c [ f ] ( "$" + b + "Controller" ) ; if ( ! e && ! g ) throw ja ( "ctreq" , b , a ) ; } else L ( b ) && ( e = [ ] , r ( b , function ( b ) { e . push ( t ( a , b , c , d ) ) } ) ) ; return e } function J ( a , e , f , g , n ) { function w ( a , b ) { var c ; 2 > arguments . length &&
( b = a , a = u ) ; Ia && ( c = ca ) ; return n ( a , b , c ) } var y , Q , B , M , C , P , ca = { } , ra ; y = c === f ? d : ha ( d , new Ob ( A ( f ) , d . $attr ) ) ; Q = y . $$element ; if ( K ) { var ue = /^\s*([@=&])(\??)\s*(\w*)\s*$/ ; P = e . $new ( ! 0 ) ; ! I || I !== K && I !== K . $$originalDirective ? Q . data ( "$isolateScopeNoTemplate" , P ) : Q . data ( "$isolateScope" , P ) ; ba ( Q , "ng-isolate-scope" ) ; r ( K . scope , function ( a , c ) { var d = a . match ( ue ) || [ ] , f = d [ 3 ] || c , g = "?" == d [ 2 ] , d = d [ 1 ] , k , l , n , q ; P . $$isolateBindings [ c ] = d + f ; switch ( d ) { case "@" : y . $observe ( f , function ( a ) { P [ c ] = a } ) ; y . $$observers [ f ] . $$scope = e ; y [ f ] && ( P [ c ] = b ( y [ f ] ) ( e ) ) ;
break ; case "=" : if ( g && ! y [ f ] ) break ; l = p ( y [ f ] ) ; q = l . literal ? Ca : function ( a , b ) { return a === b || a !== a && b !== b } ; n = l . assign || function ( ) { k = P [ c ] = l ( e ) ; throw ja ( "nonassign" , y [ f ] , K . name ) ; } ; k = P [ c ] = l ( e ) ; P . $watch ( function ( ) { var a = l ( e ) ; q ( a , P [ c ] ) || ( q ( a , k ) ? n ( e , a = P [ c ] ) : P [ c ] = a ) ; return k = a } , null , l . literal ) ; break ; case "&" : l = p ( y [ f ] ) ; P [ c ] = function ( a ) { return l ( e , a ) } ; break ; default : throw ja ( "iscp" , K . name , c , a ) ; } } ) } ra = n && w ; O && r ( O , function ( a ) { var b = { $scope : a === K || a . $$isolateScope ? P : e , $element : Q , $attrs : y , $transclude : ra } , c ; C = a . controller ;
"@" == C && ( C = y [ a . name ] ) ; c = s ( C , b ) ; ca [ a . name ] = c ; Ia || Q . data ( "$" + a . name + "Controller" , c ) ; a . controllerAs && ( b . $scope [ a . controllerAs ] = c ) } ) ; g = 0 ; for ( B = k . length ; g < B ; g ++ ) try { M = k [ g ] , M ( M . isolateScope ? P : e , Q , y , M . require && t ( M . directiveName , M . require , Q , ca ) , ra ) } catch ( H ) { l ( H , ia ( Q ) ) } g = e ; K && ( K . template || null === K . templateUrl ) && ( g = P ) ; a && a ( g , f . childNodes , u , n ) ; for ( g = q . length - 1 ; 0 <= g ; g -- ) try { M = q [ g ] , M ( M . isolateScope ? P : e , Q , y , M . require && t ( M . directiveName , M . require , Q , ca ) , ra ) } catch ( D ) { l ( D , ia ( Q ) ) } } n = n || { } ; for ( var y = - Number . MAX _VALUE ,
M , O = n . controllerDirectives , K = n . newIsolateScopeDirective , I = n . templateDirective , ea = n . nonTlbTranscludeDirective , F = ! 1 , E = ! 1 , Ia = n . hasElementTranscludeDirective , x = d . $$element = A ( c ) , H , z , V , S = e , R , Ha = 0 , sa = a . length ; Ha < sa ; Ha ++ ) { H = a [ Ha ] ; var U = H . $$start , Y = H . $$end ; U && ( x = P ( c , U , Y ) ) ; V = u ; if ( y > H . priority ) break ; if ( V = H . scope ) M = M || H , H . templateUrl || ( fb ( "new/isolated scope" , K , H , x ) , T ( V ) && ( K = H ) ) ; z = H . name ; ! H . templateUrl && H . controller && ( V = H . controller , O = O || { } , fb ( "'" + z + "' controller" , O [ z ] , H , x ) , O [ z ] = H ) ; if ( V = H . transclude ) F = ! 0 , H . $$tlb ||
( fb ( "transclusion" , ea , H , x ) , ea = H ) , "element" == V ? ( Ia = ! 0 , y = H . priority , V = x , x = d . $$element = A ( X . createComment ( " " + z + ": " + d [ z ] + " " ) ) , c = x [ 0 ] , ra ( f , wa . call ( V , 0 ) , c ) , S = B ( V , e , y , g && g . name , { nonTlbTranscludeDirective : ea } ) ) : ( V = A ( Kb ( c ) ) . contents ( ) , x . empty ( ) , S = B ( V , e ) ) ; if ( H . template ) if ( E = ! 0 , fb ( "template" , I , H , x ) , I = H , V = N ( H . template ) ? H . template ( x , d ) : H . template , V = W ( V ) , H . replace ) { g = H ; V = Ib . test ( V ) ? A ( $ ( V ) ) : [ ] ; c = V [ 0 ] ; if ( 1 != V . length || 1 !== c . nodeType ) throw ja ( "tplrt" , z , "" ) ; ra ( f , x , c ) ; sa = { $attr : { } } ; V = ca ( c , [ ] , sa ) ; var Z = a . splice ( Ha +
1 , a . length - ( Ha + 1 ) ) ; K && D ( V ) ; a = a . concat ( V ) . concat ( Z ) ; v ( d , sa ) ; sa = a . length } else x . html ( V ) ; if ( H . templateUrl ) E = ! 0 , fb ( "template" , I , H , x ) , I = H , H . replace && ( g = H ) , J = te ( a . splice ( Ha , a . length - Ha ) , x , d , f , F && S , k , q , { controllerDirectives : O , newIsolateScopeDirective : K , templateDirective : I , nonTlbTranscludeDirective : ea } ) , sa = a . length ; else if ( H . compile ) try { R = H . compile ( x , d , S ) , N ( R ) ? w ( null , R , U , Y ) : R && w ( R . pre , R . post , U , Y ) } catch ( ve ) { l ( ve , ia ( x ) ) } H . terminal && ( J . terminal = ! 0 , y = Math . max ( y , H . priority ) ) } J . scope = M && ! 0 === M . scope ; J . transcludeOnThisElement =
F ; J . templateOnThisElement = E ; J . transclude = S ; n . hasElementTranscludeDirective = Ia ; return J } function D ( a ) { for ( var b = 0 , c = a . length ; b < c ; b ++ ) a [ b ] = $b ( a [ b ] , { $$isolateScope : ! 0 } ) } function ea ( b , e , f , g , p , m , n ) { if ( e === p ) return null ; p = null ; if ( c . hasOwnProperty ( e ) ) { var q ; e = a . get ( e + d ) ; for ( var w = 0 , s = e . length ; w < s ; w ++ ) try { q = e [ w ] , ( g === u || g > q . priority ) && - 1 != q . restrict . indexOf ( f ) && ( m && ( q = $b ( q , { $$start : m , $$end : n } ) ) , b . push ( q ) , p = q ) } catch ( y ) { l ( y ) } } return p } function v ( a , b ) { var c = b . $attr , d = a . $attr , e = a . $$element ; r ( a , function ( d , e ) { "$" !=
e . charAt ( 0 ) && ( b [ e ] && b [ e ] !== d && ( d += ( "style" === e ? ";" : " " ) + b [ e ] ) , a . $set ( e , d , ! 0 , c [ e ] ) ) } ) ; r ( b , function ( b , f ) { "class" == f ? ( ba ( e , b ) , a [ "class" ] = ( a [ "class" ] ? a [ "class" ] + " " : "" ) + b ) : "style" == f ? ( e . attr ( "style" , e . attr ( "style" ) + ";" + b ) , a . style = ( a . style ? a . style + ";" : "" ) + b ) : "$" == f . charAt ( 0 ) || a . hasOwnProperty ( f ) || ( a [ f ] = b , d [ f ] = c [ f ] ) } ) } function te ( a , b , c , d , e , f , g , k ) { var p = [ ] , l , m , w = b [ 0 ] , s = a . shift ( ) , y = E ( { } , s , { templateUrl : null , transclude : null , replace : null , $$originalDirective : s } ) , J = N ( s . templateUrl ) ? s . templateUrl ( b , c ) : s . templateUrl ;
b . empty ( ) ; n . get ( t . getTrustedResourceUrl ( J ) , { cache : q } ) . success ( function ( q ) { var n , t ; q = W ( q ) ; if ( s . replace ) { q = Ib . test ( q ) ? A ( $ ( q ) ) : [ ] ; n = q [ 0 ] ; if ( 1 != q . length || 1 !== n . nodeType ) throw ja ( "tplrt" , s . name , J ) ; q = { $attr : { } } ; ra ( d , b , n ) ; var B = ca ( n , [ ] , q ) ; T ( s . scope ) && D ( B ) ; a = B . concat ( a ) ; v ( c , q ) } else n = w , b . html ( q ) ; a . unshift ( y ) ; l = I ( a , n , c , e , b , s , f , g , k ) ; r ( d , function ( a , c ) { a == n && ( d [ c ] = b [ 0 ] ) } ) ; for ( m = O ( b [ 0 ] . childNodes , e ) ; p . length ; ) { q = p . shift ( ) ; t = p . shift ( ) ; var K = p . shift ( ) , C = p . shift ( ) , B = b [ 0 ] ; if ( t !== w ) { var P = t . className ; k . hasElementTranscludeDirective &&
s . replace || ( B = Kb ( n ) ) ; ra ( K , A ( t ) , B ) ; ba ( A ( B ) , P ) } t = l . transcludeOnThisElement ? M ( q , l . transclude , C ) : C ; l ( m , q , B , d , t ) } p = null } ) . error ( function ( a , b , c , d ) { throw ja ( "tpload" , d . url ) ; } ) ; return function ( a , b , c , d , e ) { a = e ; p ? ( p . push ( b ) , p . push ( c ) , p . push ( d ) , p . push ( a ) ) : ( l . transcludeOnThisElement && ( a = M ( b , l . transclude , e ) ) , l ( m , b , c , d , a ) ) } } function F ( a , b ) { var c = b . priority - a . priority ; return 0 !== c ? c : a . name !== b . name ? a . name < b . name ? - 1 : 1 : a . index - b . index } function fb ( a , b , c , d ) { if ( b ) throw ja ( "multidir" , b . name , c . name , a , ia ( d ) ) ; } function x ( a ,
c ) { var d = b ( c , ! 0 ) ; d && a . push ( { priority : 0 , compile : function ( a ) { var b = a . parent ( ) . length ; b && ba ( a . parent ( ) , "ng-binding" ) ; return function ( a , c ) { var e = c . parent ( ) , f = e . data ( "$binding" ) || [ ] ; f . push ( d ) ; e . data ( "$binding" , f ) ; b || ba ( e , "ng-binding" ) ; a . $watch ( d , function ( a ) { c [ 0 ] . nodeValue = a } ) } } } ) } function z ( a , b ) { if ( "srcdoc" == b ) return t . HTML ; var c = Pa ( a ) ; if ( "xlinkHref" == b || "FORM" == c && "action" == b || "IMG" != c && ( "src" == b || "ngSrc" == b ) ) return t . RESOURCE _URL } function S ( a , c , d , e ) { var f = b ( d , ! 0 ) ; if ( f ) { if ( "multiple" === e && "SELECT" ===
Pa ( a ) ) throw ja ( "selmulti" , ia ( a ) ) ; c . push ( { priority : 100 , compile : function ( ) { return { pre : function ( c , d , k ) { d = k . $$observers || ( k . $$observers = { } ) ; if ( g . test ( e ) ) throw ja ( "nodomevents" ) ; if ( f = b ( k [ e ] , ! 0 , z ( a , e ) ) ) k [ e ] = f ( c ) , ( d [ e ] || ( d [ e ] = [ ] ) ) . $$inter = ! 0 , ( k . $$observers && k . $$observers [ e ] . $$scope || c ) . $watch ( f , function ( a , b ) { "class" === e && a != b ? k . $updateClass ( a , b ) : k . $set ( e , a ) } ) } } } } ) } } function ra ( a , b , c ) { var d = b [ 0 ] , e = b . length , f = d . parentNode , g , k ; if ( a ) for ( g = 0 , k = a . length ; g < k ; g ++ ) if ( a [ g ] == d ) { a [ g ++ ] = c ; k = g + e - 1 ; for ( var p = a . length ; g <
p ; g ++ , k ++ ) k < p ? a [ g ] = a [ k ] : delete a [ g ] ; a . length -= e - 1 ; break } f && f . replaceChild ( c , d ) ; a = X . createDocumentFragment ( ) ; a . appendChild ( d ) ; c [ A . expando ] = d [ A . expando ] ; d = 1 ; for ( e = b . length ; d < e ; d ++ ) f = b [ d ] , A ( f ) . remove ( ) , a . appendChild ( f ) , delete b [ d ] ; b [ 0 ] = c ; b . length = 1 } function rc ( a , b ) { return E ( function ( ) { return a . apply ( null , arguments ) } , a , b ) } var Ob = function ( a , b ) { this . $$element = a ; this . $attr = b || { } } ; Ob . prototype = { $normalize : qa , $addClass : function ( a ) { a && 0 < a . length && y . addClass ( this . $$element , a ) } , $removeClass : function ( a ) { a && 0 <
a . length && y . removeClass ( this . $$element , a ) } , $updateClass : function ( a , b ) { var c = sc ( a , b ) , d = sc ( b , a ) ; 0 === c . length ? y . removeClass ( this . $$element , d ) : 0 === d . length ? y . addClass ( this . $$element , c ) : y . setClass ( this . $$element , c , d ) } , $set : function ( a , b , c , d ) { var e = oc ( this . $$element [ 0 ] , a ) ; e && ( this . $$element . prop ( a , b ) , d = e ) ; this [ a ] = b ; d ? this . $attr [ a ] = d : ( d = this . $attr [ a ] ) || ( this . $attr [ a ] = d = nb ( a , "-" ) ) ; e = Pa ( this . $$element ) ; if ( "A" === e && "href" === a || "IMG" === e && "src" === a ) this [ a ] = b = K ( b , "src" === a ) ; ! 1 !== c && ( null === b || b === u ? this . $$element . removeAttr ( d ) :
this . $$element . attr ( d , b ) ) ; ( c = this . $$observers ) && r ( c [ a ] , function ( a ) { try { a ( b ) } catch ( c ) { l ( c ) } } ) } , $observe : function ( a , b ) { var c = this , d = c . $$observers || ( c . $$observers = { } ) , e = d [ a ] || ( d [ a ] = [ ] ) ; e . push ( b ) ; J . $evalAsync ( function ( ) { e . $$inter || b ( c [ a ] ) } ) ; return b } } ; var sa = b . startSymbol ( ) , Ia = b . endSymbol ( ) , W = "{{" == sa || "}}" == Ia ? ga : function ( a ) { return a . replace ( /\{\{/g , sa ) . replace ( /}}/g , Ia ) } , U = /^ngAttr[A-Z]/ ; return B } ] } function qa ( b ) { return ab ( b . replace ( we , "" ) ) } function sc ( b , a ) { var c = "" , d = b . split ( /\s+/ ) , e = a . split ( /\s+/ ) ,
f = 0 ; a : for ( ; f < d . length ; f ++ ) { for ( var g = d [ f ] , h = 0 ; h < e . length ; h ++ ) if ( g == e [ h ] ) continue a ; c += ( 0 < c . length ? " " : "" ) + g } return c } function Od ( ) { var b = { } , a = /^(\S+)(\s+as\s+(\w+))?$/ ; this . register = function ( a , d ) { Ea ( a , "controller" ) ; T ( a ) ? E ( b , a ) : b [ a ] = d } ; this . $get = [ "$injector" , "$window" , function ( c , d ) { return function ( e , f ) { var g , h , k ; G ( e ) && ( g = e . match ( a ) , h = g [ 1 ] , k = g [ 3 ] , e = b . hasOwnProperty ( h ) ? b [ h ] : fc ( f . $scope , h , ! 0 ) || fc ( d , h , ! 0 ) , Ya ( e , h , ! 0 ) ) ; g = c . instantiate ( e , f ) ; if ( k ) { if ( ! f || "object" !== typeof f . $scope ) throw z ( "$controller" ) ( "noscp" ,
h || e . name , k ) ; f . $scope [ k ] = g } return g } } ] } function Pd ( ) { this . $get = [ "$window" , function ( b ) { return A ( b . document ) } ] } function Qd ( ) { this . $get = [ "$log" , function ( b ) { return function ( a , c ) { b . error . apply ( b , arguments ) } } ] } function tc ( b ) { var a = { } , c , d , e ; if ( ! b ) return a ; r ( b . split ( "\n" ) , function ( b ) { e = b . indexOf ( ":" ) ; c = x ( $ ( b . substr ( 0 , e ) ) ) ; d = $ ( b . substr ( e + 1 ) ) ; c && ( a [ c ] = a [ c ] ? a [ c ] + ", " + d : d ) } ) ; return a } function uc ( b ) { var a = T ( b ) ? b : u ; return function ( c ) { a || ( a = tc ( b ) ) ; return c ? a [ x ( c ) ] || null : a } } function vc ( b , a , c ) { if ( N ( c ) ) return c ( b ,
a ) ; r ( c , function ( c ) { b = c ( b , a ) } ) ; return b } function Td ( ) { var b = /^\s*(\[|\{[^\{])/ , a = /[\}\]]\s*$/ , c = /^\)\]\}',?\n/ , d = { "Content-Type" : "application/json;charset=utf-8" } , e = this . defaults = { transformResponse : [ function ( d ) { G ( d ) && ( d = d . replace ( c , "" ) , b . test ( d ) && a . test ( d ) && ( d = ac ( d ) ) ) ; return d } ] , transformRequest : [ function ( a ) { return T ( a ) && "[object File]" !== Ba . call ( a ) && "[object Blob]" !== Ba . call ( a ) ? oa ( a ) : a } ] , headers : { common : { Accept : "application/json, text/plain, */*" } , post : ha ( d ) , put : ha ( d ) , patch : ha ( d ) } , xsrfCookieName : "XSRF-TOKEN" ,
xsrfHeaderName : "X-XSRF-TOKEN" } , f = this . interceptors = [ ] , g = this . responseInterceptors = [ ] ; this . $get = [ "$httpBackend" , "$browser" , "$cacheFactory" , "$rootScope" , "$q" , "$injector" , function ( a , b , c , d , n , q ) { function p ( a ) { function b ( a ) { var d = E ( { } , a , { data : vc ( a . data , a . headers , c . transformResponse ) } ) ; return 200 <= a . status && 300 > a . status ? d : n . reject ( d ) } var c = { method : "get" , transformRequest : e . transformRequest , transformResponse : e . transformResponse } , d = function ( a ) { var b = e . headers , c = E ( { } , a . headers ) , d , f , b = E ( { } , b . common , b [ x ( a . method ) ] ) ;
a : for ( d in b ) { a = x ( d ) ; for ( f in c ) if ( x ( f ) === a ) continue a ; c [ d ] = b [ d ] } ( function ( a ) { var b ; r ( a , function ( c , d ) { N ( c ) && ( b = c ( ) , null != b ? a [ d ] = b : delete a [ d ] ) } ) } ) ( c ) ; return c } ( a ) ; E ( c , a ) ; c . headers = d ; c . method = La ( c . method ) ; var f = [ function ( a ) { d = a . headers ; var c = vc ( a . data , uc ( d ) , a . transformRequest ) ; F ( c ) && r ( d , function ( a , b ) { "content-type" === x ( b ) && delete d [ b ] } ) ; F ( a . withCredentials ) && ! F ( e . withCredentials ) && ( a . withCredentials = e . withCredentials ) ; return s ( a , c , d ) . then ( b , b ) } , u ] , g = n . when ( c ) ; for ( r ( t , function ( a ) { ( a . request || a . requestError ) &&
f . unshift ( a . request , a . requestError ) ; ( a . response || a . responseError ) && f . push ( a . response , a . responseError ) } ) ; f . length ; ) { a = f . shift ( ) ; var h = f . shift ( ) , g = g . then ( a , h ) } g . success = function ( a ) { g . then ( function ( b ) { a ( b . data , b . status , b . headers , c ) } ) ; return g } ; g . error = function ( a ) { g . then ( null , function ( b ) { a ( b . data , b . status , b . headers , c ) } ) ; return g } ; return g } function s ( c , f , g ) { function m ( a , b , c , e ) { C && ( 200 <= a && 300 > a ? C . put ( A , [ a , b , tc ( c ) , e ] ) : C . remove ( A ) ) ; q ( b , a , c , e ) ; d . $$phase || d . $apply ( ) } function q ( a , b , d , e ) { b = Math . max ( b , 0 ) ; ( 200 <=
b && 300 > b ? t . resolve : t . reject ) ( { data : a , status : b , headers : uc ( d ) , config : c , statusText : e } ) } function s ( ) { var a = Ta ( p . pendingRequests , c ) ; - 1 !== a && p . pendingRequests . splice ( a , 1 ) } var t = n . defer ( ) , r = t . promise , C , I , A = J ( c . url , c . params ) ; p . pendingRequests . push ( c ) ; r . then ( s , s ) ; ! c . cache && ! e . cache || ( ! 1 === c . cache || "GET" !== c . method && "JSONP" !== c . method ) || ( C = T ( c . cache ) ? c . cache : T ( e . cache ) ? e . cache : w ) ; if ( C ) if ( I = C . get ( A ) , D ( I ) ) { if ( I && N ( I . then ) ) return I . then ( s , s ) , I ; L ( I ) ? q ( I [ 1 ] , I [ 0 ] , ha ( I [ 2 ] ) , I [ 3 ] ) : q ( I , 200 , { } , "OK" ) } else C . put ( A , r ) ; F ( I ) &&
( ( I = Pb ( c . url ) ? b . cookies ( ) [ c . xsrfCookieName || e . xsrfCookieName ] : u ) && ( g [ c . xsrfHeaderName || e . xsrfHeaderName ] = I ) , a ( c . method , A , f , m , g , c . timeout , c . withCredentials , c . responseType ) ) ; return r } function J ( a , b ) { if ( ! b ) return a ; var c = [ ] ; Sc ( b , function ( a , b ) { null === a || F ( a ) || ( L ( a ) || ( a = [ a ] ) , r ( a , function ( a ) { T ( a ) && ( a = va ( a ) ? a . toISOString ( ) : oa ( a ) ) ; c . push ( Da ( b ) + "=" + Da ( a ) ) } ) ) } ) ; 0 < c . length && ( a += ( - 1 == a . indexOf ( "?" ) ? "?" : "&" ) + c . join ( "&" ) ) ; return a } var w = c ( "$http" ) , t = [ ] ; r ( f , function ( a ) { t . unshift ( G ( a ) ? q . get ( a ) : q . invoke ( a ) ) } ) ; r ( g ,
function ( a , b ) { var c = G ( a ) ? q . get ( a ) : q . invoke ( a ) ; t . splice ( b , 0 , { response : function ( a ) { return c ( n . when ( a ) ) } , responseError : function ( a ) { return c ( n . reject ( a ) ) } } ) } ) ; p . pendingRequests = [ ] ; ( function ( a ) { r ( arguments , function ( a ) { p [ a ] = function ( b , c ) { return p ( E ( c || { } , { method : a , url : b } ) ) } } ) } ) ( "get" , "delete" , "head" , "jsonp" ) ; ( function ( a ) { r ( arguments , function ( a ) { p [ a ] = function ( b , c , d ) { return p ( E ( d || { } , { method : a , url : b , data : c } ) ) } } ) } ) ( "post" , "put" , "patch" ) ; p . defaults = e ; return p } ] } function xe ( b ) { if ( 8 >= R && ( ! b . match ( /^(get|post|head|put|delete|options)$/i ) ||
! W . XMLHttpRequest ) ) return new W . ActiveXObject ( "Microsoft.XMLHTTP" ) ; if ( W . XMLHttpRequest ) return new W . XMLHttpRequest ; throw z ( "$httpBackend" ) ( "noxhr" ) ; } function Ud ( ) { this . $get = [ "$browser" , "$window" , "$document" , function ( b , a , c ) { return ye ( b , xe , b . defer , a . angular . callbacks , c [ 0 ] ) } ] } function ye ( b , a , c , d , e ) { function f ( a , b , c ) { var f = e . createElement ( "script" ) , g = null ; f . type = "text/javascript" ; f . src = a ; f . async = ! 0 ; g = function ( a ) { bb ( f , "load" , g ) ; bb ( f , "error" , g ) ; e . body . removeChild ( f ) ; f = null ; var h = - 1 , s = "unknown" ; a && ( "load" !==
a . type || d [ b ] . called || ( a = { type : "error" } ) , s = a . type , h = "error" === a . type ? 404 : 200 ) ; c && c ( h , s ) } ; sb ( f , "load" , g ) ; sb ( f , "error" , g ) ; 8 >= R && ( f . onreadystatechange = function ( ) { G ( f . readyState ) && /loaded|complete/ . test ( f . readyState ) && ( f . onreadystatechange = null , g ( { type : "load" } ) ) } ) ; e . body . appendChild ( f ) ; return g } var g = - 1 ; return function ( e , k , m , l , n , q , p , s ) { function J ( ) { t = g ; K && K ( ) ; B && B . abort ( ) } function w ( a , d , e , f , g ) { O && c . cancel ( O ) ; K = B = null ; 0 === d && ( d = e ? 200 : "file" == xa ( k ) . protocol ? 404 : 0 ) ; a ( 1223 === d ? 204 : d , e , f , g || "" ) ; b . $$completeOutstandingRequest ( v ) }
var t ; b . $$incOutstandingRequestCount ( ) ; k = k || b . url ( ) ; if ( "jsonp" == x ( e ) ) { var y = "_" + ( d . counter ++ ) . toString ( 36 ) ; d [ y ] = function ( a ) { d [ y ] . data = a ; d [ y ] . called = ! 0 } ; var K = f ( k . replace ( "JSON_CALLBACK" , "angular.callbacks." + y ) , y , function ( a , b ) { w ( l , a , d [ y ] . data , "" , b ) ; d [ y ] = v } ) } else { var B = a ( e ) ; B . open ( e , k , ! 0 ) ; r ( n , function ( a , b ) { D ( a ) && B . setRequestHeader ( b , a ) } ) ; B . onreadystatechange = function ( ) { if ( B && 4 == B . readyState ) { var a = null , b = null , c = "" ; t !== g && ( a = B . getAllResponseHeaders ( ) , b = "response" in B ? B . response : B . responseText ) ; t === g &&
10 > R || ( c = B . statusText ) ; w ( l , t || B . status , b , a , c ) } } ; p && ( B . withCredentials = ! 0 ) ; if ( s ) try { B . responseType = s } catch ( ba ) { if ( "json" !== s ) throw ba ; } B . send ( m || null ) } if ( 0 < q ) var O = c ( J , q ) ; else q && N ( q . then ) && q . then ( J ) } } function Rd ( ) { var b = "{{" , a = "}}" ; this . startSymbol = function ( a ) { return a ? ( b = a , this ) : b } ; this . endSymbol = function ( b ) { return b ? ( a = b , this ) : a } ; this . $get = [ "$parse" , "$exceptionHandler" , "$sce" , function ( c , d , e ) { function f ( f , m , l ) { for ( var n , q , p = 0 , s = [ ] , J = f . length , w = ! 1 , t = [ ] ; p < J ; ) - 1 != ( n = f . indexOf ( b , p ) ) && - 1 != ( q = f . indexOf ( a ,
n + g ) ) ? ( p != n && s . push ( f . substring ( p , n ) ) , s . push ( p = c ( w = f . substring ( n + g , q ) ) ) , p . exp = w , p = q + h , w = ! 0 ) : ( p != J && s . push ( f . substring ( p ) ) , p = J ) ; ( J = s . length ) || ( s . push ( "" ) , J = 1 ) ; if ( l && 1 < s . length ) throw wc ( "noconcat" , f ) ; if ( ! m || w ) return t . length = J , p = function ( a ) { try { for ( var b = 0 , c = J , g ; b < c ; b ++ ) { if ( "function" == typeof ( g = s [ b ] ) ) if ( g = g ( a ) , g = l ? e . getTrusted ( l , g ) : e . valueOf ( g ) , null == g ) g = "" ; else switch ( typeof g ) { case "string" : break ; case "number" : g = "" + g ; break ; default : g = oa ( g ) } t [ b ] = g } return t . join ( "" ) } catch ( h ) { a = wc ( "interr" , f , h . toString ( ) ) ,
d ( a ) } } , p . exp = f , p . parts = s , p } var g = b . length , h = a . length ; f . startSymbol = function ( ) { return b } ; f . endSymbol = function ( ) { return a } ; return f } ] } function Sd ( ) { this . $get = [ "$rootScope" , "$window" , "$q" , function ( b , a , c ) { function d ( d , g , h , k ) { var m = a . setInterval , l = a . clearInterval , n = c . defer ( ) , q = n . promise , p = 0 , s = D ( k ) && ! k ; h = D ( h ) ? h : 0 ; q . then ( null , null , d ) ; q . $$intervalId = m ( function ( ) { n . notify ( p ++ ) ; 0 < h && p >= h && ( n . resolve ( p ) , l ( q . $$intervalId ) , delete e [ q . $$intervalId ] ) ; s || b . $apply ( ) } , g ) ; e [ q . $$intervalId ] = n ; return q } var e = { } ; d . cancel =
function ( b ) { return b && b . $$intervalId in e ? ( e [ b . $$intervalId ] . reject ( "canceled" ) , a . clearInterval ( b . $$intervalId ) , delete e [ b . $$intervalId ] , ! 0 ) : ! 1 } ; return d } ] } function ad ( ) { this . $get = function ( ) { return { id : "en-us" , NUMBER _FORMATS : { DECIMAL _SEP : "." , GROUP _SEP : "," , PATTERNS : [ { minInt : 1 , minFrac : 0 , maxFrac : 3 , posPre : "" , posSuf : "" , negPre : "-" , negSuf : "" , gSize : 3 , lgSize : 3 } , { minInt : 1 , minFrac : 2 , maxFrac : 2 , posPre : "\u00a4" , posSuf : "" , negPre : "(\u00a4" , negSuf : ")" , gSize : 3 , lgSize : 3 } ] , CURRENCY _SYM : "$" } , DATETIME _FORMATS : { MONTH : "January February March April May June July August September October November December" . split ( " " ) ,
SHORTMONTH : "Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec" . split ( " " ) , DAY : "Sunday Monday Tuesday Wednesday Thursday Friday Saturday" . split ( " " ) , SHORTDAY : "Sun Mon Tue Wed Thu Fri Sat" . split ( " " ) , AMPMS : [ "AM" , "PM" ] , medium : "MMM d, y h:mm:ss a" , "short" : "M/d/yy h:mm a" , fullDate : "EEEE, MMMM d, y" , longDate : "MMMM d, y" , mediumDate : "MMM d, y" , shortDate : "M/d/yy" , mediumTime : "h:mm:ss a" , shortTime : "h:mm a" } , pluralCat : function ( b ) { return 1 === b ? "one" : "other" } } } } function Qb ( b ) { b = b . split ( "/" ) ; for ( var a = b . length ; a -- ; ) b [ a ] =
mb ( b [ a ] ) ; return b . join ( "/" ) } function xc ( b , a , c ) { b = xa ( b , c ) ; a . $$protocol = b . protocol ; a . $$host = b . hostname ; a . $$port = U ( b . port ) || ze [ b . protocol ] || null } function yc ( b , a , c ) { var d = "/" !== b . charAt ( 0 ) ; d && ( b = "/" + b ) ; b = xa ( b , c ) ; a . $$path = decodeURIComponent ( d && "/" === b . pathname . charAt ( 0 ) ? b . pathname . substring ( 1 ) : b . pathname ) ; a . $$search = cc ( b . search ) ; a . $$hash = decodeURIComponent ( b . hash ) ; a . $$path && "/" != a . $$path . charAt ( 0 ) && ( a . $$path = "/" + a . $$path ) } function ta ( b , a ) { if ( 0 === a . indexOf ( b ) ) return a . substr ( b . length ) } function Ga ( b ) { var a =
b . indexOf ( "#" ) ; return - 1 == a ? b : b . substr ( 0 , a ) } function Rb ( b ) { return b . substr ( 0 , Ga ( b ) . lastIndexOf ( "/" ) + 1 ) } function zc ( b , a ) { this . $$html5 = ! 0 ; a = a || "" ; var c = Rb ( b ) ; xc ( b , this , b ) ; this . $$parse = function ( a ) { var e = ta ( c , a ) ; if ( ! G ( e ) ) throw Sb ( "ipthprfx" , a , c ) ; yc ( e , this , b ) ; this . $$path || ( this . $$path = "/" ) ; this . $$compose ( ) } ; this . $$compose = function ( ) { var a = Cb ( this . $$search ) , b = this . $$hash ? "#" + mb ( this . $$hash ) : "" ; this . $$url = Qb ( this . $$path ) + ( a ? "?" + a : "" ) + b ; this . $$absUrl = c + this . $$url . substr ( 1 ) } ; this . $$parseLinkUrl = function ( d ,
e ) { var f , g ; ( f = ta ( b , d ) ) !== u ? ( g = f , g = ( f = ta ( a , f ) ) !== u ? c + ( ta ( "/" , f ) || f ) : b + g ) : ( f = ta ( c , d ) ) !== u ? g = c + f : c == d + "/" && ( g = c ) ; g && this . $$parse ( g ) ; return ! ! g } } function Tb ( b , a ) { var c = Rb ( b ) ; xc ( b , this , b ) ; this . $$parse = function ( d ) { var e = ta ( b , d ) || ta ( c , d ) , e = "#" == e . charAt ( 0 ) ? ta ( a , e ) : this . $$html5 ? e : "" ; if ( ! G ( e ) ) throw Sb ( "ihshprfx" , d , a ) ; yc ( e , this , b ) ; d = this . $$path ; var f = /^\/[A-Z]:(\/.*)/ ; 0 === e . indexOf ( b ) && ( e = e . replace ( b , "" ) ) ; f . exec ( e ) || ( d = ( e = f . exec ( d ) ) ? e [ 1 ] : d ) ; this . $$path = d ; this . $$compose ( ) } ; this . $$compose = function ( ) { var c = Cb ( this . $$search ) ,
e = this . $$hash ? "#" + mb ( this . $$hash ) : "" ; this . $$url = Qb ( this . $$path ) + ( c ? "?" + c : "" ) + e ; this . $$absUrl = b + ( this . $$url ? a + this . $$url : "" ) } ; this . $$parseLinkUrl = function ( a , c ) { return Ga ( b ) == Ga ( a ) ? ( this . $$parse ( a ) , ! 0 ) : ! 1 } } function Ac ( b , a ) { this . $$html5 = ! 0 ; Tb . apply ( this , arguments ) ; var c = Rb ( b ) ; this . $$parseLinkUrl = function ( d , e ) { var f , g ; b == Ga ( d ) ? f = d : ( g = ta ( c , d ) ) ? f = b + a + g : c === d + "/" && ( f = c ) ; f && this . $$parse ( f ) ; return ! ! f } ; this . $$compose = function ( ) { var c = Cb ( this . $$search ) , e = this . $$hash ? "#" + mb ( this . $$hash ) : "" ; this . $$url = Qb ( this . $$path ) +
( c ? "?" + c : "" ) + e ; this . $$absUrl = b + a + this . $$url } } function tb ( b ) { return function ( ) { return this [ b ] } } function Bc ( b , a ) { return function ( c ) { if ( F ( c ) ) return this [ b ] ; this [ b ] = a ( c ) ; this . $$compose ( ) ; return this } } function Vd ( ) { var b = "" , a = ! 1 ; this . hashPrefix = function ( a ) { return D ( a ) ? ( b = a , this ) : b } ; this . html5Mode = function ( b ) { return D ( b ) ? ( a = b , this ) : a } ; this . $get = [ "$rootScope" , "$browser" , "$sniffer" , "$rootElement" , function ( c , d , e , f ) { function g ( a ) { c . $broadcast ( "$locationChangeSuccess" , h . absUrl ( ) , a ) } var h , k = d . baseHref ( ) , m = d . url ( ) ;
a ? ( k = m . substring ( 0 , m . indexOf ( "/" , m . indexOf ( "//" ) + 2 ) ) + ( k || "/" ) , e = e . history ? zc : Ac ) : ( k = Ga ( m ) , e = Tb ) ; h = new e ( k , "#" + b ) ; h . $$parseLinkUrl ( m , m ) ; var l = /^\s*(javascript|mailto):/i ; f . on ( "click" , function ( a ) { if ( ! a . ctrlKey && ! a . metaKey && 2 != a . which ) { for ( var b = A ( a . target ) ; "a" !== x ( b [ 0 ] . nodeName ) ; ) if ( b [ 0 ] === f [ 0 ] || ! ( b = b . parent ( ) ) [ 0 ] ) return ; var e = b . prop ( "href" ) , g = b . attr ( "href" ) || b . attr ( "xlink:href" ) ; T ( e ) && "[object SVGAnimatedString]" === e . toString ( ) && ( e = xa ( e . animVal ) . href ) ; l . test ( e ) || ( ! e || ( b . attr ( "target" ) || a . isDefaultPrevented ( ) ) ||
! h . $$parseLinkUrl ( e , g ) ) || ( a . preventDefault ( ) , h . absUrl ( ) != d . url ( ) && ( c . $apply ( ) , W . angular [ "ff-684208-preventDefault" ] = ! 0 ) ) } } ) ; h . absUrl ( ) != m && d . url ( h . absUrl ( ) , ! 0 ) ; d . onUrlChange ( function ( a ) { h . absUrl ( ) != a && ( c . $evalAsync ( function ( ) { var b = h . absUrl ( ) ; h . $$parse ( a ) ; c . $broadcast ( "$locationChangeStart" , a , b ) . defaultPrevented ? ( h . $$parse ( b ) , d . url ( b ) ) : g ( b ) } ) , c . $$phase || c . $digest ( ) ) } ) ; var n = 0 ; c . $watch ( function ( ) { var a = d . url ( ) , b = h . $$replace ; n && a == h . absUrl ( ) || ( n ++ , c . $evalAsync ( function ( ) { c . $broadcast ( "$locationChangeStart" ,
h . absUrl ( ) , a ) . defaultPrevented ? h . $$parse ( a ) : ( d . url ( h . absUrl ( ) , b ) , g ( a ) ) } ) ) ; h . $$replace = ! 1 ; return n } ) ; return h } ] } function Wd ( ) { var b = ! 0 , a = this ; this . debugEnabled = function ( a ) { return D ( a ) ? ( b = a , this ) : b } ; this . $get = [ "$window" , function ( c ) { function d ( a ) { a instanceof Error && ( a . stack ? a = a . message && - 1 === a . stack . indexOf ( a . message ) ? "Error: " + a . message + "\n" + a . stack : a . stack : a . sourceURL && ( a = a . message + "\n" + a . sourceURL + ":" + a . line ) ) ; return a } function e ( a ) { var b = c . console || { } , e = b [ a ] || b . log || v ; a = ! 1 ; try { a = ! ! e . apply } catch ( k ) { } return a ?
function ( ) { var a = [ ] ; r ( arguments , function ( b ) { a . push ( d ( b ) ) } ) ; return e . apply ( b , a ) } : function ( a , b ) { e ( a , null == b ? "" : b ) } } return { log : e ( "log" ) , info : e ( "info" ) , warn : e ( "warn" ) , error : e ( "error" ) , debug : function ( ) { var c = e ( "debug" ) ; return function ( ) { b && c . apply ( a , arguments ) } } ( ) } } ] } function ka ( b , a ) { if ( "__defineGetter__" === b || "__defineSetter__" === b || "__lookupGetter__" === b || "__lookupSetter__" === b || "__proto__" === b ) throw la ( "isecfld" , a ) ; return b } function ma ( b , a ) { if ( b ) { if ( b . constructor === b ) throw la ( "isecfn" , a ) ; if ( b . document &&
b . location && b . alert && b . setInterval ) throw la ( "isecwindow" , a ) ; if ( b . children && ( b . nodeName || b . prop && b . attr && b . find ) ) throw la ( "isecdom" , a ) ; if ( b === Object ) throw la ( "isecobj" , a ) ; } return b } function ub ( b , a , c , d , e ) { ma ( b , d ) ; e = e || { } ; a = a . split ( "." ) ; for ( var f , g = 0 ; 1 < a . length ; g ++ ) { f = ka ( a . shift ( ) , d ) ; var h = ma ( b [ f ] , d ) ; h || ( h = { } , b [ f ] = h ) ; b = h ; b . then && e . unwrapPromises && ( ya ( d ) , "$$v" in b || function ( a ) { a . then ( function ( b ) { a . $$v = b } ) } ( b ) , b . $$v === u && ( b . $$v = { } ) , b = b . $$v ) } f = ka ( a . shift ( ) , d ) ; ma ( b [ f ] , d ) ; return b [ f ] = c } function Qa ( b ) { return "constructor" ==
b } function Cc ( b , a , c , d , e , f , g ) { ka ( b , f ) ; ka ( a , f ) ; ka ( c , f ) ; ka ( d , f ) ; ka ( e , f ) ; var h = function ( a ) { return ma ( a , f ) } , k = g . expensiveChecks , m = k || Qa ( b ) ? h : ga , l = k || Qa ( a ) ? h : ga , n = k || Qa ( c ) ? h : ga , q = k || Qa ( d ) ? h : ga , p = k || Qa ( e ) ? h : ga ; return g . unwrapPromises ? function ( g , h ) { var k = h && h . hasOwnProperty ( b ) ? h : g , t ; if ( null == k ) return k ; ( k = m ( k [ b ] ) ) && k . then && ( ya ( f ) , "$$v" in k || ( t = k , t . $$v = u , t . then ( function ( a ) { t . $$v = m ( a ) } ) ) , k = m ( k . $$v ) ) ; if ( ! a ) return k ; if ( null == k ) return u ; ( k = l ( k [ a ] ) ) && k . then && ( ya ( f ) , "$$v" in k || ( t = k , t . $$v = u , t . then ( function ( a ) { t . $$v =
l ( a ) } ) ) , k = l ( k . $$v ) ) ; if ( ! c ) return k ; if ( null == k ) return u ; ( k = n ( k [ c ] ) ) && k . then && ( ya ( f ) , "$$v" in k || ( t = k , t . $$v = u , t . then ( function ( a ) { t . $$v = n ( a ) } ) ) , k = n ( k . $$v ) ) ; if ( ! d ) return k ; if ( null == k ) return u ; ( k = q ( k [ d ] ) ) && k . then && ( ya ( f ) , "$$v" in k || ( t = k , t . $$v = u , t . then ( function ( a ) { t . $$v = q ( a ) } ) ) , k = q ( k . $$v ) ) ; if ( ! e ) return k ; if ( null == k ) return u ; ( k = p ( k [ e ] ) ) && k . then && ( ya ( f ) , "$$v" in k || ( t = k , t . $$v = u , t . then ( function ( a ) { t . $$v = p ( a ) } ) ) , k = p ( k . $$v ) ) ; return k } : function ( f , g ) { var h = g && g . hasOwnProperty ( b ) ? g : f ; if ( null == h ) return h ; h = m ( h [ b ] ) ;
if ( ! a ) return h ; if ( null == h ) return u ; h = l ( h [ a ] ) ; if ( ! c ) return h ; if ( null == h ) return u ; h = n ( h [ c ] ) ; if ( ! d ) return h ; if ( null == h ) return u ; h = q ( h [ d ] ) ; return e ? null == h ? u : h = p ( h [ e ] ) : h } } function Ae ( b , a ) { return function ( c , d ) { return b ( c , d , ya , ma , a ) } } function Dc ( b , a , c ) { var d = a . expensiveChecks , e = d ? Be : Ce ; if ( e . hasOwnProperty ( b ) ) return e [ b ] ; var f = b . split ( "." ) , g = f . length , h ; if ( a . csp ) h = 6 > g ? Cc ( f [ 0 ] , f [ 1 ] , f [ 2 ] , f [ 3 ] , f [ 4 ] , c , a ) : function ( b , d ) { var e = 0 , h ; do h = Cc ( f [ e ++ ] , f [ e ++ ] , f [ e ++ ] , f [ e ++ ] , f [ e ++ ] , c , a ) ( b , d ) , d = u , b = h ; while ( e < g ) ; return h } ;
else { var k = "var p;\n" ; d && ( k += "s = eso(s, fe);\nl = eso(l, fe);\n" ) ; var m = d ; r ( f , function ( b , e ) { ka ( b , c ) ; var f = ( e ? "s" : '((l&&l.hasOwnProperty("' + b + '"))?l:s)' ) + '["' + b + '"]' , g = d || Qa ( b ) ; g && ( f = "eso(" + f + ", fe)" , m = ! 0 ) ; k += "if(s == null) return undefined;\ns=" + f + ";\n" ; a . unwrapPromises && ( k += 'if (s && s.then) {\n pw("' + c . replace ( /(["\r\n])/g , "\\$1" ) + '");\n if (!("$$v" in s)) {\n p=s;\n p.$$v = undefined;\n p.then(function(v) {p.$$v=' + ( g ? "eso(v)" : "v" ) + ";});\n}\n s=" + ( g ? "eso(s.$$v)" : "s.$$v" ) + "\n}\n" ) } ) ; k += "return s;" ;
h = new Function ( "s" , "l" , "pw" , "eso" , "fe" , k ) ; h . toString = aa ( k ) ; if ( m || a . unwrapPromises ) h = Ae ( h , c ) } "hasOwnProperty" !== b && ( e [ b ] = h ) ; return h } function Xd ( ) { var b = { } , a = { } , c = { csp : ! 1 , unwrapPromises : ! 1 , logPromiseWarnings : ! 0 , expensiveChecks : ! 1 } ; this . unwrapPromises = function ( a ) { return D ( a ) ? ( c . unwrapPromises = ! ! a , this ) : c . unwrapPromises } ; this . logPromiseWarnings = function ( a ) { return D ( a ) ? ( c . logPromiseWarnings = a , this ) : c . logPromiseWarnings } ; this . $get = [ "$filter" , "$sniffer" , "$log" , function ( d , e , f ) { c . csp = e . csp ; var g = { csp : c . csp ,
unwrapPromises : c . unwrapPromises , logPromiseWarnings : c . logPromiseWarnings , expensiveChecks : ! 0 } ; ya = function ( a ) { c . logPromiseWarnings && ! Ec . hasOwnProperty ( a ) && ( Ec [ a ] = ! 0 , f . warn ( "[$parse] Promise found in the expression `" + a + "`. Automatic unwrapping of promises in Angular expressions is deprecated." ) ) } ; return function ( e , f ) { var m ; switch ( typeof e ) { case "string" : var l = f ? a : b ; if ( l . hasOwnProperty ( e ) ) return l [ e ] ; m = f ? g : c ; var n = new Ub ( m ) ; m = ( new gb ( n , d , m ) ) . parse ( e ) ; "hasOwnProperty" !== e && ( l [ e ] = m ) ; return m ; case "function" : return e ;
default : return v } } } ] } function Zd ( ) { this . $get = [ "$rootScope" , "$exceptionHandler" , function ( b , a ) { return De ( function ( a ) { b . $evalAsync ( a ) } , a ) } ] } function De ( b , a ) { function c ( a ) { return a } function d ( a ) { return g ( a ) } var e = function ( ) { var g = [ ] , m , l ; return l = { resolve : function ( a ) { if ( g ) { var c = g ; g = u ; m = f ( a ) ; c . length && b ( function ( ) { for ( var a , b = 0 , d = c . length ; b < d ; b ++ ) a = c [ b ] , m . then ( a [ 0 ] , a [ 1 ] , a [ 2 ] ) } ) } } , reject : function ( a ) { l . resolve ( h ( a ) ) } , notify : function ( a ) { if ( g ) { var c = g ; g . length && b ( function ( ) { for ( var b , d = 0 , e = c . length ; d < e ; d ++ ) b =
c [ d ] , b [ 2 ] ( a ) } ) } } , promise : { then : function ( b , f , h ) { var l = e ( ) , J = function ( d ) { try { l . resolve ( ( N ( b ) ? b : c ) ( d ) ) } catch ( e ) { l . reject ( e ) , a ( e ) } } , w = function ( b ) { try { l . resolve ( ( N ( f ) ? f : d ) ( b ) ) } catch ( c ) { l . reject ( c ) , a ( c ) } } , t = function ( b ) { try { l . notify ( ( N ( h ) ? h : c ) ( b ) ) } catch ( d ) { a ( d ) } } ; g ? g . push ( [ J , w , t ] ) : m . then ( J , w , t ) ; return l . promise } , "catch" : function ( a ) { return this . then ( null , a ) } , "finally" : function ( a ) { function b ( a , c ) { var d = e ( ) ; c ? d . resolve ( a ) : d . reject ( a ) ; return d . promise } function d ( e , f ) { var g = null ; try { g = ( a || c ) ( ) } catch ( h ) { return b ( h ,
! 1 ) } return g && N ( g . then ) ? g . then ( function ( ) { return b ( e , f ) } , function ( a ) { return b ( a , ! 1 ) } ) : b ( e , f ) } return this . then ( function ( a ) { return d ( a , ! 0 ) } , function ( a ) { return d ( a , ! 1 ) } ) } } } } , f = function ( a ) { return a && N ( a . then ) ? a : { then : function ( c ) { var d = e ( ) ; b ( function ( ) { d . resolve ( c ( a ) ) } ) ; return d . promise } } } , g = function ( a ) { var b = e ( ) ; b . reject ( a ) ; return b . promise } , h = function ( c ) { return { then : function ( f , g ) { var h = e ( ) ; b ( function ( ) { try { h . resolve ( ( N ( g ) ? g : d ) ( c ) ) } catch ( b ) { h . reject ( b ) , a ( b ) } } ) ; return h . promise } } } ; return { defer : e , reject : g ,
when : function ( h , m , l , n ) { var q = e ( ) , p , s = function ( b ) { try { return ( N ( m ) ? m : c ) ( b ) } catch ( d ) { return a ( d ) , g ( d ) } } , J = function ( b ) { try { return ( N ( l ) ? l : d ) ( b ) } catch ( c ) { return a ( c ) , g ( c ) } } , w = function ( b ) { try { return ( N ( n ) ? n : c ) ( b ) } catch ( d ) { a ( d ) } } ; b ( function ( ) { f ( h ) . then ( function ( a ) { p || ( p = ! 0 , q . resolve ( f ( a ) . then ( s , J , w ) ) ) } , function ( a ) { p || ( p = ! 0 , q . resolve ( J ( a ) ) ) } , function ( a ) { p || q . notify ( w ( a ) ) } ) } ) ; return q . promise } , all : function ( a ) { var b = e ( ) , c = 0 , d = L ( a ) ? [ ] : { } ; r ( a , function ( a , e ) { c ++ ; f ( a ) . then ( function ( a ) { d . hasOwnProperty ( e ) || ( d [ e ] = a ,
-- c || b . resolve ( d ) ) } , function ( a ) { d . hasOwnProperty ( e ) || b . reject ( a ) } ) } ) ; 0 === c && b . resolve ( d ) ; return b . promise } } } function fe ( ) { this . $get = [ "$window" , "$timeout" , function ( b , a ) { var c = b . requestAnimationFrame || b . webkitRequestAnimationFrame || b . mozRequestAnimationFrame , d = b . cancelAnimationFrame || b . webkitCancelAnimationFrame || b . mozCancelAnimationFrame || b . webkitCancelRequestAnimationFrame , e = ! ! c , f = e ? function ( a ) { var b = c ( a ) ; return function ( ) { d ( b ) } } : function ( b ) { var c = a ( b , 16.66 , ! 1 ) ; return function ( ) { a . cancel ( c ) } } ; f . supported =
e ; return f } ] } function Yd ( ) { var b = 10 , a = z ( "$rootScope" ) , c = null ; this . digestTtl = function ( a ) { arguments . length && ( b = a ) ; return b } ; this . $get = [ "$injector" , "$exceptionHandler" , "$parse" , "$browser" , function ( d , e , f , g ) { function h ( ) { this . $id = ib ( ) ; this . $$phase = this . $parent = this . $$watchers = this . $$nextSibling = this . $$prevSibling = this . $$childHead = this . $$childTail = null ; this [ "this" ] = this . $root = this ; this . $$destroyed = ! 1 ; this . $$asyncQueue = [ ] ; this . $$postDigestQueue = [ ] ; this . $$listeners = { } ; this . $$listenerCount = { } ; this . $$isolateBindings =
{ } } function k ( b ) { if ( q . $$phase ) throw a ( "inprog" , q . $$phase ) ; q . $$phase = b } function m ( a , b ) { var c = f ( a ) ; Ya ( c , b ) ; return c } function l ( a , b , c ) { do a . $$listenerCount [ c ] -= b , 0 === a . $$listenerCount [ c ] && delete a . $$listenerCount [ c ] ; while ( a = a . $parent ) } function n ( ) { } h . prototype = { constructor : h , $new : function ( a ) { a ? ( a = new h , a . $root = this . $root , a . $$asyncQueue = this . $$asyncQueue , a . $$postDigestQueue = this . $$postDigestQueue ) : ( this . $$childScopeClass || ( this . $$childScopeClass = function ( ) { this . $$watchers = this . $$nextSibling = this . $$childHead =
this . $$childTail = null ; this . $$listeners = { } ; this . $$listenerCount = { } ; this . $id = ib ( ) ; this . $$childScopeClass = null } , this . $$childScopeClass . prototype = this ) , a = new this . $$childScopeClass ) ; a [ "this" ] = a ; a . $parent = this ; a . $$prevSibling = this . $$childTail ; this . $$childHead ? this . $$childTail = this . $$childTail . $$nextSibling = a : this . $$childHead = this . $$childTail = a ; return a } , $watch : function ( a , b , d ) { var e = m ( a , "watch" ) , f = this . $$watchers , g = { fn : b , last : n , get : e , exp : a , eq : ! ! d } ; c = null ; if ( ! N ( b ) ) { var h = m ( b || v , "listener" ) ; g . fn = function ( a ,
b , c ) { h ( c ) } } if ( "string" == typeof a && e . constant ) { var k = g . fn ; g . fn = function ( a , b , c ) { k . call ( this , a , b , c ) ; Ua ( f , g ) } } f || ( f = this . $$watchers = [ ] ) ; f . unshift ( g ) ; return function ( ) { Ua ( f , g ) ; c = null } } , $watchCollection : function ( a , b ) { var c = this , d , e , g , h = 1 < b . length , k = 0 , l = f ( a ) , m = [ ] , n = { } , q = ! 0 , r = 0 ; return this . $watch ( function ( ) { d = l ( c ) ; var a , b , f ; if ( T ( d ) ) if ( Sa ( d ) ) for ( e !== m && ( e = m , r = e . length = 0 , k ++ ) , a = d . length , r !== a && ( k ++ , e . length = r = a ) , b = 0 ; b < a ; b ++ ) f = e [ b ] !== e [ b ] && d [ b ] !== d [ b ] , f || e [ b ] === d [ b ] || ( k ++ , e [ b ] = d [ b ] ) ; else { e !== n && ( e = n = { } , r = 0 ,
k ++ ) ; a = 0 ; for ( b in d ) d . hasOwnProperty ( b ) && ( a ++ , e . hasOwnProperty ( b ) ? ( f = e [ b ] !== e [ b ] && d [ b ] !== d [ b ] , f || e [ b ] === d [ b ] || ( k ++ , e [ b ] = d [ b ] ) ) : ( r ++ , e [ b ] = d [ b ] , k ++ ) ) ; if ( r > a ) for ( b in k ++ , e ) e . hasOwnProperty ( b ) && ! d . hasOwnProperty ( b ) && ( r -- , delete e [ b ] ) } else e !== d && ( e = d , k ++ ) ; return k } , function ( ) { q ? ( q = ! 1 , b ( d , d , c ) ) : b ( d , g , c ) ; if ( h ) if ( T ( d ) ) if ( Sa ( d ) ) { g = Array ( d . length ) ; for ( var a = 0 ; a < d . length ; a ++ ) g [ a ] = d [ a ] } else for ( a in g = { } , d ) lb . call ( d , a ) && ( g [ a ] = d [ a ] ) ; else g = d } ) } , $digest : function ( ) { var d , f , h , l , m = this . $$asyncQueue , r = this . $$postDigestQueue ,
K , B , u = b , O , M = [ ] , A , P , C ; k ( "$digest" ) ; g . $$checkUrlChange ( ) ; c = null ; do { B = ! 1 ; for ( O = this ; m . length ; ) { try { C = m . shift ( ) , C . scope . $eval ( C . expression ) } catch ( I ) { q . $$phase = null , e ( I ) } c = null } a : do { if ( l = O . $$watchers ) for ( K = l . length ; K -- ; ) try { if ( d = l [ K ] ) if ( ( f = d . get ( O ) ) !== ( h = d . last ) && ! ( d . eq ? Ca ( f , h ) : "number" === typeof f && "number" === typeof h && isNaN ( f ) && isNaN ( h ) ) ) B = ! 0 , c = d , d . last = d . eq ? Ka ( f , null ) : f , d . fn ( f , h === n ? f : h , O ) , 5 > u && ( A = 4 - u , M [ A ] || ( M [ A ] = [ ] ) , P = N ( d . exp ) ? "fn: " + ( d . exp . name || d . exp . toString ( ) ) : d . exp , P += "; newVal: " + oa ( f ) + "; oldVal: " +
oa ( h ) , M [ A ] . push ( P ) ) ; else if ( d === c ) { B = ! 1 ; break a } } catch ( D ) { q . $$phase = null , e ( D ) } if ( ! ( l = O . $$childHead || O !== this && O . $$nextSibling ) ) for ( ; O !== this && ! ( l = O . $$nextSibling ) ; ) O = O . $parent } while ( O = l ) ; if ( ( B || m . length ) && ! u -- ) throw q . $$phase = null , a ( "infdig" , b , oa ( M ) ) ; } while ( B || m . length ) ; for ( q . $$phase = null ; r . length ; ) try { r . shift ( ) ( ) } catch ( x ) { e ( x ) } } , $destroy : function ( ) { if ( ! this . $$destroyed ) { var a = this . $parent ; this . $broadcast ( "$destroy" ) ; this . $$destroyed = ! 0 ; this !== q && ( r ( this . $$listenerCount , Bb ( null , l , this ) ) , a . $$childHead ==
this && ( a . $$childHead = this . $$nextSibling ) , a . $$childTail == this && ( a . $$childTail = this . $$prevSibling ) , this . $$prevSibling && ( this . $$prevSibling . $$nextSibling = this . $$nextSibling ) , this . $$nextSibling && ( this . $$nextSibling . $$prevSibling = this . $$prevSibling ) , this . $parent = this . $$nextSibling = this . $$prevSibling = this . $$childHead = this . $$childTail = this . $root = null , this . $$listeners = { } , this . $$watchers = this . $$asyncQueue = this . $$postDigestQueue = [ ] , this . $destroy = this . $digest = this . $apply = v , this . $on = this . $watch = function ( ) { return v } ) } } ,
$eval : function ( a , b ) { return f ( a ) ( this , b ) } , $evalAsync : function ( a ) { q . $$phase || q . $$asyncQueue . length || g . defer ( function ( ) { q . $$asyncQueue . length && q . $digest ( ) } ) ; this . $$asyncQueue . push ( { scope : this , expression : a } ) } , $$postDigest : function ( a ) { this . $$postDigestQueue . push ( a ) } , $apply : function ( a ) { try { return k ( "$apply" ) , this . $eval ( a ) } catch ( b ) { e ( b ) } finally { q . $$phase = null ; try { q . $digest ( ) } catch ( c ) { throw e ( c ) , c ; } } } , $on : function ( a , b ) { var c = this . $$listeners [ a ] ; c || ( this . $$listeners [ a ] = c = [ ] ) ; c . push ( b ) ; var d = this ; do d . $$listenerCount [ a ] ||
( d . $$listenerCount [ a ] = 0 ) , d . $$listenerCount [ a ] ++ ; while ( d = d . $parent ) ; var e = this ; return function ( ) { var d = Ta ( c , b ) ; - 1 !== d && ( c [ d ] = null , l ( e , 1 , a ) ) } } , $emit : function ( a , b ) { var c = [ ] , d , f = this , g = ! 1 , h = { name : a , targetScope : f , stopPropagation : function ( ) { g = ! 0 } , preventDefault : function ( ) { h . defaultPrevented = ! 0 } , defaultPrevented : ! 1 } , k = [ h ] . concat ( wa . call ( arguments , 1 ) ) , l , m ; do { d = f . $$listeners [ a ] || c ; h . currentScope = f ; l = 0 ; for ( m = d . length ; l < m ; l ++ ) if ( d [ l ] ) try { d [ l ] . apply ( null , k ) } catch ( n ) { e ( n ) } else d . splice ( l , 1 ) , l -- , m -- ; if ( g ) break ;
f = f . $parent } while ( f ) ; return h } , $broadcast : function ( a , b ) { for ( var c = this , d = this , f = { name : a , targetScope : this , preventDefault : function ( ) { f . defaultPrevented = ! 0 } , defaultPrevented : ! 1 } , g = [ f ] . concat ( wa . call ( arguments , 1 ) ) , h , k ; c = d ; ) { f . currentScope = c ; d = c . $$listeners [ a ] || [ ] ; h = 0 ; for ( k = d . length ; h < k ; h ++ ) if ( d [ h ] ) try { d [ h ] . apply ( null , g ) } catch ( l ) { e ( l ) } else d . splice ( h , 1 ) , h -- , k -- ; if ( ! ( d = c . $$listenerCount [ a ] && c . $$childHead || c !== this && c . $$nextSibling ) ) for ( ; c !== this && ! ( d = c . $$nextSibling ) ; ) c = c . $parent } return f } } ; var q = new h ;
return q } ] } function bd ( ) { var b = /^\s*(https?|ftp|mailto|tel|file):/ , a = /^\s*((https?|ftp|file):|data:image\/)/ ; this . aHrefSanitizationWhitelist = function ( a ) { return D ( a ) ? ( b = a , this ) : b } ; this . imgSrcSanitizationWhitelist = function ( b ) { return D ( b ) ? ( a = b , this ) : a } ; this . $get = function ( ) { return function ( c , d ) { var e = d ? a : b , f ; if ( ! R || 8 <= R ) if ( f = xa ( c ) . href , "" !== f && ! f . match ( e ) ) return "unsafe:" + f ; return c } } } function Ee ( b ) { if ( "self" === b ) return b ; if ( G ( b ) ) { if ( - 1 < b . indexOf ( "***" ) ) throw za ( "iwcard" , b ) ; b = b . replace ( /([-()\[\]{}+?*.$\^|,:#<!\\])/g ,
"\\$1" ) . replace ( /\x08/g , "\\x08" ) . replace ( "\\*\\*" , ".*" ) . replace ( "\\*" , "[^:/.?&;]*" ) ; return RegExp ( "^" + b + "$" ) } if ( kb ( b ) ) return RegExp ( "^" + b . source + "$" ) ; throw za ( "imatcher" ) ; } function Fc ( b ) { var a = [ ] ; D ( b ) && r ( b , function ( b ) { a . push ( Ee ( b ) ) } ) ; return a } function ae ( ) { this . SCE _CONTEXTS = fa ; var b = [ "self" ] , a = [ ] ; this . resourceUrlWhitelist = function ( a ) { arguments . length && ( b = Fc ( a ) ) ; return b } ; this . resourceUrlBlacklist = function ( b ) { arguments . length && ( a = Fc ( b ) ) ; return a } ; this . $get = [ "$injector" , function ( c ) { function d ( a ) { var b =
function ( a ) { this . $$unwrapTrustedValue = function ( ) { return a } } ; a && ( b . prototype = new a ) ; b . prototype . valueOf = function ( ) { return this . $$unwrapTrustedValue ( ) } ; b . prototype . toString = function ( ) { return this . $$unwrapTrustedValue ( ) . toString ( ) } ; return b } var e = function ( a ) { throw za ( "unsafe" ) ; } ; c . has ( "$sanitize" ) && ( e = c . get ( "$sanitize" ) ) ; var f = d ( ) , g = { } ; g [ fa . HTML ] = d ( f ) ; g [ fa . CSS ] = d ( f ) ; g [ fa . URL ] = d ( f ) ; g [ fa . JS ] = d ( f ) ; g [ fa . RESOURCE _URL ] = d ( g [ fa . URL ] ) ; return { trustAs : function ( a , b ) { var c = g . hasOwnProperty ( a ) ? g [ a ] : null ; if ( ! c ) throw za ( "icontext" ,
a , b ) ; if ( null === b || b === u || "" === b ) return b ; if ( "string" !== typeof b ) throw za ( "itype" , a ) ; return new c ( b ) } , getTrusted : function ( c , d ) { if ( null === d || d === u || "" === d ) return d ; var f = g . hasOwnProperty ( c ) ? g [ c ] : null ; if ( f && d instanceof f ) return d . $$unwrapTrustedValue ( ) ; if ( c === fa . RESOURCE _URL ) { var f = xa ( d . toString ( ) ) , l , n , q = ! 1 ; l = 0 ; for ( n = b . length ; l < n ; l ++ ) if ( "self" === b [ l ] ? Pb ( f ) : b [ l ] . exec ( f . href ) ) { q = ! 0 ; break } if ( q ) for ( l = 0 , n = a . length ; l < n ; l ++ ) if ( "self" === a [ l ] ? Pb ( f ) : a [ l ] . exec ( f . href ) ) { q = ! 1 ; break } if ( q ) return d ; throw za ( "insecurl" ,
d . toString ( ) ) ; } if ( c === fa . HTML ) return e ( d ) ; throw za ( "unsafe" ) ; } , valueOf : function ( a ) { return a instanceof f ? a . $$unwrapTrustedValue ( ) : a } } } ] } function $d ( ) { var b = ! 0 ; this . enabled = function ( a ) { arguments . length && ( b = ! ! a ) ; return b } ; this . $get = [ "$parse" , "$sniffer" , "$sceDelegate" , function ( a , c , d ) { if ( b && c . msie && 8 > c . msieDocumentMode ) throw za ( "iequirks" ) ; var e = ha ( fa ) ; e . isEnabled = function ( ) { return b } ; e . trustAs = d . trustAs ; e . getTrusted = d . getTrusted ; e . valueOf = d . valueOf ; b || ( e . trustAs = e . getTrusted = function ( a , b ) { return b } ,
e . valueOf = ga ) ; e . parseAs = function ( b , c ) { var d = a ( c ) ; return d . literal && d . constant ? d : function ( a , c ) { return e . getTrusted ( b , d ( a , c ) ) } } ; var f = e . parseAs , g = e . getTrusted , h = e . trustAs ; r ( fa , function ( a , b ) { var c = x ( b ) ; e [ ab ( "parse_as_" + c ) ] = function ( b ) { return f ( a , b ) } ; e [ ab ( "get_trusted_" + c ) ] = function ( b ) { return g ( a , b ) } ; e [ ab ( "trust_as_" + c ) ] = function ( b ) { return h ( a , b ) } } ) ; return e } ] } function be ( ) { this . $get = [ "$window" , "$document" , function ( b , a ) { var c = { } , d = U ( ( /android (\d+)/ . exec ( x ( ( b . navigator || { } ) . userAgent ) ) || [ ] ) [ 1 ] ) , e = /Boxee/i . test ( ( b . navigator ||
{ } ) . userAgent ) , f = a [ 0 ] || { } , g = f . documentMode , h , k = /^(Moz|webkit|O|ms)(?=[A-Z])/ , m = f . body && f . body . style , l = ! 1 , n = ! 1 ; if ( m ) { for ( var q in m ) if ( l = k . exec ( q ) ) { h = l [ 0 ] ; h = h . substr ( 0 , 1 ) . toUpperCase ( ) + h . substr ( 1 ) ; break } h || ( h = "WebkitOpacity" in m && "webkit" ) ; l = ! ! ( "transition" in m || h + "Transition" in m ) ; n = ! ! ( "animation" in m || h + "Animation" in m ) ; ! d || l && n || ( l = G ( f . body . style . webkitTransition ) , n = G ( f . body . style . webkitAnimation ) ) } return { history : ! ( ! b . history || ! b . history . pushState || 4 > d || e ) , hashchange : "onhashchange" in b && ( ! g || 7 <
g ) , hasEvent : function ( a ) { if ( "input" == a && 9 == R ) return ! 1 ; if ( F ( c [ a ] ) ) { var b = f . createElement ( "div" ) ; c [ a ] = "on" + a in b } return c [ a ] } , csp : Za ( ) , vendorPrefix : h , transitions : l , animations : n , android : d , msie : R , msieDocumentMode : g } } ] } function de ( ) { this . $get = [ "$rootScope" , "$browser" , "$q" , "$exceptionHandler" , function ( b , a , c , d ) { function e ( e , h , k ) { var m = c . defer ( ) , l = m . promise , n = D ( k ) && ! k ; h = a . defer ( function ( ) { try { m . resolve ( e ( ) ) } catch ( a ) { m . reject ( a ) , d ( a ) } finally { delete f [ l . $$timeoutId ] } n || b . $apply ( ) } , h ) ; l . $$timeoutId = h ; f [ h ] = m ;
return l } var f = { } ; e . cancel = function ( b ) { return b && b . $$timeoutId in f ? ( f [ b . $$timeoutId ] . reject ( "canceled" ) , delete f [ b . $$timeoutId ] , a . defer . cancel ( b . $$timeoutId ) ) : ! 1 } ; return e } ] } function xa ( b , a ) { var c = b ; R && ( Y . setAttribute ( "href" , c ) , c = Y . href ) ; Y . setAttribute ( "href" , c ) ; return { href : Y . href , protocol : Y . protocol ? Y . protocol . replace ( /:$/ , "" ) : "" , host : Y . host , search : Y . search ? Y . search . replace ( /^\?/ , "" ) : "" , hash : Y . hash ? Y . hash . replace ( /^#/ , "" ) : "" , hostname : Y . hostname , port : Y . port , pathname : "/" === Y . pathname . charAt ( 0 ) ? Y . pathname :
"/" + Y . pathname } } function Pb ( b ) { b = G ( b ) ? xa ( b ) : b ; return b . protocol === Gc . protocol && b . host === Gc . host } function ee ( ) { this . $get = aa ( W ) } function kc ( b ) { function a ( d , e ) { if ( T ( d ) ) { var f = { } ; r ( d , function ( b , c ) { f [ c ] = a ( c , b ) } ) ; return f } return b . factory ( d + c , e ) } var c = "Filter" ; this . register = a ; this . $get = [ "$injector" , function ( a ) { return function ( b ) { return a . get ( b + c ) } } ] ; a ( "currency" , Hc ) ; a ( "date" , Ic ) ; a ( "filter" , Fe ) ; a ( "json" , Ge ) ; a ( "limitTo" , He ) ; a ( "lowercase" , Ie ) ; a ( "number" , Jc ) ; a ( "orderBy" , Kc ) ; a ( "uppercase" , Je ) } function Fe ( ) { return function ( b ,
a , c ) { if ( ! L ( b ) ) return b ; var d = typeof c , e = [ ] ; e . check = function ( a ) { for ( var b = 0 ; b < e . length ; b ++ ) if ( ! e [ b ] ( a ) ) return ! 1 ; return ! 0 } ; "function" !== d && ( c = "boolean" === d && c ? function ( a , b ) { return Xa . equals ( a , b ) } : function ( a , b ) { if ( a && b && "object" === typeof a && "object" === typeof b ) { for ( var d in a ) if ( "$" !== d . charAt ( 0 ) && lb . call ( a , d ) && c ( a [ d ] , b [ d ] ) ) return ! 0 ; return ! 1 } b = ( "" + b ) . toLowerCase ( ) ; return - 1 < ( "" + a ) . toLowerCase ( ) . indexOf ( b ) } ) ; var f = function ( a , b ) { if ( "string" === typeof b && "!" === b . charAt ( 0 ) ) return ! f ( a , b . substr ( 1 ) ) ; switch ( typeof a ) { case "boolean" : case "number" : case "string" : return c ( a ,
b ) ; case "object" : switch ( typeof b ) { case "object" : return c ( a , b ) ; default : for ( var d in a ) if ( "$" !== d . charAt ( 0 ) && f ( a [ d ] , b ) ) return ! 0 } return ! 1 ; case "array" : for ( d = 0 ; d < a . length ; d ++ ) if ( f ( a [ d ] , b ) ) return ! 0 ; return ! 1 ; default : return ! 1 } } ; switch ( typeof a ) { case "boolean" : case "number" : case "string" : a = { $ : a } ; case "object" : for ( var g in a ) ( function ( b ) { "undefined" !== typeof a [ b ] && e . push ( function ( c ) { return f ( "$" == b ? c : c && c [ b ] , a [ b ] ) } ) } ) ( g ) ; break ; case "function" : e . push ( a ) ; break ; default : return b } d = [ ] ; for ( g = 0 ; g < b . length ; g ++ ) { var h =
b [ g ] ; e . check ( h ) && d . push ( h ) } return d } } function Hc ( b ) { var a = b . NUMBER _FORMATS ; return function ( b , d ) { F ( d ) && ( d = a . CURRENCY _SYM ) ; return Lc ( b , a . PATTERNS [ 1 ] , a . GROUP _SEP , a . DECIMAL _SEP , 2 ) . replace ( /\u00A4/g , d ) } } function Jc ( b ) { var a = b . NUMBER _FORMATS ; return function ( b , d ) { return Lc ( b , a . PATTERNS [ 0 ] , a . GROUP _SEP , a . DECIMAL _SEP , d ) } } function Lc ( b , a , c , d , e ) { if ( null == b || ! isFinite ( b ) || T ( b ) ) return "" ; var f = 0 > b ; b = Math . abs ( b ) ; var g = b + "" , h = "" , k = [ ] , m = ! 1 ; if ( - 1 !== g . indexOf ( "e" ) ) { var l = g . match ( /([\d\.]+)e(-?)(\d+)/ ) ; l && "-" == l [ 2 ] &&
l [ 3 ] > e + 1 ? ( g = "0" , b = 0 ) : ( h = g , m = ! 0 ) } if ( m ) 0 < e && ( - 1 < b && 1 > b ) && ( h = b . toFixed ( e ) ) ; else { g = ( g . split ( Mc ) [ 1 ] || "" ) . length ; F ( e ) && ( e = Math . min ( Math . max ( a . minFrac , g ) , a . maxFrac ) ) ; b = + ( Math . round ( + ( b . toString ( ) + "e" + e ) ) . toString ( ) + "e" + - e ) ; 0 === b && ( f = ! 1 ) ; b = ( "" + b ) . split ( Mc ) ; g = b [ 0 ] ; b = b [ 1 ] || "" ; var l = 0 , n = a . lgSize , q = a . gSize ; if ( g . length >= n + q ) for ( l = g . length - n , m = 0 ; m < l ; m ++ ) 0 === ( l - m ) % q && 0 !== m && ( h += c ) , h += g . charAt ( m ) ; for ( m = l ; m < g . length ; m ++ ) 0 === ( g . length - m ) % n && 0 !== m && ( h += c ) , h += g . charAt ( m ) ; for ( ; b . length < e ; ) b += "0" ; e && "0" !== e && ( h += d + b . substr ( 0 ,
e ) ) } k . push ( f ? a . negPre : a . posPre ) ; k . push ( h ) ; k . push ( f ? a . negSuf : a . posSuf ) ; return k . join ( "" ) } function Vb ( b , a , c ) { var d = "" ; 0 > b && ( d = "-" , b = - b ) ; for ( b = "" + b ; b . length < a ; ) b = "0" + b ; c && ( b = b . substr ( b . length - a ) ) ; return d + b } function Z ( b , a , c , d ) { c = c || 0 ; return function ( e ) { e = e [ "get" + b ] ( ) ; if ( 0 < c || e > - c ) e += c ; 0 === e && - 12 == c && ( e = 12 ) ; return Vb ( e , a , d ) } } function vb ( b , a ) { return function ( c , d ) { var e = c [ "get" + b ] ( ) , f = La ( a ? "SHORT" + b : b ) ; return d [ f ] [ e ] } } function Ic ( b ) { function a ( a ) { var b ; if ( b = a . match ( c ) ) { a = new Date ( 0 ) ; var f = 0 , g = 0 , h = b [ 8 ] ?
a . setUTCFullYear : a . setFullYear , k = b [ 8 ] ? a . setUTCHours : a . setHours ; b [ 9 ] && ( f = U ( b [ 9 ] + b [ 10 ] ) , g = U ( b [ 9 ] + b [ 11 ] ) ) ; h . call ( a , U ( b [ 1 ] ) , U ( b [ 2 ] ) - 1 , U ( b [ 3 ] ) ) ; f = U ( b [ 4 ] || 0 ) - f ; g = U ( b [ 5 ] || 0 ) - g ; h = U ( b [ 6 ] || 0 ) ; b = Math . round ( 1E3 * parseFloat ( "0." + ( b [ 7 ] || 0 ) ) ) ; k . call ( a , f , g , h , b ) } return a } var c = /^(\d{4})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/ ; return function ( c , e ) { var f = "" , g = [ ] , h , k ; e = e || "mediumDate" ; e = b . DATETIME _FORMATS [ e ] || e ; G ( c ) && ( c = Ke . test ( c ) ? U ( c ) : a ( c ) ) ; jb ( c ) && ( c = new Date ( c ) ) ;
if ( ! va ( c ) ) return c ; for ( ; e ; ) ( k = Le . exec ( e ) ) ? ( g = g . concat ( wa . call ( k , 1 ) ) , e = g . pop ( ) ) : ( g . push ( e ) , e = null ) ; r ( g , function ( a ) { h = Me [ a ] ; f += h ? h ( c , b . DATETIME _FORMATS ) : a . replace ( /(^'|'$)/g , "" ) . replace ( /''/g , "'" ) } ) ; return f } } function Ge ( ) { return function ( b ) { return oa ( b , ! 0 ) } } function He ( ) { return function ( b , a ) { if ( ! L ( b ) && ! G ( b ) ) return b ; a = Infinity === Math . abs ( Number ( a ) ) ? Number ( a ) : U ( a ) ; if ( G ( b ) ) return a ? 0 <= a ? b . slice ( 0 , a ) : b . slice ( a , b . length ) : "" ; var c = [ ] , d , e ; a > b . length ? a = b . length : a < - b . length && ( a = - b . length ) ; 0 < a ? ( d = 0 , e = a ) : ( d =
b . length + a , e = b . length ) ; for ( ; d < e ; d ++ ) c . push ( b [ d ] ) ; return c } } function Kc ( b ) { return function ( a , c , d ) { function e ( a , b ) { return Wa ( b ) ? function ( b , c ) { return a ( c , b ) } : a } function f ( a , b ) { var c = typeof a , d = typeof b ; return c == d ? ( va ( a ) && va ( b ) && ( a = a . valueOf ( ) , b = b . valueOf ( ) ) , "string" == c && ( a = a . toLowerCase ( ) , b = b . toLowerCase ( ) ) , a === b ? 0 : a < b ? - 1 : 1 ) : c < d ? - 1 : 1 } if ( ! Sa ( a ) ) return a ; c = L ( c ) ? c : [ c ] ; 0 === c . length && ( c = [ "+" ] ) ; c = Uc ( c , function ( a ) { var c = ! 1 , d = a || ga ; if ( G ( a ) ) { if ( "+" == a . charAt ( 0 ) || "-" == a . charAt ( 0 ) ) c = "-" == a . charAt ( 0 ) , a = a . substring ( 1 ) ;
if ( "" === a ) return e ( function ( a , b ) { return f ( a , b ) } , c ) ; d = b ( a ) ; if ( d . constant ) { var m = d ( ) ; return e ( function ( a , b ) { return f ( a [ m ] , b [ m ] ) } , c ) } } return e ( function ( a , b ) { return f ( d ( a ) , d ( b ) ) } , c ) } ) ; return wa . call ( a ) . sort ( e ( function ( a , b ) { for ( var d = 0 ; d < c . length ; d ++ ) { var e = c [ d ] ( a , b ) ; if ( 0 !== e ) return e } return 0 } , d ) ) } } function Aa ( b ) { N ( b ) && ( b = { link : b } ) ; b . restrict = b . restrict || "AC" ; return aa ( b ) } function Nc ( b , a , c , d ) { function e ( a , c ) { c = c ? "-" + nb ( c , "-" ) : "" ; d . setClass ( b , ( a ? wb : xb ) + c , ( a ? xb : wb ) + c ) } var f = this , g = b . parent ( ) . controller ( "form" ) ||
yb , h = 0 , k = f . $error = { } , m = [ ] ; f . $name = a . name || a . ngForm ; f . $dirty = ! 1 ; f . $pristine = ! 0 ; f . $valid = ! 0 ; f . $invalid = ! 1 ; g . $addControl ( f ) ; b . addClass ( Ra ) ; e ( ! 0 ) ; f . $addControl = function ( a ) { Ea ( a . $name , "input" ) ; m . push ( a ) ; a . $name && ( f [ a . $name ] = a ) } ; f . $removeControl = function ( a ) { a . $name && f [ a . $name ] === a && delete f [ a . $name ] ; r ( k , function ( b , c ) { f . $setValidity ( c , ! 0 , a ) } ) ; Ua ( m , a ) } ; f . $setValidity = function ( a , b , c ) { var d = k [ a ] ; if ( b ) d && ( Ua ( d , c ) , d . length || ( h -- , h || ( e ( b ) , f . $valid = ! 0 , f . $invalid = ! 1 ) , k [ a ] = ! 1 , e ( ! 0 , a ) , g . $setValidity ( a , ! 0 , f ) ) ) ; else { h ||
e ( b ) ; if ( d ) { if ( - 1 != Ta ( d , c ) ) return } else k [ a ] = d = [ ] , h ++ , e ( ! 1 , a ) , g . $setValidity ( a , ! 1 , f ) ; d . push ( c ) ; f . $valid = ! 1 ; f . $invalid = ! 0 } } ; f . $setDirty = function ( ) { d . removeClass ( b , Ra ) ; d . addClass ( b , zb ) ; f . $dirty = ! 0 ; f . $pristine = ! 1 ; g . $setDirty ( ) } ; f . $setPristine = function ( ) { d . removeClass ( b , zb ) ; d . addClass ( b , Ra ) ; f . $dirty = ! 1 ; f . $pristine = ! 0 ; r ( m , function ( a ) { a . $setPristine ( ) } ) } } function ua ( b , a , c , d ) { b . $setValidity ( a , c ) ; return c ? d : u } function Oc ( b , a ) { var c , d ; if ( a ) for ( c = 0 ; c < a . length ; ++ c ) if ( d = a [ c ] , b [ d ] ) return ! 0 ; return ! 1 } function Ne ( b ,
a , c , d , e ) { T ( e ) && ( b . $$hasNativeValidators = ! 0 , b . $parsers . push ( function ( f ) { if ( b . $error [ a ] || Oc ( e , d ) || ! Oc ( e , c ) ) return f ; b . $setValidity ( a , ! 1 ) } ) ) } function Ab ( b , a , c , d , e , f ) { var g = a . prop ( Oe ) , h = a [ 0 ] . placeholder , k = { } , m = x ( a [ 0 ] . type ) ; d . $$validityState = g ; if ( ! e . android ) { var l = ! 1 ; a . on ( "compositionstart" , function ( a ) { l = ! 0 } ) ; a . on ( "compositionend" , function ( ) { l = ! 1 ; n ( ) } ) } var n = function ( e ) { if ( ! l ) { var f = a . val ( ) ; if ( R && "input" === ( e || k ) . type && a [ 0 ] . placeholder !== h ) h = a [ 0 ] . placeholder ; else if ( "password" !== m && Wa ( c . ngTrim || "T" ) &&
( f = $ ( f ) ) , e = g && d . $$hasNativeValidators , d . $viewValue !== f || "" === f && e ) b . $root . $$phase ? d . $setViewValue ( f ) : b . $apply ( function ( ) { d . $setViewValue ( f ) } ) } } ; if ( e . hasEvent ( "input" ) ) a . on ( "input" , n ) ; else { var q , p = function ( ) { q || ( q = f . defer ( function ( ) { n ( ) ; q = null } ) ) } ; a . on ( "keydown" , function ( a ) { a = a . keyCode ; 91 === a || ( 15 < a && 19 > a || 37 <= a && 40 >= a ) || p ( ) } ) ; if ( e . hasEvent ( "paste" ) ) a . on ( "paste cut" , p ) } a . on ( "change" , n ) ; d . $render = function ( ) { a . val ( d . $isEmpty ( d . $viewValue ) ? "" : d . $viewValue ) } ; var s = c . ngPattern ; s && ( ( e = s . match ( /^\/(.*)\/([gim]*)$/ ) ) ?
( s = RegExp ( e [ 1 ] , e [ 2 ] ) , e = function ( a ) { return ua ( d , "pattern" , d . $isEmpty ( a ) || s . test ( a ) , a ) } ) : e = function ( c ) { var e = b . $eval ( s ) ; if ( ! e || ! e . test ) throw z ( "ngPattern" ) ( "noregexp" , s , e , ia ( a ) ) ; return ua ( d , "pattern" , d . $isEmpty ( c ) || e . test ( c ) , c ) } , d . $formatters . push ( e ) , d . $parsers . push ( e ) ) ; if ( c . ngMinlength ) { var r = U ( c . ngMinlength ) ; e = function ( a ) { return ua ( d , "minlength" , d . $isEmpty ( a ) || a . length >= r , a ) } ; d . $parsers . push ( e ) ; d . $formatters . push ( e ) } if ( c . ngMaxlength ) { var w = U ( c . ngMaxlength ) ; e = function ( a ) { return ua ( d , "maxlength" , d . $isEmpty ( a ) ||
a . length <= w , a ) } ; d . $parsers . push ( e ) ; d . $formatters . push ( e ) } } function Wb ( b , a ) { b = "ngClass" + b ; return [ "$animate" , function ( c ) { function d ( a , b ) { var c = [ ] , d = 0 ; a : for ( ; d < a . length ; d ++ ) { for ( var e = a [ d ] , l = 0 ; l < b . length ; l ++ ) if ( e == b [ l ] ) continue a ; c . push ( e ) } return c } function e ( a ) { if ( ! L ( a ) ) { if ( G ( a ) ) return a . split ( " " ) ; if ( T ( a ) ) { var b = [ ] ; r ( a , function ( a , c ) { a && ( b = b . concat ( c . split ( " " ) ) ) } ) ; return b } } return a } return { restrict : "AC" , link : function ( f , g , h ) { function k ( a , b ) { var c = g . data ( "$classCounts" ) || { } , d = [ ] ; r ( a , function ( a ) { if ( 0 <
b || c [ a ] ) c [ a ] = ( c [ a ] || 0 ) + b , c [ a ] === + ( 0 < b ) && d . push ( a ) } ) ; g . data ( "$classCounts" , c ) ; return d . join ( " " ) } function m ( b ) { if ( ! 0 === a || f . $index % 2 === a ) { var m = e ( b || [ ] ) ; if ( ! l ) { var p = k ( m , 1 ) ; h . $addClass ( p ) } else if ( ! Ca ( b , l ) ) { var s = e ( l ) , p = d ( m , s ) , m = d ( s , m ) , m = k ( m , - 1 ) , p = k ( p , 1 ) ; 0 === p . length ? c . removeClass ( g , m ) : 0 === m . length ? c . addClass ( g , p ) : c . setClass ( g , p , m ) } } l = ha ( b ) } var l ; f . $watch ( h [ b ] , m , ! 0 ) ; h . $observe ( "class" , function ( a ) { m ( f . $eval ( h [ b ] ) ) } ) ; "ngClass" !== b && f . $watch ( "$index" , function ( c , d ) { var g = c & 1 ; if ( g !== ( d & 1 ) ) { var l = e ( f . $eval ( h [ b ] ) ) ;
g === a ? ( g = k ( l , 1 ) , h . $addClass ( g ) ) : ( g = k ( l , - 1 ) , h . $removeClass ( g ) ) } } ) } } } ] } var Oe = "validity" , x = function ( b ) { return G ( b ) ? b . toLowerCase ( ) : b } , lb = Object . prototype . hasOwnProperty , La = function ( b ) { return G ( b ) ? b . toUpperCase ( ) : b } , R , A , Fa , wa = [ ] . slice , Pe = [ ] . push , Ba = Object . prototype . toString , Va = z ( "ng" ) , Xa = W . angular || ( W . angular = { } ) , $a , Pa , na = [ "0" , "0" , "0" ] ; R = U ( ( /msie (\d+)/ . exec ( x ( navigator . userAgent ) ) || [ ] ) [ 1 ] ) ; isNaN ( R ) && ( R = U ( ( /trident\/.*; rv:(\d+)/ . exec ( x ( navigator . userAgent ) ) || [ ] ) [ 1 ] ) ) ; v . $inject = [ ] ; ga . $inject = [ ] ; var L =
function ( ) { return N ( Array . isArray ) ? Array . isArray : function ( b ) { return "[object Array]" === Ba . call ( b ) } } ( ) , $ = function ( ) { return String . prototype . trim ? function ( b ) { return G ( b ) ? b . trim ( ) : b } : function ( b ) { return G ( b ) ? b . replace ( /^\s\s*/ , "" ) . replace ( /\s\s*$/ , "" ) : b } } ( ) ; Pa = 9 > R ? function ( b ) { b = b . nodeName ? b : b [ 0 ] ; return b . scopeName && "HTML" != b . scopeName ? La ( b . scopeName + ":" + b . nodeName ) : b . nodeName } : function ( b ) { return b . nodeName ? b . nodeName : b [ 0 ] . nodeName } ; var Za = function ( ) { if ( D ( Za . isActive _ ) ) return Za . isActive _ ; var b = ! ( ! X . querySelector ( "[ng-csp]" ) &&
! X . querySelector ( "[data-ng-csp]" ) ) ; if ( ! b ) try { new Function ( "" ) } catch ( a ) { b = ! 0 } return Za . isActive _ = b } , Xc = /[A-Z]/g , $c = { full : "1.2.28" , major : 1 , minor : 2 , dot : 28 , codeName : "finnish-disembarkation" } ; S . expando = "ng339" ; var cb = S . cache = { } , me = 1 , sb = W . document . addEventListener ? function ( b , a , c ) { b . addEventListener ( a , c , ! 1 ) } : function ( b , a , c ) { b . attachEvent ( "on" + a , c ) } , bb = W . document . removeEventListener ? function ( b , a , c ) { b . removeEventListener ( a , c , ! 1 ) } : function ( b , a , c ) { b . detachEvent ( "on" + a , c ) } ; S . _data = function ( b ) { return this . cache [ b [ this . expando ] ] ||
{ } } ; var he = /([\:\-\_]+(.))/g , ie = /^moz([A-Z])/ , Hb = z ( "jqLite" ) , je = /^<(\w+)\s*\/?>(?:<\/\1>|)$/ , Ib = /<|&#?\w+;/ , ke = /<([\w:]+)/ , le = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi , da = { option : [ 1 , '<select multiple="multiple">' , "</select>" ] , thead : [ 1 , "<table>" , "</table>" ] , col : [ 2 , "<table><colgroup>" , "</colgroup></table>" ] , tr : [ 2 , "<table><tbody>" , "</tbody></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , _default : [ 0 , "" , "" ] } ; da . optgroup = da . option ; da . tbody = da . tfoot = da . colgroup =
da . caption = da . thead ; da . th = da . td ; var Oa = S . prototype = { ready : function ( b ) { function a ( ) { c || ( c = ! 0 , b ( ) ) } var c = ! 1 ; "complete" === X . readyState ? setTimeout ( a ) : ( this . on ( "DOMContentLoaded" , a ) , S ( W ) . on ( "load" , a ) ) } , toString : function ( ) { var b = [ ] ; r ( this , function ( a ) { b . push ( "" + a ) } ) ; return "[" + b . join ( ", " ) + "]" } , eq : function ( b ) { return 0 <= b ? A ( this [ b ] ) : A ( this [ this . length + b ] ) } , length : 0 , push : Pe , sort : [ ] . sort , splice : [ ] . splice } , rb = { } ; r ( "multiple selected checked disabled readOnly required open" . split ( " " ) , function ( b ) { rb [ x ( b ) ] = b } ) ;
var pc = { } ; r ( "input select option textarea button form details" . split ( " " ) , function ( b ) { pc [ La ( b ) ] = ! 0 } ) ; r ( { data : Mb , removeData : Lb } , function ( b , a ) { S [ a ] = b } ) ; r ( { data : Mb , inheritedData : qb , scope : function ( b ) { return A . data ( b , "$scope" ) || qb ( b . parentNode || b , [ "$isolateScope" , "$scope" ] ) } , isolateScope : function ( b ) { return A . data ( b , "$isolateScope" ) || A . data ( b , "$isolateScopeNoTemplate" ) } , controller : mc , injector : function ( b ) { return qb ( b , "$injector" ) } , removeAttr : function ( b , a ) { b . removeAttribute ( a ) } , hasClass : Nb , css : function ( b ,
a , c ) { a = ab ( a ) ; if ( D ( c ) ) b . style [ a ] = c ; else { var d ; 8 >= R && ( d = b . currentStyle && b . currentStyle [ a ] , "" === d && ( d = "auto" ) ) ; d = d || b . style [ a ] ; 8 >= R && ( d = "" === d ? u : d ) ; return d } } , attr : function ( b , a , c ) { var d = x ( a ) ; if ( rb [ d ] ) if ( D ( c ) ) c ? ( b [ a ] = ! 0 , b . setAttribute ( a , d ) ) : ( b [ a ] = ! 1 , b . removeAttribute ( d ) ) ; else return b [ a ] || ( b . attributes . getNamedItem ( a ) || v ) . specified ? d : u ; else if ( D ( c ) ) b . setAttribute ( a , c ) ; else if ( b . getAttribute ) return b = b . getAttribute ( a , 2 ) , null === b ? u : b } , prop : function ( b , a , c ) { if ( D ( c ) ) b [ a ] = c ; else return b [ a ] } , text : function ( ) { function b ( b ,
d ) { var e = a [ b . nodeType ] ; if ( F ( d ) ) return e ? b [ e ] : "" ; b [ e ] = d } var a = [ ] ; 9 > R ? ( a [ 1 ] = "innerText" , a [ 3 ] = "nodeValue" ) : a [ 1 ] = a [ 3 ] = "textContent" ; b . $dv = "" ; return b } ( ) , val : function ( b , a ) { if ( F ( a ) ) { if ( "SELECT" === Pa ( b ) && b . multiple ) { var c = [ ] ; r ( b . options , function ( a ) { a . selected && c . push ( a . value || a . text ) } ) ; return 0 === c . length ? null : c } return b . value } b . value = a } , html : function ( b , a ) { if ( F ( a ) ) return b . innerHTML ; for ( var c = 0 , d = b . childNodes ; c < d . length ; c ++ ) Ma ( d [ c ] ) ; b . innerHTML = a } , empty : nc } , function ( b , a ) { S . prototype [ a ] = function ( a , d ) { var e ,
f , g = this . length ; if ( b !== nc && ( 2 == b . length && b !== Nb && b !== mc ? a : d ) === u ) { if ( T ( a ) ) { for ( e = 0 ; e < g ; e ++ ) if ( b === Mb ) b ( this [ e ] , a ) ; else for ( f in a ) b ( this [ e ] , f , a [ f ] ) ; return this } e = b . $dv ; g = e === u ? Math . min ( g , 1 ) : g ; for ( f = 0 ; f < g ; f ++ ) { var h = b ( this [ f ] , a , d ) ; e = e ? e + h : h } return e } for ( e = 0 ; e < g ; e ++ ) b ( this [ e ] , a , d ) ; return this } } ) ; r ( { removeData : Lb , dealoc : Ma , on : function a ( c , d , e , f ) { if ( D ( f ) ) throw Hb ( "onargs" ) ; var g = pa ( c , "events" ) , h = pa ( c , "handle" ) ; g || pa ( c , "events" , g = { } ) ; h || pa ( c , "handle" , h = ne ( c , g ) ) ; r ( d . split ( " " ) , function ( d ) { var f = g [ d ] ; if ( ! f ) { if ( "mouseenter" ==
d || "mouseleave" == d ) { var l = X . body . contains || X . body . compareDocumentPosition ? function ( a , c ) { var d = 9 === a . nodeType ? a . documentElement : a , e = c && c . parentNode ; return a === e || ! ! ( e && 1 === e . nodeType && ( d . contains ? d . contains ( e ) : a . compareDocumentPosition && a . compareDocumentPosition ( e ) & 16 ) ) } : function ( a , c ) { if ( c ) for ( ; c = c . parentNode ; ) if ( c === a ) return ! 0 ; return ! 1 } ; g [ d ] = [ ] ; a ( c , { mouseleave : "mouseout" , mouseenter : "mouseover" } [ d ] , function ( a ) { var c = a . relatedTarget ; c && ( c === this || l ( this , c ) ) || h ( a , d ) } ) } else sb ( c , d , h ) , g [ d ] = [ ] ; f = g [ d ] } f . push ( e ) } ) } ,
off : lc , one : function ( a , c , d ) { a = A ( a ) ; a . on ( c , function f ( ) { a . off ( c , d ) ; a . off ( c , f ) } ) ; a . on ( c , d ) } , replaceWith : function ( a , c ) { var d , e = a . parentNode ; Ma ( a ) ; r ( new S ( c ) , function ( c ) { d ? e . insertBefore ( c , d . nextSibling ) : e . replaceChild ( c , a ) ; d = c } ) } , children : function ( a ) { var c = [ ] ; r ( a . childNodes , function ( a ) { 1 === a . nodeType && c . push ( a ) } ) ; return c } , contents : function ( a ) { return a . contentDocument || a . childNodes || [ ] } , append : function ( a , c ) { r ( new S ( c ) , function ( c ) { 1 !== a . nodeType && 11 !== a . nodeType || a . appendChild ( c ) } ) } , prepend : function ( a ,
c ) { if ( 1 === a . nodeType ) { var d = a . firstChild ; r ( new S ( c ) , function ( c ) { a . insertBefore ( c , d ) } ) } } , wrap : function ( a , c ) { c = A ( c ) [ 0 ] ; var d = a . parentNode ; d && d . replaceChild ( c , a ) ; c . appendChild ( a ) } , remove : function ( a ) { Ma ( a ) ; var c = a . parentNode ; c && c . removeChild ( a ) } , after : function ( a , c ) { var d = a , e = a . parentNode ; r ( new S ( c ) , function ( a ) { e . insertBefore ( a , d . nextSibling ) ; d = a } ) } , addClass : pb , removeClass : ob , toggleClass : function ( a , c , d ) { c && r ( c . split ( " " ) , function ( c ) { var f = d ; F ( f ) && ( f = ! Nb ( a , c ) ) ; ( f ? pb : ob ) ( a , c ) } ) } , parent : function ( a ) { return ( a =
a . parentNode ) && 11 !== a . nodeType ? a : null } , next : function ( a ) { if ( a . nextElementSibling ) return a . nextElementSibling ; for ( a = a . nextSibling ; null != a && 1 !== a . nodeType ; ) a = a . nextSibling ; return a } , find : function ( a , c ) { return a . getElementsByTagName ? a . getElementsByTagName ( c ) : [ ] } , clone : Kb , triggerHandler : function ( a , c , d ) { var e , f ; e = c . type || c ; var g = ( pa ( a , "events" ) || { } ) [ e ] ; g && ( e = { preventDefault : function ( ) { this . defaultPrevented = ! 0 } , isDefaultPrevented : function ( ) { return ! 0 === this . defaultPrevented } , stopPropagation : v , type : e , target : a } ,
c . type && ( e = E ( e , c ) ) , c = ha ( g ) , f = d ? [ e ] . concat ( d ) : [ e ] , r ( c , function ( c ) { c . apply ( a , f ) } ) ) } } , function ( a , c ) { S . prototype [ c ] = function ( c , e , f ) { for ( var g , h = 0 ; h < this . length ; h ++ ) F ( g ) ? ( g = a ( this [ h ] , c , e , f ) , D ( g ) && ( g = A ( g ) ) ) : Jb ( g , a ( this [ h ] , c , e , f ) ) ; return D ( g ) ? g : this } ; S . prototype . bind = S . prototype . on ; S . prototype . unbind = S . prototype . off } ) ; db . prototype = { put : function ( a , c ) { this [ Na ( a , this . nextUid ) ] = c } , get : function ( a ) { return this [ Na ( a , this . nextUid ) ] } , remove : function ( a ) { var c = this [ a = Na ( a , this . nextUid ) ] ; delete this [ a ] ; return c } } ; var pe =
/^function\s*[^\(]*\(\s*([^\)]*)\)/m , qe = /,/ , re = /^\s*(_?)(\S+?)\1\s*$/ , oe = /((\/\/.*$)|(\/\*[\s\S]*?\*\/))/mg , eb = z ( "$injector" ) , Qe = z ( "$animate" ) , Ld = [ "$provide" , function ( a ) { this . $$selectors = { } ; this . register = function ( c , d ) { var e = c + "-animation" ; if ( c && "." != c . charAt ( 0 ) ) throw Qe ( "notcsel" , c ) ; this . $$selectors [ c . substr ( 1 ) ] = e ; a . factory ( e , d ) } ; this . classNameFilter = function ( a ) { 1 === arguments . length && ( this . $$classNameFilter = a instanceof RegExp ? a : null ) ; return this . $$classNameFilter } ; this . $get = [ "$timeout" , "$$asyncCallback" ,
function ( a , d ) { return { enter : function ( a , c , g , h ) { g ? g . after ( a ) : ( c && c [ 0 ] || ( c = g . parent ( ) ) , c . append ( a ) ) ; h && d ( h ) } , leave : function ( a , c ) { a . remove ( ) ; c && d ( c ) } , move : function ( a , c , d , h ) { this . enter ( a , c , d , h ) } , addClass : function ( a , c , g ) { c = G ( c ) ? c : L ( c ) ? c . join ( " " ) : "" ; r ( a , function ( a ) { pb ( a , c ) } ) ; g && d ( g ) } , removeClass : function ( a , c , g ) { c = G ( c ) ? c : L ( c ) ? c . join ( " " ) : "" ; r ( a , function ( a ) { ob ( a , c ) } ) ; g && d ( g ) } , setClass : function ( a , c , g , h ) { r ( a , function ( a ) { pb ( a , c ) ; ob ( a , g ) } ) ; h && d ( h ) } , enabled : v } } ] } ] , ja = z ( "$compile" ) ; gc . $inject = [ "$provide" , "$$sanitizeUriProvider" ] ;
var we = /^(x[\:\-_]|data[\:\-_])/i , wc = z ( "$interpolate" ) , Re = /^([^\?#]*)(\?([^#]*))?(#(.*))?$/ , ze = { http : 80 , https : 443 , ftp : 21 } , Sb = z ( "$location" ) ; Ac . prototype = Tb . prototype = zc . prototype = { $$html5 : ! 1 , $$replace : ! 1 , absUrl : tb ( "$$absUrl" ) , url : function ( a ) { if ( F ( a ) ) return this . $$url ; a = Re . exec ( a ) ; a [ 1 ] && this . path ( decodeURIComponent ( a [ 1 ] ) ) ; ( a [ 2 ] || a [ 1 ] ) && this . search ( a [ 3 ] || "" ) ; this . hash ( a [ 5 ] || "" ) ; return this } , protocol : tb ( "$$protocol" ) , host : tb ( "$$host" ) , port : tb ( "$$port" ) , path : Bc ( "$$path" , function ( a ) { a = null !== a ? a . toString ( ) :
"" ; return "/" == a . charAt ( 0 ) ? a : "/" + a } ) , search : function ( a , c ) { switch ( arguments . length ) { case 0 : return this . $$search ; case 1 : if ( G ( a ) || jb ( a ) ) a = a . toString ( ) , this . $$search = cc ( a ) ; else if ( T ( a ) ) r ( a , function ( c , e ) { null == c && delete a [ e ] } ) , this . $$search = a ; else throw Sb ( "isrcharg" ) ; break ; default : F ( c ) || null === c ? delete this . $$search [ a ] : this . $$search [ a ] = c } this . $$compose ( ) ; return this } , hash : Bc ( "$$hash" , function ( a ) { return null !== a ? a . toString ( ) : "" } ) , replace : function ( ) { this . $$replace = ! 0 ; return this } } ; var la = z ( "$parse" ) , Ec =
{ } , ya , Se = Function . prototype . call , Te = Function . prototype . apply , Pc = Function . prototype . bind , hb = { "null" : function ( ) { return null } , "true" : function ( ) { return ! 0 } , "false" : function ( ) { return ! 1 } , undefined : v , "+" : function ( a , c , d , e ) { d = d ( a , c ) ; e = e ( a , c ) ; return D ( d ) ? D ( e ) ? d + e : d : D ( e ) ? e : u } , "-" : function ( a , c , d , e ) { d = d ( a , c ) ; e = e ( a , c ) ; return ( D ( d ) ? d : 0 ) - ( D ( e ) ? e : 0 ) } , "*" : function ( a , c , d , e ) { return d ( a , c ) * e ( a , c ) } , "/" : function ( a , c , d , e ) { return d ( a , c ) / e ( a , c ) } , "%" : function ( a , c , d , e ) { return d ( a , c ) % e ( a , c ) } , "^" : function ( a , c , d , e ) { return d ( a , c ) ^
e ( a , c ) } , "=" : v , "===" : function ( a , c , d , e ) { return d ( a , c ) === e ( a , c ) } , "!==" : function ( a , c , d , e ) { return d ( a , c ) !== e ( a , c ) } , "==" : function ( a , c , d , e ) { return d ( a , c ) == e ( a , c ) } , "!=" : function ( a , c , d , e ) { return d ( a , c ) != e ( a , c ) } , "<" : function ( a , c , d , e ) { return d ( a , c ) < e ( a , c ) } , ">" : function ( a , c , d , e ) { return d ( a , c ) > e ( a , c ) } , "<=" : function ( a , c , d , e ) { return d ( a , c ) <= e ( a , c ) } , ">=" : function ( a , c , d , e ) { return d ( a , c ) >= e ( a , c ) } , "&&" : function ( a , c , d , e ) { return d ( a , c ) && e ( a , c ) } , "||" : function ( a , c , d , e ) { return d ( a , c ) || e ( a , c ) } , "&" : function ( a , c , d , e ) { return d ( a ,
c ) & e ( a , c ) } , "|" : function ( a , c , d , e ) { return e ( a , c ) ( a , c , d ( a , c ) ) } , "!" : function ( a , c , d ) { return ! d ( a , c ) } } , Ue = { n : "\n" , f : "\f" , r : "\r" , t : "\t" , v : "\v" , "'" : "'" , '"' : '"' } , Ub = function ( a ) { this . options = a } ; Ub . prototype = { constructor : Ub , lex : function ( a ) { this . text = a ; this . index = 0 ; this . ch = u ; this . lastCh = ":" ; for ( this . tokens = [ ] ; this . index < this . text . length ; ) { this . ch = this . text . charAt ( this . index ) ; if ( this . is ( "\"'" ) ) this . readString ( this . ch ) ; else if ( this . isNumber ( this . ch ) || this . is ( "." ) && this . isNumber ( this . peek ( ) ) ) this . readNumber ( ) ; else if ( this . isIdent ( this . ch ) ) this . readIdent ( ) ;
else if ( this . is ( "(){}[].,;:?" ) ) this . tokens . push ( { index : this . index , text : this . ch } ) , this . index ++ ; else if ( this . isWhitespace ( this . ch ) ) { this . index ++ ; continue } else { a = this . ch + this . peek ( ) ; var c = a + this . peek ( 2 ) , d = hb [ this . ch ] , e = hb [ a ] , f = hb [ c ] ; f ? ( this . tokens . push ( { index : this . index , text : c , fn : f } ) , this . index += 3 ) : e ? ( this . tokens . push ( { index : this . index , text : a , fn : e } ) , this . index += 2 ) : d ? ( this . tokens . push ( { index : this . index , text : this . ch , fn : d } ) , this . index += 1 ) : this . throwError ( "Unexpected next character " , this . index , this . index +
1 ) } this . lastCh = this . ch } return this . tokens } , is : function ( a ) { return - 1 !== a . indexOf ( this . ch ) } , was : function ( a ) { return - 1 !== a . indexOf ( this . lastCh ) } , peek : function ( a ) { a = a || 1 ; return this . index + a < this . text . length ? this . text . charAt ( this . index + a ) : ! 1 } , isNumber : function ( a ) { return "0" <= a && "9" >= a } , isWhitespace : function ( a ) { return " " === a || "\r" === a || "\t" === a || "\n" === a || "\v" === a || "\u00a0" === a } , isIdent : function ( a ) { return "a" <= a && "z" >= a || "A" <= a && "Z" >= a || "_" === a || "$" === a } , isExpOperator : function ( a ) { return "-" === a || "+" === a || this . isNumber ( a ) } ,
throwError : function ( a , c , d ) { d = d || this . index ; c = D ( c ) ? "s " + c + "-" + this . index + " [" + this . text . substring ( c , d ) + "]" : " " + d ; throw la ( "lexerr" , a , c , this . text ) ; } , readNumber : function ( ) { for ( var a = "" , c = this . index ; this . index < this . text . length ; ) { var d = x ( this . text . charAt ( this . index ) ) ; if ( "." == d || this . isNumber ( d ) ) a += d ; else { var e = this . peek ( ) ; if ( "e" == d && this . isExpOperator ( e ) ) a += d ; else if ( this . isExpOperator ( d ) && e && this . isNumber ( e ) && "e" == a . charAt ( a . length - 1 ) ) a += d ; else if ( ! this . isExpOperator ( d ) || e && this . isNumber ( e ) || "e" != a . charAt ( a . length -
1 ) ) break ; else this . throwError ( "Invalid exponent" ) } this . index ++ } a *= 1 ; this . tokens . push ( { index : c , text : a , literal : ! 0 , constant : ! 0 , fn : function ( ) { return a } } ) } , readIdent : function ( ) { for ( var a = this , c = "" , d = this . index , e , f , g , h ; this . index < this . text . length ; ) { h = this . text . charAt ( this . index ) ; if ( "." === h || this . isIdent ( h ) || this . isNumber ( h ) ) "." === h && ( e = this . index ) , c += h ; else break ; this . index ++ } if ( e ) for ( f = this . index ; f < this . text . length ; ) { h = this . text . charAt ( f ) ; if ( "(" === h ) { g = c . substr ( e - d + 1 ) ; c = c . substr ( 0 , e - d ) ; this . index = f ; break } if ( this . isWhitespace ( h ) ) f ++ ;
else break } d = { index : d , text : c } ; if ( hb . hasOwnProperty ( c ) ) d . fn = hb [ c ] , d . literal = ! 0 , d . constant = ! 0 ; else { var k = Dc ( c , this . options , this . text ) ; d . fn = E ( function ( a , c ) { return k ( a , c ) } , { assign : function ( d , e ) { return ub ( d , c , e , a . text , a . options ) } } ) } this . tokens . push ( d ) ; g && ( this . tokens . push ( { index : e , text : "." } ) , this . tokens . push ( { index : e + 1 , text : g } ) ) } , readString : function ( a ) { var c = this . index ; this . index ++ ; for ( var d = "" , e = a , f = ! 1 ; this . index < this . text . length ; ) { var g = this . text . charAt ( this . index ) , e = e + g ; if ( f ) "u" === g ? ( f = this . text . substring ( this . index +
1 , this . index + 5 ) , f . match ( /[\da-f]{4}/i ) || this . throwError ( "Invalid unicode escape [\\u" + f + "]" ) , this . index += 4 , d += String . fromCharCode ( parseInt ( f , 16 ) ) ) : d += Ue [ g ] || g , f = ! 1 ; else if ( "\\" === g ) f = ! 0 ; else { if ( g === a ) { this . index ++ ; this . tokens . push ( { index : c , text : e , string : d , literal : ! 0 , constant : ! 0 , fn : function ( ) { return d } } ) ; return } d += g } this . index ++ } this . throwError ( "Unterminated quote" , c ) } } ; var gb = function ( a , c , d ) { this . lexer = a ; this . $filter = c ; this . options = d } ; gb . ZERO = E ( function ( ) { return 0 } , { constant : ! 0 } ) ; gb . prototype = { constructor : gb ,
parse : function ( a ) { this . text = a ; this . tokens = this . lexer . lex ( a ) ; a = this . statements ( ) ; 0 !== this . tokens . length && this . throwError ( "is an unexpected token" , this . tokens [ 0 ] ) ; a . literal = ! ! a . literal ; a . constant = ! ! a . constant ; return a } , primary : function ( ) { var a ; if ( this . expect ( "(" ) ) a = this . filterChain ( ) , this . consume ( ")" ) ; else if ( this . expect ( "[" ) ) a = this . arrayDeclaration ( ) ; else if ( this . expect ( "{" ) ) a = this . object ( ) ; else { var c = this . expect ( ) ; ( a = c . fn ) || this . throwError ( "not a primary expression" , c ) ; a . literal = ! ! c . literal ; a . constant =
! ! c . constant } for ( var d ; c = this . expect ( "(" , "[" , "." ) ; ) "(" === c . text ? ( a = this . functionCall ( a , d ) , d = null ) : "[" === c . text ? ( d = a , a = this . objectIndex ( a ) ) : "." === c . text ? ( d = a , a = this . fieldAccess ( a ) ) : this . throwError ( "IMPOSSIBLE" ) ; return a } , throwError : function ( a , c ) { throw la ( "syntax" , c . text , a , c . index + 1 , this . text , this . text . substring ( c . index ) ) ; } , peekToken : function ( ) { if ( 0 === this . tokens . length ) throw la ( "ueoe" , this . text ) ; return this . tokens [ 0 ] } , peek : function ( a , c , d , e ) { if ( 0 < this . tokens . length ) { var f = this . tokens [ 0 ] , g = f . text ; if ( g ===
a || g === c || g === d || g === e || ! ( a || c || d || e ) ) return f } return ! 1 } , expect : function ( a , c , d , e ) { return ( a = this . peek ( a , c , d , e ) ) ? ( this . tokens . shift ( ) , a ) : ! 1 } , consume : function ( a ) { this . expect ( a ) || this . throwError ( "is unexpected, expecting [" + a + "]" , this . peek ( ) ) } , unaryFn : function ( a , c ) { return E ( function ( d , e ) { return a ( d , e , c ) } , { constant : c . constant } ) } , ternaryFn : function ( a , c , d ) { return E ( function ( e , f ) { return a ( e , f ) ? c ( e , f ) : d ( e , f ) } , { constant : a . constant && c . constant && d . constant } ) } , binaryFn : function ( a , c , d ) { return E ( function ( e , f ) { return c ( e ,
f , a , d ) } , { constant : a . constant && d . constant } ) } , statements : function ( ) { for ( var a = [ ] ; ; ) if ( 0 < this . tokens . length && ! this . peek ( "}" , ")" , ";" , "]" ) && a . push ( this . filterChain ( ) ) , ! this . expect ( ";" ) ) return 1 === a . length ? a [ 0 ] : function ( c , d ) { for ( var e , f = 0 ; f < a . length ; f ++ ) { var g = a [ f ] ; g && ( e = g ( c , d ) ) } return e } } , filterChain : function ( ) { for ( var a = this . expression ( ) , c ; ; ) if ( c = this . expect ( "|" ) ) a = this . binaryFn ( a , c . fn , this . filter ( ) ) ; else return a } , filter : function ( ) { for ( var a = this . expect ( ) , c = this . $filter ( a . text ) , d = [ ] ; ; ) if ( a = this . expect ( ":" ) ) d . push ( this . expression ( ) ) ;
else { var e = function ( a , e , h ) { h = [ h ] ; for ( var k = 0 ; k < d . length ; k ++ ) h . push ( d [ k ] ( a , e ) ) ; return c . apply ( a , h ) } ; return function ( ) { return e } } } , expression : function ( ) { return this . assignment ( ) } , assignment : function ( ) { var a = this . ternary ( ) , c , d ; return ( d = this . expect ( "=" ) ) ? ( a . assign || this . throwError ( "implies assignment but [" + this . text . substring ( 0 , d . index ) + "] can not be assigned to" , d ) , c = this . ternary ( ) , function ( d , f ) { return a . assign ( d , c ( d , f ) , f ) } ) : a } , ternary : function ( ) { var a = this . logicalOR ( ) , c , d ; if ( this . expect ( "?" ) ) { c = this . assignment ( ) ;
if ( d = this . expect ( ":" ) ) return this . ternaryFn ( a , c , this . assignment ( ) ) ; this . throwError ( "expected :" , d ) } else return a } , logicalOR : function ( ) { for ( var a = this . logicalAND ( ) , c ; ; ) if ( c = this . expect ( "||" ) ) a = this . binaryFn ( a , c . fn , this . logicalAND ( ) ) ; else return a } , logicalAND : function ( ) { var a = this . equality ( ) , c ; if ( c = this . expect ( "&&" ) ) a = this . binaryFn ( a , c . fn , this . logicalAND ( ) ) ; return a } , equality : function ( ) { var a = this . relational ( ) , c ; if ( c = this . expect ( "==" , "!=" , "===" , "!==" ) ) a = this . binaryFn ( a , c . fn , this . equality ( ) ) ; return a } ,
relational : function ( ) { var a = this . additive ( ) , c ; if ( c = this . expect ( "<" , ">" , "<=" , ">=" ) ) a = this . binaryFn ( a , c . fn , this . relational ( ) ) ; return a } , additive : function ( ) { for ( var a = this . multiplicative ( ) , c ; c = this . expect ( "+" , "-" ) ; ) a = this . binaryFn ( a , c . fn , this . multiplicative ( ) ) ; return a } , multiplicative : function ( ) { for ( var a = this . unary ( ) , c ; c = this . expect ( "*" , "/" , "%" ) ; ) a = this . binaryFn ( a , c . fn , this . unary ( ) ) ; return a } , unary : function ( ) { var a ; return this . expect ( "+" ) ? this . primary ( ) : ( a = this . expect ( "-" ) ) ? this . binaryFn ( gb . ZERO , a . fn ,
this . unary ( ) ) : ( a = this . expect ( "!" ) ) ? this . unaryFn ( a . fn , this . unary ( ) ) : this . primary ( ) } , fieldAccess : function ( a ) { var c = this , d = this . expect ( ) . text , e = Dc ( d , this . options , this . text ) ; return E ( function ( c , d , h ) { return e ( h || a ( c , d ) ) } , { assign : function ( e , g , h ) { ( h = a ( e , h ) ) || a . assign ( e , h = { } ) ; return ub ( h , d , g , c . text , c . options ) } } ) } , objectIndex : function ( a ) { var c = this , d = this . expression ( ) ; this . consume ( "]" ) ; return E ( function ( e , f ) { var g = a ( e , f ) , h = d ( e , f ) , k ; ka ( h , c . text ) ; if ( ! g ) return u ; ( g = ma ( g [ h ] , c . text ) ) && ( g . then && c . options . unwrapPromises ) &&
( k = g , "$$v" in g || ( k . $$v = u , k . then ( function ( a ) { k . $$v = a } ) ) , g = g . $$v ) ; return g } , { assign : function ( e , f , g ) { var h = ka ( d ( e , g ) , c . text ) ; ( g = ma ( a ( e , g ) , c . text ) ) || a . assign ( e , g = { } ) ; return g [ h ] = f } } ) } , functionCall : function ( a , c ) { var d = [ ] ; if ( ")" !== this . peekToken ( ) . text ) { do d . push ( this . expression ( ) ) ; while ( this . expect ( "," ) ) } this . consume ( ")" ) ; var e = this ; return function ( f , g ) { for ( var h = [ ] , k = c ? c ( f , g ) : f , m = 0 ; m < d . length ; m ++ ) h . push ( ma ( d [ m ] ( f , g ) , e . text ) ) ; m = a ( f , g , k ) || v ; ma ( k , e . text ) ; var l = e . text ; if ( m ) { if ( m . constructor === m ) throw la ( "isecfn" ,
l ) ; if ( m === Se || m === Te || Pc && m === Pc ) throw la ( "isecff" , l ) ; } h = m . apply ? m . apply ( k , h ) : m ( h [ 0 ] , h [ 1 ] , h [ 2 ] , h [ 3 ] , h [ 4 ] ) ; return ma ( h , e . text ) } } , arrayDeclaration : function ( ) { var a = [ ] , c = ! 0 ; if ( "]" !== this . peekToken ( ) . text ) { do { if ( this . peek ( "]" ) ) break ; var d = this . expression ( ) ; a . push ( d ) ; d . constant || ( c = ! 1 ) } while ( this . expect ( "," ) ) } this . consume ( "]" ) ; return E ( function ( c , d ) { for ( var g = [ ] , h = 0 ; h < a . length ; h ++ ) g . push ( a [ h ] ( c , d ) ) ; return g } , { literal : ! 0 , constant : c } ) } , object : function ( ) { var a = [ ] , c = ! 0 ; if ( "}" !== this . peekToken ( ) . text ) { do { if ( this . peek ( "}" ) ) break ;
var d = this . expect ( ) , d = d . string || d . text ; this . consume ( ":" ) ; var e = this . expression ( ) ; a . push ( { key : d , value : e } ) ; e . constant || ( c = ! 1 ) } while ( this . expect ( "," ) ) } this . consume ( "}" ) ; return E ( function ( c , d ) { for ( var e = { } , k = 0 ; k < a . length ; k ++ ) { var m = a [ k ] ; e [ m . key ] = m . value ( c , d ) } return e } , { literal : ! 0 , constant : c } ) } } ; var Ce = { } , Be = { } , za = z ( "$sce" ) , fa = { HTML : "html" , CSS : "css" , URL : "url" , RESOURCE _URL : "resourceUrl" , JS : "js" } , Y = X . createElement ( "a" ) , Gc = xa ( W . location . href , ! 0 ) ; kc . $inject = [ "$provide" ] ; Hc . $inject = [ "$locale" ] ; Jc . $inject = [ "$locale" ] ;
var Mc = "." , Me = { yyyy : Z ( "FullYear" , 4 ) , yy : Z ( "FullYear" , 2 , 0 , ! 0 ) , y : Z ( "FullYear" , 1 ) , MMMM : vb ( "Month" ) , MMM : vb ( "Month" , ! 0 ) , MM : Z ( "Month" , 2 , 1 ) , M : Z ( "Month" , 1 , 1 ) , dd : Z ( "Date" , 2 ) , d : Z ( "Date" , 1 ) , HH : Z ( "Hours" , 2 ) , H : Z ( "Hours" , 1 ) , hh : Z ( "Hours" , 2 , - 12 ) , h : Z ( "Hours" , 1 , - 12 ) , mm : Z ( "Minutes" , 2 ) , m : Z ( "Minutes" , 1 ) , ss : Z ( "Seconds" , 2 ) , s : Z ( "Seconds" , 1 ) , sss : Z ( "Milliseconds" , 3 ) , EEEE : vb ( "Day" ) , EEE : vb ( "Day" , ! 0 ) , a : function ( a , c ) { return 12 > a . getHours ( ) ? c . AMPMS [ 0 ] : c . AMPMS [ 1 ] } , Z : function ( a ) { a = - 1 * a . getTimezoneOffset ( ) ; return a = ( 0 <= a ? "+" : "" ) + ( Vb ( Math [ 0 <
a ? "floor" : "ceil" ] ( a / 60 ) , 2 ) + Vb ( Math . abs ( a % 60 ) , 2 ) ) } } , Le = /((?:[^yMdHhmsaZE']+)|(?:'(?:[^']|'')*')|(?:E+|y+|M+|d+|H+|h+|m+|s+|a|Z))(.*)/ , Ke = /^\-?\d+$/ ; Ic . $inject = [ "$locale" ] ; var Ie = aa ( x ) , Je = aa ( La ) ; Kc . $inject = [ "$parse" ] ; var cd = aa ( { restrict : "E" , compile : function ( a , c ) { 8 >= R && ( c . href || c . name || c . $set ( "href" , "" ) , a . append ( X . createComment ( "IE fix" ) ) ) ; if ( ! c . href && ! c . xlinkHref && ! c . name ) return function ( a , c ) { var f = "[object SVGAnimatedString]" === Ba . call ( c . prop ( "href" ) ) ? "xlink:href" : "href" ; c . on ( "click" , function ( a ) { c . attr ( f ) ||
a . preventDefault ( ) } ) } } } ) , Fb = { } ; r ( rb , function ( a , c ) { if ( "multiple" != a ) { var d = qa ( "ng-" + c ) ; Fb [ d ] = function ( ) { return { priority : 100 , link : function ( a , f , g ) { a . $watch ( g [ d ] , function ( a ) { g . $set ( c , ! ! a ) } ) } } } } } ) ; r ( [ "src" , "srcset" , "href" ] , function ( a ) { var c = qa ( "ng-" + a ) ; Fb [ c ] = function ( ) { return { priority : 99 , link : function ( d , e , f ) { var g = a , h = a ; "href" === a && "[object SVGAnimatedString]" === Ba . call ( e . prop ( "href" ) ) && ( h = "xlinkHref" , f . $attr [ h ] = "xlink:href" , g = null ) ; f . $observe ( c , function ( c ) { c ? ( f . $set ( h , c ) , R && g && e . prop ( g , f [ h ] ) ) : "href" ===
a && f . $set ( h , null ) } ) } } } } ) ; var yb = { $addControl : v , $removeControl : v , $setValidity : v , $setDirty : v , $setPristine : v } ; Nc . $inject = [ "$element" , "$attrs" , "$scope" , "$animate" ] ; var Qc = function ( a ) { return [ "$timeout" , function ( c ) { return { name : "form" , restrict : a ? "EAC" : "E" , controller : Nc , compile : function ( ) { return { pre : function ( a , e , f , g ) { if ( ! f . action ) { var h = function ( a ) { a . preventDefault ? a . preventDefault ( ) : a . returnValue = ! 1 } ; sb ( e [ 0 ] , "submit" , h ) ; e . on ( "$destroy" , function ( ) { c ( function ( ) { bb ( e [ 0 ] , "submit" , h ) } , 0 , ! 1 ) } ) } var k = e . parent ( ) . controller ( "form" ) ,
m = f . name || f . ngForm ; m && ub ( a , m , g , m ) ; if ( k ) e . on ( "$destroy" , function ( ) { k . $removeControl ( g ) ; m && ub ( a , m , u , m ) ; E ( g , yb ) } ) } } } } } ] } , dd = Qc ( ) , qd = Qc ( ! 0 ) , Ve = /^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$/ , We = /^[a-z0-9!#$%&'*+\/=?^_`{|}~.-]+@[a-z0-9]([a-z0-9-]*[a-z0-9])?(\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$/i , Xe = /^\s*(\-|\+)?(\d+|(\d*(\.\d*)))\s*$/ , Rc = { text : Ab , number : function ( a , c , d , e , f , g ) { Ab ( a , c , d , e , f , g ) ; e . $parsers . push ( function ( a ) { var c = e . $isEmpty ( a ) ; if ( c || Xe . test ( a ) ) return e . $setValidity ( "number" ,
! 0 ) , "" === a ? null : c ? a : parseFloat ( a ) ; e . $setValidity ( "number" , ! 1 ) ; return u } ) ; Ne ( e , "number" , Ye , null , e . $$validityState ) ; e . $formatters . push ( function ( a ) { return e . $isEmpty ( a ) ? "" : "" + a } ) ; d . min && ( a = function ( a ) { var c = parseFloat ( d . min ) ; return ua ( e , "min" , e . $isEmpty ( a ) || a >= c , a ) } , e . $parsers . push ( a ) , e . $formatters . push ( a ) ) ; d . max && ( a = function ( a ) { var c = parseFloat ( d . max ) ; return ua ( e , "max" , e . $isEmpty ( a ) || a <= c , a ) } , e . $parsers . push ( a ) , e . $formatters . push ( a ) ) ; e . $formatters . push ( function ( a ) { return ua ( e , "number" , e . $isEmpty ( a ) ||
jb ( a ) , a ) } ) } , url : function ( a , c , d , e , f , g ) { Ab ( a , c , d , e , f , g ) ; a = function ( a ) { return ua ( e , "url" , e . $isEmpty ( a ) || Ve . test ( a ) , a ) } ; e . $formatters . push ( a ) ; e . $parsers . push ( a ) } , email : function ( a , c , d , e , f , g ) { Ab ( a , c , d , e , f , g ) ; a = function ( a ) { return ua ( e , "email" , e . $isEmpty ( a ) || We . test ( a ) , a ) } ; e . $formatters . push ( a ) ; e . $parsers . push ( a ) } , radio : function ( a , c , d , e ) { F ( d . name ) && c . attr ( "name" , ib ( ) ) ; c . on ( "click" , function ( ) { c [ 0 ] . checked && a . $apply ( function ( ) { e . $setViewValue ( d . value ) } ) } ) ; e . $render = function ( ) { c [ 0 ] . checked = d . value == e . $viewValue } ;
d . $observe ( "value" , e . $render ) } , checkbox : function ( a , c , d , e ) { var f = d . ngTrueValue , g = d . ngFalseValue ; G ( f ) || ( f = ! 0 ) ; G ( g ) || ( g = ! 1 ) ; c . on ( "click" , function ( ) { a . $apply ( function ( ) { e . $setViewValue ( c [ 0 ] . checked ) } ) } ) ; e . $render = function ( ) { c [ 0 ] . checked = e . $viewValue } ; e . $isEmpty = function ( a ) { return a !== f } ; e . $formatters . push ( function ( a ) { return a === f } ) ; e . $parsers . push ( function ( a ) { return a ? f : g } ) } , hidden : v , button : v , submit : v , reset : v , file : v } , Ye = [ "badInput" ] , hc = [ "$browser" , "$sniffer" , function ( a , c ) { return { restrict : "E" , require : "?ngModel" ,
link : function ( d , e , f , g ) { g && ( Rc [ x ( f . type ) ] || Rc . text ) ( d , e , f , g , c , a ) } } } ] , wb = "ng-valid" , xb = "ng-invalid" , Ra = "ng-pristine" , zb = "ng-dirty" , Ze = [ "$scope" , "$exceptionHandler" , "$attrs" , "$element" , "$parse" , "$animate" , function ( a , c , d , e , f , g ) { function h ( a , c ) { c = c ? "-" + nb ( c , "-" ) : "" ; g . removeClass ( e , ( a ? xb : wb ) + c ) ; g . addClass ( e , ( a ? wb : xb ) + c ) } this . $modelValue = this . $viewValue = Number . NaN ; this . $parsers = [ ] ; this . $formatters = [ ] ; this . $viewChangeListeners = [ ] ; this . $pristine = ! 0 ; this . $dirty = ! 1 ; this . $valid = ! 0 ; this . $invalid = ! 1 ; this . $name =
d . name ; var k = f ( d . ngModel ) , m = k . assign ; if ( ! m ) throw z ( "ngModel" ) ( "nonassign" , d . ngModel , ia ( e ) ) ; this . $render = v ; this . $isEmpty = function ( a ) { return F ( a ) || "" === a || null === a || a !== a } ; var l = e . inheritedData ( "$formController" ) || yb , n = 0 , q = this . $error = { } ; e . addClass ( Ra ) ; h ( ! 0 ) ; this . $setValidity = function ( a , c ) { q [ a ] !== ! c && ( c ? ( q [ a ] && n -- , n || ( h ( ! 0 ) , this . $valid = ! 0 , this . $invalid = ! 1 ) ) : ( h ( ! 1 ) , this . $invalid = ! 0 , this . $valid = ! 1 , n ++ ) , q [ a ] = ! c , h ( c , a ) , l . $setValidity ( a , c , this ) ) } ; this . $setPristine = function ( ) { this . $dirty = ! 1 ; this . $pristine =
! 0 ; g . removeClass ( e , zb ) ; g . addClass ( e , Ra ) } ; this . $setViewValue = function ( d ) { this . $viewValue = d ; this . $pristine && ( this . $dirty = ! 0 , this . $pristine = ! 1 , g . removeClass ( e , Ra ) , g . addClass ( e , zb ) , l . $setDirty ( ) ) ; r ( this . $parsers , function ( a ) { d = a ( d ) } ) ; this . $modelValue !== d && ( this . $modelValue = d , m ( a , d ) , r ( this . $viewChangeListeners , function ( a ) { try { a ( ) } catch ( d ) { c ( d ) } } ) ) } ; var p = this ; a . $watch ( function ( ) { var c = k ( a ) ; if ( p . $modelValue !== c ) { var d = p . $formatters , e = d . length ; for ( p . $modelValue = c ; e -- ; ) c = d [ e ] ( c ) ; p . $viewValue !== c && ( p . $viewValue =
c , p . $render ( ) ) } return c } ) } ] , Fd = function ( ) { return { require : [ "ngModel" , "^?form" ] , controller : Ze , link : function ( a , c , d , e ) { var f = e [ 0 ] , g = e [ 1 ] || yb ; g . $addControl ( f ) ; a . $on ( "$destroy" , function ( ) { g . $removeControl ( f ) } ) } } } , Hd = aa ( { require : "ngModel" , link : function ( a , c , d , e ) { e . $viewChangeListeners . push ( function ( ) { a . $eval ( d . ngChange ) } ) } } ) , ic = function ( ) { return { require : "?ngModel" , link : function ( a , c , d , e ) { if ( e ) { d . required = ! 0 ; var f = function ( a ) { if ( d . required && e . $isEmpty ( a ) ) e . $setValidity ( "required" , ! 1 ) ; else return e . $setValidity ( "required" ,
! 0 ) , a } ; e . $formatters . push ( f ) ; e . $parsers . unshift ( f ) ; d . $observe ( "required" , function ( ) { f ( e . $viewValue ) } ) } } } } , Gd = function ( ) { return { require : "ngModel" , link : function ( a , c , d , e ) { var f = ( a = /\/(.*)\// . exec ( d . ngList ) ) && RegExp ( a [ 1 ] ) || d . ngList || "," ; e . $parsers . push ( function ( a ) { if ( ! F ( a ) ) { var c = [ ] ; a && r ( a . split ( f ) , function ( a ) { a && c . push ( $ ( a ) ) } ) ; return c } } ) ; e . $formatters . push ( function ( a ) { return L ( a ) ? a . join ( ", " ) : u } ) ; e . $isEmpty = function ( a ) { return ! a || ! a . length } } } } , $e = /^(true|false|\d+)$/ , Id = function ( ) { return { priority : 100 ,
compile : function ( a , c ) { return $e . test ( c . ngValue ) ? function ( a , c , f ) { f . $set ( "value" , a . $eval ( f . ngValue ) ) } : function ( a , c , f ) { a . $watch ( f . ngValue , function ( a ) { f . $set ( "value" , a ) } ) } } } } , id = Aa ( { compile : function ( a ) { a . addClass ( "ng-binding" ) ; return function ( a , d , e ) { d . data ( "$binding" , e . ngBind ) ; a . $watch ( e . ngBind , function ( a ) { d . text ( a == u ? "" : a ) } ) } } } ) , kd = [ "$interpolate" , function ( a ) { return function ( c , d , e ) { c = a ( d . attr ( e . $attr . ngBindTemplate ) ) ; d . addClass ( "ng-binding" ) . data ( "$binding" , c ) ; e . $observe ( "ngBindTemplate" , function ( a ) { d . text ( a ) } ) } } ] ,
jd = [ "$sce" , "$parse" , function ( a , c ) { return { compile : function ( d ) { d . addClass ( "ng-binding" ) ; return function ( d , f , g ) { f . data ( "$binding" , g . ngBindHtml ) ; var h = c ( g . ngBindHtml ) ; d . $watch ( function ( ) { return ( h ( d ) || "" ) . toString ( ) } , function ( c ) { f . html ( a . getTrustedHtml ( h ( d ) ) || "" ) } ) } } } } ] , ld = Wb ( "" , ! 0 ) , nd = Wb ( "Odd" , 0 ) , md = Wb ( "Even" , 1 ) , od = Aa ( { compile : function ( a , c ) { c . $set ( "ngCloak" , u ) ; a . removeClass ( "ng-cloak" ) } } ) , pd = [ function ( ) { return { scope : ! 0 , controller : "@" , priority : 500 } } ] , jc = { } , af = { blur : ! 0 , focus : ! 0 } ; r ( "click dblclick mousedown mouseup mouseover mouseout mousemove mouseenter mouseleave keydown keyup keypress submit focus blur copy cut paste" . split ( " " ) ,
function ( a ) { var c = qa ( "ng-" + a ) ; jc [ c ] = [ "$parse" , "$rootScope" , function ( d , e ) { return { compile : function ( f , g ) { var h = d ( g [ c ] , ! 0 ) ; return function ( c , d ) { d . on ( a , function ( d ) { var f = function ( ) { h ( c , { $event : d } ) } ; af [ a ] && e . $$phase ? c . $evalAsync ( f ) : c . $apply ( f ) } ) } } } } ] } ) ; var sd = [ "$animate" , function ( a ) { return { transclude : "element" , priority : 600 , terminal : ! 0 , restrict : "A" , $$tlb : ! 0 , link : function ( c , d , e , f , g ) { var h , k , m ; c . $watch ( e . ngIf , function ( f ) { Wa ( f ) ? k || ( k = c . $new ( ) , g ( k , function ( c ) { c [ c . length ++ ] = X . createComment ( " end ngIf: " + e . ngIf +
" " ) ; h = { clone : c } ; a . enter ( c , d . parent ( ) , d ) } ) ) : ( m && ( m . remove ( ) , m = null ) , k && ( k . $destroy ( ) , k = null ) , h && ( m = Eb ( h . clone ) , a . leave ( m , function ( ) { m = null } ) , h = null ) ) } ) } } } ] , td = [ "$http" , "$templateCache" , "$anchorScroll" , "$animate" , "$sce" , function ( a , c , d , e , f ) { return { restrict : "ECA" , priority : 400 , terminal : ! 0 , transclude : "element" , controller : Xa . noop , compile : function ( g , h ) { var k = h . ngInclude || h . src , m = h . onload || "" , l = h . autoscroll ; return function ( g , h , p , r , J ) { var w = 0 , t , y , u , B = function ( ) { y && ( y . remove ( ) , y = null ) ; t && ( t . $destroy ( ) , t = null ) ;
u && ( e . leave ( u , function ( ) { y = null } ) , y = u , u = null ) } ; g . $watch ( f . parseAsResourceUrl ( k ) , function ( f ) { var k = function ( ) { ! D ( l ) || l && ! g . $eval ( l ) || d ( ) } , p = ++ w ; f ? ( a . get ( f , { cache : c } ) . success ( function ( a ) { if ( p === w ) { var c = g . $new ( ) ; r . template = a ; a = J ( c , function ( a ) { B ( ) ; e . enter ( a , null , h , k ) } ) ; t = c ; u = a ; t . $emit ( "$includeContentLoaded" ) ; g . $eval ( m ) } } ) . error ( function ( ) { p === w && B ( ) } ) , g . $emit ( "$includeContentRequested" ) ) : ( B ( ) , r . template = null ) } ) } } } } ] , Jd = [ "$compile" , function ( a ) { return { restrict : "ECA" , priority : - 400 , require : "ngInclude" ,
link : function ( c , d , e , f ) { d . html ( f . template ) ; a ( d . contents ( ) ) ( c ) } } } ] , ud = Aa ( { priority : 450 , compile : function ( ) { return { pre : function ( a , c , d ) { a . $eval ( d . ngInit ) } } } } ) , vd = Aa ( { terminal : ! 0 , priority : 1E3 } ) , wd = [ "$locale" , "$interpolate" , function ( a , c ) { var d = /{}/g ; return { restrict : "EA" , link : function ( e , f , g ) { var h = g . count , k = g . $attr . when && f . attr ( g . $attr . when ) , m = g . offset || 0 , l = e . $eval ( k ) || { } , n = { } , q = c . startSymbol ( ) , p = c . endSymbol ( ) , s = /^when(Minus)?(.+)$/ ; r ( g , function ( a , c ) { s . test ( c ) && ( l [ x ( c . replace ( "when" , "" ) . replace ( "Minus" , "-" ) ) ] =
f . attr ( g . $attr [ c ] ) ) } ) ; r ( l , function ( a , e ) { n [ e ] = c ( a . replace ( d , q + h + "-" + m + p ) ) } ) ; e . $watch ( function ( ) { var c = parseFloat ( e . $eval ( h ) ) ; if ( isNaN ( c ) ) return "" ; c in l || ( c = a . pluralCat ( c - m ) ) ; return n [ c ] ( e , f , ! 0 ) } , function ( a ) { f . text ( a ) } ) } } } ] , xd = [ "$parse" , "$animate" , function ( a , c ) { var d = z ( "ngRepeat" ) ; return { transclude : "element" , priority : 1E3 , terminal : ! 0 , $$tlb : ! 0 , link : function ( e , f , g , h , k ) { var m = g . ngRepeat , l = m . match ( /^\s*([\s\S]+?)\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?\s*$/ ) , n , q , p , s , u , w , t = { $id : Na } ; if ( ! l ) throw d ( "iexp" ,
m ) ; g = l [ 1 ] ; h = l [ 2 ] ; ( l = l [ 3 ] ) ? ( n = a ( l ) , q = function ( a , c , d ) { w && ( t [ w ] = a ) ; t [ u ] = c ; t . $index = d ; return n ( e , t ) } ) : ( p = function ( a , c ) { return Na ( c ) } , s = function ( a ) { return a } ) ; l = g . match ( /^(?:([\$\w]+)|\(([\$\w]+)\s*,\s*([\$\w]+)\))$/ ) ; if ( ! l ) throw d ( "iidexp" , g ) ; u = l [ 3 ] || l [ 1 ] ; w = l [ 2 ] ; var y = { } ; e . $watchCollection ( h , function ( a ) { var g , h , l = f [ 0 ] , n , t = { } , D , C , I , x , G , v , z , F = [ ] ; if ( Sa ( a ) ) v = a , G = q || p ; else { G = q || s ; v = [ ] ; for ( I in a ) a . hasOwnProperty ( I ) && "$" != I . charAt ( 0 ) && v . push ( I ) ; v . sort ( ) } D = v . length ; h = F . length = v . length ; for ( g = 0 ; g < h ; g ++ ) if ( I = a ===
v ? g : v [ g ] , x = a [ I ] , n = G ( I , x , g ) , Ea ( n , "`track by` id" ) , y . hasOwnProperty ( n ) ) z = y [ n ] , delete y [ n ] , t [ n ] = z , F [ g ] = z ; else { if ( t . hasOwnProperty ( n ) ) throw r ( F , function ( a ) { a && a . scope && ( y [ a . id ] = a ) } ) , d ( "dupes" , m , n , oa ( x ) ) ; F [ g ] = { id : n } ; t [ n ] = ! 1 } for ( I in y ) y . hasOwnProperty ( I ) && ( z = y [ I ] , g = Eb ( z . clone ) , c . leave ( g ) , r ( g , function ( a ) { a . $$NG _REMOVED = ! 0 } ) , z . scope . $destroy ( ) ) ; g = 0 ; for ( h = v . length ; g < h ; g ++ ) { I = a === v ? g : v [ g ] ; x = a [ I ] ; z = F [ g ] ; F [ g - 1 ] && ( l = F [ g - 1 ] . clone [ F [ g - 1 ] . clone . length - 1 ] ) ; if ( z . scope ) { C = z . scope ; n = l ; do n = n . nextSibling ; while ( n && n . $$NG _REMOVED ) ;
z . clone [ 0 ] != n && c . move ( Eb ( z . clone ) , null , A ( l ) ) ; l = z . clone [ z . clone . length - 1 ] } else C = e . $new ( ) ; C [ u ] = x ; w && ( C [ w ] = I ) ; C . $index = g ; C . $first = 0 === g ; C . $last = g === D - 1 ; C . $middle = ! ( C . $first || C . $last ) ; C . $odd = ! ( C . $even = 0 === ( g & 1 ) ) ; z . scope || k ( C , function ( a ) { a [ a . length ++ ] = X . createComment ( " end ngRepeat: " + m + " " ) ; c . enter ( a , null , A ( l ) ) ; l = a ; z . scope = C ; z . clone = a ; t [ z . id ] = z } ) } y = t } ) } } } ] , yd = [ "$animate" , function ( a ) { return function ( c , d , e ) { c . $watch ( e . ngShow , function ( c ) { a [ Wa ( c ) ? "removeClass" : "addClass" ] ( d , "ng-hide" ) } ) } } ] , rd = [ "$animate" ,
function ( a ) { return function ( c , d , e ) { c . $watch ( e . ngHide , function ( c ) { a [ Wa ( c ) ? "addClass" : "removeClass" ] ( d , "ng-hide" ) } ) } } ] , zd = Aa ( function ( a , c , d ) { a . $watch ( d . ngStyle , function ( a , d ) { d && a !== d && r ( d , function ( a , d ) { c . css ( d , "" ) } ) ; a && c . css ( a ) } , ! 0 ) } ) , Ad = [ "$animate" , function ( a ) { return { restrict : "EA" , require : "ngSwitch" , controller : [ "$scope" , function ( ) { this . cases = { } } ] , link : function ( c , d , e , f ) { var g = [ ] , h = [ ] , k = [ ] , m = [ ] ; c . $watch ( e . ngSwitch || e . on , function ( d ) { var n , q ; n = 0 ; for ( q = k . length ; n < q ; ++ n ) k [ n ] . remove ( ) ; n = k . length = 0 ; for ( q =
m . length ; n < q ; ++ n ) { var p = h [ n ] ; m [ n ] . $destroy ( ) ; k [ n ] = p ; a . leave ( p , function ( ) { k . splice ( n , 1 ) } ) } h . length = 0 ; m . length = 0 ; if ( g = f . cases [ "!" + d ] || f . cases [ "?" ] ) c . $eval ( e . change ) , r ( g , function ( d ) { var e = c . $new ( ) ; m . push ( e ) ; d . transclude ( e , function ( c ) { var e = d . element ; h . push ( c ) ; a . enter ( c , e . parent ( ) , e ) } ) } ) } ) } } } ] , Bd = Aa ( { transclude : "element" , priority : 800 , require : "^ngSwitch" , link : function ( a , c , d , e , f ) { e . cases [ "!" + d . ngSwitchWhen ] = e . cases [ "!" + d . ngSwitchWhen ] || [ ] ; e . cases [ "!" + d . ngSwitchWhen ] . push ( { transclude : f , element : c } ) } } ) , Cd =
Aa ( { transclude : "element" , priority : 800 , require : "^ngSwitch" , link : function ( a , c , d , e , f ) { e . cases [ "?" ] = e . cases [ "?" ] || [ ] ; e . cases [ "?" ] . push ( { transclude : f , element : c } ) } } ) , Ed = Aa ( { link : function ( a , c , d , e , f ) { if ( ! f ) throw z ( "ngTransclude" ) ( "orphan" , ia ( c ) ) ; f ( function ( a ) { c . empty ( ) ; c . append ( a ) } ) } } ) , ed = [ "$templateCache" , function ( a ) { return { restrict : "E" , terminal : ! 0 , compile : function ( c , d ) { "text/ng-template" == d . type && a . put ( d . id , c [ 0 ] . text ) } } } ] , bf = z ( "ngOptions" ) , Dd = aa ( { terminal : ! 0 } ) , fd = [ "$compile" , "$parse" , function ( a , c ) { var d =
/^\s*([\s\S]+?)(?:\s+as\s+([\s\S]+?))?(?:\s+group\s+by\s+([\s\S]+?))?\s+for\s+(?:([\$\w][\$\w]*)|(?:\(\s*([\$\w][\$\w]*)\s*,\s*([\$\w][\$\w]*)\s*\)))\s+in\s+([\s\S]+?)(?:\s+track\s+by\s+([\s\S]+?))?$/ , e = { $setViewValue : v } ; return { restrict : "E" , require : [ "select" , "?ngModel" ] , controller : [ "$element" , "$scope" , "$attrs" , function ( a , c , d ) { var k = this , m = { } , l = e , n ; k . databound = d . ngModel ; k . init = function ( a , c , d ) { l = a ; n = d } ; k . addOption = function ( c ) { Ea ( c , '"option value"' ) ; m [ c ] = ! 0 ; l . $viewValue == c && ( a . val ( c ) , n . parent ( ) && n . remove ( ) ) } ;
k . removeOption = function ( a ) { this . hasOption ( a ) && ( delete m [ a ] , l . $viewValue == a && this . renderUnknownOption ( a ) ) } ; k . renderUnknownOption = function ( c ) { c = "? " + Na ( c ) + " ?" ; n . val ( c ) ; a . prepend ( n ) ; a . val ( c ) ; n . prop ( "selected" , ! 0 ) } ; k . hasOption = function ( a ) { return m . hasOwnProperty ( a ) } ; c . $on ( "$destroy" , function ( ) { k . renderUnknownOption = v } ) } ] , link : function ( e , g , h , k ) { function m ( a , c , d , e ) { d . $render = function ( ) { var a = d . $viewValue ; e . hasOption ( a ) ? ( x . parent ( ) && x . remove ( ) , c . val ( a ) , "" === a && w . prop ( "selected" , ! 0 ) ) : F ( a ) && w ? c . val ( "" ) : e . renderUnknownOption ( a ) } ;
c . on ( "change" , function ( ) { a . $apply ( function ( ) { x . parent ( ) && x . remove ( ) ; d . $setViewValue ( c . val ( ) ) } ) } ) } function l ( a , c , d ) { var e ; d . $render = function ( ) { var a = new db ( d . $viewValue ) ; r ( c . find ( "option" ) , function ( c ) { c . selected = D ( a . get ( c . value ) ) } ) } ; a . $watch ( function ( ) { Ca ( e , d . $viewValue ) || ( e = ha ( d . $viewValue ) , d . $render ( ) ) } ) ; c . on ( "change" , function ( ) { a . $apply ( function ( ) { var a = [ ] ; r ( c . find ( "option" ) , function ( c ) { c . selected && a . push ( c . value ) } ) ; d . $setViewValue ( a ) } ) } ) } function n ( e , f , g ) { function h ( ) { var a = { "" : [ ] } , c = [ "" ] , d , k ,
s , u , v ; s = g . $modelValue ; u = A ( e ) || [ ] ; var F = n ? Xb ( u ) : u , G , Q , C ; Q = { } ; C = ! 1 ; if ( p ) if ( k = g . $modelValue , w && L ( k ) ) for ( C = new db ( [ ] ) , d = { } , v = 0 ; v < k . length ; v ++ ) d [ m ] = k [ v ] , C . put ( w ( e , d ) , k [ v ] ) ; else C = new db ( k ) ; v = C ; var E , K ; for ( C = 0 ; G = F . length , C < G ; C ++ ) { k = C ; if ( n ) { k = F [ C ] ; if ( "$" === k . charAt ( 0 ) ) continue ; Q [ n ] = k } Q [ m ] = u [ k ] ; d = r ( e , Q ) || "" ; ( k = a [ d ] ) || ( k = a [ d ] = [ ] , c . push ( d ) ) ; p ? d = D ( v . remove ( w ? w ( e , Q ) : x ( e , Q ) ) ) : ( w ? ( d = { } , d [ m ] = s , d = w ( e , d ) === w ( e , Q ) ) : d = s === x ( e , Q ) , v = v || d ) ; E = l ( e , Q ) ; E = D ( E ) ? E : "" ; k . push ( { id : w ? w ( e , Q ) : n ? F [ C ] : C , label : E , selected : d } ) } p || ( z || null ===
s ? a [ "" ] . unshift ( { id : "" , label : "" , selected : ! v } ) : v || a [ "" ] . unshift ( { id : "?" , label : "" , selected : ! 0 } ) ) ; Q = 0 ; for ( F = c . length ; Q < F ; Q ++ ) { d = c [ Q ] ; k = a [ d ] ; B . length <= Q ? ( s = { element : y . clone ( ) . attr ( "label" , d ) , label : k . label } , u = [ s ] , B . push ( u ) , f . append ( s . element ) ) : ( u = B [ Q ] , s = u [ 0 ] , s . label != d && s . element . attr ( "label" , s . label = d ) ) ; E = null ; C = 0 ; for ( G = k . length ; C < G ; C ++ ) d = k [ C ] , ( v = u [ C + 1 ] ) ? ( E = v . element , v . label !== d . label && ( E . text ( v . label = d . label ) , E . prop ( "label" , v . label ) ) , v . id !== d . id && E . val ( v . id = d . id ) , E [ 0 ] . selected !== d . selected && ( E . prop ( "selected" ,
v . selected = d . selected ) , R && E . prop ( "selected" , v . selected ) ) ) : ( "" === d . id && z ? K = z : ( K = t . clone ( ) ) . val ( d . id ) . prop ( "selected" , d . selected ) . attr ( "selected" , d . selected ) . prop ( "label" , d . label ) . text ( d . label ) , u . push ( { element : K , label : d . label , id : d . id , selected : d . selected } ) , q . addOption ( d . label , K ) , E ? E . after ( K ) : s . element . append ( K ) , E = K ) ; for ( C ++ ; u . length > C ; ) d = u . pop ( ) , q . removeOption ( d . label ) , d . element . remove ( ) } for ( ; B . length > Q ; ) B . pop ( ) [ 0 ] . element . remove ( ) } var k ; if ( ! ( k = s . match ( d ) ) ) throw bf ( "iexp" , s , ia ( f ) ) ; var l = c ( k [ 2 ] || k [ 1 ] ) ,
m = k [ 4 ] || k [ 6 ] , n = k [ 5 ] , r = c ( k [ 3 ] || "" ) , x = c ( k [ 2 ] ? k [ 1 ] : m ) , A = c ( k [ 7 ] ) , w = k [ 8 ] ? c ( k [ 8 ] ) : null , B = [ [ { element : f , label : "" } ] ] ; z && ( a ( z ) ( e ) , z . removeClass ( "ng-scope" ) , z . remove ( ) ) ; f . empty ( ) ; f . on ( "change" , function ( ) { e . $apply ( function ( ) { var a , c = A ( e ) || [ ] , d = { } , k , l , q , r , s , t , v ; if ( p ) for ( l = [ ] , r = 0 , t = B . length ; r < t ; r ++ ) for ( a = B [ r ] , q = 1 , s = a . length ; q < s ; q ++ ) { if ( ( k = a [ q ] . element ) [ 0 ] . selected ) { k = k . val ( ) ; n && ( d [ n ] = k ) ; if ( w ) for ( v = 0 ; v < c . length && ( d [ m ] = c [ v ] , w ( e , d ) != k ) ; v ++ ) ; else d [ m ] = c [ k ] ; l . push ( x ( e , d ) ) } } else if ( k = f . val ( ) , "?" == k ) l = u ; else if ( "" ===
k ) l = null ; else if ( w ) for ( v = 0 ; v < c . length ; v ++ ) { if ( d [ m ] = c [ v ] , w ( e , d ) == k ) { l = x ( e , d ) ; break } } else d [ m ] = c [ k ] , n && ( d [ n ] = k ) , l = x ( e , d ) ; g . $setViewValue ( l ) ; h ( ) } ) } ) ; g . $render = h ; e . $watchCollection ( A , h ) ; e . $watchCollection ( function ( ) { var a = { } , c = A ( e ) ; if ( c ) { for ( var d = Array ( c . length ) , f = 0 , g = c . length ; f < g ; f ++ ) a [ m ] = c [ f ] , d [ f ] = l ( e , a ) ; return d } } , h ) ; p && e . $watchCollection ( function ( ) { return g . $modelValue } , h ) } if ( k [ 1 ] ) { var q = k [ 0 ] ; k = k [ 1 ] ; var p = h . multiple , s = h . ngOptions , z = ! 1 , w , t = A ( X . createElement ( "option" ) ) , y = A ( X . createElement ( "optgroup" ) ) ,
x = t . clone ( ) ; h = 0 ; for ( var B = g . children ( ) , v = B . length ; h < v ; h ++ ) if ( "" === B [ h ] . value ) { w = z = B . eq ( h ) ; break } q . init ( k , z , x ) ; p && ( k . $isEmpty = function ( a ) { return ! a || 0 === a . length } ) ; s ? n ( e , g , k ) : p ? l ( e , g , k ) : m ( e , g , k , q ) } } } } ] , hd = [ "$interpolate" , function ( a ) { var c = { addOption : v , removeOption : v } ; return { restrict : "E" , priority : 100 , compile : function ( d , e ) { if ( F ( e . value ) ) { var f = a ( d . text ( ) , ! 0 ) ; f || e . $set ( "value" , d . text ( ) ) } return function ( a , d , e ) { var m = d . parent ( ) , l = m . data ( "$selectController" ) || m . parent ( ) . data ( "$selectController" ) ; l && l . databound ?
d . prop ( "selected" , ! 1 ) : l = c ; f ? a . $watch ( f , function ( a , c ) { e . $set ( "value" , a ) ; a !== c && l . removeOption ( c ) ; l . addOption ( a ) } ) : l . addOption ( e . value ) ; d . on ( "$destroy" , function ( ) { l . removeOption ( e . value ) } ) } } } } ] , gd = aa ( { restrict : "E" , terminal : ! 0 } ) ; W . angular . bootstrap ? console . log ( "WARNING: Tried to load angular more than once." ) : ( ( Fa = W . jQuery ) && Fa . fn . on ? ( A = Fa , E ( Fa . fn , { scope : Oa . scope , isolateScope : Oa . isolateScope , controller : Oa . controller , injector : Oa . injector , inheritedData : Oa . inheritedData } ) , Gb ( "remove" , ! 0 , ! 0 , ! 1 ) , Gb ( "empty" ,
! 1 , ! 1 , ! 1 ) , Gb ( "html" , ! 1 , ! 1 , ! 0 ) ) : A = S , Xa . element = A , Zc ( Xa ) , A ( X ) . ready ( function ( ) { Wc ( X , dc ) } ) ) } ) ( window , document ) ; ! window . angular . $$csp ( ) && window . angular . element ( document ) . find ( "head" ) . prepend ( '<style type="text/css">@charset "UTF-8";[ng\\:cloak],[ng-cloak],[data-ng-cloak],[x-ng-cloak],.ng-cloak,.x-ng-cloak,.ng-hide{display:none !important;}ng\\:form{display:block;}.ng-animate-block-transitions{transition:0s all!important;-webkit-transition:0s all!important;}.ng-hide-add-active,.ng-hide-remove{display:block!important;}</style>' ) ;
//
/ * *
* @ license
* lodash 3.2 . 0 ( Custom Build ) lodash . com / license | Underscore . js 1.7 . 0 underscorejs . org / LICENSE
* Build : ` lodash modern -o ./lodash.js `
* /
; ( function ( ) { function n ( n , t ) { if ( n !== t ) { var r = n === n , e = t === t ; if ( n > t || ! r || typeof n == "undefined" && e ) return 1 ; if ( n < t || ! e || typeof t == "undefined" && r ) return - 1 } return 0 } function t ( n , t , r ) { if ( t !== t ) return p ( n , r ) ; r = ( r || 0 ) - 1 ; for ( var e = n . length ; ++ r < e ; ) if ( n [ r ] === t ) return r ; return - 1 } function r ( n , t ) { var r = n . length ; for ( n . sort ( t ) ; r -- ; ) n [ r ] = n [ r ] . c ; return n } function e ( n ) { return typeof n == "string" ? n : null == n ? "" : n + "" } function u ( n ) { return n . charCodeAt ( 0 ) } function o ( n , t ) { for ( var r = - 1 , e = n . length ; ++ r < e && - 1 < t . indexOf ( n . charAt ( r ) ) ; ) ; return r
} function i ( n , t ) { for ( var r = n . length ; r -- && - 1 < t . indexOf ( n . charAt ( r ) ) ; ) ; return r } function f ( t , r ) { return n ( t . a , r . a ) || t . b - r . b } function a ( t , r ) { for ( var e = - 1 , u = t . a , o = r . a , i = u . length ; ++ e < i ; ) { var f = n ( u [ e ] , o [ e ] ) ; if ( f ) return f } return t . b - r . b } function c ( n ) { return Wt [ n ] } function l ( n ) { return Nt [ n ] } function s ( n ) { return "\\" + Lt [ n ] } function p ( n , t , r ) { var e = n . length ; for ( t = r ? t || e : ( t || 0 ) - 1 ; r ? t -- : ++ t < e ; ) { var u = n [ t ] ; if ( u !== u ) return t } return - 1 } function h ( n ) { return n && typeof n == "object" || false } function _ ( n ) { return 160 >= n && 9 <= n && 13 >= n || 32 == n || 160 == n || 5760 == n || 6158 == n || 8192 <= n && ( 8202 >= n || 8232 == n || 8233 == n || 8239 == n || 8287 == n || 12288 == n || 65279 == n )
} function g ( n , t ) { for ( var r = - 1 , e = n . length , u = - 1 , o = [ ] ; ++ r < e ; ) n [ r ] === t && ( n [ r ] = B , o [ ++ u ] = r ) ; return o } function v ( n ) { for ( var t = - 1 , r = n . length ; ++ t < r && _ ( n . charCodeAt ( t ) ) ; ) ; return t } function y ( n ) { for ( var t = n . length ; t -- && _ ( n . charCodeAt ( t ) ) ; ) ; return t } function d ( n ) { return Ut [ n ] } function m ( _ ) { function Wt ( n ) { if ( h ( n ) && ! ( So ( n ) || n instanceof Ut ) ) { if ( n instanceof Nt ) return n ; if ( Uu . call ( n , "__chain__" ) && Uu . call ( n , "__wrapped__" ) ) return he ( n ) } return new Nt ( n ) } function Nt ( n , t , r ) { this . _ _wrapped _ _ = n , this . _ _actions _ _ = r || [ ] , this . _ _chain _ _ = ! ! t
} function Ut ( n ) { this . _ _wrapped _ _ = n , this . _ _actions _ _ = null , this . _ _dir _ _ = 1 , this . _ _dropCount _ _ = 0 , this . _ _filtered _ _ = false , this . _ _iteratees _ _ = null , this . _ _takeCount _ _ = so , this . _ _views _ _ = null } function Ft ( ) { this . _ _data _ _ = { } } function Lt ( n ) { var t = n ? n . length : 0 ; for ( this . data = { hash : to ( null ) , set : new Zu } ; t -- ; ) this . push ( n [ t ] ) } function Bt ( n , t ) { var r = n . data ; return ( typeof t == "string" || Xe ( t ) ? r . set . has ( t ) : r . hash [ t ] ) ? 0 : - 1 } function zt ( n , t ) { var r = - 1 , e = n . length ; for ( t || ( t = wu ( e ) ) ; ++ r < e ; ) t [ r ] = n [ r ] ; return t } function Mt ( n , t ) { for ( var r = - 1 , e = n . length ; ++ r < e && false !== t ( n [ r ] , r , n ) ; ) ; return n
} function qt ( n , t ) { for ( var r = - 1 , e = n . length ; ++ r < e ; ) if ( ! t ( n [ r ] , r , n ) ) return false ; return true } function Pt ( n , t ) { for ( var r = - 1 , e = n . length , u = - 1 , o = [ ] ; ++ r < e ; ) { var i = n [ r ] ; t ( i , r , n ) && ( o [ ++ u ] = i ) } return o } function Kt ( n , t ) { for ( var r = - 1 , e = n . length , u = wu ( e ) ; ++ r < e ; ) u [ r ] = t ( n [ r ] , r , n ) ; return u } function Vt ( n ) { for ( var t = - 1 , r = n . length , e = lo ; ++ t < r ; ) { var u = n [ t ] ; u > e && ( e = u ) } return e } function Yt ( n , t , r , e ) { var u = - 1 , o = n . length ; for ( e && o && ( r = n [ ++ u ] ) ; ++ u < o ; ) r = t ( r , n [ u ] , u , n ) ; return r } function Zt ( n , t , r , e ) { var u = n . length ; for ( e && u && ( r = n [ -- u ] ) ; u -- ; ) r = t ( r , n [ u ] , u , n ) ;
return r } function Gt ( n , t ) { for ( var r = - 1 , e = n . length ; ++ r < e ; ) if ( t ( n [ r ] , r , n ) ) return true ; return false } function Jt ( n , t ) { return typeof n == "undefined" ? t : n } function Xt ( n , t , r , e ) { return typeof n != "undefined" && Uu . call ( e , r ) ? n : t } function Ht ( n , t , r ) { var e = Fo ( t ) ; if ( ! r ) return nr ( t , n , e ) ; for ( var u = - 1 , o = e . length ; ++ u < o ; ) { var i = e [ u ] , f = n [ i ] , a = r ( f , t [ i ] , i , n , t ) ; ( a === a ? a === f : f !== f ) && ( typeof f != "undefined" || i in n ) || ( n [ i ] = a ) } return n } function Qt ( n , t ) { for ( var r = - 1 , e = n . length , u = oe ( e ) , o = t . length , i = wu ( o ) ; ++ r < o ; ) { var f = t [ r ] ; u ? ( f = parseFloat ( f ) , i [ r ] = ee ( f , e ) ? n [ f ] : w ) : i [ r ] = n [ f ]
} return i } function nr ( n , t , r ) { r || ( r = t , t = { } ) ; for ( var e = - 1 , u = r . length ; ++ e < u ; ) { var o = r [ e ] ; t [ o ] = n [ o ] } return t } function tr ( n , t , r ) { var e = typeof n ; if ( "function" == e ) { if ( e = typeof t != "undefined" ) { var e = Wt . support , u = ! ( e . funcNames ? n . name : e . funcDecomp ) ; if ( ! u ) { var o = Wu . call ( n ) ; e . funcNames || ( u = ! dt . test ( o ) ) , u || ( u = kt . test ( o ) || He ( n ) , bo ( n , u ) ) } e = u } n = e ? Nr ( n , t , r ) : n } else n = null == n ? vu : "object" == e ? br ( n ) : typeof t == "undefined" ? jr ( n + "" ) : xr ( n + "" , t ) ; return n } function rr ( n , t , r , e , u , o , i ) { var f ; if ( r && ( f = u ? r ( n , e , u ) : r ( n ) ) , typeof f != "undefined" ) return f ;
if ( ! Xe ( n ) ) return n ; if ( e = So ( n ) ) { if ( f = ne ( n ) , ! t ) return zt ( n , f ) } else { var a = Lu . call ( n ) , c = a == K ; if ( a != Y && a != z && ( ! c || u ) ) return Tt [ a ] ? re ( n , a , t ) : u ? n : { } ; if ( f = te ( c ? { } : n ) , ! t ) return nr ( n , f , Fo ( n ) ) } for ( o || ( o = [ ] ) , i || ( i = [ ] ) , u = o . length ; u -- ; ) if ( o [ u ] == n ) return i [ u ] ; return o . push ( n ) , i . push ( f ) , ( e ? Mt : _r ) ( n , function ( e , u ) { f [ u ] = rr ( e , t , r , u , n , o , i ) } ) , f } function er ( n , t , r , e ) { if ( typeof n != "function" ) throw new Ou ( $ ) ; return Gu ( function ( ) { n . apply ( w , Rr ( r , e ) ) } , t ) } function ur ( n , r ) { var e = n ? n . length : 0 , u = [ ] ; if ( ! e ) return u ; var o = - 1 , i = Qr ( ) , f = i == t , a = f && 200 <= r . length && xo ( r ) , c = r . length ;
a && ( i = Bt , f = false , r = a ) ; n : for ( ; ++ o < e ; ) if ( a = n [ o ] , f && a === a ) { for ( var l = c ; l -- ; ) if ( r [ l ] === a ) continue n ; u . push ( a ) } else 0 > i ( r , a ) && u . push ( a ) ; return u } function or ( n , t ) { var r = n ? n . length : 0 ; if ( ! oe ( r ) ) return _r ( n , t ) ; for ( var e = - 1 , u = pe ( n ) ; ++ e < r && false !== t ( u [ e ] , e , u ) ; ) ; return n } function ir ( n , t ) { var r = n ? n . length : 0 ; if ( ! oe ( r ) ) return gr ( n , t ) ; for ( var e = pe ( n ) ; r -- && false !== t ( e [ r ] , r , e ) ; ) ; return n } function fr ( n , t ) { var r = true ; return or ( n , function ( n , e , u ) { return r = ! ! t ( n , e , u ) } ) , r } function ar ( n , t ) { var r = [ ] ; return or ( n , function ( n , e , u ) { t ( n , e , u ) && r . push ( n )
} ) , r } function cr ( n , t , r , e ) { var u ; return r ( n , function ( n , r , o ) { return t ( n , r , o ) ? ( u = e ? r : n , false ) : void 0 } ) , u } function lr ( n , t , r , e ) { e = ( e || 0 ) - 1 ; for ( var u = n . length , o = - 1 , i = [ ] ; ++ e < u ; ) { var f = n [ e ] ; if ( h ( f ) && oe ( f . length ) && ( So ( f ) || Ye ( f ) ) ) { t && ( f = lr ( f , t , r ) ) ; var a = - 1 , c = f . length ; for ( i . length += c ; ++ a < c ; ) i [ ++ o ] = f [ a ] } else r || ( i [ ++ o ] = f ) } return i } function sr ( n , t , r ) { var e = - 1 , u = pe ( n ) ; r = r ( n ) ; for ( var o = r . length ; ++ e < o ; ) { var i = r [ e ] ; if ( false === t ( u [ i ] , i , u ) ) break } return n } function pr ( n , t , r ) { var e = pe ( n ) ; r = r ( n ) ; for ( var u = r . length ; u -- ; ) { var o = r [ u ] ;
if ( false === t ( e [ o ] , o , e ) ) break } return n } function hr ( n , t ) { sr ( n , t , ou ) } function _r ( n , t ) { return sr ( n , t , Fo ) } function gr ( n , t ) { return pr ( n , t , Fo ) } function vr ( n , t ) { for ( var r = - 1 , e = t . length , u = - 1 , o = [ ] ; ++ r < e ; ) { var i = t [ r ] ; Je ( n [ i ] ) && ( o [ ++ u ] = i ) } return o } function yr ( n , t , r ) { var e = - 1 , u = typeof t == "function" , o = n ? n . length : 0 , i = oe ( o ) ? wu ( o ) : [ ] ; return or ( n , function ( n ) { var o = u ? t : null != n && n [ t ] ; i [ ++ e ] = o ? o . apply ( n , r ) : w } ) , i } function dr ( n , t , r , e , u , o ) { if ( n === t ) return 0 !== n || 1 / n == 1 / t ; var i = typeof n , f = typeof t ; if ( "function" != i && "object" != i && "function" != f && "object" != f || null == n || null == t ) n = n !== n && t !== t ;
else n : { var i = dr , f = So ( n ) , a = So ( t ) , c = D , l = D ; f || ( c = Lu . call ( n ) , c == z ? c = Y : c != Y && ( f = ru ( n ) ) ) , a || ( l = Lu . call ( t ) , l == z ? l = Y : l != Y && ru ( t ) ) ; var s = c == Y , a = l == Y , l = c == l ; if ( ! l || f || s ) if ( c = s && Uu . call ( n , "__wrapped__" ) , a = a && Uu . call ( t , "__wrapped__" ) , c || a ) n = i ( c ? n . value ( ) : n , a ? t . value ( ) : t , r , e , u , o ) ; else if ( l ) { for ( u || ( u = [ ] ) , o || ( o = [ ] ) , c = u . length ; c -- ; ) if ( u [ c ] == n ) { n = o [ c ] == t ; break n } u . push ( n ) , o . push ( t ) , n = ( f ? Zr : Jr ) ( n , t , i , r , e , u , o ) , u . pop ( ) , o . pop ( ) } else n = false ; else n = Gr ( n , t , c ) } return n } function mr ( n , t , r , e , u ) { var o = t . length ; if ( null == n ) return ! o ;
for ( var i = - 1 , f = ! u ; ++ i < o ; ) if ( f && e [ i ] ? r [ i ] !== n [ t [ i ] ] : ! Uu . call ( n , t [ i ] ) ) return false ; for ( i = - 1 ; ++ i < o ; ) { var a = t [ i ] ; if ( f && e [ i ] ) a = Uu . call ( n , a ) ; else { var c = n [ a ] , l = r [ i ] , a = u ? u ( c , l , a ) : w ; typeof a == "undefined" && ( a = dr ( l , c , u , true ) ) } if ( ! a ) return false } return true } function wr ( n , t ) { var r = [ ] ; return or ( n , function ( n , e , u ) { r . push ( t ( n , e , u ) ) } ) , r } function br ( n ) { var t = Fo ( n ) , r = t . length ; if ( 1 == r ) { var e = t [ 0 ] , u = n [ e ] ; if ( ie ( u ) ) return function ( n ) { return null != n && n [ e ] === u && Uu . call ( n , e ) } } for ( var o = wu ( r ) , i = wu ( r ) ; r -- ; ) u = n [ t [ r ] ] , o [ r ] = u , i [ r ] = ie ( u ) ; return function ( n ) { return mr ( n , t , o , i )
} } function xr ( n , t ) { return ie ( t ) ? function ( r ) { return null != r && r [ n ] === t } : function ( r ) { return null != r && dr ( t , r [ n ] , null , true ) } } function Ar ( n , t , r , e , u ) { var o = oe ( t . length ) && ( So ( t ) || ru ( t ) ) ; return ( o ? Mt : _r ) ( t , function ( t , i , f ) { if ( h ( t ) ) { e || ( e = [ ] ) , u || ( u = [ ] ) ; n : { t = e ; for ( var a = u , c = t . length , l = f [ i ] ; c -- ; ) if ( t [ c ] == l ) { n [ i ] = a [ c ] , i = void 0 ; break n } c = n [ i ] , f = r ? r ( c , l , i , n , f ) : w ; var s = typeof f == "undefined" ; s && ( f = l , oe ( l . length ) && ( So ( l ) || ru ( l ) ) ? f = So ( c ) ? c : c ? zt ( c ) : [ ] : No ( l ) || Ye ( l ) ? f = Ye ( c ) ? eu ( c ) : No ( c ) ? c : { } : s = false ) , t . push ( l ) , a . push ( f ) , s ? n [ i ] = Ar ( f , l , r , t , a ) : ( f === f ? f !== c : c === c ) && ( n [ i ] = f ) , i = void 0
} return i } a = n [ i ] , f = r ? r ( a , t , i , n , f ) : w , ( l = typeof f == "undefined" ) && ( f = t ) , ! o && typeof f == "undefined" || ! l && ( f === f ? f === a : a !== a ) || ( n [ i ] = f ) } ) , n } function jr ( n ) { return function ( t ) { return null == t ? w : t [ n ] } } function kr ( n , t ) { return n + Pu ( co ( ) * ( t - n + 1 ) ) } function Er ( n , t , r , e , u ) { return u ( n , function ( n , u , o ) { r = e ? ( e = false , n ) : t ( r , n , u , o ) } ) , r } function Rr ( n , t , r ) { var e = - 1 , u = n . length ; for ( t = null == t ? 0 : + t || 0 , 0 > t && ( t = - t > u ? 0 : u + t ) , r = typeof r == "undefined" || r > u ? u : + r || 0 , 0 > r && ( r += u ) , u = t > r ? 0 : r - t >>> 0 , t >>>= 0 , r = wu ( u ) ; ++ e < u ; ) r [ e ] = n [ e + t ] ; return r } function Ir ( n , t ) { var r ;
return or ( n , function ( n , e , u ) { return r = t ( n , e , u ) , ! r } ) , ! ! r } function Or ( n , r ) { var e = - 1 , u = Qr ( ) , o = n . length , i = u == t , f = i && 200 <= o , a = f && xo ( ) , c = [ ] ; a ? ( u = Bt , i = false ) : ( f = false , a = r ? [ ] : c ) ; n : for ( ; ++ e < o ; ) { var l = n [ e ] , s = r ? r ( l , e , n ) : l ; if ( i && l === l ) { for ( var p = a . length ; p -- ; ) if ( a [ p ] === s ) continue n ; r && a . push ( s ) , c . push ( l ) } else 0 > u ( a , s ) && ( ( r || f ) && a . push ( s ) , c . push ( l ) ) } return c } function Cr ( n , t ) { for ( var r = - 1 , e = t . length , u = wu ( e ) ; ++ r < e ; ) u [ r ] = n [ t [ r ] ] ; return u } function Tr ( n , t ) { var r = n ; r instanceof Ut && ( r = r . value ( ) ) ; for ( var e = - 1 , u = t . length ; ++ e < u ; ) { var r = [ r ] , o = t [ e ] ;
Vu . apply ( r , o . args ) , r = o . func . apply ( o . thisArg , r ) } return r } function Sr ( n , t , r ) { var e = 0 , u = n ? n . length : e ; if ( typeof t == "number" && t === t && u <= _o ) { for ( ; e < u ; ) { var o = e + u >>> 1 , i = n [ o ] ; ( r ? i <= t : i < t ) ? e = o + 1 : u = o } return u } return Wr ( n , t , vu , r ) } function Wr ( n , t , r , e ) { t = r ( t ) ; for ( var u = 0 , o = n ? n . length : 0 , i = t !== t , f = typeof t == "undefined" ; u < o ; ) { var a = Pu ( ( u + o ) / 2 ) , c = r ( n [ a ] ) , l = c === c ; ( i ? l || e : f ? l && ( e || typeof c != "undefined" ) : e ? c <= t : c < t ) ? u = a + 1 : o = a } return oo ( o , ho ) } function Nr ( n , t , r ) { if ( typeof n != "function" ) return vu ; if ( typeof t == "undefined" ) return n ;
switch ( r ) { case 1 : return function ( r ) { return n . call ( t , r ) } ; case 3 : return function ( r , e , u ) { return n . call ( t , r , e , u ) } ; case 4 : return function ( r , e , u , o ) { return n . call ( t , r , e , u , o ) } ; case 5 : return function ( r , e , u , o , i ) { return n . call ( t , r , e , u , o , i ) } } return function ( ) { return n . apply ( t , arguments ) } } function Ur ( n ) { return Du . call ( n , 0 ) } function Fr ( n , t , r ) { for ( var e = r . length , u = - 1 , o = uo ( n . length - e , 0 ) , i = - 1 , f = t . length , a = wu ( o + f ) ; ++ i < f ; ) a [ i ] = t [ i ] ; for ( ; ++ u < e ; ) a [ r [ u ] ] = n [ u ] ; for ( ; o -- ; ) a [ i ++ ] = n [ u ++ ] ; return a } function Lr ( n , t , r ) { for ( var e = - 1 , u = r . length , o = - 1 , i = uo ( n . length - u , 0 ) , f = - 1 , a = t . length , c = wu ( i + a ) ; ++ o < i ; ) c [ o ] = n [ o ] ;
for ( i = o ; ++ f < a ; ) c [ i + f ] = t [ f ] ; for ( ; ++ e < u ; ) c [ i + r [ e ] ] = n [ o ++ ] ; return c } function $r ( n , t ) { return function ( r , e , u ) { var o = t ? t ( ) : { } ; if ( e = Hr ( e , u , 3 ) , So ( r ) ) { u = - 1 ; for ( var i = r . length ; ++ u < i ; ) { var f = r [ u ] ; n ( o , f , e ( f , u , r ) , r ) } } else or ( r , function ( t , r , u ) { n ( o , t , e ( t , r , u ) , u ) } ) ; return o } } function Br ( n ) { return function ( ) { var t = arguments . length , r = arguments [ 0 ] ; if ( 2 > t || null == r ) return r ; if ( 3 < t && ue ( arguments [ 1 ] , arguments [ 2 ] , arguments [ 3 ] ) && ( t = 2 ) , 3 < t && "function" == typeof arguments [ t - 2 ] ) var e = Nr ( arguments [ -- t - 1 ] , arguments [ t -- ] , 5 ) ; else 2 < t && "function" == typeof arguments [ t - 1 ] && ( e = arguments [ -- t ] ) ;
for ( var u = 0 ; ++ u < t ; ) { var o = arguments [ u ] ; o && n ( r , o , e ) } return r } } function zr ( n , t ) { function r ( ) { return ( this instanceof r ? e : n ) . apply ( t , arguments ) } var e = Mr ( n ) ; return r } function Dr ( n ) { return function ( t ) { var r = - 1 ; t = pu ( fu ( t ) ) ; for ( var e = t . length , u = "" ; ++ r < e ; ) u = n ( u , t [ r ] , r ) ; return u } } function Mr ( n ) { return function ( ) { var t = wo ( n . prototype ) , r = n . apply ( t , arguments ) ; return Xe ( r ) ? r : t } } function qr ( n , t ) { return function ( r , e , o ) { o && ue ( r , e , o ) && ( e = null ) ; var i = Hr ( ) , f = null == e ; if ( i === tr && f || ( f = false , e = i ( e , o , 3 ) ) , f ) { if ( e = So ( r ) , e || ! tu ( r ) ) return n ( e ? r : se ( r ) ) ;
e = u } return Xr ( r , e , t ) } } function Pr ( n , t , r , e , u , o , i , f , a , c ) { function l ( ) { for ( var b = arguments . length , j = b , k = wu ( b ) ; j -- ; ) k [ j ] = arguments [ j ] ; if ( e && ( k = Fr ( k , e , u ) ) , o && ( k = Lr ( k , o , i ) ) , _ || y ) { var j = l . placeholder , E = g ( k , j ) , b = b - E . length ; if ( b < c ) { var O = f ? zt ( f ) : null , b = uo ( c - b , 0 ) , C = _ ? E : null , E = _ ? null : E , T = _ ? k : null , k = _ ? null : k ; return t |= _ ? R : I , t &= ~ ( _ ? I : R ) , v || ( t &= ~ ( x | A ) ) , k = Pr ( n , t , r , T , C , k , E , O , a , b ) , k . placeholder = j , k } } if ( j = p ? r : this , h && ( n = j [ m ] ) , f ) for ( O = k . length , b = oo ( f . length , O ) , C = zt ( k ) ; b -- ; ) E = f [ b ] , k [ b ] = ee ( E , O ) ? C [ E ] : w ; return s && a < k . length && ( k . length = a ) , ( this instanceof l ? d || Mr ( n ) : n ) . apply ( j , k )
} var s = t & C , p = t & x , h = t & A , _ = t & k , v = t & j , y = t & E , d = ! h && Mr ( n ) , m = n ; return l } function Kr ( n , t , r ) { return n = n . length , t = + t , n < t && ro ( t ) ? ( t -= n , r = null == r ? " " : r + "" , lu ( r , Mu ( t / r . length ) ) . slice ( 0 , t ) ) : "" } function Vr ( n , t , r , e ) { function u ( ) { for ( var t = - 1 , f = arguments . length , a = - 1 , c = e . length , l = wu ( f + c ) ; ++ a < c ; ) l [ a ] = e [ a ] ; for ( ; f -- ; ) l [ a ++ ] = arguments [ ++ t ] ; return ( this instanceof u ? i : n ) . apply ( o ? r : this , l ) } var o = t & x , i = Mr ( n ) ; return u } function Yr ( n , t , r , e , u , o , i , f ) { var a = t & A ; if ( ! a && typeof n != "function" ) throw new Ou ( $ ) ; var c = e ? e . length : 0 ; if ( c || ( t &= ~ ( R | I ) , e = u = null ) , c -= u ? u . length : 0 , t & I ) { var l = e , s = u ;
e = u = null } var p = ! a && Ao ( n ) ; if ( r = [ n , t , r , e , u , l , s , o , i , f ] , p && true !== p ) { e = r [ 1 ] , t = p [ 1 ] , f = e | t , o = C | O , u = x | A , i = o | u | j | E ; var l = e & C && ! ( t & C ) , s = e & O && ! ( t & O ) , h = ( s ? r : p ) [ 7 ] , _ = ( l ? r : p ) [ 8 ] ; o = f >= o && f <= i && ( e < O || ( s || l ) && h . length <= _ ) , ( ! ( e >= O && t > u || e > u && t >= O ) || o ) && ( t & x && ( r [ 2 ] = p [ 2 ] , f |= e & x ? 0 : j ) , ( e = p [ 3 ] ) && ( u = r [ 3 ] , r [ 3 ] = u ? Fr ( u , e , p [ 4 ] ) : zt ( e ) , r [ 4 ] = u ? g ( r [ 3 ] , B ) : zt ( p [ 4 ] ) ) , ( e = p [ 5 ] ) && ( u = r [ 5 ] , r [ 5 ] = u ? Lr ( u , e , p [ 6 ] ) : zt ( e ) , r [ 6 ] = u ? g ( r [ 5 ] , B ) : zt ( p [ 6 ] ) ) , ( e = p [ 7 ] ) && ( r [ 7 ] = zt ( e ) ) , t & C && ( r [ 8 ] = null == r [ 8 ] ? p [ 8 ] : oo ( r [ 8 ] , p [ 8 ] ) ) , null == r [ 9 ] && ( r [ 9 ] = p [ 9 ] ) , r [ 0 ] = p [ 0 ] , r [ 1 ] = f ) , t = r [ 1 ] , f = r [ 9 ]
} return r [ 9 ] = null == f ? a ? 0 : n . length : uo ( f - c , 0 ) || 0 , ( p ? bo : jo ) ( t == x ? zr ( r [ 0 ] , r [ 2 ] ) : t != R && t != ( x | R ) || r [ 4 ] . length ? Pr . apply ( w , r ) : Vr . apply ( w , r ) , r ) } function Zr ( n , t , r , e , u , o , i ) { var f = - 1 , a = n . length , c = t . length , l = true ; if ( a != c && ( ! u || c <= a ) ) return false ; for ( ; l && ++ f < a ; ) { var s = n [ f ] , p = t [ f ] , l = w ; if ( e && ( l = u ? e ( p , s , f ) : e ( s , p , f ) ) , typeof l == "undefined" ) if ( u ) for ( var h = c ; h -- && ( p = t [ h ] , ! ( l = s && s === p || r ( s , p , e , u , o , i ) ) ) ; ) ; else l = s && s === p || r ( s , p , e , u , o , i ) } return ! ! l } function Gr ( n , t , r ) { switch ( r ) { case M : case q : return + n == + t ; case P : return n . name == t . name && n . message == t . message ;
case V : return n != + n ? t != + t : 0 == n ? 1 / n == 1 / t : n == + t ; case Z : case G : return n == t + "" } return false } function Jr ( n , t , r , e , u , o , i ) { var f = Fo ( n ) , a = f . length , c = Fo ( t ) . length ; if ( a != c && ! u ) return false ; for ( var l , c = - 1 ; ++ c < a ; ) { var s = f [ c ] , p = Uu . call ( t , s ) ; if ( p ) { var h = n [ s ] , _ = t [ s ] , p = w ; e && ( p = u ? e ( _ , h , s ) : e ( h , _ , s ) ) , typeof p == "undefined" && ( p = h && h === _ || r ( h , _ , e , u , o , i ) ) } if ( ! p ) return false ; l || ( l = "constructor" == s ) } return l || ( r = n . constructor , e = t . constructor , ! ( r != e && "constructor" in n && "constructor" in t ) || typeof r == "function" && r instanceof r && typeof e == "function" && e instanceof e ) ? true : false
} function Xr ( n , t , r ) { var e = r ? so : lo , u = e , o = u ; return or ( n , function ( n , i , f ) { i = t ( n , i , f ) , ( ( r ? i < u : i > u ) || i === e && i === o ) && ( u = i , o = n ) } ) , o } function Hr ( n , t , r ) { var e = Wt . callback || _u , e = e === _u ? tr : e ; return r ? e ( n , t , r ) : e } function Qr ( n , r , e ) { var u = Wt . indexOf || de , u = u === de ? t : u ; return n ? u ( n , r , e ) : u } function ne ( n ) { var t = n . length , r = new n . constructor ( t ) ; return t && "string" == typeof n [ 0 ] && Uu . call ( n , "index" ) && ( r . index = n . index , r . input = n . input ) , r } function te ( n ) { return n = n . constructor , typeof n == "function" && n instanceof n || ( n = Eu ) , new n
} function re ( n , t , r ) { var e = n . constructor ; switch ( t ) { case J : return Ur ( n ) ; case M : case q : return new e ( + n ) ; case X : case H : case Q : case nt : case tt : case rt : case et : case ut : case ot : return t = n . buffer , new e ( r ? Ur ( t ) : t , n . byteOffset , n . length ) ; case V : case G : return new e ( n ) ; case Z : var u = new e ( n . source , yt . exec ( n ) ) ; u . lastIndex = n . lastIndex } return u } function ee ( n , t ) { return n = + n , t = null == t ? vo : t , - 1 < n && 0 == n % 1 && n < t } function ue ( n , t , r ) { if ( ! Xe ( r ) ) return false ; var e = typeof t ; return "number" == e ? ( e = r . length , e = oe ( e ) && ee ( t , e ) ) : e = "string" == e && t in r , e && r [ t ] === n
} function oe ( n ) { return typeof n == "number" && - 1 < n && 0 == n % 1 && n <= vo } function ie ( n ) { return n === n && ( 0 === n ? 0 < 1 / n : ! Xe ( n ) ) } function fe ( n , t ) { n = pe ( n ) ; for ( var r = - 1 , e = t . length , u = { } ; ++ r < e ; ) { var o = t [ r ] ; o in n && ( u [ o ] = n [ o ] ) } return u } function ae ( n , t ) { var r = { } ; return hr ( n , function ( n , e , u ) { t ( n , e , u ) && ( r [ e ] = n ) } ) , r } function ce ( n ) { var t ; if ( ! h ( n ) || Lu . call ( n ) != Y || ! ( Uu . call ( n , "constructor" ) || ( t = n . constructor , typeof t != "function" || t instanceof t ) ) ) return false ; var r ; return hr ( n , function ( n , t ) { r = t } ) , typeof r == "undefined" || Uu . call ( n , r )
} function le ( n ) { for ( var t = ou ( n ) , r = t . length , e = r && n . length , u = Wt . support , u = e && oe ( e ) && ( So ( n ) || u . nonEnumArgs && Ye ( n ) ) , o = - 1 , i = [ ] ; ++ o < r ; ) { var f = t [ o ] ; ( u && ee ( f , e ) || Uu . call ( n , f ) ) && i . push ( f ) } return i } function se ( n ) { return null == n ? [ ] : oe ( n . length ) ? Xe ( n ) ? n : Eu ( n ) : iu ( n ) } function pe ( n ) { return Xe ( n ) ? n : Eu ( n ) } function he ( n ) { return n instanceof Ut ? n . clone ( ) : new Nt ( n . _ _wrapped _ _ , n . _ _chain _ _ , zt ( n . _ _actions _ _ ) ) } function _e ( n , t , r ) { return n && n . length ? ( ( r ? ue ( n , t , r ) : null == t ) && ( t = 1 ) , Rr ( n , 0 > t ? 0 : t ) ) : [ ] } function ge ( n , t , r ) { var e = n ? n . length : 0 ;
return e ? ( ( r ? ue ( n , t , r ) : null == t ) && ( t = 1 ) , t = e - ( + t || 0 ) , Rr ( n , 0 , 0 > t ? 0 : t ) ) : [ ] } function ve ( n , t , r ) { var e = - 1 , u = n ? n . length : 0 ; for ( t = Hr ( t , r , 3 ) ; ++ e < u ; ) if ( t ( n [ e ] , e , n ) ) return e ; return - 1 } function ye ( n ) { return n ? n [ 0 ] : w } function de ( n , r , e ) { var u = n ? n . length : 0 ; if ( ! u ) return - 1 ; if ( typeof e == "number" ) e = 0 > e ? uo ( u + e , 0 ) : e || 0 ; else if ( e ) return e = Sr ( n , r ) , n = n [ e ] , ( r === r ? r === n : n !== n ) ? e : - 1 ; return t ( n , r , e ) } function me ( n ) { return _e ( n , 1 ) } function we ( n , r , e , u ) { if ( ! n || ! n . length ) return [ ] ; typeof r != "boolean" && null != r && ( u = e , e = ue ( n , r , u ) ? null : r , r = false ) ;
var o = Hr ( ) ; if ( ( o !== tr || null != e ) && ( e = o ( e , u , 3 ) ) , r && Qr ( ) == t ) { r = e ; var i ; e = - 1 , u = n . length ; for ( var o = - 1 , f = [ ] ; ++ e < u ; ) { var a = n [ e ] , c = r ? r ( a , e , n ) : a ; e && i === c || ( i = c , f [ ++ o ] = a ) } n = f } else n = Or ( n , e ) ; return n } function be ( n ) { for ( var t = - 1 , r = ( n && n . length && Vt ( Kt ( n , Nu ) ) ) >>> 0 , e = wu ( r ) ; ++ t < r ; ) e [ t ] = Kt ( n , jr ( t ) ) ; return e } function xe ( n , t ) { var r = - 1 , e = n ? n . length : 0 , u = { } ; for ( ! e || t || So ( n [ 0 ] ) || ( t = [ ] ) ; ++ r < e ; ) { var o = n [ r ] ; t ? u [ o ] = t [ r ] : o && ( u [ o [ 0 ] ] = o [ 1 ] ) } return u } function Ae ( n ) { return n = Wt ( n ) , n . _ _chain _ _ = true , n } function je ( n , t , r ) { return t . call ( r , n )
} function ke ( n , t , r ) { var e = n ? n . length : 0 ; return oe ( e ) || ( n = iu ( n ) , e = n . length ) , e ? ( r = typeof r == "number" ? 0 > r ? uo ( e + r , 0 ) : r || 0 : 0 , typeof n == "string" || ! So ( n ) && tu ( n ) ? r < e && - 1 < n . indexOf ( t , r ) : - 1 < Qr ( n , t , r ) ) : false } function Ee ( n , t , r ) { var e = So ( n ) ? qt : fr ; return ( typeof t != "function" || typeof r != "undefined" ) && ( t = Hr ( t , r , 3 ) ) , e ( n , t ) } function Re ( n , t , r ) { var e = So ( n ) ? Pt : ar ; return t = Hr ( t , r , 3 ) , e ( n , t ) } function Ie ( n , t , r ) { return So ( n ) ? ( t = ve ( n , t , r ) , - 1 < t ? n [ t ] : w ) : ( t = Hr ( t , r , 3 ) , cr ( n , t , or ) ) } function Oe ( n , t , r ) { return typeof t == "function" && typeof r == "undefined" && So ( n ) ? Mt ( n , t ) : or ( n , Nr ( t , r , 3 ) )
} function Ce ( n , t , r ) { if ( typeof t == "function" && typeof r == "undefined" && So ( n ) ) for ( r = n . length ; r -- && false !== t ( n [ r ] , r , n ) ; ) ; else n = ir ( n , Nr ( t , r , 3 ) ) ; return n } function Te ( n , t , r ) { var e = So ( n ) ? Kt : wr ; return t = Hr ( t , r , 3 ) , e ( n , t ) } function Se ( n , t , r , e ) { return ( So ( n ) ? Yt : Er ) ( n , Hr ( t , e , 4 ) , r , 3 > arguments . length , or ) } function We ( n , t , r , e ) { return ( So ( n ) ? Zt : Er ) ( n , Hr ( t , e , 4 ) , r , 3 > arguments . length , ir ) } function Ne ( n , t , r ) { return ( r ? ue ( n , t , r ) : null == t ) ? ( n = se ( n ) , t = n . length , 0 < t ? n [ kr ( 0 , t - 1 ) ] : w ) : ( n = Ue ( n ) , n . length = oo ( 0 > t ? 0 : + t || 0 , n . length ) , n ) } function Ue ( n ) { n = se ( n ) ;
for ( var t = - 1 , r = n . length , e = wu ( r ) ; ++ t < r ; ) { var u = kr ( 0 , t ) ; t != u && ( e [ t ] = e [ u ] ) , e [ u ] = n [ t ] } return e } function Fe ( n , t , r ) { var e = So ( n ) ? Gt : Ir ; return ( typeof t != "function" || typeof r != "undefined" ) && ( t = Hr ( t , r , 3 ) ) , e ( n , t ) } function Le ( n , t ) { var r ; if ( typeof t != "function" ) { if ( typeof n != "function" ) throw new Ou ( $ ) ; var e = n ; n = t , t = e } return function ( ) { return 0 < -- n ? r = t . apply ( this , arguments ) : t = null , r } } function $e ( n , t ) { var r = x ; if ( 2 < arguments . length ) var e = Rr ( arguments , 2 ) , u = g ( e , $e . placeholder ) , r = r | R ; return Yr ( n , r , t , e , u ) } function Be ( n , t ) { var r = x | A ;
if ( 2 < arguments . length ) var e = Rr ( arguments , 2 ) , u = g ( e , Be . placeholder ) , r = r | R ; return Yr ( t , r , n , e , u ) } function ze ( n , t , r ) { return r && ue ( n , t , r ) && ( t = null ) , n = Yr ( n , k , null , null , null , null , null , t ) , n . placeholder = ze . placeholder , n } function De ( n , t , r ) { return r && ue ( n , t , r ) && ( t = null ) , n = Yr ( n , E , null , null , null , null , null , t ) , n . placeholder = De . placeholder , n } function Me ( n , t , r ) { function e ( ) { var r = t - ( To ( ) - c ) ; 0 >= r || r > t ? ( f && qu ( f ) , r = p , f = s = p = w , r && ( h = To ( ) , a = n . apply ( l , i ) , s || f || ( i = l = null ) ) ) : s = Gu ( e , r ) } function u ( ) { s && qu ( s ) , f = s = p = w , ( g || _ !== t ) && ( h = To ( ) , a = n . apply ( l , i ) , s || f || ( i = l = null ) )
} function o ( ) { if ( i = arguments , c = To ( ) , l = this , p = g && ( s || ! v ) , false === _ ) var r = v && ! s ; else { f || v || ( h = c ) ; var o = _ - ( c - h ) , y = 0 >= o || o > _ ; y ? ( f && ( f = qu ( f ) ) , h = c , a = n . apply ( l , i ) ) : f || ( f = Gu ( u , o ) ) } return y && s ? s = qu ( s ) : s || t === _ || ( s = Gu ( e , t ) ) , r && ( y = true , a = n . apply ( l , i ) ) , ! y || s || f || ( i = l = null ) , a } var i , f , a , c , l , s , p , h = 0 , _ = false , g = true ; if ( typeof n != "function" ) throw new Ou ( $ ) ; if ( t = 0 > t ? 0 : t , true === r ) var v = true , g = false ; else Xe ( r ) && ( v = r . leading , _ = "maxWait" in r && uo ( + r . maxWait || 0 , t ) , g = "trailing" in r ? r . trailing : g ) ; return o . cancel = function ( ) { s && qu ( s ) , f && qu ( f ) , f = s = p = w
} , o } function qe ( ) { var n = arguments , t = n . length - 1 ; if ( 0 > t ) return function ( n ) { return n } ; if ( ! qt ( n , Je ) ) throw new Ou ( $ ) ; return function ( ) { for ( var r = t , e = n [ r ] . apply ( this , arguments ) ; r -- ; ) e = n [ r ] . call ( this , e ) ; return e } } function Pe ( n , t ) { function r ( ) { var e = r . cache , u = t ? t . apply ( this , arguments ) : arguments [ 0 ] ; if ( e . has ( u ) ) return e . get ( u ) ; var o = n . apply ( this , arguments ) ; return e . set ( u , o ) , o } if ( typeof n != "function" || t && typeof t != "function" ) throw new Ou ( $ ) ; return r . cache = new Pe . Cache , r } function Ke ( n ) { var t = Rr ( arguments , 1 ) , r = g ( t , Ke . placeholder ) ;
return Yr ( n , R , null , t , r ) } function Ve ( n ) { var t = Rr ( arguments , 1 ) , r = g ( t , Ve . placeholder ) ; return Yr ( n , I , null , t , r ) } function Ye ( n ) { return oe ( h ( n ) ? n . length : w ) && Lu . call ( n ) == z || false } function Ze ( n ) { return n && 1 === n . nodeType && h ( n ) && - 1 < Lu . call ( n ) . indexOf ( "Element" ) || false } function Ge ( n ) { return h ( n ) && typeof n . message == "string" && Lu . call ( n ) == P || false } function Je ( n ) { return typeof n == "function" || false } function Xe ( n ) { var t = typeof n ; return "function" == t || n && "object" == t || false } function He ( n ) { return null == n ? false : Lu . call ( n ) == K ? Bu . test ( Wu . call ( n ) ) : h ( n ) && wt . test ( n ) || false
} function Qe ( n ) { return typeof n == "number" || h ( n ) && Lu . call ( n ) == V || false } function nu ( n ) { return h ( n ) && Lu . call ( n ) == Z || false } function tu ( n ) { return typeof n == "string" || h ( n ) && Lu . call ( n ) == G || false } function ru ( n ) { return h ( n ) && oe ( n . length ) && Ct [ Lu . call ( n ) ] || false } function eu ( n ) { return nr ( n , ou ( n ) ) } function uu ( n ) { return vr ( n , ou ( n ) ) } function ou ( n ) { if ( null == n ) return [ ] ; Xe ( n ) || ( n = Eu ( n ) ) ; for ( var t = n . length , t = t && oe ( t ) && ( So ( n ) || mo . nonEnumArgs && Ye ( n ) ) && t || 0 , r = n . constructor , e = - 1 , r = typeof r == "function" && r . prototype === n , u = wu ( t ) , o = 0 < t ; ++ e < t ; ) u [ e ] = e + "" ;
for ( var i in n ) o && ee ( i , t ) || "constructor" == i && ( r || ! Uu . call ( n , i ) ) || u . push ( i ) ; return u } function iu ( n ) { return Cr ( n , Fo ( n ) ) } function fu ( n ) { return ( n = e ( n ) ) && n . replace ( bt , c ) } function au ( n ) { return ( n = e ( n ) ) && jt . test ( n ) ? n . replace ( At , "\\$&" ) : n } function cu ( n , t , r ) { return r && ue ( n , t , r ) && ( t = 0 ) , ao ( n , t ) } function lu ( n , t ) { var r = "" ; if ( n = e ( n ) , t = + t , 1 > t || ! n || ! ro ( t ) ) return r ; do t % 2 && ( r += n ) , t = Pu ( t / 2 ) , n += n ; while ( t ) ; return r } function su ( n , t , r ) { var u = n ; return ( n = e ( n ) ) ? ( r ? ue ( u , t , r ) : null == t ) ? n . slice ( v ( n ) , y ( n ) + 1 ) : ( t += "" , n . slice ( o ( n , t ) , i ( n , t ) + 1 ) ) : n
} function pu ( n , t , r ) { return r && ue ( n , t , r ) && ( t = null ) , n = e ( n ) , n . match ( t || Rt ) || [ ] } function hu ( n ) { try { return n . apply ( w , Rr ( arguments , 1 ) ) } catch ( t ) { return Ge ( t ) ? t : new xu ( t ) } } function _u ( n , t , r ) { return r && ue ( n , t , r ) && ( t = null ) , h ( n ) ? yu ( n ) : tr ( n , t ) } function gu ( n ) { return function ( ) { return n } } function vu ( n ) { return n } function yu ( n ) { return br ( rr ( n , true ) ) } function du ( n , t , r ) { if ( null == r ) { var e = Xe ( t ) , u = e && Fo ( t ) ; ( ( u = u && u . length && vr ( t , u ) ) ? u . length : e ) || ( u = false , r = t , t = n , n = this ) } u || ( u = vr ( t , Fo ( t ) ) ) ; var o = true , e = - 1 , i = Je ( n ) , f = u . length ;
! 1 === r ? o = false : Xe ( r ) && "chain" in r && ( o = r . chain ) ; for ( ; ++ e < f ; ) { r = u [ e ] ; var a = t [ r ] ; n [ r ] = a , i && ( n . prototype [ r ] = function ( t ) { return function ( ) { var r = this . _ _chain _ _ ; if ( o || r ) { var e = n ( this . _ _wrapped _ _ ) ; return ( e . _ _actions _ _ = zt ( this . _ _actions _ _ ) ) . push ( { func : t , args : arguments , thisArg : n } ) , e . _ _chain _ _ = r , e } return r = [ this . value ( ) ] , Vu . apply ( r , arguments ) , t . apply ( n , r ) } } ( a ) ) } return n } function mu ( ) { } _ = _ ? Dt . defaults ( $t . Object ( ) , _ , Dt . pick ( $t , Ot ) ) : $t ; var wu = _ . Array , bu = _ . Date , xu = _ . Error , Au = _ . Function , ju = _ . Math , ku = _ . Number , Eu = _ . Object , Ru = _ . RegExp , Iu = _ . String , Ou = _ . TypeError , Cu = wu . prototype , Tu = Eu . prototype , Su = ( Su = _ . window ) && Su . document , Wu = Au . prototype . toString , Nu = jr ( "length" ) , Uu = Tu . hasOwnProperty , Fu = 0 , Lu = Tu . toString , $u = _ . _ , Bu = Ru ( "^" + au ( Lu ) . replace ( /toString|(function).*?(?=\\\()| for .+?(?=\\\])/g , "$1.*?" ) + "$" ) , zu = He ( zu = _ . ArrayBuffer ) && zu , Du = He ( Du = zu && new zu ( 0 ) . slice ) && Du , Mu = ju . ceil , qu = _ . clearTimeout , Pu = ju . floor , Ku = He ( Ku = Eu . getPrototypeOf ) && Ku , Vu = Cu . push , Yu = Tu . propertyIsEnumerable , Zu = He ( Zu = _ . Set ) && Zu , Gu = _ . setTimeout , Ju = Cu . splice , Xu = He ( Xu = _ . Uint8Array ) && Xu , Hu = He ( Hu = _ . WeakMap ) && Hu , Qu = function ( ) { try { var n = He ( n = _ . Float64Array ) && n , t = new n ( new zu ( 10 ) , 0 , 1 ) && n
} catch ( r ) { } return t } ( ) , no = He ( no = wu . isArray ) && no , to = He ( to = Eu . create ) && to , ro = _ . isFinite , eo = He ( eo = Eu . keys ) && eo , uo = ju . max , oo = ju . min , io = He ( io = bu . now ) && io , fo = He ( fo = ku . isFinite ) && fo , ao = _ . parseInt , co = ju . random , lo = ku . NEGATIVE _INFINITY , so = ku . POSITIVE _INFINITY , po = ju . pow ( 2 , 32 ) - 1 , ho = po - 1 , _o = po >>> 1 , go = Qu ? Qu . BYTES _PER _ELEMENT : 0 , vo = ju . pow ( 2 , 53 ) - 1 , yo = Hu && new Hu , mo = Wt . support = { } ; ! function ( n ) { mo . funcDecomp = ! He ( _ . WinRTError ) && kt . test ( m ) , mo . funcNames = typeof Au . name == "string" ; try { mo . dom = 11 === Su . createDocumentFragment ( ) . nodeType
} catch ( t ) { mo . dom = false } try { mo . nonEnumArgs = ! Yu . call ( arguments , 1 ) } catch ( r ) { mo . nonEnumArgs = true } } ( 0 , 0 ) , Wt . templateSettings = { escape : ht , evaluate : _t , interpolate : gt , variable : "" , imports : { _ : Wt } } ; var wo = function ( ) { function n ( ) { } return function ( t ) { if ( Xe ( t ) ) { n . prototype = t ; var r = new n ; n . prototype = null } return r || _ . Object ( ) } } ( ) , bo = yo ? function ( n , t ) { return yo . set ( n , t ) , n } : vu ; Du || ( Ur = zu && Xu ? function ( n ) { var t = n . byteLength , r = Qu ? Pu ( t / go ) : 0 , e = r * go , u = new zu ( t ) ; if ( r ) { var o = new Qu ( u , 0 , r ) ; o . set ( new Qu ( n , 0 , r ) ) } return t != e && ( o = new Xu ( u , e ) , o . set ( new Xu ( n , e ) ) ) , u
} : gu ( null ) ) ; var xo = to && Zu ? function ( n ) { return new Lt ( n ) } : gu ( null ) , Ao = yo ? function ( n ) { return yo . get ( n ) } : mu , jo = function ( ) { var n = 0 , t = 0 ; return function ( r , e ) { var u = To ( ) , o = N - ( u - t ) ; if ( t = u , 0 < o ) { if ( ++ n >= W ) return r } else n = 0 ; return bo ( r , e ) } } ( ) , ko = $r ( function ( n , t , r ) { Uu . call ( n , r ) ? ++ n [ r ] : n [ r ] = 1 } ) , Eo = $r ( function ( n , t , r ) { Uu . call ( n , r ) ? n [ r ] . push ( t ) : n [ r ] = [ t ] } ) , Ro = $r ( function ( n , t , r ) { n [ r ] = t } ) , Io = qr ( Vt ) , Oo = qr ( function ( n ) { for ( var t = - 1 , r = n . length , e = so ; ++ t < r ; ) { var u = n [ t ] ; u < e && ( e = u ) } return e } , true ) , Co = $r ( function ( n , t , r ) { n [ r ? 0 : 1 ] . push ( t )
} , function ( ) { return [ [ ] , [ ] ] } ) , To = io || function ( ) { return ( new bu ) . getTime ( ) } , So = no || function ( n ) { return h ( n ) && oe ( n . length ) && Lu . call ( n ) == D || false } ; mo . dom || ( Ze = function ( n ) { return n && 1 === n . nodeType && h ( n ) && ! No ( n ) || false } ) ; var Wo = fo || function ( n ) { return typeof n == "number" && ro ( n ) } ; ( Je ( /x/ ) || Xu && ! Je ( Xu ) ) && ( Je = function ( n ) { return Lu . call ( n ) == K } ) ; var No = Ku ? function ( n ) { if ( ! n || Lu . call ( n ) != Y ) return false ; var t = n . valueOf , r = He ( t ) && ( r = Ku ( t ) ) && Ku ( r ) ; return r ? n == r || Ku ( n ) == r : ce ( n ) } : ce , Uo = Br ( Ht ) , Fo = eo ? function ( n ) { if ( n ) var t = n . constructor , r = n . length ;
return typeof t == "function" && t . prototype === n || typeof n != "function" && r && oe ( r ) ? le ( n ) : Xe ( n ) ? eo ( n ) : [ ] } : le , Lo = Br ( Ar ) , $o = Dr ( function ( n , t , r ) { return t = t . toLowerCase ( ) , n + ( r ? t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) : t ) } ) , Bo = Dr ( function ( n , t , r ) { return n + ( r ? "-" : "" ) + t . toLowerCase ( ) } ) ; 8 != ao ( It + "08" ) && ( cu = function ( n , t , r ) { return ( r ? ue ( n , t , r ) : null == t ) ? t = 0 : t && ( t = + t ) , n = su ( n ) , ao ( n , t || ( mt . test ( n ) ? 16 : 10 ) ) } ) ; var zo = Dr ( function ( n , t , r ) { return n + ( r ? "_" : "" ) + t . toLowerCase ( ) } ) , Do = Dr ( function ( n , t , r ) { return n + ( r ? " " : "" ) + ( t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) )
} ) ; return Nt . prototype = wo ( Wt . prototype ) , Ut . prototype = wo ( Nt . prototype ) , Ut . prototype . constructor = Ut , Ft . prototype [ "delete" ] = function ( n ) { return this . has ( n ) && delete this . _ _data _ _ [ n ] } , Ft . prototype . get = function ( n ) { return "__proto__" == n ? w : this . _ _data _ _ [ n ] } , Ft . prototype . has = function ( n ) { return "__proto__" != n && Uu . call ( this . _ _data _ _ , n ) } , Ft . prototype . set = function ( n , t ) { return "__proto__" != n && ( this . _ _data _ _ [ n ] = t ) , this } , Lt . prototype . push = function ( n ) { var t = this . data ; typeof n == "string" || Xe ( n ) ? t . set . add ( n ) : t . hash [ n ] = true
} , Pe . Cache = Ft , Wt . after = function ( n , t ) { if ( typeof t != "function" ) { if ( typeof n != "function" ) throw new Ou ( $ ) ; var r = n ; n = t , t = r } return n = ro ( n = + n ) ? n : 0 , function ( ) { return 1 > -- n ? t . apply ( this , arguments ) : void 0 } } , Wt . ary = function ( n , t , r ) { return r && ue ( n , t , r ) && ( t = null ) , t = n && null == t ? n . length : uo ( + t || 0 , 0 ) , Yr ( n , C , null , null , null , null , t ) } , Wt . assign = Uo , Wt . at = function ( n ) { return oe ( n ? n . length : 0 ) && ( n = se ( n ) ) , Qt ( n , lr ( arguments , false , false , 1 ) ) } , Wt . before = Le , Wt . bind = $e , Wt . bindAll = function ( n ) { for ( var t = n , r = 1 < arguments . length ? lr ( arguments , false , false , 1 ) : uu ( n ) , e = - 1 , u = r . length ; ++ e < u ; ) { var o = r [ e ] ;
t [ o ] = Yr ( t [ o ] , x , t ) } return t } , Wt . bindKey = Be , Wt . callback = _u , Wt . chain = Ae , Wt . chunk = function ( n , t , r ) { t = ( r ? ue ( n , t , r ) : null == t ) ? 1 : uo ( + t || 1 , 1 ) , r = 0 ; for ( var e = n ? n . length : 0 , u = - 1 , o = wu ( Mu ( e / t ) ) ; r < e ; ) o [ ++ u ] = Rr ( n , r , r += t ) ; return o } , Wt . compact = function ( n ) { for ( var t = - 1 , r = n ? n . length : 0 , e = - 1 , u = [ ] ; ++ t < r ; ) { var o = n [ t ] ; o && ( u [ ++ e ] = o ) } return u } , Wt . constant = gu , Wt . countBy = ko , Wt . create = function ( n , t , r ) { var e = wo ( n ) ; return r && ue ( n , t , r ) && ( t = null ) , t ? nr ( t , e , Fo ( t ) ) : e } , Wt . curry = ze , Wt . curryRight = De , Wt . debounce = Me , Wt . defaults = function ( n ) { if ( null == n ) return n ;
var t = zt ( arguments ) ; return t . push ( Jt ) , Uo . apply ( w , t ) } , Wt . defer = function ( n ) { return er ( n , 1 , arguments , 1 ) } , Wt . delay = function ( n , t ) { return er ( n , t , arguments , 2 ) } , Wt . difference = function ( ) { for ( var n = - 1 , t = arguments . length ; ++ n < t ; ) { var r = arguments [ n ] ; if ( So ( r ) || Ye ( r ) ) break } return ur ( r , lr ( arguments , false , true , ++ n ) ) } , Wt . drop = _e , Wt . dropRight = ge , Wt . dropRightWhile = function ( n , t , r ) { var e = n ? n . length : 0 ; if ( ! e ) return [ ] ; for ( t = Hr ( t , r , 3 ) ; e -- && t ( n [ e ] , e , n ) ; ) ; return Rr ( n , 0 , e + 1 ) } , Wt . dropWhile = function ( n , t , r ) { var e = n ? n . length : 0 ; if ( ! e ) return [ ] ;
var u = - 1 ; for ( t = Hr ( t , r , 3 ) ; ++ u < e && t ( n [ u ] , u , n ) ; ) ; return Rr ( n , u ) } , Wt . fill = function ( n , t , r , e ) { var u = n ? n . length : 0 ; if ( ! u ) return [ ] ; for ( r && typeof r != "number" && ue ( n , t , r ) && ( r = 0 , e = u ) , u = n . length , r = null == r ? 0 : + r || 0 , 0 > r && ( r = - r > u ? 0 : u + r ) , e = typeof e == "undefined" || e > u ? u : + e || 0 , 0 > e && ( e += u ) , u = r > e ? 0 : e >>> 0 , r >>>= 0 ; r < u ; ) n [ r ++ ] = t ; return n } , Wt . filter = Re , Wt . flatten = function ( n , t , r ) { var e = n ? n . length : 0 ; return r && ue ( n , t , r ) && ( t = false ) , e ? lr ( n , t ) : [ ] } , Wt . flattenDeep = function ( n ) { return n && n . length ? lr ( n , true ) : [ ] } , Wt . flow = function ( ) { var n = arguments , t = n . length ;
if ( ! t ) return function ( n ) { return n } ; if ( ! qt ( n , Je ) ) throw new Ou ( $ ) ; return function ( ) { for ( var r = 0 , e = n [ r ] . apply ( this , arguments ) ; ++ r < t ; ) e = n [ r ] . call ( this , e ) ; return e } } , Wt . flowRight = qe , Wt . forEach = Oe , Wt . forEachRight = Ce , Wt . forIn = function ( n , t , r ) { return ( typeof t != "function" || typeof r != "undefined" ) && ( t = Nr ( t , r , 3 ) ) , sr ( n , t , ou ) } , Wt . forInRight = function ( n , t , r ) { return t = Nr ( t , r , 3 ) , pr ( n , t , ou ) } , Wt . forOwn = function ( n , t , r ) { return ( typeof t != "function" || typeof r != "undefined" ) && ( t = Nr ( t , r , 3 ) ) , _r ( n , t ) } , Wt . forOwnRight = function ( n , t , r ) { return t = Nr ( t , r , 3 ) , pr ( n , t , Fo )
} , Wt . functions = uu , Wt . groupBy = Eo , Wt . indexBy = Ro , Wt . initial = function ( n ) { return ge ( n , 1 ) } , Wt . intersection = function ( ) { for ( var n = [ ] , r = - 1 , e = arguments . length , u = [ ] , o = Qr ( ) , i = o == t ; ++ r < e ; ) { var f = arguments [ r ] ; ( So ( f ) || Ye ( f ) ) && ( n . push ( f ) , u . push ( i && 120 <= f . length && xo ( r && f ) ) ) } var e = n . length , i = n [ 0 ] , a = - 1 , c = i ? i . length : 0 , l = [ ] , s = u [ 0 ] ; n : for ( ; ++ a < c ; ) if ( f = i [ a ] , 0 > ( s ? Bt ( s , f ) : o ( l , f ) ) ) { for ( r = e ; -- r ; ) { var p = u [ r ] ; if ( 0 > ( p ? Bt ( p , f ) : o ( n [ r ] , f ) ) ) continue n } s && s . push ( f ) , l . push ( f ) } return l } , Wt . invert = function ( n , t , r ) { r && ue ( n , t , r ) && ( t = null ) , r = - 1 ;
for ( var e = Fo ( n ) , u = e . length , o = { } ; ++ r < u ; ) { var i = e [ r ] , f = n [ i ] ; t ? Uu . call ( o , f ) ? o [ f ] . push ( i ) : o [ f ] = [ i ] : o [ f ] = i } return o } , Wt . invoke = function ( n , t ) { return yr ( n , t , Rr ( arguments , 2 ) ) } , Wt . keys = Fo , Wt . keysIn = ou , Wt . map = Te , Wt . mapValues = function ( n , t , r ) { var e = { } ; return t = Hr ( t , r , 3 ) , _r ( n , function ( n , r , u ) { e [ r ] = t ( n , r , u ) } ) , e } , Wt . matches = yu , Wt . matchesProperty = function ( n , t ) { return xr ( n + "" , rr ( t , true ) ) } , Wt . memoize = Pe , Wt . merge = Lo , Wt . mixin = du , Wt . negate = function ( n ) { if ( typeof n != "function" ) throw new Ou ( $ ) ; return function ( ) { return ! n . apply ( this , arguments )
} } , Wt . omit = function ( n , t , r ) { if ( null == n ) return { } ; if ( typeof t != "function" ) { var e = Kt ( lr ( arguments , false , false , 1 ) , Iu ) ; return fe ( n , ur ( ou ( n ) , e ) ) } return t = Nr ( t , r , 3 ) , ae ( n , function ( n , r , e ) { return ! t ( n , r , e ) } ) } , Wt . once = function ( n ) { return Le ( n , 2 ) } , Wt . pairs = function ( n ) { for ( var t = - 1 , r = Fo ( n ) , e = r . length , u = wu ( e ) ; ++ t < e ; ) { var o = r [ t ] ; u [ t ] = [ o , n [ o ] ] } return u } , Wt . partial = Ke , Wt . partialRight = Ve , Wt . partition = Co , Wt . pick = function ( n , t , r ) { return null == n ? { } : typeof t == "function" ? ae ( n , Nr ( t , r , 3 ) ) : fe ( n , lr ( arguments , false , false , 1 ) ) } , Wt . pluck = function ( n , t ) { return Te ( n , jr ( t ) )
} , Wt . property = function ( n ) { return jr ( n + "" ) } , Wt . propertyOf = function ( n ) { return function ( t ) { return null == n ? w : n [ t ] } } , Wt . pull = function ( ) { var n = arguments [ 0 ] ; if ( ! n || ! n . length ) return n ; for ( var t = 0 , r = Qr ( ) , e = arguments . length ; ++ t < e ; ) for ( var u = 0 , o = arguments [ t ] ; - 1 < ( u = r ( n , o , u ) ) ; ) Ju . call ( n , u , 1 ) ; return n } , Wt . pullAt = function ( t ) { var r = t || [ ] , e = lr ( arguments , false , false , 1 ) , u = e . length , o = Qt ( r , e ) ; for ( e . sort ( n ) ; u -- ; ) { var i = parseFloat ( e [ u ] ) ; if ( i != f && ee ( i ) ) { var f = i ; Ju . call ( r , i , 1 ) } } return o } , Wt . range = function ( n , t , r ) { r && ue ( n , t , r ) && ( t = r = null ) , n = + n || 0 , r = null == r ? 1 : + r || 0 , null == t ? ( t = n , n = 0 ) : t = + t || 0 ;
var e = - 1 ; t = uo ( Mu ( ( t - n ) / ( r || 1 ) ) , 0 ) ; for ( var u = wu ( t ) ; ++ e < t ; ) u [ e ] = n , n += r ; return u } , Wt . rearg = function ( n ) { var t = lr ( arguments , false , false , 1 ) ; return Yr ( n , O , null , null , null , t ) } , Wt . reject = function ( n , t , r ) { var e = So ( n ) ? Pt : ar ; return t = Hr ( t , r , 3 ) , e ( n , function ( n , r , e ) { return ! t ( n , r , e ) } ) } , Wt . remove = function ( n , t , r ) { var e = - 1 , u = n ? n . length : 0 , o = [ ] ; for ( t = Hr ( t , r , 3 ) ; ++ e < u ; ) r = n [ e ] , t ( r , e , n ) && ( o . push ( r ) , Ju . call ( n , e -- , 1 ) , u -- ) ; return o } , Wt . rest = me , Wt . shuffle = Ue , Wt . slice = function ( n , t , r ) { var e = n ? n . length : 0 ; return e ? ( r && typeof r != "number" && ue ( n , t , r ) && ( t = 0 , r = e ) , Rr ( n , t , r ) ) : [ ]
} , Wt . sortBy = function ( n , t , e ) { var u = - 1 , o = n ? n . length : 0 , i = oe ( o ) ? wu ( o ) : [ ] ; return e && ue ( n , t , e ) && ( t = null ) , t = Hr ( t , e , 3 ) , or ( n , function ( n , r , e ) { i [ ++ u ] = { a : t ( n , r , e ) , b : u , c : n } } ) , r ( i , f ) } , Wt . sortByAll = function ( n ) { var t = arguments ; 3 < t . length && ue ( t [ 1 ] , t [ 2 ] , t [ 3 ] ) && ( t = [ n , t [ 1 ] ] ) ; var e = - 1 , u = n ? n . length : 0 , o = lr ( t , false , false , 1 ) , i = oe ( u ) ? wu ( u ) : [ ] ; return or ( n , function ( n ) { for ( var t = o . length , r = wu ( t ) ; t -- ; ) r [ t ] = null == n ? w : n [ o [ t ] ] ; i [ ++ e ] = { a : r , b : e , c : n } } ) , r ( i , a ) } , Wt . spread = function ( n ) { if ( typeof n != "function" ) throw new Ou ( $ ) ; return function ( t ) { return n . apply ( this , t )
} } , Wt . take = function ( n , t , r ) { return n && n . length ? ( ( r ? ue ( n , t , r ) : null == t ) && ( t = 1 ) , Rr ( n , 0 , 0 > t ? 0 : t ) ) : [ ] } , Wt . takeRight = function ( n , t , r ) { var e = n ? n . length : 0 ; return e ? ( ( r ? ue ( n , t , r ) : null == t ) && ( t = 1 ) , t = e - ( + t || 0 ) , Rr ( n , 0 > t ? 0 : t ) ) : [ ] } , Wt . takeRightWhile = function ( n , t , r ) { var e = n ? n . length : 0 ; if ( ! e ) return [ ] ; for ( t = Hr ( t , r , 3 ) ; e -- && t ( n [ e ] , e , n ) ; ) ; return Rr ( n , e + 1 ) } , Wt . takeWhile = function ( n , t , r ) { var e = n ? n . length : 0 ; if ( ! e ) return [ ] ; var u = - 1 ; for ( t = Hr ( t , r , 3 ) ; ++ u < e && t ( n [ u ] , u , n ) ; ) ; return Rr ( n , 0 , u ) } , Wt . tap = function ( n , t , r ) { return t . call ( r , n ) , n
} , Wt . throttle = function ( n , t , r ) { var e = true , u = true ; if ( typeof n != "function" ) throw new Ou ( $ ) ; return false === r ? e = false : Xe ( r ) && ( e = "leading" in r ? ! ! r . leading : e , u = "trailing" in r ? ! ! r . trailing : u ) , St . leading = e , St . maxWait = + t , St . trailing = u , Me ( n , t , St ) } , Wt . thru = je , Wt . times = function ( n , t , r ) { if ( n = + n , 1 > n || ! ro ( n ) ) return [ ] ; var e = - 1 , u = wu ( oo ( n , po ) ) ; for ( t = Nr ( t , r , 1 ) ; ++ e < n ; ) e < po ? u [ e ] = t ( e ) : t ( e ) ; return u } , Wt . toArray = function ( n ) { var t = n ? n . length : 0 ; return oe ( t ) ? t ? zt ( n ) : [ ] : iu ( n ) } , Wt . toPlainObject = eu , Wt . transform = function ( n , t , r , e ) { var u = So ( n ) || ru ( n ) ;
return t = Hr ( t , e , 4 ) , null == r && ( u || Xe ( n ) ? ( e = n . constructor , r = u ? So ( n ) ? new e : [ ] : wo ( Je ( e ) && e . prototype ) ) : r = { } ) , ( u ? Mt : _r ) ( n , function ( n , e , u ) { return t ( r , n , e , u ) } ) , r } , Wt . union = function ( ) { return Or ( lr ( arguments , false , true ) ) } , Wt . uniq = we , Wt . unzip = be , Wt . values = iu , Wt . valuesIn = function ( n ) { return Cr ( n , ou ( n ) ) } , Wt . where = function ( n , t ) { return Re ( n , br ( t ) ) } , Wt . without = function ( n ) { return ur ( n , Rr ( arguments , 1 ) ) } , Wt . wrap = function ( n , t ) { return t = null == t ? vu : t , Yr ( t , R , null , [ n ] , [ ] ) } , Wt . xor = function ( ) { for ( var n = - 1 , t = arguments . length ; ++ n < t ; ) { var r = arguments [ n ] ;
if ( So ( r ) || Ye ( r ) ) var e = e ? ur ( e , r ) . concat ( ur ( r , e ) ) : r } return e ? Or ( e ) : [ ] } , Wt . zip = function ( ) { for ( var n = arguments . length , t = wu ( n ) ; n -- ; ) t [ n ] = arguments [ n ] ; return be ( t ) } , Wt . zipObject = xe , Wt . backflow = qe , Wt . collect = Te , Wt . compose = qe , Wt . each = Oe , Wt . eachRight = Ce , Wt . extend = Uo , Wt . iteratee = _u , Wt . methods = uu , Wt . object = xe , Wt . select = Re , Wt . tail = me , Wt . unique = we , du ( Wt , Wt ) , Wt . attempt = hu , Wt . camelCase = $o , Wt . capitalize = function ( n ) { return ( n = e ( n ) ) && n . charAt ( 0 ) . toUpperCase ( ) + n . slice ( 1 ) } , Wt . clone = function ( n , t , r , e ) { return typeof t != "boolean" && null != t && ( e = r , r = ue ( n , t , e ) ? null : t , t = false ) , r = typeof r == "function" && Nr ( r , e , 1 ) , rr ( n , t , r )
} , Wt . cloneDeep = function ( n , t , r ) { return t = typeof t == "function" && Nr ( t , r , 1 ) , rr ( n , true , t ) } , Wt . deburr = fu , Wt . endsWith = function ( n , t , r ) { n = e ( n ) , t += "" ; var u = n . length ; return r = ( typeof r == "undefined" ? u : oo ( 0 > r ? 0 : + r || 0 , u ) ) - t . length , 0 <= r && n . indexOf ( t , r ) == r } , Wt . escape = function ( n ) { return ( n = e ( n ) ) && pt . test ( n ) ? n . replace ( lt , l ) : n } , Wt . escapeRegExp = au , Wt . every = Ee , Wt . find = Ie , Wt . findIndex = ve , Wt . findKey = function ( n , t , r ) { return t = Hr ( t , r , 3 ) , cr ( n , t , _r , true ) } , Wt . findLast = function ( n , t , r ) { return t = Hr ( t , r , 3 ) , cr ( n , t , ir ) } , Wt . findLastIndex = function ( n , t , r ) { var e = n ? n . length : 0 ;
for ( t = Hr ( t , r , 3 ) ; e -- ; ) if ( t ( n [ e ] , e , n ) ) return e ; return - 1 } , Wt . findLastKey = function ( n , t , r ) { return t = Hr ( t , r , 3 ) , cr ( n , t , gr , true ) } , Wt . findWhere = function ( n , t ) { return Ie ( n , br ( t ) ) } , Wt . first = ye , Wt . has = function ( n , t ) { return n ? Uu . call ( n , t ) : false } , Wt . identity = vu , Wt . includes = ke , Wt . indexOf = de , Wt . isArguments = Ye , Wt . isArray = So , Wt . isBoolean = function ( n ) { return true === n || false === n || h ( n ) && Lu . call ( n ) == M || false } , Wt . isDate = function ( n ) { return h ( n ) && Lu . call ( n ) == q || false } , Wt . isElement = Ze , Wt . isEmpty = function ( n ) { if ( null == n ) return true ; var t = n . length ;
return oe ( t ) && ( So ( n ) || tu ( n ) || Ye ( n ) || h ( n ) && Je ( n . splice ) ) ? ! t : ! Fo ( n ) . length } , Wt . isEqual = function ( n , t , r , e ) { return r = typeof r == "function" && Nr ( r , e , 3 ) , ! r && ie ( n ) && ie ( t ) ? n === t : ( e = r ? r ( n , t ) : w , typeof e == "undefined" ? dr ( n , t , r ) : ! ! e ) } , Wt . isError = Ge , Wt . isFinite = Wo , Wt . isFunction = Je , Wt . isMatch = function ( n , t , r , e ) { var u = Fo ( t ) , o = u . length ; if ( r = typeof r == "function" && Nr ( r , e , 3 ) , ! r && 1 == o ) { var i = u [ 0 ] ; if ( e = t [ i ] , ie ( e ) ) return null != n && e === n [ i ] && Uu . call ( n , i ) } for ( var i = wu ( o ) , f = wu ( o ) ; o -- ; ) e = i [ o ] = t [ u [ o ] ] , f [ o ] = ie ( e ) ; return mr ( n , u , i , f , r )
} , Wt . isNaN = function ( n ) { return Qe ( n ) && n != + n } , Wt . isNative = He , Wt . isNull = function ( n ) { return null === n } , Wt . isNumber = Qe , Wt . isObject = Xe , Wt . isPlainObject = No , Wt . isRegExp = nu , Wt . isString = tu , Wt . isTypedArray = ru , Wt . isUndefined = function ( n ) { return typeof n == "undefined" } , Wt . kebabCase = Bo , Wt . last = function ( n ) { var t = n ? n . length : 0 ; return t ? n [ t - 1 ] : w } , Wt . lastIndexOf = function ( n , t , r ) { var e = n ? n . length : 0 ; if ( ! e ) return - 1 ; var u = e ; if ( typeof r == "number" ) u = ( 0 > r ? uo ( e + r , 0 ) : oo ( r || 0 , e - 1 ) ) + 1 ; else if ( r ) return u = Sr ( n , t , true ) - 1 , n = n [ u ] , ( t === t ? t === n : n !== n ) ? u : - 1 ;
if ( t !== t ) return p ( n , u , true ) ; for ( ; u -- ; ) if ( n [ u ] === t ) return u ; return - 1 } , Wt . max = Io , Wt . min = Oo , Wt . noConflict = function ( ) { return _ . _ = $u , this } , Wt . noop = mu , Wt . now = To , Wt . pad = function ( n , t , r ) { n = e ( n ) , t = + t ; var u = n . length ; return u < t && ro ( t ) ? ( u = ( t - u ) / 2 , t = Pu ( u ) , u = Mu ( u ) , r = Kr ( "" , u , r ) , r . slice ( 0 , t ) + n + r ) : n } , Wt . padLeft = function ( n , t , r ) { return ( n = e ( n ) ) && Kr ( n , t , r ) + n } , Wt . padRight = function ( n , t , r ) { return ( n = e ( n ) ) && n + Kr ( n , t , r ) } , Wt . parseInt = cu , Wt . random = function ( n , t , r ) { r && ue ( n , t , r ) && ( t = r = null ) ; var e = null == n , u = null == t ; return null == r && ( u && typeof n == "boolean" ? ( r = n , n = 1 ) : typeof t == "boolean" && ( r = t , u = true ) ) , e && u && ( t = 1 , u = false ) , n = + n || 0 , u ? ( t = n , n = 0 ) : t = + t || 0 , r || n % 1 || t % 1 ? ( r = co ( ) , oo ( n + r * ( t - n + parseFloat ( "1e-" + ( ( r + "" ) . length - 1 ) ) ) , t ) ) : kr ( n , t )
} , Wt . reduce = Se , Wt . reduceRight = We , Wt . repeat = lu , Wt . result = function ( n , t , r ) { return t = null == n ? w : n [ t ] , typeof t == "undefined" && ( t = r ) , Je ( t ) ? t . call ( n ) : t } , Wt . runInContext = m , Wt . size = function ( n ) { var t = n ? n . length : 0 ; return oe ( t ) ? t : Fo ( n ) . length } , Wt . snakeCase = zo , Wt . some = Fe , Wt . sortedIndex = function ( n , t , r , e ) { var u = Hr ( r ) ; return u === tr && null == r ? Sr ( n , t ) : Wr ( n , t , u ( r , e , 1 ) ) } , Wt . sortedLastIndex = function ( n , t , r , e ) { var u = Hr ( r ) ; return u === tr && null == r ? Sr ( n , t , true ) : Wr ( n , t , u ( r , e , 1 ) , true ) } , Wt . startCase = Do , Wt . startsWith = function ( n , t , r ) { return n = e ( n ) , r = null == r ? 0 : oo ( 0 > r ? 0 : + r || 0 , n . length ) , n . lastIndexOf ( t , r ) == r
} , Wt . template = function ( n , t , r ) { var u = Wt . templateSettings ; r && ue ( n , t , r ) && ( t = r = null ) , n = e ( n ) , t = Ht ( Ht ( { } , r || t ) , u , Xt ) , r = Ht ( Ht ( { } , t . imports ) , u . imports , Xt ) ; var o , i , f = Fo ( r ) , a = Cr ( r , f ) , c = 0 ; r = t . interpolate || xt ; var l = "__p+='" ; r = Ru ( ( t . escape || xt ) . source + "|" + r . source + "|" + ( r === gt ? vt : xt ) . source + "|" + ( t . evaluate || xt ) . source + "|$" , "g" ) ; var p = "sourceURL" in t ? "//# sourceURL=" + t . sourceURL + "\n" : "" ; if ( n . replace ( r , function ( t , r , e , u , f , a ) { return e || ( e = u ) , l += n . slice ( c , a ) . replace ( Et , s ) , r && ( o = true , l += "'+__e(" + r + ")+'" ) , f && ( i = true , l += "';" + f + ";\n__p+='" ) , e && ( l += "'+((__t=(" + e + "))==null?'':__t)+'" ) , c = a + t . length , t
} ) , l += "';" , ( t = t . variable ) || ( l = "with(obj){" + l + "}" ) , l = ( i ? l . replace ( it , "" ) : l ) . replace ( ft , "$1" ) . replace ( at , "$1;" ) , l = "function(" + ( t || "obj" ) + "){" + ( t ? "" : "obj||(obj={});" ) + "var __t,__p=''" + ( o ? ",__e=_.escape" : "" ) + ( i ? ",__j=Array.prototype.join;function print(){__p+=__j.call(arguments,'')}" : ";" ) + l + "return __p}" , t = hu ( function ( ) { return Au ( f , p + "return " + l ) . apply ( w , a ) } ) , t . source = l , Ge ( t ) ) throw t ; return t } , Wt . trim = su , Wt . trimLeft = function ( n , t , r ) { var u = n ; return ( n = e ( n ) ) ? n . slice ( ( r ? ue ( u , t , r ) : null == t ) ? v ( n ) : o ( n , t + "" ) ) : n
} , Wt . trimRight = function ( n , t , r ) { var u = n ; return ( n = e ( n ) ) ? ( r ? ue ( u , t , r ) : null == t ) ? n . slice ( 0 , y ( n ) + 1 ) : n . slice ( 0 , i ( n , t + "" ) + 1 ) : n } , Wt . trunc = function ( n , t , r ) { r && ue ( n , t , r ) && ( t = null ) ; var u = T ; if ( r = S , null != t ) if ( Xe ( t ) ) { var o = "separator" in t ? t . separator : o , u = "length" in t ? + t . length || 0 : u ; r = "omission" in t ? e ( t . omission ) : r } else u = + t || 0 ; if ( n = e ( n ) , u >= n . length ) return n ; if ( u -= r . length , 1 > u ) return r ; if ( t = n . slice ( 0 , u ) , null == o ) return t + r ; if ( nu ( o ) ) { if ( n . slice ( u ) . search ( o ) ) { var i , f = n . slice ( 0 , u ) ; for ( o . global || ( o = Ru ( o . source , ( yt . exec ( o ) || "" ) + "g" ) ) , o . lastIndex = 0 ; n = o . exec ( f ) ; ) i = n . index ;
t = t . slice ( 0 , null == i ? u : i ) } } else n . indexOf ( o , u ) != u && ( o = t . lastIndexOf ( o ) , - 1 < o && ( t = t . slice ( 0 , o ) ) ) ; return t + r } , Wt . unescape = function ( n ) { return ( n = e ( n ) ) && st . test ( n ) ? n . replace ( ct , d ) : n } , Wt . uniqueId = function ( n ) { var t = ++ Fu ; return e ( n ) + t } , Wt . words = pu , Wt . all = Ee , Wt . any = Fe , Wt . contains = ke , Wt . detect = Ie , Wt . foldl = Se , Wt . foldr = We , Wt . head = ye , Wt . include = ke , Wt . inject = Se , du ( Wt , function ( ) { var n = { } ; return _r ( Wt , function ( t , r ) { Wt . prototype [ r ] || ( n [ r ] = t ) } ) , n } ( ) , false ) , Wt . sample = Ne , Wt . prototype . sample = function ( n ) { return this . _ _chain _ _ || null != n ? this . thru ( function ( t ) { return Ne ( t , n )
} ) : Ne ( this . value ( ) ) } , Wt . VERSION = b , Mt ( "bind bindKey curry curryRight partial partialRight" . split ( " " ) , function ( n ) { Wt [ n ] . placeholder = Wt } ) , Mt ( [ "filter" , "map" , "takeWhile" ] , function ( n , t ) { var r = t == U , e = t == L ; Ut . prototype [ n ] = function ( n , u ) { var o = this . clone ( ) , i = o . _ _filtered _ _ , f = o . _ _iteratees _ _ || ( o . _ _iteratees _ _ = [ ] ) ; return o . _ _filtered _ _ = i || r || e && 0 > o . _ _dir _ _ , f . push ( { iteratee : Hr ( n , u , 3 ) , type : t } ) , o } } ) , Mt ( [ "drop" , "take" ] , function ( n , t ) { var r = "__" + n + "Count__" , e = n + "While" ; Ut . prototype [ n ] = function ( e ) { e = null == e ? 1 : uo ( Pu ( e ) || 0 , 0 ) ;
var u = this . clone ( ) ; if ( u . _ _filtered _ _ ) { var o = u [ r ] ; u [ r ] = t ? oo ( o , e ) : o + e } else ( u . _ _views _ _ || ( u . _ _views _ _ = [ ] ) ) . push ( { size : e , type : n + ( 0 > u . _ _dir _ _ ? "Right" : "" ) } ) ; return u } , Ut . prototype [ n + "Right" ] = function ( t ) { return this . reverse ( ) [ n ] ( t ) . reverse ( ) } , Ut . prototype [ n + "RightWhile" ] = function ( n , t ) { return this . reverse ( ) [ e ] ( n , t ) . reverse ( ) } } ) , Mt ( [ "first" , "last" ] , function ( n , t ) { var r = "take" + ( t ? "Right" : "" ) ; Ut . prototype [ n ] = function ( ) { return this [ r ] ( 1 ) . value ( ) [ 0 ] } } ) , Mt ( [ "initial" , "rest" ] , function ( n , t ) { var r = "drop" + ( t ? "" : "Right" ) ;
Ut . prototype [ n ] = function ( ) { return this [ r ] ( 1 ) } } ) , Mt ( [ "pluck" , "where" ] , function ( n , t ) { var r = t ? "filter" : "map" , e = t ? br : jr ; Ut . prototype [ n ] = function ( n ) { return this [ r ] ( e ( n ) ) } } ) , Ut . prototype . compact = function ( ) { return this . filter ( vu ) } , Ut . prototype . dropWhile = function ( n , t ) { var r ; return n = Hr ( n , t , 3 ) , this . filter ( function ( t , e , u ) { return r || ( r = ! n ( t , e , u ) ) } ) } , Ut . prototype . reject = function ( n , t ) { return n = Hr ( n , t , 3 ) , this . filter ( function ( t , r , e ) { return ! n ( t , r , e ) } ) } , Ut . prototype . slice = function ( n , t ) { n = null == n ? 0 : + n || 0 ; var r = 0 > n ? this . takeRight ( - n ) : this . drop ( n ) ;
return typeof t != "undefined" && ( t = + t || 0 , r = 0 > t ? r . dropRight ( - t ) : r . take ( t - n ) ) , r } , Ut . prototype . toArray = function ( ) { return this . drop ( 0 ) } , _r ( Ut . prototype , function ( n , t ) { var r = Wt [ t ] , e = /^(?:first|last)$/ . test ( t ) ; Wt . prototype [ t ] = function ( ) { function t ( n ) { return n = [ n ] , Vu . apply ( n , o ) , r . apply ( Wt , n ) } var u = this . _ _wrapped _ _ , o = arguments , i = this . _ _chain _ _ , f = ! ! this . _ _actions _ _ . length , a = u instanceof Ut , c = a && ! f ; return e && ! i ? c ? n . call ( u ) : r . call ( Wt , this . value ( ) ) : a || So ( u ) ? ( u = n . apply ( c ? u : new Ut ( this ) , o ) , e || ! f && ! u . _ _actions _ _ || ( u . _ _actions _ _ || ( u . _ _actions _ _ = [ ] ) ) . push ( { func : je , args : [ t ] , thisArg : Wt } ) , new Nt ( u , i ) ) : this . thru ( t )
} } ) , Mt ( "concat join pop push shift sort splice unshift" . split ( " " ) , function ( n ) { var t = Cu [ n ] , r = /^(?:push|sort|unshift)$/ . test ( n ) ? "tap" : "thru" , e = /^(?:join|pop|shift)$/ . test ( n ) ; Wt . prototype [ n ] = function ( ) { var n = arguments ; return e && ! this . _ _chain _ _ ? t . apply ( this . value ( ) , n ) : this [ r ] ( function ( r ) { return t . apply ( r , n ) } ) } } ) , Ut . prototype . clone = function ( ) { var n = this . _ _actions _ _ , t = this . _ _iteratees _ _ , r = this . _ _views _ _ , e = new Ut ( this . _ _wrapped _ _ ) ; return e . _ _actions _ _ = n ? zt ( n ) : null , e . _ _dir _ _ = this . _ _dir _ _ , e . _ _dropCount _ _ = this . _ _dropCount _ _ , e . _ _filtered _ _ = this . _ _filtered _ _ , e . _ _iteratees _ _ = t ? zt ( t ) : null , e . _ _takeCount _ _ = this . _ _takeCount _ _ , e . _ _views _ _ = r ? zt ( r ) : null , e
} , Ut . prototype . reverse = function ( ) { if ( this . _ _filtered _ _ ) { var n = new Ut ( this ) ; n . _ _dir _ _ = - 1 , n . _ _filtered _ _ = true } else n = this . clone ( ) , n . _ _dir _ _ *= - 1 ; return n } , Ut . prototype . value = function ( ) { var n = this . _ _wrapped _ _ . value ( ) ; if ( ! So ( n ) ) return Tr ( n , this . _ _actions _ _ ) ; var t , r = this . _ _dir _ _ , e = 0 > r ; t = n . length ; for ( var u = this . _ _views _ _ , o = 0 , i = - 1 , f = u ? u . length : 0 ; ++ i < f ; ) { var a = u [ i ] , c = a . size ; switch ( a . type ) { case "drop" : o += c ; break ; case "dropRight" : t -= c ; break ; case "take" : t = oo ( t , o + c ) ; break ; case "takeRight" : o = uo ( o , t - c ) } } t = { start : o , end : t } , i = t . start , f = t . end , t = f - i , u = this . _ _dropCount _ _ , o = oo ( t , this . _ _takeCount _ _ ) , e = e ? f : i - 1 , f = ( i = this . _ _iteratees _ _ ) ? i . length : 0 , a = 0 , c = [ ] ;
n : for ( ; t -- && a < o ; ) { for ( var e = e + r , l = - 1 , s = n [ e ] ; ++ l < f ; ) { var p = i [ l ] , h = p . iteratee ( s , e , n ) , p = p . type ; if ( p == F ) s = h ; else if ( ! h ) { if ( p == U ) continue n ; break n } } u ? u -- : c [ a ++ ] = s } return c } , Wt . prototype . chain = function ( ) { return Ae ( this ) } , Wt . prototype . commit = function ( ) { return new Nt ( this . value ( ) , this . _ _chain _ _ ) } , Wt . prototype . plant = function ( n ) { for ( var t , r = this ; r instanceof Nt ; ) { var e = he ( r ) ; t ? u . _ _wrapped _ _ = e : t = e ; var u = e , r = r . _ _wrapped _ _ } return u . _ _wrapped _ _ = n , t } , Wt . prototype . reverse = function ( ) { var n = this . _ _wrapped _ _ ; return n instanceof Ut ? ( this . _ _actions _ _ . length && ( n = new Ut ( this ) ) , new Nt ( n . reverse ( ) , this . _ _chain _ _ ) ) : this . thru ( function ( n ) { return n . reverse ( )
} ) } , Wt . prototype . toString = function ( ) { return this . value ( ) + "" } , Wt . prototype . run = Wt . prototype . toJSON = Wt . prototype . valueOf = Wt . prototype . value = function ( ) { return Tr ( this . _ _wrapped _ _ , this . _ _actions _ _ ) } , Wt . prototype . collect = Wt . prototype . map , Wt . prototype . head = Wt . prototype . first , Wt . prototype . select = Wt . prototype . filter , Wt . prototype . tail = Wt . prototype . rest , Wt } var w , b = "3.2.0" , x = 1 , A = 2 , j = 4 , k = 8 , E = 16 , R = 32 , I = 64 , O = 128 , C = 256 , T = 30 , S = "..." , W = 150 , N = 16 , U = 0 , F = 1 , L = 2 , $ = "Expected a function" , B = "__lodash_placeholder__" , z = "[object Arguments]" , D = "[object Array]" , M = "[object Boolean]" , q = "[object Date]" , P = "[object Error]" , K = "[object Function]" , V = "[object Number]" , Y = "[object Object]" , Z = "[object RegExp]" , G = "[object String]" , J = "[object ArrayBuffer]" , X = "[object Float32Array]" , H = "[object Float64Array]" , Q = "[object Int8Array]" , nt = "[object Int16Array]" , tt = "[object Int32Array]" , rt = "[object Uint8Array]" , et = "[object Uint8ClampedArray]" , ut = "[object Uint16Array]" , ot = "[object Uint32Array]" , it = /\b__p\+='';/g , ft = /\b(__p\+=)''\+/g , at = /(__e\(.*?\)|\b__t\))\+'';/g , ct = /&(?:amp|lt|gt|quot|#39|#96);/g , lt = /[&<>"'`]/g , st = RegExp ( ct . source ) , pt = RegExp ( lt . source ) , ht = /<%-([\s\S]+?)%>/g , _t = /<%([\s\S]+?)%>/g , gt = /<%=([\s\S]+?)%>/g , vt = /\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g , yt = /\w*$/ , dt = /^\s*function[ \n\r\t]+\w/ , mt = /^0[xX]/ , wt = /^\[object .+?Constructor\]$/ , bt = /[\xc0-\xd6\xd8-\xde\xdf-\xf6\xf8-\xff]/g , xt = /($^)/ , At = /[.*+?^${}()|[\]\/\\]/g , jt = RegExp ( At . source ) , kt = /\bthis\b/ , Et = /['\n\r\u2028\u2029\\]/g , Rt = RegExp ( "[A-Z\\xc0-\\xd6\\xd8-\\xde]{2,}(?=[A-Z\\xc0-\\xd6\\xd8-\\xde][a-z\\xdf-\\xf6\\xf8-\\xff]+)|[A-Z\\xc0-\\xd6\\xd8-\\xde]?[a-z\\xdf-\\xf6\\xf8-\\xff]+|[A-Z\\xc0-\\xd6\\xd8-\\xde]+|[0-9]+" , "g" ) , It = " \t\x0b\f\xa0\ufeff\n\r\u2028\u2029\u1680\u180e\u2000\u2001\u2002\u2003\u2004\u2005\u2006\u2007\u2008\u2009\u200a\u202f\u205f\u3000" , Ot = "Array ArrayBuffer Date Error Float32Array Float64Array Function Int8Array Int16Array Int32Array Math Number Object RegExp Set String _ clearTimeout document isFinite parseInt setTimeout TypeError Uint8Array Uint8ClampedArray Uint16Array Uint32Array WeakMap window WinRTError" . split ( " " ) , Ct = { } ;
Ct [ X ] = Ct [ H ] = Ct [ Q ] = Ct [ nt ] = Ct [ tt ] = Ct [ rt ] = Ct [ et ] = Ct [ ut ] = Ct [ ot ] = true , Ct [ z ] = Ct [ D ] = Ct [ J ] = Ct [ M ] = Ct [ q ] = Ct [ P ] = Ct [ K ] = Ct [ "[object Map]" ] = Ct [ V ] = Ct [ Y ] = Ct [ Z ] = Ct [ "[object Set]" ] = Ct [ G ] = Ct [ "[object WeakMap]" ] = false ; var Tt = { } ; Tt [ z ] = Tt [ D ] = Tt [ J ] = Tt [ M ] = Tt [ q ] = Tt [ X ] = Tt [ H ] = Tt [ Q ] = Tt [ nt ] = Tt [ tt ] = Tt [ V ] = Tt [ Y ] = Tt [ Z ] = Tt [ G ] = Tt [ rt ] = Tt [ et ] = Tt [ ut ] = Tt [ ot ] = true , Tt [ P ] = Tt [ K ] = Tt [ "[object Map]" ] = Tt [ "[object Set]" ] = Tt [ "[object WeakMap]" ] = false ; var St = { leading : false , maxWait : 0 , trailing : false } , Wt = { "\xc0" : "A" , "\xc1" : "A" , "\xc2" : "A" , "\xc3" : "A" , "\xc4" : "A" , "\xc5" : "A" , "\xe0" : "a" , "\xe1" : "a" , "\xe2" : "a" , "\xe3" : "a" , "\xe4" : "a" , "\xe5" : "a" , "\xc7" : "C" , "\xe7" : "c" , "\xd0" : "D" , "\xf0" : "d" , "\xc8" : "E" , "\xc9" : "E" , "\xca" : "E" , "\xcb" : "E" , "\xe8" : "e" , "\xe9" : "e" , "\xea" : "e" , "\xeb" : "e" , "\xcc" : "I" , "\xcd" : "I" , "\xce" : "I" , "\xcf" : "I" , "\xec" : "i" , "\xed" : "i" , "\xee" : "i" , "\xef" : "i" , "\xd1" : "N" , "\xf1" : "n" , "\xd2" : "O" , "\xd3" : "O" , "\xd4" : "O" , "\xd5" : "O" , "\xd6" : "O" , "\xd8" : "O" , "\xf2" : "o" , "\xf3" : "o" , "\xf4" : "o" , "\xf5" : "o" , "\xf6" : "o" , "\xf8" : "o" , "\xd9" : "U" , "\xda" : "U" , "\xdb" : "U" , "\xdc" : "U" , "\xf9" : "u" , "\xfa" : "u" , "\xfb" : "u" , "\xfc" : "u" , "\xdd" : "Y" , "\xfd" : "y" , "\xff" : "y" , "\xc6" : "Ae" , "\xe6" : "ae" , "\xde" : "Th" , "\xfe" : "th" , "\xdf" : "ss" } , Nt = { "&" : "&" , "<" : "<" , ">" : ">" , '"' : """ , "'" : "'" , "`" : "`" } , Ut = { "&" : "&" , "<" : "<" , ">" : ">" , """ : '"' , "'" : "'" , "`" : "`" } , Ft = { "function" : true , object : true } , Lt = { "\\" : "\\" , "'" : "'" , "\n" : "n" , "\r" : "r" , "\u2028" : "u2028" , "\u2029" : "u2029" } , $t = Ft [ typeof window ] && window !== ( this && this . window ) ? window : this , Bt = Ft [ typeof exports ] && exports && ! exports . nodeType && exports , Ft = Ft [ typeof module ] && module && ! module . nodeType && module , zt = Bt && Ft && typeof global == "object" && global ;
! zt || zt . global !== zt && zt . window !== zt && zt . self !== zt || ( $t = zt ) ; var zt = Ft && Ft . exports === Bt && Bt , Dt = m ( ) ; typeof define == "function" && typeof define . amd == "object" && define . amd ? ( $t . _ = Dt , define ( function ( ) { return Dt } ) ) : Bt && Ft ? zt ? ( Ft . exports = Dt ) . _ = Dt : Bt . _ = Dt : $t . _ = Dt } ) . call ( this ) ;
! function ( ) { function n ( n , t ) { return t > n ? - 1 : n > t ? 1 : n >= t ? 0 : 0 / 0 } function t ( n ) { return null === n ? 0 / 0 : + n } function e ( n ) { return ! isNaN ( n ) } function r ( n ) { return { left : function ( t , e , r , u ) { for ( arguments . length < 3 && ( r = 0 ) , arguments . length < 4 && ( u = t . length ) ; u > r ; ) { var i = r + u >>> 1 ; n ( t [ i ] , e ) < 0 ? r = i + 1 : u = i } return r } , right : function ( t , e , r , u ) { for ( arguments . length < 3 && ( r = 0 ) , arguments . length < 4 && ( u = t . length ) ; u > r ; ) { var i = r + u >>> 1 ; n ( t [ i ] , e ) > 0 ? u = i : r = i + 1 } return r } } } function u ( n ) { return n . length } function i ( n ) { for ( var t = 1 ; n * t % 1 ; ) t *= 10 ; return t } function o ( n , t ) { for ( var e in t ) Object . defineProperty ( n . prototype , e , { value : t [ e ] , enumerable : ! 1 } ) } function a ( ) { this . _ = Object . create ( null ) } function c ( n ) { return ( n += "" ) === da || n [ 0 ] === ma ? ma + n : n } function l ( n ) { return ( n += "" ) [ 0 ] === ma ? n . slice ( 1 ) : n } function s ( n ) { return c ( n ) in this . _ } function f ( n ) { return ( n = c ( n ) ) in this . _ && delete this . _ [ n ] } function h ( ) { var n = [ ] ; for ( var t in this . _ ) n . push ( l ( t ) ) ; return n } function g ( ) { var n = 0 ; for ( var t in this . _ ) ++ n ; return n } function p ( ) { for ( var n in this . _ ) return ! 1 ; return ! 0 } function v ( ) { this . _ = Object . create ( null ) } function d ( n , t , e ) { return function ( ) { var r = e . apply ( t , arguments ) ; return r === t ? n : r } } function m ( n , t ) { if ( t in n ) return t ; t = t . charAt ( 0 ) . toUpperCase ( ) + t . slice ( 1 ) ; for ( var e = 0 , r = ya . length ; r > e ; ++ e ) { var u = ya [ e ] + t ; if ( u in n ) return u } } function y ( ) { } function M ( ) { } function x ( n ) { function t ( ) { for ( var t , r = e , u = - 1 , i = r . length ; ++ u < i ; ) ( t = r [ u ] . on ) && t . apply ( this , arguments ) ; return n } var e = [ ] , r = new a ; return t . on = function ( t , u ) { var i , o = r . get ( t ) ; return arguments . length < 2 ? o && o . on : ( o && ( o . on = null , e = e . slice ( 0 , i = e . indexOf ( o ) ) . concat ( e . slice ( i + 1 ) ) , r . remove ( t ) ) , u && e . push ( r . set ( t , { on : u } ) ) , n ) } , t } function b ( ) { ta . event . preventDefault ( ) } function _ ( ) { for ( var n , t = ta . event ; n = t . sourceEvent ; ) t = n ; return t } function w ( n ) { for ( var t = new M , e = 0 , r = arguments . length ; ++ e < r ; ) t [ arguments [ e ] ] = x ( t ) ; return t . of = function ( e , r ) { return function ( u ) { try { var i = u . sourceEvent = ta . event ; u . target = n , ta . event = u , t [ u . type ] . apply ( e , r ) } finally { ta . event = i } } } , t } function S ( n ) { return xa ( n , ka ) , n } function k ( n ) { return "function" == typeof n ? n : function ( ) { return ba ( n , this ) } } function E ( n ) { return "function" == typeof n ? n : function ( ) { return _a ( n , this ) } } function A ( n , t ) { function e ( ) { this . removeAttribute ( n ) } function r ( ) { this . removeAttributeNS ( n . space , n . local ) } function u ( ) { this . setAttribute ( n , t ) } function i ( ) { this . setAttributeNS ( n . space , n . local , t ) } function o ( ) { var e = t . apply ( this , arguments ) ; null == e ? this . removeAttribute ( n ) : this . setAttribute ( n , e ) } function a ( ) { var e = t . apply ( this , arguments ) ; null == e ? this . removeAttributeNS ( n . space , n . local ) : this . setAttributeNS ( n . space , n . local , e ) } return n = ta . ns . qualify ( n ) , null == t ? n . local ? r : e : "function" == typeof t ? n . local ? a : o : n . local ? i : u } function N ( n ) { return n . trim ( ) . replace ( /\s+/g , " " ) } function C ( n ) { return new RegExp ( "(?:^|\\s+)" + ta . requote ( n ) + "(?:\\s+|$)" , "g" ) } function z ( n ) { return ( n + "" ) . trim ( ) . split ( /^|\s+/ ) } function q ( n , t ) { function e ( ) { for ( var e = - 1 ; ++ e < u ; ) n [ e ] ( this , t ) } function r ( ) { for ( var e = - 1 , r = t . apply ( this , arguments ) ; ++ e < u ; ) n [ e ] ( this , r ) } n = z ( n ) . map ( L ) ; var u = n . length ; return "function" == typeof t ? r : e } function L ( n ) { var t = C ( n ) ; return function ( e , r ) { if ( u = e . classList ) return r ? u . add ( n ) : u . remove ( n ) ; var u = e . getAttribute ( "class" ) || "" ; r ? ( t . lastIndex = 0 , t . test ( u ) || e . setAttribute ( "class" , N ( u + " " + n ) ) ) : e . setAttribute ( "class" , N ( u . replace ( t , " " ) ) ) } } function T ( n , t , e ) { function r ( ) { this . style . removeProperty ( n ) } function u ( ) { this . style . setProperty ( n , t , e ) } function i ( ) { var r = t . apply ( this , arguments ) ; null == r ? this . style . removeProperty ( n ) : this . style . setProperty ( n , r , e ) } return null == t ? r : "function" == typeof t ? i : u } function R ( n , t ) { function e ( ) { delete this [ n ] } function r ( ) { this [ n ] = t } function u ( ) { var e = t . apply ( this , arguments ) ; null == e ? delete this [ n ] : this [ n ] = e } return null == t ? e : "function" == typeof t ? u : r } function D ( n ) { return "function" == typeof n ? n : ( n = ta . ns . qualify ( n ) ) . local ? function ( ) { return this . ownerDocument . createElementNS ( n . space , n . local ) } : function ( ) { return this . ownerDocument . createElementNS ( this . namespaceURI , n ) } } function P ( ) { var n = this . parentNode ; n && n . removeChild ( this ) } function U ( n ) { return { _ _data _ _ : n } } function j ( n ) { return function ( ) { return Sa ( this , n ) } } function F ( t ) { return arguments . length || ( t = n ) , function ( n , e ) { return n &&
( L * L / x > i || va ( ( y * z + M * q ) / x - . 5 ) > . 3 || o > a * g + c * p + l * v ) && ( u ( t , e , r , a , c , l , N , C , E , b /= S , _ /= S , w , d , m ) , m . point ( N , C ) , u ( N , C , E , b , _ , w , s , f , h , g , p , v , d , m ) ) } } var i = . 5 , o = Math . cos ( 30 * Fa ) , a = 16 ; return t . precision = function ( n ) { return arguments . length ? ( a = ( i = n * n ) > 0 && 16 , t ) : Math . sqrt ( i ) } , t } function tr ( n ) { var t = nr ( function ( t , e ) { return n ( [ t * Ha , e * Ha ] ) } ) ; return function ( n ) { return or ( t ( n ) ) } } function er ( n ) { this . stream = n } function rr ( n , t ) { return { point : t , sphere : function ( ) { n . sphere ( ) } , lineStart : function ( ) { n . lineStart ( ) } , lineEnd : function ( ) { n . lineEnd ( ) } , polygonStart : function ( ) { n . polygonStart ( ) } , polygonEnd : function ( ) { n . polygonEnd ( ) } } } function ur ( n ) { return ir ( function ( ) { return n } ) ( ) } function ir ( n ) { function t ( n ) { return n = a ( n [ 0 ] * Fa , n [ 1 ] * Fa ) , [ n [ 0 ] * h + c , l - n [ 1 ] * h ] } function e ( n ) { return n = a . invert ( ( n [ 0 ] - c ) / h , ( l - n [ 1 ] ) / h ) , n && [ n [ 0 ] * Ha , n [ 1 ] * Ha ] } function r ( ) { a = Ae ( o = lr ( m , y , M ) , i ) ; var n = i ( v , d ) ; return c = g - n [ 0 ] * h , l = p + n [ 1 ] * h , u ( ) } function u ( ) { return s && ( s . valid = ! 1 , s = null ) , t } var i , o , a , c , l , s , f = nr ( function ( n , t ) { return n = i ( n , t ) , [ n [ 0 ] * h + c , l - n [ 1 ] * h ] } ) , h = 150 , g = 480 , p = 250 , v = 0 , d = 0 , m = 0 , y = 0 , M = 0 , x = Pc , b = Et , _ = null , w = null ; return t . stream = function ( n ) { return s && ( s . valid = ! 1 ) , s = or ( x ( o , f ( b ( n ) ) ) ) , s . valid = ! 0 , s } , t . clipAngle = function ( n ) { return arguments . length ? ( x = null == n ? ( _ = n , Pc ) : He ( ( _ = + n ) * Fa ) , u ( ) ) : _ } , t . clipExtent = function ( n ) { return arguments . length ? ( w = n , b = n ? Ye ( n [ 0 ] [ 0 ] , n [ 0 ] [ 1 ] , n [ 1 ] [ 0 ] , n [ 1 ] [ 1 ] ) : Et , u ( ) ) : w } , t . scale = function ( n ) { return arguments . length ? ( h = + n , r ( ) ) : h } , t . translate = function ( n ) { return arguments . length ? ( g = + n [ 0 ] , p = + n [ 1 ] , r ( ) ) : [ g , p ] } , t . center = function ( n ) { return arguments . length ? ( v = n [ 0 ] % 360 * Fa , d = n [ 1 ] % 360 * Fa , r ( ) ) : [ v * Ha , d * Ha ] } , t . rotate = function ( n ) { return arguments . length ? ( m = n [ 0 ] % 360 * Fa , y = n [ 1 ] % 360 * Fa , M = n . length > 2 ? n [ 2 ] % 360 * Fa : 0 , r ( ) ) : [ m * Ha , y * Ha , M * Ha ] } , ta . rebind ( t , f , "precision" ) , function ( ) { return i = n . apply ( this , arguments ) , t . invert = i . invert && e , r ( ) } } function or ( n ) { return rr ( n , function ( t , e ) { n . point ( t * Fa , e * Fa ) } ) } function ar ( n , t ) { return [ n , t ] } function cr ( n , t ) { return [ n > Da ? n - Pa : - Da > n ? n + Pa : n , t ] } function lr ( n , t , e ) { return n ? t || e ? Ae ( fr ( n ) , hr ( t , e ) ) : fr ( n ) : t || e ? hr ( t , e ) : cr } function sr ( n ) { return function ( t , e ) { return t += n , [ t > Da ? t - Pa : - Da > t ? t + Pa : t , e ] } } function fr ( n ) { var t = sr ( n ) ; return t . invert = sr ( - n ) , t } function hr ( n , t ) { function e ( n , t ) { var e = Math . cos ( t ) , a = Math . cos ( n ) * e , c = Math . sin ( n ) * e , l = Math . sin ( t ) , s = l * r + a * u ; return [ Math . atan2 ( c * i - s * o , a * r - l * u ) , nt ( s * i + c * o ) ] } var r = Math . cos ( n ) , u = Math . sin ( n ) , i = Math . cos ( t ) , o = Math . sin ( t ) ; return e . invert = function ( n , t ) { var e = Math . cos ( t ) , a = Math . cos ( n ) * e , c = Math . sin ( n ) * e , l = Math . sin ( t ) , s = l * i - c * o ; return [ Math . atan2 ( c * i + l * o , a * r + s * u ) , nt ( s * r - a * u ) ] } , e } function gr ( n , t ) { var e = Math . cos ( n ) , r = Math . sin ( n ) ; return function ( u , i , o , a ) { var c = o * t ; null != u ? ( u = pr ( e , u ) , i = pr ( e , i ) , ( o > 0 ? i > u : u > i ) && ( u += o * Pa ) ) : ( u = n + o * Pa , i = n - . 5 * c ) ; for ( var l , s = u ; o > 0 ? s > i : i > s ; s -= c ) a . point ( ( l = xe ( [ e , - r * Math . cos ( s ) , - r * Math . sin ( s ) ] ) ) [ 0 ] , l [ 1 ] ) } } function pr ( n , t ) { var e = pe ( t ) ; e [ 0 ] -= n , Me ( e ) ; var r = Q ( - e [ 1 ] ) ; return ( ( - e [ 2 ] < 0 ? - r : r ) + 2 * Math . PI - Ta ) % ( 2 * Math . PI ) } function vr ( n , t , e ) { var r = ta . range ( n , t - Ta , e ) . concat ( t ) ; return function ( n ) { return r . map ( function ( t ) { return [ n , t ] } ) } } function dr ( n , t , e ) { var r = ta . range ( n , t - Ta , e ) . concat ( t ) ; return function ( n ) { return r . map ( function ( t ) { return [ t , n ] } ) } } function mr ( n ) { return n . source } function yr ( n ) { return n . target } function Mr ( n , t , e , r ) { var u = Math . cos ( t ) , i = Math . sin ( t ) , o = Math . cos ( r ) , a = Math . sin ( r ) , c = u * Math . cos ( n ) , l = u * Math . sin ( n ) , s = o * Math . cos ( e ) , f = o * Math . sin ( e ) , h = 2 * Math . asin ( Math . sqrt ( ut ( r - t ) + u * o * ut ( e - n ) ) ) , g = 1 / Math . sin ( h ) , p = h ? function ( n ) { var t = Math . sin ( n *= h ) * g , e = Math . sin ( h - n ) * g , r = e * c + t * s , u = e * l + t * f , o = e * i + t * a ; return [ Math . atan2 ( u , r ) * Ha , Math . atan2 ( o , Math . sqrt ( r * r + u * u ) ) * Ha ] } : function ( ) { return [ n * Ha , t * Ha ] } ; return p . distance = h , p } function xr ( ) { function n ( n , u ) { var i = Math . sin ( u *= Fa ) , o = Math . cos ( u ) , a = va ( ( n *= Fa ) - t ) , c = Math . cos ( a ) ; $c += Math . atan2 ( Math . sqrt ( ( a = o * Math . sin ( a ) ) * a + ( a = r * i - e * o * c ) * a ) , e * i + r * o * c ) , t = n , e = i , r = o } var t , e , r ; Bc . point = function ( u , i ) { t = u * Fa , e = Math . sin ( i *= Fa ) , r = Math . cos ( i ) , Bc . point = n } , Bc . lineEnd = function ( ) { Bc . point = Bc . lineEnd = y } } function br ( n , t ) { function e ( t , e ) { var r = Math . cos ( t ) , u = Math . cos ( e ) , i = n ( r * u ) ; return [ i * u * Math . sin ( t ) , i * Math . sin ( e ) ] } return e . invert = function ( n , e ) { var r = Math . sqrt ( n * n + e * e ) , u = t ( r ) , i = Math . sin ( u ) , o = Math . cos ( u ) ; return [ Math . atan2 ( n * i , r * o ) , Math . asi
} , t . tension = function ( n ) { return arguments . length ? ( f = n , t ) : f } , t } function Po ( n ) { return n . radius } function Uo ( n ) { return [ n . x , n . y ] } function jo ( n ) { return function ( ) { var t = n . apply ( this , arguments ) , e = t [ 0 ] , r = t [ 1 ] - ja ; return [ e * Math . cos ( r ) , e * Math . sin ( r ) ] } } function Fo ( ) { return 64 } function Ho ( ) { return "circle" } function Oo ( n ) { var t = Math . sqrt ( n / Da ) ; return "M0," + t + "A" + t + "," + t + " 0 1,1 0," + - t + "A" + t + "," + t + " 0 1,1 0," + t + "Z" } function Yo ( n ) { return function ( ) { var t , e ; ( t = this [ n ] ) && ( e = t [ t . active ] ) && ( -- t . count ? delete t [ t . active ] : delete this [ n ] , t . active += . 5 , e . event && e . event . interrupt . call ( this , this . _ _data _ _ , e . index ) ) } } function Io ( n , t , e ) { return xa ( n , Hl ) , n . namespace = t , n . id = e , n } function Zo ( n , t , e , r ) { var u = n . id , i = n . namespace ; return H ( n , "function" == typeof e ? function ( n , o , a ) { n [ i ] [ u ] . tween . set ( t , r ( e . call ( n , n . _ _data _ _ , o , a ) ) ) } : ( e = r ( e ) , function ( n ) { n [ i ] [ u ] . tween . set ( t , e ) } ) ) } function Vo ( n ) { return null == n && ( n = "" ) , function ( ) { this . textContent = n } } function Xo ( n ) { return null == n ? "__transition__" : "__transition_" + n + "__" } function $o ( n , t , e , r , u ) { var i = n [ e ] || ( n [ e ] = { active : 0 , count : 0 } ) , o = i [ r ] ; if ( ! o ) { var c = u . time ; o = i [ r ] = { tween : new a , time : c , delay : u . delay , duration : u . duration , ease : u . ease , index : t } , u = null , ++ i . count , ta . timer ( function ( u ) { function a ( e ) { if ( i . active > r ) return s ( ) ; var u = i [ i . active ] ; u && ( -- i . count , delete i [ i . active ] , u . event && u . event . interrupt . call ( n , n . _ _data _ _ , u . index ) ) , i . active = r , o . event && o . event . start . call ( n , n . _ _data _ _ , t ) , o . tween . forEach ( function ( e , r ) { ( r = r . call ( n , n . _ _data _ _ , t ) ) && v . push ( r ) } ) , h = o . ease , f = o . duration , ta . timer ( function ( ) { return p . c = l ( e || 1 ) ? Ne : l , 1 } , 0 , c ) } function l ( e ) { if ( i . active !== r ) return 1 ; for ( var u = e / f , a = h ( u ) , c = v . length ; c > 0 ; ) v [ -- c ] . call ( n , a ) ; return u >= 1 ? ( o . event && o . event . end . call ( n , n . _ _data _ _ , t ) , s ( ) ) : void 0 } function s ( ) { return -- i . count ? delete i [ r ] : delete n [ e ] , 1 } var f , h , g = o . delay , p = oc , v = [ ] ; return p . t = g + c , u >= g ? a ( u - g ) : ( p . c = a , void 0 ) } , 0 , c ) } } function Bo ( n , t , e ) { n . attr ( "transform" , function ( n ) { var r = t ( n ) ; return "translate(" + ( isFinite ( r ) ? r : e ( n ) ) + ",0)" } ) } function Wo ( n , t , e ) { n . attr ( "transform" , function ( n ) { var r = t ( n ) ; return "translate(0," + ( isFinite ( r ) ? r : e ( n ) ) + ")" } ) } function Jo ( n ) { return n . toISOString ( ) } function Go ( n , t , e ) { function r ( t ) { return n ( t ) } function u ( n , e ) { var r = n [ 1 ] - n [ 0 ] , u = r / e , i = ta . bisect ( Wl , u ) ; return i == Wl . length ? [ t . year , Vi ( n . map ( function ( n ) { return n / 31536e6 } ) , e ) [ 2 ] ] : i ? t [ u / Wl [ i - 1 ] < Wl [ i ] / u ? i - 1 : i ] : [ Kl , Vi ( n , e ) [ 2 ] ] } return r . invert = function ( t ) { return Ko ( n . invert ( t ) ) } , r . domain = function ( t ) { return arguments . length ? ( n . domain ( t ) , r ) : n . domain ( ) . map ( Ko ) } , r . nice = function ( n , t ) { function e ( e ) { return ! isNaN ( e ) && ! n . range ( e , Ko ( + e + 1 ) , t ) . length } var i = r . domain ( ) , o = Pi ( i ) , a = null == n ? u ( o , 10 ) : "number" == typeof n && u ( o , n ) ; return a && ( n = a [ 0 ] , t = a [ 1 ] ) , r . domain ( Fi ( i , t > 1 ? { floor : function ( t ) { for ( ; e ( t = n . floor ( t ) ) ; ) t = Ko ( t - 1 ) ; return t } , ceil : function ( t ) { for ( ; e ( t = n . ceil ( t ) ) ; ) t = Ko ( + t + 1 ) ; return t } } : n ) ) } , r . ticks = function ( n , t ) { var e = Pi ( r . domain ( ) ) , i = null == n ? u ( e , 10 ) : "number" == typeof n ? u ( e , n ) : ! n . range && [ { range : n } , t ] ; return i && ( n = i [ 0 ] , t = i [ 1 ] ) , n . range ( e [ 0 ] , Ko ( + e [ 1 ] + 1 ) , 1 > t ? 1 : t ) } , r . tickFormat = function ( ) { return e } , r . copy = function ( ) { return Go ( n . copy ( ) , t , e ) } , Ii ( r , n ) } function Ko ( n ) { return new Date ( n ) } function Qo ( n ) { return JSON . parse ( n . responseText ) } function na ( n ) { var t = ua . createRange ( ) ; return t . selectNode ( ua . body ) , t . createContextualFragment ( n . responseText ) } var ta = { version : "3.5.3" } ; Date . now || ( Date . now = function ( ) { return + new Date } ) ; var ea = [ ] . slice , ra = function ( n ) { return ea . call ( n ) } , ua = document , ia = ua . documentElement , oa = window ; try { ra ( ia . childNodes ) [ 0 ] . nodeType } catch ( aa ) { ra = function ( n ) { for ( var t = n . length , e = new Array ( t ) ; t -- ; ) e [ t ] = n [ t ] ; return e } } try { ua . createElement ( "div" ) . style . setProperty ( "opacity" , 0 , "" ) } catch ( ca ) { var la = oa . Element . prototype , sa = la . setAttribute , fa = la . setAttributeNS , ha = oa . CSSStyleDeclaration . prototype , ga = ha . setProperty ; la . setAttribute = function ( n , t ) { sa . call ( this , n , t + "" ) } , la . setAttributeNS = function ( n , t , e ) { fa . call ( this , n , t , e + "" ) } , ha . setProperty = function ( n , t , e ) { ga . call ( this , n , t + "" , e ) } } ta . ascending = n , ta . descending = function ( n , t ) { return n > t ? - 1 : t > n ? 1 : t >= n ? 0 : 0 / 0 } , ta . min = function ( n , t ) { var e , r , u = - 1 , i = n . length ; if ( 1 === arguments . length ) { for ( ; ++ u < i ; ) if ( null != ( r = n [ u ] ) && r >= r ) { e = r ; break } for ( ; ++ u < i ; ) null != ( r = n [ u ] ) && e > r && ( e = r ) } else { for ( ; ++ u <
} , LineString : function ( n , t ) { fe ( n . coordinates , t , 0 ) } , MultiLineString : function ( n , t ) { for ( var e = n . coordinates , r = - 1 , u = e . length ; ++ r < u ; ) fe ( e [ r ] , t , 0 ) } , Polygon : function ( n , t ) { he ( n . coordinates , t ) } , MultiPolygon : function ( n , t ) { for ( var e = n . coordinates , r = - 1 , u = e . length ; ++ r < u ; ) he ( e [ r ] , t ) } , GeometryCollection : function ( n , t ) { for ( var e = n . geometries , r = - 1 , u = e . length ; ++ r < u ; ) se ( e [ r ] , t ) } } ; ta . geo . area = function ( n ) { return bc = 0 , ta . geo . stream ( n , wc ) , bc } ; var bc , _c = new ce , wc = { sphere : function ( ) { bc += 4 * Da } , point : y , lineStart : y , lineEnd : y , polygonStart : function ( ) { _c . reset ( ) , wc . lineStart = ge } , polygonEnd : function ( ) { var n = 2 * _c ; bc += 0 > n ? 4 * Da + n : n , wc . lineStart = wc . lineEnd = wc . point = y } } ; ta . geo . bounds = function ( ) { function n ( n , t ) { M . push ( x = [ s = n , h = n ] ) , f > t && ( f = t ) , t > g && ( g = t ) } function t ( t , e ) { var r = pe ( [ t * Fa , e * Fa ] ) ; if ( m ) { var u = de ( m , r ) , i = [ u [ 1 ] , - u [ 0 ] , 0 ] , o = de ( i , u ) ; Me ( o ) , o = xe ( o ) ; var c = t - p , l = c > 0 ? 1 : - 1 , v = o [ 0 ] * Ha * l , d = va ( c ) > 180 ; if ( d ^ ( v > l * p && l * t > v ) ) { var y = o [ 1 ] * Ha ; y > g && ( g = y ) } else if ( v = ( v + 360 ) % 360 - 180 , d ^ ( v > l * p && l * t > v ) ) { var y = - o [ 1 ] * Ha ; f > y && ( f = y ) } else f > e && ( f = e ) , e > g && ( g = e ) ; d ? p > t ? a ( s , t ) > a ( s , h ) && ( h = t ) : a ( t , h ) > a ( s , h ) && ( s = t ) : h >= s ? ( s > t && ( s = t ) , t > h && ( h = t ) ) : t > p ? a ( s , t ) > a ( s , h ) && ( h = t ) : a ( t , h ) > a ( s , h ) && ( s = t ) } else n ( t , e ) ; m = r , p = t } function e ( ) { b . point = t } function r ( ) { x [ 0 ] = s , x [ 1 ] = h , b . point = n , m = null } function u ( n , e ) { if ( m ) { var r = n - p ; y += va ( r ) > 180 ? r + ( r > 0 ? 360 : - 360 ) : r } else v = n , d = e ; wc . point ( n , e ) , t ( n , e ) } function i ( ) { wc . lineStart ( ) } function o ( ) { u ( v , d ) , wc . lineEnd ( ) , va ( y ) > Ta && ( s = - ( h = 180 ) ) , x [ 0 ] = s , x [ 1 ] = h , m = null } function a ( n , t ) { return ( t -= n ) < 0 ? t + 360 : t } function c ( n , t ) { return n [ 0 ] - t [ 0 ] } function l ( n , t ) { return t [ 0 ] <= t [ 1 ] ? t [ 0 ] <= n && n <= t [ 1 ] : n < t [ 0 ] || t [ 1 ] < n } var s , f , h , g , p , v , d , m , y , M , x , b = { point : n , lineStart : e , lineEnd : r , polygonStart : function ( ) { b . point = u , b . lineStart = i , b . lineEnd = o , y = 0 , wc . polygonStart ( ) } , polygonEnd : function ( ) { wc . polygonEnd ( ) , b . point = n , b . lineStart = e , b . lineEnd = r , 0 > _c ? ( s = - ( h = 180 ) , f = - ( g = 90 ) ) : y > Ta ? g = 90 : - Ta > y && ( f = - 90 ) , x [ 0 ] = s , x [ 1 ] = h } } ; return function ( n ) { g = h = - ( s = f = 1 / 0 ) , M = [ ] , ta . geo . stream ( n , b ) ; var t = M . length ; if ( t ) { M . sort ( c ) ; for ( var e , r = 1 , u = M [ 0 ] , i = [ u ] ; t > r ; ++ r ) e = M [ r ] , l ( e [ 0 ] , u ) || l ( e [ 1 ] , u ) ? ( a ( u [ 0 ] , e [ 1 ] ) > a ( u [ 0 ] , u [ 1 ] ) && ( u [ 1 ] = e [ 1 ] ) , a ( e [ 0 ] , u [ 1 ] ) > a ( u [ 0 ] , u [ 1 ] ) && ( u [ 0 ] = e [ 0 ] ) ) : i . push ( u = e ) ; for ( var o , e , p = - 1 / 0 , t = i . length - 1 , r = 0 , u = i [ t ] ; t >= r ; u = e , ++ r ) e = i [ r ] , ( o = a ( u [ 1 ] , e [ 0 ] ) ) > p && ( p = o , s = e [ 0 ] , h = u [ 1 ] ) } return M = x = null , 1 / 0 === s || 1 / 0 === f ? [ [ 0 / 0 , 0 / 0 ] , [ 0 / 0 , 0 / 0 ] ] : [ [ s , f ] , [ h , g ] ] } } ( ) , ta . geo . centroid = function ( n ) { Sc = kc = Ec = Ac = Nc = Cc = zc = qc = Lc = Tc = Rc = 0 , ta . geo . stream ( n , Dc ) ; var t = Lc , e = Tc , r = Rc , u = t * t + e * e + r * r ; return Ra > u && ( t = Cc , e = zc , r = qc , Ta > kc && ( t = Ec , e = Ac , r = Nc ) , u = t * t + e * e + r * r , Ra > u ) ? [ 0 / 0 , 0 / 0 ] : [ Math . atan2 ( e , t ) * Ha , nt ( r / Math . sqrt ( u ) ) * Ha ] } ; var Sc , kc , Ec , Ac , Nc , Cc , zc , qc , Lc , Tc , Rc , Dc = { sphere : y , point : _e , lineStart : Se , lineEnd : ke , polygonStart : function ( ) { Dc . lineStart = Ee } , polygonEnd : function ( ) { Dc . lineStart = Se } } , Pc = Le ( Ne , Pe , je , [ - Da , - Da / 2 ] ) , Uc = 1e9 ; ta . geo . clipExtent = function ( ) { var n , t , e , r , u , i , o = { stream : function ( n ) { return u && ( u . valid = ! 1 ) , u = i ( n ) , u . valid = ! 0 , u } , extent : function ( a ) { return arguments . length ? ( i = Ye ( n = + a [ 0 ] [ 0 ] , t = + a [ 0 ] [ 1 ] , e = + a [ 1 ] [ 0 ] , r = + a [ 1 ] [ 1 ] ) , u && ( u . valid = ! 1 , u = null ) , o ) : [ [ n , t ] , [ e , r ] ] } } ; return o . extent ( [ [ 0 , 0 ] , [ 960 , 500 ] ] ) } , ( ta . geo . conicEqualArea = function ( ) { return Ie ( Ze ) } ) . raw = Ze , ta . geo . albers = function ( ) { return ta . geo . conicEqualArea ( ) . rotate ( [ 96 , 0 ] ) . center ( [ - . 6 , 38.7 ] ) . parallels ( [ 29.5 , 45.5 ] ) . scale ( 1070 ) } , ta . geo . albersUsa = function ( ) { function n ( n ) { var i = n [ 0 ] , o = n [ 1 ] ; return t = null , e ( i , o ) , t || ( r ( i , o ) , t ) || u ( i , o ) , t } var t , e , r , u , i = ta . geo . albers ( ) , o = ta . geo . conicEqualArea ( ) . rotate ( [ 154 , 0 ] ) . center ( [ - 2 , 58.5 ] ) . parallels ( [ 55 , 65 ] ) , a = ta . geo . conicEqualArea ( ) . rotate ( [ 157 , 0 ] ) . center ( [ - 3 , 19.9 ] ) . parallels ( [ 8 , 18 ] ) , c = { point : function ( n , e ) { t = [ n , e ] } } ; return n . invert = function ( n ) { var t = i . scale ( ) , e = i . translate ( ) , r = ( n [ 0 ] - e [ 0 ] ) / t , u = ( n [ 1 ] - e [ 1 ] ) / t ; return ( u >= . 12 && . 234 > u && r >= - . 425 && - . 214 > r ? o : u >= . 166 && . 234 > u && r >= - . 214 && - . 115 > r ? a : i ) . invert ( n ) } , n . stream = function ( n ) { var t = i . stream ( n ) , e = o . stream ( n ) , r = a . stream ( n ) ; return { point : function ( n , u ) { t . point ( n , u ) , e . point ( n , u ) , r . point ( n , u ) } , sphere : function ( ) { t . sphere ( ) , e . sphere ( ) , r . sphere ( ) } , lineStart : function ( ) { t . lineStart ( ) , e . lineStart ( ) , r . lineStart ( ) } , lineEnd : function ( ) { t . lineEnd ( ) , e . lineEnd ( ) , r . lineEnd ( ) } , polygonStart : function ( ) { t . polygonStart ( ) , e . polygonStart ( ) , r . polygonStart ( ) } , polygonEnd : function ( ) { t . poly
} , i . ratio = function ( n ) { return arguments . length ? ( p = n , i ) : p } , i . mode = function ( n ) { return arguments . length ? ( g = n + "" , i ) : g } , Gu ( i , a ) } , ta . random = { normal : function ( n , t ) { var e = arguments . length ; return 2 > e && ( t = 1 ) , 1 > e && ( n = 0 ) , function ( ) { var e , r , u ; do e = 2 * Math . random ( ) - 1 , r = 2 * Math . random ( ) - 1 , u = e * e + r * r ; while ( ! u || u > 1 ) ; return n + t * e * Math . sqrt ( - 2 * Math . log ( u ) / u ) } } , logNormal : function ( ) { var n = ta . random . normal . apply ( ta , arguments ) ; return function ( ) { return Math . exp ( n ( ) ) } } , bates : function ( n ) { var t = ta . random . irwinHall ( n ) ; return function ( ) { return t ( ) / n } } , irwinHall : function ( n ) { return function ( ) { for ( var t = 0 , e = 0 ; n > e ; e ++ ) t += Math . random ( ) ; return t } } } , ta . scale = { } ; var bl = { floor : Et , ceil : Et } ; ta . scale . linear = function ( ) { return Yi ( [ 0 , 1 ] , [ 0 , 1 ] , mu , ! 1 ) } ; var _l = { s : 1 , g : 1 , p : 1 , r : 1 , e : 1 } ; ta . scale . log = function ( ) { return Ji ( ta . scale . linear ( ) . domain ( [ 0 , 1 ] ) , 10 , ! 0 , [ 1 , 10 ] ) } ; var wl = ta . format ( ".0e" ) , Sl = { floor : function ( n ) { return - Math . ceil ( - n ) } , ceil : function ( n ) { return - Math . floor ( - n ) } } ; ta . scale . pow = function ( ) { return Gi ( ta . scale . linear ( ) , 1 , [ 0 , 1 ] ) } , ta . scale . sqrt = function ( ) { return ta . scale . pow ( ) . exponent ( . 5 ) } , ta . scale . ordinal = function ( ) { return Qi ( [ ] , { t : "range" , a : [ [ ] ] } ) } , ta . scale . category10 = function ( ) { return ta . scale . ordinal ( ) . range ( kl ) } , ta . scale . category20 = function ( ) { return ta . scale . ordinal ( ) . range ( El ) } , ta . scale . category20b = function ( ) { return ta . scale . ordinal ( ) . range ( Al ) } , ta . scale . category20c = function ( ) { return ta . scale . ordinal ( ) . range ( Nl ) } ; var kl = [ 2062260 , 16744206 , 2924588 , 14034728 , 9725885 , 9197131 , 14907330 , 8355711 , 12369186 , 1556175 ] . map ( yt ) , El = [ 2062260 , 11454440 , 16744206 , 16759672 , 2924588 , 10018698 , 14034728 , 16750742 , 9725885 , 12955861 , 9197131 , 12885140 , 14907330 , 16234194 , 8355711 , 13092807 , 12369186 , 14408589 , 1556175 , 10410725 ] . map ( yt ) , Al = [ 3750777 , 5395619 , 7040719 , 10264286 , 6519097 , 9216594 , 11915115 , 13556636 , 9202993 , 12426809 , 15186514 , 15190932 , 8666169 , 11356490 , 14049643 , 15177372 , 8077683 , 10834324 , 13528509 , 14589654 ] . map ( yt ) , Nl = [ 3244733 , 7057110 , 10406625 , 13032431 , 15095053 , 16616764 , 16625259 , 16634018 , 3253076 , 7652470 , 10607003 , 13101504 , 7695281 , 10394312 , 12369372 , 14342891 , 6513507 , 9868950 , 12434877 , 14277081 ] . map ( yt ) ; ta . scale . quantile = function ( ) { return no ( [ ] , [ ] ) } , ta . scale . quantize = function ( ) { return to ( 0 , 1 , [ 0 , 1 ] ) } , ta . scale . threshold = function ( ) { return eo ( [ . 5 ] , [ 0 , 1 ] ) } , ta . scale . identity = function ( ) { return ro ( [ 0 , 1 ] ) } , ta . svg = { } , ta . svg . arc = function ( ) { function n ( ) { var n = Math . max ( 0 , + e . apply ( this , arguments ) ) , l = Math . max ( 0 , + r . apply ( this , arguments ) ) , s = o . apply ( this , arguments ) - ja , f = a . apply ( this , arguments ) - ja , h = Math . abs ( f - s ) , g = s > f ? 0 : 1 ; if ( n > l && ( p = l , l = n , n = p ) , h >= Ua ) return t ( l , g ) + ( n ? t ( n , 1 - g ) : "" ) + "Z" ; var p , v , d , m , y , M , x , b , _ , w , S , k , E = 0 , A = 0 , N = [ ] ; if ( ( m = ( + c . apply ( this , arguments ) || 0 ) / 2 ) && ( d = i === Cl ? Math . sqrt ( n * n + l * l ) : + i . apply ( this , arguments ) , g || ( A *= - 1 ) , l && ( A = nt ( d / l * Math . sin ( m ) ) ) , n && ( E = nt ( d / n * Math . sin ( m ) ) ) ) , l ) { y = l * Math . cos ( s + A ) , M = l * Math . sin ( s + A ) , x = l * Math . cos ( f - A ) , b = l * Math . sin ( f - A ) ; var C = Math . abs ( f - s - 2 * A ) <= Da ? 0 : 1 ; if ( A && so ( y , M , x , b ) === g ^ C ) { var z = ( s + f ) / 2 ; y = l * Math . cos ( z ) , M = l * Math . sin ( z ) , x = b = null } } else y = M = 0 ; if ( n ) { _ = n * Math . cos ( f - E ) , w = n * Math . sin ( f - E ) , S = n * Math . cos ( s + E ) , k = n * Math . sin ( s + E ) ; var q = Math . abs ( s - f + 2 * E ) <= Da ? 0 : 1 ; if ( E && so ( _ , w , S , k ) === 1 - g ^ q ) { var L = ( s + f ) / 2 ; _ = n * Math . cos ( L ) , w = n * Math . sin ( L ) , S = k = null } } else _ = w = 0 ; if ( ( p = Math . min ( Math . abs ( l - n ) / 2 , + u . apply ( this , arguments ) ) ) > . 001 ) { v = l > n ^ g ? 0 : 1 ; var T = null == S ? [ _ , w ] : null == x ? [ y , M ] : Lr ( [ y , M ] , [ S , k ] , [ x , b ] , [ _ , w ] ) , R = y - T [ 0 ] , D = M - T [ 1 ] , P = x - T [ 0 ] , U = b - T [ 1 ] , j = 1 / Math . sin ( Math . acos ( ( R * P + D * U ) / ( Math . sqrt ( R * R + D * D ) * Math . sqrt ( P * P + U * U ) ) ) / 2 ) , F = Math . sqrt ( T [ 0 ] * T [ 0 ] + T [ 1 ] * T [ 1 ] ) ; if ( null != x ) { var H = Math . min ( p , ( l - F ) / ( j + 1 ) ) , O = fo ( null == S ? [ _ , w ] : [ S , k ] , [ y , M ] , l , H , g ) , Y = fo ( [ x , b ] , [ _ , w ] , l , H , g ) ; p === H ? N . push ( "M" , O [ 0 ] , "A" , H , "," , H , " 0 0," , v , " " , O [ 1 ] , "A" , l , "," , l , " 0 " , 1 - g ^ so ( O [ 1 ] [ 0 ] , O [ 1 ] [ 1 ] , Y [ 1 ] [ 0 ] , Y [ 1 ] [ 1 ] ) , "," , g , " " , Y [ 1 ] , "A" , H , "," , H , " 0 0," , v , " " , Y [ 0 ] ) : N . push ( "M" , O [ 0 ] , "A" , H , "," , H , " 0 1," , v , " " , Y [ 0 ] ) } else N . push ( "M" , y , "," , M ) ; if ( null != S ) { var I = Math . min ( p , ( n - F ) / ( j - 1 ) ) , Z = fo ( [ y , M ] , [ S , k ] , n , - I , g ) , V = fo ( [ _ , w ] , null == x ? [ y , M ] : [ x , b ] , n , - I , g ) ; p === I ? N . push ( "L" , V [ 0 ] , "A" , I , "," , I , " 0 0," , v , " " , V [ 1 ] , "A" , n , "," , n , " 0 " , g ^ so ( V [ 1 ] [ 0 ] , V [ 1 ] [ 1 ] , Z [ 1 ] [ 0 ] , Z [ 1 ] [ 1 ] ) , "," , 1 - g , " " , Z [ 1 ] , "A" , I , "," , I , " 0 0," , v , " " , Z [ 0 ] ) : N . push ( "L" , V [ 0 ] , "A" , I , "," , I , " 0 0," , v , " " , Z [ 0 ] ) } else N . push ( "L" , _ , "," , w ) } else N . push ( "M"
d3 . tip = function ( ) { function t ( t ) { v = d ( t ) , w = v . createSVGPoint ( ) , document . body . appendChild ( x ) } function e ( ) { return "n" } function n ( ) { return [ 0 , 0 ] } function r ( ) { return " " } function o ( ) { var t = y ( ) ; return { top : t . n . y - x . offsetHeight , left : t . n . x - x . offsetWidth / 2 } } function l ( ) { var t = y ( ) ; return { top : t . s . y , left : t . s . x - x . offsetWidth / 2 } } function s ( ) { var t = y ( ) ; return { top : t . e . y - x . offsetHeight / 2 , left : t . e . x } } function f ( ) { var t = y ( ) ; return { top : t . w . y - x . offsetHeight / 2 , left : t . w . x - x . offsetWidth } } function i ( ) { var t = y ( ) ; return { top : t . nw . y - x . offsetHeight , left : t . nw . x - x . offsetWidth } } function u ( ) { var t = y ( ) ; return { top : t . ne . y - x . offsetHeight , left : t . ne . x } } function a ( ) { var t = y ( ) ; return { top : t . sw . y , left : t . sw . x - x . offsetWidth } } function c ( ) { var t = y ( ) ; return { top : t . se . y , left : t . e . x } } function p ( ) { var t = d3 . select ( document . createElement ( "div" ) ) ; return t . style ( { position : "absolute" , opacity : 0 , pointerEvents : "none" , boxSizing : "border-box" } ) , t . node ( ) } function d ( t ) { return t = t . node ( ) , "svg" == t . tagName . toLowerCase ( ) ? t : t . ownerSVGElement } function y ( ) { var t = T || d3 . event . target , e = { } , n = t . getScreenCTM ( ) , r = t . getBBox ( ) , o = r . width , l = r . height , s = r . x , f = r . y , i = document . documentElement . scrollTop || document . body . scrollTop , u = document . documentElement . scrollLeft || document . body . scrollLeft ; return w . x = s + u , w . y = f + i , e . nw = w . matrixTransform ( n ) , w . x += o , e . ne = w . matrixTransform ( n ) , w . y += l , e . se = w . matrixTransform ( n ) , w . x -= o , e . sw = w . matrixTransform ( n ) , w . y -= l / 2 , e . w = w . matrixTransform ( n ) , w . x += o , e . e = w . matrixTransform ( n ) , w . x -= o / 2 , w . y -= l / 2 , e . n = w . matrixTransform ( n ) , w . y += l , e . s = w . matrixTransform ( n ) , e } var m = e , g = n , h = r , x = p ( ) , v = null , w = null , T = null ; t . show = function ( ) { var e = Array . prototype . slice . call ( arguments ) ; e [ e . length - 1 ] instanceof SVGElement && ( T = e . pop ( ) ) ; var n , r = h . apply ( this , e ) , o = g . apply ( this , e ) , l = m . apply ( this , e ) , s = d3 . select ( x ) , f = 0 ; for ( s . html ( r ) . style ( { opacity : 1 , "pointer-events" : "all" } ) ; f -- ; ) s . classed ( E [ f ] , ! 1 ) ; return n = b . get ( l ) . apply ( this ) , s . classed ( l , ! 0 ) . style ( { top : n . top + o [ 0 ] + "px" , left : n . left + o [ 1 ] + "px" } ) , t } , t . hide = function ( ) { return nodel = d3 . select ( x ) , nodel . style ( { opacity : 0 , "pointer-events" : "none" } ) , t } , t . attr = function ( e ) { if ( arguments . length < 2 && "string" == typeof e ) return d3 . select ( x ) . attr ( e ) ; var n = Array . prototype . slice . call ( arguments ) ; return d3 . selection . prototype . attr . apply ( d3 . select ( x ) , n ) , t } , t . style = function ( e ) { if ( arguments . length < 2 && "string" == typeof e ) return d3 . select ( x ) . style ( e ) ; var n = Array . prototype . slice . call ( arguments ) ; return d3 . selection . prototype . style . apply ( d3 . select ( x ) , n ) , t } , t . direction = function ( e ) { return arguments . length ? ( m = null == e ? e : d3 . functor ( e ) , t ) : m } , t . offset = function ( e ) { return arguments . length ? ( g = null == e ? e : d3 . functor ( e ) , t ) : g } , t . html = function ( e ) { return arguments . length ? ( h = null == e ? e : d3 . functor ( e ) , t ) : h } ; var b = d3 . map ( { n : o , s : l , e : s , w : f , nw : i , ne : u , sw : a , se : c } ) , E = b . keys ( ) ; return t } ;
! function ( ) { function t ( n , t ) { function r ( t ) { var r , e = n . arcs [ 0 > t ? ~ t : t ] , o = e [ 0 ] ; return n . transform ? ( r = [ 0 , 0 ] , e . forEach ( function ( n ) { r [ 0 ] += n [ 0 ] , r [ 1 ] += n [ 1 ] } ) ) : r = e [ e . length - 1 ] , 0 > t ? [ r , o ] : [ o , r ] } function e ( n , t ) { for ( var r in n ) { var e = n [ r ] ; delete t [ e . start ] , delete e . start , delete e . end , e . forEach ( function ( n ) { o [ 0 > n ? ~ n : n ] = 1 } ) , f . push ( e ) } } var o = { } , i = { } , u = { } , f = [ ] , c = - 1 ; return t . forEach ( function ( r , e ) { var o , i = n . arcs [ 0 > r ? ~ r : r ] ; i . length < 3 && ! i [ 1 ] [ 0 ] && ! i [ 1 ] [ 1 ] && ( o = t [ ++ c ] , t [ c ] = r , t [ e ] = o ) } ) , t . forEach ( function ( n ) { var t , e , o = r ( n ) , f = o [ 0 ] , c = o [ 1 ] ; if ( t = u [ f ] ) if ( delete u [ t . end ] , t . push ( n ) , t . end = c , e = i [ c ] ) { delete i [ e . start ] ; var a = e === t ? t : t . concat ( e ) ; i [ a . start = t . start ] = u [ a . end = e . end ] = a } else i [ t . start ] = u [ t . end ] = t ; else if ( t = i [ c ] ) if ( delete i [ t . start ] , t . unshift ( n ) , t . start = f , e = u [ f ] ) { delete u [ e . end ] ; var s = e === t ? t : e . concat ( t ) ; i [ s . start = e . start ] = u [ s . end = t . end ] = s } else i [ t . start ] = u [ t . end ] = t ; else t = [ n ] , i [ t . start = f ] = u [ t . end = c ] = t } ) , e ( u , i ) , e ( i , u ) , t . forEach ( function ( n ) { o [ 0 > n ? ~ n : n ] || f . push ( [ n ] ) } ) , f } function r ( n , r , e ) { function o ( n ) { var t = 0 > n ? ~ n : n ; ( s [ t ] || ( s [ t ] = [ ] ) ) . push ( { i : n , g : a } ) } function i ( n ) { n . forEach ( o ) } function u ( n ) { n . forEach ( i ) } function f ( n ) { "GeometryCollection" === n . type ? n . geometries . forEach ( f ) : n . type in l && ( a = n , l [ n . type ] ( n . arcs ) ) } var c = [ ] ; if ( arguments . length > 1 ) { var a , s = [ ] , l = { LineString : i , MultiLineString : u , Polygon : u , MultiPolygon : function ( n ) { n . forEach ( u ) } } ; f ( r ) , s . forEach ( arguments . length < 3 ? function ( n ) { c . push ( n [ 0 ] . i ) } : function ( n ) { e ( n [ 0 ] . g , n [ n . length - 1 ] . g ) && c . push ( n [ 0 ] . i ) } ) } else for ( var h = 0 , p = n . arcs . length ; p > h ; ++ h ) c . push ( h ) ; return { type : "MultiLineString" , arcs : t ( n , c ) } } function e ( r , e ) { function o ( n ) { n . forEach ( function ( t ) { t . forEach ( function ( t ) { ( f [ t = 0 > t ? ~ t : t ] || ( f [ t ] = [ ] ) ) . push ( n ) } ) } ) , c . push ( n ) } function i ( n ) { return l ( u ( r , { type : "Polygon" , arcs : [ n ] } ) . coordinates [ 0 ] ) > 0 } var f = { } , c = [ ] , a = [ ] ; return e . forEach ( function ( n ) { "Polygon" === n . type ? o ( n . arcs ) : "MultiPolygon" === n . type && n . arcs . forEach ( o ) } ) , c . forEach ( function ( n ) { if ( ! n . _ ) { var t = [ ] , r = [ n ] ; for ( n . _ = 1 , a . push ( t ) ; n = r . pop ( ) ; ) t . push ( n ) , n . forEach ( function ( n ) { n . forEach ( function ( n ) { f [ 0 > n ? ~ n : n ] . forEach ( function ( n ) { n . _ || ( n . _ = 1 , r . push ( n ) ) } ) } ) } ) } } ) , c . forEach ( function ( n ) { delete n . _ } ) , { type : "MultiPolygon" , arcs : a . map ( function ( e ) { var o = [ ] ; if ( e . forEach ( function ( n ) { n . forEach ( function ( n ) { n . forEach ( function ( n ) { f [ 0 > n ? ~ n : n ] . length < 2 && o . push ( n ) } ) } ) } ) , o = t ( r , o ) , ( n = o . length ) > 1 ) for ( var u , c = i ( e [ 0 ] [ 0 ] ) , a = 0 ; n > a ; ++ a ) if ( c === i ( o [ a ] ) ) { u = o [ 0 ] , o [ 0 ] = o [ a ] , o [ a ] = u ; break } return o } ) } } function o ( n , t ) { return "GeometryCollection" === t . type ? { type : "FeatureCollection" , features : t . geometries . map ( function ( t ) { return i ( n , t ) } ) } : i ( n , t ) } function i ( n , t ) { var r = { type : "Feature" , id : t . id , properties : t . properties || { } , geometry : u ( n , t ) } ; return null == t . id && delete r . id , r } function u ( n , t ) { function r ( n , t ) { t . length && t . pop ( ) ; for ( var r , e = s [ 0 > n ? ~ n : n ] , o = 0 , i = e . length ; i > o ; ++ o ) t . push ( r = e [ o ] . slice ( ) ) , a ( r , o ) ; 0 > n && f ( t , i ) } function e ( n ) { return n = n . slice ( ) , a ( n , 0 ) , n } function o ( n ) { for ( var t = [ ] , e = 0 , o = n . length ; o > e ; ++ e ) r ( n [ e ] , t ) ; return t . length < 2 && t . push ( t [ 0 ] . slice ( ) ) , t } function i ( n ) { for ( var t = o ( n ) ; t . length < 4 ; ) t . push ( t [ 0 ] . slice ( ) ) ; return t } function u ( n ) { return n . map ( i ) } function c ( n ) { var t = n . type ; return "GeometryCollection" === t ? { type : t , geometries : n . geometries . map ( c ) } : t in l ? { type : t , coordinates : l [ t ] ( n ) } : null } var a = v ( n . transform ) , s = n . arcs , l = { Point : function ( n ) { return e ( n . coordinates ) } , MultiPoint : function ( n ) { return n . coordinates . map ( e ) } , LineString : function ( n ) { return o ( n . arcs ) } , MultiLineString : function ( n ) { return n . arcs . map ( o ) } , Polygon : function ( n ) { return u ( n . arcs ) } , MultiPolygon : function ( n ) { return n . arcs . map ( u ) } } ; return c ( t ) } function f ( n , t ) { for ( var r , e = n . length , o = e - t ; o < -- e ; ) r = n [ o ] , n [ o ++ ] = n [ e ] , n [ e ] = r } function c ( n , t ) { for ( var r = 0 , e = n . length ; e > r ; ) { var o = r + e >>> 1 ; n [ o ] < t ? r = o + 1 : e = o } return r } function a ( n ) { function t ( n , t ) { n . forEach ( function ( n ) { 0 > n && ( n = ~ n ) ; var r = o [ n ] ; r ? r . push ( t ) : o [ n ] = [ t ] } ) } function r ( n , r ) { n . forEach ( function ( n ) { t ( n , r ) } ) } function e ( n , t ) { "GeometryCollection" === n . type ? n . geometries . forEach ( function ( n ) { e ( n , t ) } ) : n . type in u && u [ n . type ] ( n . arcs , t ) } var o = { } , i = n . map ( function ( ) { return [ ] } ) , u = { LineString : t , MultiLineString : r , Polygon : r , MultiPolygon : function ( n , t ) { n . forEach ( function ( n ) { r ( n , t ) } ) } } ; n . forEach ( e ) ; for ( var f in o ) for ( var a = o [ f ] , s = a . length , l = 0 ; s > l ; ++ l )
! function ( ) { function a ( a , b , c ) { return this . svg = m . select ( a ) . append ( "svg" ) . attr ( "width" , c || a . offsetWidth ) . attr ( "data-width" , c || a . offsetWidth ) . attr ( "class" , "datamap" ) . attr ( "height" , b || a . offsetHeight ) . style ( "overflow" , "hidden" ) , this . options . responsive && ( m . select ( this . options . element ) . style ( { position : "relative" , "padding-bottom" : "60%" } ) , m . select ( this . options . element ) . select ( "svg" ) . style ( { position : "absolute" , width : "100%" , height : "100%" } ) , m . select ( this . options . element ) . select ( "svg" ) . select ( "g" ) . selectAll ( "path" ) . style ( "vector-effect" , "non-scaling-stroke" ) ) , this . svg } function b ( a , b ) { var c , d , e = b . width || a . offsetWidth , f = b . height || a . offsetHeight , g = this . svg ; return b && "undefined" == typeof b . scope && ( b . scope = "world" ) , "usa" === b . scope ? c = m . geo . albersUsa ( ) . scale ( e ) . translate ( [ e / 2 , f / 2 ] ) : "world" === b . scope && ( c = m . geo [ b . projection ] ( ) . scale ( ( e + 1 ) / 2 / Math . PI ) . translate ( [ e / 2 , f / ( "mercator" === b . projection ? 1.45 : 1.8 ) ] ) ) , "orthographic" === b . projection && ( g . append ( "defs" ) . append ( "path" ) . datum ( { type : "Sphere" } ) . attr ( "id" , "sphere" ) . attr ( "d" , d ) , g . append ( "use" ) . attr ( "class" , "stroke" ) . attr ( "xlink:href" , "#sphere" ) , g . append ( "use" ) . attr ( "class" , "fill" ) . attr ( "xlink:href" , "#sphere" ) , c . scale ( 250 ) . clipAngle ( 90 ) . rotate ( b . projectionConfig . rotation ) ) , d = m . geo . path ( ) . projection ( c ) , { path : d , projection : c } } function c ( ) { m . select ( ".datamaps-style-block" ) . empty ( ) && m . select ( "head" ) . append ( "style" ) . attr ( "class" , "datamaps-style-block" ) . html ( '.datamap path.datamaps-graticule { fill: none; stroke: #777; stroke-width: 0.5px; stroke-opacity: .5; pointer-events: none; } .datamap .labels {pointer-events: none;} .datamap path {stroke: #FFFFFF; stroke-width: 1px;} .datamaps-legend dt, .datamaps-legend dd { float: left; margin: 0 3px 0 0;} .datamaps-legend dd {width: 20px; margin-right: 6px; border-radius: 3px;} .datamaps-legend {padding-bottom: 20px; z-index: 1001; position: absolute; left: 4px; font-size: 12px; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;} .datamaps-hoverover {display: none; font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; } .hoverinfo {padding: 4px; border-radius: 1px; background-color: #FFF; box-shadow: 1px 1px 5px #CCC; font-size: 12px; border: 1px solid #CCC; } .hoverinfo hr {border:1px dotted #CCC; }' ) } function d ( a ) { var b = this . options . fills , c = this . options . data || { } , d = this . options . geographyConfig , e = this . svg . select ( "g.datamaps-subunits" ) ; e . empty ( ) && ( e = this . addLayer ( "datamaps-subunits" , null , ! 0 ) ) ; var f = n . feature ( a , a . objects [ this . options . scope ] ) . features ; d . hideAntarctica && ( f = f . filter ( function ( a ) { return "ATA" !== a . id } ) ) ; var g = e . selectAll ( "path.datamaps-subunit" ) . data ( f ) ; g . enter ( ) . append ( "path" ) . attr ( "d" , this . path ) . attr ( "class" , function ( a ) { return "datamaps-subunit " + a . id } ) . attr ( "data-info" , function ( a ) { return JSON . stringify ( c [ a . id ] ) } ) . style ( "fill" , function ( a ) { var d ; return c [ a . id ] && ( d = b [ c [ a . id ] . fillKey ] ) , d || b . defaultFill } ) . style ( "stroke-width" , d . borderWidth ) . style ( "stroke" , d . borderColor ) } function e ( ) { function a ( ) { this . parentNode . appendChild ( this ) } var b = this . svg , c = this , d = this . options . geographyConfig ; ( d . highlightOnHover || d . popupOnHover ) && b . selectAll ( ".datamaps-subunit" ) . on ( "mouseover" , function ( e ) { var f = m . select ( this ) ; if ( d . highlightOnHover ) { var g = { fill : f . style ( "fill" ) , stroke : f . style ( "stroke" ) , "stroke-width" : f . style ( "stroke-width" ) , "fill-opacity" : f . style ( "fill-opacity" ) } ; f . style ( "fill" , d . highlightFillColor ) . style ( "stroke" , d . highlightBorderColor ) . style ( "stroke-width" , d . highlightBorderWidth ) . style ( "fill-opacity" , d . highlightFillOpacity ) . attr ( "data-previousAttributes" , JSON . stringify ( g ) ) , /((MSIE)|(Trident))/ . test || a . call ( this ) } d . popupOnHover && c . updatePopup ( f , e , d , b ) } ) . on ( "mouseout" , function ( ) { var a = m . select ( this ) ; if ( d . highlightOnHover ) { var b = JSON . parse ( a . attr ( "data-previousAttributes" ) ) ; for ( var c in b ) a . style ( c , b [ c ] ) } a . on ( "mousemove" , null ) , m . selectAll ( ".datamaps-hoverover" ) . style ( "display" , "none" ) } ) } function f ( a , b ) { if ( b = b || { } , this . options . fills ) { var c = "<dl>" , d = "" ; b . legendTitle && ( c = "<h2>" + b . legendTitle + "</h2>" + c ) ; for ( var e in this . options . fills ) { if ( "defaultFill" === e ) { if ( ! b . defaultFillName ) continue ; d = b . defaultFillName } else d = b . labels && b . labels [ e ] ? b . labels [ e ] : e + ": " ; c += " <
} , l . prototype . addLayer = function ( a , b , c ) { var d ; return d = c ? this . svg . insert ( "g" , ":first-child" ) : this . svg . append ( "g" ) , d . attr ( "id" , b || "" ) . attr ( "class" , a || "" ) } , l . prototype . updateChoropleth = function ( a ) { var b = this . svg ; for ( var c in a ) if ( a . hasOwnProperty ( c ) ) { var d , e = a [ c ] ; if ( ! c ) continue ; d = "string" == typeof e ? e : "string" == typeof e . color ? e . color : this . options . fills [ e . fillKey ] , e === Object ( e ) && ( this . options . data [ c ] = k ( e , this . options . data [ c ] || { } ) , this . svg . select ( "." + c ) . attr ( "data-info" , JSON . stringify ( this . options . data [ c ] ) ) ) , b . selectAll ( "." + c ) . transition ( ) . style ( "fill" , d ) } } , l . prototype . updatePopup = function ( a , b , c ) { var d = this ; a . on ( "mousemove" , null ) , a . on ( "mousemove" , function ( ) { var e = m . mouse ( d . options . element ) ; m . select ( d . svg [ 0 ] [ 0 ] . parentNode ) . select ( ".datamaps-hoverover" ) . style ( "top" , e [ 1 ] + 30 + "px" ) . html ( function ( ) { var d = JSON . parse ( a . attr ( "data-info" ) ) ; return c . popupTemplate ( b , d ) } ) . style ( "left" , e [ 0 ] + "px" ) } ) , m . select ( d . svg [ 0 ] [ 0 ] . parentNode ) . select ( ".datamaps-hoverover" ) . style ( "display" , "block" ) } , l . prototype . addPlugin = function ( a , b ) { var c = this ; "undefined" == typeof l . prototype [ a ] && ( l . prototype [ a ] = function ( d , e , f , g ) { var h ; "undefined" == typeof g && ( g = ! 1 ) , "function" == typeof e && ( f = e , e = void 0 ) , e = k ( e || { } , c . options [ a + "Config" ] ) , ! g && this . options [ a + "Layer" ] ? ( h = this . options [ a + "Layer" ] , e = e || this . options [ a + "Options" ] ) : ( h = this . addLayer ( a ) , this . options [ a + "Layer" ] = h , this . options [ a + "Options" ] = e ) , b . apply ( this , [ h , d , e ] ) , f && f ( h ) } ) } , "function" == typeof define && define . amd ? define ( "datamaps" , function ( a ) { return m = a ( "d3" ) , n = a ( "topojson" ) , l } ) : window . Datamap = window . Datamaps = l , window . jQuery && ( window . jQuery . fn . datamaps = function ( a , b ) { a = a || { } , a . element = this [ 0 ] ; var c = new l ( a ) ; return "function" == typeof b && b ( c , a ) , this } ) } ( ) ;
//! moment.js
//! version : 2.9.0
//! authors : Tim Wood, Iskren Chernev, Moment.js contributors
//! license : MIT
//! momentjs.com
( function ( a ) { function b ( a , b , c ) { switch ( arguments . length ) { case 2 : return null != a ? a : b ; case 3 : return null != a ? a : null != b ? b : c ; default : throw new Error ( "Implement me" ) } } function c ( a , b ) { return Bb . call ( a , b ) } function d ( ) { return { empty : ! 1 , unusedTokens : [ ] , unusedInput : [ ] , overflow : - 2 , charsLeftOver : 0 , nullInput : ! 1 , invalidMonth : null , invalidFormat : ! 1 , userInvalidated : ! 1 , iso : ! 1 } } function e ( a ) { vb . suppressDeprecationWarnings === ! 1 && "undefined" != typeof console && console . warn && console . warn ( "Deprecation warning: " + a ) } function f ( a , b ) { var c = ! 0 ; return o ( function ( ) { return c && ( e ( a ) , c = ! 1 ) , b . apply ( this , arguments ) } , b ) } function g ( a , b ) { sc [ a ] || ( e ( b ) , sc [ a ] = ! 0 ) } function h ( a , b ) { return function ( c ) { return r ( a . call ( this , c ) , b ) } } function i ( a , b ) { return function ( c ) { return this . localeData ( ) . ordinal ( a . call ( this , c ) , b ) } } function j ( a , b ) { var c , d , e = 12 * ( b . year ( ) - a . year ( ) ) + ( b . month ( ) - a . month ( ) ) , f = a . clone ( ) . add ( e , "months" ) ; return 0 > b - f ? ( c = a . clone ( ) . add ( e - 1 , "months" ) , d = ( b - f ) / ( f - c ) ) : ( c = a . clone ( ) . add ( e + 1 , "months" ) , d = ( b - f ) / ( c - f ) ) , - ( e + d ) } function k ( a , b , c ) { var d ; return null == c ? b : null != a . meridiemHour ? a . meridiemHour ( b , c ) : null != a . isPM ? ( d = a . isPM ( c ) , d && 12 > b && ( b += 12 ) , d || 12 !== b || ( b = 0 ) , b ) : b } function l ( ) { } function m ( a , b ) { b !== ! 1 && H ( a ) , p ( this , a ) , this . _d = new Date ( + a . _d ) , uc === ! 1 && ( uc = ! 0 , vb . updateOffset ( this ) , uc = ! 1 ) } function n ( a ) { var b = A ( a ) , c = b . year || 0 , d = b . quarter || 0 , e = b . month || 0 , f = b . week || 0 , g = b . day || 0 , h = b . hour || 0 , i = b . minute || 0 , j = b . second || 0 , k = b . millisecond || 0 ; this . _milliseconds = + k + 1e3 * j + 6e4 * i + 36e5 * h , this . _days = + g + 7 * f , this . _months = + e + 3 * d + 12 * c , this . _data = { } , this . _locale = vb . localeData ( ) , this . _bubble ( ) } function o ( a , b ) { for ( var d in b ) c ( b , d ) && ( a [ d ] = b [ d ] ) ; return c ( b , "toString" ) && ( a . toString = b . toString ) , c ( b , "valueOf" ) && ( a . valueOf = b . valueOf ) , a } function p ( a , b ) { var c , d , e ; if ( "undefined" != typeof b . _isAMomentObject && ( a . _isAMomentObject = b . _isAMomentObject ) , "undefined" != typeof b . _i && ( a . _i = b . _i ) , "undefined" != typeof b . _f && ( a . _f = b . _f ) , "undefined" != typeof b . _l && ( a . _l = b . _l ) , "undefined" != typeof b . _strict && ( a . _strict = b . _strict ) , "undefined" != typeof b . _tzm && ( a . _tzm = b . _tzm ) , "undefined" != typeof b . _isUTC && ( a . _isUTC = b . _isUTC ) , "undefined" != typeof b . _offset && ( a . _offset = b . _offset ) , "undefined" != typeof b . _pf && ( a . _pf = b . _pf ) , "undefined" != typeof b . _locale && ( a . _locale = b . _locale ) , Kb . length > 0 ) for ( c in Kb ) d = Kb [ c ] , e = b [ d ] , "undefined" != typeof e && ( a [ d ] = e ) ; return a } function q ( a ) { return 0 > a ? Math . ceil ( a ) : Math . floor ( a ) } function r ( a , b , c ) { for ( var d = "" + Math . abs ( a ) , e = a >= 0 ; d . length < b ; ) d = "0" + d ; return ( e ? c ? "+" : "" : "-" ) + d } function s ( a , b ) { var c = { milliseconds : 0 , months : 0 } ; return c . months = b . month ( ) - a . month ( ) + 12 * ( b . year ( ) - a . year ( ) ) , a . clone ( ) . add ( c . months , "M" ) . isAfter ( b ) && -- c . months , c . milliseconds = + b - + a . clone ( ) . add ( c . months , "M" ) , c } function t ( a , b ) { var c ; return b = M ( b , a ) , a . isBefore ( b ) ? c = s ( a , b ) : ( c = s ( b , a ) , c . milliseconds = - c . milliseconds , c . months = - c . months ) , c } function u ( a , b ) { return function ( c , d ) { var e , f ; return null === d || isNaN ( + d ) || ( g ( b , "moment()." + b + "(period, number) is deprecated. Please use moment()." + b + "(number, period)." ) , f = c , c = d , d = f ) , c = "string" == typeof c ? + c : c , e = vb . duration ( c , d ) , v ( this , e , a ) , this } } function v ( a , b , c , d ) { var e = b . _milliseconds , f = b . _days , g = b . _months ; d = null == d ? ! 0 : d , e && a . _d . setTime ( + a . _d + e * c ) , f && pb ( a , "Date" , ob ( a , "Date" ) + f * c ) , g && nb ( a , ob ( a , "Month" ) + g * c ) , d && vb . updateOffset ( a , f || g ) } function w ( a ) { return "[object Array]" === Object . prototype . toString . call ( a ) } function x ( a ) { return "[object Date]" === Object . prototype . toString . call ( a ) || a instanceof Date } function y ( a , b , c ) { var d , e = Math . min ( a . length , b . length ) , f = Math . abs ( a . length - b . length ) , g = 0 ; for ( d = 0 ; e > d ; d ++ ) ( c && a [ d ] !== b [ d ] || ! c && C ( a [ d ] ) !== C ( b [ d ] ) ) && g ++ ; return g + f } function z ( a ) { if ( a ) { var b = a . toLowerCase ( ) . replace ( /(.)s$/ , "$1" ) ; a = lc [ a ] || mc [ b ] || b } return a } function A ( a ) { var b , d , e = { } ; for ( d in a ) c ( a , d ) && ( b = z ( d ) , b && ( e [ b ] = a [ d ] ) ) ; return e } function B ( b ) { var c , d ; if ( 0 === b . indexOf ( "week" ) ) c = 7 , d = "day" ; else { if ( 0 !== b . indexOf ( "month" ) ) return ; c = 12 , d = "month" } vb [ b ] = function ( e , f ) { var g , h , i = vb . _locale [ b ] , j = [ ] ; if ( "number" == typeof e && ( f = e , e = a ) , h = function ( a ) { var b = vb ( ) . utc ( ) . set ( d , a ) ; return i . call ( vb . _locale , b , e || "" ) } , null != f ) return h ( f ) ; for ( g = 0 ; c > g ; g ++ ) j . push ( h ( g ) ) ; return j } } function C ( a ) { var b = + a , c = 0 ; return 0 !== b && isFinite ( b ) && ( c = b >= 0 ? Math . floor ( b )
} , humanize : function ( a ) { var b = ib ( this , ! a , this . localeData ( ) ) ; return a && ( b = this . localeData ( ) . pastFuture ( + this , b ) ) , this . localeData ( ) . postformat ( b ) } , add : function ( a , b ) { var c = vb . duration ( a , b ) ; return this . _milliseconds += c . _milliseconds , this . _days += c . _days , this . _months += c . _months , this . _bubble ( ) , this } , subtract : function ( a , b ) { var c = vb . duration ( a , b ) ; return this . _milliseconds -= c . _milliseconds , this . _days -= c . _days , this . _months -= c . _months , this . _bubble ( ) , this } , get : function ( a ) { return a = z ( a ) , this [ a . toLowerCase ( ) + "s" ] ( ) } , as : function ( a ) { var b , c ; if ( a = z ( a ) , "month" === a || "year" === a ) return b = this . _days + this . _milliseconds / 864e5 , c = this . _months + 12 * rb ( b ) , "month" === a ? c : c / 12 ; switch ( b = this . _days + Math . round ( sb ( this . _months / 12 ) ) , a ) { case "week" : return b / 7 + this . _milliseconds / 6048e5 ; case "day" : return b + this . _milliseconds / 864e5 ; case "hour" : return 24 * b + this . _milliseconds / 36e5 ; case "minute" : return 24 * b * 60 + this . _milliseconds / 6e4 ; case "second" : return 24 * b * 60 * 60 + this . _milliseconds / 1e3 ; case "millisecond" : return Math . floor ( 24 * b * 60 * 60 * 1e3 ) + this . _milliseconds ; default : throw new Error ( "Unknown unit " + a ) } } , lang : vb . fn . lang , locale : vb . fn . locale , toIsoString : f ( "toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)" , function ( ) { return this . toISOString ( ) } ) , toISOString : function ( ) { var a = Math . abs ( this . years ( ) ) , b = Math . abs ( this . months ( ) ) , c = Math . abs ( this . days ( ) ) , d = Math . abs ( this . hours ( ) ) , e = Math . abs ( this . minutes ( ) ) , f = Math . abs ( this . seconds ( ) + this . milliseconds ( ) / 1e3 ) ; return this . asSeconds ( ) ? ( this . asSeconds ( ) < 0 ? "-" : "" ) + "P" + ( a ? a + "Y" : "" ) + ( b ? b + "M" : "" ) + ( c ? c + "D" : "" ) + ( d || e || f ? "T" : "" ) + ( d ? d + "H" : "" ) + ( e ? e + "M" : "" ) + ( f ? f + "S" : "" ) : "P0D" } , localeData : function ( ) { return this . _locale } , toJSON : function ( ) { return this . toISOString ( ) } } ) , vb . duration . fn . toString = vb . duration . fn . toISOString ; for ( xb in kc ) c ( kc , xb ) && tb ( xb . toLowerCase ( ) ) ; vb . duration . fn . asMilliseconds = function ( ) { return this . as ( "ms" ) } , vb . duration . fn . asSeconds = function ( ) { return this . as ( "s" ) } , vb . duration . fn . asMinutes = function ( ) { return this . as ( "m" ) } , vb . duration . fn . asHours = function ( ) { return this . as ( "h" ) } , vb . duration . fn . asDays = function ( ) { return this . as ( "d" ) } , vb . duration . fn . asWeeks = function ( ) { return this . as ( "weeks" ) } , vb . duration . fn . asMonths = function ( ) { return this . as ( "M" ) } , vb . duration . fn . asYears = function ( ) { return this . as ( "y" ) } , vb . locale ( "en" , { ordinalParse : /\d{1,2}(th|st|nd|rd)/ , ordinal : function ( a ) { var b = a % 10 , c = 1 === C ( a % 100 / 10 ) ? "th" : 1 === b ? "st" : 2 === b ? "nd" : 3 === b ? "rd" : "th" ; return a + c } } ) , Lb ? module . exports = vb : "function" == typeof define && define . amd ? ( define ( function ( a , b , c ) { return c . config && c . config ( ) && c . config ( ) . noGlobal === ! 0 && ( zb . moment = wb ) , vb } ) , ub ( ! 0 ) ) : ub ( ) } ) . call ( this ) ;
! function ( e ) { "function" == typeof define && define . amd ? define ( [ "moment" ] , e ) : "object" == typeof exports ? module . exports = e ( require ( "../moment" ) ) : e ( ( "undefined" != typeof global ? global : this ) . moment ) } ( function ( e ) { return e . defineLocale ( "en-gb" , { months : "January_February_March_April_May_June_July_August_September_October_November_December" . split ( "_" ) , monthsShort : "Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec" . split ( "_" ) , weekdays : "Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday" . split ( "_" ) , weekdaysShort : "Sun_Mon_Tue_Wed_Thu_Fri_Sat" . split ( "_" ) , weekdaysMin : "Su_Mo_Tu_We_Th_Fr_Sa" . split ( "_" ) , longDateFormat : { LT : "HH:mm" , LTS : "HH:mm:ss" , L : "DD/MM/YYYY" , LL : "D MMMM YYYY" , LLL : "D MMMM YYYY LT" , LLLL : "dddd, D MMMM YYYY LT" } , calendar : { sameDay : "[Today at] LT" , nextDay : "[Tomorrow at] LT" , nextWeek : "dddd [at] LT" , lastDay : "[Yesterday at] LT" , lastWeek : "[Last] dddd [at] LT" , sameElse : "L" } , relativeTime : { future : "in %s" , past : "%s ago" , s : "a few sec" , m : "1 min" , mm : "%d min" , h : "1 h" , hh : "%d h" , d : "a day" , dd : "%d days" , M : "a month" , MM : "%d mon" , y : "a year" , yy : "%d years" } , ordinalParse : /\d{1,2}(st|nd|rd|th)/ , ordinal : function ( e ) { var a = e % 10 , d = 1 === ~ ~ ( e % 100 / 10 ) ? "th" : 1 === a ? "st" : 2 === a ? "nd" : 3 === a ? "rd" : "th" ; return e + d } , week : { dow : 1 , doy : 4 } } ) } ) ;
! function ( e ) { e ( [ "jquery" ] , function ( e ) { return function ( ) { function t ( e , t , n ) { return f ( { type : O . error , iconClass : g ( ) . iconClasses . error , message : e , optionsOverride : n , title : t } ) } function n ( t , n ) { return t || ( t = g ( ) ) , v = e ( "#" + t . containerId ) , v . length ? v : ( n && ( v = c ( t ) ) , v ) } function i ( e , t , n ) { return f ( { type : O . info , iconClass : g ( ) . iconClasses . info , message : e , optionsOverride : n , title : t } ) } function o ( e ) { w = e } function s ( e , t , n ) { return f ( { type : O . success , iconClass : g ( ) . iconClasses . success , message : e , optionsOverride : n , title : t } ) } function a ( e , t , n ) { return f ( { type : O . warning , iconClass : g ( ) . iconClasses . warning , message : e , optionsOverride : n , title : t } ) } function r ( e ) { var t = g ( ) ; v || n ( t ) , l ( e , t ) || u ( t ) } function d ( t ) { var i = g ( ) ; return v || n ( i ) , t && 0 === e ( ":focus" , t ) . length ? void h ( t ) : void ( v . children ( ) . length && v . remove ( ) ) } function u ( t ) { for ( var n = v . children ( ) , i = n . length - 1 ; i >= 0 ; i -- ) l ( e ( n [ i ] ) , t ) } function l ( t , n ) { return t && 0 === e ( ":focus" , t ) . length ? ( t [ n . hideMethod ] ( { duration : n . hideDuration , easing : n . hideEasing , complete : function ( ) { h ( t ) } } ) , ! 0 ) : ! 1 } function c ( t ) { return v = e ( "<div/>" ) . attr ( "id" , t . containerId ) . addClass ( t . positionClass ) . attr ( "aria-live" , "polite" ) . attr ( "role" , "alert" ) , v . appendTo ( e ( t . target ) ) , v } function p ( ) { return { tapToDismiss : ! 0 , toastClass : "toast" , containerId : "toast-container" , debug : ! 1 , showMethod : "fadeIn" , showDuration : 300 , showEasing : "swing" , onShown : void 0 , hideMethod : "fadeOut" , hideDuration : 1e3 , hideEasing : "swing" , onHidden : void 0 , extendedTimeOut : 1e3 , iconClasses : { error : "toast-error" , info : "toast-info" , success : "toast-success" , warning : "toast-warning" } , iconClass : "toast-info" , positionClass : "toast-top-right" , timeOut : 5e3 , titleClass : "toast-title" , messageClass : "toast-message" , target : "body" , closeHtml : "<button>×</button>" , newestOnTop : ! 0 , preventDuplicates : ! 1 , progressBar : ! 1 } } function m ( e ) { w && w ( e ) } function f ( t ) { function i ( t ) { return ! e ( ":focus" , l ) . length || t ? ( clearTimeout ( O . intervalId ) , l [ r . hideMethod ] ( { duration : r . hideDuration , easing : r . hideEasing , complete : function ( ) { h ( l ) , r . onHidden && "hidden" !== b . state && r . onHidden ( ) , b . state = "hidden" , b . endTime = new Date , m ( b ) } } ) ) : void 0 } function o ( ) { ( r . timeOut > 0 || r . extendedTimeOut > 0 ) && ( u = setTimeout ( i , r . extendedTimeOut ) , O . maxHideTime = parseFloat ( r . extendedTimeOut ) , O . hideEta = ( new Date ) . getTime ( ) + O . maxHideTime ) } function s ( ) { clearTimeout ( u ) , O . hideEta = 0 , l . stop ( ! 0 , ! 0 ) [ r . showMethod ] ( { duration : r . showDuration , easing : r . showEasing } ) } function a ( ) { var e = ( O . hideEta - ( new Date ) . getTime ( ) ) / O . maxHideTime * 100 ; f . width ( e + "%" ) } var r = g ( ) , d = t . iconClass || r . iconClass ; if ( r . preventDuplicates ) { if ( t . message === C ) return ; C = t . message } "undefined" != typeof t . optionsOverride && ( r = e . extend ( r , t . optionsOverride ) , d = t . optionsOverride . iconClass || d ) , T ++ , v = n ( r , ! 0 ) ; var u = null , l = e ( "<div/>" ) , c = e ( "<div/>" ) , p = e ( "<div/>" ) , f = e ( "<div/>" ) , w = e ( r . closeHtml ) , O = { intervalId : null , hideEta : null , maxHideTime : null } , b = { toastId : T , state : "visible" , startTime : new Date , options : r , map : t } ; return t . iconClass && l . addClass ( r . toastClass ) . addClass ( d ) , t . title && ( c . append ( t . title ) . addClass ( r . titleClass ) , l . append ( c ) ) , t . message && ( p . append ( t . message ) . addClass ( r . messageClass ) , l . append ( p ) ) , r . closeButton && ( w . addClass ( "toast-close-button" ) . attr ( "role" , "button" ) , l . prepend ( w ) ) , r . progressBar && ( f . addClass ( "toast-progress" ) , l . prepend ( f ) ) , l . hide ( ) , r . newestOnTop ? v . prepend ( l ) : v . append ( l ) , l [ r . showMethod ] ( { duration : r . showDuration , easing : r . showEasing , complete : r . onShown } ) , r . timeOut > 0 && ( u = setTimeout ( i , r . timeOut ) , O . maxHideTime = parseFloat ( r . timeOut ) , O . hideEta = ( new Date ) . getTime ( ) + O . maxHideTime , r . progressBar && ( O . intervalId = setInterval ( a , 10 ) ) ) , l . hover ( s , o ) , ! r . onclick && r . tapToDismiss && l . click ( i ) , r . closeButton && w && w . click ( function ( e ) { e . stopPropagation ? e . stopPropagation ( ) : void 0 !== e . cancelBubble && e . cancelBubble !== ! 0 && ( e . cancelBubble = ! 0 ) , i ( ! 0 ) } ) , r . onclick && l . click ( function ( ) { r . onclick ( ) , i ( ) } ) , m ( b ) , r . debug && console && console . log ( b ) , l } function g ( ) { return e . extend ( { } , p ( ) , b . options ) } function h ( e ) { v || ( v = n ( ) ) , e . is ( ":visible" ) || ( e . remove ( ) , e = null , 0 === v . children ( ) . length && v . remove ( ) ) } var v , w , C , T = 0 , O = { error : "error" , info : "info" , success : "success" , warning : "warning" } , b = { clear : r , remove : d , error : t , getContainer : n , info : i , options : { } , subscribe : o , success : s , version : "2.1.0" , warning : a } ; return b } ( ) } ) } ( " funct
/* jquery.sparkline 2.1.2 - http:/ / omnipotent . net / jquery . sparkline /
* * Licensed under the New BSD License - see above site for details * /
( function ( a , b , c ) { ( function ( a ) { typeof define == "function" && define . amd ? define ( [ "jquery" ] , a ) : jQuery && ! jQuery . fn . sparkline && a ( jQuery ) } ) ( function ( d ) { "use strict" ; var e = { } , f , g , h , i , j , k , l , m , n , o , p , q , r , s , t , u , v , w , x , y , z , A , B , C , D , E , F , G , H , I , J , K , L = 0 ; f = function ( ) { return { common : { type : "line" , lineColor : "#00f" , fillColor : "#cdf" , defaultPixelsPerValue : 3 , width : "auto" , height : "auto" , composite : ! 1 , tagValuesAttribute : "values" , tagOptionsPrefix : "spark" , enableTagOptions : ! 1 , enableHighlight : ! 0 , highlightLighten : 1.4 , tooltipSkipNull : ! 0 , tooltipPrefix : "" , tooltipSuffix : "" , disableHiddenCheck : ! 1 , numberFormatter : ! 1 , numberDigitGroupCount : 3 , numberDigitGroupSep : "," , numberDecimalMark : "." , disableTooltips : ! 1 , disableInteraction : ! 1 } , line : { spotColor : "#f80" , highlightSpotColor : "#5f5" , highlightLineColor : "#f22" , spotRadius : 1.5 , minSpotColor : "#f80" , maxSpotColor : "#f80" , lineWidth : 1 , normalRangeMin : c , normalRangeMax : c , normalRangeColor : "#ccc" , drawNormalOnTop : ! 1 , chartRangeMin : c , chartRangeMax : c , chartRangeMinX : c , chartRangeMaxX : c , tooltipFormat : new h ( '<span style="color: {{color}}">●</span> {{prefix}}{{y}}{{suffix}}' ) } , bar : { barColor : "#3366cc" , negBarColor : "#f44" , stackedBarColor : [ "#3366cc" , "#dc3912" , "#ff9900" , "#109618" , "#66aa00" , "#dd4477" , "#0099c6" , "#990099" ] , zeroColor : c , nullColor : c , zeroAxis : ! 0 , barWidth : 4 , barSpacing : 1 , chartRangeMax : c , chartRangeMin : c , chartRangeClip : ! 1 , colorMap : c , tooltipFormat : new h ( '<span style="color: {{color}}">●</span> {{prefix}}{{value}}{{suffix}}' ) } , tristate : { barWidth : 4 , barSpacing : 1 , posBarColor : "#6f6" , negBarColor : "#f44" , zeroBarColor : "#999" , colorMap : { } , tooltipFormat : new h ( '<span style="color: {{color}}">●</span> {{value:map}}' ) , tooltipValueLookups : { map : { "-1" : "Loss" , 0 : "Draw" , 1 : "Win" } } } , discrete : { lineHeight : "auto" , thresholdColor : c , thresholdValue : 0 , chartRangeMax : c , chartRangeMin : c , chartRangeClip : ! 1 , tooltipFormat : new h ( "{{prefix}}{{value}}{{suffix}}" ) } , bullet : { targetColor : "#f33" , targetWidth : 3 , performanceColor : "#33f" , rangeColors : [ "#d3dafe" , "#a8b6ff" , "#7f94ff" ] , base : c , tooltipFormat : new h ( "{{fieldkey:fields}} - {{value}}" ) , tooltipValueLookups : { fields : { r : "Range" , p : "Performance" , t : "Target" } } } , pie : { offset : 0 , sliceColors : [ "#3366cc" , "#dc3912" , "#ff9900" , "#109618" , "#66aa00" , "#dd4477" , "#0099c6" , "#990099" ] , borderWidth : 0 , borderColor : "#000" , tooltipFormat : new h ( '<span style="color: {{color}}">●</span> {{value}} ({{percent.1}}%)' ) } , box : { raw : ! 1 , boxLineColor : "#000" , boxFillColor : "#cdf" , whiskerColor : "#000" , outlierLineColor : "#333" , outlierFillColor : "#fff" , medianColor : "#f00" , showOutliers : ! 0 , outlierIQR : 1.5 , spotRadius : 1.5 , target : c , targetColor : "#4a2" , chartRangeMax : c , chartRangeMin : c , tooltipFormat : new h ( "{{field:fields}}: {{value}}" ) , tooltipFormatFieldlistKey : "field" , tooltipValueLookups : { fields : { lq : "Lower Quartile" , med : "Median" , uq : "Upper Quartile" , lo : "Left Outlier" , ro : "Right Outlier" , lw : "Left Whisker" , rw : "Right Whisker" } } } } } , E = '.jqstooltip { position: absolute;left: 0px;top: 0px;visibility: hidden;z-index: 10000;}.jqsfield {}' , g = function ( ) { var a , b ; return a = function ( ) { this . init . apply ( this , arguments ) } , arguments . length > 1 ? ( arguments [ 0 ] ? ( a . prototype = d . extend ( new arguments [ 0 ] , arguments [ arguments . length - 1 ] ) , a . _super = arguments [ 0 ] . prototype ) : a . prototype = arguments [ arguments . length - 1 ] , arguments . length > 2 && ( b = Array . prototype . slice . call ( arguments , 1 , - 1 ) , b . unshift ( a . prototype ) , d . extend . apply ( d , b ) ) ) : a . prototype = arguments [ 0 ] , a . prototype . cls = a , a } , d . SPFormatClass = h = g ( { fre : /\{\{([\w.]+?)(:(.+?))?\}\}/g , precre : /(\w+)\.(\d+)/ , init : function ( a , b ) { this . format = a , this . fclass = b } , render : function ( a , b , d ) { var e = this , f = a , g , h , i , j , k ; return this . format . replace ( this . fre , function ( ) { var a ; return h = arguments [ 1 ] , i = arguments [ 3 ] , g = e . precre . exec ( h ) , g ? ( k = g [ 2 ] , h = g [ 1 ] ) : k = ! 1 , j = f [ h ] , j === c ? "" : i && b && b [ i ] ? ( a = b [ i ] , a . get ? b [ i ] . get ( j ) || j : b [ i ] [ j ] || j ) : ( n ( j ) && ( d . get ( "numberFormatter" ) ? j = d . get ( "numberFormatter" ) ( j ) : j = s ( j , k , d . get ( "numberDigitGroupCount" ) , d . get ( "numberDigitGroupSep" ) , d . get ( "numberDecimalMark" ) ) ) , j ) } ) } } ) , d . spformat = function ( a , b ) { return new h ( a , b ) } , i = function ( a , b , c ) { return a < b ? b : a > c ? c : a } , j = function ( a , c ) { var d ; return c === 2 ? ( d = b . floor ( a . length / 2 ) , a . length % 2 ? a [ d ] : ( a [ d - 1 ] + a [ d ] ) / 2 ) : a . length % 2 ? ( d = ( a . length * c + c ) / 4 , d % 1 ? ( a [ b . floor ( d ) ] + a [ b
[ 1 ] } , { field : "uq" , value : this . quartiles [ 2 ] } ] ; return this . loutlier !== c && a . push ( { field : "lo" , value : this . loutlier } ) , this . routlier !== c && a . push ( { field : "ro" , value : this . routlier } ) , this . lwhisker !== c && a . push ( { field : "lw" , value : this . lwhisker } ) , this . rwhisker !== c && a . push ( { field : "rw" , value : this . rwhisker } ) , a } , render : function ( ) { var a = this . target , d = this . values , e = d . length , f = this . options , g = this . canvasWidth , h = this . canvasHeight , i = f . get ( "chartRangeMin" ) === c ? b . min . apply ( b , d ) : f . get ( "chartRangeMin" ) , k = f . get ( "chartRangeMax" ) === c ? b . max . apply ( b , d ) : f . get ( "chartRangeMax" ) , l = 0 , m , n , o , p , q , r , s , t , u , v , w ; if ( ! D . _super . render . call ( this ) ) return ; if ( f . get ( "raw" ) ) f . get ( "showOutliers" ) && d . length > 5 ? ( n = d [ 0 ] , m = d [ 1 ] , p = d [ 2 ] , q = d [ 3 ] , r = d [ 4 ] , s = d [ 5 ] , t = d [ 6 ] ) : ( m = d [ 0 ] , p = d [ 1 ] , q = d [ 2 ] , r = d [ 3 ] , s = d [ 4 ] ) ; else { d . sort ( function ( a , b ) { return a - b } ) , p = j ( d , 1 ) , q = j ( d , 2 ) , r = j ( d , 3 ) , o = r - p ; if ( f . get ( "showOutliers" ) ) { m = s = c ; for ( u = 0 ; u < e ; u ++ ) m === c && d [ u ] > p - o * f . get ( "outlierIQR" ) && ( m = d [ u ] ) , d [ u ] < r + o * f . get ( "outlierIQR" ) && ( s = d [ u ] ) ; n = d [ 0 ] , t = d [ e - 1 ] } else m = d [ 0 ] , s = d [ e - 1 ] } this . quartiles = [ p , q , r ] , this . lwhisker = m , this . rwhisker = s , this . loutlier = n , this . routlier = t , w = g / ( k - i + 1 ) , f . get ( "showOutliers" ) && ( l = b . ceil ( f . get ( "spotRadius" ) ) , g -= 2 * b . ceil ( f . get ( "spotRadius" ) ) , w = g / ( k - i + 1 ) , n < m && a . drawCircle ( ( n - i ) * w + l , h / 2 , f . get ( "spotRadius" ) , f . get ( "outlierLineColor" ) , f . get ( "outlierFillColor" ) ) . append ( ) , t > s && a . drawCircle ( ( t - i ) * w + l , h / 2 , f . get ( "spotRadius" ) , f . get ( "outlierLineColor" ) , f . get ( "outlierFillColor" ) ) . append ( ) ) , a . drawRect ( b . round ( ( p - i ) * w + l ) , b . round ( h * . 1 ) , b . round ( ( r - p ) * w ) , b . round ( h * . 8 ) , f . get ( "boxLineColor" ) , f . get ( "boxFillColor" ) ) . append ( ) , a . drawLine ( b . round ( ( m - i ) * w + l ) , b . round ( h / 2 ) , b . round ( ( p - i ) * w + l ) , b . round ( h / 2 ) , f . get ( "lineColor" ) ) . append ( ) , a . drawLine ( b . round ( ( m - i ) * w + l ) , b . round ( h / 4 ) , b . round ( ( m - i ) * w + l ) , b . round ( h - h / 4 ) , f . get ( "whiskerColor" ) ) . append ( ) , a . drawLine ( b . round ( ( s - i ) * w + l ) , b . round ( h / 2 ) , b . round ( ( r - i ) * w + l ) , b . round ( h / 2 ) , f . get ( "lineColor" ) ) . append ( ) , a . drawLine ( b . round ( ( s - i ) * w + l ) , b . round ( h / 4 ) , b . round ( ( s - i ) * w + l ) , b . round ( h - h / 4 ) , f . get ( "whiskerColor" ) ) . append ( ) , a . drawLine ( b . round ( ( q - i ) * w + l ) , b . round ( h * . 1 ) , b . round ( ( q - i ) * w + l ) , b . round ( h * . 9 ) , f . get ( "medianColor" ) ) . append ( ) , f . get ( "target" ) && ( v = b . ceil ( f . get ( "spotRadius" ) ) , a . drawLine ( b . round ( ( f . get ( "target" ) - i ) * w + l ) , b . round ( h / 2 - v ) , b . round ( ( f . get ( "target" ) - i ) * w + l ) , b . round ( h / 2 + v ) , f . get ( "targetColor" ) ) . append ( ) , a . drawLine ( b . round ( ( f . get ( "target" ) - i ) * w + l - v ) , b . round ( h / 2 ) , b . round ( ( f . get ( "target" ) - i ) * w + l + v ) , b . round ( h / 2 ) , f . get ( "targetColor" ) ) . append ( ) ) , a . render ( ) } } ) , G = g ( { init : function ( a , b , c , d ) { this . target = a , this . id = b , this . type = c , this . args = d } , append : function ( ) { return this . target . appendShape ( this ) , this } } ) , H = g ( { _pxregex : /(\d+)(px)?\s*$/i , init : function ( a , b , c ) { if ( ! a ) return ; this . width = a , this . height = b , this . target = c , this . lastShapeId = null , c [ 0 ] && ( c = c [ 0 ] ) , d . data ( c , "_jqs_vcanvas" , this ) } , drawLine : function ( a , b , c , d , e , f ) { return this . drawShape ( [ [ a , b ] , [ c , d ] ] , e , f ) } , drawShape : function ( a , b , c , d ) { return this . _genShape ( "Shape" , [ a , b , c , d ] ) } , drawCircle : function ( a , b , c , d , e , f ) { return this . _genShape ( "Circle" , [ a , b , c , d , e , f ] ) } , drawPieSlice : function ( a , b , c , d , e , f , g ) { return this . _genShape ( "PieSlice" , [ a , b , c , d , e , f , g ] ) } , drawRect : function ( a , b , c , d , e , f ) { return this . _genShape ( "Rect" , [ a , b , c , d , e , f ] ) } , getElement : function ( ) { return this . canvas } , getLastShapeId : function ( ) { return this . lastShapeId } , reset : function ( ) { alert ( "reset not implemented" ) } , _insert : function ( a , b ) { d ( b ) . html ( a ) } , _calculatePixelDims : function ( a , b , c ) { var e ; e = this . _pxregex . exec ( b ) , e ? this . pixelHeight = e [ 1 ] : this . pixelHeight = d ( c ) . height ( ) , e = this . _pxregex . exec ( a ) , e ? this . pixelWidth = e [ 1 ] : this . pixelWidth = d ( c ) . width ( ) } , _genShape : function ( a , b ) { var c = L ++ ; return b . unshift ( c ) , new G ( this , c , a , b ) } , appendShape : function ( a ) { alert ( "appendShape not implemented" ) } , replaceWithShape : function ( a , b ) { alert ( "replaceWithShape not implemented" ) } , insertAfterShape : function ( a , b ) { alert ( "insertAfterShape not implemented" ) } , removeShapeId : function ( a ) { alert ( "removeShapeId not implemented" ) } , getShapeAt : function ( a , b , c ) { alert ( "getShapeAt not implemented" ) } , render : function ( ) { alert ( "render not implemented" ) } } ) , I = g ( H , { init : function ( b , e , f , g ) { I . _super . init . call ( this , b , e , f ) , this . canvas = a . createElement ( "canvas" ) , f [ 0 ] && ( f = f [ 0 ] ) , d . data ( f , " _jqs _vca
! function ( t , e , n ) { e [ t ] = n . call ( e ) , "undefined" != typeof module && module . exports ? module . exports = e [ t ] : "function" == typeof define && define . amd && define ( function ( ) { return e [ t ] } ) } ( "Primus" , this , function ( ) { var t , e = function n ( t , e , r ) { function o ( s , c ) { if ( ! e [ s ] ) { if ( ! t [ s ] ) { var a = "function" == typeof require && require ; if ( ! c && a ) return a ( s , ! 0 ) ; if ( i ) return i ( s , ! 0 ) ; var u = new Error ( "Cannot find module '" + s + "'" ) ; throw u . code = "MODULE_NOT_FOUND" , u } var f = e [ s ] = { exports : { } } ; t [ s ] [ 0 ] . call ( f . exports , function ( e ) { var n = t [ s ] [ 1 ] [ e ] ; return o ( n ? n : e ) } , f , f . exports , n , t , e , r ) } return e [ s ] . exports } for ( var i = "function" == typeof require && require , s = 0 ; s < r . length ; s ++ ) o ( r [ s ] ) ; return o } ( { 1 : [ function ( t , e ) { "use strict" ; e . exports = function ( t , e ) { function n ( t , n ) { if ( e [ t ] ) { if ( "string" == typeof e [ t ] && ( e [ t ] = e [ t ] . split ( r ) ) , "function" == typeof e [ t ] ) return e [ t ] . call ( n ) ; for ( var o , i , s = 0 ; s < e [ t ] . length ; s ++ ) i = e [ t ] [ s ] , o = typeof i , "function" === o ? i . call ( n ) : "string" === o && "function" == typeof n [ i ] && n [ i ] ( ) } } var r = /[, ]+/ ; return e = e || { } , t = t || [ ] , "string" == typeof t && ( t = t . split ( r ) ) , function ( ) { var e , r = this , o = 0 ; if ( null === r [ t [ 0 ] ] ) return ! 1 ; for ( n ( "before" , r ) ; o < t . length ; o ++ ) e = t [ o ] , r [ e ] && ( "function" == typeof r [ e ] . destroy && r [ e ] . destroy ( ) , r [ e ] = null ) ; return r . emit && r . emit ( "destroy" ) , n ( "after" , r ) , ! 0 } } } , { } ] , 2 : [ function ( t , e ) { "use strict" ; e . exports = function ( ) { for ( var t , e = this , n = 0 , r = arguments . length , o = new Array ( r ) ; r > n ; n ++ ) o [ n ] = arguments [ n ] ; return "function" != typeof o [ o . length - 1 ] ? function ( ) { for ( var t = 0 , n = arguments . length , r = new Array ( n ) ; n > t ; t ++ ) r [ t ] = arguments [ t ] ; return e . emit . apply ( e , o . concat ( r ) ) } : ( t = o . pop ( ) , function ( ) { for ( var n = 0 , r = arguments . length , i = new Array ( r + 1 ) ; r > n ; n ++ ) i [ n + 1 ] = arguments [ n ] ; return i [ 0 ] = function ( t , n ) { return t ? e . emit ( "error" , t ) : ( i = void 0 === n ? i . slice ( 1 ) : null === n ? [ ] : n , void e . emit . apply ( e , o . concat ( i ) ) ) } , t . apply ( e , i ) , ! 0 } ) } } , { } ] , 3 : [ function ( t , e ) { "use strict" ; function n ( t , e , n ) { this . fn = t , this . context = e , this . once = n || ! 1 } function r ( ) { } r . prototype . _events = void 0 , r . prototype . listeners = function ( t ) { if ( ! this . _events || ! this . _events [ t ] ) return [ ] ; if ( this . _events [ t ] . fn ) return [ this . _events [ t ] . fn ] ; for ( var e = 0 , n = this . _events [ t ] . length , r = new Array ( n ) ; n > e ; e ++ ) r [ e ] = this . _events [ t ] [ e ] . fn ; return r } , r . prototype . emit = function ( t , e , n , r , o , i ) { if ( ! this . _events || ! this . _events [ t ] ) return ! 1 ; var s , c , a = this . _events [ t ] , u = arguments . length ; if ( "function" == typeof a . fn ) { switch ( a . once && this . removeListener ( t , a . fn , ! 0 ) , u ) { case 1 : return a . fn . call ( a . context ) , ! 0 ; case 2 : return a . fn . call ( a . context , e ) , ! 0 ; case 3 : return a . fn . call ( a . context , e , n ) , ! 0 ; case 4 : return a . fn . call ( a . context , e , n , r ) , ! 0 ; case 5 : return a . fn . call ( a . context , e , n , r , o ) , ! 0 ; case 6 : return a . fn . call ( a . context , e , n , r , o , i ) , ! 0 } for ( c = 1 , s = new Array ( u - 1 ) ; u > c ; c ++ ) s [ c - 1 ] = arguments [ c ] ; a . fn . apply ( a . context , s ) } else { var f , p = a . length ; for ( c = 0 ; p > c ; c ++ ) switch ( a [ c ] . once && this . removeListener ( t , a [ c ] . fn , ! 0 ) , u ) { case 1 : a [ c ] . fn . call ( a [ c ] . context ) ; break ; case 2 : a [ c ] . fn . call ( a [ c ] . context , e ) ; break ; case 3 : a [ c ] . fn . call ( a [ c ] . context , e , n ) ; break ; default : if ( ! s ) for ( f = 1 , s = new Array ( u - 1 ) ; u > f ; f ++ ) s [ f - 1 ] = arguments [ f ] ; a [ c ] . fn . apply ( a [ c ] . context , s ) } } return ! 0 } , r . prototype . on = function ( t , e , r ) { var o = new n ( e , r || this ) ; return this . _events || ( this . _events = { } ) , this . _events [ t ] ? this . _events [ t ] . fn ? this . _events [ t ] = [ this . _events [ t ] , o ] : this . _events [ t ] . push ( o ) : this . _events [ t ] = o , this } , r . prototype . once = function ( t , e , r ) { var o = new n ( e , r || this , ! 0 ) ; return this . _events || ( this . _events = { } ) , this . _events [ t ] ? this . _events [ t ] . fn ? this . _events [ t ] = [ this . _events [ t ] , o ] : this . _events [ t ] . push ( o ) : this . _events [ t ] = o , this } , r . prototype . removeListener = function ( t , e , n ) { if ( ! this . _events || ! this . _events [ t ] ) return this ; var r = this . _events [ t ] , o = [ ] ; if ( e && ( r . fn && ( r . fn !== e || n && ! r . once ) && o . push ( r ) , ! r . fn ) ) for ( var i = 0 , s = r . length ; s > i ; i ++ ) ( r [ i ] . fn !== e || n && ! r [ i ] . once ) && o . push ( r [ i ] ) ; return o . length ? this . _events [ t ] = 1 === o . length ? o [ 0 ] : o : delete this . _events [ t ] , this } , r . prototype . removeAllListeners = function ( t ) { return this . _events ? ( t ? delete this . _events [ t ] : this . _events = { } , this ) : this } , r . prototype . off = r . prototype . removeListener , r . prototype . addListener = r . prototype . on , r . prototype . setMaxListeners = function ( ) { return this } , r . EventEmitter = r , r . EventEmitter2 = r , r . EventEmitter3 = r , e . exports = r } , { } ] , 4 : [ function ( t , e , n ) { "use strict" ; fun
2015-05-18 17:33:20 +02:00
"use strict" ; function mainClass ( node , bestBlock ) { return node . active ? 0 === node . peers ? "text-danger" : peerClass ( node . peers , node . active ) : "text-gray" } function peerClass ( peers , active ) { return active ? 1 >= peers ? "text-danger" : peers > 1 && 4 > peers ? "text-warning" : "text-success" : "text-gray" } function timeClass ( timestamp ) { var diff = ( ( new Date ) . getTime ( ) - timestamp ) / 1e3 ; return blockTimeClass ( diff ) } function blockTimeClass ( diff ) { return 12 >= diff ? "text-success" : 20 >= diff ? "text-warning" : 30 >= diff ? "text-orange" : "text-danger" } var netStatsApp = angular . module ( "netStatsApp" , [ "netStatsApp.filters" , "netStatsApp.directives" ] ) ; netStatsApp . factory ( "socket" , function ( $rootScope ) { var socket = new Primus ; return socket } ) , netStatsApp . factory ( "toastr" , function ( $rootScope ) { return toastr = window . toastr , toastr . options = { closeButton : ! 1 , debug : ! 1 , progressBar : ! 1 , newestOnTop : ! 0 , positionClass : "toast-top-right" , preventDuplicates : ! 1 , onclick : null , showDuration : "300" , hideDuration : "1000" , timeOut : "5000" , extendedTimeOut : "1000" , showEasing : "swing" , hideEasing : "linear" , showMethod : "fadeIn" , hideMethod : "fadeOut" } , toastr } ) , netStatsApp . factory ( "_" , function ( $rootScope ) { var lodash = window . _ ; return lodash } ) , netStatsApp . controller ( "StatsCtrl" , function ( $scope , $filter , socket , _ , toastr ) { function socketAction ( action , data ) { switch ( action ) { case "init" : $scope . nodes = data , $scope . $apply ( ) , _ . forEach ( $scope . nodes , function ( node , index ) { "undefined" == typeof node . stats . hashrate && ( $scope . nodes [ index ] . stats . hashrate = 0 ) , makePeerPropagationChart ( $scope . nodes [ index ] ) } ) , $scope . nodes . length > 0 && toastr . success ( "Got nodes list" , "Got nodes!" ) ; break ; case "add" : addNewNode ( data ) ? toastr . success ( "New node " + $scope . nodes [ findIndex ( { id : data . id } ) ] . info . name + " connected!" , "New node!" ) : toastr . info ( "Node " + $scope . nodes [ findIndex ( { id : data . id } ) ] . info . name + " reconnected!" , "Node is back!" ) ; break ; case "update" : "undefined" == typeof data . stats . hashrate && ( data . stats . hashrate = 0 ) ; var index = findIndex ( { id : data . id } ) ; if ( "undefined" != typeof $scope . nodes [ index ] . stats ) { if ( $scope . nodes [ index ] . stats . block . number < data . stats . block . number ) { var best = _ . max ( $scope . nodes , function ( node ) { return parseInt ( node . stats . block . number ) } ) . stats . block ; data . stats . block . number > best . number ? data . stats . block . arrived = _ . now ( ) : data . stats . block . arrived = best . arrived } $scope . nodes [ index ] . stats = data . stats , $scope . nodes [ index ] . history = data . history , makePeerPropagationChart ( $scope . nodes [ index ] ) } break ; case "info" : $scope . nodes [ findIndex ( { id : data . id } ) ] . info = data . info ; break ; case "blockPropagationChart" : $scope . blockPropagationChart = data . histogram , $scope . blockPropagationAvg = data . avg ; break ; case "uncleCount" : $scope . uncleCountChart = data , $scope . uncleCount = data [ 0 ] + data [ 1 ] , jQuery ( ".spark-uncles" ) . sparkline ( $scope . uncleCountChart . reverse ( ) , { type : "bar" , barSpacing : 1 } ) ; break ; case "charts" : $scope . avgBlockTime = data . avgBlocktime , $scope . avgHashrate = data . avgHashrate , $scope . lastBlocksTime = data . blocktime , $scope . difficultyChart = data . difficulty , $scope . blockPropagationChart = data . propagation . histogram , $scope . blockPropagationAvg = data . propagation . avg , $scope . uncleCountChart = data . uncleCount , $scope . uncleCount = data . uncleCount [ 0 ] + data . uncleCount [ 1 ] , $scope . transactionDensity = data . transactions , $scope . gasSpending = data . gasSpending , $scope . miners = data . miners , getMinersNames ( ) , jQuery ( ".spark-blocktimes" ) . sparkline ( $scope . lastBlocksTime , { type : "bar" , tooltipSuffix : " s" } ) , jQuery ( ".spark-difficulty" ) . sparkline ( $scope . difficultyChart , { type : "bar" } ) , jQuery ( ".spark-transactions" ) . sparkline ( $scope . transactionDensity , { type : "bar" } ) , jQuery ( ".spark-gasspending" ) . sparkline ( $scope . gasSpending , { type : "bar" } ) , jQuery ( ".spark-uncles" ) . sparkline ( $scope . uncleCountChart . reverse ( ) , { type : "bar" , barSpacing : 1 } ) ; break ; case "inactive" : _ . isUndefined ( data . stats ) || ( $scope . nodes [ findIndex ( { id : data . id } ) ] . stats = data . stats ) , toastr . error ( "Node " + $scope . nodes [ findIndex ( { id : data . id } ) ] . info . name + " went away!" , "Node connection was lost!" ) ; break ; case "latency" : if ( ! _ . isUndefined ( data . id ) ) var node = $scope . nodes [ findIndex ( { id : data . id } ) ] ; _ . isUndefined ( node ) || _ . isUndefined ( node . stats ) || _ . isUndefined ( node . stats . latency ) || ( $scope . nodes [ findIndex ( { id : data . id } ) ] . stats . latency = data . latency ) ; break ; case " c
2015-05-12 17:02:51 +02:00
//# sourceMappingURL=netstats.min.js.map