2023-02-05 19:26:26 +00:00
/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */
2024-10-19 21:12:30 +00:00
! function ( e , t ) { "use strict" ; "object" == typeof module && "object" == typeof module . exports ? module . exports = e . document ? t ( e , ! 0 ) : function ( e ) { if ( ! e . document ) throw new Error ( "jQuery requires a window with a document" ) ; return t ( e ) } : t ( e ) } ( "undefined" != typeof window ? window : this , function ( C , e ) { "use strict" ; var t = [ ] , r = Object . getPrototypeOf , s = t . slice , g = t . flat ? function ( e ) { return t . flat . call ( e ) } : function ( e ) { return t . concat . apply ( [ ] , e ) } , u = t . push , i = t . indexOf , n = { } , o = n . toString , v = n . hasOwnProperty , a = v . toString , l = a . call ( Object ) , y = { } , m = function ( e ) { return "function" == typeof e && "number" != typeof e . nodeType && "function" != typeof e . item } , x = function ( e ) { return null != e && e === e . window } , E = C . document , c = { type : ! 0 , src : ! 0 , nonce : ! 0 , noModule : ! 0 } ; function b ( e , t , n ) { var r , i , o = ( n = n || E ) . createElement ( "script" ) ; if ( o . text = e , t ) for ( r in c ) ( i = t [ r ] || t . getAttribute && t . getAttribute ( r ) ) && o . setAttribute ( r , i ) ; n . head . appendChild ( o ) . parentNode . removeChild ( o ) } function w ( e ) { return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n [ o . call ( e ) ] || "object" : typeof e }
var f = "3.6.0" , S = function ( e , t ) { return new S . fn . init ( e , t ) } ; function p ( e ) { var t = ! ! e && "length" in e && e . length , n = w ( e ) ; return ! m ( e ) && ! x ( e ) && ( "array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e ) } S . fn = S . prototype = { jquery : f , constructor : S , length : 0 , toArray : function ( ) { return s . call ( this ) } , get : function ( e ) { return null == e ? s . call ( this ) : e < 0 ? this [ e + this . length ] : this [ e ] } , pushStack : function ( e ) { var t = S . merge ( this . constructor ( ) , e ) ; return t . prevObject = this , t } , each : function ( e ) { return S . each ( this , e ) } , map : function ( n ) { return this . pushStack ( S . map ( this , function ( e , t ) { return n . call ( e , t , e ) } ) ) } , slice : function ( ) { return this . pushStack ( s . apply ( this , arguments ) ) } , first : function ( ) { return this . eq ( 0 ) } , last : function ( ) { return this . eq ( - 1 ) } , even : function ( ) { return this . pushStack ( S . grep ( this , function ( e , t ) { return ( t + 1 ) % 2 } ) ) } , odd : function ( ) { return this . pushStack ( S . grep ( this , function ( e , t ) { return t % 2 } ) ) } , eq : function ( e ) { var t = this . length , n = + e + ( e < 0 ? t : 0 ) ; return this . pushStack ( 0 <= n && n < t ? [ this [ n ] ] : [ ] ) } , end : function ( ) { return this . prevObject || this . constructor ( ) } ,
push : u , sort : t . sort , splice : t . splice } , S . extend = S . fn . extend = function ( ) { var e , t , n , r , i , o , a = arguments [ 0 ] || { } , s = 1 , u = arguments . length , l = ! 1 ; for ( "boolean" == typeof a && ( l = a , a = arguments [ s ] || { } , s ++ ) , "object" == typeof a || m ( a ) || ( a = { } ) , s === u && ( a = this , s -- ) ; s < u ; s ++ ) if ( null != ( e = arguments [ s ] ) ) for ( t in e ) r = e [ t ] , "__proto__" !== t && a !== r && ( l && r && ( S . isPlainObject ( r ) || ( i = Array . isArray ( r ) ) ) ? ( n = a [ t ] , o = i && ! Array . isArray ( n ) ? [ ] : i || S . isPlainObject ( n ) ? n : { } , i = ! 1 , a [ t ] = S . extend ( l , o , r ) ) : void 0 !== r && ( a [ t ] = r ) ) ; return a } , S . extend ( { expando : "jQuery" + ( f + Math . random ( ) ) . replace ( /\D/g , "" ) , isReady : ! 0 , error : function ( e ) { throw new Error ( e ) } , noop : function ( ) { } , isPlainObject : function ( e ) { var t , n ; return ! ( ! e || "[object Object]" !== o . call ( e ) ) && ( ! ( t = r ( e ) ) || "function" == typeof ( n = v . call ( t , "constructor" ) && t . constructor ) && a . call ( n ) === l ) } , isEmptyObject : function ( e ) { var t ; for ( t in e ) return ! 1 ; return ! 0 } , globalEval : function ( e , t , n ) { b ( e , { nonce : t && t . nonce } , n ) } , each : function ( e , t ) { var n , r = 0 ; if ( p ( e ) ) { for ( n = e . length ; r < n ; r ++ ) if ( ! 1 === t . call ( e [ r ] , r , e [ r ] ) ) break } else for ( r in e ) if ( ! 1 === t . call (
e [ r ] , r , e [ r ] ) ) break ; return e } , makeArray : function ( e , t ) { var n = t || [ ] ; return null != e && ( p ( Object ( e ) ) ? S . merge ( n , "string" == typeof e ? [ e ] : e ) : u . call ( n , e ) ) , n } , inArray : function ( e , t , n ) { return null == t ? - 1 : i . call ( t , e , n ) } , merge : function ( e , t ) { for ( var n = + t . length , r = 0 , i = e . length ; r < n ; r ++ ) e [ i ++ ] = t [ r ] ; return e . length = i , e } , grep : function ( e , t , n ) { for ( var r = [ ] , i = 0 , o = e . length , a = ! n ; i < o ; i ++ ) ! t ( e [ i ] , i ) !== a && r . push ( e [ i ] ) ; return r } , map : function ( e , t , n ) { var r , i , o = 0 , a = [ ] ; if ( p ( e ) ) for ( r = e . length ; o < r ; o ++ ) null != ( i = t ( e [ o ] , o , n ) ) && a . push ( i ) ; else for ( o in e ) null != ( i = t ( e [ o ] , o , n ) ) && a . push ( i ) ; return g ( a ) } , guid : 1 , support : y } ) , "function" == typeof Symbol && ( S . fn [ Symbol . iterator ] = t [ Symbol . iterator ] ) , S . each ( "Boolean Number String Function Array Date RegExp Object Error Symbol" . split ( " " ) , function ( e , t ) { n [ "[object " + t + "]" ] = t . toLowerCase ( ) } ) ; var d = function ( n ) { var e , d , b , o , i , h , f , g , w , u , l , T , C , a , E , v , s , c , y , S = "sizzle" + 1 * new Date , p = n . document , k = 0 , r = 0 , m = ue ( ) , x = ue ( ) , A = ue ( ) , N = ue ( ) , j = function ( e , t ) { return e === t && ( l = ! 0 ) , 0 } , D = { } . hasOwnProperty , t = [ ] , q = t . pop , L = t . push , H = t . push ,
O = t . slice , P = function ( e , t ) { for ( var n = 0 , r = e . length ; n < r ; n ++ ) if ( e [ n ] === t ) return n ; return - 1 } , R = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped" , M = "[\\x20\\t\\r\\n\\f]" , I = "(?:\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+" , W = "\\[" + M + "*(" + I + ")(?:" + M + "*([*^$|!~]?=)" + M + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + I + "))|)" + M + "*\\]" , F = ":(" + I + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + W + ")*)|.*)\\)|)" , B = new RegExp ( M + "+" , "g" ) , $ = new RegExp ( "^" + M + "+|((?:^|[^\\\\])(?:\\\\.)*)" + M + "+$" , "g" ) , _ = new RegExp ( "^" + M + "*," + M + "*" ) , z = new RegExp ( "^" + M + "*([>+~]|" + M + ")" + M + "*" ) , U = new RegExp ( M + "|>" ) , X = new RegExp ( F ) , V = new RegExp ( "^" + I + "$" ) , G = { ID : new RegExp ( "^#(" + I + ")" ) , CLASS : new RegExp ( "^\\.(" + I + ")" ) , TAG : new RegExp ( "^(" + I + "|[*])" ) , ATTR : new RegExp ( "^" + W ) , PSEUDO : new RegExp ( "^" + F ) , CHILD : new RegExp (
"^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + M + "*(even|odd|(([+-]|)(\\d*)n|)" + M + "*(?:([+-]|)" + M + "*(\\d+)|))" + M + "*\\)|)" , "i" ) , bool : new RegExp ( "^(?:" + R + ")$" , "i" ) , needsContext : new RegExp ( "^" + M + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + M + "*((?:-\\d)?\\d*)" + M + "*\\)|)(?=[^-]|$)" , "i" ) } , Y = /HTML$/i , Q = /^(?:input|select|textarea|button)$/i , J = /^h\d$/i , K = /^[^{]+\{\s*\[native \w/ , Z = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/ , ee = /[+~]/ , te = new RegExp ( "\\\\[\\da-fA-F]{1,6}" + M + "?|\\\\([^\\r\\n\\f])" , "g" ) , ne = function ( e , t ) { var n = "0x" + e . slice ( 1 ) - 65536 ; return t || ( n < 0 ? String . fromCharCode ( n + 65536 ) : String . fromCharCode ( n >> 10 | 55296 , 1023 & n | 56320 ) ) } , re = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g , ie = function ( e , t ) { return t ? "\0" === e ? "<22> " : e . slice ( 0 , - 1 ) + "\\" + e . charCodeAt ( e . length - 1 ) . toString ( 16 ) + " " : "\\" + e } , oe = function ( ) { T ( ) } , ae = be ( function ( e ) { return ! 0 === e . disabled && "fieldset" === e . nodeName . toLowerCase ( ) } , { dir : "parentNode" , next : "legend" } ) ; try { H . apply ( t = O . call ( p . childNodes ) , p . childNodes ) , t [ p . childNodes . length ] . nodeType
} catch ( e ) { H = { apply : t . length ? function ( e , t ) { L . apply ( e , O . call ( t ) ) } : function ( e , t ) { var n = e . length , r = 0 ; while ( e [ n ++ ] = t [ r ++ ] ) ; e . length = n - 1 } } } function se ( t , e , n , r ) { var i , o , a , s , u , l , c , f = e && e . ownerDocument , p = e ? e . nodeType : 9 ; if ( n = n || [ ] , "string" != typeof t || ! t || 1 !== p && 9 !== p && 11 !== p ) return n ; if ( ! r && ( T ( e ) , e = e || C , E ) ) { if ( 11 !== p && ( u = Z . exec ( t ) ) ) if ( i = u [ 1 ] ) { if ( 9 === p ) { if ( ! ( a = e . getElementById ( i ) ) ) return n ; if ( a . id === i ) return n . push ( a ) , n } else if ( f && ( a = f . getElementById ( i ) ) && y ( e , a ) && a . id === i ) return n . push ( a ) , n } else { if ( u [ 2 ] ) return H . apply ( n , e . getElementsByTagName ( t ) ) , n ; if ( ( i = u [ 3 ] ) && d . getElementsByClassName && e . getElementsByClassName ) return H . apply ( n , e . getElementsByClassName ( i ) ) , n } if ( d . qsa && ! N [ t + " " ] && ( ! v || ! v . test ( t ) ) && ( 1 !== p || "object" !== e . nodeName . toLowerCase ( ) ) ) { if ( c = t , f = e , 1 === p && ( U . test ( t ) || z . test ( t ) ) ) { ( f = ee . test ( t ) && ye ( e . parentNode ) || e ) === e && d . scope || ( ( s = e . getAttribute ( "id" ) ) ? s = s . replace ( re , ie ) : e . setAttribute ( "id" , s = S ) ) , o = ( l = h ( t ) ) . length ; while ( o -- ) l [ o ] = ( s ? "#" + s : ":scope" ) + " " + xe ( l [ o ] ) ; c = l . join ( "," ) } try { return H . apply ( n , f . querySelectorAll ( c
) ) , n } catch ( e ) { N ( t , ! 0 ) } finally { s === S && e . removeAttribute ( "id" ) } } } return g ( t . replace ( $ , "$1" ) , e , n , r ) } function ue ( ) { var r = [ ] ; return function e ( t , n ) { return r . push ( t + " " ) > b . cacheLength && delete e [ r . shift ( ) ] , e [ t + " " ] = n } } function le ( e ) { return e [ S ] = ! 0 , e } function ce ( e ) { var t = C . createElement ( "fieldset" ) ; try { return ! ! e ( t ) } catch ( e ) { return ! 1 } finally { t . parentNode && t . parentNode . removeChild ( t ) , t = null } } function fe ( e , t ) { var n = e . split ( "|" ) , r = n . length ; while ( r -- ) b . attrHandle [ n [ r ] ] = t } function pe ( e , t ) { var n = t && e , r = n && 1 === e . nodeType && 1 === t . nodeType && e . sourceIndex - t . sourceIndex ; if ( r ) return r ; if ( n ) while ( n = n . nextSibling ) if ( n === t ) return - 1 ; return e ? 1 : - 1 } function de ( t ) { return function ( e ) { return "input" === e . nodeName . toLowerCase ( ) && e . type === t } } function he ( n ) { return function ( e ) { var t = e . nodeName . toLowerCase ( ) ; return ( "input" === t || "button" === t ) && e . type === n } } function ge ( t ) { return function ( e ) {
return "form" in e ? e . parentNode && ! 1 === e . disabled ? "label" in e ? "label" in e . parentNode ? e . parentNode . disabled === t : e . disabled === t : e . isDisabled === t || e . isDisabled !== ! t && ae ( e ) === t : e . disabled === t : "label" in e && e . disabled === t } } function ve ( a ) { return le ( function ( o ) { return o = + o , le ( function ( e , t ) { var n , r = a ( [ ] , e . length , o ) , i = r . length ; while ( i -- ) e [ n = r [ i ] ] && ( e [ n ] = ! ( t [ n ] = e [ n ] ) ) } ) } ) } function ye ( e ) { return e && "undefined" != typeof e . getElementsByTagName && e } for ( e in d = se . support = { } , i = se . isXML = function ( e ) { var t = e && e . namespaceURI , n = e && ( e . ownerDocument || e ) . documentElement ; return ! Y . test ( t || n && n . nodeName || "HTML" ) } , T = se . setDocument = function ( e ) { var t , n , r = e ? e . ownerDocument || e : p ; return r != C && 9 === r . nodeType && r . documentElement && ( a = ( C = r ) . documentElement , E = ! i ( C ) , p != C && ( n = C . defaultView ) && n . top !== n && ( n . addEventListener ? n . addEventListener ( "unload" , oe , ! 1 ) : n . attachEvent && n . attachEvent ( "onunload" , oe ) ) , d . scope = ce ( function ( e ) { return a . appendChild ( e ) . appendChild ( C . createElement ( "div" ) ) , "undefined" != typeof e . querySelectorAll && ! e . querySelectorAll (
":scope fieldset div" ) . length } ) , d . attributes = ce ( function ( e ) { return e . className = "i" , ! e . getAttribute ( "className" ) } ) , d . getElementsByTagName = ce ( function ( e ) { return e . appendChild ( C . createComment ( "" ) ) , ! e . getElementsByTagName ( "*" ) . length } ) , d . getElementsByClassName = K . test ( C . getElementsByClassName ) , d . getById = ce ( function ( e ) { return a . appendChild ( e ) . id = S , ! C . getElementsByName || ! C . getElementsByName ( S ) . length } ) , d . getById ? ( b . filter . ID = function ( e ) { var t = e . replace ( te , ne ) ; return function ( e ) { return e . getAttribute ( "id" ) === t } } , b . find . ID = function ( e , t ) { if ( "undefined" != typeof t . getElementById && E ) { var n = t . getElementById ( e ) ; return n ? [ n ] : [ ] } } ) : ( b . filter . ID = function ( e ) { var n = e . replace ( te , ne ) ; return function ( e ) { var t = "undefined" != typeof e . getAttributeNode && e . getAttributeNode ( "id" ) ; return t && t . value === n } } , b . find . ID = function ( e , t ) { if ( "undefined" != typeof t . getElementById && E ) { var n , r , i , o = t . getElementById ( e ) ; if ( o ) { if ( ( n = o . getAttributeNode ( "id" ) ) && n . value === e ) return [ o ] ; i = t . getElementsByName ( e ) , r = 0 ; while ( o = i [ r ++ ] ) if ( ( n = o . getAttributeNode ( "id" )
) && n . value === e ) return [ o ] } return [ ] } } ) , b . find . TAG = d . getElementsByTagName ? function ( e , t ) { return "undefined" != typeof t . getElementsByTagName ? t . getElementsByTagName ( e ) : d . qsa ? t . querySelectorAll ( e ) : void 0 } : function ( e , t ) { var n , r = [ ] , i = 0 , o = t . getElementsByTagName ( e ) ; if ( "*" === e ) { while ( n = o [ i ++ ] ) 1 === n . nodeType && r . push ( n ) ; return r } return o } , b . find . CLASS = d . getElementsByClassName && function ( e , t ) { if ( "undefined" != typeof t . getElementsByClassName && E ) return t . getElementsByClassName ( e ) } , s = [ ] , v = [ ] , ( d . qsa = K . test ( C . querySelectorAll ) ) && ( ce ( function ( e ) { var t ; a . appendChild ( e ) . innerHTML = "<a id='" + S + "'></a><select id='" + S + "-\r\\' msallowcapture=''><option selected=''></option></select>" , e . querySelectorAll ( "[msallowcapture^='']" ) . length && v . push ( "[*^$]=" + M + "*(?:''|\"\")" ) , e . querySelectorAll ( "[selected]" ) . length || v . push ( "\\[" + M + "*(?:value|" + R + ")" ) , e . querySelectorAll ( "[id~=" + S + "-]" ) . length || v . push ( "~=" ) , ( t = C . createElement ( "input" ) ) . setAttribute ( "name" , "" ) , e . appendChild ( t ) , e . querySelectorAll ( "[name='']" ) . length || v . push (
"\\[" + M + "*name" + M + "*=" + M + "*(?:''|\"\")" ) , e . querySelectorAll ( ":checked" ) . length || v . push ( ":checked" ) , e . querySelectorAll ( "a#" + S + "+*" ) . length || v . push ( ".#.+[+~]" ) , e . querySelectorAll ( "\\\f" ) , v . push ( "[\\r\\n\\f]" ) } ) , ce ( function ( e ) { e . innerHTML = "<a href='' disabled='disabled'></a><select disabled='disabled'><option/></select>" ; var t = C . createElement ( "input" ) ; t . setAttribute ( "type" , "hidden" ) , e . appendChild ( t ) . setAttribute ( "name" , "D" ) , e . querySelectorAll ( "[name=d]" ) . length && v . push ( "name" + M + "*[*^$|!~]?=" ) , 2 !== e . querySelectorAll ( ":enabled" ) . length && v . push ( ":enabled" , ":disabled" ) , a . appendChild ( e ) . disabled = ! 0 , 2 !== e . querySelectorAll ( ":disabled" ) . length && v . push ( ":enabled" , ":disabled" ) , e . querySelectorAll ( "*,:x" ) , v . push ( ",.*:" ) } ) ) , ( d . matchesSelector = K . test ( c = a . matches || a . webkitMatchesSelector || a . mozMatchesSelector || a . oMatchesSelector || a . msMatchesSelector ) ) && ce ( function ( e ) { d . disconnectedMatch = c . call ( e , "*" ) , c . call ( e , "[s!='']:x" ) , s . push ( "!=" , F ) } ) , v = v . length && new RegExp ( v . join ( "|" ) ) , s = s . length && new RegExp ( s . join ( "|" ) ) , t = K . test (
a . compareDocumentPosition ) , y = t || K . test ( a . contains ) ? function ( e , t ) { var n = 9 === e . nodeType ? e . documentElement : e , r = t && t . parentNode ; return e === r || ! ( ! r || 1 !== r . nodeType || ! ( n . contains ? n . contains ( r ) : e . compareDocumentPosition && 16 & e . compareDocumentPosition ( r ) ) ) } : function ( e , t ) { if ( t ) while ( t = t . parentNode ) if ( t === e ) return ! 0 ; return ! 1 } , j = t ? function ( e , t ) { if ( e === t ) return l = ! 0 , 0 ; var n = ! e . compareDocumentPosition - ! t . compareDocumentPosition ; return n || ( 1 & ( n = ( e . ownerDocument || e ) == ( t . ownerDocument || t ) ? e . compareDocumentPosition ( t ) : 1 ) || ! d . sortDetached && t . compareDocumentPosition ( e ) === n ? e == C || e . ownerDocument == p && y ( p , e ) ? - 1 : t == C || t . ownerDocument == p && y ( p , t ) ? 1 : u ? P ( u , e ) - P ( u , t ) : 0 : 4 & n ? - 1 : 1 ) } : function ( e , t ) { if ( e === t ) return l = ! 0 , 0 ; var n , r = 0 , i = e . parentNode , o = t . parentNode , a = [ e ] , s = [ t ] ; if ( ! i || ! o ) return e == C ? - 1 : t == C ? 1 : i ? - 1 : o ? 1 : u ? P ( u , e ) - P ( u , t ) : 0 ; if ( i === o ) return pe ( e , t ) ; n = e ; while ( n = n . parentNode ) a . unshift ( n ) ; n = t ; while ( n = n . parentNode ) s . unshift ( n ) ; while ( a [ r ] === s [ r ] ) r ++ ; return r ? pe ( a [ r ] , s [ r ] ) : a [ r ] == p ? - 1 : s [ r ] == p ? 1 : 0 } ) , C } , se . matches = function ( e , t ) { return se ( e , null ,
null , t ) } , se . matchesSelector = function ( e , t ) { if ( T ( e ) , d . matchesSelector && E && ! N [ t + " " ] && ( ! s || ! s . test ( t ) ) && ( ! v || ! v . test ( t ) ) ) try { var n = c . call ( e , t ) ; if ( n || d . disconnectedMatch || e . document && 11 !== e . document . nodeType ) return n } catch ( e ) { N ( t , ! 0 ) } return 0 < se ( t , C , null , [ e ] ) . length } , se . contains = function ( e , t ) { return ( e . ownerDocument || e ) != C && T ( e ) , y ( e , t ) } , se . attr = function ( e , t ) { ( e . ownerDocument || e ) != C && T ( e ) ; var n = b . attrHandle [ t . toLowerCase ( ) ] , r = n && D . call ( b . attrHandle , t . toLowerCase ( ) ) ? n ( e , t , ! E ) : void 0 ; return void 0 !== r ? r : d . attributes || ! E ? e . getAttribute ( t ) : ( r = e . getAttributeNode ( t ) ) && r . specified ? r . value : null } , se . escape = function ( e ) { return ( e + "" ) . replace ( re , ie ) } , se . error = function ( e ) { throw new Error ( "Syntax error, unrecognized expression: " + e ) } , se . uniqueSort = function ( e ) { var t , n = [ ] , r = 0 , i = 0 ; if ( l = ! d . detectDuplicates , u = ! d . sortStable && e . slice ( 0 ) , e . sort ( j ) , l ) { while ( t = e [ i ++ ] ) t === e [ i ] && ( r = n . push ( i ) ) ; while ( r -- ) e . splice ( n [ r ] , 1 ) } return u = null , e } , o = se . getText = function ( e ) { var t , n = "" , r = 0 , i = e . nodeType ; if ( i ) { if ( 1 === i || 9 === i || 11 === i ) { if (
"string" == typeof e . textContent ) return e . textContent ; for ( e = e . firstChild ; e ; e = e . nextSibling ) n += o ( e ) } else if ( 3 === i || 4 === i ) return e . nodeValue } else while ( t = e [ r ++ ] ) n += o ( t ) ; return n } , ( b = se . selectors = { cacheLength : 50 , createPseudo : le , match : G , attrHandle : { } , find : { } , relative : { ">" : { dir : "parentNode" , first : ! 0 } , " " : { dir : "parentNode" } , "+" : { dir : "previousSibling" , first : ! 0 } , "~" : { dir : "previousSibling" } } , preFilter : { ATTR : function ( e ) { return e [ 1 ] = e [ 1 ] . replace ( te , ne ) , e [ 3 ] = ( e [ 3 ] || e [ 4 ] || e [ 5 ] || "" ) . replace ( te , ne ) , "~=" === e [ 2 ] && ( e [ 3 ] = " " + e [ 3 ] + " " ) , e . slice ( 0 , 4 ) } , CHILD : function ( e ) { return e [ 1 ] = e [ 1 ] . toLowerCase ( ) , "nth" === e [ 1 ] . slice ( 0 , 3 ) ? ( e [ 3 ] || se . error ( e [ 0 ] ) , e [ 4 ] = + ( e [ 4 ] ? e [ 5 ] + ( e [ 6 ] || 1 ) : 2 * ( "even" === e [ 3 ] || "odd" === e [ 3 ] ) ) , e [ 5 ] = + ( e [ 7 ] + e [ 8 ] || "odd" === e [ 3 ] ) ) : e [ 3 ] && se . error ( e [ 0 ] ) , e } , PSEUDO : function ( e ) { var t , n = ! e [ 6 ] && e [ 2 ] ; return G . CHILD . test ( e [ 0 ] ) ? null : ( e [ 3 ] ? e [ 2 ] = e [ 4 ] || e [ 5 ] || "" : n && X . test ( n ) && ( t = h ( n , ! 0 ) ) && ( t = n . indexOf ( ")" , n . length - t ) - n . length ) && ( e [ 0 ] = e [ 0 ] . slice ( 0 , t ) , e [ 2 ] = n . slice ( 0 , t ) ) , e . slice ( 0 , 3 ) ) } } , filter : { TAG : function ( e ) { var t = e . replace ( te , ne
) . toLowerCase ( ) ; return "*" === e ? function ( ) { return ! 0 } : function ( e ) { return e . nodeName && e . nodeName . toLowerCase ( ) === t } } , CLASS : function ( e ) { var t = m [ e + " " ] ; return t || ( t = new RegExp ( "(^|" + M + ")" + e + "(" + M + "|$)" ) ) && m ( e , function ( e ) { return t . test ( "string" == typeof e . className && e . className || "undefined" != typeof e . getAttribute && e . getAttribute ( "class" ) || "" ) } ) } , ATTR : function ( n , r , i ) { return function ( e ) { var t = se . attr ( e , n ) ; return null == t ? "!=" === r : ! r || ( t += "" , "=" === r ? t === i : "!=" === r ? t !== i : "^=" === r ? i && 0 === t . indexOf ( i ) : "*=" === r ? i && - 1 < t . indexOf ( i ) : "$=" === r ? i && t . slice ( - i . length ) === i : "~=" === r ? - 1 < ( " " + t . replace ( B , " " ) + " " ) . indexOf ( i ) : "|=" === r && ( t === i || t . slice ( 0 , i . length + 1 ) === i + "-" ) ) } } , CHILD : function ( h , e , t , g , v ) { var y = "nth" !== h . slice ( 0 , 3 ) , m = "last" !== h . slice ( - 4 ) , x = "of-type" === e ; return 1 === g && 0 === v ? function ( e ) { return ! ! e . parentNode } : function ( e , t , n ) { var r , i , o , a , s , u , l = y !== m ? "nextSibling" : "previousSibling" , c = e . parentNode , f = x && e . nodeName . toLowerCase ( ) , p = ! n && ! x , d = ! 1 ; if ( c ) { if ( y ) { while ( l ) { a = e ; while ( a = a [ l ] ) if ( x ? a . nodeName . toLowerCase ( ) === f : 1 === a . nodeType
) return ! 1 ; u = l = "only" === h && ! u && "nextSibling" } return ! 0 } if ( u = [ m ? c . firstChild : c . lastChild ] , m && p ) { d = ( s = ( r = ( i = ( o = ( a = c ) [ S ] || ( a [ S ] = { } ) ) [ a . uniqueID ] || ( o [ a . uniqueID ] = { } ) ) [ h ] || [ ] ) [ 0 ] === k && r [ 1 ] ) && r [ 2 ] , a = s && c . childNodes [ s ] ; while ( a = ++ s && a && a [ l ] || ( d = s = 0 ) || u . pop ( ) ) if ( 1 === a . nodeType && ++ d && a === e ) { i [ h ] = [ k , s , d ] ; break } } else if ( p && ( d = s = ( r = ( i = ( o = ( a = e ) [ S ] || ( a [ S ] = { } ) ) [ a . uniqueID ] || ( o [ a . uniqueID ] = { } ) ) [ h ] || [ ] ) [ 0 ] === k && r [ 1 ] ) , ! 1 === d ) while ( a = ++ s && a && a [ l ] || ( d = s = 0 ) || u . pop ( ) ) if ( ( x ? a . nodeName . toLowerCase ( ) === f : 1 === a . nodeType ) && ++ d && ( p && ( ( i = ( o = a [ S ] || ( a [ S ] = { } ) ) [ a . uniqueID ] || ( o [ a . uniqueID ] = { } ) ) [ h ] = [ k , d ] ) , a === e ) ) break ; return ( d -= v ) === g || d % g == 0 && 0 <= d / g } } } , PSEUDO : function ( e , o ) { var t , a = b . pseudos [ e ] || b . setFilters [ e . toLowerCase ( ) ] || se . error ( "unsupported pseudo: " + e ) ; return a [ S ] ? a ( o ) : 1 < a . length ? ( t = [ e , e , "" , o ] , b . setFilters . hasOwnProperty ( e . toLowerCase ( ) ) ? le ( function ( e , t ) { var n , r = a ( e , o ) , i = r . length ; while ( i -- ) e [ n = P ( e , r [ i ] ) ] = ! ( t [ n ] = r [ i ] ) } ) : function ( e ) { return a ( e , 0 , t ) } ) : a } } , pseudos : { not : le ( function ( e ) { var r = [ ] , i = [ ] , s = f ( e . replace ( $ , "$1" ) ) ; return s [ S ] ? le (
function ( e , t , n , r ) { var i , o = s ( e , null , r , [ ] ) , a = e . length ; while ( a -- ) ( i = o [ a ] ) && ( e [ a ] = ! ( t [ a ] = i ) ) } ) : function ( e , t , n ) { return r [ 0 ] = e , s ( r , null , n , i ) , r [ 0 ] = null , ! i . pop ( ) } } ) , has : le ( function ( t ) { return function ( e ) { return 0 < se ( t , e ) . length } } ) , contains : le ( function ( t ) { return t = t . replace ( te , ne ) , function ( e ) { return - 1 < ( e . textContent || o ( e ) ) . indexOf ( t ) } } ) , lang : le ( function ( n ) { return V . test ( n || "" ) || se . error ( "unsupported lang: " + n ) , n = n . replace ( te , ne ) . toLowerCase ( ) , function ( e ) { var t ; do { if ( t = E ? e . lang : e . getAttribute ( "xml:lang" ) || e . getAttribute ( "lang" ) ) return ( t = t . toLowerCase ( ) ) === n || 0 === t . indexOf ( n + "-" ) } while ( ( e = e . parentNode ) && 1 === e . nodeType ) ; return ! 1 } } ) , target : function ( e ) { var t = n . location && n . location . hash ; return t && t . slice ( 1 ) === e . id } , root : function ( e ) { return e === a } , focus : function ( e ) { return e === C . activeElement && ( ! C . hasFocus || C . hasFocus ( ) ) && ! ! ( e . type || e . href || ~ e . tabIndex ) } , enabled : ge ( ! 1 ) , disabled : ge ( ! 0 ) , checked : function ( e ) { var t = e . nodeName . toLowerCase ( ) ; return "input" === t && ! ! e . checked || "option" === t && ! ! e . selected } , selected : function ( e ) {
return e . parentNode && e . parentNode . selectedIndex , ! 0 === e . selected } , empty : function ( e ) { for ( e = e . firstChild ; e ; e = e . nextSibling ) if ( e . nodeType < 6 ) return ! 1 ; return ! 0 } , parent : function ( e ) { return ! b . pseudos . empty ( e ) } , header : function ( e ) { return J . test ( e . nodeName ) } , input : function ( e ) { return Q . test ( e . nodeName ) } , button : function ( e ) { var t = e . nodeName . toLowerCase ( ) ; return "input" === t && "button" === e . type || "button" === t } , text : function ( e ) { var t ; return "input" === e . nodeName . toLowerCase ( ) && "text" === e . type && ( null == ( t = e . getAttribute ( "type" ) ) || "text" === t . toLowerCase ( ) ) } , first : ve ( function ( ) { return [ 0 ] } ) , last : ve ( function ( e , t ) { return [ t - 1 ] } ) , eq : ve ( function ( e , t , n ) { return [ n < 0 ? n + t : n ] } ) , even : ve ( function ( e , t ) { for ( var n = 0 ; n < t ; n += 2 ) e . push ( n ) ; return e } ) , odd : ve ( function ( e , t ) { for ( var n = 1 ; n < t ; n += 2 ) e . push ( n ) ; return e } ) , lt : ve ( function ( e , t , n ) { for ( var r = n < 0 ? n + t : t < n ? t : n ; 0 <= -- r ; ) e . push ( r ) ; return e } ) , gt : ve ( function ( e , t , n ) { for ( var r = n < 0 ? n + t : n ; ++ r < t ; ) e . push ( r ) ; return e } ) } } ) . pseudos . nth = b . pseudos . eq , { radio : ! 0 , checkbox : ! 0 , file : ! 0 , password : ! 0 , image : ! 0 } ) b . pseudos [ e ] = de ( e ) ;
for ( e in { submit : ! 0 , reset : ! 0 } ) b . pseudos [ e ] = he ( e ) ; function me ( ) { } function xe ( e ) { for ( var t = 0 , n = e . length , r = "" ; t < n ; t ++ ) r += e [ t ] . value ; return r } function be ( s , e , t ) { var u = e . dir , l = e . next , c = l || u , f = t && "parentNode" === c , p = r ++ ; return e . first ? function ( e , t , n ) { while ( e = e [ u ] ) if ( 1 === e . nodeType || f ) return s ( e , t , n ) ; return ! 1 } : function ( e , t , n ) { var r , i , o , a = [ k , p ] ; if ( n ) { while ( e = e [ u ] ) if ( ( 1 === e . nodeType || f ) && s ( e , t , n ) ) return ! 0 } else while ( e = e [ u ] ) if ( 1 === e . nodeType || f ) if ( i = ( o = e [ S ] || ( e [ S ] = { } ) ) [ e . uniqueID ] || ( o [ e . uniqueID ] = { } ) , l && l === e . nodeName . toLowerCase ( ) ) e = e [ u ] || e ; else { if ( ( r = i [ c ] ) && r [ 0 ] === k && r [ 1 ] === p ) return a [ 2 ] = r [ 2 ] ; if ( ( i [ c ] = a ) [ 2 ] = s ( e , t , n ) ) return ! 0 } return ! 1 } } function we ( i ) { return 1 < i . length ? function ( e , t , n ) { var r = i . length ; while ( r -- ) if ( ! i [ r ] ( e , t , n ) ) return ! 1 ; return ! 0 } : i [ 0 ] } function Te ( e , t , n , r , i ) { for ( var o , a = [ ] , s = 0 , u = e . length , l = null != t ; s < u ; s ++ ) ( o = e [ s ] ) && ( n && ! n ( o , r , i ) || ( a . push ( o ) , l && t . push ( s ) ) ) ; return a } function Ce ( d , h , g , v , y , e ) { return v && ! v [ S ] && ( v = Ce ( v ) ) , y && ! y [ S ] && ( y = Ce ( y , e ) ) , le ( function ( e , t , n , r ) { var i , o , a , s = [ ] , u = [ ] , l = t . length , c = e || function ( e , t , n
) { for ( var r = 0 , i = t . length ; r < i ; r ++ ) se ( e , t [ r ] , n ) ; return n } ( h || "*" , n . nodeType ? [ n ] : n , [ ] ) , f = ! d || ! e && h ? c : Te ( c , s , d , n , r ) , p = g ? y || ( e ? d : l || v ) ? [ ] : t : f ; if ( g && g ( f , p , n , r ) , v ) { i = Te ( p , u ) , v ( i , [ ] , n , r ) , o = i . length ; while ( o -- ) ( a = i [ o ] ) && ( p [ u [ o ] ] = ! ( f [ u [ o ] ] = a ) ) } if ( e ) { if ( y || d ) { if ( y ) { i = [ ] , o = p . length ; while ( o -- ) ( a = p [ o ] ) && i . push ( f [ o ] = a ) ; y ( null , p = [ ] , i , r ) } o = p . length ; while ( o -- ) ( a = p [ o ] ) && - 1 < ( i = y ? P ( e , a ) : s [ o ] ) && ( e [ i ] = ! ( t [ i ] = a ) ) } } else p = Te ( p === t ? p . splice ( l , p . length ) : p ) , y ? y ( null , t , p , r ) : H . apply ( t , p ) } ) } function Ee ( e ) { for ( var i , t , n , r = e . length , o = b . relative [ e [ 0 ] . type ] , a = o || b . relative [ " " ] , s = o ? 1 : 0 , u = be ( function ( e ) { return e === i } , a , ! 0 ) , l = be ( function ( e ) { return - 1 < P ( i , e ) } , a , ! 0 ) , c = [ function ( e , t , n ) { var r = ! o && ( n || t !== w ) || ( ( i = t ) . nodeType ? u ( e , t , n ) : l ( e , t , n ) ) ; return i = null , r } ] ; s < r ; s ++ ) if ( t = b . relative [ e [ s ] . type ] ) c = [ be ( we ( c ) , t ) ] ; else { if ( ( t = b . filter [ e [ s ] . type ] . apply ( null , e [ s ] . matches ) ) [ S ] ) { for ( n = ++ s ; n < r ; n ++ ) if ( b . relative [ e [ n ] . type ] ) break ; return Ce ( 1 < s && we ( c ) , 1 < s && xe ( e . slice ( 0 , s - 1 ) . concat ( { value : " " === e [ s - 2 ] . type ? "*" : "" } ) ) . replace ( $ , "$1" ) , t , s < n && Ee ( e . slice ( s , n ) ) , n < r && Ee (
e = e . slice ( n ) ) , n < r && xe ( e ) ) } c . push ( t ) } return we ( c ) } return me . prototype = b . filters = b . pseudos , b . setFilters = new me , h = se . tokenize = function ( e , t ) { var n , r , i , o , a , s , u , l = x [ e + " " ] ; if ( l ) return t ? 0 : l . slice ( 0 ) ; a = e , s = [ ] , u = b . preFilter ; while ( a ) { for ( o in n && ! ( r = _ . exec ( a ) ) || ( r && ( a = a . slice ( r [ 0 ] . length ) || a ) , s . push ( i = [ ] ) ) , n = ! 1 , ( r = z . exec ( a ) ) && ( n = r . shift ( ) , i . push ( { value : n , type : r [ 0 ] . replace ( $ , " " ) } ) , a = a . slice ( n . length ) ) , b . filter ) ! ( r = G [ o ] . exec ( a ) ) || u [ o ] && ! ( r = u [ o ] ( r ) ) || ( n = r . shift ( ) , i . push ( { value : n , type : o , matches : r } ) , a = a . slice ( n . length ) ) ; if ( ! n ) break } return t ? a . length : a ? se . error ( e ) : x ( e , s ) . slice ( 0 ) } , f = se . compile = function ( e , t ) { var n , v , y , m , x , r , i = [ ] , o = [ ] , a = A [ e + " " ] ; if ( ! a ) { t || ( t = h ( e ) ) , n = t . length ; while ( n -- ) ( a = Ee ( t [ n ] ) ) [ S ] ? i . push ( a ) : o . push ( a ) ; ( a = A ( e , ( v = o , m = 0 < ( y = i ) . length , x = 0 < v . length , r = function ( e , t , n , r , i ) { var o , a , s , u = 0 , l = "0" , c = e && [ ] , f = [ ] , p = w , d = e || x && b . find . TAG ( "*" , i ) , h = k += null == p ? 1 : Math . random ( ) || . 1 , g = d . length ; for ( i && ( w = t == C || t || i ) ; l !== g && null != ( o = d [ l ] ) ; l ++ ) { if ( x && o ) { a = 0 , t || o . ownerDocument == C || ( T ( o ) , n = ! E ) ; while ( s = v [ a ++ ] ) if ( s ( o , t || C , n ) ) { r . push ( o ) ;
break } i && ( k = h ) } m && ( ( o = ! s && o ) && u -- , e && c . push ( o ) ) } if ( u += l , m && l !== u ) { a = 0 ; while ( s = y [ a ++ ] ) s ( c , f , t , n ) ; if ( e ) { if ( 0 < u ) while ( l -- ) c [ l ] || f [ l ] || ( f [ l ] = q . call ( r ) ) ; f = Te ( f ) } H . apply ( r , f ) , i && ! e && 0 < f . length && 1 < u + y . length && se . uniqueSort ( r ) } return i && ( k = h , w = p ) , c } , m ? le ( r ) : r ) ) ) . selector = e } return a } , g = se . select = function ( e , t , n , r ) { var i , o , a , s , u , l = "function" == typeof e && e , c = ! r && h ( e = l . selector || e ) ; if ( n = n || [ ] , 1 === c . length ) { if ( 2 < ( o = c [ 0 ] = c [ 0 ] . slice ( 0 ) ) . length && "ID" === ( a = o [ 0 ] ) . type && 9 === t . nodeType && E && b . relative [ o [ 1 ] . type ] ) { if ( ! ( t = ( b . find . ID ( a . matches [ 0 ] . replace ( te , ne ) , t ) || [ ] ) [ 0 ] ) ) return n ; l && ( t = t . parentNode ) , e = e . slice ( o . shift ( ) . value . length ) } i = G . needsContext . test ( e ) ? 0 : o . length ; while ( i -- ) { if ( a = o [ i ] , b . relative [ s = a . type ] ) break ; if ( ( u = b . find [ s ] ) && ( r = u ( a . matches [ 0 ] . replace ( te , ne ) , ee . test ( o [ 0 ] . type ) && ye ( t . parentNode ) || t ) ) ) { if ( o . splice ( i , 1 ) , ! ( e = r . length && xe ( o ) ) ) return H . apply ( n , r ) , n ; break } } } return ( l || f ( e , c ) ) ( r , t , ! E , n , ! t || ee . test ( e ) && ye ( t . parentNode ) || t ) , n } , d . sortStable = S . split ( "" ) . sort ( j ) . join ( "" ) === S , d . detectDuplicates = ! ! l , T ( ) , d . sortDetached = ce (
function ( e ) { return 1 & e . compareDocumentPosition ( C . createElement ( "fieldset" ) ) } ) , ce ( function ( e ) { return e . innerHTML = "<a href='#'></a>" , "#" === e . firstChild . getAttribute ( "href" ) } ) || fe ( "type|href|height|width" , function ( e , t , n ) { if ( ! n ) return e . getAttribute ( t , "type" === t . toLowerCase ( ) ? 1 : 2 ) } ) , d . attributes && ce ( function ( e ) { return e . innerHTML = "<input/>" , e . firstChild . setAttribute ( "value" , "" ) , "" === e . firstChild . getAttribute ( "value" ) } ) || fe ( "value" , function ( e , t , n ) { if ( ! n && "input" === e . nodeName . toLowerCase ( ) ) return e . defaultValue } ) , ce ( function ( e ) { return null == e . getAttribute ( "disabled" ) } ) || fe ( R , function ( e , t , n ) { var r ; if ( ! n ) return ! 0 === e [ t ] ? t . toLowerCase ( ) : ( r = e . getAttributeNode ( t ) ) && r . specified ? r . value : null } ) , se } ( C ) ; S . find = d , S . expr = d . selectors , S . expr [ ":" ] = S . expr . pseudos , S . uniqueSort = S . unique = d . uniqueSort , S . text = d . getText , S . isXMLDoc = d . isXML , S . contains = d . contains , S . escapeSelector = d . escape ; var h = function ( e , t , n ) { var r = [ ] , i = void 0 !== n ; while ( ( e = e [ t ] ) && 9 !== e . nodeType ) if ( 1 === e . nodeType ) { if ( i && S ( e ) . is ( n ) ) break ; r . push ( e ) } return r } , T = function ( e , t ) {
for ( var n = [ ] ; e ; e = e . nextSibling ) 1 === e . nodeType && e !== t && n . push ( e ) ; return n } , k = S . expr . match . needsContext ; function A ( e , t ) { return e . nodeName && e . nodeName . toLowerCase ( ) === t . toLowerCase ( ) } var N = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ; function j ( e , n , r ) { return m ( n ) ? S . grep ( e , function ( e , t ) { return ! ! n . call ( e , t , e ) !== r } ) : n . nodeType ? S . grep ( e , function ( e ) { return e === n !== r } ) : "string" != typeof n ? S . grep ( e , function ( e ) { return - 1 < i . call ( n , e ) !== r } ) : S . filter ( n , e , r ) } S . filter = function ( e , t , n ) { var r = t [ 0 ] ; return n && ( e = ":not(" + e + ")" ) , 1 === t . length && 1 === r . nodeType ? S . find . matchesSelector ( r , e ) ? [ r ] : [ ] : S . find . matches ( e , S . grep ( t , function ( e ) { return 1 === e . nodeType } ) ) } , S . fn . extend ( { find : function ( e ) { var t , n , r = this . length , i = this ; if ( "string" != typeof e ) return this . pushStack ( S ( e ) . filter ( function ( ) { for ( t = 0 ; t < r ; t ++ ) if ( S . contains ( i [ t ] , this ) ) return ! 0 } ) ) ; for ( n = this . pushStack ( [ ] ) , t = 0 ; t < r ; t ++ ) S . find ( e , i [ t ] , n ) ; return 1 < r ? S . uniqueSort ( n ) : n } , filter : function ( e ) { return this . pushStack ( j ( this , e || [ ] , ! 1 ) ) } , not : function ( e ) { return this . pushStack ( j (
this , e || [ ] , ! 0 ) ) } , is : function ( e ) { return ! ! j ( this , "string" == typeof e && k . test ( e ) ? S ( e ) : e || [ ] , ! 1 ) . length } } ) ; var D , q = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/ ; ( S . fn . init = function ( e , t , n ) { var r , i ; if ( ! e ) return this ; if ( n = n || D , "string" == typeof e ) { if ( ! ( r = "<" === e [ 0 ] && ">" === e [ e . length - 1 ] && 3 <= e . length ? [ null , e , null ] : q . exec ( e ) ) || ! r [ 1 ] && t ) return ! t || t . jquery ? ( t || n ) . find ( e ) : this . constructor ( t ) . find ( e ) ; if ( r [ 1 ] ) { if ( t = t instanceof S ? t [ 0 ] : t , S . merge ( this , S . parseHTML ( r [ 1 ] , t && t . nodeType ? t . ownerDocument || t : E , ! 0 ) ) , N . test ( r [ 1 ] ) && S . isPlainObject ( t ) ) for ( r in t ) m ( this [ r ] ) ? this [ r ] ( t [ r ] ) : this . attr ( r , t [ r ] ) ; return this } return ( i = E . getElementById ( r [ 2 ] ) ) && ( this [ 0 ] = i , this . length = 1 ) , this } return e . nodeType ? ( this [ 0 ] = e , this . length = 1 , this ) : m ( e ) ? void 0 !== n . ready ? n . ready ( e ) : e ( S ) : S . makeArray ( e , this ) } ) . prototype = S . fn , D = S ( E ) ; var L = /^(?:parents|prev(?:Until|All))/ , H = { children : ! 0 , contents : ! 0 , next : ! 0 , prev : ! 0 } ; function O ( e , t ) { while ( ( e = e [ t ] ) && 1 !== e . nodeType ) ; return e } S . fn . extend ( { has : function ( e ) { var t = S ( e , this ) , n = t . length ; return this . filter ( function ( ) { for (
var e = 0 ; e < n ; e ++ ) if ( S . contains ( this , t [ e ] ) ) return ! 0 } ) } , closest : function ( e , t ) { var n , r = 0 , i = this . length , o = [ ] , a = "string" != typeof e && S ( e ) ; if ( ! k . test ( e ) ) for ( ; r < i ; r ++ ) for ( n = this [ r ] ; n && n !== t ; n = n . parentNode ) if ( n . nodeType < 11 && ( a ? - 1 < a . index ( n ) : 1 === n . nodeType && S . find . matchesSelector ( n , e ) ) ) { o . push ( n ) ; break } return this . pushStack ( 1 < o . length ? S . uniqueSort ( o ) : o ) } , index : function ( e ) { return e ? "string" == typeof e ? i . call ( S ( e ) , this [ 0 ] ) : i . call ( this , e . jquery ? e [ 0 ] : e ) : this [ 0 ] && this [ 0 ] . parentNode ? this . first ( ) . prevAll ( ) . length : - 1 } , add : function ( e , t ) { return this . pushStack ( S . uniqueSort ( S . merge ( this . get ( ) , S ( e , t ) ) ) ) } , addBack : function ( e ) { return this . add ( null == e ? this . prevObject : this . prevObject . filter ( e ) ) } } ) , S . each ( { parent : function ( e ) { var t = e . parentNode ; return t && 11 !== t . nodeType ? t : null } , parents : function ( e ) { return h ( e , "parentNode" ) } , parentsUntil : function ( e , t , n ) { return h ( e , "parentNode" , n ) } , next : function ( e ) { return O ( e , "nextSibling" ) } , prev : function ( e ) { return O ( e , "previousSibling" ) } , nextAll : function ( e ) { return h ( e , "nextSibling" ) } , prevAll : function ( e ) {
return h ( e , "previousSibling" ) } , nextUntil : function ( e , t , n ) { return h ( e , "nextSibling" , n ) } , prevUntil : function ( e , t , n ) { return h ( e , "previousSibling" , n ) } , siblings : function ( e ) { return T ( ( e . parentNode || { } ) . firstChild , e ) } , children : function ( e ) { return T ( e . firstChild ) } , contents : function ( e ) { return null != e . contentDocument && r ( e . contentDocument ) ? e . contentDocument : ( A ( e , "template" ) && ( e = e . content || e ) , S . merge ( [ ] , e . childNodes ) ) } } , function ( r , i ) { S . fn [ r ] = function ( e , t ) { var n = S . map ( this , i , e ) ; return "Until" !== r . slice ( - 5 ) && ( t = e ) , t && "string" == typeof t && ( n = S . filter ( t , n ) ) , 1 < this . length && ( H [ r ] || S . uniqueSort ( n ) , L . test ( r ) && n . reverse ( ) ) , this . pushStack ( n ) } } ) ; var P = /[^\x20\t\r\n\f]+/g ; function R ( e ) { return e } function M ( e ) { throw e } function I ( e , t , n , r ) { var i ; try { e && m ( i = e . promise ) ? i . call ( e ) . done ( t ) . fail ( n ) : e && m ( i = e . then ) ? i . call ( e , t , n ) : t . apply ( void 0 , [ e ] . slice ( r ) ) } catch ( e ) { n . apply ( void 0 , [ e ] ) } } S . Callbacks = function ( r ) { var e , n ; r = "string" == typeof r ? ( e = r , n = { } , S . each ( e . match ( P ) || [ ] , function ( e , t ) { n [ t ] = ! 0 } ) , n ) : S . extend ( { } , r ) ; var i , t , o , a , s = [ ] , u = [ ] , l = - 1 , c = function (
) { for ( a = a || r . once , o = i = ! 0 ; u . length ; l = - 1 ) { t = u . shift ( ) ; while ( ++ l < s . length ) ! 1 === s [ l ] . apply ( t [ 0 ] , t [ 1 ] ) && r . stopOnFalse && ( l = s . length , t = ! 1 ) } r . memory || ( t = ! 1 ) , i = ! 1 , a && ( s = t ? [ ] : "" ) } , f = { add : function ( ) { return s && ( t && ! i && ( l = s . length - 1 , u . push ( t ) ) , function n ( e ) { S . each ( e , function ( e , t ) { m ( t ) ? r . unique && f . has ( t ) || s . push ( t ) : t && t . length && "string" !== w ( t ) && n ( t ) } ) } ( arguments ) , t && ! i && c ( ) ) , this } , remove : function ( ) { return S . each ( arguments , function ( e , t ) { var n ; while ( - 1 < ( n = S . inArray ( t , s , n ) ) ) s . splice ( n , 1 ) , n <= l && l -- } ) , this } , has : function ( e ) { return e ? - 1 < S . inArray ( e , s ) : 0 < s . length } , empty : function ( ) { return s && ( s = [ ] ) , this } , disable : function ( ) { return a = u = [ ] , s = t = "" , this } , disabled : function ( ) { return ! s } , lock : function ( ) { return a = u = [ ] , t || i || ( s = t = "" ) , this } , locked : function ( ) { return ! ! a } , fireWith : function ( e , t ) { return a || ( t = [ e , ( t = t || [ ] ) . slice ? t . slice ( ) : t ] , u . push ( t ) , i || c ( ) ) , this } , fire : function ( ) { return f . fireWith ( this , arguments ) , this } , fired : function ( ) { return ! ! o } } ; return f } , S . extend ( { Deferred : function ( e ) { var o = [ [ "notify" , "progress" , S . Callbacks ( "memory" ) ,
S . Callbacks ( "memory" ) , 2 ] , [ "resolve" , "done" , S . Callbacks ( "once memory" ) , S . Callbacks ( "once memory" ) , 0 , "resolved" ] , [ "reject" , "fail" , S . Callbacks ( "once memory" ) , S . Callbacks ( "once memory" ) , 1 , "rejected" ] ] , i = "pending" , a = { state : function ( ) { return i } , always : function ( ) { return s . done ( arguments ) . fail ( arguments ) , this } , catch : function ( e ) { return a . then ( null , e ) } , pipe : function ( ) { var i = arguments ; return S . Deferred ( function ( r ) { S . each ( o , function ( e , t ) { var n = m ( i [ t [ 4 ] ] ) && i [ t [ 4 ] ] ; s [ t [ 1 ] ] ( function ( ) { var e = n && n . apply ( this , arguments ) ; e && m ( e . promise ) ? e . promise ( ) . progress ( r . notify ) . done ( r . resolve ) . fail ( r . reject ) : r [ t [ 0 ] + "With" ] ( this , n ? [ e ] : arguments ) } ) } ) , i = null } ) . promise ( ) } , then : function ( t , n , r ) { var u = 0 ; function l ( i , o , a , s ) { return function ( ) { var n = this , r = arguments , e = function ( ) { var e , t ; if ( ! ( i < u ) ) { if ( ( e = a . apply ( n , r ) ) === o . promise ( ) ) throw new TypeError ( "Thenable self-resolution" ) ; t = e && ( "object" == typeof e || "function" == typeof e ) && e . then , m ( t ) ? s ? t . call ( e , l ( u , o , R , s ) , l ( u , o , M , s ) ) : ( u ++ , t . call ( e , l ( u , o , R , s ) , l ( u , o , M , s ) , l ( u , o , R , o . notifyWith ) ) ) : ( a !== R && ( n = void 0 ,
r = [ e ] ) , ( s || o . resolveWith ) ( n , r ) ) } } , t = s ? e : function ( ) { try { e ( ) } catch ( e ) { S . Deferred . exceptionHook && S . Deferred . exceptionHook ( e , t . stackTrace ) , u <= i + 1 && ( a !== M && ( n = void 0 , r = [ e ] ) , o . rejectWith ( n , r ) ) } } ; i ? t ( ) : ( S . Deferred . getStackHook && ( t . stackTrace = S . Deferred . getStackHook ( ) ) , C . setTimeout ( t ) ) } } return S . Deferred ( function ( e ) { o [ 0 ] [ 3 ] . add ( l ( 0 , e , m ( r ) ? r : R , e . notifyWith ) ) , o [ 1 ] [ 3 ] . add ( l ( 0 , e , m ( t ) ? t : R ) ) , o [ 2 ] [ 3 ] . add ( l ( 0 , e , m ( n ) ? n : M ) ) } ) . promise ( ) } , promise : function ( e ) { return null != e ? S . extend ( e , a ) : a } } , s = { } ; return S . each ( o , function ( e , t ) { var n = t [ 2 ] , r = t [ 5 ] ; a [ t [ 1 ] ] = n . add , r && n . add ( function ( ) { i = r } , o [ 3 - e ] [ 2 ] . disable , o [ 3 - e ] [ 3 ] . disable , o [ 0 ] [ 2 ] . lock , o [ 0 ] [ 3 ] . lock ) , n . add ( t [ 3 ] . fire ) , s [ t [ 0 ] ] = function ( ) { return s [ t [ 0 ] + "With" ] ( this === s ? void 0 : this , arguments ) , this } , s [ t [ 0 ] + "With" ] = n . fireWith } ) , a . promise ( s ) , e && e . call ( s , s ) , s } , when : function ( e ) { var n = arguments . length , t = n , r = Array ( t ) , i = s . call ( arguments ) , o = S . Deferred ( ) , a = function ( t ) { return function ( e ) { r [ t ] = this , i [ t ] = 1 < arguments . length ? s . call ( arguments ) : e , -- n || o . resolveWith ( r , i ) } } ; if ( n <= 1 && ( I ( e , o . done ( a ( t ) ) . resolve ,
o . reject , ! n ) , "pending" === o . state ( ) || m ( i [ t ] && i [ t ] . then ) ) ) return o . then ( ) ; while ( t -- ) I ( i [ t ] , a ( t ) , o . reject ) ; return o . promise ( ) } } ) ; var W = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/ ; S . Deferred . exceptionHook = function ( e , t ) { C . console && C . console . warn && e && W . test ( e . name ) && C . console . warn ( "jQuery.Deferred exception: " + e . message , e . stack , t ) } , S . readyException = function ( e ) { C . setTimeout ( function ( ) { throw e } ) } ; var F = S . Deferred ( ) ; function B ( ) { E . removeEventListener ( "DOMContentLoaded" , B ) , C . removeEventListener ( "load" , B ) , S . ready ( ) } S . fn . ready = function ( e ) { return F . then ( e ) [ "catch" ] ( function ( e ) { S . readyException ( e ) } ) , this } , S . extend ( { isReady : ! 1 , readyWait : 1 , ready : function ( e ) { ( ! 0 === e ? -- S . readyWait : S . isReady ) || ( S . isReady = ! 0 ) !== e && 0 < -- S . readyWait || F . resolveWith ( E , [ S ] ) } } ) , S . ready . then = F . then , "complete" === E . readyState || "loading" !== E . readyState && ! E . documentElement . doScroll ? C . setTimeout ( S . ready ) : ( E . addEventListener ( "DOMContentLoaded" , B ) , C . addEventListener ( "load" , B ) ) ; var $ = function ( e , t , n , r , i , o , a ) { var s = 0 , u = e . length , l = null == n ; if (
"object" === w ( n ) ) for ( s in i = ! 0 , n ) $ ( e , t , s , n [ s ] , ! 0 , o , a ) ; else if ( void 0 !== r && ( i = ! 0 , m ( r ) || ( a = ! 0 ) , l && ( a ? ( t . call ( e , r ) , t = null ) : ( l = t , t = function ( e , t , n ) { return l . call ( S ( e ) , n ) } ) ) , t ) ) for ( ; s < u ; s ++ ) t ( e [ s ] , n , a ? r : r . call ( e [ s ] , s , t ( e [ s ] , n ) ) ) ; return i ? e : l ? t . call ( e ) : u ? t ( e [ 0 ] , n ) : o } , _ = /^-ms-/ , z = /-([a-z])/g ; function U ( e , t ) { return t . toUpperCase ( ) } function X ( e ) { return e . replace ( _ , "ms-" ) . replace ( z , U ) } var V = function ( e ) { return 1 === e . nodeType || 9 === e . nodeType || ! + e . nodeType } ; function G ( ) { this . expando = S . expando + G . uid ++ } G . uid = 1 , G . prototype = { cache : function ( e ) { var t = e [ this . expando ] ; return t || ( t = { } , V ( e ) && ( e . nodeType ? e [ this . expando ] = t : Object . defineProperty ( e , this . expando , { value : t , configurable : ! 0 } ) ) ) , t } , set : function ( e , t , n ) { var r , i = this . cache ( e ) ; if ( "string" == typeof t ) i [ X ( t ) ] = n ; else for ( r in t ) i [ X ( r ) ] = t [ r ] ; return i } , get : function ( e , t ) { return void 0 === t ? this . cache ( e ) : e [ this . expando ] && e [ this . expando ] [ X ( t ) ] } , access : function ( e , t , n ) { return void 0 === t || t && "string" == typeof t && void 0 === n ? this . get ( e , t ) : ( this . set ( e , t , n ) , void 0 !== n ? n : t ) } , remove : function ( e , t ) {
var n , r = e [ this . expando ] ; if ( void 0 !== r ) { if ( void 0 !== t ) { n = ( t = Array . isArray ( t ) ? t . map ( X ) : ( t = X ( t ) ) in r ? [ t ] : t . match ( P ) || [ ] ) . length ; while ( n -- ) delete r [ t [ n ] ] } ( void 0 === t || S . isEmptyObject ( r ) ) && ( e . nodeType ? e [ this . expando ] = void 0 : delete e [ this . expando ] ) } } , hasData : function ( e ) { var t = e [ this . expando ] ; return void 0 !== t && ! S . isEmptyObject ( t ) } } ; var Y = new G , Q = new G , J = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/ , K = /[A-Z]/g ; function Z ( e , t , n ) { var r , i ; if ( void 0 === n && 1 === e . nodeType ) if ( r = "data-" + t . replace ( K , "-$&" ) . toLowerCase ( ) , "string" == typeof ( n = e . getAttribute ( r ) ) ) { try { n = "true" === ( i = n ) || "false" !== i && ( "null" === i ? null : i === + i + "" ? + i : J . test ( i ) ? JSON . parse ( i ) : i ) } catch ( e ) { } Q . set ( e , t , n ) } else n = void 0 ; return n } S . extend ( { hasData : function ( e ) { return Q . hasData ( e ) || Y . hasData ( e ) } , data : function ( e , t , n ) { return Q . access ( e , t , n ) } , removeData : function ( e , t ) { Q . remove ( e , t ) } , _data : function ( e , t , n ) { return Y . access ( e , t , n ) } , _removeData : function ( e , t ) { Y . remove ( e , t ) } } ) , S . fn . extend ( { data : function ( n , e ) { var t , r , i , o = this [ 0 ] , a = o && o . attributes ; if ( void 0 === n ) { if ( this . length && ( i = Q . get ( o ) ,
1 === o . nodeType && ! Y . get ( o , "hasDataAttrs" ) ) ) { t = a . length ; while ( t -- ) a [ t ] && 0 === ( r = a [ t ] . name ) . indexOf ( "data-" ) && ( r = X ( r . slice ( 5 ) ) , Z ( o , r , i [ r ] ) ) ; Y . set ( o , "hasDataAttrs" , ! 0 ) } return i } return "object" == typeof n ? this . each ( function ( ) { Q . set ( this , n ) } ) : $ ( this , function ( e ) { var t ; if ( o && void 0 === e ) return void 0 !== ( t = Q . get ( o , n ) ) ? t : void 0 !== ( t = Z ( o , n ) ) ? t : void 0 ; this . each ( function ( ) { Q . set ( this , n , e ) } ) } , null , e , 1 < arguments . length , null , ! 0 ) } , removeData : function ( e ) { return this . each ( function ( ) { Q . remove ( this , e ) } ) } } ) , S . extend ( { queue : function ( e , t , n ) { var r ; if ( e ) return t = ( t || "fx" ) + "queue" , r = Y . get ( e , t ) , n && ( ! r || Array . isArray ( n ) ? r = Y . access ( e , t , S . makeArray ( n ) ) : r . push ( n ) ) , r || [ ] } , dequeue : function ( e , t ) { t = t || "fx" ; var n = S . queue ( e , t ) , r = n . length , i = n . shift ( ) , o = S . _queueHooks ( e , t ) ; "inprogress" === i && ( i = n . shift ( ) , r -- ) , i && ( "fx" === t && n . unshift ( "inprogress" ) , delete o . stop , i . call ( e , function ( ) { S . dequeue ( e , t ) } , o ) ) , ! r && o && o . empty . fire ( ) } , _queueHooks : function ( e , t ) { var n = t + "queueHooks" ; return Y . get ( e , n ) || Y . access ( e , n , { empty : S . Callbacks ( "once memory" ) . add ( function ( ) {
Y . remove ( e , [ t + "queue" , n ] ) } ) } ) } } ) , S . fn . extend ( { queue : function ( t , n ) { var e = 2 ; return "string" != typeof t && ( n = t , t = "fx" , e -- ) , arguments . length < e ? S . queue ( this [ 0 ] , t ) : void 0 === n ? this : this . each ( function ( ) { var e = S . queue ( this , t , n ) ; S . _queueHooks ( this , t ) , "fx" === t && "inprogress" !== e [ 0 ] && S . dequeue ( this , t ) } ) } , dequeue : function ( e ) { return this . each ( function ( ) { S . dequeue ( this , e ) } ) } , clearQueue : function ( e ) { return this . queue ( e || "fx" , [ ] ) } , promise : function ( e , t ) { var n , r = 1 , i = S . Deferred ( ) , o = this , a = this . length , s = function ( ) { -- r || i . resolveWith ( o , [ o ] ) } ; "string" != typeof e && ( t = e , e = void 0 ) , e = e || "fx" ; while ( a -- ) ( n = Y . get ( o [ a ] , e + "queueHooks" ) ) && n . empty && ( r ++ , n . empty . add ( s ) ) ; return s ( ) , i . promise ( t ) } } ) ; var ee = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , te = new RegExp ( "^(?:([+-])=|)(" + ee + ")([a-z%]*)$" , "i" ) , ne = [ "Top" , "Right" , "Bottom" , "Left" ] , re = E . documentElement , ie = function ( e ) { return S . contains ( e . ownerDocument , e ) } , oe = { composed : ! 0 } ; re . getRootNode && ( ie = function ( e ) { return S . contains ( e . ownerDocument , e ) || e . getRootNode ( oe ) === e . ownerDocument } ) ; var ae = function ( e , t
) { return "none" === ( e = t || e ) . style . display || "" === e . style . display && ie ( e ) && "none" === S . css ( e , "display" ) } ; function se ( e , t , n , r ) { var i , o , a = 20 , s = r ? function ( ) { return r . cur ( ) } : function ( ) { return S . css ( e , t , "" ) } , u = s ( ) , l = n && n [ 3 ] || ( S . cssNumber [ t ] ? "" : "px" ) , c = e . nodeType && ( S . cssNumber [ t ] || "px" !== l && + u ) && te . exec ( S . css ( e , t ) ) ; if ( c && c [ 3 ] !== l ) { u /= 2 , l = l || c [ 3 ] , c = + u || 1 ; while ( a -- ) S . style ( e , t , c + l ) , ( 1 - o ) * ( 1 - ( o = s ( ) / u || . 5 ) ) <= 0 && ( a = 0 ) , c /= o ; c *= 2 , S . style ( e , t , c + l ) , n = n || [ ] } return n && ( c = + c || + u || 0 , i = n [ 1 ] ? c + ( n [ 1 ] + 1 ) * n [ 2 ] : + n [ 2 ] , r && ( r . unit = l , r . start = c , r . end = i ) ) , i } var ue = { } ; function le ( e , t ) { for ( var n , r , i , o , a , s , u , l = [ ] , c = 0 , f = e . length ; c < f ; c ++ ) ( r = e [ c ] ) . style && ( n = r . style . display , t ? ( "none" === n && ( l [ c ] = Y . get ( r , "display" ) || null , l [ c ] || ( r . style . display = "" ) ) , "" === r . style . display && ae ( r ) && ( l [ c ] = ( u = a = o = void 0 , a = ( i = r ) . ownerDocument , s = i . nodeName , ( u = ue [ s ] ) || ( o = a . body . appendChild ( a . createElement ( s ) ) , u = S . css ( o , "display" ) , o . parentNode . removeChild ( o ) , "none" === u && ( u = "block" ) , ue [ s ] = u ) ) ) ) : "none" !== n && ( l [ c ] = "none" , Y . set ( r , "display" , n ) ) ) ; for ( c = 0 ; c < f ; c ++ ) null != l [ c ] && ( e [ c
] . style . display = l [ c ] ) ; return e } S . fn . extend ( { show : function ( ) { return le ( this , ! 0 ) } , hide : function ( ) { return le ( this ) } , toggle : function ( e ) { return "boolean" == typeof e ? e ? this . show ( ) : this . hide ( ) : this . each ( function ( ) { ae ( this ) ? S ( this ) . show ( ) : S ( this ) . hide ( ) } ) } } ) ; var ce , fe , pe = /^(?:checkbox|radio)$/i , de = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i , he = /^$|^module$|\/(?:java|ecma)script/i ; ce = E . createDocumentFragment ( ) . appendChild ( E . createElement ( "div" ) ) , ( fe = E . createElement ( "input" ) ) . setAttribute ( "type" , "radio" ) , fe . setAttribute ( "checked" , "checked" ) , fe . setAttribute ( "name" , "t" ) , ce . appendChild ( fe ) , y . checkClone = ce . cloneNode ( ! 0 ) . cloneNode ( ! 0 ) . lastChild . checked , ce . innerHTML = "<textarea>x</textarea>" , y . noCloneChecked = ! ! ce . cloneNode ( ! 0 ) . lastChild . defaultValue , ce . innerHTML = "<option></option>" , y . option = ! ! ce . lastChild ; var ge = { 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 , "" , "" ] } ; function ve ( e , t ) { var n ;
return n = "undefined" != typeof e . getElementsByTagName ? e . getElementsByTagName ( t || "*" ) : "undefined" != typeof e . querySelectorAll ? e . querySelectorAll ( t || "*" ) : [ ] , void 0 === t || t && A ( e , t ) ? S . merge ( [ e ] , n ) : n } function ye ( e , t ) { for ( var n = 0 , r = e . length ; n < r ; n ++ ) Y . set ( e [ n ] , "globalEval" , ! t || Y . get ( t [ n ] , "globalEval" ) ) } ge . tbody = ge . tfoot = ge . colgroup = ge . caption = ge . thead , ge . th = ge . td , y . option || ( ge . optgroup = ge . option = [ 1 , "<select multiple='multiple'>" , "</select>" ] ) ; var me = /<|&#?\w+;/ ; function xe ( e , t , n , r , i ) { for ( var o , a , s , u , l , c , f = t . createDocumentFragment ( ) , p = [ ] , d = 0 , h = e . length ; d < h ; d ++ ) if ( ( o = e [ d ] ) || 0 === o ) if ( "object" === w ( o ) ) S . merge ( p , o . nodeType ? [ o ] : o ) ; else if ( me . test ( o ) ) { a = a || f . appendChild ( t . createElement ( "div" ) ) , s = ( de . exec ( o ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) , u = ge [ s ] || ge . _default , a . innerHTML = u [ 1 ] + S . htmlPrefilter ( o ) + u [ 2 ] , c = u [ 0 ] ; while ( c -- ) a = a . lastChild ; S . merge ( p , a . childNodes ) , ( a = f . firstChild ) . textContent = "" } else p . push ( t . createTextNode ( o ) ) ; f . textContent = "" , d = 0 ; while ( o = p [ d ++ ] ) if ( r && - 1 < S . inArray ( o , r ) ) i && i . push ( o ) ; else if ( l = ie ( o ) , a = ve ( f . appendChild ( o ) ,
"script" ) , l && ye ( a ) , n ) { c = 0 ; while ( o = a [ c ++ ] ) he . test ( o . type || "" ) && n . push ( o ) } return f } var be = /^([^.]*)(?:\.(.+)|)/ ; function we ( ) { return ! 0 } function Te ( ) { return ! 1 } function Ce ( e , t ) { return e === function ( ) { try { return E . activeElement } catch ( e ) { } } ( ) == ( "focus" === t ) } function Ee ( e , t , n , r , i , o ) { var a , s ; if ( "object" == typeof t ) { for ( s in "string" != typeof n && ( r = r || n , n = void 0 ) , t ) Ee ( e , s , n , r , t [ s ] , o ) ; return e } if ( null == r && null == i ? ( i = n , r = n = void 0 ) : null == i && ( "string" == typeof n ? ( i = r , r = void 0 ) : ( i = r , r = n , n = void 0 ) ) , ! 1 === i ) i = Te ; else if ( ! i ) return e ; return 1 === o && ( a = i , ( i = function ( e ) { return S ( ) . off ( e ) , a . apply ( this , arguments ) } ) . guid = a . guid || ( a . guid = S . guid ++ ) ) , e . each ( function ( ) { S . event . add ( this , t , i , r , n ) } ) } function Se ( e , i , o ) { o ? ( Y . set ( e , i , ! 1 ) , S . event . add ( e , i , { namespace : ! 1 , handler : function ( e ) { var t , n , r = Y . get ( this , i ) ; if ( 1 & e . isTrigger && this [ i ] ) { if ( r . length ) ( S . event . special [ i ] || { } ) . delegateType && e . stopPropagation ( ) ; else if ( r = s . call ( arguments ) , Y . set ( this , i , r ) , t = o ( this , i ) , this [ i ] ( ) , r !== ( n = Y . get ( this , i ) ) || t ? Y . set ( this , i , ! 1 ) : n = { } , r !== n
) return e . stopImmediatePropagation ( ) , e . preventDefault ( ) , n && n . value } else r . length && ( Y . set ( this , i , { value : S . event . trigger ( S . extend ( r [ 0 ] , S . Event . prototype ) , r . slice ( 1 ) , this ) } ) , e . stopImmediatePropagation ( ) ) } } ) ) : void 0 === Y . get ( e , i ) && S . event . add ( e , i , we ) } S . event = { global : { } , add : function ( t , e , n , r , i ) { var o , a , s , u , l , c , f , p , d , h , g , v = Y . get ( t ) ; if ( V ( t ) ) { n . handler && ( n = ( o = n ) . handler , i = o . selector ) , i && S . find . matchesSelector ( re , i ) , n . guid || ( n . guid = S . guid ++ ) , ( u = v . events ) || ( u = v . events = Object . create ( null ) ) , ( a = v . handle ) || ( a = v . handle = function ( e ) { return "undefined" != typeof S && S . event . triggered !== e . type ? S . event . dispatch . apply ( t , arguments ) : void 0 } ) , l = ( e = ( e || "" ) . match ( P ) || [ "" ] ) . length ; while ( l -- ) d = g = ( s = be . exec ( e [ l ] ) || [ ] ) [ 1 ] , h = ( s [ 2 ] || "" ) . split ( "." ) . sort ( ) , d && ( f = S . event . special [ d ] || { } , d = ( i ? f . delegateType : f . bindType ) || d , f = S . event . special [ d ] || { } , c = S . extend ( { type : d , origType : g , data : r , handler : n , guid : n . guid , selector : i , needsContext : i && S . expr . match . needsContext . test ( i ) , namespace : h . join ( "." ) } , o ) , ( p = u [ d ] ) || ( ( p = u [ d ] = [ ] ) . delegateCount = 0 ,
f . setup && ! 1 !== f . setup . call ( t , r , h , a ) || t . addEventListener && t . addEventListener ( d , a ) ) , f . add && ( f . add . call ( t , c ) , c . handler . guid || ( c . handler . guid = n . guid ) ) , i ? p . splice ( p . delegateCount ++ , 0 , c ) : p . push ( c ) , S . event . global [ d ] = ! 0 ) } } , remove : function ( e , t , n , r , i ) { var o , a , s , u , l , c , f , p , d , h , g , v = Y . hasData ( e ) && Y . get ( e ) ; if ( v && ( u = v . events ) ) { l = ( t = ( t || "" ) . match ( P ) || [ "" ] ) . length ; while ( l -- ) if ( d = g = ( s = be . exec ( t [ l ] ) || [ ] ) [ 1 ] , h = ( s [ 2 ] || "" ) . split ( "." ) . sort ( ) , d ) { f = S . event . special [ d ] || { } , p = u [ d = ( r ? f . delegateType : f . bindType ) || d ] || [ ] , s = s [ 2 ] && new RegExp ( "(^|\\.)" + h . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) , a = o = p . length ; while ( o -- ) c = p [ o ] , ! i && g !== c . origType || n && n . guid !== c . guid || s && ! s . test ( c . namespace ) || r && r !== c . selector && ( "**" !== r || ! c . selector ) || ( p . splice ( o , 1 ) , c . selector && p . delegateCount -- , f . remove && f . remove . call ( e , c ) ) ; a && ! p . length && ( f . teardown && ! 1 !== f . teardown . call ( e , h , v . handle ) || S . removeEvent ( e , d , v . handle ) , delete u [ d ] ) } else for ( d in u ) S . event . remove ( e , d + t [ l ] , n , r , ! 0 ) ; S . isEmptyObject ( u ) && Y . remove ( e , "handle events" ) } } , dispatch : function ( e ) { var t , n , r , i , o , a , s = new Array (
arguments . length ) , u = S . event . fix ( e ) , l = ( Y . get ( this , "events" ) || Object . create ( null ) ) [ u . type ] || [ ] , c = S . event . special [ u . type ] || { } ; for ( s [ 0 ] = u , t = 1 ; t < arguments . length ; t ++ ) s [ t ] = arguments [ t ] ; if ( u . delegateTarget = this , ! c . preDispatch || ! 1 !== c . preDispatch . call ( this , u ) ) { a = S . event . handlers . call ( this , u , l ) , t = 0 ; while ( ( i = a [ t ++ ] ) && ! u . isPropagationStopped ( ) ) { u . currentTarget = i . elem , n = 0 ; while ( ( o = i . handlers [ n ++ ] ) && ! u . isImmediatePropagationStopped ( ) ) u . rnamespace && ! 1 !== o . namespace && ! u . rnamespace . test ( o . namespace ) || ( u . handleObj = o , u . data = o . data , void 0 !== ( r = ( ( S . event . special [ o . origType ] || { } ) . handle || o . handler ) . apply ( i . elem , s ) ) && ! 1 === ( u . result = r ) && ( u . preventDefault ( ) , u . stopPropagation ( ) ) ) } return c . postDispatch && c . postDispatch . call ( this , u ) , u . result } } , handlers : function ( e , t ) { var n , r , i , o , a , s = [ ] , u = t . delegateCount , l = e . target ; if ( u && l . nodeType && ! ( "click" === e . type && 1 <= e . button ) ) for ( ; l !== this ; l = l . parentNode || this ) if ( 1 === l . nodeType && ( "click" !== e . type || ! 0 !== l . disabled ) ) { for ( o = [ ] , a = { } , n = 0 ; n < u ; n ++ ) void 0 === a [ i = ( r = t [ n ] ) . selector + " " ] && ( a [ i
] = r . needsContext ? - 1 < S ( i , this ) . index ( l ) : S . find ( i , this , null , [ l ] ) . length ) , a [ i ] && o . push ( r ) ; o . length && s . push ( { elem : l , handlers : o } ) } return l = this , u < t . length && s . push ( { elem : l , handlers : t . slice ( u ) } ) , s } , addProp : function ( t , e ) { Object . defineProperty ( S . Event . prototype , t , { enumerable : ! 0 , configurable : ! 0 , get : m ( e ) ? function ( ) { if ( this . originalEvent ) return e ( this . originalEvent ) } : function ( ) { if ( this . originalEvent ) return this . originalEvent [ t ] } , set : function ( e ) { Object . defineProperty ( this , t , { enumerable : ! 0 , configurable : ! 0 , writable : ! 0 , value : e } ) } } ) } , fix : function ( e ) { return e [ S . expando ] ? e : new S . Event ( e ) } , special : { load : { noBubble : ! 0 } , click : { setup : function ( e ) { var t = this || e ; return pe . test ( t . type ) && t . click && A ( t , "input" ) && Se ( t , "click" , we ) , ! 1 } , trigger : function ( e ) { var t = this || e ; return pe . test ( t . type ) && t . click && A ( t , "input" ) && Se ( t , "click" ) , ! 0 } , _default : function ( e ) { var t = e . target ; return pe . test ( t . type ) && t . click && A ( t , "input" ) && Y . get ( t , "click" ) || A ( t , "a" ) } } , beforeunload : { postDispatch : function ( e ) { void 0 !== e . result && e . originalEvent && (
e . originalEvent . returnValue = e . result ) } } } } , S . removeEvent = function ( e , t , n ) { e . removeEventListener && e . removeEventListener ( t , n ) } , S . Event = function ( e , t ) { if ( ! ( this instanceof S . Event ) ) return new S . Event ( e , t ) ; e && e . type ? ( this . originalEvent = e , this . type = e . type , this . isDefaultPrevented = e . defaultPrevented || void 0 === e . defaultPrevented && ! 1 === e . returnValue ? we : Te , this . target = e . target && 3 === e . target . nodeType ? e . target . parentNode : e . target , this . currentTarget = e . currentTarget , this . relatedTarget = e . relatedTarget ) : this . type = e , t && S . extend ( this , t ) , this . timeStamp = e && e . timeStamp || Date . now ( ) , this [ S . expando ] = ! 0 } , S . Event . prototype = { constructor : S . Event , isDefaultPrevented : Te , isPropagationStopped : Te , isImmediatePropagationStopped : Te , isSimulated : ! 1 , preventDefault : function ( ) { var e = this . originalEvent ; this . isDefaultPrevented = we , e && ! this . isSimulated && e . preventDefault ( ) } , stopPropagation : function ( ) { var e = this . originalEvent ; this . isPropagationStopped = we , e && ! this . isSimulated && e . stopPropagation ( ) } , stopImmediatePropagation : function ( ) { var e = this . originalEvent ;
this . isImmediatePropagationStopped = we , e && ! this . isSimulated && e . stopImmediatePropagation ( ) , this . stopPropagation ( ) } } , S . each ( { altKey : ! 0 , bubbles : ! 0 , cancelable : ! 0 , changedTouches : ! 0 , ctrlKey : ! 0 , detail : ! 0 , eventPhase : ! 0 , metaKey : ! 0 , pageX : ! 0 , pageY : ! 0 , shiftKey : ! 0 , view : ! 0 , char : ! 0 , code : ! 0 , charCode : ! 0 , key : ! 0 , keyCode : ! 0 , button : ! 0 , buttons : ! 0 , clientX : ! 0 , clientY : ! 0 , offsetX : ! 0 , offsetY : ! 0 , pointerId : ! 0 , pointerType : ! 0 , screenX : ! 0 , screenY : ! 0 , targetTouches : ! 0 , toElement : ! 0 , touches : ! 0 , which : ! 0 } , S . event . addProp ) , S . each ( { focus : "focusin" , blur : "focusout" } , function ( e , t ) { S . event . special [ e ] = { setup : function ( ) { return Se ( this , e , Ce ) , ! 1 } , trigger : function ( ) { return Se ( this , e ) , ! 0 } , _default : function ( ) { return ! 0 } , delegateType : t } } ) , S . each ( { mouseenter : "mouseover" , mouseleave : "mouseout" , pointerenter : "pointerover" , pointerleave : "pointerout" } , function ( e , i ) { S . event . special [ e ] = { delegateType : i , bindType : i , handle : function ( e ) { var t , n = e . relatedTarget , r = e . handleObj ; return n && ( n === this || S . contains ( this , n ) ) || ( e . type = r . origType , t = r . handler . apply ( this , arguments ) , e . type = i ) , t
} } } ) , S . fn . extend ( { on : function ( e , t , n , r ) { return Ee ( this , e , t , n , r ) } , one : function ( e , t , n , r ) { return Ee ( this , e , t , n , r , 1 ) } , off : function ( e , t , n ) { var r , i ; if ( e && e . preventDefault && e . handleObj ) return r = e . handleObj , S ( e . delegateTarget ) . off ( r . namespace ? r . origType + "." + r . namespace : r . origType , r . selector , r . handler ) , this ; if ( "object" == typeof e ) { for ( i in e ) this . off ( i , t , e [ i ] ) ; return this } return ! 1 !== t && "function" != typeof t || ( n = t , t = void 0 ) , ! 1 === n && ( n = Te ) , this . each ( function ( ) { S . event . remove ( this , e , n , t ) } ) } } ) ; var ke = /<script|<style|<link/i , Ae = /checked\s*(?:[^=]|=\s*.checked.)/i , Ne = /^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g ; function je ( e , t ) { return A ( e , "table" ) && A ( 11 !== t . nodeType ? t : t . firstChild , "tr" ) && S ( e ) . children ( "tbody" ) [ 0 ] || e } function De ( e ) { return e . type = ( null !== e . getAttribute ( "type" ) ) + "/" + e . type , e } function qe ( e ) { return "true/" === ( e . type || "" ) . slice ( 0 , 5 ) ? e . type = e . type . slice ( 5 ) : e . removeAttribute ( "type" ) , e } function Le ( e , t ) { var n , r , i , o , a , s ; if ( 1 === t . nodeType ) { if ( Y . hasData ( e ) && ( s = Y . get ( e ) . events ) ) for ( i in Y . remove ( t , "handle events" ) , s ) for ( n = 0 ,
r = s [ i ] . length ; n < r ; n ++ ) S . event . add ( t , i , s [ i ] [ n ] ) ; Q . hasData ( e ) && ( o = Q . access ( e ) , a = S . extend ( { } , o ) , Q . set ( t , a ) ) } } function He ( n , r , i , o ) { r = g ( r ) ; var e , t , a , s , u , l , c = 0 , f = n . length , p = f - 1 , d = r [ 0 ] , h = m ( d ) ; if ( h || 1 < f && "string" == typeof d && ! y . checkClone && Ae . test ( d ) ) return n . each ( function ( e ) { var t = n . eq ( e ) ; h && ( r [ 0 ] = d . call ( this , e , t . html ( ) ) ) , He ( t , r , i , o ) } ) ; if ( f && ( t = ( e = xe ( r , n [ 0 ] . ownerDocument , ! 1 , n , o ) ) . firstChild , 1 === e . childNodes . length && ( e = t ) , t || o ) ) { for ( s = ( a = S . map ( ve ( e , "script" ) , De ) ) . length ; c < f ; c ++ ) u = e , c !== p && ( u = S . clone ( u , ! 0 , ! 0 ) , s && S . merge ( a , ve ( u , "script" ) ) ) , i . call ( n [ c ] , u , c ) ; if ( s ) for ( l = a [ a . length - 1 ] . ownerDocument , S . map ( a , qe ) , c = 0 ; c < s ; c ++ ) u = a [ c ] , he . test ( u . type || "" ) && ! Y . access ( u , "globalEval" ) && S . contains ( l , u ) && ( u . src && "module" !== ( u . type || "" ) . toLowerCase ( ) ? S . _evalUrl && ! u . noModule && S . _evalUrl ( u . src , { nonce : u . nonce || u . getAttribute ( "nonce" ) } , l ) : b ( u . textContent . replace ( Ne , "" ) , u , l ) ) } return n } function Oe ( e , t , n ) { for ( var r , i = t ? S . filter ( t , e ) : e , o = 0 ; null != ( r = i [ o ] ) ; o ++ ) n || 1 !== r . nodeType || S . cleanData ( ve ( r ) ) , r . parentNode && ( n && ie ( r ) && ye ( ve ( r , "script" ) ) ,
r . parentNode . removeChild ( r ) ) ; return e } S . extend ( { htmlPrefilter : function ( e ) { return e } , clone : function ( e , t , n ) { var r , i , o , a , s , u , l , c = e . cloneNode ( ! 0 ) , f = ie ( e ) ; if ( ! ( y . noCloneChecked || 1 !== e . nodeType && 11 !== e . nodeType || S . isXMLDoc ( e ) ) ) for ( a = ve ( c ) , r = 0 , i = ( o = ve ( e ) ) . length ; r < i ; r ++ ) s = o [ r ] , u = a [ r ] , void 0 , "input" === ( l = u . nodeName . toLowerCase ( ) ) && pe . test ( s . type ) ? u . checked = s . checked : "input" !== l && "textarea" !== l || ( u . defaultValue = s . defaultValue ) ; if ( t ) if ( n ) for ( o = o || ve ( e ) , a = a || ve ( c ) , r = 0 , i = o . length ; r < i ; r ++ ) Le ( o [ r ] , a [ r ] ) ; else Le ( e , c ) ; return 0 < ( a = ve ( c , "script" ) ) . length && ye ( a , ! f && ve ( e , "script" ) ) , c } , cleanData : function ( e ) { for ( var t , n , r , i = S . event . special , o = 0 ; void 0 !== ( n = e [ o ] ) ; o ++ ) if ( V ( n ) ) { if ( t = n [ Y . expando ] ) { if ( t . events ) for ( r in t . events ) i [ r ] ? S . event . remove ( n , r ) : S . removeEvent ( n , r , t . handle ) ; n [ Y . expando ] = void 0 } n [ Q . expando ] && ( n [ Q . expando ] = void 0 ) } } } ) , S . fn . extend ( { detach : function ( e ) { return Oe ( this , e , ! 0 ) } , remove : function ( e ) { return Oe ( this , e ) } , text : function ( e ) { return $ ( this , function ( e ) { return void 0 === e ? S . text ( this ) : this . empty ( ) . each ( function ( ) {
1 !== this . nodeType && 11 !== this . nodeType && 9 !== this . nodeType || ( this . textContent = e ) } ) } , null , e , arguments . length ) } , append : function ( ) { return He ( this , arguments , function ( e ) { 1 !== this . nodeType && 11 !== this . nodeType && 9 !== this . nodeType || je ( this , e ) . appendChild ( e ) } ) } , prepend : function ( ) { return He ( this , arguments , function ( e ) { if ( 1 === this . nodeType || 11 === this . nodeType || 9 === this . nodeType ) { var t = je ( this , e ) ; t . insertBefore ( e , t . firstChild ) } } ) } , before : function ( ) { return He ( this , arguments , function ( e ) { this . parentNode && this . parentNode . insertBefore ( e , this ) } ) } , after : function ( ) { return He ( this , arguments , function ( e ) { this . parentNode && this . parentNode . insertBefore ( e , this . nextSibling ) } ) } , empty : function ( ) { for ( var e , t = 0 ; null != ( e = this [ t ] ) ; t ++ ) 1 === e . nodeType && ( S . cleanData ( ve ( e , ! 1 ) ) , e . textContent = "" ) ; return this } , clone : function ( e , t ) { return e = null != e && e , t = null == t ? e : t , this . map ( function ( ) { return S . clone ( this , e , t ) } ) } , html : function ( e ) { return $ ( this , function ( e ) { var t = this [ 0 ] || { } , n = 0 , r = this . length ; if ( void 0 === e && 1 === t . nodeType ) return t . innerHTML ; if (
"string" == typeof e && ! ke . test ( e ) && ! ge [ ( de . exec ( e ) || [ "" , "" ] ) [ 1 ] . toLowerCase ( ) ] ) { e = S . htmlPrefilter ( e ) ; try { for ( ; n < r ; n ++ ) 1 === ( t = this [ n ] || { } ) . nodeType && ( S . cleanData ( ve ( t , ! 1 ) ) , t . innerHTML = e ) ; t = 0 } catch ( e ) { } } t && this . empty ( ) . append ( e ) } , null , e , arguments . length ) } , replaceWith : function ( ) { var n = [ ] ; return He ( this , arguments , function ( e ) { var t = this . parentNode ; S . inArray ( this , n ) < 0 && ( S . cleanData ( ve ( this ) ) , t && t . replaceChild ( e , this ) ) } , n ) } } ) , S . each ( { appendTo : "append" , prependTo : "prepend" , insertBefore : "before" , insertAfter : "after" , replaceAll : "replaceWith" } , function ( e , a ) { S . fn [ e ] = function ( e ) { for ( var t , n = [ ] , r = S ( e ) , i = r . length - 1 , o = 0 ; o <= i ; o ++ ) t = o === i ? this : this . clone ( ! 0 ) , S ( r [ o ] ) [ a ] ( t ) , u . apply ( n , t . get ( ) ) ; return this . pushStack ( n ) } } ) ; var Pe = new RegExp ( "^(" + ee + ")(?!px)[a-z%]+$" , "i" ) , Re = function ( e ) { var t = e . ownerDocument . defaultView ; return t && t . opener || ( t = C ) , t . getComputedStyle ( e ) } , Me = function ( e , t , n ) { var r , i , o = { } ; for ( i in t ) o [ i ] = e . style [ i ] , e . style [ i ] = t [ i ] ; for ( i in r = n . call ( e ) , t ) e . style [ i ] = o [ i ] ; return r } , Ie = new RegExp ( ne . join ( "|" ) , "i" ) ; function We ( e , t
, n ) { var r , i , o , a , s = e . style ; return ( n = n || Re ( e ) ) && ( "" !== ( a = n . getPropertyValue ( t ) || n [ t ] ) || ie ( e ) || ( a = S . style ( e , t ) ) , ! y . pixelBoxStyles ( ) && Pe . test ( a ) && Ie . test ( t ) && ( r = s . width , i = s . minWidth , o = s . maxWidth , s . minWidth = s . maxWidth = s . width = a , a = n . width , s . width = r , s . minWidth = i , s . maxWidth = o ) ) , void 0 !== a ? a + "" : a } function Fe ( e , t ) { return { get : function ( ) { if ( ! e ( ) ) return ( this . get = t ) . apply ( this , arguments ) ; delete this . get } } } ! function ( ) { function e ( ) { if ( l ) { u . style . cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0" , l . style . cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%" , re . appendChild ( u ) . appendChild ( l ) ; var e = C . getComputedStyle ( l ) ; n = "1%" !== e . top , s = 12 === t ( e . marginLeft ) , l . style . right = "60%" , o = 36 === t ( e . right ) , r = 36 === t ( e . width ) , l . style . position = "absolute" , i = 12 === t ( l . offsetWidth / 3 ) , re . removeChild ( u ) , l = null } } function t ( e ) { return Math . round ( parseFloat ( e ) ) } var n , r , i , o , a , s , u = E . createElement ( "div" ) , l = E . createElement ( "div" ) ; l . style && (
l . style . backgroundClip = "content-box" , l . cloneNode ( ! 0 ) . style . backgroundClip = "" , y . clearCloneStyle = "content-box" === l . style . backgroundClip , S . extend ( y , { boxSizingReliable : function ( ) { return e ( ) , r } , pixelBoxStyles : function ( ) { return e ( ) , o } , pixelPosition : function ( ) { return e ( ) , n } , reliableMarginLeft : function ( ) { return e ( ) , s } , scrollboxSize : function ( ) { return e ( ) , i } , reliableTrDimensions : function ( ) { var e , t , n , r ; return null == a && ( e = E . createElement ( "table" ) , t = E . createElement ( "tr" ) , n = E . createElement ( "div" ) , e . style . cssText = "position:absolute;left:-11111px;border-collapse:separate" , t . style . cssText = "border:1px solid" , t . style . height = "1px" , n . style . height = "9px" , n . style . display = "block" , re . appendChild ( e ) . appendChild ( t ) . appendChild ( n ) , r = C . getComputedStyle ( t ) , a = parseInt ( r . height , 10 ) + parseInt ( r . borderTopWidth , 10 ) + parseInt ( r . borderBottomWidth , 10 ) === t . offsetHeight , re . removeChild ( e ) ) , a } } ) ) } ( ) ; var Be = [ "Webkit" , "Moz" , "ms" ] , $e = E . createElement ( "div" ) . style , _e = { } ; function ze ( e ) { var t = S . cssProps [ e ] || _e [ e ] ; return t || ( e in $e ? e : _e [ e ] = function ( e ) { var t = e [
0 ] . toUpperCase ( ) + e . slice ( 1 ) , n = Be . length ; while ( n -- ) if ( ( e = Be [ n ] + t ) in $e ) return e } ( e ) || e ) } var Ue = /^(none|table(?!-c[ea]).+)/ , Xe = /^--/ , Ve = { position : "absolute" , visibility : "hidden" , display : "block" } , Ge = { letterSpacing : "0" , fontWeight : "400" } ; function Ye ( e , t , n ) { var r = te . exec ( t ) ; return r ? Math . max ( 0 , r [ 2 ] - ( n || 0 ) ) + ( r [ 3 ] || "px" ) : t } function Qe ( e , t , n , r , i , o ) { var a = "width" === t ? 1 : 0 , s = 0 , u = 0 ; if ( n === ( r ? "border" : "content" ) ) return 0 ; for ( ; a < 4 ; a += 2 ) "margin" === n && ( u += S . css ( e , n + ne [ a ] , ! 0 , i ) ) , r ? ( "content" === n && ( u -= S . css ( e , "padding" + ne [ a ] , ! 0 , i ) ) , "margin" !== n && ( u -= S . css ( e , "border" + ne [ a ] + "Width" , ! 0 , i ) ) ) : ( u += S . css ( e , "padding" + ne [ a ] , ! 0 , i ) , "padding" !== n ? u += S . css ( e , "border" + ne [ a ] + "Width" , ! 0 , i ) : s += S . css ( e , "border" + ne [ a ] + "Width" , ! 0 , i ) ) ; return ! r && 0 <= o && ( u += Math . max ( 0 , Math . ceil ( e [ "offset" + t [ 0 ] . toUpperCase ( ) + t . slice ( 1 ) ] - o - u - s - . 5 ) ) || 0 ) , u } function Je ( e , t , n ) { var r = Re ( e ) , i = ( ! y . boxSizingReliable ( ) || n ) && "border-box" === S . css ( e , "boxSizing" , ! 1 , r ) , o = i , a = We ( e , t , r ) , s = "offset" + t [ 0 ] . toUpperCase ( ) + t . slice ( 1 ) ; if ( Pe . test ( a ) ) { if ( ! n ) return a ; a = "auto" } return (
! y . boxSizingReliable ( ) && i || ! y . reliableTrDimensions ( ) && A ( e , "tr" ) || "auto" === a || ! parseFloat ( a ) && "inline" === S . css ( e , "display" , ! 1 , r ) ) && e . getClientRects ( ) . length && ( i = "border-box" === S . css ( e , "boxSizing" , ! 1 , r ) , ( o = s in e ) && ( a = e [ s ] ) ) , ( a = parseFloat ( a ) || 0 ) + Qe ( e , t , n || ( i ? "border" : "content" ) , o , r , a ) + "px" } function Ke ( e , t , n , r , i ) { return new Ke . prototype . init ( e , t , n , r , i ) } S . extend ( { cssHooks : { opacity : { get : function ( e , t ) { if ( t ) { var n = We ( e , "opacity" ) ; return "" === n ? "1" : n } } } } , cssNumber : { animationIterationCount : ! 0 , columnCount : ! 0 , fillOpacity : ! 0 , flexGrow : ! 0 , flexShrink : ! 0 , fontWeight : ! 0 , gridArea : ! 0 , gridColumn : ! 0 , gridColumnEnd : ! 0 , gridColumnStart : ! 0 , gridRow : ! 0 , gridRowEnd : ! 0 , gridRowStart : ! 0 , lineHeight : ! 0 , opacity : ! 0 , order : ! 0 , orphans : ! 0 , widows : ! 0 , zIndex : ! 0 , zoom : ! 0 } , cssProps : { } , style : function ( e , t , n , r ) { if ( e && 3 !== e . nodeType && 8 !== e . nodeType && e . style ) { var i , o , a , s = X ( t ) , u = Xe . test ( t ) , l = e . style ; if ( u || ( t = ze ( s ) ) , a = S . cssHooks [ t ] || S . cssHooks [ s ] , void 0 === n ) return a && "get" in a && void 0 !== ( i = a . get ( e , ! 1 , r ) ) ? i : l [ t ] ; "string" === ( o = typeof n ) && ( i = te . exec ( n ) ) && i [ 1 ] && ( n = se (
e , t , i ) , o = "number" ) , null != n && n == n && ( "number" !== o || u || ( n += i && i [ 3 ] || ( S . cssNumber [ s ] ? "" : "px" ) ) , y . clearCloneStyle || "" !== n || 0 !== t . indexOf ( "background" ) || ( l [ t ] = "inherit" ) , a && "set" in a && void 0 === ( n = a . set ( e , n , r ) ) || ( u ? l . setProperty ( t , n ) : l [ t ] = n ) ) } } , css : function ( e , t , n , r ) { var i , o , a , s = X ( t ) ; return Xe . test ( t ) || ( t = ze ( s ) ) , ( a = S . cssHooks [ t ] || S . cssHooks [ s ] ) && "get" in a && ( i = a . get ( e , ! 0 , n ) ) , void 0 === i && ( i = We ( e , t , r ) ) , "normal" === i && t in Ge && ( i = Ge [ t ] ) , "" === n || n ? ( o = parseFloat ( i ) , ! 0 === n || isFinite ( o ) ? o || 0 : i ) : i } } ) , S . each ( [ "height" , "width" ] , function ( e , u ) { S . cssHooks [ u ] = { get : function ( e , t , n ) { if ( t ) return ! Ue . test ( S . css ( e , "display" ) ) || e . getClientRects ( ) . length && e . getBoundingClientRect ( ) . width ? Je ( e , u , n ) : Me ( e , Ve , function ( ) { return Je ( e , u , n ) } ) } , set : function ( e , t , n ) { var r , i = Re ( e ) , o = ! y . scrollboxSize ( ) && "absolute" === i . position , a = ( o || n ) && "border-box" === S . css ( e , "boxSizing" , ! 1 , i ) , s = n ? Qe ( e , u , n , a , i ) : 0 ; return a && o && ( s -= Math . ceil ( e [ "offset" + u [ 0 ] . toUpperCase ( ) + u . slice ( 1 ) ] - parseFloat ( i [ u ] ) - Qe ( e , u , "border" , ! 1 , i ) - . 5 ) ) , s && ( r = te . exec ( t ) ) && "px" !== ( r [ 3 ] || "px" ) && (
e . style [ u ] = t , t = S . css ( e , u ) ) , Ye ( 0 , t , s ) } } } ) , S . cssHooks . marginLeft = Fe ( y . reliableMarginLeft , function ( e , t ) { if ( t ) return ( parseFloat ( We ( e , "marginLeft" ) ) || e . getBoundingClientRect ( ) . left - Me ( e , { marginLeft : 0 } , function ( ) { return e . getBoundingClientRect ( ) . left } ) ) + "px" } ) , S . each ( { margin : "" , padding : "" , border : "Width" } , function ( i , o ) { S . cssHooks [ i + o ] = { expand : function ( e ) { for ( var t = 0 , n = { } , r = "string" == typeof e ? e . split ( " " ) : [ e ] ; t < 4 ; t ++ ) n [ i + ne [ t ] + o ] = r [ t ] || r [ t - 2 ] || r [ 0 ] ; return n } } , "margin" !== i && ( S . cssHooks [ i + o ] . set = Ye ) } ) , S . fn . extend ( { css : function ( e , t ) { return $ ( this , function ( e , t , n ) { var r , i , o = { } , a = 0 ; if ( Array . isArray ( t ) ) { for ( r = Re ( e ) , i = t . length ; a < i ; a ++ ) o [ t [ a ] ] = S . css ( e , t [ a ] , ! 1 , r ) ; return o } return void 0 !== n ? S . style ( e , t , n ) : S . css ( e , t ) } , e , t , 1 < arguments . length ) } } ) , ( ( S . Tween = Ke ) . prototype = { constructor : Ke , init : function ( e , t , n , r , i , o ) { this . elem = e , this . prop = n , this . easing = i || S . easing . _default , this . options = t , this . start = this . now = this . cur ( ) , this . end = r , this . unit = o || ( S . cssNumber [ n ] ? "" : "px" ) } , cur : function ( ) { var e = Ke . propHooks [ this . prop ] ; return e && e . get ? e . get (
this ) : Ke . propHooks . _default . get ( this ) } , run : function ( e ) { var t , n = Ke . propHooks [ this . prop ] ; return this . options . duration ? this . pos = t = S . easing [ this . easing ] ( e , this . options . duration * e , 0 , 1 , this . options . duration ) : this . pos = t = e , this . now = ( this . end - this . start ) * t + this . start , this . options . step && this . options . step . call ( this . elem , this . now , this ) , n && n . set ? n . set ( this ) : Ke . propHooks . _default . set ( this ) , this } } ) . init . prototype = Ke . prototype , ( Ke . propHooks = { _default : { get : function ( e ) { var t ; return 1 !== e . elem . nodeType || null != e . elem [ e . prop ] && null == e . elem . style [ e . prop ] ? e . elem [ e . prop ] : ( t = S . css ( e . elem , e . prop , "" ) ) && "auto" !== t ? t : 0 } , set : function ( e ) { S . fx . step [ e . prop ] ? S . fx . step [ e . prop ] ( e ) : 1 !== e . elem . nodeType || ! S . cssHooks [ e . prop ] && null == e . elem . style [ ze ( e . prop ) ] ? e . elem [ e . prop ] = e . now : S . style ( e . elem , e . prop , e . now + e . unit ) } } } ) . scrollTop = Ke . propHooks . scrollLeft = { set : function ( e ) { e . elem . nodeType && e . elem . parentNode && ( e . elem [ e . prop ] = e . now ) } } , S . easing = { linear : function ( e ) { return e } , swing : function ( e ) { return . 5 - Math . cos ( e * Math . PI ) / 2 } , _default : "swing" } ,
S . fx = Ke . prototype . init , S . fx . step = { } ; var Ze , et , tt , nt , rt = /^(?:toggle|show|hide)$/ , it = /queueHooks$/ ; function ot ( ) { et && ( ! 1 === E . hidden && C . requestAnimationFrame ? C . requestAnimationFrame ( ot ) : C . setTimeout ( ot , S . fx . interval ) , S . fx . tick ( ) ) } function at ( ) { return C . setTimeout ( function ( ) { Ze = void 0 } ) , Ze = Date . now ( ) } function st ( e , t ) { var n , r = 0 , i = { height : e } ; for ( t = t ? 1 : 0 ; r < 4 ; r += 2 - t ) i [ "margin" + ( n = ne [ r ] ) ] = i [ "padding" + n ] = e ; return t && ( i . opacity = i . width = e ) , i } function ut ( e , t , n ) { for ( var r , i = ( lt . tweeners [ t ] || [ ] ) . concat ( lt . tweeners [ "*" ] ) , o = 0 , a = i . length ; o < a ; o ++ ) if ( r = i [ o ] . call ( n , t , e ) ) return r } function lt ( o , e , t ) { var n , a , r = 0 , i = lt . prefilters . length , s = S . Deferred ( ) . always ( function ( ) { delete u . elem } ) , u = function ( ) { if ( a ) return ! 1 ; for ( var e = Ze || at ( ) , t = Math . max ( 0 , l . startTime + l . duration - e ) , n = 1 - ( t / l . duration || 0 ) , r = 0 , i = l . tweens . length ; r < i ; r ++ ) l . tweens [ r ] . run ( n ) ; return s . notifyWith ( o , [ l , n , t ] ) , n < 1 && i ? t : ( i || s . notifyWith ( o , [ l , 1 , 0 ] ) , s . resolveWith ( o , [ l ] ) , ! 1 ) } , l = s . promise ( { elem : o , props : S . extend ( { } , e ) , opts : S . extend ( ! 0 , { specialEasing : { } , easing : S . easing . _default } , t ) ,
originalProperties : e , originalOptions : t , startTime : Ze || at ( ) , duration : t . duration , tweens : [ ] , createTween : function ( e , t ) { var n = S . Tween ( o , l . opts , e , t , l . opts . specialEasing [ e ] || l . opts . easing ) ; return l . tweens . push ( n ) , n } , stop : function ( e ) { var t = 0 , n = e ? l . tweens . length : 0 ; if ( a ) return this ; for ( a = ! 0 ; t < n ; t ++ ) l . tweens [ t ] . run ( 1 ) ; return e ? ( s . notifyWith ( o , [ l , 1 , 0 ] ) , s . resolveWith ( o , [ l , e ] ) ) : s . rejectWith ( o , [ l , e ] ) , this } } ) , c = l . props ; for ( ! function ( e , t ) { var n , r , i , o , a ; for ( n in e ) if ( i = t [ r = X ( n ) ] , o = e [ n ] , Array . isArray ( o ) && ( i = o [ 1 ] , o = e [ n ] = o [ 0 ] ) , n !== r && ( e [ r ] = o , delete e [ n ] ) , ( a = S . cssHooks [ r ] ) && "expand" in a ) for ( n in o = a . expand ( o ) , delete e [ r ] , o ) n in e || ( e [ n ] = o [ n ] , t [ n ] = i ) ; else t [ r ] = i } ( c , l . opts . specialEasing ) ; r < i ; r ++ ) if ( n = lt . prefilters [ r ] . call ( l , o , c , l . opts ) ) return m ( n . stop ) && ( S . _queueHooks ( l . elem , l . opts . queue ) . stop = n . stop . bind ( n ) ) , n ; return S . map ( c , ut , l ) , m ( l . opts . start ) && l . opts . start . call ( o , l ) , l . progress ( l . opts . progress ) . done ( l . opts . done , l . opts . complete ) . fail ( l . opts . fail ) . always ( l . opts . always ) , S . fx . timer ( S . extend ( u , { elem : o , anim : l , queue : l . opts . queue } ) ) , l }
S . Animation = S . extend ( lt , { tweeners : { "*" : [ function ( e , t ) { var n = this . createTween ( e , t ) ; return se ( n . elem , e , te . exec ( t ) , n ) , n } ] } , tweener : function ( e , t ) { m ( e ) ? ( t = e , e = [ "*" ] ) : e = e . match ( P ) ; for ( var n , r = 0 , i = e . length ; r < i ; r ++ ) n = e [ r ] , lt . tweeners [ n ] = lt . tweeners [ n ] || [ ] , lt . tweeners [ n ] . unshift ( t ) } , prefilters : [ function ( e , t , n ) { var r , i , o , a , s , u , l , c , f = "width" in t || "height" in t , p = this , d = { } , h = e . style , g = e . nodeType && ae ( e ) , v = Y . get ( e , "fxshow" ) ; for ( r in n . queue || ( null == ( a = S . _queueHooks ( e , "fx" ) ) . unqueued && ( a . unqueued = 0 , s = a . empty . fire , a . empty . fire = function ( ) { a . unqueued || s ( ) } ) , a . unqueued ++ , p . always ( function ( ) { p . always ( function ( ) { a . unqueued -- , S . queue ( e , "fx" ) . length || a . empty . fire ( ) } ) } ) ) , t ) if ( i = t [ r ] , rt . test ( i ) ) { if ( delete t [ r ] , o = o || "toggle" === i , i === ( g ? "hide" : "show" ) ) { if ( "show" !== i || ! v || void 0 === v [ r ] ) continue ; g = ! 0 } d [ r ] = v && v [ r ] || S . style ( e , r ) } if ( ( u = ! S . isEmptyObject ( t ) ) || ! S . isEmptyObject ( d ) ) for ( r in f && 1 === e . nodeType && ( n . overflow = [ h . overflow , h . overflowX , h . overflowY ] , null == ( l = v && v . display ) && ( l = Y . get ( e , "display" ) ) , "none" === ( c = S . css ( e , "display" ) ) && ( l ? c = l : (
le ( [ e ] , ! 0 ) , l = e . style . display || l , c = S . css ( e , "display" ) , le ( [ e ] ) ) ) , ( "inline" === c || "inline-block" === c && null != l ) && "none" === S . css ( e , "float" ) && ( u || ( p . done ( function ( ) { h . display = l } ) , null == l && ( c = h . display , l = "none" === c ? "" : c ) ) , h . display = "inline-block" ) ) , n . overflow && ( h . overflow = "hidden" , p . always ( function ( ) { h . overflow = n . overflow [ 0 ] , h . overflowX = n . overflow [ 1 ] , h . overflowY = n . overflow [ 2 ] } ) ) , u = ! 1 , d ) u || ( v ? "hidden" in v && ( g = v . hidden ) : v = Y . access ( e , "fxshow" , { display : l } ) , o && ( v . hidden = ! g ) , g && le ( [ e ] , ! 0 ) , p . done ( function ( ) { for ( r in g || le ( [ e ] ) , Y . remove ( e , "fxshow" ) , d ) S . style ( e , r , d [ r ] ) } ) ) , u = ut ( g ? v [ r ] : 0 , r , p ) , r in v || ( v [ r ] = u . start , g && ( u . end = u . start , u . start = 0 ) ) } ] , prefilter : function ( e , t ) { t ? lt . prefilters . unshift ( e ) : lt . prefilters . push ( e ) } } ) , S . speed = function ( e , t , n ) { var r = e && "object" == typeof e ? S . extend ( { } , e ) : { complete : n || ! n && t || m ( e ) && e , duration : e , easing : n && t || t && ! m ( t ) && t } ; return S . fx . off ? r . duration = 0 : "number" != typeof r . duration && ( r . duration in S . fx . speeds ? r . duration = S . fx . speeds [ r . duration ] : r . duration = S . fx . speeds . _default ) ,
null != r . queue && ! 0 !== r . queue || ( r . queue = "fx" ) , r . old = r . complete , r . complete = function ( ) { m ( r . old ) && r . old . call ( this ) , r . queue && S . dequeue ( this , r . queue ) } , r } , S . fn . extend ( { fadeTo : function ( e , t , n , r ) { return this . filter ( ae ) . css ( "opacity" , 0 ) . show ( ) . end ( ) . animate ( { opacity : t } , e , n , r ) } , animate : function ( t , e , n , r ) { var i = S . isEmptyObject ( t ) , o = S . speed ( e , n , r ) , a = function ( ) { var e = lt ( this , S . extend ( { } , t ) , o ) ; ( i || Y . get ( this , "finish" ) ) && e . stop ( ! 0 ) } ; return a . finish = a , i || ! 1 === o . queue ? this . each ( a ) : this . queue ( o . queue , a ) } , stop : function ( i , e , o ) { var a = function ( e ) { var t = e . stop ; delete e . stop , t ( o ) } ; return "string" != typeof i && ( o = e , e = i , i = void 0 ) , e && this . queue ( i || "fx" , [ ] ) , this . each ( function ( ) { var e = ! 0 , t = null != i && i + "queueHooks" , n = S . timers , r = Y . get ( this ) ; if ( t ) r [ t ] && r [ t ] . stop && a ( r [ t ] ) ; else for ( t in r ) r [ t ] && r [ t ] . stop && it . test ( t ) && a ( r [ t ] ) ; for ( t = n . length ; t -- ; ) n [ t ] . elem !== this || null != i && n [ t ] . queue !== i || ( n [ t ] . anim . stop ( o ) , e = ! 1 , n . splice ( t , 1 ) ) ; ! e && o || S . dequeue ( this , i ) } ) } , finish : function ( a ) { return ! 1 !== a && ( a = a || "fx" ) , this . each ( function ( ) { var e , t = Y . get ( this ) , n = t [ a + "queue"
] , r = t [ a + "queueHooks" ] , i = S . timers , o = n ? n . length : 0 ; for ( t . finish = ! 0 , S . queue ( this , a , [ ] ) , r && r . stop && r . stop . call ( this , ! 0 ) , e = i . length ; e -- ; ) i [ e ] . elem === this && i [ e ] . queue === a && ( i [ e ] . anim . stop ( ! 0 ) , i . splice ( e , 1 ) ) ; for ( e = 0 ; e < o ; e ++ ) n [ e ] && n [ e ] . finish && n [ e ] . finish . call ( this ) ; delete t . finish } ) } } ) , S . each ( [ "toggle" , "show" , "hide" ] , function ( e , r ) { var i = S . fn [ r ] ; S . fn [ r ] = function ( e , t , n ) { return null == e || "boolean" == typeof e ? i . apply ( this , arguments ) : this . animate ( st ( r , ! 0 ) , e , t , n ) } } ) , S . each ( { slideDown : st ( "show" ) , slideUp : st ( "hide" ) , slideToggle : st ( "toggle" ) , fadeIn : { opacity : "show" } , fadeOut : { opacity : "hide" } , fadeToggle : { opacity : "toggle" } } , function ( e , r ) { S . fn [ e ] = function ( e , t , n ) { return this . animate ( r , e , t , n ) } } ) , S . timers = [ ] , S . fx . tick = function ( ) { var e , t = 0 , n = S . timers ; for ( Ze = Date . now ( ) ; t < n . length ; t ++ ) ( e = n [ t ] ) ( ) || n [ t ] !== e || n . splice ( t -- , 1 ) ; n . length || S . fx . stop ( ) , Ze = void 0 } , S . fx . timer = function ( e ) { S . timers . push ( e ) , S . fx . start ( ) } , S . fx . interval = 13 , S . fx . start = function ( ) { et || ( et = ! 0 , ot ( ) ) } , S . fx . stop = function ( ) { et = null } , S . fx . speeds = { slow : 600 , fast : 200 , _default : 400 } ,
S . fn . delay = function ( r , e ) { return r = S . fx && S . fx . speeds [ r ] || r , e = e || "fx" , this . queue ( e , function ( e , t ) { var n = C . setTimeout ( e , r ) ; t . stop = function ( ) { C . clearTimeout ( n ) } } ) } , tt = E . createElement ( "input" ) , nt = E . createElement ( "select" ) . appendChild ( E . createElement ( "option" ) ) , tt . type = "checkbox" , y . checkOn = "" !== tt . value , y . optSelected = nt . selected , ( tt = E . createElement ( "input" ) ) . value = "t" , tt . type = "radio" , y . radioValue = "t" === tt . value ; var ct , ft = S . expr . attrHandle ; S . fn . extend ( { attr : function ( e , t ) { return $ ( this , S . attr , e , t , 1 < arguments . length ) } , removeAttr : function ( e ) { return this . each ( function ( ) { S . removeAttr ( this , e ) } ) } } ) , S . extend ( { attr : function ( e , t , n ) { var r , i , o = e . nodeType ; if ( 3 !== o && 8 !== o && 2 !== o ) return "undefined" == typeof e . getAttribute ? S . prop ( e , t , n ) : ( 1 === o && S . isXMLDoc ( e ) || ( i = S . attrHooks [ t . toLowerCase ( ) ] || ( S . expr . match . bool . test ( t ) ? ct : void 0 ) ) , void 0 !== n ? null === n ? void S . removeAttr ( e , t ) : i && "set" in i && void 0 !== ( r = i . set ( e , n , t ) ) ? r : ( e . setAttribute ( t , n + "" ) , n ) : i && "get" in i && null !== ( r = i . get ( e , t ) ) ? r : null == ( r = S . find . attr ( e , t ) ) ? void 0 : r ) } , attrHooks : { type : {
set : function ( e , t ) { if ( ! y . radioValue && "radio" === t && A ( e , "input" ) ) { var n = e . value ; return e . setAttribute ( "type" , t ) , n && ( e . value = n ) , t } } } } , removeAttr : function ( e , t ) { var n , r = 0 , i = t && t . match ( P ) ; if ( i && 1 === e . nodeType ) while ( n = i [ r ++ ] ) e . removeAttribute ( n ) } } ) , ct = { set : function ( e , t , n ) { return ! 1 === t ? S . removeAttr ( e , n ) : e . setAttribute ( n , n ) , n } } , S . each ( S . expr . match . bool . source . match ( /\w+/g ) , function ( e , t ) { var a = ft [ t ] || S . find . attr ; ft [ t ] = function ( e , t , n ) { var r , i , o = t . toLowerCase ( ) ; return n || ( i = ft [ o ] , ft [ o ] = r , r = null != a ( e , t , n ) ? o : null , ft [ o ] = i ) , r } } ) ; var pt = /^(?:input|select|textarea|button)$/i , dt = /^(?:a|area)$/i ; function ht ( e ) { return ( e . match ( P ) || [ ] ) . join ( " " ) } function gt ( e ) { return e . getAttribute && e . getAttribute ( "class" ) || "" } function vt ( e ) { return Array . isArray ( e ) ? e : "string" == typeof e && e . match ( P ) || [ ] } S . fn . extend ( { prop : function ( e , t ) { return $ ( this , S . prop , e , t , 1 < arguments . length ) } , removeProp : function ( e ) { return this . each ( function ( ) { delete this [ S . propFix [ e ] || e ] } ) } } ) , S . extend ( { prop : function ( e , t , n ) { var r , i , o = e . nodeType ; if ( 3 !== o && 8 !== o && 2 !== o
) return 1 === o && S . isXMLDoc ( e ) || ( t = S . propFix [ t ] || t , i = S . propHooks [ t ] ) , void 0 !== n ? i && "set" in i && void 0 !== ( r = i . set ( e , n , t ) ) ? r : e [ t ] = n : i && "get" in i && null !== ( r = i . get ( e , t ) ) ? r : e [ t ] } , propHooks : { tabIndex : { get : function ( e ) { var t = S . find . attr ( e , "tabindex" ) ; return t ? parseInt ( t , 10 ) : pt . test ( e . nodeName ) || dt . test ( e . nodeName ) && e . href ? 0 : - 1 } } } , propFix : { for : "htmlFor" , class : "className" } } ) , y . optSelected || ( S . propHooks . selected = { get : function ( e ) { var t = e . parentNode ; return t && t . parentNode && t . parentNode . selectedIndex , null } , set : function ( e ) { var t = e . parentNode ; t && ( t . selectedIndex , t . parentNode && t . parentNode . selectedIndex ) } } ) , S . each ( [ "tabIndex" , "readOnly" , "maxLength" , "cellSpacing" , "cellPadding" , "rowSpan" , "colSpan" , "useMap" , "frameBorder" , "contentEditable" ] , function ( ) { S . propFix [ this . toLowerCase ( ) ] = this } ) , S . fn . extend ( { addClass : function ( t ) { var e , n , r , i , o , a , s , u = 0 ; if ( m ( t ) ) return this . each ( function ( e ) { S ( this ) . addClass ( t . call ( this , e , gt ( this ) ) ) } ) ; if ( ( e = vt ( t ) ) . length ) while ( n = this [ u ++ ] ) if ( i = gt ( n ) , r = 1 === n . nodeType && " " + ht ( i ) + " " ) { a = 0 ; while ( o = e [ a ++ ] ) r . indexOf (
" " + o + " " ) < 0 && ( r += o + " " ) ; i !== ( s = ht ( r ) ) && n . setAttribute ( "class" , s ) } return this } , removeClass : function ( t ) { var e , n , r , i , o , a , s , u = 0 ; if ( m ( t ) ) return this . each ( function ( e ) { S ( this ) . removeClass ( t . call ( this , e , gt ( this ) ) ) } ) ; if ( ! arguments . length ) return this . attr ( "class" , "" ) ; if ( ( e = vt ( t ) ) . length ) while ( n = this [ u ++ ] ) if ( i = gt ( n ) , r = 1 === n . nodeType && " " + ht ( i ) + " " ) { a = 0 ; while ( o = e [ a ++ ] ) while ( - 1 < r . indexOf ( " " + o + " " ) ) r = r . replace ( " " + o + " " , " " ) ; i !== ( s = ht ( r ) ) && n . setAttribute ( "class" , s ) } return this } , toggleClass : function ( i , t ) { var o = typeof i , a = "string" === o || Array . isArray ( i ) ; return "boolean" == typeof t && a ? t ? this . addClass ( i ) : this . removeClass ( i ) : m ( i ) ? this . each ( function ( e ) { S ( this ) . toggleClass ( i . call ( this , e , gt ( this ) , t ) , t ) } ) : this . each ( function ( ) { var e , t , n , r ; if ( a ) { t = 0 , n = S ( this ) , r = vt ( i ) ; while ( e = r [ t ++ ] ) n . hasClass ( e ) ? n . removeClass ( e ) : n . addClass ( e ) } else void 0 !== i && "boolean" !== o || ( ( e = gt ( this ) ) && Y . set ( this , "__className__" , e ) , this . setAttribute && this . setAttribute ( "class" , e || ! 1 === i ? "" : Y . get ( this , "__className__" ) || "" ) ) } ) } , hasClass : function ( e ) { var t , n , r = 0 ;
t = " " + e + " " ; while ( n = this [ r ++ ] ) if ( 1 === n . nodeType && - 1 < ( " " + ht ( gt ( n ) ) + " " ) . indexOf ( t ) ) return ! 0 ; return ! 1 } } ) ; var yt = /\r/g ; S . fn . extend ( { val : function ( n ) { var r , e , i , t = this [ 0 ] ; return arguments . length ? ( i = m ( n ) , this . each ( function ( e ) { var t ; 1 === this . nodeType && ( null == ( t = i ? n . call ( this , e , S ( this ) . val ( ) ) : n ) ? t = "" : "number" == typeof t ? t += "" : Array . isArray ( t ) && ( t = S . map ( t , function ( e ) { return null == e ? "" : e + "" } ) ) , ( r = S . valHooks [ this . type ] || S . valHooks [ this . nodeName . toLowerCase ( ) ] ) && "set" in r && void 0 !== r . set ( this , t , "value" ) || ( this . value = t ) ) } ) ) : t ? ( r = S . valHooks [ t . type ] || S . valHooks [ t . nodeName . toLowerCase ( ) ] ) && "get" in r && void 0 !== ( e = r . get ( t , "value" ) ) ? e : "string" == typeof ( e = t . value ) ? e . replace ( yt , "" ) : null == e ? "" : e : void 0 } } ) , S . extend ( { valHooks : { option : { get : function ( e ) { var t = S . find . attr ( e , "value" ) ; return null != t ? t : ht ( S . text ( e ) ) } } , select : { get : function ( e ) { var t , n , r , i = e . options , o = e . selectedIndex , a = "select-one" === e . type , s = a ? null : [ ] , u = a ? o + 1 : i . length ; for ( r = o < 0 ? u : a ? o : 0 ; r < u ; r ++ ) if ( ( ( n = i [ r ] ) . selected || r === o ) && ! n . disabled && ( ! n . parentNode . disabled || ! A ( n . parentNode
, "optgroup" ) ) ) { if ( t = S ( n ) . val ( ) , a ) return t ; s . push ( t ) } return s } , set : function ( e , t ) { var n , r , i = e . options , o = S . makeArray ( t ) , a = i . length ; while ( a -- ) ( ( r = i [ a ] ) . selected = - 1 < S . inArray ( S . valHooks . option . get ( r ) , o ) ) && ( n = ! 0 ) ; return n || ( e . selectedIndex = - 1 ) , o } } } } ) , S . each ( [ "radio" , "checkbox" ] , function ( ) { S . valHooks [ this ] = { set : function ( e , t ) { if ( Array . isArray ( t ) ) return e . checked = - 1 < S . inArray ( S ( e ) . val ( ) , t ) } } , y . checkOn || ( S . valHooks [ this ] . get = function ( e ) { return null === e . getAttribute ( "value" ) ? "on" : e . value } ) } ) , y . focusin = "onfocusin" in C ; var mt = /^(?:focusinfocus|focusoutblur)$/ , xt = function ( e ) { e . stopPropagation ( ) } ; S . extend ( S . event , { trigger : function ( e , t , n , r ) { var i , o , a , s , u , l , c , f , p = [ n || E ] , d = v . call ( e , "type" ) ? e . type : e , h = v . call ( e , "namespace" ) ? e . namespace . split ( "." ) : [ ] ; if ( o = f = a = n = n || E , 3 !== n . nodeType && 8 !== n . nodeType && ! mt . test ( d + S . event . triggered ) && ( - 1 < d . indexOf ( "." ) && ( d = ( h = d . split ( "." ) ) . shift ( ) , h . sort ( ) ) , u = d . indexOf ( ":" ) < 0 && "on" + d , ( e = e [ S . expando ] ? e : new S . Event ( d , "object" == typeof e && e ) ) . isTrigger = r ? 2 : 3 , e . namespace = h . join ( "." ) ,
e . rnamespace = e . namespace ? new RegExp ( "(^|\\.)" + h . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : null , e . result = void 0 , e . target || ( e . target = n ) , t = null == t ? [ e ] : S . makeArray ( t , [ e ] ) , c = S . event . special [ d ] || { } , r || ! c . trigger || ! 1 !== c . trigger . apply ( n , t ) ) ) { if ( ! r && ! c . noBubble && ! x ( n ) ) { for ( s = c . delegateType || d , mt . test ( s + d ) || ( o = o . parentNode ) ; o ; o = o . parentNode ) p . push ( o ) , a = o ; a === ( n . ownerDocument || E ) && p . push ( a . defaultView || a . parentWindow || C ) } i = 0 ; while ( ( o = p [ i ++ ] ) && ! e . isPropagationStopped ( ) ) f = o , e . type = 1 < i ? s : c . bindType || d , ( l = ( Y . get ( o , "events" ) || Object . create ( null ) ) [ e . type ] && Y . get ( o , "handle" ) ) && l . apply ( o , t ) , ( l = u && o [ u ] ) && l . apply && V ( o ) && ( e . result = l . apply ( o , t ) , ! 1 === e . result && e . preventDefault ( ) ) ; return e . type = d , r || e . isDefaultPrevented ( ) || c . _default && ! 1 !== c . _default . apply ( p . pop ( ) , t ) || ! V ( n ) || u && m ( n [ d ] ) && ! x ( n ) && ( ( a = n [ u ] ) && ( n [ u ] = null ) , S . event . triggered = d , e . isPropagationStopped ( ) && f . addEventListener ( d , xt ) , n [ d ] ( ) , e . isPropagationStopped ( ) && f . removeEventListener ( d , xt ) , S . event . triggered = void 0 , a && ( n [ u ] = a ) ) , e . result } } , simulate : function ( e , t , n ) { var r = S . extend (
new S . Event , n , { type : e , isSimulated : ! 0 } ) ; S . event . trigger ( r , null , t ) } } ) , S . fn . extend ( { trigger : function ( e , t ) { return this . each ( function ( ) { S . event . trigger ( e , t , this ) } ) } , triggerHandler : function ( e , t ) { var n = this [ 0 ] ; if ( n ) return S . event . trigger ( e , t , n , ! 0 ) } } ) , y . focusin || S . each ( { focus : "focusin" , blur : "focusout" } , function ( n , r ) { var i = function ( e ) { S . event . simulate ( r , e . target , S . event . fix ( e ) ) } ; S . event . special [ r ] = { setup : function ( ) { var e = this . ownerDocument || this . document || this , t = Y . access ( e , r ) ; t || e . addEventListener ( n , i , ! 0 ) , Y . access ( e , r , ( t || 0 ) + 1 ) } , teardown : function ( ) { var e = this . ownerDocument || this . document || this , t = Y . access ( e , r ) - 1 ; t ? Y . access ( e , r , t ) : ( e . removeEventListener ( n , i , ! 0 ) , Y . remove ( e , r ) ) } } } ) ; var bt = C . location , wt = { guid : Date . now ( ) } , Tt = /\?/ ; S . parseXML = function ( e ) { var t , n ; if ( ! e || "string" != typeof e ) return null ; try { t = ( new C . DOMParser ) . parseFromString ( e , "text/xml" ) } catch ( e ) { } return n = t && t . getElementsByTagName ( "parsererror" ) [ 0 ] , t && ! n || S . error ( "Invalid XML: " + ( n ? S . map ( n . childNodes , function ( e ) { return e . textContent } ) . join ( "\n" ) : e ) ) , t } ;
var Ct = /\[\]$/ , Et = /\r?\n/g , St = /^(?:submit|button|image|reset|file)$/i , kt = /^(?:input|select|textarea|keygen)/i ; function At ( n , e , r , i ) { var t ; if ( Array . isArray ( e ) ) S . each ( e , function ( e , t ) { r || Ct . test ( n ) ? i ( n , t ) : At ( n + "[" + ( "object" == typeof t && null != t ? e : "" ) + "]" , t , r , i ) } ) ; else if ( r || "object" !== w ( e ) ) i ( n , e ) ; else for ( t in e ) At ( n + "[" + t + "]" , e [ t ] , r , i ) } S . param = function ( e , t ) { var n , r = [ ] , i = function ( e , t ) { var n = m ( t ) ? t ( ) : t ; r [ r . length ] = encodeURIComponent ( e ) + "=" + encodeURIComponent ( null == n ? "" : n ) } ; if ( null == e ) return "" ; if ( Array . isArray ( e ) || e . jquery && ! S . isPlainObject ( e ) ) S . each ( e , function ( ) { i ( this . name , this . value ) } ) ; else for ( n in e ) At ( n , e [ n ] , t , i ) ; return r . join ( "&" ) } , S . fn . extend ( { serialize : function ( ) { return S . param ( this . serializeArray ( ) ) } , serializeArray : function ( ) { return this . map ( function ( ) { var e = S . prop ( this , "elements" ) ; return e ? S . makeArray ( e ) : this } ) . filter ( function ( ) { var e = this . type ; return this . name && ! S ( this ) . is ( ":disabled" ) && kt . test ( this . nodeName ) && ! St . test ( e ) && ( this . checked || ! pe . test ( e ) ) } ) . map ( function ( e , t ) { var n = S ( this ) . val ( ) ;
return null == n ? null : Array . isArray ( n ) ? S . map ( n , function ( e ) { return { name : t . name , value : e . replace ( Et , "\r\n" ) } } ) : { name : t . name , value : n . replace ( Et , "\r\n" ) } } ) . get ( ) } } ) ; var Nt = /%20/g , jt = /#.*$/ , Dt = /([?&])_=[^&]*/ , qt = /^(.*?):[ \t]*([^\r\n]*)$/gm , Lt = /^(?:GET|HEAD)$/ , Ht = /^\/\// , Ot = { } , Pt = { } , Rt = "*/" . concat ( "*" ) , Mt = E . createElement ( "a" ) ; function It ( o ) { return function ( e , t ) { "string" != typeof e && ( t = e , e = "*" ) ; var n , r = 0 , i = e . toLowerCase ( ) . match ( P ) || [ ] ; if ( m ( t ) ) while ( n = i [ r ++ ] ) "+" === n [ 0 ] ? ( n = n . slice ( 1 ) || "*" , ( o [ n ] = o [ n ] || [ ] ) . unshift ( t ) ) : ( o [ n ] = o [ n ] || [ ] ) . push ( t ) } } function Wt ( t , i , o , a ) { var s = { } , u = t === Pt ; function l ( e ) { var r ; return s [ e ] = ! 0 , S . each ( t [ e ] || [ ] , function ( e , t ) { var n = t ( i , o , a ) ; return "string" != typeof n || u || s [ n ] ? u ? ! ( r = n ) : void 0 : ( i . dataTypes . unshift ( n ) , l ( n ) , ! 1 ) } ) , r } return l ( i . dataTypes [ 0 ] ) || ! s [ "*" ] && l ( "*" ) } function Ft ( e , t ) { var n , r , i = S . ajaxSettings . flatOptions || { } ; for ( n in t ) void 0 !== t [ n ] && ( ( i [ n ] ? e : r || ( r = { } ) ) [ n ] = t [ n ] ) ; return r && S . extend ( ! 0 , e , r ) , e } Mt . href = bt . href , S . extend ( { active : 0 , lastModified : { } , etag : { } , ajaxSettings : { url : bt . href , type : "GET" ,
isLocal : /^(?:about|app|app-storage|.+-extension|file|res|widget):$/ . test ( bt . protocol ) , global : ! 0 , processData : ! 0 , async : ! 0 , contentType : "application/x-www-form-urlencoded; charset=UTF-8" , accepts : { "*" : Rt , text : "text/plain" , html : "text/html" , xml : "application/xml, text/xml" , json : "application/json, text/javascript" } , contents : { xml : /\bxml\b/ , html : /\bhtml/ , json : /\bjson\b/ } , responseFields : { xml : "responseXML" , text : "responseText" , json : "responseJSON" } , converters : { "* text" : String , "text html" : ! 0 , "text json" : JSON . parse , "text xml" : S . parseXML } , flatOptions : { url : ! 0 , context : ! 0 } } , ajaxSetup : function ( e , t ) { return t ? Ft ( Ft ( e , S . ajaxSettings ) , t ) : Ft ( S . ajaxSettings , e ) } , ajaxPrefilter : It ( Ot ) , ajaxTransport : It ( Pt ) , ajax : function ( e , t ) { "object" == typeof e && ( t = e , e = void 0 ) , t = t || { } ; var c , f , p , n , d , r , h , g , i , o , v = S . ajaxSetup ( { } , t ) , y = v . context || v , m = v . context && ( y . nodeType || y . jquery ) ? S ( y ) : S . event , x = S . Deferred ( ) , b = S . Callbacks ( "once memory" ) , w = v . statusCode || { } , a = { } , s = { } , u = "canceled" , T = { readyState : 0 , getResponseHeader : function ( e ) { var t ; if ( h ) { if ( ! n ) { n = { } ; while (
t = qt . exec ( p ) ) n [ t [ 1 ] . toLowerCase ( ) + " " ] = ( n [ t [ 1 ] . toLowerCase ( ) + " " ] || [ ] ) . concat ( t [ 2 ] ) } t = n [ e . toLowerCase ( ) + " " ] } return null == t ? null : t . join ( ", " ) } , getAllResponseHeaders : function ( ) { return h ? p : null } , setRequestHeader : function ( e , t ) { return null == h && ( e = s [ e . toLowerCase ( ) ] = s [ e . toLowerCase ( ) ] || e , a [ e ] = t ) , this } , overrideMimeType : function ( e ) { return null == h && ( v . mimeType = e ) , this } , statusCode : function ( e ) { var t ; if ( e ) if ( h ) T . always ( e [ T . status ] ) ; else for ( t in e ) w [ t ] = [ w [ t ] , e [ t ] ] ; return this } , abort : function ( e ) { var t = e || u ; return c && c . abort ( t ) , l ( 0 , t ) , this } } ; if ( x . promise ( T ) , v . url = ( ( e || v . url || bt . href ) + "" ) . replace ( Ht , bt . protocol + "//" ) , v . type = t . method || t . type || v . method || v . type , v . dataTypes = ( v . dataType || "*" ) . toLowerCase ( ) . match ( P ) || [ "" ] , null == v . crossDomain ) { r = E . createElement ( "a" ) ; try { r . href = v . url , r . href = r . href , v . crossDomain = Mt . protocol + "//" + Mt . host != r . protocol + "//" + r . host } catch ( e ) { v . crossDomain = ! 0 } } if ( v . data && v . processData && "string" != typeof v . data && ( v . data = S . param ( v . data , v . traditional ) ) , Wt ( Ot , v , t , T ) , h ) return T ; for ( i in ( g = S . event && v . global
) && 0 == S . active ++ && S . event . trigger ( "ajaxStart" ) , v . type = v . type . toUpperCase ( ) , v . hasContent = ! Lt . test ( v . type ) , f = v . url . replace ( jt , "" ) , v . hasContent ? v . data && v . processData && 0 === ( v . contentType || "" ) . indexOf ( "application/x-www-form-urlencoded" ) && ( v . data = v . data . replace ( Nt , "+" ) ) : ( o = v . url . slice ( f . length ) , v . data && ( v . processData || "string" == typeof v . data ) && ( f += ( Tt . test ( f ) ? "&" : "?" ) + v . data , delete v . data ) , ! 1 === v . cache && ( f = f . replace ( Dt , "$1" ) , o = ( Tt . test ( f ) ? "&" : "?" ) + "_=" + wt . guid ++ + o ) , v . url = f + o ) , v . ifModified && ( S . lastModified [ f ] && T . setRequestHeader ( "If-Modified-Since" , S . lastModified [ f ] ) , S . etag [ f ] && T . setRequestHeader ( "If-None-Match" , S . etag [ f ] ) ) , ( v . data && v . hasContent && ! 1 !== v . contentType || t . contentType ) && T . setRequestHeader ( "Content-Type" , v . contentType ) , T . setRequestHeader ( "Accept" , v . dataTypes [ 0 ] && v . accepts [ v . dataTypes [ 0 ] ] ? v . accepts [ v . dataTypes [ 0 ] ] + ( "*" !== v . dataTypes [ 0 ] ? ", " + Rt + "; q=0.01" : "" ) : v . accepts [ "*" ] ) , v . headers ) T . setRequestHeader ( i , v . headers [ i ] ) ; if ( v . beforeSend && ( ! 1 === v . beforeSend . call ( y , T , v ) || h ) ) return T . abort ( ) ; if ( u = "abort" , b . add (
v . complete ) , T . done ( v . success ) , T . fail ( v . error ) , c = Wt ( Pt , v , t , T ) ) { if ( T . readyState = 1 , g && m . trigger ( "ajaxSend" , [ T , v ] ) , h ) return T ; v . async && 0 < v . timeout && ( d = C . setTimeout ( function ( ) { T . abort ( "timeout" ) } , v . timeout ) ) ; try { h = ! 1 , c . send ( a , l ) } catch ( e ) { if ( h ) throw e ; l ( - 1 , e ) } } else l ( - 1 , "No Transport" ) ; function l ( e , t , n , r ) { var i , o , a , s , u , l = t ; h || ( h = ! 0 , d && C . clearTimeout ( d ) , c = void 0 , p = r || "" , T . readyState = 0 < e ? 4 : 0 , i = 200 <= e && e < 300 || 304 === e , n && ( s = function ( e , t , n ) { var r , i , o , a , s = e . contents , u = e . dataTypes ; while ( "*" === u [ 0 ] ) u . shift ( ) , void 0 === r && ( r = e . mimeType || t . getResponseHeader ( "Content-Type" ) ) ; if ( r ) for ( i in s ) if ( s [ i ] && s [ i ] . test ( r ) ) { u . unshift ( i ) ; break } if ( u [ 0 ] in n ) o = u [ 0 ] ; else { for ( i in n ) { if ( ! u [ 0 ] || e . converters [ i + " " + u [ 0 ] ] ) { o = i ; break } a || ( a = i ) } o = o || a } if ( o ) return o !== u [ 0 ] && u . unshift ( o ) , n [ o ] } ( v , T , n ) ) , ! i && - 1 < S . inArray ( "script" , v . dataTypes ) && S . inArray ( "json" , v . dataTypes ) < 0 && ( v . converters [ "text script" ] = function ( ) { } ) , s = function ( e , t , n , r ) { var i , o , a , s , u , l = { } , c = e . dataTypes . slice ( ) ; if ( c [ 1 ] ) for ( a in e . converters ) l [ a . toLowerCase ( ) ] = e . converters [ a ] ; o = c . shift ( ) ;
while ( o ) if ( e . responseFields [ o ] && ( n [ e . responseFields [ o ] ] = t ) , ! u && r && e . dataFilter && ( t = e . dataFilter ( t , e . dataType ) ) , u = o , o = c . shift ( ) ) if ( "*" === o ) o = u ; else if ( "*" !== u && u !== o ) { if ( ! ( a = l [ u + " " + o ] || l [ "* " + o ] ) ) for ( i in l ) if ( ( s = i . split ( " " ) ) [ 1 ] === o && ( a = l [ u + " " + s [ 0 ] ] || l [ "* " + s [ 0 ] ] ) ) { ! 0 === a ? a = l [ i ] : ! 0 !== l [ i ] && ( o = s [ 0 ] , c . unshift ( s [ 1 ] ) ) ; break } if ( ! 0 !== a ) if ( a && e [ "throws" ] ) t = a ( t ) ; else try { t = a ( t ) } catch ( e ) { return { state : "parsererror" , error : a ? e : "No conversion from " + u + " to " + o } } } return { state : "success" , data : t } } ( v , s , T , i ) , i ? ( v . ifModified && ( ( u = T . getResponseHeader ( "Last-Modified" ) ) && ( S . lastModified [ f ] = u ) , ( u = T . getResponseHeader ( "etag" ) ) && ( S . etag [ f ] = u ) ) , 204 === e || "HEAD" === v . type ? l = "nocontent" : 304 === e ? l = "notmodified" : ( l = s . state , o = s . data , i = ! ( a = s . error ) ) ) : ( a = l , ! e && l || ( l = "error" , e < 0 && ( e = 0 ) ) ) , T . status = e , T . statusText = ( t || l ) + "" , i ? x . resolveWith ( y , [ o , l , T ] ) : x . rejectWith ( y , [ T , l , a ] ) , T . statusCode ( w ) , w = void 0 , g && m . trigger ( i ? "ajaxSuccess" : "ajaxError" , [ T , v , i ? o : a ] ) , b . fireWith ( y , [ T , l ] ) , g && ( m . trigger ( "ajaxComplete" , [ T , v ] ) , -- S . active || S . event . trigger ( "ajaxStop" ) ) )
} return T } , getJSON : function ( e , t , n ) { return S . get ( e , t , n , "json" ) } , getScript : function ( e , t ) { return S . get ( e , void 0 , t , "script" ) } } ) , S . each ( [ "get" , "post" ] , function ( e , i ) { S [ i ] = function ( e , t , n , r ) { return m ( t ) && ( r = r || n , n = t , t = void 0 ) , S . ajax ( S . extend ( { url : e , type : i , dataType : r , data : t , success : n } , S . isPlainObject ( e ) && e ) ) } } ) , S . ajaxPrefilter ( function ( e ) { var t ; for ( t in e . headers ) "content-type" === t . toLowerCase ( ) && ( e . contentType = e . headers [ t ] || "" ) } ) , S . _evalUrl = function ( e , t , n ) { return S . ajax ( { url : e , type : "GET" , dataType : "script" , cache : ! 0 , async : ! 1 , global : ! 1 , converters : { "text script" : function ( ) { } } , dataFilter : function ( e ) { S . globalEval ( e , t , n ) } } ) } , S . fn . extend ( { wrapAll : function ( e ) { var t ; return this [ 0 ] && ( m ( e ) && ( e = e . call ( this [ 0 ] ) ) , t = S ( e , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) , this [ 0 ] . parentNode && t . insertBefore ( this [ 0 ] ) , t . map ( function ( ) { var e = this ; while ( e . firstElementChild ) e = e . firstElementChild ; return e } ) . append ( this ) ) , this } , wrapInner : function ( n ) { return m ( n ) ? this . each ( function ( e ) { S ( this ) . wrapInner ( n . call ( this , e ) ) } ) : this . each ( function ( ) { var e = S ( this ) ,
t = e . contents ( ) ; t . length ? t . wrapAll ( n ) : e . append ( n ) } ) } , wrap : function ( t ) { var n = m ( t ) ; return this . each ( function ( e ) { S ( this ) . wrapAll ( n ? t . call ( this , e ) : t ) } ) } , unwrap : function ( e ) { return this . parent ( e ) . not ( "body" ) . each ( function ( ) { S ( this ) . replaceWith ( this . childNodes ) } ) , this } } ) , S . expr . pseudos . hidden = function ( e ) { return ! S . expr . pseudos . visible ( e ) } , S . expr . pseudos . visible = function ( e ) { return ! ! ( e . offsetWidth || e . offsetHeight || e . getClientRects ( ) . length ) } , S . ajaxSettings . xhr = function ( ) { try { return new C . XMLHttpRequest } catch ( e ) { } } ; var Bt = { 0 : 200 , 1223 : 204 } , $t = S . ajaxSettings . xhr ( ) ; y . cors = ! ! $t && "withCredentials" in $t , y . ajax = $t = ! ! $t , S . ajaxTransport ( function ( i ) { var o , a ; if ( y . cors || $t && ! i . crossDomain ) return { send : function ( e , t ) { var n , r = i . xhr ( ) ; if ( r . open ( i . type , i . url , i . async , i . username , i . password ) , i . xhrFields ) for ( n in i . xhrFields ) r [ n ] = i . xhrFields [ n ] ; for ( n in i . mimeType && r . overrideMimeType && r . overrideMimeType ( i . mimeType ) , i . crossDomain || e [ "X-Requested-With" ] || ( e [ "X-Requested-With" ] = "XMLHttpRequest" ) , e ) r . setRequestHeader ( n , e [ n ] ) ; o = function ( e ) {
return function ( ) { o && ( o = a = r . onload = r . onerror = r . onabort = r . ontimeout = r . onreadystatechange = null , "abort" === e ? r . abort ( ) : "error" === e ? "number" != typeof r . status ? t ( 0 , "error" ) : t ( r . status , r . statusText ) : t ( Bt [ r . status ] || r . status , r . statusText , "text" !== ( r . responseType || "text" ) || "string" != typeof r . responseText ? { binary : r . response } : { text : r . responseText } , r . getAllResponseHeaders ( ) ) ) } } , r . onload = o ( ) , a = r . onerror = r . ontimeout = o ( "error" ) , void 0 !== r . onabort ? r . onabort = a : r . onreadystatechange = function ( ) { 4 === r . readyState && C . setTimeout ( function ( ) { o && a ( ) } ) } , o = o ( "abort" ) ; try { r . send ( i . hasContent && i . data || null ) } catch ( e ) { if ( o ) throw e } } , abort : function ( ) { o && o ( ) } } } ) , S . ajaxPrefilter ( function ( e ) { e . crossDomain && ( e . contents . script = ! 1 ) } ) , S . ajaxSetup ( { accepts : { script : "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" } , contents : { script : /\b(?:java|ecma)script\b/ } , converters : { "text script" : function ( e ) { return S . globalEval ( e ) , e } } } ) , S . ajaxPrefilter ( "script" , function ( e ) { void 0 === e . cache && ( e . cache = ! 1 ) , e . crossDomain && (
e . type = "GET" ) } ) , S . ajaxTransport ( "script" , function ( n ) { var r , i ; if ( n . crossDomain || n . scriptAttrs ) return { send : function ( e , t ) { r = S ( "<script>" ) . attr ( n . scriptAttrs || { } ) . prop ( { charset : n . scriptCharset , src : n . url } ) . on ( "load error" , i = function ( e ) { r . remove ( ) , i = null , e && t ( "error" === e . type ? 404 : 200 , e . type ) } ) , E . head . appendChild ( r [ 0 ] ) } , abort : function ( ) { i && i ( ) } } } ) ; var _t , zt = [ ] , Ut = /(=)\?(?=&|$)|\?\?/ ; S . ajaxSetup ( { jsonp : "callback" , jsonpCallback : function ( ) { var e = zt . pop ( ) || S . expando + "_" + wt . guid ++ ; return this [ e ] = ! 0 , e } } ) , S . ajaxPrefilter ( "json jsonp" , function ( e , t , n ) { var r , i , o , a = ! 1 !== e . jsonp && ( Ut . test ( e . url ) ? "url" : "string" == typeof e . data && 0 === ( e . contentType || "" ) . indexOf ( "application/x-www-form-urlencoded" ) && Ut . test ( e . data ) && "data" ) ; if ( a || "jsonp" === e . dataTypes [ 0 ] ) return r = e . jsonpCallback = m ( e . jsonpCallback ) ? e . jsonpCallback ( ) : e . jsonpCallback , a ? e [ a ] = e [ a ] . replace ( Ut , "$1" + r ) : ! 1 !== e . jsonp && ( e . url += ( Tt . test ( e . url ) ? "&" : "?" ) + e . jsonp + "=" + r ) , e . converters [ "script json" ] = function ( ) { return o || S . error ( r + " was not called" ) , o [ 0 ] } , e . dataTypes [ 0 ] = "json" , i = C [ r ]
, C [ r ] = function ( ) { o = arguments } , n . always ( function ( ) { void 0 === i ? S ( C ) . removeProp ( r ) : C [ r ] = i , e [ r ] && ( e . jsonpCallback = t . jsonpCallback , zt . push ( r ) ) , o && m ( i ) && i ( o [ 0 ] ) , o = i = void 0 } ) , "script" } ) , y . createHTMLDocument = ( ( _t = E . implementation . createHTMLDocument ( "" ) . body ) . innerHTML = "<form></form><form></form>" , 2 === _t . childNodes . length ) , S . parseHTML = function ( e , t , n ) { return "string" != typeof e ? [ ] : ( "boolean" == typeof t && ( n = t , t = ! 1 ) , t || ( y . createHTMLDocument ? ( ( r = ( t = E . implementation . createHTMLDocument ( "" ) ) . createElement ( "base" ) ) . href = E . location . href , t . head . appendChild ( r ) ) : t = E ) , o = ! n && [ ] , ( i = N . exec ( e ) ) ? [ t . createElement ( i [ 1 ] ) ] : ( i = xe ( [ e ] , t , o ) , o && o . length && S ( o ) . remove ( ) , S . merge ( [ ] , i . childNodes ) ) ) ; var r , i , o } , S . fn . load = function ( e , t , n ) { var r , i , o , a = this , s = e . indexOf ( " " ) ; return - 1 < s && ( r = ht ( e . slice ( s ) ) , e = e . slice ( 0 , s ) ) , m ( t ) ? ( n = t , t = void 0 ) : t && "object" == typeof t && ( i = "POST" ) , 0 < a . length && S . ajax ( { url : e , type : i || "GET" , dataType : "html" , data : t } ) . done ( function ( e ) { o = arguments , a . html ( r ? S ( "<div>" ) . append ( S . parseHTML ( e ) ) . find ( r ) : e ) } ) . always ( n && function ( e , t ) { a . each (
function ( ) { n . apply ( this , o || [ e . responseText , t , e ] ) } ) } ) , this } , S . expr . pseudos . animated = function ( t ) { return S . grep ( S . timers , function ( e ) { return t === e . elem } ) . length } , S . offset = { setOffset : function ( e , t , n ) { var r , i , o , a , s , u , l = S . css ( e , "position" ) , c = S ( e ) , f = { } ; "static" === l && ( e . style . position = "relative" ) , s = c . offset ( ) , o = S . css ( e , "top" ) , u = S . css ( e , "left" ) , ( "absolute" === l || "fixed" === l ) && - 1 < ( o + u ) . indexOf ( "auto" ) ? ( a = ( r = c . position ( ) ) . top , i = r . left ) : ( a = parseFloat ( o ) || 0 , i = parseFloat ( u ) || 0 ) , m ( t ) && ( t = t . call ( e , n , S . extend ( { } , s ) ) ) , null != t . top && ( f . top = t . top - s . top + a ) , null != t . left && ( f . left = t . left - s . left + i ) , "using" in t ? t . using . call ( e , f ) : c . css ( f ) } } , S . fn . extend ( { offset : function ( t ) { if ( arguments . length ) return void 0 === t ? this : this . each ( function ( e ) { S . offset . setOffset ( this , t , e ) } ) ; var e , n , r = this [ 0 ] ; return r ? r . getClientRects ( ) . length ? ( e = r . getBoundingClientRect ( ) , n = r . ownerDocument . defaultView , { top : e . top + n . pageYOffset , left : e . left + n . pageXOffset } ) : { top : 0 , left : 0 } : void 0 } , position : function ( ) { if ( this [ 0 ] ) { var e , t , n , r = this [ 0 ] , i = { top : 0 , left : 0 } ; if ( "fixed" === S . css ( r ,
"position" ) ) t = r . getBoundingClientRect ( ) ; else { t = this . offset ( ) , n = r . ownerDocument , e = r . offsetParent || n . documentElement ; while ( e && ( e === n . body || e === n . documentElement ) && "static" === S . css ( e , "position" ) ) e = e . parentNode ; e && e !== r && 1 === e . nodeType && ( ( i = S ( e ) . offset ( ) ) . top += S . css ( e , "borderTopWidth" , ! 0 ) , i . left += S . css ( e , "borderLeftWidth" , ! 0 ) ) } return { top : t . top - i . top - S . css ( r , "marginTop" , ! 0 ) , left : t . left - i . left - S . css ( r , "marginLeft" , ! 0 ) } } } , offsetParent : function ( ) { return this . map ( function ( ) { var e = this . offsetParent ; while ( e && "static" === S . css ( e , "position" ) ) e = e . offsetParent ; return e || re } ) } } ) , S . each ( { scrollLeft : "pageXOffset" , scrollTop : "pageYOffset" } , function ( t , i ) { var o = "pageYOffset" === i ; S . fn [ t ] = function ( e ) { return $ ( this , function ( e , t , n ) { var r ; if ( x ( e ) ? r = e : 9 === e . nodeType && ( r = e . defaultView ) , void 0 === n ) return r ? r [ i ] : e [ t ] ; r ? r . scrollTo ( o ? r . pageXOffset : n , o ? n : r . pageYOffset ) : e [ t ] = n } , t , e , arguments . length ) } } ) , S . each ( [ "top" , "left" ] , function ( e , n ) { S . cssHooks [ n ] = Fe ( y . pixelPosition , function ( e , t ) { if ( t ) return t = We ( e , n ) , Pe . test ( t ) ? S ( e ) . position ( ) [ n ] + "px" : t } ) }
) , S . each ( { Height : "height" , Width : "width" } , function ( a , s ) { S . each ( { padding : "inner" + a , content : s , "" : "outer" + a } , function ( r , o ) { S . fn [ o ] = function ( e , t ) { var n = arguments . length && ( r || "boolean" != typeof e ) , i = r || ( ! 0 === e || ! 0 === t ? "margin" : "border" ) ; return $ ( this , function ( e , t , n ) { var r ; return x ( e ) ? 0 === o . indexOf ( "outer" ) ? e [ "inner" + a ] : e . document . documentElement [ "client" + a ] : 9 === e . nodeType ? ( r = e . documentElement , Math . max ( e . body [ "scroll" + a ] , r [ "scroll" + a ] , e . body [ "offset" + a ] , r [ "offset" + a ] , r [ "client" + a ] ) ) : void 0 === n ? S . css ( e , t , i ) : S . style ( e , t , n , i ) } , s , n ? e : void 0 , n ) } } ) } ) , S . each ( [ "ajaxStart" , "ajaxStop" , "ajaxComplete" , "ajaxError" , "ajaxSuccess" , "ajaxSend" ] , function ( e , t ) { S . fn [ t ] = function ( e ) { return this . on ( t , e ) } } ) , S . fn . extend ( { bind : function ( e , t , n ) { return this . on ( e , null , t , n ) } , unbind : function ( e , t ) { return this . off ( e , null , t ) } , delegate : function ( e , t , n , r ) { return this . on ( t , e , n , r ) } , undelegate : function ( e , t , n ) { return 1 === arguments . length ? this . off ( e , "**" ) : this . off ( t , e || "**" , n ) } , hover : function ( e , t ) { return this . mouseenter ( e ) . mouseleave ( t || e ) } } ) , S . each (
"blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu" . split ( " " ) , function ( e , n ) { S . fn [ n ] = function ( e , t ) { return 0 < arguments . length ? this . on ( n , null , e , t ) : this . trigger ( n ) } } ) ; var Xt = /^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g ; S . proxy = function ( e , t ) { var n , r , i ; if ( "string" == typeof t && ( n = e [ t ] , t = e , e = n ) , m ( e ) ) return r = s . call ( arguments , 2 ) , ( i = function ( ) { return e . apply ( t || this , r . concat ( s . call ( arguments ) ) ) } ) . guid = e . guid = e . guid || S . guid ++ , i } , S . holdReady = function ( e ) { e ? S . readyWait ++ : S . ready ( ! 0 ) } , S . isArray = Array . isArray , S . parseJSON = JSON . parse , S . nodeName = A , S . isFunction = m , S . isWindow = x , S . camelCase = X , S . type = w , S . now = Date . now , S . isNumeric = function ( e ) { var t = S . type ( e ) ; return ( "number" === t || "string" === t ) && ! isNaN ( e - parseFloat ( e ) ) } , S . trim = function ( e ) { return null == e ? "" : ( e + "" ) . replace ( Xt , "" ) } , "function" == typeof define && define . amd && define ( "jquery" , [ ] , function ( ) { return S } ) ; var Vt = C . jQuery , Gt = C . $ ; return S . noConflict = function ( e ) {
return C . $ === S && ( C . $ = Gt ) , e && C . jQuery === S && ( C . jQuery = Vt ) , S } , "undefined" == typeof e && ( C . jQuery = C . $ = S ) , S } ) ;
2023-02-05 19:26:26 +00:00
/ * ! j Q u e r y U I - v 1 . 1 3 . 2 - 2 0 2 2 - 0 8 - 0 1
2020-10-17 03:08:44 +00:00
* http : //jqueryui.com
2023-02-05 19:26:26 +00:00
* Includes : widget . js , position . js , data . js , disable - selection . js , focusable . js , form - reset - mixin . js , jquery - patch . js , keycode . js , labels . js , scroll - parent . js , tabbable . js , unique - id . js , widgets / resizable . js , widgets / mouse . js
2024-10-19 21:12:30 +00:00
* Copyright jQuery Foundation and other contributors ; Licensed MIT * / ! f u n c t i o n ( t ) { " u s e s t r i c t " ; " f u n c t i o n " = = t y p e o f d e f i n e & & d e f i n e . a m d ? d e f i n e ( [ " j q u e r y " ] , t ) : t ( j Q u e r y ) } ( f u n c t i o n ( y ) { " u s e s t r i c t " ; y . u i = y . u i | | { } ; y . u i . v e r s i o n = " 1 . 1 3 . 2 " ; v a r n , i = 0 , h = A r r a y . p r o t o t y p e . h a s O w n P r o p e r t y , a = A r r a y . p r o t o t y p e . s l i c e ; y . c l e a n D a t a = ( n = y . c l e a n D a t a , f u n c t i o n ( t ) { f o r ( v a r e , i , s = 0 ; n u l l ! = ( i = t [ s ] ) ; s + + ) ( e = y . _ d a t a ( i , " e v e n t s " ) ) & & e . r e m o v e & & y ( i ) . t r i g g e r H a n d l e r ( " r e m o v e " ) ; n ( t ) } ) , y . w i d g e t = f u n c t i o n ( t , i , e ) { v a r s , n , o , h = { } , a = t . s p l i t ( " . " ) [ 0 ] , r = a + " - " + ( t = t . s p l i t ( " . " ) [ 1 ] ) ; r e t u r n e | | ( e = i , i = y . W i d g e t ) , A r r a y . i s A r r a y ( e ) & & ( e = y . e x t e n d . a p p l y ( n u l l , [ { } ] . c o n c a t ( e ) ) ) , y . e x p r . p s e u d o s [ r . t o L o w e r C a s e ( ) ] = f u n c t i o n ( t ) { r e t u r n ! ! y . d a t a ( t , r ) } , y [ a ] = y [ a ] | | { } , s = y [ a ] [ t ] , n = y [ a ] [ t ] = f u n c t i o n ( t , e ) { i f ( ! t h i s | | ! t h i s . _ c r e a t e W i d g e t ) r e t u r n n e w n ( t , e ) ; a r g u m e n t s . l e n g t h & & t h i s . _ c r e a t e W i d g e t ( t , e ) } , y . e x t e n d ( n , s , { v e r s i o n : e . v e r s i o n , _ p r o t o : y . e x t e n d ( { } , e ) , _ c h i l d C o n s t r u c t o r s : [ ] } ) , ( o = n e w i ) . o p t i o n s = y . w i d g e t . e x t e n d ( { } , o . o p t i o n s ) , y . e a c h ( e , f u n c t i o n ( e , s ) { f u n c t i o n n ( ) { r e t u r n i . p r o t o t y p e [ e ] . a p p l y ( t h i s , a r g u m e n t s ) }
function o ( t ) { return i . prototype [ e ] . apply ( this , t ) } h [ e ] = "function" == typeof s ? function ( ) { var t , e = this . _super , i = this . _superApply ; return this . _super = n , this . _superApply = o , t = s . apply ( this , arguments ) , this . _super = e , this . _superApply = i , t } : s } ) , n . prototype = y . widget . extend ( o , { widgetEventPrefix : s && o . widgetEventPrefix || t } , h , { constructor : n , namespace : a , widgetName : t , widgetFullName : r } ) , s ? ( y . each ( s . _childConstructors , function ( t , e ) { var i = e . prototype ; y . widget ( i . namespace + "." + i . widgetName , n , e . _proto ) } ) , delete s . _childConstructors ) : i . _childConstructors . push ( n ) , y . widget . bridge ( t , n ) , n } , y . widget . extend = function ( t ) { for ( var e , i , s = a . call ( arguments , 1 ) , n = 0 , o = s . length ; n < o ; n ++ ) for ( e in s [ n ] ) i = s [ n ] [ e ] , h . call ( s [ n ] , e ) && void 0 !== i && ( y . isPlainObject ( i ) ? t [ e ] = y . isPlainObject ( t [ e ] ) ? y . widget . extend ( { } , t [ e ] , i ) : y . widget . extend ( { } , i ) : t [ e ] = i ) ; return t } , y . widget . bridge = function ( o , e ) { var h = e . prototype . widgetFullName || o ; y . fn [ o ] = function ( i ) { var t = "string" == typeof i , s = a . call ( arguments , 1 ) , n = this ; return t ? this . length || "instance" !== i ? this . each ( function ( ) { var t ,
e = y . data ( this , h ) ; return "instance" === i ? ( n = e , ! 1 ) : e ? "function" != typeof e [ i ] || "_" === i . charAt ( 0 ) ? y . error ( "no such method '" + i + "' for " + o + " widget instance" ) : ( t = e [ i ] . apply ( e , s ) ) !== e && void 0 !== t ? ( n = t && t . jquery ? n . pushStack ( t . get ( ) ) : t , ! 1 ) : void 0 : y . error ( "cannot call methods on " + o + " prior to initialization; attempted to call method '" + i + "'" ) } ) : n = void 0 : ( s . length && ( i = y . widget . extend . apply ( null , [ i ] . concat ( s ) ) ) , this . each ( function ( ) { var t = y . data ( this , h ) ; t ? ( t . option ( i || { } ) , t . _init && t . _init ( ) ) : y . data ( this , h , new e ( i , this ) ) } ) ) , n } } , y . Widget = function ( ) { } , y . Widget . _childConstructors = [ ] , y . Widget . prototype = { widgetName : "widget" , widgetEventPrefix : "" , defaultElement : "<div>" , options : { classes : { } , disabled : ! 1 , create : null } , _createWidget : function ( t , e ) { e = y ( e || this . defaultElement || this ) [ 0 ] , this . element = y ( e ) , this . uuid = i ++ , this . eventNamespace = "." + this . widgetName + this . uuid , this . bindings = y ( ) , this . hoverable = y ( ) , this . focusable = y ( ) , this . classesElementLookup = { } , e !== this && ( y . data ( e , this . widgetFullName , this ) , this . _on ( ! 0 , this . element , { remove : function ( t
) { t . target === e && this . destroy ( ) } } ) , this . document = y ( e . style ? e . ownerDocument : e . document || e ) , this . window = y ( this . document [ 0 ] . defaultView || this . document [ 0 ] . parentWindow ) ) , this . options = y . widget . extend ( { } , this . options , this . _getCreateOptions ( ) , t ) , this . _create ( ) , this . options . disabled && this . _setOptionDisabled ( this . options . disabled ) , this . _trigger ( "create" , null , this . _getCreateEventData ( ) ) , this . _init ( ) } , _getCreateOptions : function ( ) { return { } } , _getCreateEventData : y . noop , _create : y . noop , _init : y . noop , destroy : function ( ) { var i = this ; this . _destroy ( ) , y . each ( this . classesElementLookup , function ( t , e ) { i . _removeClass ( e , t ) } ) , this . element . off ( this . eventNamespace ) . removeData ( this . widgetFullName ) , this . widget ( ) . off ( this . eventNamespace ) . removeAttr ( "aria-disabled" ) , this . bindings . off ( this . eventNamespace ) } , _destroy : y . noop , widget : function ( ) { return this . element } , option : function ( t , e ) { var i , s , n , o = t ; if ( 0 === arguments . length ) return y . widget . extend ( { } , this . options ) ; if ( "string" == typeof t ) if ( o = { } , t = ( i = t . split ( "." ) ) . shift ( ) , i . length ) { for ( s = o [ t
] = y . widget . extend ( { } , this . options [ t ] ) , n = 0 ; n < i . length - 1 ; n ++ ) s [ i [ n ] ] = s [ i [ n ] ] || { } , s = s [ i [ n ] ] ; if ( t = i . pop ( ) , 1 === arguments . length ) return void 0 === s [ t ] ? null : s [ t ] ; s [ t ] = e } else { if ( 1 === arguments . length ) return void 0 === this . options [ t ] ? null : this . options [ t ] ; o [ t ] = e } return this . _setOptions ( o ) , this } , _setOptions : function ( t ) { for ( var e in t ) this . _setOption ( e , t [ e ] ) ; return this } , _setOption : function ( t , e ) { return "classes" === t && this . _setOptionClasses ( e ) , this . options [ t ] = e , "disabled" === t && this . _setOptionDisabled ( e ) , this } , _setOptionClasses : function ( t ) { var e , i , s ; for ( e in t ) s = this . classesElementLookup [ e ] , t [ e ] !== this . options . classes [ e ] && s && s . length && ( i = y ( s . get ( ) ) , this . _removeClass ( s , e ) , i . addClass ( this . _classes ( { element : i , keys : e , classes : t , add : ! 0 } ) ) ) } , _setOptionDisabled : function ( t ) { this . _toggleClass ( this . widget ( ) , this . widgetFullName + "-disabled" , null , ! ! t ) , t && ( this . _removeClass ( this . hoverable , null , "ui-state-hover" ) , this . _removeClass ( this . focusable , null , "ui-state-focus" ) ) } , enable : function ( ) { return this . _setOptions ( { disabled : ! 1 } ) } ,
disable : function ( ) { return this . _setOptions ( { disabled : ! 0 } ) } , _classes : function ( n ) { var o = [ ] , h = this ; function t ( t , e ) { for ( var i , s = 0 ; s < t . length ; s ++ ) i = h . classesElementLookup [ t [ s ] ] || y ( ) , i = n . add ? ( function ( ) { var i = [ ] ; n . element . each ( function ( t , e ) { y . map ( h . classesElementLookup , function ( t ) { return t } ) . some ( function ( t ) { return t . is ( e ) } ) || i . push ( e ) } ) , h . _on ( y ( i ) , { remove : "_untrackClassesElement" } ) } ( ) , y ( y . uniqueSort ( i . get ( ) . concat ( n . element . get ( ) ) ) ) ) : y ( i . not ( n . element ) . get ( ) ) , h . classesElementLookup [ t [ s ] ] = i , o . push ( t [ s ] ) , e && n . classes [ t [ s ] ] && o . push ( n . classes [ t [ s ] ] ) } return ( n = y . extend ( { element : this . element , classes : this . options . classes || { } } , n ) ) . keys && t ( n . keys . match ( /\S+/g ) || [ ] , ! 0 ) , n . extra && t ( n . extra . match ( /\S+/g ) || [ ] ) , o . join ( " " ) } , _untrackClassesElement : function ( i ) { var s = this ; y . each ( s . classesElementLookup , function ( t , e ) { - 1 !== y . inArray ( i . target , e ) && ( s . classesElementLookup [ t ] = y ( e . not ( i . target ) . get ( ) ) ) } ) , this . _off ( y ( i . target ) ) } , _removeClass : function ( t , e , i ) { return this . _toggleClass ( t , e , i , ! 1 ) } , _addClass : function ( t , e , i ) {
return this . _toggleClass ( t , e , i , ! 0 ) } , _toggleClass : function ( t , e , i , s ) { var n = "string" == typeof t || null === t , i = { extra : n ? e : i , keys : n ? t : e , element : n ? this . element : t , add : s = "boolean" == typeof s ? s : i } ; return i . element . toggleClass ( this . _classes ( i ) , s ) , this } , _on : function ( n , o , t ) { var h , a = this ; "boolean" != typeof n && ( t = o , o = n , n = ! 1 ) , t ? ( o = h = y ( o ) , this . bindings = this . bindings . add ( o ) ) : ( t = o , o = this . element , h = this . widget ( ) ) , y . each ( t , function ( t , e ) { function i ( ) { if ( n || ! 0 !== a . options . disabled && ! y ( this ) . hasClass ( "ui-state-disabled" ) ) return ( "string" == typeof e ? a [ e ] : e ) . apply ( a , arguments ) } "string" != typeof e && ( i . guid = e . guid = e . guid || i . guid || y . guid ++ ) ; var s = t . match ( /^([\w:-]*)\s*(.*)$/ ) , t = s [ 1 ] + a . eventNamespace , s = s [ 2 ] ; s ? h . on ( t , s , i ) : o . on ( t , i ) } ) } , _off : function ( t , e ) { e = ( e || "" ) . split ( " " ) . join ( this . eventNamespace + " " ) + this . eventNamespace , t . off ( e ) , this . bindings = y ( this . bindings . not ( t ) . get ( ) ) , this . focusable = y ( this . focusable . not ( t ) . get ( ) ) , this . hoverable = y ( this . hoverable . not ( t ) . get ( ) ) } , _delay : function ( t , e ) { var i = this ; return setTimeout ( function ( ) { return (
"string" == typeof t ? i [ t ] : t ) . apply ( i , arguments ) } , e || 0 ) } , _hoverable : function ( t ) { this . hoverable = this . hoverable . add ( t ) , this . _on ( t , { mouseenter : function ( t ) { this . _addClass ( y ( t . currentTarget ) , null , "ui-state-hover" ) } , mouseleave : function ( t ) { this . _removeClass ( y ( t . currentTarget ) , null , "ui-state-hover" ) } } ) } , _focusable : function ( t ) { this . focusable = this . focusable . add ( t ) , this . _on ( t , { focusin : function ( t ) { this . _addClass ( y ( t . currentTarget ) , null , "ui-state-focus" ) } , focusout : function ( t ) { this . _removeClass ( y ( t . currentTarget ) , null , "ui-state-focus" ) } } ) } , _trigger : function ( t , e , i ) { var s , n , o = this . options [ t ] ; if ( i = i || { } , ( e = y . Event ( e ) ) . type = ( t === this . widgetEventPrefix ? t : this . widgetEventPrefix + t ) . toLowerCase ( ) , e . target = this . element [ 0 ] , n = e . originalEvent ) for ( s in n ) s in e || ( e [ s ] = n [ s ] ) ; return this . element . trigger ( e , i ) , ! ( "function" == typeof o && ! 1 === o . apply ( this . element [ 0 ] , [ e ] . concat ( i ) ) || e . isDefaultPrevented ( ) ) } } , y . each ( { show : "fadeIn" , hide : "fadeOut" } , function ( o , h ) { y . Widget . prototype [ "_" + o ] = function ( e , t , i ) { var s , n = ( t = "string" == typeof t ? { effect : t } : t
) ? ! 0 !== t && "number" != typeof t && t . effect || h : o ; "number" == typeof ( t = t || { } ) ? t = { duration : t } : ! 0 === t && ( t = { } ) , s = ! y . isEmptyObject ( t ) , t . complete = i , t . delay && e . delay ( t . delay ) , s && y . effects && y . effects . effect [ n ] ? e [ o ] ( t ) : n !== o && e [ n ] ? e [ n ] ( t . duration , t . easing , i ) : e . queue ( function ( t ) { y ( this ) [ o ] ( ) , i && i . call ( e [ 0 ] ) , t ( ) } ) } } ) ; var s , x , D , o , r , l , u , p , W ; y . widget ; function E ( t , e , i ) { return [ parseFloat ( t [ 0 ] ) * ( p . test ( t [ 0 ] ) ? e / 100 : 1 ) , parseFloat ( t [ 1 ] ) * ( p . test ( t [ 1 ] ) ? i / 100 : 1 ) ] } function H ( t , e ) { return parseInt ( y . css ( t , e ) , 10 ) || 0 } function S ( t ) { return null != t && t === t . window } x = Math . max , D = Math . abs , o = /left|center|right/ , r = /top|center|bottom/ , l = /[\+\-]\d+(\.[\d]+)?%?/ , u = /^\w+/ , p = /%$/ , W = y . fn . position , y . position = { scrollbarWidth : function ( ) { if ( void 0 !== s ) return s ; var t , e = y ( "<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>" ) , i = e . children ( ) [ 0 ] ; return y ( "body" ) . append ( e ) , t = i . offsetWidth , e . css ( "overflow" , "scroll" ) , t === ( i = i . offsetWidth ) && ( i = e [ 0 ] . clientWidth ) , e . remove ( ) , s = t - i } ,
getScrollInfo : function ( t ) { var e = t . isWindow || t . isDocument ? "" : t . element . css ( "overflow-x" ) , i = t . isWindow || t . isDocument ? "" : t . element . css ( "overflow-y" ) , e = "scroll" === e || "auto" === e && t . width < t . element [ 0 ] . scrollWidth ; return { width : "scroll" === i || "auto" === i && t . height < t . element [ 0 ] . scrollHeight ? y . position . scrollbarWidth ( ) : 0 , height : e ? y . position . scrollbarWidth ( ) : 0 } } , getWithinInfo : function ( t ) { var e = y ( t || window ) , i = S ( e [ 0 ] ) , s = ! ! e [ 0 ] && 9 === e [ 0 ] . nodeType ; return { element : e , isWindow : i , isDocument : s , offset : ! i && ! s ? y ( t ) . offset ( ) : { left : 0 , top : 0 } , scrollLeft : e . scrollLeft ( ) , scrollTop : e . scrollTop ( ) , width : e . outerWidth ( ) , height : e . outerHeight ( ) } } } , y . fn . position = function ( p ) { if ( ! p || ! p . of ) return W . apply ( this , arguments ) ; var d , c , f , g , m , t , _ = "string" == typeof ( p = y . extend ( { } , p ) ) . of ? y ( document ) . find ( p . of ) : y ( p . of ) , w = y . position . getWithinInfo ( p . within ) , v = y . position . getScrollInfo ( w ) , b = ( p . collision || "flip" ) . split ( " " ) , z = { } , e = 9 === ( t = ( e = _ ) [ 0 ] ) . nodeType ? { width : e . width ( ) , height : e . height ( ) , offset : { top : 0 , left : 0 } } : S ( t ) ? { width : e . width ( ) , height : e . height ( ) , offset : {
top : e . scrollTop ( ) , left : e . scrollLeft ( ) } } : t . preventDefault ? { width : 0 , height : 0 , offset : { top : t . pageY , left : t . pageX } } : { width : e . outerWidth ( ) , height : e . outerHeight ( ) , offset : e . offset ( ) } ; return _ [ 0 ] . preventDefault && ( p . at = "left top" ) , c = e . width , f = e . height , m = y . extend ( { } , g = e . offset ) , y . each ( [ "my" , "at" ] , function ( ) { var t , e , i = ( p [ this ] || "" ) . split ( " " ) ; ( i = 1 === i . length ? o . test ( i [ 0 ] ) ? i . concat ( [ "center" ] ) : r . test ( i [ 0 ] ) ? [ "center" ] . concat ( i ) : [ "center" , "center" ] : i ) [ 0 ] = o . test ( i [ 0 ] ) ? i [ 0 ] : "center" , i [ 1 ] = r . test ( i [ 1 ] ) ? i [ 1 ] : "center" , t = l . exec ( i [ 0 ] ) , e = l . exec ( i [ 1 ] ) , z [ this ] = [ t ? t [ 0 ] : 0 , e ? e [ 0 ] : 0 ] , p [ this ] = [ u . exec ( i [ 0 ] ) [ 0 ] , u . exec ( i [ 1 ] ) [ 0 ] ] } ) , 1 === b . length && ( b [ 1 ] = b [ 0 ] ) , "right" === p . at [ 0 ] ? m . left += c : "center" === p . at [ 0 ] && ( m . left += c / 2 ) , "bottom" === p . at [ 1 ] ? m . top += f : "center" === p . at [ 1 ] && ( m . top += f / 2 ) , d = E ( z . at , c , f ) , m . left += d [ 0 ] , m . top += d [ 1 ] , this . each ( function ( ) { var i , t , h = y ( this ) , a = h . outerWidth ( ) , r = h . outerHeight ( ) , e = H ( this , "marginLeft" ) , s = H ( this , "marginTop" ) , n = a + e + H ( this , "marginRight" ) + v . width , o = r + s + H ( this , "marginBottom" ) + v . height , l = y . extend ( { } , m ) , u = E ( z . my , h . outerWidth ( )
, h . outerHeight ( ) ) ; "right" === p . my [ 0 ] ? l . left -= a : "center" === p . my [ 0 ] && ( l . left -= a / 2 ) , "bottom" === p . my [ 1 ] ? l . top -= r : "center" === p . my [ 1 ] && ( l . top -= r / 2 ) , l . left += u [ 0 ] , l . top += u [ 1 ] , i = { marginLeft : e , marginTop : s } , y . each ( [ "left" , "top" ] , function ( t , e ) { y . ui . position [ b [ t ] ] && y . ui . position [ b [ t ] ] [ e ] ( l , { targetWidth : c , targetHeight : f , elemWidth : a , elemHeight : r , collisionPosition : i , collisionWidth : n , collisionHeight : o , offset : [ d [ 0 ] + u [ 0 ] , d [ 1 ] + u [ 1 ] ] , my : p . my , at : p . at , within : w , elem : h } ) } ) , p . using && ( t = function ( t ) { var e = g . left - l . left , i = e + c - a , s = g . top - l . top , n = s + f - r , o = { target : { element : _ , left : g . left , top : g . top , width : c , height : f } , element : { element : h , left : l . left , top : l . top , width : a , height : r } , horizontal : i < 0 ? "left" : 0 < e ? "right" : "center" , vertical : n < 0 ? "top" : 0 < s ? "bottom" : "middle" } ; c < a && D ( e + i ) < c && ( o . horizontal = "center" ) , f < r && D ( s + n ) < f && ( o . vertical = "middle" ) , x ( D ( e ) , D ( i ) ) > x ( D ( s ) , D ( n ) ) ? o . important = "horizontal" : o . important = "vertical" , p . using . call ( this , t , o ) } ) , h . offset ( y . extend ( l , { using : t } ) ) } ) } , y . ui . position = { fit : { left : function ( t , e ) { var i = e . within ,
s = i . isWindow ? i . scrollLeft : i . offset . left , n = i . width , o = t . left - e . collisionPosition . marginLeft , h = s - o , a = o + e . collisionWidth - n - s ; e . collisionWidth > n ? 0 < h && a <= 0 ? ( i = t . left + h + e . collisionWidth - n - s , t . left += h - i ) : t . left = ! ( 0 < a && h <= 0 ) && a < h ? s + n - e . collisionWidth : s : 0 < h ? t . left += h : 0 < a ? t . left -= a : t . left = x ( t . left - o , t . left ) } , top : function ( t , e ) { var i = e . within , s = i . isWindow ? i . scrollTop : i . offset . top , n = e . within . height , o = t . top - e . collisionPosition . marginTop , h = s - o , a = o + e . collisionHeight - n - s ; e . collisionHeight > n ? 0 < h && a <= 0 ? ( i = t . top + h + e . collisionHeight - n - s , t . top += h - i ) : t . top = ! ( 0 < a && h <= 0 ) && a < h ? s + n - e . collisionHeight : s : 0 < h ? t . top += h : 0 < a ? t . top -= a : t . top = x ( t . top - o , t . top ) } } , flip : { left : function ( t , e ) { var i = e . within , s = i . offset . left + i . scrollLeft , n = i . width , o = i . isWindow ? i . scrollLeft : i . offset . left , h = t . left - e . collisionPosition . marginLeft , a = h - o , r = h + e . collisionWidth - n - o , l = "left" === e . my [ 0 ] ? - e . elemWidth : "right" === e . my [ 0 ] ? e . elemWidth : 0 , i = "left" === e . at [ 0 ] ? e . targetWidth : "right" === e . at [ 0 ] ? - e . targetWidth : 0 , h = - 2 * e . offset [ 0 ] ; a < 0 ? ( ( s = t . left + l + i + h + e . collisionWidth - n - s ) < 0 || s < D ( a )
) && ( t . left += l + i + h ) : 0 < r && ( 0 < ( o = t . left - e . collisionPosition . marginLeft + l + i + h - o ) || D ( o ) < r ) && ( t . left += l + i + h ) } , top : function ( t , e ) { var i = e . within , s = i . offset . top + i . scrollTop , n = i . height , o = i . isWindow ? i . scrollTop : i . offset . top , h = t . top - e . collisionPosition . marginTop , a = h - o , r = h + e . collisionHeight - n - o , l = "top" === e . my [ 1 ] ? - e . elemHeight : "bottom" === e . my [ 1 ] ? e . elemHeight : 0 , i = "top" === e . at [ 1 ] ? e . targetHeight : "bottom" === e . at [ 1 ] ? - e . targetHeight : 0 , h = - 2 * e . offset [ 1 ] ; a < 0 ? ( ( s = t . top + l + i + h + e . collisionHeight - n - s ) < 0 || s < D ( a ) ) && ( t . top += l + i + h ) : 0 < r && ( 0 < ( o = t . top - e . collisionPosition . marginTop + l + i + h - o ) || D ( o ) < r ) && ( t . top += l + i + h ) } } , flipfit : { left : function ( ) { y . ui . position . flip . left . apply ( this , arguments ) , y . ui . position . fit . left . apply ( this , arguments ) } , top : function ( ) { y . ui . position . flip . top . apply ( this , arguments ) , y . ui . position . fit . top . apply ( this , arguments ) } } } ; var t ; y . ui . position , y . extend ( y . expr . pseudos , { data : y . expr . createPseudo ? y . expr . createPseudo ( function ( e ) { return function ( t ) { return ! ! y . data ( t , e ) } } ) : function ( t , e , i ) { return ! ! y . data ( t , i [ 3 ] ) } } ) , y . fn . extend ( {
disableSelection : ( t = "onselectstart" in document . createElement ( "div" ) ? "selectstart" : "mousedown" , function ( ) { return this . on ( t + ".ui-disableSelection" , function ( t ) { t . preventDefault ( ) } ) } ) , enableSelection : function ( ) { return this . off ( ".ui-disableSelection" ) } } ) ; y . ui . focusable = function ( t , e ) { var i , s , n , o , h = t . nodeName . toLowerCase ( ) ; return "area" === h ? ( s = ( i = t . parentNode ) . name , ! ( ! t . href || ! s || "map" !== i . nodeName . toLowerCase ( ) ) && ( 0 < ( s = y ( "img[usemap='#" + s + "']" ) ) . length && s . is ( ":visible" ) ) ) : ( /^(input|select|textarea|button|object)$/ . test ( h ) ? ( n = ! t . disabled ) && ( o = y ( t ) . closest ( "fieldset" ) [ 0 ] ) && ( n = ! o . disabled ) : n = "a" === h && t . href || e , n && y ( t ) . is ( ":visible" ) && function ( t ) { var e = t . css ( "visibility" ) ; for ( ; "inherit" === e ; ) t = t . parent ( ) , e = t . css ( "visibility" ) ; return "visible" === e } ( y ( t ) ) ) } , y . extend ( y . expr . pseudos , { focusable : function ( t ) { return y . ui . focusable ( t , null != y . attr ( t , "tabindex" ) ) } } ) ; var e , d ; y . ui . focusable , y . fn . _form = function ( ) { return "string" == typeof this [ 0 ] . form ? this . closest ( "form" ) : y ( this [ 0 ] . form ) } , y . ui . formResetMixin = { _formResetHandler : function (
) { var e = y ( this ) ; setTimeout ( function ( ) { var t = e . data ( "ui-form-reset-instances" ) ; y . each ( t , function ( ) { this . refresh ( ) } ) } ) } , _bindFormResetHandler : function ( ) { var t ; this . form = this . element . _form ( ) , this . form . length && ( ( t = this . form . data ( "ui-form-reset-instances" ) || [ ] ) . length || this . form . on ( "reset.ui-form-reset" , this . _formResetHandler ) , t . push ( this ) , this . form . data ( "ui-form-reset-instances" , t ) ) } , _unbindFormResetHandler : function ( ) { var t ; this . form . length && ( ( t = this . form . data ( "ui-form-reset-instances" ) ) . splice ( y . inArray ( this , t ) , 1 ) , t . length ? this . form . data ( "ui-form-reset-instances" , t ) : this . form . removeData ( "ui-form-reset-instances" ) . off ( "reset.ui-form-reset" ) ) } } ; y . expr . pseudos || ( y . expr . pseudos = y . expr [ ":" ] ) , y . uniqueSort || ( y . uniqueSort = y . unique ) , y . escapeSelector || ( e = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g , d = function ( t , e ) { return e ? "\0" === t ? "<22> " : t . slice ( 0 , - 1 ) + "\\" + t . charCodeAt ( t . length - 1 ) . toString ( 16 ) + " " : "\\" + t } , y . escapeSelector = function ( t ) { return ( t + "" ) . replace ( e , d ) } ) , y . fn . even && y . fn . odd || y . fn . extend ( { even : function ( ) {
return this . filter ( function ( t ) { return t % 2 == 0 } ) } , odd : function ( ) { return this . filter ( function ( t ) { return t % 2 == 1 } ) } } ) ; y . ui . keyCode = { BACKSPACE : 8 , COMMA : 188 , DELETE : 46 , DOWN : 40 , END : 35 , ENTER : 13 , ESCAPE : 27 , HOME : 36 , LEFT : 37 , PAGE _DOWN : 34 , PAGE _UP : 33 , PERIOD : 190 , RIGHT : 39 , SPACE : 32 , TAB : 9 , UP : 38 } , y . fn . labels = function ( ) { var t , e , i ; return this . length ? this [ 0 ] . labels && this [ 0 ] . labels . length ? this . pushStack ( this [ 0 ] . labels ) : ( e = this . eq ( 0 ) . parents ( "label" ) , ( t = this . attr ( "id" ) ) && ( i = ( i = this . eq ( 0 ) . parents ( ) . last ( ) ) . add ( ( i . length ? i : this ) . siblings ( ) ) , t = "label[for='" + y . escapeSelector ( t ) + "']" , e = e . add ( i . find ( t ) . addBack ( t ) ) ) , this . pushStack ( e ) ) : this . pushStack ( [ ] ) } , y . fn . scrollParent = function ( t ) { var e = this . css ( "position" ) , i = "absolute" === e , s = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/ , t = this . parents ( ) . filter ( function ( ) { var t = y ( this ) ; return ( ! i || "static" !== t . css ( "position" ) ) && s . test ( t . css ( "overflow" ) + t . css ( "overflow-y" ) + t . css ( "overflow-x" ) ) } ) . eq ( 0 ) ; return "fixed" !== e && t . length ? t : y ( this [ 0 ] . ownerDocument || document ) } , y . extend ( y . expr . pseudos , { tabbable : function ( t ) {
var e = y . attr ( t , "tabindex" ) , i = null != e ; return ( ! i || 0 <= e ) && y . ui . focusable ( t , i ) } } ) , y . fn . extend ( { uniqueId : ( c = 0 , function ( ) { return this . each ( function ( ) { this . id || ( this . id = "ui-id-" + ++ c ) } ) } ) , removeUniqueId : function ( ) { return this . each ( function ( ) { /^ui-id-\d+$/ . test ( this . id ) && y ( this ) . removeAttr ( "id" ) } ) } } ) , y . ui . ie = ! ! /msie [\w.]+/ . exec ( navigator . userAgent . toLowerCase ( ) ) ; var c , f = ! 1 ; y ( document ) . on ( "mouseup" , function ( ) { f = ! 1 } ) ; y . widget ( "ui.mouse" , { version : "1.13.2" , options : { cancel : "input, textarea, button, select, option" , distance : 1 , delay : 0 } , _mouseInit : function ( ) { var e = this ; this . element . on ( "mousedown." + this . widgetName , function ( t ) { return e . _mouseDown ( t ) } ) . on ( "click." + this . widgetName , function ( t ) { if ( ! 0 === y . data ( t . target , e . widgetName + ".preventClickEvent" ) ) return y . removeData ( t . target , e . widgetName + ".preventClickEvent" ) , t . stopImmediatePropagation ( ) , ! 1 } ) , this . started = ! 1 } , _mouseDestroy : function ( ) { this . element . off ( "." + this . widgetName ) , this . _mouseMoveDelegate && this . document . off ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ) . off (
"mouseup." + this . widgetName , this . _mouseUpDelegate ) } , _mouseDown : function ( t ) { if ( ! f ) { this . _mouseMoved = ! 1 , this . _mouseStarted && this . _mouseUp ( t ) , this . _mouseDownEvent = t ; var e = this , i = 1 === t . which , s = ! ( "string" != typeof this . options . cancel || ! t . target . nodeName ) && y ( t . target ) . closest ( this . options . cancel ) . length ; return i && ! s && this . _mouseCapture ( t ) ? ( this . mouseDelayMet = ! this . options . delay , this . mouseDelayMet || ( this . _mouseDelayTimer = setTimeout ( function ( ) { e . mouseDelayMet = ! 0 } , this . options . delay ) ) , this . _mouseDistanceMet ( t ) && this . _mouseDelayMet ( t ) && ( this . _mouseStarted = ! 1 !== this . _mouseStart ( t ) , ! this . _mouseStarted ) ? ( t . preventDefault ( ) , ! 0 ) : ( ! 0 === y . data ( t . target , this . widgetName + ".preventClickEvent" ) && y . removeData ( t . target , this . widgetName + ".preventClickEvent" ) , this . _mouseMoveDelegate = function ( t ) { return e . _mouseMove ( t ) } , this . _mouseUpDelegate = function ( t ) { return e . _mouseUp ( t ) } , this . document . on ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ) . on ( "mouseup." + this . widgetName , this . _mouseUpDelegate ) , t . preventDefault ( ) , f = ! 0 ) ) : ! 0 } } ,
_mouseMove : function ( t ) { if ( this . _mouseMoved ) { if ( y . ui . ie && ( ! document . documentMode || document . documentMode < 9 ) && ! t . button ) return this . _mouseUp ( t ) ; if ( ! t . which ) if ( t . originalEvent . altKey || t . originalEvent . ctrlKey || t . originalEvent . metaKey || t . originalEvent . shiftKey ) this . ignoreMissingWhich = ! 0 ; else if ( ! this . ignoreMissingWhich ) return this . _mouseUp ( t ) } return ( t . which || t . button ) && ( this . _mouseMoved = ! 0 ) , this . _mouseStarted ? ( this . _mouseDrag ( t ) , t . preventDefault ( ) ) : ( this . _mouseDistanceMet ( t ) && this . _mouseDelayMet ( t ) && ( this . _mouseStarted = ! 1 !== this . _mouseStart ( this . _mouseDownEvent , t ) , this . _mouseStarted ? this . _mouseDrag ( t ) : this . _mouseUp ( t ) ) , ! this . _mouseStarted ) } , _mouseUp : function ( t ) { this . document . off ( "mousemove." + this . widgetName , this . _mouseMoveDelegate ) . off ( "mouseup." + this . widgetName , this . _mouseUpDelegate ) , this . _mouseStarted && ( this . _mouseStarted = ! 1 , t . target === this . _mouseDownEvent . target && y . data ( t . target , this . widgetName + ".preventClickEvent" , ! 0 ) , this . _mouseStop ( t ) ) , this . _mouseDelayTimer && ( clearTimeout ( this . _mouseDelayTimer ) ,
delete this . _mouseDelayTimer ) , this . ignoreMissingWhich = ! 1 , f = ! 1 , t . preventDefault ( ) } , _mouseDistanceMet : function ( t ) { return Math . max ( Math . abs ( this . _mouseDownEvent . pageX - t . pageX ) , Math . abs ( this . _mouseDownEvent . pageY - t . pageY ) ) >= this . options . distance } , _mouseDelayMet : function ( ) { return this . mouseDelayMet } , _mouseStart : function ( ) { } , _mouseDrag : function ( ) { } , _mouseStop : function ( ) { } , _mouseCapture : function ( ) { return ! 0 } } ) , y . ui . plugin = { add : function ( t , e , i ) { var s , n = y . ui [ t ] . prototype ; for ( s in i ) n . plugins [ s ] = n . plugins [ s ] || [ ] , n . plugins [ s ] . push ( [ e , i [ s ] ] ) } , call : function ( t , e , i , s ) { var n , o = t . plugins [ e ] ; if ( o && ( s || t . element [ 0 ] . parentNode && 11 !== t . element [ 0 ] . parentNode . nodeType ) ) for ( n = 0 ; n < o . length ; n ++ ) t . options [ o [ n ] [ 0 ] ] && o [ n ] [ 1 ] . apply ( t . element , i ) } } ; y . widget ( "ui.resizable" , y . ui . mouse , { version : "1.13.2" , widgetEventPrefix : "resize" , options : { alsoResize : ! 1 , animate : ! 1 , animateDuration : "slow" , animateEasing : "swing" , aspectRatio : ! 1 , autoHide : ! 1 , classes : { "ui-resizable-se" : "ui-icon ui-icon-gripsmall-diagonal-se" } , containment : ! 1 , ghost : ! 1 , grid : ! 1 ,
handles : "e,s,se" , helper : ! 1 , maxHeight : null , maxWidth : null , minHeight : 10 , minWidth : 10 , zIndex : 90 , resize : null , start : null , stop : null } , _num : function ( t ) { return parseFloat ( t ) || 0 } , _isNumber : function ( t ) { return ! isNaN ( parseFloat ( t ) ) } , _hasScroll : function ( t , e ) { if ( "hidden" === y ( t ) . css ( "overflow" ) ) return ! 1 ; var i = e && "left" === e ? "scrollLeft" : "scrollTop" , e = ! 1 ; if ( 0 < t [ i ] ) return ! 0 ; try { t [ i ] = 1 , e = 0 < t [ i ] , t [ i ] = 0 } catch ( t ) { } return e } , _create : function ( ) { var t , e = this . options , i = this ; this . _addClass ( "ui-resizable" ) , y . extend ( this , { _aspectRatio : ! ! e . aspectRatio , aspectRatio : e . aspectRatio , originalElement : this . element , _proportionallyResizeElements : [ ] , _helper : e . helper || e . ghost || e . animate ? e . helper || "ui-resizable-helper" : null } ) , this . element [ 0 ] . nodeName . match ( /^(canvas|textarea|input|select|button|img)$/i ) && ( this . element . wrap ( y ( "<div class='ui-wrapper'></div>" ) . css ( { overflow : "hidden" , position : this . element . css ( "position" ) , width : this . element . outerWidth ( ) , height : this . element . outerHeight ( ) , top : this . element . css ( "top" ) , left : this . element . css ( "left" ) } ) ) ,
this . element = this . element . parent ( ) . data ( "ui-resizable" , this . element . resizable ( "instance" ) ) , this . elementIsWrapper = ! 0 , t = { marginTop : this . originalElement . css ( "marginTop" ) , marginRight : this . originalElement . css ( "marginRight" ) , marginBottom : this . originalElement . css ( "marginBottom" ) , marginLeft : this . originalElement . css ( "marginLeft" ) } , this . element . css ( t ) , this . originalElement . css ( "margin" , 0 ) , this . originalResizeStyle = this . originalElement . css ( "resize" ) , this . originalElement . css ( "resize" , "none" ) , this . _proportionallyResizeElements . push ( this . originalElement . css ( { position : "static" , zoom : 1 , display : "block" } ) ) , this . originalElement . css ( t ) , this . _proportionallyResize ( ) ) , this . _setupHandles ( ) , e . autoHide && y ( this . element ) . on ( "mouseenter" , function ( ) { e . disabled || ( i . _removeClass ( "ui-resizable-autohide" ) , i . _handles . show ( ) ) } ) . on ( "mouseleave" , function ( ) { e . disabled || i . resizing || ( i . _addClass ( "ui-resizable-autohide" ) , i . _handles . hide ( ) ) } ) , this . _mouseInit ( ) } , _destroy : function ( ) { this . _mouseDestroy ( ) , this . _addedHandles . remove ( ) ; function t ( t ) { y ( t
) . removeData ( "resizable" ) . removeData ( "ui-resizable" ) . off ( ".resizable" ) } var e ; return this . elementIsWrapper && ( t ( this . element ) , e = this . element , this . originalElement . css ( { position : e . css ( "position" ) , width : e . outerWidth ( ) , height : e . outerHeight ( ) , top : e . css ( "top" ) , left : e . css ( "left" ) } ) . insertAfter ( e ) , e . remove ( ) ) , this . originalElement . css ( "resize" , this . originalResizeStyle ) , t ( this . originalElement ) , this } , _setOption : function ( t , e ) { switch ( this . _super ( t , e ) , t ) { case "handles" : this . _removeHandles ( ) , this . _setupHandles ( ) ; break ; case "aspectRatio" : this . _aspectRatio = ! ! e } } , _setupHandles : function ( ) { var t , e , i , s , n , o = this . options , h = this ; if ( this . handles = o . handles || ( y ( ".ui-resizable-handle" , this . element ) . length ? { n : ".ui-resizable-n" , e : ".ui-resizable-e" , s : ".ui-resizable-s" , w : ".ui-resizable-w" , se : ".ui-resizable-se" , sw : ".ui-resizable-sw" , ne : ".ui-resizable-ne" , nw : ".ui-resizable-nw" } : "e,s,se" ) , this . _handles = y ( ) , this . _addedHandles = y ( ) , this . handles . constructor === String ) for ( "all" === this . handles && ( this . handles = "n,e,s,w,se,sw,ne,nw" ) , i = this . handles . split (
"," ) , this . handles = { } , e = 0 ; e < i . length ; e ++ ) s = "ui-resizable-" + ( t = String . prototype . trim . call ( i [ e ] ) ) , n = y ( "<div>" ) , this . _addClass ( n , "ui-resizable-handle " + s ) , n . css ( { zIndex : o . zIndex } ) , this . handles [ t ] = ".ui-resizable-" + t , this . element . children ( this . handles [ t ] ) . length || ( this . element . append ( n ) , this . _addedHandles = this . _addedHandles . add ( n ) ) ; this . _renderAxis = function ( t ) { var e , i , s ; for ( e in t = t || this . element , this . handles ) this . handles [ e ] . constructor === String ? this . handles [ e ] = this . element . children ( this . handles [ e ] ) . first ( ) . show ( ) : ( this . handles [ e ] . jquery || this . handles [ e ] . nodeType ) && ( this . handles [ e ] = y ( this . handles [ e ] ) , this . _on ( this . handles [ e ] , { mousedown : h . _mouseDown } ) ) , this . elementIsWrapper && this . originalElement [ 0 ] . nodeName . match ( /^(textarea|input|select|button)$/i ) && ( i = y ( this . handles [ e ] , this . element ) , s = /sw|ne|nw|se|n|s/ . test ( e ) ? i . outerHeight ( ) : i . outerWidth ( ) , i = [ "padding" , /ne|nw|n/ . test ( e ) ? "Top" : /se|sw|s/ . test ( e ) ? "Bottom" : /^e$/ . test ( e ) ? "Right" : "Left" ] . join ( "" ) , t . css ( i , s ) , this . _proportionallyResize ( ) ) , this . _handles = this . _handles . add (
this . handles [ e ] ) } , this . _renderAxis ( this . element ) , this . _handles = this . _handles . add ( this . element . find ( ".ui-resizable-handle" ) ) , this . _handles . disableSelection ( ) , this . _handles . on ( "mouseover" , function ( ) { h . resizing || ( this . className && ( n = this . className . match ( /ui-resizable-(se|sw|ne|nw|n|e|s|w)/i ) ) , h . axis = n && n [ 1 ] ? n [ 1 ] : "se" ) } ) , o . autoHide && ( this . _handles . hide ( ) , this . _addClass ( "ui-resizable-autohide" ) ) } , _removeHandles : function ( ) { this . _addedHandles . remove ( ) } , _mouseCapture : function ( t ) { var e , i , s = ! 1 ; for ( e in this . handles ) ( i = y ( this . handles [ e ] ) [ 0 ] ) !== t . target && ! y . contains ( i , t . target ) || ( s = ! 0 ) ; return ! this . options . disabled && s } , _mouseStart : function ( t ) { var e , i , s = this . options , n = this . element ; return this . resizing = ! 0 , this . _renderProxy ( ) , e = this . _num ( this . helper . css ( "left" ) ) , i = this . _num ( this . helper . css ( "top" ) ) , s . containment && ( e += y ( s . containment ) . scrollLeft ( ) || 0 , i += y ( s . containment ) . scrollTop ( ) || 0 ) , this . offset = this . helper . offset ( ) , this . position = { left : e , top : i } , this . size = this . _helper ? { width : this . helper . width ( ) , height : this . helper . height ( ) } : {
width : n . width ( ) , height : n . height ( ) } , this . originalSize = this . _helper ? { width : n . outerWidth ( ) , height : n . outerHeight ( ) } : { width : n . width ( ) , height : n . height ( ) } , this . sizeDiff = { width : n . outerWidth ( ) - n . width ( ) , height : n . outerHeight ( ) - n . height ( ) } , this . originalPosition = { left : e , top : i } , this . originalMousePosition = { left : t . pageX , top : t . pageY } , this . aspectRatio = "number" == typeof s . aspectRatio ? s . aspectRatio : this . originalSize . width / this . originalSize . height || 1 , s = y ( ".ui-resizable-" + this . axis ) . css ( "cursor" ) , y ( "body" ) . css ( "cursor" , "auto" === s ? this . axis + "-resize" : s ) , this . _addClass ( "ui-resizable-resizing" ) , this . _propagate ( "start" , t ) , ! 0 } , _mouseDrag : function ( t ) { var e = this . originalMousePosition , i = this . axis , s = t . pageX - e . left || 0 , e = t . pageY - e . top || 0 , i = this . _change [ i ] ; return this . _updatePrevProperties ( ) , i && ( e = i . apply ( this , [ t , s , e ] ) , this . _updateVirtualBoundaries ( t . shiftKey ) , ( this . _aspectRatio || t . shiftKey ) && ( e = this . _updateRatio ( e , t ) ) , e = this . _respectSize ( e , t ) , this . _updateCache ( e ) , this . _propagate ( "resize" , t ) , e = this . _applyChanges ( ) ,
! this . _helper && this . _proportionallyResizeElements . length && this . _proportionallyResize ( ) , y . isEmptyObject ( e ) || ( this . _updatePrevProperties ( ) , this . _trigger ( "resize" , t , this . ui ( ) ) , this . _applyChanges ( ) ) ) , ! 1 } , _mouseStop : function ( t ) { this . resizing = ! 1 ; var e , i , s , n = this . options , o = this ; return this . _helper && ( s = ( e = ( i = this . _proportionallyResizeElements ) . length && /textarea/i . test ( i [ 0 ] . nodeName ) ) && this . _hasScroll ( i [ 0 ] , "left" ) ? 0 : o . sizeDiff . height , i = e ? 0 : o . sizeDiff . width , e = { width : o . helper . width ( ) - i , height : o . helper . height ( ) - s } , i = parseFloat ( o . element . css ( "left" ) ) + ( o . position . left - o . originalPosition . left ) || null , s = parseFloat ( o . element . css ( "top" ) ) + ( o . position . top - o . originalPosition . top ) || null , n . animate || this . element . css ( y . extend ( e , { top : s , left : i } ) ) , o . helper . height ( o . size . height ) , o . helper . width ( o . size . width ) , this . _helper && ! n . animate && this . _proportionallyResize ( ) ) , y ( "body" ) . css ( "cursor" , "auto" ) , this . _removeClass ( "ui-resizable-resizing" ) , this . _propagate ( "stop" , t ) , this . _helper && this . helper . remove ( ) , ! 1 } , _updatePrevProperties : function ( ) {
this . prevPosition = { top : this . position . top , left : this . position . left } , this . prevSize = { width : this . size . width , height : this . size . height } } , _applyChanges : function ( ) { var t = { } ; return this . position . top !== this . prevPosition . top && ( t . top = this . position . top + "px" ) , this . position . left !== this . prevPosition . left && ( t . left = this . position . left + "px" ) , this . size . width !== this . prevSize . width && ( t . width = this . size . width + "px" ) , this . size . height !== this . prevSize . height && ( t . height = this . size . height + "px" ) , this . helper . css ( t ) , t } , _updateVirtualBoundaries : function ( t ) { var e , i , s = this . options , n = { minWidth : this . _isNumber ( s . minWidth ) ? s . minWidth : 0 , maxWidth : this . _isNumber ( s . maxWidth ) ? s . maxWidth : 1 / 0 , minHeight : this . _isNumber ( s . minHeight ) ? s . minHeight : 0 , maxHeight : this . _isNumber ( s . maxHeight ) ? s . maxHeight : 1 / 0 } ; ( this . _aspectRatio || t ) && ( e = n . minHeight * this . aspectRatio , i = n . minWidth / this . aspectRatio , s = n . maxHeight * this . aspectRatio , t = n . maxWidth / this . aspectRatio , e > n . minWidth && ( n . minWidth = e ) , i > n . minHeight && ( n . minHeight = i ) , s < n . maxWidth && ( n . maxWidth = s ) , t < n . maxHeight && ( n . maxHeight = t )
) , this . _vBoundaries = n } , _updateCache : function ( t ) { this . offset = this . helper . offset ( ) , this . _isNumber ( t . left ) && ( this . position . left = t . left ) , this . _isNumber ( t . top ) && ( this . position . top = t . top ) , this . _isNumber ( t . height ) && ( this . size . height = t . height ) , this . _isNumber ( t . width ) && ( this . size . width = t . width ) } , _updateRatio : function ( t ) { var e = this . position , i = this . size , s = this . axis ; return this . _isNumber ( t . height ) ? t . width = t . height * this . aspectRatio : this . _isNumber ( t . width ) && ( t . height = t . width / this . aspectRatio ) , "sw" === s && ( t . left = e . left + ( i . width - t . width ) , t . top = null ) , "nw" === s && ( t . top = e . top + ( i . height - t . height ) , t . left = e . left + ( i . width - t . width ) ) , t } , _respectSize : function ( t ) { var e = this . _vBoundaries , i = this . axis , s = this . _isNumber ( t . width ) && e . maxWidth && e . maxWidth < t . width , n = this . _isNumber ( t . height ) && e . maxHeight && e . maxHeight < t . height , o = this . _isNumber ( t . width ) && e . minWidth && e . minWidth > t . width , h = this . _isNumber ( t . height ) && e . minHeight && e . minHeight > t . height , a = this . originalPosition . left + this . originalSize . width , r = this . originalPosition . top + this . originalSize . height
, l = /sw|nw|w/ . test ( i ) , i = /nw|ne|n/ . test ( i ) ; return o && ( t . width = e . minWidth ) , h && ( t . height = e . minHeight ) , s && ( t . width = e . maxWidth ) , n && ( t . height = e . maxHeight ) , o && l && ( t . left = a - e . minWidth ) , s && l && ( t . left = a - e . maxWidth ) , h && i && ( t . top = r - e . minHeight ) , n && i && ( t . top = r - e . maxHeight ) , t . width || t . height || t . left || ! t . top ? t . width || t . height || t . top || ! t . left || ( t . left = null ) : t . top = null , t } , _getPaddingPlusBorderDimensions : function ( t ) { for ( var e = 0 , i = [ ] , s = [ t . css ( "borderTopWidth" ) , t . css ( "borderRightWidth" ) , t . css ( "borderBottomWidth" ) , t . css ( "borderLeftWidth" ) ] , n = [ t . css ( "paddingTop" ) , t . css ( "paddingRight" ) , t . css ( "paddingBottom" ) , t . css ( "paddingLeft" ) ] ; e < 4 ; e ++ ) i [ e ] = parseFloat ( s [ e ] ) || 0 , i [ e ] += parseFloat ( n [ e ] ) || 0 ; return { height : i [ 0 ] + i [ 2 ] , width : i [ 1 ] + i [ 3 ] } } , _proportionallyResize : function ( ) { if ( this . _proportionallyResizeElements . length ) for ( var t , e = 0 , i = this . helper || this . element ; e < this . _proportionallyResizeElements . length ; e ++ ) t = this . _proportionallyResizeElements [ e ] , this . outerDimensions || ( this . outerDimensions = this . _getPaddingPlusBorderDimensions ( t ) ) , t . css ( {
height : i . height ( ) - this . outerDimensions . height || 0 , width : i . width ( ) - this . outerDimensions . width || 0 } ) } , _renderProxy : function ( ) { var t = this . element , e = this . options ; this . elementOffset = t . offset ( ) , this . _helper ? ( this . helper = this . helper || y ( "<div></div>" ) . css ( { overflow : "hidden" } ) , this . _addClass ( this . helper , this . _helper ) , this . helper . css ( { width : this . element . outerWidth ( ) , height : this . element . outerHeight ( ) , position : "absolute" , left : this . elementOffset . left + "px" , top : this . elementOffset . top + "px" , zIndex : ++ e . zIndex } ) , this . helper . appendTo ( "body" ) . disableSelection ( ) ) : this . helper = this . element } , _change : { e : function ( t , e ) { return { width : this . originalSize . width + e } } , w : function ( t , e ) { var i = this . originalSize ; return { left : this . originalPosition . left + e , width : i . width - e } } , n : function ( t , e , i ) { var s = this . originalSize ; return { top : this . originalPosition . top + i , height : s . height - i } } , s : function ( t , e , i ) { return { height : this . originalSize . height + i } } , se : function ( t , e , i ) { return y . extend ( this . _change . s . apply ( this , arguments ) , this . _change . e . apply ( this , [ t , e , i ] ) ) } , sw : function ( t , e ,
i ) { return y . extend ( this . _change . s . apply ( this , arguments ) , this . _change . w . apply ( this , [ t , e , i ] ) ) } , ne : function ( t , e , i ) { return y . extend ( this . _change . n . apply ( this , arguments ) , this . _change . e . apply ( this , [ t , e , i ] ) ) } , nw : function ( t , e , i ) { return y . extend ( this . _change . n . apply ( this , arguments ) , this . _change . w . apply ( this , [ t , e , i ] ) ) } } , _propagate : function ( t , e ) { y . ui . plugin . call ( this , t , [ e , this . ui ( ) ] ) , "resize" !== t && this . _trigger ( t , e , this . ui ( ) ) } , plugins : { } , ui : function ( ) { return { originalElement : this . originalElement , element : this . element , helper : this . helper , position : this . position , size : this . size , originalSize : this . originalSize , originalPosition : this . originalPosition } } } ) , y . ui . plugin . add ( "resizable" , "animate" , { stop : function ( e ) { var i = y ( this ) . resizable ( "instance" ) , t = i . options , s = i . _proportionallyResizeElements , n = s . length && /textarea/i . test ( s [ 0 ] . nodeName ) , o = n && i . _hasScroll ( s [ 0 ] , "left" ) ? 0 : i . sizeDiff . height , h = n ? 0 : i . sizeDiff . width , n = { width : i . size . width - h , height : i . size . height - o } , h = parseFloat ( i . element . css ( "left" ) ) + ( i . position . left - i . originalPosition . left
) || null , o = parseFloat ( i . element . css ( "top" ) ) + ( i . position . top - i . originalPosition . top ) || null ; i . element . animate ( y . extend ( n , o && h ? { top : o , left : h } : { } ) , { duration : t . animateDuration , easing : t . animateEasing , step : function ( ) { var t = { width : parseFloat ( i . element . css ( "width" ) ) , height : parseFloat ( i . element . css ( "height" ) ) , top : parseFloat ( i . element . css ( "top" ) ) , left : parseFloat ( i . element . css ( "left" ) ) } ; s && s . length && y ( s [ 0 ] ) . css ( { width : t . width , height : t . height } ) , i . _updateCache ( t ) , i . _propagate ( "resize" , e ) } } ) } } ) , y . ui . plugin . add ( "resizable" , "containment" , { start : function ( ) { var i , s , n = y ( this ) . resizable ( "instance" ) , t = n . options , e = n . element , o = t . containment , h = o instanceof y ? o . get ( 0 ) : /parent/ . test ( o ) ? e . parent ( ) . get ( 0 ) : o ; h && ( n . containerElement = y ( h ) , /document/ . test ( o ) || o === document ? ( n . containerOffset = { left : 0 , top : 0 } , n . containerPosition = { left : 0 , top : 0 } , n . parentData = { element : y ( document ) , left : 0 , top : 0 , width : y ( document ) . width ( ) , height : y ( document ) . height ( ) || document . body . parentNode . scrollHeight } ) : ( i = y ( h ) , s = [ ] , y ( [ "Top" , "Right" , "Left" , "Bottom" ] ) . each ( function ( t , e
) { s [ t ] = n . _num ( i . css ( "padding" + e ) ) } ) , n . containerOffset = i . offset ( ) , n . containerPosition = i . position ( ) , n . containerSize = { height : i . innerHeight ( ) - s [ 3 ] , width : i . innerWidth ( ) - s [ 1 ] } , t = n . containerOffset , e = n . containerSize . height , o = n . containerSize . width , o = n . _hasScroll ( h , "left" ) ? h . scrollWidth : o , e = n . _hasScroll ( h ) ? h . scrollHeight : e , n . parentData = { element : h , left : t . left , top : t . top , width : o , height : e } ) ) } , resize : function ( t ) { var e = y ( this ) . resizable ( "instance" ) , i = e . options , s = e . containerOffset , n = e . position , o = e . _aspectRatio || t . shiftKey , h = { top : 0 , left : 0 } , a = e . containerElement , t = ! 0 ; a [ 0 ] !== document && /static/ . test ( a . css ( "position" ) ) && ( h = s ) , n . left < ( e . _helper ? s . left : 0 ) && ( e . size . width = e . size . width + ( e . _helper ? e . position . left - s . left : e . position . left - h . left ) , o && ( e . size . height = e . size . width / e . aspectRatio , t = ! 1 ) , e . position . left = i . helper ? s . left : 0 ) , n . top < ( e . _helper ? s . top : 0 ) && ( e . size . height = e . size . height + ( e . _helper ? e . position . top - s . top : e . position . top ) , o && ( e . size . width = e . size . height * e . aspectRatio , t = ! 1 ) , e . position . top = e . _helper ? s . top : 0 ) ,
i = e . containerElement . get ( 0 ) === e . element . parent ( ) . get ( 0 ) , n = /relative|absolute/ . test ( e . containerElement . css ( "position" ) ) , i && n ? ( e . offset . left = e . parentData . left + e . position . left , e . offset . top = e . parentData . top + e . position . top ) : ( e . offset . left = e . element . offset ( ) . left , e . offset . top = e . element . offset ( ) . top ) , n = Math . abs ( e . sizeDiff . width + ( e . _helper ? e . offset . left - h . left : e . offset . left - s . left ) ) , s = Math . abs ( e . sizeDiff . height + ( e . _helper ? e . offset . top - h . top : e . offset . top - s . top ) ) , n + e . size . width >= e . parentData . width && ( e . size . width = e . parentData . width - n , o && ( e . size . height = e . size . width / e . aspectRatio , t = ! 1 ) ) , s + e . size . height >= e . parentData . height && ( e . size . height = e . parentData . height - s , o && ( e . size . width = e . size . height * e . aspectRatio , t = ! 1 ) ) , t || ( e . position . left = e . prevPosition . left , e . position . top = e . prevPosition . top , e . size . width = e . prevSize . width , e . size . height = e . prevSize . height ) } , stop : function ( ) { var t = y ( this ) . resizable ( "instance" ) , e = t . options , i = t . containerOffset , s = t . containerPosition , n = t . containerElement , o = y ( t . helper ) , h = o . offset ( ) , a = o . outerWidth (
) - t . sizeDiff . width , o = o . outerHeight ( ) - t . sizeDiff . height ; t . _helper && ! e . animate && /relative/ . test ( n . css ( "position" ) ) && y ( this ) . css ( { left : h . left - s . left - i . left , width : a , height : o } ) , t . _helper && ! e . animate && /static/ . test ( n . css ( "position" ) ) && y ( this ) . css ( { left : h . left - s . left - i . left , width : a , height : o } ) } } ) , y . ui . plugin . add ( "resizable" , "alsoResize" , { start : function ( ) { var t = y ( this ) . resizable ( "instance" ) . options ; y ( t . alsoResize ) . each ( function ( ) { var t = y ( this ) ; t . data ( "ui-resizable-alsoresize" , { width : parseFloat ( t . width ( ) ) , height : parseFloat ( t . height ( ) ) , left : parseFloat ( t . css ( "left" ) ) , top : parseFloat ( t . css ( "top" ) ) } ) } ) } , resize : function ( t , i ) { var e = y ( this ) . resizable ( "instance" ) , s = e . options , n = e . originalSize , o = e . originalPosition , h = { height : e . size . height - n . height || 0 , width : e . size . width - n . width || 0 , top : e . position . top - o . top || 0 , left : e . position . left - o . left || 0 } ; y ( s . alsoResize ) . each ( function ( ) { var t = y ( this ) , s = y ( this ) . data ( "ui-resizable-alsoresize" ) , n = { } , e = t . parents ( i . originalElement [ 0 ] ) . length ? [ "width" , "height" ] : [ "width" , "height" , "top" , "left" ] ; y . each ( e ,
function ( t , e ) { var i = ( s [ e ] || 0 ) + ( h [ e ] || 0 ) ; i && 0 <= i && ( n [ e ] = i || null ) } ) , t . css ( n ) } ) } , stop : function ( ) { y ( this ) . removeData ( "ui-resizable-alsoresize" ) } } ) , y . ui . plugin . add ( "resizable" , "ghost" , { start : function ( ) { var t = y ( this ) . resizable ( "instance" ) , e = t . size ; t . ghost = t . originalElement . clone ( ) , t . ghost . css ( { opacity : . 25 , display : "block" , position : "relative" , height : e . height , width : e . width , margin : 0 , left : 0 , top : 0 } ) , t . _addClass ( t . ghost , "ui-resizable-ghost" ) , ! 1 !== y . uiBackCompat && "string" == typeof t . options . ghost && t . ghost . addClass ( this . options . ghost ) , t . ghost . appendTo ( t . helper ) } , resize : function ( ) { var t = y ( this ) . resizable ( "instance" ) ; t . ghost && t . ghost . css ( { position : "relative" , height : t . size . height , width : t . size . width } ) } , stop : function ( ) { var t = y ( this ) . resizable ( "instance" ) ; t . ghost && t . helper && t . helper . get ( 0 ) . removeChild ( t . ghost . get ( 0 ) ) } } ) , y . ui . plugin . add ( "resizable" , "grid" , { resize : function ( ) { var t , e = y ( this ) . resizable ( "instance" ) , i = e . options , s = e . size , n = e . originalSize , o = e . originalPosition , h = e . axis , a = "number" == typeof i . grid ? [ i . grid , i . grid ] : i . grid , r = a [ 0
] || 1 , l = a [ 1 ] || 1 , u = Math . round ( ( s . width - n . width ) / r ) * r , p = Math . round ( ( s . height - n . height ) / l ) * l , d = n . width + u , c = n . height + p , f = i . maxWidth && i . maxWidth < d , g = i . maxHeight && i . maxHeight < c , m = i . minWidth && i . minWidth > d , s = i . minHeight && i . minHeight > c ; i . grid = a , m && ( d += r ) , s && ( c += l ) , f && ( d -= r ) , g && ( c -= l ) , /^(se|s|e)$/ . test ( h ) ? ( e . size . width = d , e . size . height = c ) : /^(ne)$/ . test ( h ) ? ( e . size . width = d , e . size . height = c , e . position . top = o . top - p ) : /^(sw)$/ . test ( h ) ? ( e . size . width = d , e . size . height = c , e . position . left = o . left - u ) : ( ( c - l <= 0 || d - r <= 0 ) && ( t = e . _getPaddingPlusBorderDimensions ( this ) ) , 0 < c - l ? ( e . size . height = c , e . position . top = o . top - p ) : ( c = l - t . height , e . size . height = c , e . position . top = o . top + n . height - c ) , 0 < d - r ? ( e . size . width = d , e . position . left = o . left - u ) : ( d = r - t . width , e . size . width = d , e . position . left = o . left + n . width - d ) ) } } ) ; y . ui . resizable } ) ;
/ * *
2020-10-17 03:08:44 +00:00
* Copyright ( c ) 2007 Ariel Flesler - aflesler ○ gmail • com | https : //github.com/flesler
* Licensed under MIT
* @ author Ariel Flesler
* @ version 2.1 . 2
2024-10-19 21:12:30 +00:00
* /(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"===typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9e9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1<b.axis.length;u&&(d/ = 2 ) ; b . offset = h ( b . offset ) ; b . over = h ( b . over ) ; return this . each ( function ( ) { function k ( a ) { var k = $ . extend ( { } , b , { queue : ! 0 , duration : d , complete : a && function ( ) { a . call ( q , e , b ) } } ) ; r . animate ( f , k ) } if ( null !== a ) { var l = n ( this ) , q = l ? this . contentWindow || window : this , r = $ ( q ) , e = a , f = { } , t ; switch ( typeof e ) { case "number" : case "string" : if (
/^([+-]=?)?\d+(\.\d+)?(px|%)?$/ . test ( e ) ) { e = h ( e ) ; break } e = l ? $ ( e ) : $ ( e , q ) ; case "object" : if ( e . length === 0 ) return ; if ( e . is || e . style ) t = ( e = $ ( e ) ) . offset ( ) } var v = $ . isFunction ( b . offset ) && b . offset ( q , e ) || b . offset ; $ . each ( b . axis . split ( "" ) , function ( a , c ) { var d = "x" === c ? "Left" : "Top" , m = d . toLowerCase ( ) , g = "scroll" + d , h = r [ g ] ( ) , n = p . max ( q , c ) ; t ? ( f [ g ] = t [ m ] + ( l ? 0 : h - r . offset ( ) [ m ] ) , b . margin && ( f [ g ] -= parseInt ( e . css ( "margin" + d ) , 10 ) || 0 , f [ g ] -= parseInt ( e . css ( "border" + d + "Width" ) , 10 ) || 0 ) , f [ g ] += v [ m ] || 0 , b . over [ m ] && ( f [ g ] += e [ "x" === c ? "width" : "height" ] ( ) * b . over [ m ] ) ) : ( d = e [ m ] , f [ g ] = d . slice && "%" === d . slice ( - 1 ) ? parseFloat ( d ) / 100 * n : d ) ; b . limit && /^\d+$/ . test ( f [ g ] ) && ( f [ g ] = 0 >= f [ g ] ? 0 : Math . min ( f [ g ] , n ) ) ; ! a && 1 < b . axis . length && ( h === f [ g ] ? f = { } : u && ( k ( b . onAfterFirst ) , f = { } ) ) } ) ; k ( b . onAfter ) } } ) } ; p . max = function ( a , d ) { var b = "x" === d ? "Width" : "Height" , h = "scroll" + b ; if ( ! n ( a ) ) return a [ h ] - $ ( a ) [ b . toLowerCase ( ) ] ( ) ; var b = "client" + b , k = a . ownerDocument || a . document , l = k . documentElement , k = k . body ; return Math . max ( l [ h ] , k [ h ] ) - Math . min ( l [ b ] , k [ b ] ) } ;
$ . Tween . propHooks . scrollLeft = $ . Tween . propHooks . scrollTop = { get : function ( a ) { return $ ( a . elem ) [ a . prop ] ( ) } , set : function ( a ) { var d = this . get ( a ) ; if ( a . options . interrupt && a . _last && a . _last !== d ) return $ ( a . elem ) . stop ( ) ; var b = Math . round ( a . now ) ; d !== b && ( $ ( a . elem ) [ a . prop ] ( b ) , a . _last = this . get ( a ) ) } } ; return p } ) ;
2020-07-05 03:37:29 +00:00
/ * !
2020-10-17 03:08:44 +00:00
PowerTip v1 . 3.1 ( 2018 - 04 - 15 )
https : //stevenbenner.github.io/jquery-powertip/
Copyright ( c ) 2018 Steven Benner ( http : //stevenbenner.com/).
2020-07-05 03:37:29 +00:00
Released under MIT license .
https : //raw.github.com/stevenbenner/jquery-powertip/master/LICENSE.txt
* /
2024-10-19 21:12:30 +00:00
( function ( root , factory ) { if ( typeof define === "function" && define . amd ) { define ( [ "jquery" ] , factory ) } else if ( typeof module === "object" && module . exports ) { module . exports = factory ( require ( "jquery" ) ) } else { factory ( root . jQuery ) } } ) ( this , function ( $ ) { var $document = $ ( document ) , $window = $ ( window ) , $body = $ ( "body" ) ; var DATA _DISPLAYCONTROLLER = "displayController" , DATA _HASACTIVEHOVER = "hasActiveHover" , DATA _FORCEDOPEN = "forcedOpen" , DATA _HASMOUSEMOVE = "hasMouseMove" , DATA _MOUSEONTOTIP = "mouseOnToPopup" , DATA _ORIGINALTITLE = "originalTitle" , DATA _POWERTIP = "powertip" , DATA _POWERTIPJQ = "powertipjq" , DATA _POWERTIPTARGET = "powertiptarget" , EVENT _NAMESPACE = ".powertip" , RAD2DEG = 180 / Math . PI , MOUSE _EVENTS = [ "click" , "dblclick" , "mousedown" , "mouseup" , "mousemove" , "mouseover" , "mouseout" , "mouseenter" , "mouseleave" , "contextmenu" ] ; var session = { tooltips : null , isTipOpen : false , isFixedTipOpen : false , isClosing : false , tipOpenImminent : false , activeHover : null , currentX : 0 , currentY : 0 , previousX : 0 , previousY : 0 , desyncTimeout : null , closeDelayTimeout : null , mouseTrackingActive : false ,
delayInProgress : false , windowWidth : 0 , windowHeight : 0 , scrollTop : 0 , scrollLeft : 0 } ; var Collision = { none : 0 , top : 1 , bottom : 2 , left : 4 , right : 8 } ; $ . fn . powerTip = function ( opts , arg ) { var targetElements = this , options , tipController ; if ( ! targetElements . length ) { return targetElements } if ( $ . type ( opts ) === "string" && $ . powerTip [ opts ] ) { return $ . powerTip [ opts ] . call ( targetElements , targetElements , arg ) } options = $ . extend ( { } , $ . fn . powerTip . defaults , opts ) ; tipController = new TooltipController ( options ) ; initTracking ( ) ; targetElements . each ( function elementSetup ( ) { var $this = $ ( this ) , dataPowertip = $this . data ( DATA _POWERTIP ) , dataElem = $this . data ( DATA _POWERTIPJQ ) , dataTarget = $this . data ( DATA _POWERTIPTARGET ) , title = $this . attr ( "title" ) ; if ( ! dataPowertip && ! dataTarget && ! dataElem && title ) { $this . data ( DATA _POWERTIP , title ) ; $this . data ( DATA _ORIGINALTITLE , title ) ; $this . removeAttr ( "title" ) } $this . data ( DATA _DISPLAYCONTROLLER , new DisplayController ( $this , options , tipController ) ) } ) ; if ( ! options . manual ) { $ . each ( options . openEvents , function ( idx , evt ) { if ( $ . inArray ( evt , options . closeEvents ) > - 1 ) {
targetElements . on ( evt + EVENT _NAMESPACE , function elementToggle ( event ) { $ . powerTip . toggle ( this , event ) } ) } else { targetElements . on ( evt + EVENT _NAMESPACE , function elementOpen ( event ) { $ . powerTip . show ( this , event ) } ) } } ) ; $ . each ( options . closeEvents , function ( idx , evt ) { if ( $ . inArray ( evt , options . openEvents ) < 0 ) { targetElements . on ( evt + EVENT _NAMESPACE , function elementClose ( event ) { $ . powerTip . hide ( this , ! isMouseEvent ( event ) ) } ) } } ) ; targetElements . on ( "keydown" + EVENT _NAMESPACE , function elementKeyDown ( event ) { if ( event . keyCode === 27 ) { $ . powerTip . hide ( this , true ) } } ) } return targetElements } ; $ . fn . powerTip . defaults = { fadeInTime : 200 , fadeOutTime : 100 , followMouse : false , popupId : "powerTip" , popupClass : null , intentSensitivity : 7 , intentPollInterval : 100 , closeDelay : 100 , placement : "n" , smartPlacement : false , offset : 10 , mouseOnToPopup : false , manual : false , openEvents : [ "mouseenter" , "focus" ] , closeEvents : [ "mouseleave" , "blur" ] } ; $ . fn . powerTip . smartPlacementLists = { n : [ "n" , "ne" , "nw" , "s" ] , e : [ "e" , "ne" , "se" , "w" , "nw" , "sw" , "n" , "s" , "e" ] , s : [ "s" , "se" , "sw" , "n" ] , w : [ "w" , "nw" , "sw" , "e" , "ne" , "se" ,
"n" , "s" , "w" ] , nw : [ "nw" , "w" , "sw" , "n" , "s" , "se" , "nw" ] , ne : [ "ne" , "e" , "se" , "n" , "s" , "sw" , "ne" ] , sw : [ "sw" , "w" , "nw" , "s" , "n" , "ne" , "sw" ] , se : [ "se" , "e" , "ne" , "s" , "n" , "nw" , "se" ] , "nw-alt" : [ "nw-alt" , "n" , "ne-alt" , "sw-alt" , "s" , "se-alt" , "w" , "e" ] , "ne-alt" : [ "ne-alt" , "n" , "nw-alt" , "se-alt" , "s" , "sw-alt" , "e" , "w" ] , "sw-alt" : [ "sw-alt" , "s" , "se-alt" , "nw-alt" , "n" , "ne-alt" , "w" , "e" ] , "se-alt" : [ "se-alt" , "s" , "sw-alt" , "ne-alt" , "n" , "nw-alt" , "e" , "w" ] } ; $ . powerTip = { show : function apiShowTip ( element , event ) { if ( isMouseEvent ( event ) ) { trackMouse ( event ) ; session . previousX = event . pageX ; session . previousY = event . pageY ; $ ( element ) . data ( DATA _DISPLAYCONTROLLER ) . show ( ) } else { $ ( element ) . first ( ) . data ( DATA _DISPLAYCONTROLLER ) . show ( true , true ) } return element } , reposition : function apiResetPosition ( element ) { $ ( element ) . first ( ) . data ( DATA _DISPLAYCONTROLLER ) . resetPosition ( ) ; return element } , hide : function apiCloseTip ( element , immediate ) { var displayController ; immediate = element ? immediate : true ; if ( element ) { displayController = $ ( element ) . first ( ) . data ( DATA _DISPLAYCONTROLLER ) } else if (
session . activeHover ) { displayController = session . activeHover . data ( DATA _DISPLAYCONTROLLER ) } if ( displayController ) { displayController . hide ( immediate ) } return element } , toggle : function apiToggle ( element , event ) { if ( session . activeHover && session . activeHover . is ( element ) ) { $ . powerTip . hide ( element , ! isMouseEvent ( event ) ) } else { $ . powerTip . show ( element , event ) } return element } } ; $ . powerTip . showTip = $ . powerTip . show ; $ . powerTip . closeTip = $ . powerTip . hide ; function CSSCoordinates ( ) { var me = this ; me . top = "auto" ; me . left = "auto" ; me . right = "auto" ; me . bottom = "auto" ; me . set = function ( property , value ) { if ( $ . isNumeric ( value ) ) { me [ property ] = Math . round ( value ) } } } function DisplayController ( element , options , tipController ) { var hoverTimer = null , myCloseDelay = null ; function openTooltip ( immediate , forceOpen ) { cancelTimer ( ) ; if ( ! element . data ( DATA _HASACTIVEHOVER ) ) { if ( ! immediate ) { session . tipOpenImminent = true ; hoverTimer = setTimeout ( function intentDelay ( ) { hoverTimer = null ; checkForIntent ( ) } , options . intentPollInterval ) } else { if ( forceOpen ) { element . data ( DATA _FORCEDOPEN , true ) }
closeAnyDelayed ( ) ; tipController . showTip ( element ) } } else { cancelClose ( ) } } function closeTooltip ( disableDelay ) { if ( myCloseDelay ) { myCloseDelay = session . closeDelayTimeout = clearTimeout ( myCloseDelay ) ; session . delayInProgress = false } cancelTimer ( ) ; session . tipOpenImminent = false ; if ( element . data ( DATA _HASACTIVEHOVER ) ) { element . data ( DATA _FORCEDOPEN , false ) ; if ( ! disableDelay ) { session . delayInProgress = true ; session . closeDelayTimeout = setTimeout ( function closeDelay ( ) { session . closeDelayTimeout = null ; tipController . hideTip ( element ) ; session . delayInProgress = false ; myCloseDelay = null } , options . closeDelay ) ; myCloseDelay = session . closeDelayTimeout } else { tipController . hideTip ( element ) } } } function checkForIntent ( ) { var xDifference = Math . abs ( session . previousX - session . currentX ) , yDifference = Math . abs ( session . previousY - session . currentY ) , totalDifference = xDifference + yDifference ; if ( totalDifference < options . intentSensitivity ) { cancelClose ( ) ; closeAnyDelayed ( ) ; tipController . showTip ( element ) } else { session . previousX = session . currentX ; session . previousY = session . currentY ;
openTooltip ( ) } } function cancelTimer ( stopClose ) { hoverTimer = clearTimeout ( hoverTimer ) ; if ( session . closeDelayTimeout && myCloseDelay === session . closeDelayTimeout || stopClose ) { cancelClose ( ) } } function cancelClose ( ) { session . closeDelayTimeout = clearTimeout ( session . closeDelayTimeout ) ; session . delayInProgress = false } function closeAnyDelayed ( ) { if ( session . delayInProgress && session . activeHover && ! session . activeHover . is ( element ) ) { session . activeHover . data ( DATA _DISPLAYCONTROLLER ) . hide ( true ) } } function repositionTooltip ( ) { tipController . resetPosition ( element ) } this . show = openTooltip ; this . hide = closeTooltip ; this . cancel = cancelTimer ; this . resetPosition = repositionTooltip } function PlacementCalculator ( ) { function computePlacementCoords ( element , placement , tipWidth , tipHeight , offset ) { var placementBase = placement . split ( "-" ) [ 0 ] , coords = new CSSCoordinates , position ; if ( isSvgElement ( element ) ) { position = getSvgPlacement ( element , placementBase ) } else { position = getHtmlPlacement ( element , placementBase ) } switch ( placement ) { case "n" : coords . set ( "left" , position . left - tipWidth / 2
) ; coords . set ( "bottom" , session . windowHeight - position . top + offset ) ; break ; case "e" : coords . set ( "left" , position . left + offset ) ; coords . set ( "top" , position . top - tipHeight / 2 ) ; break ; case "s" : coords . set ( "left" , position . left - tipWidth / 2 ) ; coords . set ( "top" , position . top + offset ) ; break ; case "w" : coords . set ( "top" , position . top - tipHeight / 2 ) ; coords . set ( "right" , session . windowWidth - position . left + offset ) ; break ; case "nw" : coords . set ( "bottom" , session . windowHeight - position . top + offset ) ; coords . set ( "right" , session . windowWidth - position . left - 20 ) ; break ; case "nw-alt" : coords . set ( "left" , position . left ) ; coords . set ( "bottom" , session . windowHeight - position . top + offset ) ; break ; case "ne" : coords . set ( "left" , position . left - 20 ) ; coords . set ( "bottom" , session . windowHeight - position . top + offset ) ; break ; case "ne-alt" : coords . set ( "bottom" , session . windowHeight - position . top + offset ) ; coords . set ( "right" , session . windowWidth - position . left ) ; break ; case "sw" : coords . set ( "top" , position . top + offset ) ; coords . set ( "right" , session . windowWidth - position . left - 20 ) ; break ; case "sw-alt" : coords . set ( "left" ,
position . left ) ; coords . set ( "top" , position . top + offset ) ; break ; case "se" : coords . set ( "left" , position . left - 20 ) ; coords . set ( "top" , position . top + offset ) ; break ; case "se-alt" : coords . set ( "top" , position . top + offset ) ; coords . set ( "right" , session . windowWidth - position . left ) ; break } return coords } function getHtmlPlacement ( element , placement ) { var objectOffset = element . offset ( ) , objectWidth = element . outerWidth ( ) , objectHeight = element . outerHeight ( ) , left , top ; switch ( placement ) { case "n" : left = objectOffset . left + objectWidth / 2 ; top = objectOffset . top ; break ; case "e" : left = objectOffset . left + objectWidth ; top = objectOffset . top + objectHeight / 2 ; break ; case "s" : left = objectOffset . left + objectWidth / 2 ; top = objectOffset . top + objectHeight ; break ; case "w" : left = objectOffset . left ; top = objectOffset . top + objectHeight / 2 ; break ; case "nw" : left = objectOffset . left ; top = objectOffset . top ; break ; case "ne" : left = objectOffset . left + objectWidth ; top = objectOffset . top ; break ; case "sw" : left = objectOffset . left ; top = objectOffset . top + objectHeight ; break ; case "se" : left = objectOffset . left + objectWidth ;
top = objectOffset . top + objectHeight ; break } return { top : top , left : left } } function getSvgPlacement ( element , placement ) { var svgElement = element . closest ( "svg" ) [ 0 ] , domElement = element [ 0 ] , point = svgElement . createSVGPoint ( ) , boundingBox = domElement . getBBox ( ) , matrix = domElement . getScreenCTM ( ) , halfWidth = boundingBox . width / 2 , halfHeight = boundingBox . height / 2 , placements = [ ] , placementKeys = [ "nw" , "n" , "ne" , "e" , "se" , "s" , "sw" , "w" ] , coords , rotation , steps , x ; function pushPlacement ( ) { placements . push ( point . matrixTransform ( matrix ) ) } point . x = boundingBox . x ; point . y = boundingBox . y ; pushPlacement ( ) ; point . x += halfWidth ; pushPlacement ( ) ; point . x += halfWidth ; pushPlacement ( ) ; point . y += halfHeight ; pushPlacement ( ) ; point . y += halfHeight ; pushPlacement ( ) ; point . x -= halfWidth ; pushPlacement ( ) ; point . x -= halfWidth ; pushPlacement ( ) ; point . y -= halfHeight ; pushPlacement ( ) ; if ( placements [ 0 ] . y !== placements [ 1 ] . y || placements [ 0 ] . x !== placements [ 7 ] . x ) { rotation = Math . atan2 ( matrix . b , matrix . a ) * RAD2DEG ; steps = Math . ceil ( ( rotation % 360 - 22.5 ) / 45 ) ; if ( steps < 1 ) { steps += 8 } while ( steps -- ) { placementKeys . push (
placementKeys . shift ( ) ) } } for ( x = 0 ; x < placements . length ; x ++ ) { if ( placementKeys [ x ] === placement ) { coords = placements [ x ] ; break } } return { top : coords . y + session . scrollTop , left : coords . x + session . scrollLeft } } this . compute = computePlacementCoords } function TooltipController ( options ) { var placementCalculator = new PlacementCalculator , tipElement = $ ( "#" + options . popupId ) ; if ( tipElement . length === 0 ) { tipElement = $ ( "<div/>" , { id : options . popupId } ) ; if ( $body . length === 0 ) { $body = $ ( "body" ) } $body . append ( tipElement ) ; session . tooltips = session . tooltips ? session . tooltips . add ( tipElement ) : tipElement } if ( options . followMouse ) { if ( ! tipElement . data ( DATA _HASMOUSEMOVE ) ) { $document . on ( "mousemove" + EVENT _NAMESPACE , positionTipOnCursor ) ; $window . on ( "scroll" + EVENT _NAMESPACE , positionTipOnCursor ) ; tipElement . data ( DATA _HASMOUSEMOVE , true ) } } function beginShowTip ( element ) { element . data ( DATA _HASACTIVEHOVER , true ) ; tipElement . queue ( function queueTipInit ( next ) { showTip ( element ) ; next ( ) } ) } function showTip ( element ) { var tipContent ; if ( ! element . data ( DATA _HASACTIVEHOVER ) ) { return } if (
session . isTipOpen ) { if ( ! session . isClosing ) { hideTip ( session . activeHover ) } tipElement . delay ( 100 ) . queue ( function queueTipAgain ( next ) { showTip ( element ) ; next ( ) } ) ; return } element . trigger ( "powerTipPreRender" ) ; tipContent = getTooltipContent ( element ) ; if ( tipContent ) { tipElement . empty ( ) . append ( tipContent ) } else { return } element . trigger ( "powerTipRender" ) ; session . activeHover = element ; session . isTipOpen = true ; tipElement . data ( DATA _MOUSEONTOTIP , options . mouseOnToPopup ) ; tipElement . addClass ( options . popupClass ) ; if ( ! options . followMouse || element . data ( DATA _FORCEDOPEN ) ) { positionTipOnElement ( element ) ; session . isFixedTipOpen = true } else { positionTipOnCursor ( ) } if ( ! element . data ( DATA _FORCEDOPEN ) && ! options . followMouse ) { $document . on ( "click" + EVENT _NAMESPACE , function documentClick ( event ) { var target = event . target ; if ( target !== element [ 0 ] ) { if ( options . mouseOnToPopup ) { if ( target !== tipElement [ 0 ] && ! $ . contains ( tipElement [ 0 ] , target ) ) { $ . powerTip . hide ( ) } } else { $ . powerTip . hide ( ) } } } ) } if ( options . mouseOnToPopup && ! options . manual ) { tipElement . on ( "mouseenter" + EVENT _NAMESPACE ,
function tipMouseEnter ( ) { if ( session . activeHover ) { session . activeHover . data ( DATA _DISPLAYCONTROLLER ) . cancel ( ) } } ) ; tipElement . on ( "mouseleave" + EVENT _NAMESPACE , function tipMouseLeave ( ) { if ( session . activeHover ) { session . activeHover . data ( DATA _DISPLAYCONTROLLER ) . hide ( ) } } ) } tipElement . fadeIn ( options . fadeInTime , function fadeInCallback ( ) { if ( ! session . desyncTimeout ) { session . desyncTimeout = setInterval ( closeDesyncedTip , 500 ) } element . trigger ( "powerTipOpen" ) } ) } function hideTip ( element ) { session . isClosing = true ; session . isTipOpen = false ; session . desyncTimeout = clearInterval ( session . desyncTimeout ) ; element . data ( DATA _HASACTIVEHOVER , false ) ; element . data ( DATA _FORCEDOPEN , false ) ; $document . off ( "click" + EVENT _NAMESPACE ) ; tipElement . off ( EVENT _NAMESPACE ) ; tipElement . fadeOut ( options . fadeOutTime , function fadeOutCallback ( ) { var coords = new CSSCoordinates ; session . activeHover = null ; session . isClosing = false ; session . isFixedTipOpen = false ; tipElement . removeClass ( ) ; coords . set ( "top" , session . currentY + options . offset ) ; coords . set ( "left" , session . currentX + options . offset ) ;
tipElement . css ( coords ) ; element . trigger ( "powerTipClose" ) } ) } function positionTipOnCursor ( ) { var tipWidth , tipHeight , coords , collisions , collisionCount ; if ( ! session . isFixedTipOpen && ( session . isTipOpen || session . tipOpenImminent && tipElement . data ( DATA _HASMOUSEMOVE ) ) ) { tipWidth = tipElement . outerWidth ( ) ; tipHeight = tipElement . outerHeight ( ) ; coords = new CSSCoordinates ; coords . set ( "top" , session . currentY + options . offset ) ; coords . set ( "left" , session . currentX + options . offset ) ; collisions = getViewportCollisions ( coords , tipWidth , tipHeight ) ; if ( collisions !== Collision . none ) { collisionCount = countFlags ( collisions ) ; if ( collisionCount === 1 ) { if ( collisions === Collision . right ) { coords . set ( "left" , session . scrollLeft + session . windowWidth - tipWidth ) } else if ( collisions === Collision . bottom ) { coords . set ( "top" , session . scrollTop + session . windowHeight - tipHeight ) } } else { coords . set ( "left" , session . currentX - tipWidth - options . offset ) ; coords . set ( "top" , session . currentY - tipHeight - options . offset ) } } tipElement . css ( coords ) } } function positionTipOnElement ( element ) { var priorityList ,
finalPlacement ; if ( options . smartPlacement || options . followMouse && element . data ( DATA _FORCEDOPEN ) ) { priorityList = $ . fn . powerTip . smartPlacementLists [ options . placement ] ; $ . each ( priorityList , function ( idx , pos ) { var collisions = getViewportCollisions ( placeTooltip ( element , pos ) , tipElement . outerWidth ( ) , tipElement . outerHeight ( ) ) ; finalPlacement = pos ; return collisions !== Collision . none } ) } else { placeTooltip ( element , options . placement ) ; finalPlacement = options . placement } tipElement . removeClass ( "w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt" ) ; tipElement . addClass ( finalPlacement ) } function placeTooltip ( element , placement ) { var iterationCount = 0 , tipWidth , tipHeight , coords = new CSSCoordinates ; coords . set ( "top" , 0 ) ; coords . set ( "left" , 0 ) ; tipElement . css ( coords ) ; do { tipWidth = tipElement . outerWidth ( ) ; tipHeight = tipElement . outerHeight ( ) ; coords = placementCalculator . compute ( element , placement , tipWidth , tipHeight , options . offset ) ; tipElement . css ( coords ) } while ( ++ iterationCount <= 5 && ( tipWidth !== tipElement . outerWidth ( ) || tipHeight !== tipElement . outerHeight ( ) ) ) ;
return coords } function closeDesyncedTip ( ) { var isDesynced = false , hasDesyncableCloseEvent = $ . grep ( [ "mouseleave" , "mouseout" , "blur" , "focusout" ] , function ( eventType ) { return $ . inArray ( eventType , options . closeEvents ) !== - 1 } ) . length > 0 ; if ( session . isTipOpen && ! session . isClosing && ! session . delayInProgress && hasDesyncableCloseEvent ) { if ( session . activeHover . data ( DATA _HASACTIVEHOVER ) === false || session . activeHover . is ( ":disabled" ) ) { isDesynced = true } else if ( ! isMouseOver ( session . activeHover ) && ! session . activeHover . is ( ":focus" ) && ! session . activeHover . data ( DATA _FORCEDOPEN ) ) { if ( tipElement . data ( DATA _MOUSEONTOTIP ) ) { if ( ! isMouseOver ( tipElement ) ) { isDesynced = true } } else { isDesynced = true } } if ( isDesynced ) { hideTip ( session . activeHover ) } } } this . showTip = beginShowTip ; this . hideTip = hideTip ; this . resetPosition = positionTipOnElement } function isSvgElement ( element ) { return Boolean ( window . SVGElement && element [ 0 ] instanceof SVGElement ) } function isMouseEvent ( event ) { return Boolean ( event && $ . inArray ( event . type , MOUSE _EVENTS ) > - 1 && typeof event . pageX === "number" ) }
function initTracking ( ) { if ( ! session . mouseTrackingActive ) { session . mouseTrackingActive = true ; getViewportDimensions ( ) ; $ ( getViewportDimensions ) ; $document . on ( "mousemove" + EVENT _NAMESPACE , trackMouse ) ; $window . on ( "resize" + EVENT _NAMESPACE , trackResize ) ; $window . on ( "scroll" + EVENT _NAMESPACE , trackScroll ) } } function getViewportDimensions ( ) { session . scrollLeft = $window . scrollLeft ( ) ; session . scrollTop = $window . scrollTop ( ) ; session . windowWidth = $window . width ( ) ; session . windowHeight = $window . height ( ) } function trackResize ( ) { session . windowWidth = $window . width ( ) ; session . windowHeight = $window . height ( ) } function trackScroll ( ) { var x = $window . scrollLeft ( ) , y = $window . scrollTop ( ) ; if ( x !== session . scrollLeft ) { session . currentX += x - session . scrollLeft ; session . scrollLeft = x } if ( y !== session . scrollTop ) { session . currentY += y - session . scrollTop ; session . scrollTop = y } } function trackMouse ( event ) { session . currentX = event . pageX ; session . currentY = event . pageY } function isMouseOver ( element ) { var elementPosition = element . offset ( ) , elementBox = element [ 0 ] . getBoundingClientRect ( ) ,
elementWidth = elementBox . right - elementBox . left , elementHeight = elementBox . bottom - elementBox . top ; return session . currentX >= elementPosition . left && session . currentX <= elementPosition . left + elementWidth && session . currentY >= elementPosition . top && session . currentY <= elementPosition . top + elementHeight } function getTooltipContent ( element ) { var tipText = element . data ( DATA _POWERTIP ) , tipObject = element . data ( DATA _POWERTIPJQ ) , tipTarget = element . data ( DATA _POWERTIPTARGET ) , targetElement , content ; if ( tipText ) { if ( $ . isFunction ( tipText ) ) { tipText = tipText . call ( element [ 0 ] ) } content = tipText } else if ( tipObject ) { if ( $ . isFunction ( tipObject ) ) { tipObject = tipObject . call ( element [ 0 ] ) } if ( tipObject . length > 0 ) { content = tipObject . clone ( true , true ) } } else if ( tipTarget ) { targetElement = $ ( "#" + tipTarget ) ; if ( targetElement . length > 0 ) { content = targetElement . html ( ) } } return content } function getViewportCollisions ( coords , elementWidth , elementHeight ) { var viewportTop = session . scrollTop , viewportLeft = session . scrollLeft , viewportBottom = viewportTop + session . windowHeight ,
viewportRight = viewportLeft + session . windowWidth , collisions = Collision . none ; if ( coords . top < viewportTop || Math . abs ( coords . bottom - session . windowHeight ) - elementHeight < viewportTop ) { collisions |= Collision . top } if ( coords . top + elementHeight > viewportBottom || Math . abs ( coords . bottom - session . windowHeight ) > viewportBottom ) { collisions |= Collision . bottom } if ( coords . left < viewportLeft || coords . right + elementWidth > viewportRight ) { collisions |= Collision . left } if ( coords . left + elementWidth > viewportRight || coords . right < viewportLeft ) { collisions |= Collision . right } return collisions } function countFlags ( value ) { var count = 0 ; while ( value ) { value &= value - 1 ; count ++ } return count } return $ . powerTip } ) ;
/ * !
2020-07-05 03:37:29 +00:00
* jQuery UI Touch Punch 0.2 . 3
*
* Copyright 2011 – 2014 , Dave Furfero
* Dual licensed under the MIT or GPL Version 2 licenses .
*
* Depends :
* jquery . ui . widget . js
* jquery . ui . mouse . js
2024-10-19 21:12:30 +00:00
* / ! f u n c t i o n ( a ) { f u n c t i o n f ( a , b ) { i f ( ! ( a . o r i g i n a l E v e n t . t o u c h e s . l e n g t h > 1 ) ) { a . p r e v e n t D e f a u l t ( ) ; v a r c = a . o r i g i n a l E v e n t . c h a n g e d T o u c h e s [ 0 ] , d = d o c u m e n t . c r e a t e E v e n t ( " M o u s e E v e n t s " ) ; d . i n i t M o u s e E v e n t ( b , ! 0 , ! 0 , w i n d o w , 1 , c . s c r e e n X , c . s c r e e n Y , c . c l i e n t X , c . c l i e n t Y , ! 1 , ! 1 , ! 1 , ! 1 , 0 , n u l l ) , a . t a r g e t . d i s p a t c h E v e n t ( d ) } } i f ( a . s u p p o r t . t o u c h = " o n t o u c h e n d " i n d o c u m e n t , a . s u p p o r t . t o u c h ) { v a r e , b = a . u i . m o u s e . p r o t o t y p e , c = b . _ m o u s e I n i t , d = b . _ m o u s e D e s t r o y ; b . _ t o u c h S t a r t = f u n c t i o n ( a ) { v a r b = t h i s ; ! e & & b . _ m o u s e C a p t u r e ( a . o r i g i n a l E v e n t . c h a n g e d T o u c h e s [ 0 ] ) & & ( e = ! 0 , b . _ t o u c h M o v e d = ! 1 , f ( a , " m o u s e o v e r " ) , f ( a , " m o u s e m o v e " ) , f ( a , " m o u s e d o w n " ) ) } , b . _ t o u c h M o v e = f u n c t i o n ( a ) { e & & ( t h i s . _ t o u c h M o v e d = ! 0 , f ( a , " m o u s e m o v e " ) ) } , b . _ t o u c h E n d = f u n c t i o n ( a ) { e & & ( f ( a , " m o u s e u p " ) , f ( a , " m o u s e o u t " ) , t h i s . _ t o u c h M o v e d | | f ( a , " c l i c k " ) , e = ! 1 ) } , b . _ m o u s e I n i t = f u n c t i o n ( ) { v a r b = t h i s ; b . e l e m e n t . b i n d ( { t o u c h s t a r t : a . p r o x y ( b , " _ t o u c h S t a r t " ) , t o u c h m o v e : a . p r o x y ( b , " _ t o u c h M o v e " ) , t o u c h e n d : a . p r o x y ( b , " _ t o u c h E n d " ) } ) , c . c a l l ( b ) } , b . _ m o u s e D e s t r o y = f u n c t i o n ( ) { v a r b = t h i s ; b . e l e m e n t . u n b i n d ( { t o u c h s t a r t : a . p r o x y ( b , " _ t o u c h S t a r t " ) , t o u c h m o v e : a . p r o x y ( b ,
"_touchMove" ) , touchend : a . proxy ( b , "_touchEnd" ) } ) , d . call ( b ) } } } ( jQuery ) ;
/ * ! S m a r t M e n u s j Q u e r y P l u g i n - v 1 . 1 . 0 - S e p t e m b e r 1 7 , 2 0 1 7
2020-07-05 03:37:29 +00:00
* http : //www.smartmenus.org/
2024-10-19 21:12:30 +00:00
* Copyright Vasil Dinkov , Vadikom Web Ltd . http : //vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),
mouseDetectionEnabled = ! 0 } } function isTouchEvent ( t ) { return ! /^(4|mouse)$/ . test ( t . pointerType ) } function getEventsNS ( t , e ) { e || ( e = "" ) ; var i = { } ; for ( var s in t ) i [ s . split ( " " ) . join ( e + " " ) + e ] = t [ s ] ; return i } var menuTrees = [ ] , mouse = ! 1 , touchEvents = "ontouchstart" in window , mouseDetectionEnabled = ! 1 , requestAnimationFrame = window . requestAnimationFrame || function ( t ) { return setTimeout ( t , 1e3 / 60 ) } , cancelAnimationFrame = window . cancelAnimationFrame || function ( t ) { clearTimeout ( t ) } , canAnimate = ! ! $ . fn . animate ; return $ . SmartMenus = function ( t , e ) { this . $root = $ ( t ) , this . opts = e , this . rootId = "" , this . accessIdPrefix = "" , this . $subArrow = null , this . activatedItems = [ ] , this . visibleSubMenus = [ ] , this . showTimeout = 0 , this . hideTimeout = 0 , this . scrollTimeout = 0 , this . clickActivated = ! 1 , this . focusActivated = ! 1 , this . zIndexInc = 0 , this . idInc = 0 , this . $firstLink = null , this . $firstSub = null , this . disabled = ! 1 , this . $disableOverlay = null , this . $touchScrollingSub = null , this . cssTransforms3d = "perspective" in t . style || "webkitPerspective" in t . style , this . wasCollapsible = ! 1 , this . init ( ) } , $ . extend (
$ . SmartMenus , { hideAll : function ( ) { $ . each ( menuTrees , function ( ) { this . menuHideAll ( ) } ) } , destroy : function ( ) { for ( ; menuTrees . length ; ) menuTrees [ 0 ] . destroy ( ) ; initMouseDetection ( ! 0 ) } , prototype : { init : function ( t ) { var e = this ; if ( ! t ) { menuTrees . push ( this ) , this . rootId = ( ( new Date ) . getTime ( ) + Math . random ( ) + "" ) . replace ( /\D/g , "" ) , this . accessIdPrefix = "sm-" + this . rootId + "-" , this . $root . hasClass ( "sm-rtl" ) && ( this . opts . rightToLeftSubMenus = ! 0 ) ; var i = ".smartmenus" ; this . $root . data ( "smartmenus" , this ) . attr ( "data-smartmenus-id" , this . rootId ) . dataSM ( "level" , 1 ) . on ( getEventsNS ( { "mouseover focusin" : $ . proxy ( this . rootOver , this ) , "mouseout focusout" : $ . proxy ( this . rootOut , this ) , keydown : $ . proxy ( this . rootKeyDown , this ) } , i ) ) . on ( getEventsNS ( { mouseenter : $ . proxy ( this . itemEnter , this ) , mouseleave : $ . proxy ( this . itemLeave , this ) , mousedown : $ . proxy ( this . itemDown , this ) , focus : $ . proxy ( this . itemFocus , this ) , blur : $ . proxy ( this . itemBlur , this ) , click : $ . proxy ( this . itemClick , this ) } , i ) , "a" ) , i += this . rootId , this . opts . hideOnClick && $ ( document ) . on ( getEventsNS ( { touchstart : $ . proxy (
this . docTouchStart , this ) , touchmove : $ . proxy ( this . docTouchMove , this ) , touchend : $ . proxy ( this . docTouchEnd , this ) , click : $ . proxy ( this . docClick , this ) } , i ) ) , $ ( window ) . on ( getEventsNS ( { "resize orientationchange" : $ . proxy ( this . winResize , this ) } , i ) ) , this . opts . subIndicators && ( this . $subArrow = $ ( "<span/>" ) . addClass ( "sub-arrow" ) , this . opts . subIndicatorsText && this . $subArrow . html ( this . opts . subIndicatorsText ) ) , initMouseDetection ( ) } if ( this . $firstSub = this . $root . find ( "ul" ) . each ( function ( ) { e . menuInit ( $ ( this ) ) } ) . eq ( 0 ) , this . $firstLink = this . $root . find ( "a" ) . eq ( 0 ) , this . opts . markCurrentItem ) { var s = /(index|default)\.[^#\?\/]*/i , o = /#.*/ , a = window . location . href . replace ( s , "" ) , n = a . replace ( o , "" ) ; this . $root . find ( "a" ) . each ( function ( ) { var t = this . href . replace ( s , "" ) , i = $ ( this ) ; ( t == a || t == n ) && ( i . addClass ( "current" ) , e . opts . markCurrentTree && i . parentsUntil ( "[data-smartmenus-id]" , "ul" ) . each ( function ( ) { $ ( this ) . dataSM ( "parent-a" ) . addClass ( "current" ) } ) ) } ) } this . wasCollapsible = this . isCollapsible ( ) } , destroy : function ( t ) { if ( ! t ) { var e = ".smartmenus" ; this . $root . removeData (
"smartmenus" ) . removeAttr ( "data-smartmenus-id" ) . removeDataSM ( "level" ) . off ( e ) , e += this . rootId , $ ( document ) . off ( e ) , $ ( window ) . off ( e ) , this . opts . subIndicators && ( this . $subArrow = null ) } this . menuHideAll ( ) ; var i = this ; this . $root . find ( "ul" ) . each ( function ( ) { var t = $ ( this ) ; t . dataSM ( "scroll-arrows" ) && t . dataSM ( "scroll-arrows" ) . remove ( ) , t . dataSM ( "shown-before" ) && ( ( i . opts . subMenusMinWidth || i . opts . subMenusMaxWidth ) && t . css ( { width : "" , minWidth : "" , maxWidth : "" } ) . removeClass ( "sm-nowrap" ) , t . dataSM ( "scroll-arrows" ) && t . dataSM ( "scroll-arrows" ) . remove ( ) , t . css ( { zIndex : "" , top : "" , left : "" , marginLeft : "" , marginTop : "" , display : "" } ) ) , 0 == ( t . attr ( "id" ) || "" ) . indexOf ( i . accessIdPrefix ) && t . removeAttr ( "id" ) } ) . removeDataSM ( "in-mega" ) . removeDataSM ( "shown-before" ) . removeDataSM ( "scroll-arrows" ) . removeDataSM ( "parent-a" ) . removeDataSM ( "level" ) . removeDataSM ( "beforefirstshowfired" ) . removeAttr ( "role" ) . removeAttr ( "aria-hidden" ) . removeAttr ( "aria-labelledby" ) . removeAttr ( "aria-expanded" ) , this . $root . find ( "a.has-submenu" ) . each ( function ( ) { var t = $ ( this ) ; 0 == t . attr ( "id"
) . indexOf ( i . accessIdPrefix ) && t . removeAttr ( "id" ) } ) . removeClass ( "has-submenu" ) . removeDataSM ( "sub" ) . removeAttr ( "aria-haspopup" ) . removeAttr ( "aria-controls" ) . removeAttr ( "aria-expanded" ) . closest ( "li" ) . removeDataSM ( "sub" ) , this . opts . subIndicators && this . $root . find ( "span.sub-arrow" ) . remove ( ) , this . opts . markCurrentItem && this . $root . find ( "a.current" ) . removeClass ( "current" ) , t || ( this . $root = null , this . $firstLink = null , this . $firstSub = null , this . $disableOverlay && ( this . $disableOverlay . remove ( ) , this . $disableOverlay = null ) , menuTrees . splice ( $ . inArray ( this , menuTrees ) , 1 ) ) } , disable : function ( t ) { if ( ! this . disabled ) { if ( this . menuHideAll ( ) , ! t && ! this . opts . isPopup && this . $root . is ( ":visible" ) ) { var e = this . $root . offset ( ) ; this . $disableOverlay = $ ( '<div class="sm-jquery-disable-overlay"/>' ) . css ( { position : "absolute" , top : e . top , left : e . left , width : this . $root . outerWidth ( ) , height : this . $root . outerHeight ( ) , zIndex : this . getStartZIndex ( ! 0 ) , opacity : 0 } ) . appendTo ( document . body ) } this . disabled = ! 0 } } , docClick : function ( t ) { return this . $touchScrollingSub ? (
this . $touchScrollingSub = null , void 0 ) : ( ( this . visibleSubMenus . length && ! $ . contains ( this . $root [ 0 ] , t . target ) || $ ( t . target ) . closest ( "a" ) . length ) && this . menuHideAll ( ) , void 0 ) } , docTouchEnd : function ( ) { if ( this . lastTouch ) { if ( ! ( ! this . visibleSubMenus . length || void 0 !== this . lastTouch . x2 && this . lastTouch . x1 != this . lastTouch . x2 || void 0 !== this . lastTouch . y2 && this . lastTouch . y1 != this . lastTouch . y2 || this . lastTouch . target && $ . contains ( this . $root [ 0 ] , this . lastTouch . target ) ) ) { this . hideTimeout && ( clearTimeout ( this . hideTimeout ) , this . hideTimeout = 0 ) ; var t = this ; this . hideTimeout = setTimeout ( function ( ) { t . menuHideAll ( ) } , 350 ) } this . lastTouch = null } } , docTouchMove : function ( t ) { if ( this . lastTouch ) { var e = t . originalEvent . touches [ 0 ] ; this . lastTouch . x2 = e . pageX , this . lastTouch . y2 = e . pageY } } , docTouchStart : function ( t ) { var e = t . originalEvent . touches [ 0 ] ; this . lastTouch = { x1 : e . pageX , y1 : e . pageY , target : e . target } } , enable : function ( ) { this . disabled && ( this . $disableOverlay && ( this . $disableOverlay . remove ( ) , this . $disableOverlay = null ) , this . disabled = ! 1 ) } , getClosestMenu : function ( t ) { for (
var e = $ ( t ) . closest ( "ul" ) ; e . dataSM ( "in-mega" ) ; ) e = e . parent ( ) . closest ( "ul" ) ; return e [ 0 ] || null } , getHeight : function ( t ) { return this . getOffset ( t , ! 0 ) } , getOffset : function ( t , e ) { var i ; "none" == t . css ( "display" ) && ( i = { position : t [ 0 ] . style . position , visibility : t [ 0 ] . style . visibility } , t . css ( { position : "absolute" , visibility : "hidden" } ) . show ( ) ) ; var s = t [ 0 ] . getBoundingClientRect && t [ 0 ] . getBoundingClientRect ( ) , o = s && ( e ? s . height || s . bottom - s . top : s . width || s . right - s . left ) ; return o || 0 === o || ( o = e ? t [ 0 ] . offsetHeight : t [ 0 ] . offsetWidth ) , i && t . hide ( ) . css ( i ) , o } , getStartZIndex : function ( t ) { var e = parseInt ( this [ t ? "$root" : "$firstSub" ] . css ( "z-index" ) ) ; return ! t && isNaN ( e ) && ( e = parseInt ( this . $root . css ( "z-index" ) ) ) , isNaN ( e ) ? 1 : e } , getTouchPoint : function ( t ) { return t . touches && t . touches [ 0 ] || t . changedTouches && t . changedTouches [ 0 ] || t } , getViewport : function ( t ) { var e = t ? "Height" : "Width" , i = document . documentElement [ "client" + e ] , s = window [ "inner" + e ] ; return s && ( i = Math . min ( i , s ) ) , i } , getViewportHeight : function ( ) { return this . getViewport ( ! 0 ) } , getViewportWidth : function ( ) {
return this . getViewport ( ) } , getWidth : function ( t ) { return this . getOffset ( t ) } , handleEvents : function ( ) { return ! this . disabled && this . isCSSOn ( ) } , handleItemEvents : function ( t ) { return this . handleEvents ( ) && ! this . isLinkInMegaMenu ( t ) } , isCollapsible : function ( ) { return "static" == this . $firstSub . css ( "position" ) } , isCSSOn : function ( ) { return "inline" != this . $firstLink . css ( "display" ) } , isFixed : function ( ) { var t = "fixed" == this . $root . css ( "position" ) ; return t || this . $root . parentsUntil ( "body" ) . each ( function ( ) { return "fixed" == $ ( this ) . css ( "position" ) ? ( t = ! 0 , ! 1 ) : void 0 } ) , t } , isLinkInMegaMenu : function ( t ) { return $ ( this . getClosestMenu ( t [ 0 ] ) ) . hasClass ( "mega-menu" ) } , isTouchMode : function ( ) { return ! mouse || this . opts . noMouseOver || this . isCollapsible ( ) } , itemActivate : function ( t , e ) { var i = t . closest ( "ul" ) , s = i . dataSM ( "level" ) ; if ( s > 1 && ( ! this . activatedItems [ s - 2 ] || this . activatedItems [ s - 2 ] [ 0 ] != i . dataSM ( "parent-a" ) [ 0 ] ) ) { var o = this ; $ ( i . parentsUntil ( "[data-smartmenus-id]" , "ul" ) . get ( ) . reverse ( ) ) . add ( i ) . each ( function ( ) { o . itemActivate ( $ ( this ) . dataSM ( "parent-a" ) ) } ) } if ( (
! this . isCollapsible ( ) || e ) && this . menuHideSubMenus ( this . activatedItems [ s - 1 ] && this . activatedItems [ s - 1 ] [ 0 ] == t [ 0 ] ? s : s - 1 ) , this . activatedItems [ s - 1 ] = t , this . $root . triggerHandler ( "activate.smapi" , t [ 0 ] ) !== ! 1 ) { var a = t . dataSM ( "sub" ) ; a && ( this . isTouchMode ( ) || ! this . opts . showOnClick || this . clickActivated ) && this . menuShow ( a ) } } , itemBlur : function ( t ) { var e = $ ( t . currentTarget ) ; this . handleItemEvents ( e ) && this . $root . triggerHandler ( "blur.smapi" , e [ 0 ] ) } , itemClick : function ( t ) { var e = $ ( t . currentTarget ) ; if ( this . handleItemEvents ( e ) ) { if ( this . $touchScrollingSub && this . $touchScrollingSub [ 0 ] == e . closest ( "ul" ) [ 0 ] ) return this . $touchScrollingSub = null , t . stopPropagation ( ) , ! 1 ; if ( this . $root . triggerHandler ( "click.smapi" , e [ 0 ] ) === ! 1 ) return ! 1 ; var i = $ ( t . target ) . is ( ".sub-arrow" ) , s = e . dataSM ( "sub" ) , o = s ? 2 == s . dataSM ( "level" ) : ! 1 , a = this . isCollapsible ( ) , n = /toggle$/ . test ( this . opts . collapsibleBehavior ) , r = /link$/ . test ( this . opts . collapsibleBehavior ) , h = /^accordion/ . test ( this . opts . collapsibleBehavior ) ; if ( s && ! s . is ( ":visible" ) ) { if ( ( ! r || ! a || i ) && ( this . opts . showOnClick && o && (
this . clickActivated = ! 0 ) , this . itemActivate ( e , h ) , s . is ( ":visible" ) ) ) return this . focusActivated = ! 0 , ! 1 } else if ( a && ( n || i ) ) return this . itemActivate ( e , h ) , this . menuHide ( s ) , n && ( this . focusActivated = ! 1 ) , ! 1 ; return this . opts . showOnClick && o || e . hasClass ( "disabled" ) || this . $root . triggerHandler ( "select.smapi" , e [ 0 ] ) === ! 1 ? ! 1 : void 0 } } , itemDown : function ( t ) { var e = $ ( t . currentTarget ) ; this . handleItemEvents ( e ) && e . dataSM ( "mousedown" , ! 0 ) } , itemEnter : function ( t ) { var e = $ ( t . currentTarget ) ; if ( this . handleItemEvents ( e ) ) { if ( ! this . isTouchMode ( ) ) { this . showTimeout && ( clearTimeout ( this . showTimeout ) , this . showTimeout = 0 ) ; var i = this ; this . showTimeout = setTimeout ( function ( ) { i . itemActivate ( e ) } , this . opts . showOnClick && 1 == e . closest ( "ul" ) . dataSM ( "level" ) ? 1 : this . opts . showTimeout ) } this . $root . triggerHandler ( "mouseenter.smapi" , e [ 0 ] ) } } , itemFocus : function ( t ) { var e = $ ( t . currentTarget ) ; this . handleItemEvents ( e ) && ( ! this . focusActivated || this . isTouchMode ( ) && e . dataSM ( "mousedown" ) || this . activatedItems . length && this . activatedItems [ this . activatedItems . length - 1 ] [ 0 ] == e [ 0
] || this . itemActivate ( e , ! 0 ) , this . $root . triggerHandler ( "focus.smapi" , e [ 0 ] ) ) } , itemLeave : function ( t ) { var e = $ ( t . currentTarget ) ; this . handleItemEvents ( e ) && ( this . isTouchMode ( ) || ( e [ 0 ] . blur ( ) , this . showTimeout && ( clearTimeout ( this . showTimeout ) , this . showTimeout = 0 ) ) , e . removeDataSM ( "mousedown" ) , this . $root . triggerHandler ( "mouseleave.smapi" , e [ 0 ] ) ) } , menuHide : function ( t ) { if ( this . $root . triggerHandler ( "beforehide.smapi" , t [ 0 ] ) !== ! 1 && ( canAnimate && t . stop ( ! 0 , ! 0 ) , "none" != t . css ( "display" ) ) ) { var e = function ( ) { t . css ( "z-index" , "" ) } ; this . isCollapsible ( ) ? canAnimate && this . opts . collapsibleHideFunction ? this . opts . collapsibleHideFunction . call ( this , t , e ) : t . hide ( this . opts . collapsibleHideDuration , e ) : canAnimate && this . opts . hideFunction ? this . opts . hideFunction . call ( this , t , e ) : t . hide ( this . opts . hideDuration , e ) , t . dataSM ( "scroll" ) && ( this . menuScrollStop ( t ) , t . css ( { "touch-action" : "" , "-ms-touch-action" : "" , "-webkit-transform" : "" , transform : "" } ) . off ( ".smartmenus_scroll" ) . removeDataSM ( "scroll" ) . dataSM ( "scroll-arrows" ) . hide ( ) ) , t . dataSM ( "parent-a" ) . removeClass (
"highlighted" ) . attr ( "aria-expanded" , "false" ) , t . attr ( { "aria-expanded" : "false" , "aria-hidden" : "true" } ) ; var i = t . dataSM ( "level" ) ; this . activatedItems . splice ( i - 1 , 1 ) , this . visibleSubMenus . splice ( $ . inArray ( t , this . visibleSubMenus ) , 1 ) , this . $root . triggerHandler ( "hide.smapi" , t [ 0 ] ) } } , menuHideAll : function ( ) { this . showTimeout && ( clearTimeout ( this . showTimeout ) , this . showTimeout = 0 ) ; for ( var t = this . opts . isPopup ? 1 : 0 , e = this . visibleSubMenus . length - 1 ; e >= t ; e -- ) this . menuHide ( this . visibleSubMenus [ e ] ) ; this . opts . isPopup && ( canAnimate && this . $root . stop ( ! 0 , ! 0 ) , this . $root . is ( ":visible" ) && ( canAnimate && this . opts . hideFunction ? this . opts . hideFunction . call ( this , this . $root ) : this . $root . hide ( this . opts . hideDuration ) ) ) , this . activatedItems = [ ] , this . visibleSubMenus = [ ] , this . clickActivated = ! 1 , this . focusActivated = ! 1 , this . zIndexInc = 0 , this . $root . triggerHandler ( "hideAll.smapi" ) } , menuHideSubMenus : function ( t ) { for ( var e = this . activatedItems . length - 1 ; e >= t ; e -- ) { var i = this . activatedItems [ e ] . dataSM ( "sub" ) ; i && this . menuHide ( i ) } } , menuInit : function ( t ) { if ( ! t . dataSM ( "in-mega" ) ) {
t . hasClass ( "mega-menu" ) && t . find ( "ul" ) . dataSM ( "in-mega" , ! 0 ) ; for ( var e = 2 , i = t [ 0 ] ; ( i = i . parentNode . parentNode ) != this . $root [ 0 ] ; ) e ++ ; var s = t . prevAll ( "a" ) . eq ( - 1 ) ; s . length || ( s = t . prevAll ( ) . find ( "a" ) . eq ( - 1 ) ) , s . addClass ( "has-submenu" ) . dataSM ( "sub" , t ) , t . dataSM ( "parent-a" , s ) . dataSM ( "level" , e ) . parent ( ) . dataSM ( "sub" , t ) ; var o = s . attr ( "id" ) || this . accessIdPrefix + ++ this . idInc , a = t . attr ( "id" ) || this . accessIdPrefix + ++ this . idInc ; s . attr ( { id : o , "aria-haspopup" : "true" , "aria-controls" : a , "aria-expanded" : "false" } ) , t . attr ( { id : a , role : "group" , "aria-hidden" : "true" , "aria-labelledby" : o , "aria-expanded" : "false" } ) , this . opts . subIndicators && s [ this . opts . subIndicatorsPos ] ( this . $subArrow . clone ( ) ) } } , menuPosition : function ( t ) { var e , i , s = t . dataSM ( "parent-a" ) , o = s . closest ( "li" ) , a = o . parent ( ) , n = t . dataSM ( "level" ) , r = this . getWidth ( t ) , h = this . getHeight ( t ) , u = s . offset ( ) , l = u . left , c = u . top , d = this . getWidth ( s ) , m = this . getHeight ( s ) , p = $ ( window ) , f = p . scrollLeft ( ) , v = p . scrollTop ( ) , b = this . getViewportWidth ( ) , S = this . getViewportHeight ( ) , g = a . parent ( ) . is ( "[data-sm-horizontal-sub]"
) || 2 == n && ! a . hasClass ( "sm-vertical" ) , M = this . opts . rightToLeftSubMenus && ! o . is ( "[data-sm-reverse]" ) || ! this . opts . rightToLeftSubMenus && o . is ( "[data-sm-reverse]" ) , w = 2 == n ? this . opts . mainMenuSubOffsetX : this . opts . subMenusSubOffsetX , T = 2 == n ? this . opts . mainMenuSubOffsetY : this . opts . subMenusSubOffsetY ; if ( g ? ( e = M ? d - r - w : w , i = this . opts . bottomToTopSubMenus ? - h - T : m + T ) : ( e = M ? w - r : d - w , i = this . opts . bottomToTopSubMenus ? m - T - h : T ) , this . opts . keepInViewport ) { var y = l + e , I = c + i ; if ( M && f > y ? e = g ? f - y + e : d - w : ! M && y + r > f + b && ( e = g ? f + b - r - y + e : w - r ) , g || ( S > h && I + h > v + S ? i += v + S - h - I : ( h >= S || v > I ) && ( i += v - I ) ) , g && ( I + h > v + S + . 49 || v > I ) || ! g && h > S + . 49 ) { var x = this ; t . dataSM ( "scroll-arrows" ) || t . dataSM ( "scroll-arrows" , $ ( [ $ ( '<span class="scroll-up"><span class="scroll-up-arrow"></span></span>' ) [ 0 ] , $ ( '<span class="scroll-down"><span class="scroll-down-arrow"></span></span>' ) [ 0 ] ] ) . on ( { mouseenter : function ( ) { t . dataSM ( "scroll" ) . up = $ ( this ) . hasClass ( "scroll-up" ) , x . menuScroll ( t ) } , mouseleave : function ( e ) { x . menuScrollStop ( t ) , x . menuScrollOut ( t , e ) } , "mousewheel DOMMouseScroll" : function ( t ) {
t . preventDefault ( ) } } ) . insertAfter ( t ) ) ; var A = ".smartmenus_scroll" ; if ( t . dataSM ( "scroll" , { y : this . cssTransforms3d ? 0 : i - m , step : 1 , itemH : m , subH : h , arrowDownH : this . getHeight ( t . dataSM ( "scroll-arrows" ) . eq ( 1 ) ) } ) . on ( getEventsNS ( { mouseover : function ( e ) { x . menuScrollOver ( t , e ) } , mouseout : function ( e ) { x . menuScrollOut ( t , e ) } , "mousewheel DOMMouseScroll" : function ( e ) { x . menuScrollMousewheel ( t , e ) } } , A ) ) . dataSM ( "scroll-arrows" ) . css ( { top : "auto" , left : "0" , marginLeft : e + ( parseInt ( t . css ( "border-left-width" ) ) || 0 ) , width : r - ( parseInt ( t . css ( "border-left-width" ) ) || 0 ) - ( parseInt ( t . css ( "border-right-width" ) ) || 0 ) , zIndex : t . css ( "z-index" ) } ) . eq ( g && this . opts . bottomToTopSubMenus ? 0 : 1 ) . show ( ) , this . isFixed ( ) ) { var C = { } ; C [ touchEvents ? "touchstart touchmove touchend" : "pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp" ] = function ( e ) { x . menuScrollTouch ( t , e ) } , t . css ( { "touch-action" : "none" , "-ms-touch-action" : "none" } ) . on ( getEventsNS ( C , A ) ) } } } t . css ( { top : "auto" , left : "0" , marginLeft : e , marginTop : i - m } ) } , menuScroll : function ( t , e , i ) { var s , o = t . dataSM ( "scroll" ) ,
a = t . dataSM ( "scroll-arrows" ) , n = o . up ? o . upEnd : o . downEnd ; if ( ! e && o . momentum ) { if ( o . momentum *= . 92 , s = o . momentum , . 5 > s ) return this . menuScrollStop ( t ) , void 0 } else s = i || ( e || ! this . opts . scrollAccelerate ? this . opts . scrollStep : Math . floor ( o . step ) ) ; var r = t . dataSM ( "level" ) ; if ( this . activatedItems [ r - 1 ] && this . activatedItems [ r - 1 ] . dataSM ( "sub" ) && this . activatedItems [ r - 1 ] . dataSM ( "sub" ) . is ( ":visible" ) && this . menuHideSubMenus ( r - 1 ) , o . y = o . up && o . y >= n || ! o . up && n >= o . y ? o . y : Math . abs ( n - o . y ) > s ? o . y + ( o . up ? s : - s ) : n , t . css ( this . cssTransforms3d ? { "-webkit-transform" : "translate3d(0, " + o . y + "px, 0)" , transform : "translate3d(0, " + o . y + "px, 0)" } : { marginTop : o . y } ) , mouse && ( o . up && o . y > o . downEnd || ! o . up && o . y < o . upEnd ) && a . eq ( o . up ? 1 : 0 ) . show ( ) , o . y == n ) mouse && a . eq ( o . up ? 0 : 1 ) . hide ( ) , this . menuScrollStop ( t ) ; else if ( ! e ) { this . opts . scrollAccelerate && o . step < this . opts . scrollStep && ( o . step += . 2 ) ; var h = this ; this . scrollTimeout = requestAnimationFrame ( function ( ) { h . menuScroll ( t ) } ) } } , menuScrollMousewheel : function ( t , e ) { if ( this . getClosestMenu ( e . target ) == t [ 0 ] ) { e = e . originalEvent ; var i = (
e . wheelDelta || - e . detail ) > 0 ; t . dataSM ( "scroll-arrows" ) . eq ( i ? 0 : 1 ) . is ( ":visible" ) && ( t . dataSM ( "scroll" ) . up = i , this . menuScroll ( t , ! 0 ) ) } e . preventDefault ( ) } , menuScrollOut : function ( t , e ) { mouse && ( /^scroll-(up|down)/ . test ( ( e . relatedTarget || "" ) . className ) || ( t [ 0 ] == e . relatedTarget || $ . contains ( t [ 0 ] , e . relatedTarget ) ) && this . getClosestMenu ( e . relatedTarget ) == t [ 0 ] || t . dataSM ( "scroll-arrows" ) . css ( "visibility" , "hidden" ) ) } , menuScrollOver : function ( t , e ) { if ( mouse && ! /^scroll-(up|down)/ . test ( e . target . className ) && this . getClosestMenu ( e . target ) == t [ 0 ] ) { this . menuScrollRefreshData ( t ) ; var i = t . dataSM ( "scroll" ) , s = $ ( window ) . scrollTop ( ) - t . dataSM ( "parent-a" ) . offset ( ) . top - i . itemH ; t . dataSM ( "scroll-arrows" ) . eq ( 0 ) . css ( "margin-top" , s ) . end ( ) . eq ( 1 ) . css ( "margin-top" , s + this . getViewportHeight ( ) - i . arrowDownH ) . end ( ) . css ( "visibility" , "visible" ) } } , menuScrollRefreshData : function ( t ) { var e = t . dataSM ( "scroll" ) , i = $ ( window ) . scrollTop ( ) - t . dataSM ( "parent-a" ) . offset ( ) . top - e . itemH ; this . cssTransforms3d && ( i = - ( parseFloat ( t . css ( "margin-top" ) ) - i ) ) , $ . extend ( e , { upEnd : i ,
downEnd : i + this . getViewportHeight ( ) - e . subH } ) } , menuScrollStop : function ( t ) { return this . scrollTimeout ? ( cancelAnimationFrame ( this . scrollTimeout ) , this . scrollTimeout = 0 , t . dataSM ( "scroll" ) . step = 1 , ! 0 ) : void 0 } , menuScrollTouch : function ( t , e ) { if ( e = e . originalEvent , isTouchEvent ( e ) ) { var i = this . getTouchPoint ( e ) ; if ( this . getClosestMenu ( i . target ) == t [ 0 ] ) { var s = t . dataSM ( "scroll" ) ; if ( /(start|down)$/i . test ( e . type ) ) this . menuScrollStop ( t ) ? ( e . preventDefault ( ) , this . $touchScrollingSub = t ) : this . $touchScrollingSub = null , this . menuScrollRefreshData ( t ) , $ . extend ( s , { touchStartY : i . pageY , touchStartTime : e . timeStamp } ) ; else if ( /move$/i . test ( e . type ) ) { var o = void 0 !== s . touchY ? s . touchY : s . touchStartY ; if ( void 0 !== o && o != i . pageY ) { this . $touchScrollingSub = t ; var a = i . pageY > o ; void 0 !== s . up && s . up != a && $ . extend ( s , { touchStartY : i . pageY , touchStartTime : e . timeStamp } ) , $ . extend ( s , { up : a , touchY : i . pageY } ) , this . menuScroll ( t , ! 0 , Math . abs ( i . pageY - o ) ) } e . preventDefault ( ) } else void 0 !== s . touchY && ( ( s . momentum = 15 * Math . pow ( Math . abs ( i . pageY - s . touchStartY ) / ( e . timeStamp - s . touchStartTime ) , 2 )
) && ( this . menuScrollStop ( t ) , this . menuScroll ( t ) , e . preventDefault ( ) ) , delete s . touchY ) } } } , menuShow : function ( t ) { if ( ( t . dataSM ( "beforefirstshowfired" ) || ( t . dataSM ( "beforefirstshowfired" , ! 0 ) , this . $root . triggerHandler ( "beforefirstshow.smapi" , t [ 0 ] ) !== ! 1 ) ) && this . $root . triggerHandler ( "beforeshow.smapi" , t [ 0 ] ) !== ! 1 && ( t . dataSM ( "shown-before" , ! 0 ) , canAnimate && t . stop ( ! 0 , ! 0 ) , ! t . is ( ":visible" ) ) ) { var e = t . dataSM ( "parent-a" ) , i = this . isCollapsible ( ) ; if ( ( this . opts . keepHighlighted || i ) && e . addClass ( "highlighted" ) , i ) t . removeClass ( "sm-nowrap" ) . css ( { zIndex : "" , width : "auto" , minWidth : "" , maxWidth : "" , top : "" , left : "" , marginLeft : "" , marginTop : "" } ) ; else { if ( t . css ( "z-index" , this . zIndexInc = ( this . zIndexInc || this . getStartZIndex ( ) ) + 1 ) , ( this . opts . subMenusMinWidth || this . opts . subMenusMaxWidth ) && ( t . css ( { width : "auto" , minWidth : "" , maxWidth : "" } ) . addClass ( "sm-nowrap" ) , this . opts . subMenusMinWidth && t . css ( "min-width" , this . opts . subMenusMinWidth ) , this . opts . subMenusMaxWidth ) ) { var s = this . getWidth ( t ) ; t . css ( "max-width" , this . opts . subMenusMaxWidth ) , s > this . getWidth ( t
) && t . removeClass ( "sm-nowrap" ) . css ( "width" , this . opts . subMenusMaxWidth ) } this . menuPosition ( t ) } var o = function ( ) { t . css ( "overflow" , "" ) } ; i ? canAnimate && this . opts . collapsibleShowFunction ? this . opts . collapsibleShowFunction . call ( this , t , o ) : t . show ( this . opts . collapsibleShowDuration , o ) : canAnimate && this . opts . showFunction ? this . opts . showFunction . call ( this , t , o ) : t . show ( this . opts . showDuration , o ) , e . attr ( "aria-expanded" , "true" ) , t . attr ( { "aria-expanded" : "true" , "aria-hidden" : "false" } ) , this . visibleSubMenus . push ( t ) , this . $root . triggerHandler ( "show.smapi" , t [ 0 ] ) } } , popupHide : function ( t ) { this . hideTimeout && ( clearTimeout ( this . hideTimeout ) , this . hideTimeout = 0 ) ; var e = this ; this . hideTimeout = setTimeout ( function ( ) { e . menuHideAll ( ) } , t ? 1 : this . opts . hideTimeout ) } , popupShow : function ( t , e ) { if ( ! this . opts . isPopup ) return alert ( 'SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.' ) , void 0 ; if ( this . hideTimeout && ( clearTimeout ( this . hideTimeout ) , this . hideTimeout = 0 ) , this . $root . dataSM ( "shown-before" , ! 0 ) ,
canAnimate && this . $root . stop ( ! 0 , ! 0 ) , ! this . $root . is ( ":visible" ) ) { this . $root . css ( { left : t , top : e } ) ; var i = this , s = function ( ) { i . $root . css ( "overflow" , "" ) } ; canAnimate && this . opts . showFunction ? this . opts . showFunction . call ( this , this . $root , s ) : this . $root . show ( this . opts . showDuration , s ) , this . visibleSubMenus [ 0 ] = this . $root } } , refresh : function ( ) { this . destroy ( ! 0 ) , this . init ( ! 0 ) } , rootKeyDown : function ( t ) { if ( this . handleEvents ( ) ) switch ( t . keyCode ) { case 27 : var e = this . activatedItems [ 0 ] ; if ( e ) { this . menuHideAll ( ) , e [ 0 ] . focus ( ) ; var i = e . dataSM ( "sub" ) ; i && this . menuHide ( i ) } break ; case 32 : var s = $ ( t . target ) ; if ( s . is ( "a" ) && this . handleItemEvents ( s ) ) { var i = s . dataSM ( "sub" ) ; i && ! i . is ( ":visible" ) && ( this . itemClick ( { currentTarget : t . target } ) , t . preventDefault ( ) ) } } } , rootOut : function ( t ) { if ( this . handleEvents ( ) && ! this . isTouchMode ( ) && t . target != this . $root [ 0 ] && ( this . hideTimeout && ( clearTimeout ( this . hideTimeout ) , this . hideTimeout = 0 ) , ! this . opts . showOnClick || ! this . opts . hideOnClick ) ) { var e = this ; this . hideTimeout = setTimeout ( function ( ) { e . menuHideAll ( ) } , this . opts . hideTimeout ) } } ,
rootOver : function ( t ) { this . handleEvents ( ) && ! this . isTouchMode ( ) && t . target != this . $root [ 0 ] && this . hideTimeout && ( clearTimeout ( this . hideTimeout ) , this . hideTimeout = 0 ) } , winResize : function ( t ) { if ( this . handleEvents ( ) ) { if ( ! ( "onorientationchange" in window ) || "orientationchange" == t . type ) { var e = this . isCollapsible ( ) ; this . wasCollapsible && e || ( this . activatedItems . length && this . activatedItems [ this . activatedItems . length - 1 ] [ 0 ] . blur ( ) , this . menuHideAll ( ) ) , this . wasCollapsible = e } } else if ( this . $disableOverlay ) { var i = this . $root . offset ( ) ; this . $disableOverlay . css ( { top : i . top , left : i . left , width : this . $root . outerWidth ( ) , height : this . $root . outerHeight ( ) } ) } } } } ) , $ . fn . dataSM = function ( t , e ) { return e ? this . data ( t + "_smartmenus" , e ) : this . data ( t + "_smartmenus" ) } , $ . fn . removeDataSM = function ( t ) { return this . removeData ( t + "_smartmenus" ) } , $ . fn . smartmenus = function ( options ) { if ( "string" == typeof options ) { var args = arguments , method = options ; return Array . prototype . shift . call ( args ) , this . each ( function ( ) { var t = $ ( this ) . data ( "smartmenus" ) ; t && t [ method ] && t [ method ] . apply ( t , args ) } ) }
return this . each ( function ( ) { var dataOpts = $ ( this ) . data ( "sm-options" ) || null ; if ( dataOpts ) try { dataOpts = eval ( "(" + dataOpts + ")" ) } catch ( e ) { dataOpts = null , alert ( 'ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.' ) } new $ . SmartMenus ( this , $ . extend ( { } , $ . fn . smartmenus . defaults , options , dataOpts ) ) } ) } , $ . fn . smartmenus . defaults = { isPopup : ! 1 , mainMenuSubOffsetX : 0 , mainMenuSubOffsetY : 0 , subMenusSubOffsetX : 0 , subMenusSubOffsetY : 0 , subMenusMinWidth : "10em" , subMenusMaxWidth : "20em" , subIndicators : ! 0 , subIndicatorsPos : "append" , subIndicatorsText : "" , scrollStep : 30 , scrollAccelerate : ! 0 , showTimeout : 250 , hideTimeout : 500 , showDuration : 0 , showFunction : null , hideDuration : 0 , hideFunction : function ( t , e ) { t . fadeOut ( 200 , e ) } , collapsibleShowDuration : 0 , collapsibleShowFunction : function ( t , e ) { t . slideDown ( 200 , e ) } , collapsibleHideDuration : 0 , collapsibleHideFunction : function ( t , e ) { t . slideUp ( 200 , e ) } , showOnClick : ! 1 , hideOnClick : ! 0 , noMouseOver : ! 1 , keepInViewport : ! 0 , keepHighlighted : ! 0 , markCurrentItem : ! 1 , markCurrentTree : ! 0 , rightToLeftSubMenus : ! 1 ,
bottomToTopSubMenus : ! 1 , collapsibleBehavior : "default" } , $ } ) ;