function BigInteger ( e , t , n ) { null != e && ( "number" == typeof e ? this . fromNumber ( e , t , n ) : null == t && "string" != typeof e ? this . fromString ( e , 256 ) : this . fromString ( e , t ) ) } function nbi ( ) { return new BigInteger ( null ) } function am1 ( e , t , n , i , a , r ) { for ( ; -- r >= 0 ; ) { var o = t * this [ e ++ ] + n [ i ] + a ; a = Math . floor ( o / 67108864 ) , n [ i ++ ] = 67108863 & o } return a } function am2 ( e , t , n , i , a , r ) { for ( var o = 32767 & t , s = t >> 15 ; -- r >= 0 ; ) { var l = 32767 & this [ e ] , c = this [ e ++ ] >> 15 , d = s * l + c * o ; l = o * l + ( ( 32767 & d ) << 15 ) + n [ i ] + ( 1073741823 & a ) , a = ( l >>> 30 ) + ( d >>> 15 ) + s * c + ( a >>> 30 ) , n [ i ++ ] = 1073741823 & l } return a } function am3 ( e , t , n , i , a , r ) { for ( var o = 16383 & t , s = t >> 14 ; -- r >= 0 ; ) { var l = 16383 & this [ e ] , c = this [ e ++ ] >> 14 , d = s * l + c * o ; l = o * l + ( ( 16383 & d ) << 14 ) + n [ i ] + a , a = ( l >> 28 ) + ( d >> 14 ) + s * c , n [ i ++ ] = 268435455 & l } return a } function int2char ( e ) { return BI _RM . charAt ( e ) } function intAt ( e , t ) { var n = BI _RC [ e . charCodeAt ( t ) ] ; return null == n ? - 1 : n } function bnpCopyTo ( e ) { for ( var t = this . t - 1 ; t >= 0 ; -- t ) e [ t ] = this [ t ] ; e . t = this . t , e . s = this . s } function bnpFromInt ( e ) { this . t = 1 , this . s = e < 0 ? - 1 : 0 , e > 0 ? this [ 0 ] = e : e < - 1 ? this [ 0 ] = e + this . DV : this . t = 0 } function nbv ( e ) { var t = nbi ( ) ; return t . fromInt ( e ) , t } function bnpFromString ( e , t , n ) { var i ; if ( 16 == t ) i = 4 ; else if ( 8 == t ) i = 3 ; else if ( 256 == t ) i = 8 ; else if ( 2 == t ) i = 1 ; else if ( 32 == t ) i = 5 ; else { if ( 4 != t ) return void this . fromRadix ( e , t ) ; i = 2 } this . t = 0 , this . s = 0 ; for ( var a = e . length , r = ! 1 , o = 0 ; -- a >= 0 ; ) { var s = 8 == i ? 255 & e [ a ] : intAt ( e , a ) ; s < 0 ? "-" == e . charAt ( a ) && ( r = ! 0 ) : ( r = ! 1 , 0 == o ? this [ this . t ++ ] = s : o + i > this . DB ? ( this [ this . t - 1 ] |= ( s & ( 1 << this . DB - o ) - 1 ) << o , this [ this . t ++ ] = s >> this . DB - o ) : this [ this . t - 1 ] |= s << o , o += i , o >= this . DB && ( o -= this . DB ) ) } 8 == i && 0 != ( 128 & e [ 0 ] ) && n && ( this . s = - 1 , o > 0 && ( this [ this . t - 1 ] |= ( 1 << this . DB - o ) - 1 << o ) ) , this . clamp ( ) , r && BigInteger . ZERO . subTo ( this , this ) } function bnpClamp ( ) { for ( var e = this . s & this . DM ; this . t > 0 && this [ this . t - 1 ] == e ; ) -- this . t } function bnToString ( e ) { if ( this . s < 0 ) return "-" + this . negate ( ) . toString ( e ) ; var t ; if ( 16 == e ) t = 4 ; else if ( 8 == e ) t = 3 ; else if ( 2 == e ) t = 1 ; else if ( 32 == e ) t = 5 ; else { if ( 4 != e ) return this . toRadix ( e ) ; t = 2 } var n , i = ( 1 << t ) - 1 , a = ! 1 , r = "" , o = this . t , s = this . DB - o * this . DB % t ; if ( o -- > 0 ) for ( s < this . DB && ( n = this [ o ] >> s ) > 0 && ( a = ! 0 , r = int2char ( n ) ) ; o >= 0 ; ) s < t ? ( n = ( this [ o ] & ( 1 << s ) - 1 ) << t - s , n |= this [ -- o ] >> ( s += this . DB - t ) ) : ( n = this [ o ] >> ( s -= t ) & i , s <= 0 && ( s += this . DB , -- o ) ) , n > 0 && ( a = ! 0 ) , a && ( r += int2char ( n ) ) ; return a ? r : "0" } function bnNegate ( ) { var e = nbi ( ) ; return BigInteger . ZERO . subTo ( this , e ) , e } function bnAbs ( ) { return this . s < 0 ? this . negate ( ) : this } function bnCompareTo ( e ) { var t = this . s - e . s ; if ( 0 != t ) return t ; var n = this . t ; if ( t = n - e . t , 0 != t ) return this . s < 0 ? - t : t ; for ( ; -- n >= 0 ; ) if ( 0 != ( t = this [ n ] - e [ n ] ) ) return t ; return 0 } function nbits ( e ) { var t , n = 1 ; return 0 != ( t = e >>> 16 ) && ( e = t , n += 16 ) , 0 != ( t = e >> 8 ) && ( e = t , n += 8 ) , 0 != ( t = e >> 4 ) && ( e = t , n += 4 ) , 0 != ( t = e >> 2 ) && ( e = t , n += 2 ) , 0 != ( t = e >> 1 ) && ( e = t , n += 1 ) , n } function bnBitLength ( ) { return this . t <= 0 ? 0 : this . DB * ( this . t - 1 ) + nbits ( this [ this . t - 1 ] ^ this . s & this . DM ) } function bnpDLShiftTo ( e , t ) { var n ; for ( n = this . t - 1 ; n >= 0 ; -- n ) t [ n + e ] = this [ n ] ; for ( n = e - 1 ; n >= 0 ; -- n ) t [ n ] = 0 ; t . t = this . t + e , t . s = this . s } function bnpDRShiftTo ( e , t ) { for ( var n = e ; n < this . t ; ++ n ) t [ n - e ] = this [ n ] ; t . t = Math . max ( this . t - e , 0 ) , t . s = this . s } function bnpLShiftTo ( e , t ) { var n , i = e % this . DB , a = this . DB - i , r = ( 1 << a ) - 1 , o = Math . floor ( e / this . DB ) , s = this . s << i & this . DM ; for ( n = this . t - 1 ; n >= 0 ; -- n ) t [ n + o + 1 ] = this [ n ] >> a | s , s = ( this [ n ] & r ) << i ; for ( n = o - 1 ; n >= 0 ; -- n ) t [ n ] = 0 ; t [ o ] = s , t . t = this . t + o + 1 , t . s = this . s , t . clamp ( ) } function bnpRShiftTo ( e , t ) { t . s = this . s ; var n = Math . floor ( e / this . DB ) ; if ( n >= this . t ) return void ( t . t = 0 ) ; var i = e % this . DB , a = this . DB - i , r = ( 1 << i ) - 1 ; t [ 0 ] = this [ n ] >> i ; for ( var o = n + 1 ; o < this . t ; ++ o ) t [ o - n - 1 ] |= ( this [ o ] & r ) << a , t [ o - n ] = this [ o ] >> i ; i > 0 && ( t [ this . t - n - 1 ] |= ( this . s & r ) << a ) , t . t = this . t - n , t . clamp ( ) } function bnpSubTo ( e , t ) { for ( var n = 0 , i = 0 , a = Math . min ( e . t , this . t ) ; n < a ; ) i += this [ n ] - e [ n ] , t [ n ++ ] = i & this . DM , i >>= this . DB ; if ( e . t < this . t ) { for ( i -= e . s ; n < this . t ; ) i += this [ n ] , t [ n ++ ] = i & this . DM , i >>= this . DB ; i += this . s } else { for ( i += this . s ; n < e . t ; ) i -= e [ n ] , t [ n ++ ] = i & this . DM , i >>= this . DB ; i -= e . s } t . s = i < 0 ? - 1 : 0 , i < - 1 ? t [ n ++ ] = this . DV + i : i > 0 && ( t [ n ++ ] = i ) , t . t = n , t . clamp ( ) } function bnpMultiplyTo ( e , t ) { var n = this . abs ( ) , i = e . abs ( ) , a = n . t ; for ( t . t = a + i . t ; -- a >= 0 ; ) t [ a ] = 0 ; for ( a = 0 ; a < i . t ; ++ a ) t [ a + n . t ] = n . am ( 0 , i [ a ] , t , a , 0 , n . t ) ; t . s = 0 , t . clamp ( ) , this . s != e . s && BigInteger . ZERO . subTo ( t , t ) } function bnpSquareTo ( e ) { for ( var t = this . abs ( ) , n = e . t = 2 * t . t ; -- n >= 0 ; ) e [ n ] = 0 ; for ( n = 0 ; n < t . t - 1 ; ++ n ) { var i = t .
return ! 1 } function cancelEvent ( e ) { return e = e || window . event , e && ( e = e . originalEvent || e , e . stopPropagation && e . stopPropagation ( ) , e . preventDefault && e . preventDefault ( ) , e . returnValue = ! 1 , e . cancelBubble = ! 0 ) , ! 1 } function hasOnclick ( e ) { if ( e . onclick || e . getAttribute ( "ng-click" ) ) return ! 0 ; var t = $ . _data ( e , "events" ) ; return ! ( ! t || ! t . click && ! t . mousedown ) } function getScrollWidth ( ) { var e = $ ( "<div>" ) . css ( { position : "absolute" , width : 100 , height : 100 , overflow : "scroll" , top : - 9999 } ) . appendTo ( $ ( document . body ) ) , t = e [ 0 ] . offsetWidth - e [ 0 ] . clientWidth ; return e . remove ( ) , t } function onCtrlEnter ( e , t ) { $ ( e ) . on ( "keydown" , function ( e ) { if ( 13 == e . keyCode && ( e . ctrlKey || e . metaKey ) ) return t ( ) , cancelEvent ( e ) } ) } function setFieldSelection ( e , t , n ) { e = $ ( e ) [ 0 ] ; try { if ( e . focus ( ) , void 0 !== t && t !== ! 1 || ( t = e . value . length ) , void 0 !== n && n !== ! 1 || ( n = t ) , e . createTextRange ) { var i = e . createTextRange ( ) ; i . collapse ( ! 0 ) , i . moveEnd ( "character" , n ) , i . moveStart ( "character" , t ) , i . select ( ) } else e . setSelectionRange && e . setSelectionRange ( t , n ) } catch ( a ) { } } function getFieldSelection ( e ) { if ( e . selectionStart ) return e . selectionStart ; if ( ! document . selection ) return 0 ; var t = " " , n = document . selection . createRange ( ) , i = n . text , a = n . duplicate ( ) , r = 0 ; try { a . moveToElementText ( e ) } catch ( o ) { return 0 } return n . text = i + t , r = a . text . indexOf ( t ) , n . moveStart ( "character" , - 1 ) , n . text = "" , r } function getRichValue ( e ) { if ( ! e ) return "" ; var t = [ ] , n = [ ] ; getRichElementValue ( e , t , n ) , n . length && t . push ( n . join ( "" ) ) ; var i = t . join ( "\n" ) ; return i = i . replace ( /\u00A0/g , " " ) } function getRichValueWithCaret ( e ) { if ( ! e ) return [ ] ; var t , n , i = [ ] , a = [ ] , r = ! ! window . getSelection && window . getSelection ( ) ; if ( r && r . rangeCount ) { var o = r . getRangeAt ( 0 ) ; o . startContainer && o . startContainer == o . endContainer && o . startOffset == o . endOffset && ( t = o . startContainer , n = o . startOffset ) } getRichElementValue ( e , i , a , t , n ) , a . length && i . push ( a . join ( "" ) ) ; var s = i . join ( "\n" ) , l = s . indexOf ( " " ) ; return l != - 1 && ( s = s . substr ( 0 , l ) + s . substr ( l + 1 ) ) , s = s . replace ( /\u00A0/g , " " ) , [ s , l ] } function getRichElementValue ( e , t , n , i , a ) { if ( 3 != e . nodeType ) { if ( 1 == e . nodeType ) { var r , o = i === e , s = "DIV" == e . tagName || "P" == e . tagName ; s && n . length || "BR" == e . tagName ? ( t . push ( n . join ( "" ) ) , n . splice ( 0 , n . length ) ) : "IMG" == e . tagName && e . alt && n . push ( e . alt ) , o && ! a && n . push ( " " ) ; for ( var r = e . firstChild ; r ; ) getRichElementValue ( r , t , n , i , a ) , r = r . nextSibling ; o && a && n . push ( " " ) , s && n . length && ( t . push ( n . join ( "" ) ) , n . splice ( 0 , n . length ) ) } } else if ( i === e ) { var l = e . nodeValue ; n . push ( l . substr ( 0 , a ) + " " + l . substr ( a ) ) } else n . push ( e . nodeValue ) } function setRichFocus ( e , t , n ) { if ( e . focus ( ) , ! t || t . parentNode != e || t . nextSibling || n || ( e . removeChild ( t ) , t = null ) , window . getSelection && document . createRange ) { var i = document . createRange ( ) ; t ? i . selectNode ( t ) : i . selectNodeContents ( e ) , n || i . collapse ( ! 1 ) ; var a = window . getSelection ( ) ; a . removeAllRanges ( ) , a . addRange ( i ) } else if ( void 0 !== document . body . createTextRange ) { var r = document . body . createTextRange ( ) ; r . moveToElementText ( t || e ) , n || r . collapse ( ! 1 ) , r . select ( ) } } function getSelectedText ( ) { var e = ( window . getSelection && window . getSelection ( ) || document . getSelection && document . getSelection ( ) || document . selection && document . selection . createRange ( ) . text || "" ) . toString ( ) . replace ( /^\s+|\s+$/g , "" ) ; return e } function scrollToNode ( e , t , n ) { var i = t . offsetTop - 15 , a = t . offsetHeight + 30 , r = e . scrollTop , o = e . clientHeight ; r > i ? ( e . scrollTop = i , $ ( n ) . nanoScroller ( { flash : ! 0 } ) ) : r < i + a - o && ( e . scrollTop = i + a - o , $ ( n ) . nanoScroller ( { flash : ! 0 } ) ) } function onContentLoaded ( e ) { e = onAnimationFrameCallback ( e ) , setZeroTimeout ( e ) } function tsNow ( e ) { var t = + new Date + ( window . tsOffset || 0 ) ; return e ? Math . floor ( t / 1e3 ) : t } function safeReplaceObject ( e , t ) { for ( var n in e ) t . hasOwnProperty ( n ) || "$" == n . charAt ( 0 ) || delete e [ n ] ; for ( var n in t ) t . hasOwnProperty ( n ) && ( e [ n ] = t [ n ] ) } function listMergeSorted ( e , t ) { e = e || [ ] , t = t || [ ] ; for ( var n = angular . copy ( e ) , i = e . length ? e [ e . length - 1 ] : 4294967295 , a = 0 ; a < t . length ; a ++ ) t [ a ] < i && n . push ( t [ a ] ) ; return n } function listUniqSorted ( e ) { e = e || [ ] ; for ( var t = [ ] , n = ! 1 , i = 0 ; i < e . length ; i ++ ) e [ i ] !== n && t . push ( e [ i ] ) , n = e [ i ] ; return t } function templateUrl ( e ) { var t = { confirm _modal : "desktop" , error _modal : "desktop" , media _modal _layout : "desktop" , slider : "desktop" , reply _message : "desktop" , full _round : "desktop" , message _body : "desktop" , message _media : "desktop" , message _attach _game : "desktop" , forward
} else if ( s ) for ( ; o > r && ( a = t . call ( e [ r ] , r , e [ r ] ) , a !== ! 1 ) ; r ++ ) ; else for ( r in e ) if ( a = t . call ( e [ r ] , r , e [ r ] ) , a === ! 1 ) break ; return e } , trim : function ( e ) { return null == e ? "" : ( e + "" ) . replace ( re , "" ) } , makeArray : function ( e , t ) { var i = t || [ ] ; return null != e && ( n ( Object ( e ) ) ? ae . merge ( i , "string" == typeof e ? [ e ] : e ) : J . call ( i , e ) ) , i } , inArray : function ( e , t , n ) { var i ; if ( t ) { if ( Z ) return Z . call ( t , e , n ) ; for ( i = t . length , n = n ? 0 > n ? Math . max ( 0 , i + n ) : n : 0 ; i > n ; n ++ ) if ( n in t && t [ n ] === e ) return n } return - 1 } , merge : function ( e , t ) { for ( var n = + t . length , i = 0 , a = e . length ; n > i ; ) e [ a ++ ] = t [ i ++ ] ; if ( n !== n ) for ( ; void 0 !== t [ i ] ; ) e [ a ++ ] = t [ i ++ ] ; return e . length = a , e } , grep : function ( e , t , n ) { for ( var i , a = [ ] , r = 0 , o = e . length , s = ! n ; o > r ; r ++ ) i = ! t ( e [ r ] , r ) , i !== s && a . push ( e [ r ] ) ; return a } , map : function ( e , t , i ) { var a , r = 0 , o = e . length , s = n ( e ) , l = [ ] ; if ( s ) for ( ; o > r ; r ++ ) a = t ( e [ r ] , r , i ) , null != a && l . push ( a ) ; else for ( r in e ) a = t ( e [ r ] , r , i ) , null != a && l . push ( a ) ; return X . apply ( [ ] , l ) } , guid : 1 , proxy : function ( e , t ) { var n , i , a ; return "string" == typeof t && ( a = e [ t ] , t = e , e = a ) , ae . isFunction ( e ) ? ( n = Y . call ( arguments , 2 ) , i = function ( ) { return e . apply ( t || this , n . concat ( Y . call ( arguments ) ) ) } , i . guid = e . guid = e . guid || ae . guid ++ , i ) : void 0 } , now : function ( ) { return + new Date } , support : ne } ) , ae . each ( "Boolean Number String Function Array Date RegExp Object Error" . split ( " " ) , function ( e , t ) { Q [ "[object " + t + "]" ] = t . toLowerCase ( ) } ) ; var ce = function ( e ) { function t ( e , t , n , i ) { var a , r , o , s , l , c , u , f , m , h ; if ( ( t ? t . ownerDocument || t : B ) !== P && x ( t ) , t = t || P , n = n || [ ] , ! e || "string" != typeof e ) return n ; if ( 1 !== ( s = t . nodeType ) && 9 !== s ) return [ ] ; if ( R && ! i ) { if ( a = ve . exec ( e ) ) if ( o = a [ 1 ] ) { if ( 9 === s ) { if ( r = t . getElementById ( o ) , ! r || ! r . parentNode ) return n ; if ( r . id === o ) return n . push ( r ) , n } else if ( t . ownerDocument && ( r = t . ownerDocument . getElementById ( o ) ) && F ( t , r ) && r . id === o ) return n . push ( r ) , n } else { if ( a [ 2 ] ) return Q . apply ( n , t . getElementsByTagName ( e ) ) , n ; if ( ( o = a [ 3 ] ) && w . getElementsByClassName && t . getElementsByClassName ) return Q . apply ( n , t . getElementsByClassName ( o ) ) , n } if ( w . qsa && ( ! O || ! O . test ( e ) ) ) { if ( f = u = U , m = t , h = 9 === s && e , 1 === s && "object" !== t . nodeName . toLowerCase ( ) ) { for ( c = A ( e ) , ( u = t . getAttribute ( "id" ) ) ? f = u . replace ( be , "\\$&" ) : t . setAttribute ( "id" , f ) , f = "[id='" + f + "'] " , l = c . length ; l -- ; ) c [ l ] = f + p ( c [ l ] ) ; m = ye . test ( e ) && d ( t . parentNode ) || t , h = c . join ( "," ) } if ( h ) try { return Q . apply ( n , m . querySelectorAll ( h ) ) , n } catch ( g ) { } finally { u || t . removeAttribute ( "id" ) } } } return T ( e . replace ( le , "$1" ) , t , n , i ) } function n ( ) { function e ( n , i ) { return t . push ( n + " " ) > k . cacheLength && delete e [ t . shift ( ) ] , e [ n + " " ] = i } var t = [ ] ; return e } function i ( e ) { return e [ U ] = ! 0 , e } function a ( e ) { var t = P . createElement ( "div" ) ; try { return ! ! e ( t ) } catch ( n ) { return ! 1 } finally { t . parentNode && t . parentNode . removeChild ( t ) , t = null } } function r ( e , t ) { for ( var n = e . split ( "|" ) , i = e . length ; i -- ; ) k . attrHandle [ n [ i ] ] = t } function o ( e , t ) { var n = t && e , i = n && 1 === e . nodeType && 1 === t . nodeType && ( ~ t . sourceIndex || K ) - ( ~ e . sourceIndex || K ) ; if ( i ) return i ; if ( n ) for ( ; n = n . nextSibling ; ) if ( n === t ) return - 1 ; return e ? 1 : - 1 } function s ( e ) { return function ( t ) { var n = t . nodeName . toLowerCase ( ) ; return "input" === n && t . type === e } } function l ( e ) { return function ( t ) { var n = t . nodeName . toLowerCase ( ) ; return ( "input" === n || "button" === n ) && t . type === e } } function c ( e ) { return i ( function ( t ) { return t = + t , i ( function ( n , i ) { for ( var a , r = e ( [ ] , n . length , t ) , o = r . length ; o -- ; ) n [ a = r [ o ] ] && ( n [ a ] = ! ( i [ a ] = n [ a ] ) ) } ) } ) } function d ( e ) { return e && typeof e . getElementsByTagName !== G && e } function u ( ) { } function p ( e ) { for ( var t = 0 , n = e . length , i = "" ; n > t ; t ++ ) i += e [ t ] . value ; return i } function f ( e , t , n ) { var i = t . dir , a = n && "parentNode" === i , r = j ++ ; return t . first ? function ( t , n , r ) { for ( ; t = t [ i ] ; ) if ( 1 === t . nodeType || a ) return e ( t , n , r ) } : function ( t , n , o ) { var s , l , c = [ H , r ] ; if ( o ) { for ( ; t = t [ i ] ; ) if ( ( 1 === t . nodeType || a ) && e ( t , n , o ) ) return ! 0 } else for ( ; t = t [ i ] ; ) if ( 1 === t . nodeType || a ) { if ( l = t [ U ] || ( t [ U ] = { } ) , ( s = l [ i ] ) && s [ 0 ] === H && s [ 1 ] === r ) return c [ 2 ] = s [ 2 ] ; if ( l [ i ] = c , c [ 2 ] = e ( t , n , o ) ) return ! 0 } } } function m ( e ) { return e . length > 1 ? function ( t , n , i ) { for ( var a = e . length ; a -- ; ) if ( ! e [ a ] ( t , n , i ) ) return ! 1 ; return ! 0 } : e [ 0 ] } function h ( e , n , i ) { for ( var a = 0 , r = n . length ; r > a ; a ++ ) t ( e , n [ a ] , i ) ; return i } function g ( e , t , n , i , a ) { for ( var r , o = [ ] , s = 0 , l = e . length , c = null != t ; l > s ; s ++ ) ( r = e [ s ] ) && ( ! n || n ( r , i , a ) ) && ( o . push ( r ) , c && t . push ( s ) ) ; return o } function _ ( e , t , n , a , r , o ) { return a && ! a [ U ] && ( a = _ ( a ) ) , r && ! r [ U ] && ( r = _ ( r , o ) ) , i ( function ( i , o , s , l ) { var c , d , u , p = [
for ( n . handler && ( l = n , n = l . handler , a = l . selector ) , n . guid || ( n . guid = ae . guid ++ ) , ( o = g . events ) || ( o = g . events = { } ) , ( d = g . handle ) || ( d = g . handle = function ( e ) { return typeof ae === Me || e && ae . event . triggered === e . type ? void 0 : ae . event . dispatch . apply ( d . elem , arguments ) } , d . elem = e ) , t = ( t || "" ) . match ( ye ) || [ "" ] , s = t . length ; s -- ; ) r = Oe . exec ( t [ s ] ) || [ ] , f = h = r [ 1 ] , m = ( r [ 2 ] || "" ) . split ( "." ) . sort ( ) , f && ( c = ae . event . special [ f ] || { } , f = ( a ? c . delegateType : c . bindType ) || f , c = ae . event . special [ f ] || { } , u = ae . extend ( { type : f , origType : h , data : i , handler : n , guid : n . guid , selector : a , needsContext : a && ae . expr . match . needsContext . test ( a ) , namespace : m . join ( "." ) } , l ) , ( p = o [ f ] ) || ( p = o [ f ] = [ ] , p . delegateCount = 0 , c . setup && c . setup . call ( e , i , m , d ) !== ! 1 || ( e . addEventListener ? e . addEventListener ( f , d , ! 1 ) : e . attachEvent && e . attachEvent ( "on" + f , d ) ) ) , c . add && ( c . add . call ( e , u ) , u . handler . guid || ( u . handler . guid = n . guid ) ) , a ? p . splice ( p . delegateCount ++ , 0 , u ) : p . push ( u ) , ae . event . global [ f ] = ! 0 ) ; e = null } } , remove : function ( e , t , n , i , a ) { var r , o , s , l , c , d , u , p , f , m , h , g = ae . hasData ( e ) && ae . _data ( e ) ; if ( g && ( d = g . events ) ) { for ( t = ( t || "" ) . match ( ye ) || [ "" ] , c = t . length ; c -- ; ) if ( s = Oe . exec ( t [ c ] ) || [ ] , f = h = s [ 1 ] , m = ( s [ 2 ] || "" ) . split ( "." ) . sort ( ) , f ) { for ( u = ae . event . special [ f ] || { } , f = ( i ? u . delegateType : u . bindType ) || f , p = d [ f ] || [ ] , s = s [ 2 ] && new RegExp ( "(^|\\.)" + m . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) , l = r = p . length ; r -- ; ) o = p [ r ] , ! a && h !== o . origType || n && n . guid !== o . guid || s && ! s . test ( o . namespace ) || i && i !== o . selector && ( "**" !== i || ! o . selector ) || ( p . splice ( r , 1 ) , o . selector && p . delegateCount -- , u . remove && u . remove . call ( e , o ) ) ; l && ! p . length && ( u . teardown && u . teardown . call ( e , m , g . handle ) !== ! 1 || ae . removeEvent ( e , f , g . handle ) , delete d [ f ] ) } else for ( f in d ) ae . event . remove ( e , f + t [ c ] , n , i , ! 0 ) ; ae . isEmptyObject ( d ) && ( delete g . handle , ae . _removeData ( e , "events" ) ) } } , trigger : function ( t , n , i , a ) { var r , o , s , l , c , d , u , p = [ i || me ] , f = te . call ( t , "type" ) ? t . type : t , m = te . call ( t , "namespace" ) ? t . namespace . split ( "." ) : [ ] ; if ( s = d = i = i || me , 3 !== i . nodeType && 8 !== i . nodeType && ! Re . test ( f + ae . event . triggered ) && ( f . indexOf ( "." ) >= 0 && ( m = f . split ( "." ) , f = m . shift ( ) , m . sort ( ) ) , o = f . indexOf ( ":" ) < 0 && "on" + f , t = t [ ae . expando ] ? t : new ae . Event ( f , "object" == typeof t && t ) , t . isTrigger = a ? 2 : 3 , t . namespace = m . join ( "." ) , t . namespace _re = t . namespace ? new RegExp ( "(^|\\.)" + m . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) : null , t . result = void 0 , t . target || ( t . target = i ) , n = null == n ? [ t ] : ae . makeArray ( n , [ t ] ) , c = ae . event . special [ f ] || { } , a || ! c . trigger || c . trigger . apply ( i , n ) !== ! 1 ) ) { if ( ! a && ! c . noBubble && ! ae . isWindow ( i ) ) { for ( l = c . delegateType || f , Re . test ( l + f ) || ( s = s . parentNode ) ; s ; s = s . parentNode ) p . push ( s ) , d = s ; d === ( i . ownerDocument || me ) && p . push ( d . defaultView || d . parentWindow || e ) } for ( u = 0 ; ( s = p [ u ++ ] ) && ! t . isPropagationStopped ( ) ; ) t . type = u > 1 ? l : c . bindType || f , r = ( ae . _data ( s , "events" ) || { } ) [ t . type ] && ae . _data ( s , "handle" ) , r && r . apply ( s , n ) , r = o && s [ o ] , r && r . apply && ae . acceptData ( s ) && ( t . result = r . apply ( s , n ) , t . result === ! 1 && t . preventDefault ( ) ) ; if ( t . type = f , ! a && ! t . isDefaultPrevented ( ) && ( ! c . _default || c . _default . apply ( p . pop ( ) , n ) === ! 1 ) && ae . acceptData ( i ) && o && i [ f ] && ! ae . isWindow ( i ) ) { d = i [ o ] , d && ( i [ o ] = null ) , ae . event . triggered = f ; try { i [ f ] ( ) } catch ( h ) { } ae . event . triggered = void 0 , d && ( i [ o ] = d ) } return t . result } } , dispatch : function ( e ) { e = ae . event . fix ( e ) ; var t , n , i , a , r , o = [ ] , s = Y . call ( arguments ) , l = ( ae . _data ( this , "events" ) || { } ) [ e . type ] || [ ] , c = ae . event . special [ e . type ] || { } ; if ( s [ 0 ] = e , e . delegateTarget = this , ! c . preDispatch || c . preDispatch . call ( this , e ) !== ! 1 ) { for ( o = ae . event . handlers . call ( this , e , l ) , t = 0 ; ( a = o [ t ++ ] ) && ! e . isPropagationStopped ( ) ; ) for ( e . currentTarget = a . elem , r = 0 ; ( i = a . handlers [ r ++ ] ) && ! e . isImmediatePropagationStopped ( ) ; ) ( ! e . namespace _re || e . namespace _re . test ( i . namespace ) ) && ( e . handleObj = i , e . data = i . data , n = ( ( ae . event . special [ i . origType ] || { } ) . handle || i . handler ) . apply ( a . elem , s ) , void 0 !== n && ( e . result = n ) === ! 1 && ( e . preventDefault ( ) , e . stopPropagation ( ) ) ) ; return c . postDispatch && c . postDispatch . call ( this , e ) , e . result } } , handlers : function ( e , t ) { var n , i , a , r , o = [ ] , s = t . delegateCount , l = e . target ; if ( s && l . nodeType && ( ! e . button || "click" !== e . type ) ) for ( ; l != this ; l = l . parentNode || this ) if ( 1 === l . nodeType && ( l . disabled !== ! 0 || "click" !== e . type ) ) { for ( a = [ ] , r = 0 ; s > r ; r ++ ) i = t [ r ] , n = i . selector + " " , void 0 === a [ n ] && ( a [ n ] = i . needsContext ? ae ( n , this ) . index ( l ) >= 0 : ae . find ( n , this , null , [ l ] ) . length ) , a [ n ] && a . push ( i ) ; a . length && o . push ( { elem : l , handlers : a } )
i . value = t += "" , "value" === n || t === e . getAttribute ( n ) ? t : void 0 } } , Mt . id = Mt . name = Mt . coords = function ( e , t , n ) { var i ; return n ? void 0 : ( i = e . getAttributeNode ( t ) ) && "" !== i . value ? i . value : null } , ae . valHooks . button = { get : function ( e , t ) { var n = e . getAttributeNode ( t ) ; return n && n . specified ? n . value : void 0 } , set : wt . set } , ae . attrHooks . contenteditable = { set : function ( e , t , n ) { wt . set ( e , "" !== t && t , n ) } } , ae . each ( [ "width" , "height" ] , function ( e , t ) { ae . attrHooks [ t ] = { set : function ( e , n ) { return "" === n ? ( e . setAttribute ( t , "auto" ) , n ) : void 0 } } } ) ) , ne . style || ( ae . attrHooks . style = { get : function ( e ) { return e . style . cssText || void 0 } , set : function ( e , t ) { return e . style . cssText = t + "" } } ) ; var Tt = /^(?:input|select|textarea|button|object)$/i , Et = /^(?:a|area)$/i ; ae . fn . extend ( { prop : function ( e , t ) { return $e ( this , ae . prop , e , t , arguments . length > 1 ) } , removeProp : function ( e ) { return e = ae . propFix [ e ] || e , this . each ( function ( ) { try { this [ e ] = void 0 , delete this [ e ] } catch ( t ) { } } ) } } ) , ae . extend ( { propFix : { "for" : "htmlFor" , "class" : "className" } , prop : function ( e , t , n ) { var i , a , r , o = e . nodeType ; if ( e && 3 !== o && 8 !== o && 2 !== o ) return r = 1 !== o || ! ae . isXMLDoc ( e ) , r && ( t = ae . propFix [ t ] || t , a = ae . propHooks [ t ] ) , void 0 !== n ? a && "set" in a && void 0 !== ( i = a . set ( e , n , t ) ) ? i : e [ t ] = n : a && "get" in a && null !== ( i = a . get ( e , t ) ) ? i : e [ t ] } , propHooks : { tabIndex : { get : function ( e ) { var t = ae . find . attr ( e , "tabindex" ) ; return t ? parseInt ( t , 10 ) : Tt . test ( e . nodeName ) || Et . test ( e . nodeName ) && e . href ? 0 : - 1 } } } } ) , ne . hrefNormalized || ae . each ( [ "href" , "src" ] , function ( e , t ) { ae . propHooks [ t ] = { get : function ( e ) { return e . getAttribute ( t , 4 ) } } } ) , ne . optSelected || ( ae . propHooks . selected = { get : function ( e ) { var t = e . parentNode ; return t && ( t . selectedIndex , t . parentNode && t . parentNode . selectedIndex ) , null } } ) , ae . each ( [ "tabIndex" , "readOnly" , "maxLength" , "cellSpacing" , "cellPadding" , "rowSpan" , "colSpan" , "useMap" , "frameBorder" , "contentEditable" ] , function ( ) { ae . propFix [ this . toLowerCase ( ) ] = this } ) , ne . enctype || ( ae . propFix . enctype = "encoding" ) ; var $t = /[\t\r\n\f]/g ; ae . fn . extend ( { addClass : function ( e ) { var t , n , i , a , r , o , s = 0 , l = this . length , c = "string" == typeof e && e ; if ( ae . isFunction ( e ) ) return this . each ( function ( t ) { ae ( this ) . addClass ( e . call ( this , t , this . className ) ) } ) ; if ( c ) for ( t = ( e || "" ) . match ( ye ) || [ ] ; l > s ; s ++ ) if ( n = this [ s ] , i = 1 === n . nodeType && ( n . className ? ( " " + n . className + " " ) . replace ( $t , " " ) : " " ) ) { for ( r = 0 ; a = t [ r ++ ] ; ) i . indexOf ( " " + a + " " ) < 0 && ( i += a + " " ) ; o = ae . trim ( i ) , n . className !== o && ( n . className = o ) } return this } , removeClass : function ( e ) { var t , n , i , a , r , o , s = 0 , l = this . length , c = 0 === arguments . length || "string" == typeof e && e ; if ( ae . isFunction ( e ) ) return this . each ( function ( t ) { ae ( this ) . removeClass ( e . call ( this , t , this . className ) ) } ) ; if ( c ) for ( t = ( e || "" ) . match ( ye ) || [ ] ; l > s ; s ++ ) if ( n = this [ s ] , i = 1 === n . nodeType && ( n . className ? ( " " + n . className + " " ) . replace ( $t , " " ) : "" ) ) { for ( r = 0 ; a = t [ r ++ ] ; ) for ( ; i . indexOf ( " " + a + " " ) >= 0 ; ) i = i . replace ( " " + a + " " , " " ) ; o = e ? ae . trim ( i ) : "" , n . className !== o && ( n . className = o ) } return this } , toggleClass : function ( e , t ) { var n = typeof e ; return "boolean" == typeof t && "string" === n ? t ? this . addClass ( e ) : this . removeClass ( e ) : this . each ( ae . isFunction ( e ) ? function ( n ) { ae ( this ) . toggleClass ( e . call ( this , n , this . className , t ) , t ) } : function ( ) { if ( "string" === n ) for ( var t , i = 0 , a = ae ( this ) , r = e . match ( ye ) || [ ] ; t = r [ i ++ ] ; ) a . hasClass ( t ) ? a . removeClass ( t ) : a . addClass ( t ) ; else ( n === Me || "boolean" === n ) && ( this . className && ae . _data ( this , "__className__" , this . className ) , this . className = this . className || e === ! 1 ? "" : ae . _data ( this , "__className__" ) || "" ) } ) } , hasClass : function ( e ) { for ( var t = " " + e + " " , n = 0 , i = this . length ; i > n ; n ++ ) if ( 1 === this [ n ] . nodeType && ( " " + this [ n ] . className + " " ) . replace ( $t , " " ) . indexOf ( t ) >= 0 ) return ! 0 ; return ! 1 } } ) , ae . each ( "blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu" . split ( " " ) , function ( e , t ) { ae . fn [ t ] = function ( e , n ) { return arguments . length > 0 ? this . on ( t , null , e , n ) : this . trigger ( t ) } } ) , ae . fn . extend ( { hover : function ( e , t ) { return this . mouseenter ( e ) . mouseleave ( t || e ) } , 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 , i ) { return this . on ( t , e , n , i ) } , undelegate : function ( e , t , n ) { return 1 === arguments . length ? this . off ( e , "**" ) : this . off
Config . Schema . API = { constructors : [ { id : "-1132882121" , predicate : "boolFalse" , params : [ ] , type : "Bool" } , { id : "-1720552011" , predicate : "boolTrue" , params : [ ] , type : "Bool" } , { id : "1072550713" , predicate : "true" , params : [ ] , type : "True" } , { id : "481674261" , predicate : "vector" , params : [ ] , type : "Vector t" } , { id : "-994444869" , predicate : "error" , params : [ { name : "code" , type : "int" } , { name : "text" , type : "string" } ] , type : "Error" } , { id : "1450380236" , predicate : "null" , params : [ ] , type : "Null" } , { id : "2134579434" , predicate : "inputPeerEmpty" , params : [ ] , type : "InputPeer" } , { id : "2107670217" , predicate : "inputPeerSelf" , params : [ ] , type : "InputPeer" } , { id : "396093539" , predicate : "inputPeerChat" , params : [ { name : "chat_id" , type : "int" } ] , type : "InputPeer" } , { id : "-1182234929" , predicate : "inputUserEmpty" , params : [ ] , type : "InputUser" } , { id : "-138301121" , predicate : "inputUserSelf" , params : [ ] , type : "InputUser" } , { id : "-208488460" , predicate : "inputPhoneContact" , params : [ { name : "client_id" , type : "long" } , { name : "phone" , type : "string" } , { name : "first_name" , type : "string" } , { name : "last_name" , type : "string" } ] , type : "InputContact" } , { id : "-181407105" , predicate : "inputFile" , params : [ { name : "id" , type : "long" } , { name : "parts" , type : "int" } , { name : "name" , type : "string" } , { name : "md5_checksum" , type : "string" } ] , type : "InputFile" } , { id : "-1771768449" , predicate : "inputMediaEmpty" , params : [ ] , type : "InputMedia" } , { id : "792191537" , predicate : "inputMediaUploadedPhoto" , params : [ { name : "flags" , type : "#" } , { name : "file" , type : "InputFile" } , { name : "caption" , type : "string" } , { name : "stickers" , type : "flags.0?Vector<InputDocument>" } , { name : "ttl_seconds" , type : "flags.1?int" } ] , type : "InputMedia" } , { id : "-2114308294" , predicate : "inputMediaPhoto" , params : [ { name : "flags" , type : "#" } , { name : "id" , type : "InputPhoto" } , { name : "caption" , type : "string" } , { name : "ttl_seconds" , type : "flags.0?int" } ] , type : "InputMedia" } , { id : "-104578748" , predicate : "inputMediaGeoPoint" , params : [ { name : "geo_point" , type : "InputGeoPoint" } ] , type : "InputMedia" } , { id : "-1494984313" , predicate : "inputMediaContact" , params : [ { name : "phone_number" , type : "string" } , { name : "first_name" , type : "string" } , { name : "last_name" , type : "string" } ] , type : "InputMedia" } , { id : "480546647" , predicate : "inputChatPhotoEmpty" , params : [ ] , type : "InputChatPhoto" } , { id : "-1837345356" , predicate : "inputChatUploadedPhoto" , params : [ { name : "file" , type : "InputFile" } ] , type : "InputChatPhoto" } , { id : "-1991004873" , predicate : "inputChatPhoto" , params : [ { name : "id" , type : "InputPhoto" } ] , type : "InputChatPhoto" } , { id : "-457104426" , predicate : "inputGeoPointEmpty" , params : [ ] , type : "InputGeoPoint" } , { id : "-206066487" , predicate : "inputGeoPoint" , params : [ { name : "lat" , type : "double" } , { name : "long" , type : "double" } ] , type : "InputGeoPoint" } , { id : "483901197" , predicate : "inputPhotoEmpty" , params : [ ] , type : "InputPhoto" } , { id : "-74070332" , predicate : "inputPhoto" , params : [ { name : "id" , type : "long" } , { name : "access_hash" , type : "long" } ] , type : "InputPhoto" } , { id : "342061462" , predicate : "inputFileLocation" , params : [ { name : "volume_id" , type : "long" } , { name : "local_id" , type : "int" } , { name : "secret" , type : "long" } ] , type : "InputFileLocation" } , { id : "1996904104" , predicate : "inputAppEvent" , params : [ { name : "time" , type : "double" } , { name : "type" , type : "string" } , { name : "peer" , type : "long" } , { name : "data" , type : "string" } ] , type : "InputAppEvent" } , { id : "-1649296275" , predicate : "peerUser" , params : [ { name : "user_id" , type : "int" } ] , type : "Peer" } , { id : "-1160714821" , predicate : "peerChat" , params : [ { name : "chat_id" , type : "int" } ] , type : "Peer" } , { id : "-1432995067" , predicate : "storage.fileUnknown" , params : [ ] , type : "storage.FileType" } , { id : "1086091090" , predicate : "storage.filePartial" , params : [ ] , type : "storage.FileType" } , { id : "8322574" , predicate : "storage.fileJpeg" , params : [ ] , type : "storage.FileType" } , { id : "-891180321" , predicate : "storage.fileGif" , params : [ ] , type : "storage.FileType" } , { id : "172975040" , predicate : "storage.filePng" , params : [ ] , type : "storage.FileType" } , { id : "-1373745011" , predicate : "storage.filePdf" , params : [ ] , type : "storage.FileType" } , { id : "1384777335" , predicate : "storage.fileMp3" , params : [ ] , type : "storage.FileType" } , { id : "1258941372" , predicate : "storage.fileMov" , params : [ ] , type : "storage.FileType" } , { id : "-1278304028" , predicate : "storage.fileMp4" , params : [ ] , type : "storage.FileType" } , { id : "276907596" , predicate : "storage.fileWebp" , params : [ ] , type : "storage.FileType" } , { id
} ] , type : "Document" } , { id : "398898678" , predicate : "help.support" , params : [ { name : "phone_number" , type : "string" } , { name : "user" , type : "User" } ] , type : "help.Support" } , { id : "-1613493288" , predicate : "notifyPeer" , params : [ { name : "peer" , type : "Peer" } ] , type : "NotifyPeer" } , { id : "-1261946036" , predicate : "notifyUsers" , params : [ ] , type : "NotifyPeer" } , { id : "-1073230141" , predicate : "notifyChats" , params : [ ] , type : "NotifyPeer" } , { id : "1959820384" , predicate : "notifyAll" , params : [ ] , type : "NotifyPeer" } , { id : "-2131957734" , predicate : "updateUserBlocked" , params : [ { name : "user_id" , type : "int" } , { name : "blocked" , type : "Bool" } ] , type : "Update" } , { id : "-1094555409" , predicate : "updateNotifySettings" , params : [ { name : "peer" , type : "NotifyPeer" } , { name : "notify_settings" , type : "PeerNotifySettings" } ] , type : "Update" } , { id : "381645902" , predicate : "sendMessageTypingAction" , params : [ ] , type : "SendMessageAction" } , { id : "-44119819" , predicate : "sendMessageCancelAction" , params : [ ] , type : "SendMessageAction" } , { id : "-1584933265" , predicate : "sendMessageRecordVideoAction" , params : [ ] , type : "SendMessageAction" } , { id : "-378127636" , predicate : "sendMessageUploadVideoAction" , params : [ { name : "progress" , type : "int" } ] , type : "SendMessageAction" } , { id : "-718310409" , predicate : "sendMessageRecordAudioAction" , params : [ ] , type : "SendMessageAction" } , { id : "-212740181" , predicate : "sendMessageUploadAudioAction" , params : [ { name : "progress" , type : "int" } ] , type : "SendMessageAction" } , { id : "-774682074" , predicate : "sendMessageUploadPhotoAction" , params : [ { name : "progress" , type : "int" } ] , type : "SendMessageAction" } , { id : "-1441998364" , predicate : "sendMessageUploadDocumentAction" , params : [ { name : "progress" , type : "int" } ] , type : "SendMessageAction" } , { id : "393186209" , predicate : "sendMessageGeoLocationAction" , params : [ ] , type : "SendMessageAction" } , { id : "1653390447" , predicate : "sendMessageChooseContactAction" , params : [ ] , type : "SendMessageAction" } , { id : "-1290580579" , predicate : "contacts.found" , params : [ { name : "my_results" , type : "Vector<Peer>" } , { name : "results" , type : "Vector<Peer>" } , { name : "chats" , type : "Vector<Chat>" } , { name : "users" , type : "Vector<User>" } ] , type : "contacts.Found" } , { id : "-337352679" , predicate : "updateServiceNotification" , params : [ { name : "flags" , type : "#" } , { name : "popup" , type : "flags.0?true" } , { name : "inbox_date" , type : "flags.1?int" } , { name : "type" , type : "string" } , { name : "message" , type : "string" } , { name : "media" , type : "MessageMedia" } , { name : "entities" , type : "Vector<MessageEntity>" } ] , type : "Update" } , { id : "-496024847" , predicate : "userStatusRecently" , params : [ ] , type : "UserStatus" } , { id : "129960444" , predicate : "userStatusLastWeek" , params : [ ] , type : "UserStatus" } , { id : "2011940674" , predicate : "userStatusLastMonth" , params : [ ] , type : "UserStatus" } , { id : "-298113238" , predicate : "updatePrivacy" , params : [ { name : "key" , type : "PrivacyKey" } , { name : "rules" , type : "Vector<PrivacyRule>" } ] , type : "Update" } , { id : "1335282456" , predicate : "inputPrivacyKeyStatusTimestamp" , params : [ ] , type : "InputPrivacyKey" } , { id : "-1137792208" , predicate : "privacyKeyStatusTimestamp" , params : [ ] , type : "PrivacyKey" } , { id : "218751099" , predicate : "inputPrivacyValueAllowContacts" , params : [ ] , type : "InputPrivacyRule" } , { id : "407582158" , predicate : "inputPrivacyValueAllowAll" , params : [ ] , type : "InputPrivacyRule" } , { id : "320652927" , predicate : "inputPrivacyValueAllowUsers" , params : [ { name : "users" , type : "Vector<InputUser>" } ] , type : "InputPrivacyRule" } , { id : "195371015" , predicate : "inputPrivacyValueDisallowContacts" , params : [ ] , type : "InputPrivacyRule" } , { id : "-697604407" , predicate : "inputPrivacyValueDisallowAll" , params : [ ] , type : "InputPrivacyRule" } , { id : "-1877932953" , predicate : "inputPrivacyValueDisallowUsers" , params : [ { name : "users" , type : "Vector<InputUser>" } ] , type : "InputPrivacyRule" } , { id : "-123988" , predicate : "privacyValueAllowContacts" , params : [ ] , type : "PrivacyRule" } , { id : "1698855810" , predicate : "privacyValueAllowAll" , params : [ ] , type : "PrivacyRule" } , { id : "1297858060" , predicate : "privacyValueAllowUsers" , params : [ { name : "users" , type : "Vector<int>" } ] , type : "PrivacyRule" } , { id : "-125240806" , predicate : "privacyValueDisallowContacts" , params : [ ] , type : "PrivacyRule" } , { id : "-1955338397" , predicate : "privacyValueDisallowAll" , params : [ ] , type : "PrivacyRule" } , { id : "209668535" , predicate : "privacyValueDisallowUsers" , params : [ { name : "users" , type : "Vector<int>" } ] , type : "PrivacyRule" } , { id : " 143
params : [ { name : "flags" , type : "#" } , { name : "alert" , type : "flags.1?true" } , { name : "has_url" , type : "flags.3?true" } , { name : "native_ui" , type : "flags.4?true" } , { name : "message" , type : "flags.0?string" } , { name : "url" , type : "flags.2?string" } , { name : "cache_time" , type : "int" } ] , type : "messages.BotCallbackAnswer" } , { id : "-415938591" , predicate : "updateBotCallbackQuery" , params : [ { name : "flags" , type : "#" } , { name : "query_id" , type : "long" } , { name : "user_id" , type : "int" } , { name : "peer" , type : "Peer" } , { name : "msg_id" , type : "int" } , { name : "chat_instance" , type : "long" } , { name : "data" , type : "flags.0?bytes" } , { name : "game_short_name" , type : "flags.1?string" } ] , type : "Update" } , { id : "649453030" , predicate : "messages.messageEditData" , params : [ { name : "flags" , type : "#" } , { name : "caption" , type : "flags.0?true" } ] , type : "messages.MessageEditData" } , { id : "-469536605" , predicate : "updateEditMessage" , params : [ { name : "message" , type : "Message" } , { name : "pts" , type : "int" } , { name : "pts_count" , type : "int" } ] , type : "Update" } , { id : "-1045340827" , predicate : "inputBotInlineMessageMediaGeo" , params : [ { name : "flags" , type : "#" } , { name : "geo_point" , type : "InputGeoPoint" } , { name : "period" , type : "int" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "InputBotInlineMessage" } , { id : "-1431327288" , predicate : "inputBotInlineMessageMediaVenue" , params : [ { name : "flags" , type : "#" } , { name : "geo_point" , type : "InputGeoPoint" } , { name : "title" , type : "string" } , { name : "address" , type : "string" } , { name : "provider" , type : "string" } , { name : "venue_id" , type : "string" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "InputBotInlineMessage" } , { id : "766443943" , predicate : "inputBotInlineMessageMediaContact" , params : [ { name : "flags" , type : "#" } , { name : "phone_number" , type : "string" } , { name : "first_name" , type : "string" } , { name : "last_name" , type : "string" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "InputBotInlineMessage" } , { id : "-1222451611" , predicate : "botInlineMessageMediaGeo" , params : [ { name : "flags" , type : "#" } , { name : "geo" , type : "GeoPoint" } , { name : "period" , type : "int" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "BotInlineMessage" } , { id : "1130767150" , predicate : "botInlineMessageMediaVenue" , params : [ { name : "flags" , type : "#" } , { name : "geo" , type : "GeoPoint" } , { name : "title" , type : "string" } , { name : "address" , type : "string" } , { name : "provider" , type : "string" } , { name : "venue_id" , type : "string" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "BotInlineMessage" } , { id : "904770772" , predicate : "botInlineMessageMediaContact" , params : [ { name : "flags" , type : "#" } , { name : "phone_number" , type : "string" } , { name : "first_name" , type : "string" } , { name : "last_name" , type : "string" } , { name : "reply_markup" , type : "flags.2?ReplyMarkup" } ] , type : "BotInlineMessage" } , { id : "-1462213465" , predicate : "inputBotInlineResultPhoto" , params : [ { name : "id" , type : "string" } , { name : "type" , type : "string" } , { name : "photo" , type : "InputPhoto" } , { name : "send_message" , type : "InputBotInlineMessage" } ] , type : "InputBotInlineResult" } , { id : "-459324" , predicate : "inputBotInlineResultDocument" , params : [ { name : "flags" , type : "#" } , { name : "id" , type : "string" } , { name : "type" , type : "string" } , { name : "title" , type : "flags.1?string" } , { name : "description" , type : "flags.2?string" } , { name : "document" , type : "InputDocument" } , { name : "send_message" , type : "InputBotInlineMessage" } ] , type : "InputBotInlineResult" } , { id : "400266251" , predicate : "botInlineMediaResult" , params : [ { name : "flags" , type : "#" } , { name : "id" , type : "string" } , { name : "type" , type : "string" } , { name : "photo" , type : "flags.0?Photo" } , { name : "document" , type : "flags.1?Document" } , { name : "title" , type : "flags.2?string" } , { name : "description" , type : "flags.3?string" } , { name : "send_message" , type : "BotInlineMessage" } ] , type : "BotInlineResult" } , { id : "-1995686519" , predicate : "inputBotInlineMessageID" , params : [ { name : "dc_id" , type : "int" } , { name : "id" , type : "long" } , { name : "access_hash" , type : "long" } ] , type : "InputBotInlineMessageID" } , { id : "-103646630" , predicate : "updateInlineBotCallbackQuery" , params : [ { name : "flags" , type : "#" } , { name : "query_id" , type : "long" } , { name : "user_id" , type : "int" } , { name : "msg_id" , type : "InputBotInlineMessageID" } , { name : "chat_instance" , type : "long" } , { name : "data" , type : "flags.0?bytes" } , { name : "game_short_name" , type : "flags.1?string" } ] , type : "Update" } , { id : "1008755359" , predicate : "inlineBotSwitchPM" , params : [ { name : "text" , type
name : "prev_photo" , type : "ChatPhoto" } , { name : "new_photo" , type : "ChatPhoto" } ] , type : "ChannelAdminLogEventAction" } , { id : "460916654" , predicate : "channelAdminLogEventActionToggleInvites" , params : [ { name : "new_value" , type : "Bool" } ] , type : "ChannelAdminLogEventAction" } , { id : "648939889" , predicate : "channelAdminLogEventActionToggleSignatures" , params : [ { name : "new_value" , type : "Bool" } ] , type : "ChannelAdminLogEventAction" } , { id : "-370660328" , predicate : "channelAdminLogEventActionUpdatePinned" , params : [ { name : "message" , type : "Message" } ] , type : "ChannelAdminLogEventAction" } , { id : "1889215493" , predicate : "channelAdminLogEventActionEditMessage" , params : [ { name : "prev_message" , type : "Message" } , { name : "new_message" , type : "Message" } ] , type : "ChannelAdminLogEventAction" } , { id : "1121994683" , predicate : "channelAdminLogEventActionDeleteMessage" , params : [ { name : "message" , type : "Message" } ] , type : "ChannelAdminLogEventAction" } , { id : "405815507" , predicate : "channelAdminLogEventActionParticipantJoin" , params : [ ] , type : "ChannelAdminLogEventAction" } , { id : "-124291086" , predicate : "channelAdminLogEventActionParticipantLeave" , params : [ ] , type : "ChannelAdminLogEventAction" } , { id : "-484690728" , predicate : "channelAdminLogEventActionParticipantInvite" , params : [ { name : "participant" , type : "ChannelParticipant" } ] , type : "ChannelAdminLogEventAction" } , { id : "-422036098" , predicate : "channelAdminLogEventActionParticipantToggleBan" , params : [ { name : "prev_participant" , type : "ChannelParticipant" } , { name : "new_participant" , type : "ChannelParticipant" } ] , type : "ChannelAdminLogEventAction" } , { id : "-714643696" , predicate : "channelAdminLogEventActionParticipantToggleAdmin" , params : [ { name : "prev_participant" , type : "ChannelParticipant" } , { name : "new_participant" , type : "ChannelParticipant" } ] , type : "ChannelAdminLogEventAction" } , { id : "995769920" , predicate : "channelAdminLogEvent" , params : [ { name : "id" , type : "long" } , { name : "date" , type : "int" } , { name : "user_id" , type : "int" } , { name : "action" , type : "ChannelAdminLogEventAction" } ] , type : "ChannelAdminLogEvent" } , { id : "-309659827" , predicate : "channels.adminLogResults" , params : [ { name : "events" , type : "Vector<ChannelAdminLogEvent>" } , { name : "chats" , type : "Vector<Chat>" } , { name : "users" , type : "Vector<User>" } ] , type : "channels.AdminLogResults" } , { id : "-368018716" , predicate : "channelAdminLogEventsFilter" , params : [ { name : "flags" , type : "#" } , { name : "join" , type : "flags.0?true" } , { name : "leave" , type : "flags.1?true" } , { name : "invite" , type : "flags.2?true" } , { name : "ban" , type : "flags.3?true" } , { name : "unban" , type : "flags.4?true" } , { name : "kick" , type : "flags.5?true" } , { name : "unkick" , type : "flags.6?true" } , { name : "promote" , type : "flags.7?true" } , { name : "demote" , type : "flags.8?true" } , { name : "info" , type : "flags.9?true" } , { name : "settings" , type : "flags.10?true" } , { name : "pinned" , type : "flags.11?true" } , { name : "edit" , type : "flags.12?true" } , { name : "delete" , type : "flags.13?true" } ] , type : "ChannelAdminLogEventsFilter" } , { id : "511092620" , predicate : "topPeerCategoryPhoneCalls" , params : [ ] , type : "TopPeerCategory" } , { id : "834148991" , predicate : "pageBlockAudio" , params : [ { name : "audio_id" , type : "long" } , { name : "caption" , type : "RichText" } ] , type : "PageBlock" } , { id : "1558266229" , predicate : "popularContact" , params : [ { name : "client_id" , type : "long" } , { name : "importers" , type : "int" } ] , type : "PopularContact" } , { id : "2012136335" , predicate : "cdnFileHash" , params : [ { name : "offset" , type : "int" } , { name : "limit" , type : "int" } , { name : "hash" , type : "bytes" } ] , type : "CdnFileHash" } , { id : "1200788123" , predicate : "messageActionScreenshotTaken" , params : [ ] , type : "MessageAction" } , { id : "-1634752813" , predicate : "messages.favedStickersNotModified" , params : [ ] , type : "messages.FavedStickers" } , { id : "-209768682" , predicate : "messages.favedStickers" , params : [ { name : "hash" , type : "int" } , { name : "packs" , type : "Vector<StickerPack>" } , { name : "stickers" , type : "Vector<Document>" } ] , type : "messages.FavedStickers" } , { id : "-451831443" , predicate : "updateFavedStickers" , params : [ ] , type : "Update" } , { id : "-1987495099" , predicate : "updateChannelReadMessagesContents" , params : [ { name : "channel_id" , type : "int" } , { name : "messages" , type : "Vector<int>" } ] , type : "Update" } , { id : "-1040652646" , predicate : "inputMessagesFilterMyMentions" , params : [ ] , type : "MessagesFilter" } , { id : "1887741886" , predicate : "updateContactsReset" , params : [ ] , type : "Update" } , { id : "-1312568665" , predic
name : "game" , type : "flags.1?true" } , { name : "peer" , type : "InputPeer" } , { name : "msg_id" , type : "int" } , { name : "data" , type : "flags.0?bytes" } ] , type : "messages.BotCallbackAnswer" } , { id : "-712043766" , method : "messages.setBotCallbackAnswer" , params : [ { name : "flags" , type : "#" } , { name : "alert" , type : "flags.1?true" } , { name : "query_id" , type : "long" } , { name : "message" , type : "flags.0?string" } , { name : "url" , type : "flags.2?string" } , { name : "cache_time" , type : "int" } ] , type : "Bool" } , { id : "-728224331" , method : "contacts.getTopPeers" , params : [ { name : "flags" , type : "#" } , { name : "correspondents" , type : "flags.0?true" } , { name : "bots_pm" , type : "flags.1?true" } , { name : "bots_inline" , type : "flags.2?true" } , { name : "phone_calls" , type : "flags.3?true" } , { name : "groups" , type : "flags.10?true" } , { name : "channels" , type : "flags.15?true" } , { name : "offset" , type : "int" } , { name : "limit" , type : "int" } , { name : "hash" , type : "int" } ] , type : "contacts.TopPeers" } , { id : "451113900" , method : "contacts.resetTopPeerRating" , params : [ { name : "category" , type : "TopPeerCategory" } , { name : "peer" , type : "InputPeer" } ] , type : "Bool" } , { id : "764901049" , method : "messages.getPeerDialogs" , params : [ { name : "peers" , type : "Vector<InputPeer>" } ] , type : "messages.PeerDialogs" } , { id : "-1137057461" , method : "messages.saveDraft" , params : [ { name : "flags" , type : "#" } , { name : "no_webpage" , type : "flags.1?true" } , { name : "reply_to_msg_id" , type : "flags.0?int" } , { name : "peer" , type : "InputPeer" } , { name : "message" , type : "string" } , { name : "entities" , type : "flags.3?Vector<MessageEntity>" } ] , type : "Bool" } , { id : "1782549861" , method : "messages.getAllDrafts" , params : [ ] , type : "Updates" } , { id : "766298703" , method : "messages.getFeaturedStickers" , params : [ { name : "hash" , type : "int" } ] , type : "messages.FeaturedStickers" } , { id : "1527873830" , method : "messages.readFeaturedStickers" , params : [ { name : "id" , type : "Vector<long>" } ] , type : "Bool" } , { id : "1587647177" , method : "messages.getRecentStickers" , params : [ { name : "flags" , type : "#" } , { name : "attached" , type : "flags.0?true" } , { name : "hash" , type : "int" } ] , type : "messages.RecentStickers" } , { id : "958863608" , method : "messages.saveRecentSticker" , params : [ { name : "flags" , type : "#" } , { name : "attached" , type : "flags.0?true" } , { name : "id" , type : "InputDocument" } , { name : "unsave" , type : "Bool" } ] , type : "Bool" } , { id : "-1986437075" , method : "messages.clearRecentStickers" , params : [ { name : "flags" , type : "#" } , { name : "attached" , type : "flags.0?true" } ] , type : "Bool" } , { id : "1475442322" , method : "messages.getArchivedStickers" , params : [ { name : "flags" , type : "#" } , { name : "masks" , type : "flags.0?true" } , { name : "offset_id" , type : "long" } , { name : "limit" , type : "int" } ] , type : "messages.ArchivedStickers" } , { id : "353818557" , method : "account.sendConfirmPhoneCode" , params : [ { name : "flags" , type : "#" } , { name : "allow_flashcall" , type : "flags.0?true" } , { name : "hash" , type : "string" } , { name : "current_number" , type : "flags.0?Bool" } ] , type : "auth.SentCode" } , { id : "1596029123" , method : "account.confirmPhone" , params : [ { name : "phone_code_hash" , type : "string" } , { name : "phone_code" , type : "string" } ] , type : "Bool" } , { id : "-1920105769" , method : "channels.getAdminedPublicChannels" , params : [ ] , type : "messages.Chats" } , { id : "1706608543" , method : "messages.getMaskStickers" , params : [ { name : "hash" , type : "int" } ] , type : "messages.AllStickers" } , { id : "-866424884" , method : "messages.getAttachedStickers" , params : [ { name : "media" , type : "InputStickeredMedia" } ] , type : "Vector<StickerSetCovered>" } , { id : "-1907842680" , method : "auth.dropTempAuthKeys" , params : [ { name : "except_auth_keys" , type : "Vector<long>" } ] , type : "Bool" } , { id : "-1896289088" , method : "messages.setGameScore" , params : [ { name : "flags" , type : "#" } , { name : "edit_message" , type : "flags.0?true" } , { name : "force" , type : "flags.1?true" } , { name : "peer" , type : "InputPeer" } , { name : "id" , type : "int" } , { name : "user_id" , type : "InputUser" } , { name : "score" , type : "int" } ] , type : "Updates" } , { id : "363700068" , method : "messages.setInlineGameScore" , params : [ { name : "flags" , type : "#" } , { name : "edit_message" , type : "flags.0?true" } , { name : "force" , type : "flags.1?true" } , { name : "id" , type : "InputBotInlineMessageID" } , { name : "user_id" , type : "InputUser" } , { name : "score" , type : "int" } ] , type : "Bool" } , { id : "-400399203" , method : "messages.getGameHighScores" , params : [ { name : "peer" , type : "InputPeer" } , { name : "id" , type : "int" } , { name : "user_id" , type : "InputUser" } ] , type : "messages.HighScores" } , { id : "258170395" , method : " messages . getInlineGameHighScor
"1f539" : [ "🔹" , [ "small_blue_diamond" ] ] , "1f53a" : [ "🔺" , [ "small_red_triangle" ] ] , "1f53b" : [ "🔻" , [ "small_red_triangle_down" ] ] , "1f53c" : [ "🔼" , [ "arrow_up_small" ] ] , "1f53d" : [ "🔽" , [ "arrow_down_small" ] ] , "1f550" : [ "🕐" , [ "clock1" ] ] , "1f551" : [ "🕑" , [ "clock2" ] ] , "1f552" : [ "🕒" , [ "clock3" ] ] , "1f553" : [ "🕓" , [ "clock4" ] ] , "1f554" : [ "🕔" , [ "clock5" ] ] , "1f555" : [ "🕕" , [ "clock6" ] ] , "1f556" : [ "🕖" , [ "clock7" ] ] , "1f557" : [ "🕗" , [ "clock8" ] ] , "1f558" : [ "🕘" , [ "clock9" ] ] , "1f559" : [ "🕙" , [ "clock10" ] ] , "1f55a" : [ "🕚" , [ "clock11" ] ] , "1f55b" : [ "🕛" , [ "clock12" ] ] , "1f55c" : [ "🕜" , [ "clock130" ] ] , "1f55d" : [ "🕝" , [ "clock230" ] ] , "1f55e" : [ "🕞" , [ "clock330" ] ] , "1f55f" : [ "🕟" , [ "clock430" ] ] , "1f560" : [ "🕠" , [ "clock530" ] ] , "1f561" : [ "🕡" , [ "clock630" ] ] , "1f562" : [ "🕢" , [ "clock730" ] ] , "1f563" : [ "🕣" , [ "clock830" ] ] , "1f564" : [ "🕤" , [ "clock930" ] ] , "1f565" : [ "🕥" , [ "clock1030" ] ] , "1f566" : [ "🕦" , [ "clock1130" ] ] , "1f567" : [ "🕧" , [ "clock1230" ] ] , "1f5fb" : [ "🗻" , [ "mount_fuji" ] ] , "1f5fc" : [ "🗼" , [ "tokyo_tower" ] ] , "1f5fd" : [ "🗽" , [ "statue_of_liberty" ] ] , "1f5fe" : [ "🗾" , [ "japan" ] ] , "1f5ff" : [ "🗿" , [ "moyai" ] ] , "1f600" : [ "😀" , [ "grinning" ] ] , "1f601" : [ "😁" , [ "grin" ] ] , "1f602" : [ "😂" , [ "joy" ] ] , "1f603" : [ "😃" , [ "smiley" ] , ":)" ] , "1f604" : [ "😄" , [ "smile" ] , ":)" ] , "1f605" : [ "😅" , [ "sweat_smile" ] ] , "1f606" : [ "😆" , [ "laughing" , "satisfied" ] ] , "1f607" : [ "😇" , [ "innocent" ] ] , "1f608" : [ "😈" , [ "smiling_imp" ] ] , "1f609" : [ "😉" , [ "wink" ] , ";)" ] , "1f60a" : [ "😊" , [ "blush" ] ] , "1f60b" : [ "😋" , [ "yum" ] ] , "1f60c" : [ "😌" , [ "relieved" ] ] , "1f60d" : [ "😍" , [ "heart_eyes" ] ] , "1f60e" : [ "😎" , [ "sunglasses" ] ] , "1f60f" : [ "😏" , [ "smirk" ] ] , "1f610" : [ "😐" , [ "neutral_face" ] ] , "1f611" : [ "😑" , [ "expressionless" ] ] , "1f612" : [ "😒" , [ "unamused" ] ] , "1f613" : [ "😓" , [ "sweat" ] ] , "1f614" : [ "😔" , [ "pensive" ] ] , "1f615" : [ "😕" , [ "confused" ] ] , "1f616" : [ "😖" , [ "confounded" ] ] , "1f617" : [ "😗" , [ "kissing" ] ] , "1f618" : [ "😘" , [ "kissing_heart" ] ] , "1f619" : [ "😙" , [ "kissing_smiling_eyes" ] ] , "1f61a" : [ "😚" , [ "kissing_closed_eyes" ] ] , "1f61b" : [ "😛" , [ "stuck_out_tongue" ] ] , "1f61c" : [ "😜" , [ "stuck_out_tongue_winking_eye" ] , ";p" ] , "1f61d" : [ "😝" , [ "stuck_out_tongue_closed_eyes" ] ] , "1f61e" : [ "😞" , [ "disappointed" ] , ":(" ] , "1f61f" : [ "😟" , [ "worried" ] ] , "1f620" : [ "😠" , [ "angry" ] ] , "1f621" : [ "😡" , [ "rage" ] ] , "1f622" : [ "😢" , [ "cry" ] , ":'(" ] , "1f623" : [ "😣" , [ "persevere" ] ] , "1f624" : [ "😤" , [ "triumph" ] ] , "1f625" : [ "😥" , [ "disappointed_relieved" ] ] , "1f626" : [ "😦" , [ "frowning" ] ] , "1f627" : [ "😧" , [ "anguished" ] ] , "1f628" : [ "😨" , [ "fearful" ] ] , "1f629" : [ "😩" , [ "weary" ] ] , "1f62a" : [ "😪" , [ "sleepy" ] ] , "1f62b" : [ "😫" , [ "tired_face" ] ] , "1f62c" : [ "😬" , [ "grimacing" ] ] , "1f62d" : [ "😭" , [ "sob" ] , ":'(" ] , "1f62e" : [ "😮" , [ "open_mouth" ] ] , "1f62f" : [ "😯" , [ "hushed" ] ] , "1f630" : [ "😰" , [ "cold_sweat" ] ] , "1f631" : [ "😱" , [ "scream" ] ] , "1f632" : [ "😲" , [ "astonished" ] ] , "1f633" : [ "😳" , [ "flushed" ] ] , "1f634" : [ "😴" , [ "sleeping" ] ] , "1f635" : [ "😵" , [ "dizzy_face" ] ] , "1f636" : [ "😶" , [ "no_mouth" ] ] , "1f637" : [ "😷" , [ "mask" ] ] , "1f638" : [ "😸" , [ "smile_cat" ] ] , "1f639" : [ "😹" , [ "joy_cat" ] ] , "1f63a" : [ "😺" , [ "smiley_cat" ] ] , "1f63b" : [ "😻" , [ "heart_eyes_cat" ] ] , "1f63c" : [ "😼" , [ "smirk_cat" ] ] , "1f63d" : [ "😽" , [ "kissing_cat" ] ] , "1f63e" : [ "😾" , [ "pouting_cat" ] ] , "1f63f" : [ "😿" , [ "crying_cat_face" ] ] , "1f640" : [ "🙀" , [ "scream_cat" ] ] , "1f645" : [ "🙅" , [ "no_good" ] ] , "1f646" : [ "🙆" , [ "ok_woman" ] ] , "1f647" : [ "🙇" , [ "bow" ] ] , "1f648" : [ "🙈" , [ "see_no_evil" ] ] , "1f649" : [ "🙉" , [ "hear_no_evil" ] ] , "1f64a" : [ "🙊" , [ "speak_no_evil" ] ] , "1f64b" : [ "🙋" , [ "raising_hand" ] ] , "1f64c" : [ "🙌" , [ "raised_hands" ] ] , "1f64d" : [ "🙍" , [ "person_frowning" ] ] , "1f64e" : [ "🙎" , [ "person_with_pouting_face" ] ] , "1f64f" : [ "🙏" , [ "pray" ] ] , "1f680" : [ "🚀" , [ "rocket" ] ] , "1f681" : [ "🚁" , [ "helicopter" ] ] , "1f682" : [ "🚂" , [ "steam_locomotive" ] ] , "1f683" : [ "🚃" , [ "railway_car" ] ] , "1f68b" : [ "🚋" , [ "train" ] ] , "1f684" : [ "🚄" , [ "bullettrain_side" ] ] , "1f685" : [ "🚅" , [ "bullettrain_front" ] ] , "1f686" : [ "🚆" , [ "train2" ] ] , "1f687" : [ "🚇" , [ "metro" ] ] , "1f688" : [ "🚈" , [ "light_rail" ] ] , "1f689" : [ "🚉" , [ "station" ] ] , "1f68a" : [ "🚊" , [ "tram" ] ] , "1f68c" : [ "🚌" , [ "bus" ] ] , "1f68d" : [ "🚍" , [ "oncoming_bus" ] ] , "1f68e" : [ "🚎" , [ "trolleybus" ] ] , "1f68f" : [ "🚏" , [ "busstop" ] ] , "1f690" : [ "🚐" , [ "minibus" ] ] , "1f691" : [ "🚑" , [ "ambulance" ] ] , "1f692" : [ "🚒" , [ "fire_engine" ] ] ,
Config . LangCountries = { es : "ES" , ru : "RU" , en : "US" , de : "DE" , it : "IT" , nl : "NL" , fr : "FR" , ca : "ES" , "es-419" : "MX" , ar : "SA" , he : "IL" , tr : "TR" , id : "ID" , pl : "PL" } , function ( e ) { function t ( e ) { l = e } function n ( ) { c = ! 0 } function i ( ) { return c ? ( c = ! 1 , "" ) : l } function a ( e , t ) { var n = ! 1 ; Array . isArray ( e ) || ( e = Array . prototype . slice . call ( arguments ) , t = e . pop ( ) , n = 1 == e . length ) ; var a , r , o , s = [ ] , l = ! 0 , c = i ( ) ; for ( r = 0 ; r < e . length ; r ++ ) if ( o = e [ r ] = c + e [ r ] , "xt_" != o . substr ( 0 , 3 ) && void 0 !== d [ o ] ) s . push ( d [ o ] ) ; else if ( p ) { try { a = localStorage . getItem ( o ) } catch ( f ) { p = ! 1 } try { a = void 0 !== a && null !== a && JSON . parse ( a ) } catch ( f ) { a = ! 1 } s . push ( d [ o ] = a ) } else u ? l = ! 1 : s . push ( d [ o ] = ! 1 ) ; return l ? t ( n ? s [ 0 ] : s ) : void chrome . storage . local . get ( e , function ( i ) { var a ; for ( s = [ ] , r = 0 ; r < e . length ; r ++ ) o = e [ r ] , a = i [ o ] , a = void 0 !== a && null !== a && JSON . parse ( a ) , s . push ( d [ o ] = a ) ; t ( n ? s [ 0 ] : s ) } ) } function r ( e , t ) { var n , a , r = { } , o = i ( ) ; for ( n in e ) if ( e . hasOwnProperty ( n ) ) if ( a = e [ n ] , n = o + n , d [ n ] = a , a = JSON . stringify ( a ) , p ) try { localStorage . setItem ( n , a ) } catch ( s ) { p = ! 1 } else r [ n ] = a ; return p || ! u ? void ( t && t ( ) ) : void chrome . storage . local . set ( r , t ) } function o ( e , t ) { Array . isArray ( e ) || ( e = Array . prototype . slice . call ( arguments ) , "function" == typeof e [ e . length - 1 ] && ( t = e . pop ( ) ) ) ; var n , a , r = i ( ) ; for ( n = 0 ; n < e . length ; n ++ ) if ( a = e [ n ] = r + e [ n ] , delete d [ a ] , p ) try { localStorage . removeItem ( a ) } catch ( o ) { p = ! 1 } u ? chrome . storage . local . remove ( e , t ) : t && t ( ) } function s ( e ) { if ( p ) try { localStorage . clear ( ) } catch ( t ) { p = ! 1 } u ? chrome . storage . local . clear ( function ( ) { d = { } , e ( ) } ) : ( d = { } , e ( ) ) } var l = "" , c = ! 1 , d = { } , u = ! ! ( e . chrome && chrome . storage && chrome . storage . local ) , p = ! u && ! ! e . localStorage ; e . ConfigStorage = { prefix : t , noPrefix : n , get : a , set : r , remove : o , clear : s } } ( this ) , function ( ) { try { window == window . top || window . chrome && chrome . app && chrome . app . window ? document . documentElement . style . display = "block" : top . location = self . location } catch ( e ) { console . error ( "CJ protection" , e ) } var t = [ Config . Navigator . osX ? "osx" : "non_osx" , Config . Navigator . msie ? "msie" : "non_msie" , Config . Navigator . retina ? "is_2x" : "is_1x" ] ; Config . Modes . ios _standalone && t . push ( "ios_standalone" ) , $ ( document . body ) . addClass ( t . join ( " " ) ) , ConfigStorage . get ( "layout_selected" , "i18n_locale" , function ( e ) { var t = e [ 0 ] , n = e [ 1 ] , i = "en-us" , a = { dom : ! 1 , i18n _ng : ! 1 , i18n _messages : ! 1 , i18n _fallback : ! 1 } , r = function ( ) { var e , t = ! 0 ; for ( e in a ) if ( a . hasOwnProperty ( e ) && a [ e ] === ! 1 ) { t = ! 1 ; break } t && ( a . boot = ! 1 , angular . bootstrap ( document , [ "myApp" ] ) ) } ; switch ( Config . Modes . force _mobile ? t = "mobile" : Config . Modes . force _desktop && ( t = "desktop" ) , t ) { case "mobile" : Config . Mobile = ! 0 ; break ; case "desktop" : Config . Mobile = ! 1 ; break ; default : var o = $ ( window ) . width ( ) ; Config . Mobile = Config . Navigator . mobile || o > 10 && o < 480 } $ ( "head" ) . append ( '<link rel="stylesheet" href="css/' + ( Config . Mobile ? "mobile.css" : "desktop.css" ) + '" />' ) , n || ( n = ( navigator . language || "" ) . toLowerCase ( ) , n = Config . I18n . aliases [ n ] || n ) ; for ( var s = 0 ; s < Config . I18n . supported . length ; s ++ ) if ( Config . I18n . supported [ s ] == n ) { Config . I18n . locale = n ; break } a . i18n _ng = Config . I18n . locale == i , $ . getJSON ( "js/locales/" + Config . I18n . locale + ".json" ) . success ( function ( e ) { Config . I18n . messages = e , a . i18n _messages = ! 0 , Config . I18n . locale == i && ( a . i18n _fallback = ! 0 ) , r ( ) } ) , Config . I18n . locale != i && $ . getJSON ( "js/locales/" + i + ".json" ) . success ( function ( e ) { Config . I18n . fallback _messages = e , a . i18n _fallback = ! 0 , r ( ) } ) , $ ( document ) . ready ( function ( ) { a . dom = ! 0 , a . i18n _ng ? r ( ) : $ ( "<script>" ) . appendTo ( "body" ) . on ( "load" , function ( ) { a . i18n _ng = ! 0 , r ( ) } ) . attr ( "src" , "vendor/angular/i18n/angular-locale_" + Config . I18n . locale + ".js" ) } ) } ) } ( ) , function ( ) { function e ( ) { t || safeConfirm ( { type : "WEBOGRAM_UPDATED_RELOAD" , message : "A new version of Webogram is downloaded. Launch it?" } , function ( e ) { e ? window . location . reload ( ) : t = ! 0 } ) } if ( window . safeConfirm = function ( e , t ) { "string" == typeof e && ( e = { message : e } ) ; var n = ! 1 ; try { n = confirm ( e . message ) } catch ( i ) { n = ! 0 } setTimeout ( function ( ) { t ( n ) } , 10 ) } , ( navigator . serviceWorker || window . applicationCache ) && ! Config . Modes . packed && window . addEventListener ) { var t = ! 1 ; if ( navigator . serviceWorker ) navigator . serviceWorker . register ( "service_worker.js" ) . then ( function ( t ) { console . log ( "Offline worker registered" ) , t . addEventListener ( "updatefound" , function ( ) { var t = this . installing ; t . addEventListener ( "statechange" , function ( ) { switch ( t . state ) { case "installed" : navigator . serviceWorker . controller &
} } ; return n . elem = e , n } function Ke ( e , t , n ) { n . call ( e , t ) } function Ye ( e , t , n ) { var i = t . relatedTarget ; i && ( i === e || Aa . call ( e , i ) ) || n . call ( e , t ) } function Xe ( ) { this . $get = function ( ) { return c ( $e , { hasClass : function ( e , t ) { return e . attr && ( e = e [ 0 ] ) , Ne ( e , t ) } , addClass : function ( e , t ) { return e . attr && ( e = e [ 0 ] ) , Fe ( e , t ) } , removeClass : function ( e , t ) { return e . attr && ( e = e [ 0 ] ) , Le ( e , t ) } } ) } } function Je ( e , t ) { var n = e && e . $$hashKey ; if ( n ) return "function" == typeof n && ( n = e . $$hashKey ( ) ) , n ; var i = typeof e ; return n = "function" == i || "object" == i && null !== e ? e . $$hashKey = i + ":" + ( t || o ) ( ) : i + ":" + e } function Ze ( e , t ) { if ( t ) { var n = 0 ; this . nextUid = function ( ) { return ++ n } } i ( e , this . put , this ) } function Qe ( e ) { return Function . prototype . toString . call ( e ) + " " } function et ( e ) { var t = Qe ( e ) . replace ( Oa , "" ) , n = t . match ( xa ) || t . match ( Pa ) ; return n } function tt ( e ) { var t = et ( e ) ; return t ? "function(" + ( t [ 1 ] || "" ) . replace ( /[\s\r\n]+/ , " " ) + ")" : "fn" } function nt ( e , t , n ) { var a , r , o ; if ( "function" == typeof e ) { if ( ! ( a = e . $inject ) ) { if ( a = [ ] , e . length ) { if ( t ) throw w ( n ) && n || ( n = e . name || tt ( e ) ) , Na ( "strictdi" , "{0} is not using explicit annotation and cannot be invoked in strict mode" , n ) ; r = et ( e ) , i ( r [ 1 ] . split ( Da ) , function ( e ) { e . replace ( Ra , function ( e , t , n ) { a . push ( n ) } ) } ) } e . $inject = a } } else Yi ( e ) ? ( o = e . length - 1 , de ( e [ o ] , "fn" ) , a = e . slice ( 0 , o ) ) : de ( e , "fn" , ! 0 ) ; return a } function it ( e , t ) { function n ( e ) { return function ( t , n ) { return y ( t ) ? void i ( t , r ( e ) ) : e ( t , n ) } } function a ( e , t ) { if ( ue ( e , "service" ) , ( S ( t ) || Yi ( t ) ) && ( t = M . instantiate ( t ) ) , ! t . $get ) throw Na ( "pget" , "Provider '{0}' must define $get factory method." , e ) ; return k [ e + g ] = t } function o ( e , t ) { return function ( ) { var n = T . invoke ( t , this ) ; if ( _ ( n ) ) throw Na ( "undef" , "Provider '{0}' must return a value from $get factory method." , e ) ; return n } } function s ( e , t , n ) { return a ( e , { $get : n !== ! 1 ? o ( e , t ) : t } ) } function l ( e , t ) { return s ( e , [ "$injector" , function ( e ) { return e . instantiate ( t ) } ] ) } function c ( e , t ) { return s ( e , h ( t ) , ! 1 ) } function d ( e , t ) { ue ( e , "constant" ) , k [ e ] = t , A [ e ] = t } function u ( e , t ) { var n = M . get ( e + g ) , i = n . $get ; n . $get = function ( ) { var e = T . invoke ( i , n ) ; return T . invoke ( t , null , { $delegate : e } ) } } function p ( e ) { ce ( _ ( e ) || Yi ( e ) , "modulesToLoad" , "not an array" ) ; var t , n = [ ] ; return i ( e , function ( e ) { function i ( e ) { var t , n ; for ( t = 0 , n = e . length ; t < n ; t ++ ) { var i = e [ t ] , a = M . get ( i [ 0 ] ) ; a [ i [ 1 ] ] . apply ( a , i [ 2 ] ) } } if ( ! b . get ( e ) ) { b . put ( e , ! 0 ) ; try { w ( e ) ? ( t = Bi ( e ) , n = n . concat ( p ( t . requires ) ) . concat ( t . _runBlocks ) , i ( t . _invokeQueue ) , i ( t . _configBlocks ) ) : S ( e ) ? n . push ( M . invoke ( e ) ) : Yi ( e ) ? n . push ( M . invoke ( e ) ) : de ( e , "module" ) } catch ( a ) { throw Yi ( e ) && ( e = e [ e . length - 1 ] ) , a . message && a . stack && a . stack . indexOf ( a . message ) == - 1 && ( a = a . message + "\n" + a . stack ) , Na ( "modulerr" , "Failed to instantiate module {0} due to:\n{1}" , e , a . stack || a . message || a ) } } } ) , n } function f ( e , n ) { function i ( t , i ) { if ( e . hasOwnProperty ( t ) ) { if ( e [ t ] === m ) throw Na ( "cdep" , "Circular dependency found: {0}" , t + " <- " + v . join ( " <- " ) ) ; return e [ t ] } try { return v . unshift ( t ) , e [ t ] = m , e [ t ] = n ( t , i ) } catch ( a ) { throw e [ t ] === m && delete e [ t ] , a } finally { v . shift ( ) } } function a ( e , n , a ) { for ( var r = [ ] , o = it . $$annotate ( e , t , a ) , s = 0 , l = o . length ; s < l ; s ++ ) { var c = o [ s ] ; if ( "string" != typeof c ) throw Na ( "itkn" , "Incorrect injection token! Expected service name as string, got {0}" , c ) ; r . push ( n && n . hasOwnProperty ( c ) ? n [ c ] : i ( c , a ) ) } return r } function r ( e ) { return ! ( Li <= 11 ) && ( "function" == typeof e && /^(?:class\s|constructor\()/ . test ( Qe ( e ) ) ) } function o ( e , t , n , i ) { "string" == typeof n && ( i = n , n = null ) ; var o = a ( e , n , i ) ; return Yi ( e ) && ( e = e [ e . length - 1 ] ) , r ( e ) ? ( o . unshift ( null ) , new ( Function . prototype . bind . apply ( e , o ) ) ) : e . apply ( t , o ) } function s ( e , t , n ) { var i = Yi ( e ) ? e [ e . length - 1 ] : e , r = a ( e , t , n ) ; return r . unshift ( null ) , new ( Function . prototype . bind . apply ( i , r ) ) } return { invoke : o , instantiate : s , get : i , annotate : it . $$annotate , has : function ( t ) { return k . hasOwnProperty ( t + g ) || e . hasOwnProperty ( t ) } } } t = t === ! 0 ; var m = { } , g = "Provider" , v = [ ] , b = new Ze ( [ ] , ( ! 0 ) ) , k = { $provide : { provider : n ( a ) , factory : n ( s ) , service : n ( l ) , value : n ( c ) , constant : n ( d ) , decorator : u } } , M = k . $injector = f ( k , function ( e , t ) { throw Gi . isString ( t ) && v . push ( t ) , Na ( "unpr" , "Unknown provider: {0}" , v . join ( " <- " ) ) } ) , A = { } , C = f ( A , function ( e , t ) { var n = M . get ( e + g , t ) ; return T . invoke ( n . $get , n , void 0 , e ) } ) , T = C ; k [ "$injector" + g ] = { $get : h ( C ) } ; var E = p ( e ) ; return T = C . get ( "$injector" ) , T . strictDi = t , i ( E , function ( e ) { e && T . invoke ( e ) } ) , T } function at (
var l = c ( { method : "get" , transformRequest : e . transformRequest , transformResponse : e . transformResponse , paramSerializer : e . paramSerializer } , n ) ; l . headers = s ( n ) , l . method = Ri ( l . method ) , l . paramSerializer = w ( l . paramSerializer ) ? p . get ( l . paramSerializer ) : l . paramSerializer ; var d = function ( t ) { var n = t . headers , a = It ( t . data , $t ( n ) , void 0 , t . transformRequest ) ; return _ ( a ) && i ( n , function ( e , t ) { "content-type" === Di ( t ) && delete n [ t ] } ) , _ ( t . withCredentials ) && ! _ ( e . withCredentials ) && ( t . withCredentials = e . withCredentials ) , g ( t , a ) . then ( r , r ) } , f = [ d , void 0 ] , m = u . when ( l ) ; for ( i ( M , function ( e ) { ( e . request || e . requestError ) && f . unshift ( e . request , e . requestError ) , ( e . response || e . responseError ) && f . push ( e . response , e . responseError ) } ) ; f . length ; ) { var h = f . shift ( ) , v = f . shift ( ) ; m = m . then ( h , v ) } return a ? ( m . success = function ( e ) { return de ( e , "fn" ) , m . then ( function ( t ) { e ( t . data , t . status , t . headers , l ) } ) , m } , m . error = function ( e ) { return de ( e , "fn" ) , m . then ( null , function ( t ) { e ( t . data , t . status , t . headers , l ) } ) , m } ) : ( m . success = ar ( "success" ) , m . error = ar ( "error" ) ) , m } function m ( e ) { i ( arguments , function ( e ) { f [ e ] = function ( t , n ) { return f ( c ( { } , n || { } , { method : e , url : t } ) ) } } ) } function h ( e ) { i ( arguments , function ( e ) { f [ e ] = function ( t , n , i ) { return f ( c ( { } , i || { } , { method : e , url : t , data : n } ) ) } } ) } function g ( t , a ) { function r ( e ) { if ( e ) { var t = { } ; return i ( e , function ( e , i ) { t [ i ] = function ( t ) { function i ( ) { e ( t ) } n ? d . $applyAsync ( i ) : d . $$phase ? i ( ) : d . $apply ( i ) } } ) , t } } function l ( e , t , i , a ) { function r ( ) { c ( t , e , i , a ) } h && ( xt ( e ) ? h . put ( A , [ e , t , Et ( i ) , a ] ) : h . remove ( A ) ) , n ? d . $applyAsync ( r ) : ( r ( ) , d . $$phase || d . $apply ( ) ) } function c ( e , n , i , a ) { n = n >= - 1 ? n : 0 , ( xt ( n ) ? w . resolve : w . reject ) ( { data : e , status : n , headers : $t ( i ) , config : t , statusText : a } ) } function p ( e ) { c ( e . data , e . status , ge ( e . headers ( ) ) , e . statusText ) } function m ( ) { var e = f . pendingRequests . indexOf ( t ) ; e !== - 1 && f . pendingRequests . splice ( e , 1 ) } var h , g , w = u . defer ( ) , M = w . promise , S = t . headers , A = b ( t . url , t . paramSerializer ( t . params ) ) ; if ( f . pendingRequests . push ( t ) , M . then ( m , m ) , ! t . cache && ! e . cache || t . cache === ! 1 || "GET" !== t . method && "JSONP" !== t . method || ( h = y ( t . cache ) ? t . cache : y ( e . cache ) ? e . cache : k ) , h && ( g = h . get ( A ) , v ( g ) ? P ( g ) ? g . then ( p , p ) : Yi ( g ) ? c ( g [ 1 ] , g [ 0 ] , ge ( g [ 2 ] ) , g [ 3 ] ) : c ( g , 200 , { } , "OK" ) : h . put ( A , M ) ) , _ ( g ) ) { var C = On ( t . url ) ? s ( ) [ t . xsrfCookieName || e . xsrfCookieName ] : void 0 ; C && ( S [ t . xsrfHeaderName || e . xsrfHeaderName ] = C ) , o ( t . method , A , a , l , S , t . timeout , t . withCredentials , t . responseType , r ( t . eventHandlers ) , r ( t . uploadEventHandlers ) ) } return M } function b ( e , t ) { return t . length > 0 && ( e += ( e . indexOf ( "?" ) == - 1 ? "?" : "&" ) + t ) , e } var k = l ( "$http" ) ; e . paramSerializer = w ( e . paramSerializer ) ? p . get ( e . paramSerializer ) : e . paramSerializer ; var M = [ ] ; return i ( r , function ( e ) { M . unshift ( w ( e ) ? p . get ( e ) : p . invoke ( e ) ) } ) , f . pendingRequests = [ ] , m ( "get" , "delete" , "head" , "jsonp" ) , h ( "post" , "put" , "patch" ) , f . defaults = e , f } ] } function Dt ( ) { this . $get = function ( ) { return function ( ) { return new e . XMLHttpRequest } } } function Rt ( ) { this . $get = [ "$browser" , "$window" , "$document" , "$xhrFactory" , function ( e , t , n , i ) { return Ot ( e , i , e . defer , t . angular . callbacks , n [ 0 ] ) } ] } function Ot ( e , t , n , a , r ) { function o ( e , t , n ) { var i = r . createElement ( "script" ) , o = null ; return i . type = "text/javascript" , i . src = e , i . async = ! 0 , o = function ( e ) { ha ( i , "load" , o ) , ha ( i , "error" , o ) , r . body . removeChild ( i ) , i = null ; var s = - 1 , l = "unknown" ; e && ( "load" !== e . type || a [ t ] . called || ( e = { type : "error" } ) , l = e . type , s = "error" === e . type ? 404 : 200 ) , n && n ( s , l ) } , ma ( i , "load" , o ) , ma ( i , "error" , o ) , r . body . appendChild ( i ) , o } return function ( r , s , l , c , d , u , p , m , h , g ) { function y ( ) { k && k ( ) , M && M . abort ( ) } function b ( t , i , a , r , o ) { v ( C ) && n . cancel ( C ) , k = M = null , t ( i , a , r , o ) , e . $$completeOutstandingRequest ( f ) } if ( e . $$incOutstandingRequestCount ( ) , s = s || e . url ( ) , "jsonp" == Di ( r ) ) { var w = "_" + ( a . counter ++ ) . toString ( 36 ) ; a [ w ] = function ( e ) { a [ w ] . data = e , a [ w ] . called = ! 0 } ; var k = o ( s . replace ( "JSON_CALLBACK" , "angular.callbacks." + w ) , w , function ( e , t ) { b ( c , e , a [ w ] . data , "" , t ) , a [ w ] = f } ) } else { var M = t ( r , s ) ; M . open ( r , s , ! 0 ) , i ( d , function ( e , t ) { v ( e ) && M . setRequestHeader ( t , e ) } ) , M . onload = function ( ) { var e = M . statusText || "" , t = "response" in M ? M . response : M . responseText , n = 1223 === M . status ? 204 : M . status ; 0 === n && ( n = t ? 200 : "file" == Rn ( s ) . protocol ? 404 : 0 ) , b ( c , n , t , M . getAllResponseHeaders ( ) , e ) } ; var S = function ( ) { b ( c , - 1 , null , null , "" ) } ; if ( M . onerror = S , M . onabort = S , i ( h , function ( e , t ) { M . addEventListener ( t , e ) } ) , i ( g , function ( e , t ) { M . upload
var n , i , a = { } , r = e . chrome && e . chrome . app && e . chrome . app . runtime , o = ! r && e . history && e . history . pushState , s = u ( ( /android (\d+)/ . exec ( Di ( ( e . navigator || { } ) . userAgent ) ) || [ ] ) [ 1 ] ) , l = /Boxee/i . test ( ( e . navigator || { } ) . userAgent ) , c = t [ 0 ] || { } , d = /^(Moz|webkit|ms)(?=[A-Z])/ , p = c . body && c . body . style , f = ! 1 , m = ! 1 ; if ( p ) { for ( var h in p ) if ( i = d . exec ( h ) ) { n = i [ 0 ] , n = n [ 0 ] . toUpperCase ( ) + n . substr ( 1 ) ; break } n || ( n = "WebkitOpacity" in p && "webkit" ) , f = ! ! ( "transition" in p || n + "Transition" in p ) , m = ! ! ( "animation" in p || n + "Animation" in p ) , ! s || f && m || ( f = w ( p . webkitTransition ) , m = w ( p . webkitAnimation ) ) } return { history : ! ( ! o || s < 4 || l ) , hasEvent : function ( e ) { if ( "input" === e && Li <= 11 ) return ! 1 ; if ( _ ( a [ e ] ) ) { var t = c . createElement ( "div" ) ; a [ e ] = "on" + e in t } return a [ e ] } , csp : Qi ( ) , vendorPrefix : n , transitions : f , animations : m , android : s } } ] } function xn ( ) { var e ; this . httpOptions = function ( t ) { return t ? ( e = t , this ) : e } , this . $get = [ "$templateCache" , "$http" , "$q" , "$sce" , function ( t , n , i , a ) { function r ( o , s ) { function l ( e ) { if ( ! s ) throw kr ( "tpload" , "Failed to load template: {0} (HTTP status: {1} {2})" , o , e . status , e . statusText ) ; return i . reject ( e ) } r . totalPendingRequests ++ , w ( o ) && ! _ ( t . get ( o ) ) || ( o = a . getTrustedResourceUrl ( o ) ) ; var d = n . defaults && n . defaults . transformResponse ; return Yi ( d ) ? d = d . filter ( function ( e ) { return e !== Ct } ) : d === Ct && ( d = null ) , n . get ( o , c ( { cache : t , transformResponse : d } , e ) ) [ "finally" ] ( function ( ) { r . totalPendingRequests -- } ) . then ( function ( e ) { return t . put ( o , e . data ) , e . data } , l ) } return r . totalPendingRequests = 0 , r } ] } function Pn ( ) { this . $get = [ "$rootScope" , "$browser" , "$location" , function ( e , t , n ) { var a = { } ; return a . findBindings = function ( e , t , n ) { var a = e . getElementsByClassName ( "ng-binding" ) , r = [ ] ; return i ( a , function ( e ) { var a = Gi . element ( e ) . data ( "$binding" ) ; a && i ( a , function ( i ) { if ( n ) { var a = new RegExp ( "(^|\\s)" + Zi ( t ) + "(\\s|\\||$)" ) ; a . test ( i ) && r . push ( e ) } else i . indexOf ( t ) != - 1 && r . push ( e ) } ) } ) , r } , a . findModels = function ( e , t , n ) { for ( var i = [ "ng-" , "data-ng-" , "ng\\:" ] , a = 0 ; a < i . length ; ++ a ) { var r = n ? "=" : "*=" , o = "[" + i [ a ] + "model" + r + '"' + t + '"]' , s = e . querySelectorAll ( o ) ; if ( s . length ) return s } } , a . getLocation = function ( ) { return n . url ( ) } , a . setLocation = function ( t ) { t !== n . url ( ) && ( n . url ( t ) , e . $digest ( ) ) } , a . whenStable = function ( e ) { t . notifyWhenNoOutstandingRequests ( e ) } , a } ] } function Dn ( ) { this . $get = [ "$rootScope" , "$browser" , "$q" , "$$q" , "$exceptionHandler" , function ( e , t , n , i , a ) { function r ( r , s , l ) { S ( r ) || ( l = s , s = r , r = f ) ; var c , d = j ( arguments , 3 ) , u = v ( l ) && ! l , p = ( u ? i : n ) . defer ( ) , m = p . promise ; return c = t . defer ( function ( ) { try { p . resolve ( r . apply ( null , d ) ) } catch ( t ) { p . reject ( t ) , a ( t ) } finally { delete o [ m . $$timeoutId ] } u || e . $apply ( ) } , s ) , m . $$timeoutId = c , o [ c ] = p , m } var o = { } ; return r . cancel = function ( e ) { return ! ! ( e && e . $$timeoutId in o ) && ( o [ e . $$timeoutId ] . reject ( "canceled" ) , delete o [ e . $$timeoutId ] , t . defer . cancel ( e . $$timeoutId ) ) } , r } ] } function Rn ( e ) { var t = e ; return Li && ( Mr . setAttribute ( "href" , t ) , t = Mr . href ) , Mr . setAttribute ( "href" , t ) , { href : Mr . href , protocol : Mr . protocol ? Mr . protocol . replace ( /:$/ , "" ) : "" , host : Mr . host , search : Mr . search ? Mr . search . replace ( /^\?/ , "" ) : "" , hash : Mr . hash ? Mr . hash . replace ( /^#/ , "" ) : "" , hostname : Mr . hostname , port : Mr . port , pathname : "/" === Mr . pathname . charAt ( 0 ) ? Mr . pathname : "/" + Mr . pathname } } function On ( e ) { var t = w ( e ) ? Rn ( e ) : e ; return t . protocol === Sr . protocol && t . host === Sr . host } function Nn ( ) { this . $get = h ( e ) } function Ln ( e ) { function t ( e ) { try { return decodeURIComponent ( e ) } catch ( t ) { return e } } var n = e [ 0 ] || { } , i = { } , a = "" ; return function ( ) { var e , r , o , s , l , c = n . cookie || "" ; if ( c !== a ) for ( a = c , e = a . split ( "; " ) , i = { } , o = 0 ; o < e . length ; o ++ ) r = e [ o ] , s = r . indexOf ( "=" ) , s > 0 && ( l = t ( r . substring ( 0 , s ) ) , _ ( i [ l ] ) && ( i [ l ] = t ( r . substring ( s + 1 ) ) ) ) ; return i } } function Fn ( ) { this . $get = Ln } function Un ( e ) { function t ( a , r ) { if ( y ( a ) ) { var o = { } ; return i ( a , function ( e , n ) { o [ n ] = t ( n , e ) } ) , o } return e . factory ( a + n , r ) } var n = "Filter" ; this . register = t , this . $get = [ "$injector" , function ( e ) { return function ( t ) { return e . get ( t + n ) } } ] , t ( "currency" , qn ) , t ( "date" , ri ) , t ( "filter" , Bn ) , t ( "json" , oi ) , t ( "limitTo" , si ) , t ( "lowercase" , xr ) , t ( "number" , zn ) , t ( "orderBy" , ci ) , t ( "uppercase" , Pr ) } function Bn ( ) { return function ( e , i , a ) { if ( ! n ( e ) ) { if ( null == e ) return e ; throw t ( "filter" ) ( "notarray" , "Expected array but received: {0}" , e ) } var r , o , s = Vn ( i ) ; switch ( s ) { case "function" : r = i ; break ; case "boolean" : case "null" : case "number" : case "string" : o = ! 0 ; c
var t = or . exec ( e ) ; return ( t [ 1 ] || "" === e ) && this . path ( decodeURIComponent ( t [ 1 ] ) ) , ( t [ 2 ] || t [ 1 ] || "" === e ) && this . search ( t [ 3 ] || "" ) , this . hash ( t [ 5 ] || "" ) , this } , protocol : Xt ( "$$protocol" ) , host : Xt ( "$$host" ) , port : Xt ( "$$port" ) , path : Jt ( "$$path" , function ( e ) { return e = null !== e ? e . toString ( ) : "" , "/" == e . charAt ( 0 ) ? e : "/" + e } ) , search : function ( e , t ) { switch ( arguments . length ) { case 0 : return this . $$search ; case 1 : if ( w ( e ) || k ( e ) ) e = e . toString ( ) , this . $$search = Z ( e ) ; else { if ( ! y ( e ) ) throw lr ( "isrcharg" , "The first argument of the `$location#search()` call must be a string or an object." ) ; e = U ( e , { } ) , i ( e , function ( t , n ) { null == t && delete e [ n ] } ) , this . $$search = e } break ; default : _ ( t ) || null === t ? delete this . $$search [ e ] : this . $$search [ e ] = t } return this . $$compose ( ) , this } , hash : Jt ( "$$hash" , function ( e ) { return null !== e ? e . toString ( ) : "" } ) , replace : function ( ) { return this . $$replace = ! 0 , this } } ; i ( [ Yt , Kt , Gt ] , function ( e ) { e . prototype = Object . create ( cr ) , e . prototype . state = function ( t ) { if ( ! arguments . length ) return this . $$state ; if ( e !== Gt || ! this . $$html5 ) throw lr ( "nostate" , "History API state support is available only in HTML5 mode and only in browsers supporting HTML5 History API" ) ; return this . $$state = _ ( t ) ? null : t , this } } ) ; var dr = t ( "$parse" ) , ur = Function . prototype . call , pr = Function . prototype . apply , fr = Function . prototype . bind , mr = me ( ) ; i ( "+ - * / % === !== == != < > <= >= && || ! = |" . split ( " " ) , function ( e ) { mr [ e ] = ! 0 } ) ; var hr = { n : "\n" , f : "\f" , r : "\r" , t : "\t" , v : "\x0B" , "'" : "'" , '"' : '"' } , gr = function ( e ) { this . options = e } ; gr . prototype = { constructor : gr , lex : function ( e ) { for ( this . text = e , this . index = 0 , this . tokens = [ ] ; this . index < this . text . length ; ) { var t = this . text . charAt ( this . index ) ; if ( '"' === t || "'" === t ) this . readString ( t ) ; else if ( this . isNumber ( t ) || "." === t && this . isNumber ( this . peek ( ) ) ) this . readNumber ( ) ; else if ( this . isIdentifierStart ( this . peekMultichar ( ) ) ) this . readIdent ( ) ; else if ( this . is ( t , "(){}[].,;:?" ) ) this . tokens . push ( { index : this . index , text : t } ) , this . index ++ ; else if ( this . isWhitespace ( t ) ) this . index ++ ; else { var n = t + this . peek ( ) , i = n + this . peek ( 2 ) , a = mr [ t ] , r = mr [ n ] , o = mr [ i ] ; if ( a || r || o ) { var s = o ? i : r ? n : t ; this . tokens . push ( { index : this . index , text : s , operator : ! 0 } ) , this . index += s . length } else this . throwError ( "Unexpected next character " , this . index , this . index + 1 ) } } return this . tokens } , is : function ( e , t ) { return t . indexOf ( e ) !== - 1 } , peek : function ( e ) { var t = e || 1 ; return this . index + t < this . text . length && this . text . charAt ( this . index + t ) } , isNumber : function ( e ) { return "0" <= e && e <= "9" && "string" == typeof e } , isWhitespace : function ( e ) { return " " === e || "\r" === e || "\t" === e || "\n" === e || "\x0B" === e || " " === e } , isIdentifierStart : function ( e ) { return this . options . isIdentifierStart ? this . options . isIdentifierStart ( e , this . codePointAt ( e ) ) : this . isValidIdentifierStart ( e ) } , isValidIdentifierStart : function ( e ) { return "a" <= e && e <= "z" || "A" <= e && e <= "Z" || "_" === e || "$" === e } , isIdentifierContinue : function ( e ) { return this . options . isIdentifierContinue ? this . options . isIdentifierContinue ( e , this . codePointAt ( e ) ) : this . isValidIdentifierContinue ( e ) } , isValidIdentifierContinue : function ( e , t ) { return this . isValidIdentifierStart ( e , t ) || this . isNumber ( e ) } , codePointAt : function ( e ) { return 1 === e . length ? e . charCodeAt ( 0 ) : ( e . charCodeAt ( 0 ) << 10 ) + e . charCodeAt ( 1 ) - 56613888 } , peekMultichar : function ( ) { var e = this . text . charAt ( this . index ) , t = this . peek ( ) ; if ( ! t ) return e ; var n = e . charCodeAt ( 0 ) , i = t . charCodeAt ( 0 ) ; return n >= 55296 && n <= 56319 && i >= 56320 && i <= 57343 ? e + t : e } , isExpOperator : function ( e ) { return "-" === e || "+" === e || this . isNumber ( e ) } , throwError : function ( e , t , n ) { n = n || this . index ; var i = v ( t ) ? "s " + t + "-" + this . index + " [" + this . text . substring ( t , n ) + "]" : " " + n ; throw dr ( "lexerr" , "Lexer Error: {0} at column{1} in expression [{2}]." , e , i , this . text ) } , readNumber : function ( ) { for ( var e = "" , t = this . index ; this . index < this . text . length ; ) { var n = Di ( this . text . charAt ( this . index ) ) ; if ( "." == n || this . isNumber ( n ) ) e += n ; else { var i = this . peek ( ) ; if ( "e" == n && this . isExpOperator ( i ) ) e += n ; else if ( this . isExpOperator ( n ) && i && this . isNumber ( i ) && "e" == e . charAt ( e . length - 1 ) ) e += n ; else { if ( ! this . isExpOperator ( n ) || i && this . isNumber ( i ) || "e" != e . charAt ( e . length - 1 ) ) break ; this . throwError ( "Invalid exponent" ) } } this . index ++ } this . tokens . push ( { index : t , text : e , constant : ! 0 , value : Number ( e ) } ) } , readIdent : function ( ) { var e = this . index ; for ( this . index += thi
return { multiElement : ! 0 , transclude : "element" , priority : 600 , terminal : ! 0 , restrict : "A" , $$tlb : ! 0 , link : function ( n , i , a , r , o ) { var s , l , c ; n . $watch ( a . ngIf , function ( n ) { n ? l || o ( function ( n , r ) { l = r , n [ n . length ++ ] = t . $$createComment ( "end ngIf" , a . ngIf ) , s = { clone : n } , e . enter ( n , i . parent ( ) , i ) } ) : ( c && ( c . remove ( ) , c = null ) , l && ( l . $destroy ( ) , l = null ) , s && ( c = fe ( s . clone ) , e . leave ( c ) . then ( function ( ) { c = null } ) , s = null ) ) } ) } } } ] , mo = [ "$templateRequest" , "$anchorScroll" , "$animate" , function ( e , t , n ) { return { restrict : "ECA" , priority : 400 , terminal : ! 0 , transclude : "element" , controller : Gi . noop , compile : function ( i , a ) { var r = a . ngInclude || a . src , o = a . onload || "" , s = a . autoscroll ; return function ( i , a , l , c , d ) { var u , p , f , m = 0 , h = function ( ) { p && ( p . remove ( ) , p = null ) , u && ( u . $destroy ( ) , u = null ) , f && ( n . leave ( f ) . then ( function ( ) { p = null } ) , p = f , f = null ) } ; i . $watch ( r , function ( r ) { var l = function ( ) { ! v ( s ) || s && ! i . $eval ( s ) || t ( ) } , p = ++ m ; r ? ( e ( r , ! 0 ) . then ( function ( e ) { if ( ! i . $$destroyed && p === m ) { var t = i . $new ( ) ; c . template = e ; var s = d ( t , function ( e ) { h ( ) , n . enter ( e , null , a ) . then ( l ) } ) ; u = t , f = s , u . $emit ( "$includeContentLoaded" , r ) , i . $eval ( o ) } } , function ( ) { i . $$destroyed || p === m && ( h ( ) , i . $emit ( "$includeContentError" , r ) ) } ) , i . $emit ( "$includeContentRequested" , r ) ) : ( h ( ) , c . template = null ) } ) } } } } ] , ho = [ "$compile" , function ( t ) { return { restrict : "ECA" , priority : - 400 , require : "ngInclude" , link : function ( n , i , a , r ) { return qi . call ( i [ 0 ] ) . match ( /SVG/ ) ? ( i . empty ( ) , void t ( Ce ( r . template , e . document ) . childNodes ) ( n , function ( e ) { i . append ( e ) } , { futureParentElement : i } ) ) : ( i . html ( r . template ) , void t ( i . contents ( ) ) ( n ) ) } } } ] , go = di ( { priority : 450 , compile : function ( ) { return { pre : function ( e , t , n ) { e . $eval ( n . ngInit ) } } } } ) , _o = function ( ) { return { restrict : "A" , priority : 100 , require : "ngModel" , link : function ( e , t , n , a ) { var r = t . attr ( n . $attr . ngList ) || ", " , o = "false" !== n . ngTrim , s = o ? Ji ( r ) : r , l = function ( e ) { if ( ! _ ( e ) ) { var t = [ ] ; return e && i ( e . split ( s ) , function ( e ) { e && t . push ( o ? Ji ( e ) : e ) } ) , t } } ; a . $parsers . push ( l ) , a . $formatters . push ( function ( e ) { if ( Yi ( e ) ) return e . join ( r ) } ) , a . $isEmpty = function ( e ) { return ! e || ! e . length } } } } , vo = "ng-valid" , yo = "ng-invalid" , bo = "ng-pristine" , wo = "ng-dirty" , ko = "ng-untouched" , Mo = "ng-touched" , So = "ng-pending" , Ao = "ng-empty" , Co = "ng-not-empty" , To = t ( "ngModel" ) , Eo = [ "$scope" , "$exceptionHandler" , "$attrs" , "$element" , "$parse" , "$animate" , "$timeout" , "$rootScope" , "$q" , "$interpolate" , function ( e , t , n , a , r , o , s , l , c , d ) { this . $viewValue = Number . NaN , this . $modelValue = Number . NaN , this . $$rawModelValue = void 0 , this . $validators = { } , this . $asyncValidators = { } , this . $parsers = [ ] , this . $formatters = [ ] , this . $viewChangeListeners = [ ] , this . $untouched = ! 0 , this . $touched = ! 1 , this . $pristine = ! 0 , this . $dirty = ! 1 , this . $valid = ! 0 , this . $invalid = ! 1 , this . $error = { } , this . $$success = { } , this . $pending = void 0 , this . $name = d ( n . name || "" , ! 1 ) ( e ) , this . $$parentForm = Or ; var u , p = r ( n . ngModel ) , m = p . assign , h = p , g = m , y = null , b = this ; this . $$setOptions = function ( e ) { if ( b . $options = e , e && e . getterSetter ) { var t = r ( n . ngModel + "()" ) , i = r ( n . ngModel + "($$$p)" ) ; h = function ( e ) { var n = p ( e ) ; return S ( n ) && ( n = t ( e ) ) , n } , g = function ( e , t ) { S ( p ( e ) ) ? i ( e , { $$$p : t } ) : m ( e , t ) } } else if ( ! p . assign ) throw To ( "nonassign" , "Expression '{0}' is non-assignable. Element: {1}" , n . ngModel , X ( a ) ) } , this . $render = f , this . $isEmpty = function ( e ) { return _ ( e ) || "" === e || null === e || e !== e } , this . $$updateEmptyClasses = function ( e ) { b . $isEmpty ( e ) ? ( o . removeClass ( a , Co ) , o . addClass ( a , Ao ) ) : ( o . removeClass ( a , Ao ) , o . addClass ( a , Co ) ) } ; var w = 0 ; Ti ( { ctrl : this , $element : a , set : function ( e , t ) { e [ t ] = ! 0 } , unset : function ( e , t ) { delete e [ t ] } , $animate : o } ) , this . $setPristine = function ( ) { b . $dirty = ! 1 , b . $pristine = ! 0 , o . removeClass ( a , wo ) , o . addClass ( a , bo ) } , this . $setDirty = function ( ) { b . $dirty = ! 0 , b . $pristine = ! 1 , o . removeClass ( a , bo ) , o . addClass ( a , wo ) , b . $$parentForm . $setDirty ( ) } , this . $setUntouched = function ( ) { b . $touched = ! 1 , b . $untouched = ! 0 , o . setClass ( a , ko , Mo ) } , this . $setTouched = function ( ) { b . $touched = ! 0 , b . $untouched = ! 1 , o . setClass ( a , Mo , ko ) } , this . $rollbackViewValue = function ( ) { s . cancel ( y ) , b . $viewValue = b . $$lastCommittedViewValue , b . $render ( ) } , this . $validate = function ( ) { if ( ! k ( b . $modelValue ) || ! isNaN ( b . $modelValue ) ) { var e = b . $$lastCommittedViewValue , t = b . $$rawModelValue , n = b . $valid , i = b . $modelValue , a = b . $options && b . $options . allowInvalid ; b . $$runValidators ( t , e , function ( e ) { a || n === e || ( b . $modelValue = e ? t : void 0 , b . $modelValue !== i && b . $$write
transitionDuration : me , transitionDelay : fe , transitionProperty : D + re , animationDuration : pe , animationDelay : ue , animationIterationCount : O + le } , Me = { transitionDuration : me , transitionDelay : fe , animationDuration : pe , animationDelay : ue } , Se = [ "$animateProvider" , function ( e ) { var t = x ( ) , n = x ( ) ; this . $get = [ "$window" , "$$jqLite" , "$$AnimateRunner" , "$timeout" , "$$forceReflow" , "$sniffer" , "$$rAFScheduler" , "$$animateQueue" , function ( e , i , s , l , c , d , g , _ ) { function y ( e , t ) { var n = "$$ngAnimateParentKey" , i = e . parentNode , a = i [ n ] || ( i [ n ] = ++ B ) ; return a + "-" + e . getAttribute ( "class" ) + "-" + t } function b ( n , i , a , r ) { var o = t . get ( a ) ; return o || ( o = T ( e , n , r ) , "infinite" === o . animationIterationCount && ( o . animationIterationCount = 1 ) ) , t . put ( a , o ) , o } function S ( a , o , s , l ) { var c ; if ( t . count ( s ) > 0 && ( c = n . get ( s ) , ! c ) ) { var d = r ( o , "-stagger" ) ; i . addClass ( a , d ) , c = T ( e , a , l ) , c . animationDuration = Math . max ( c . animationDuration , 0 ) , c . transitionDuration = Math . max ( c . transitionDuration , 0 ) , i . removeClass ( a , d ) , n . put ( s , c ) } return c || { } } function E ( e ) { V . push ( e ) , g . waitUntilQuiet ( function ( ) { t . flush ( ) , n . flush ( ) ; for ( var e = c ( ) , i = 0 ; i < V . length ; i ++ ) V [ i ] ( e ) ; V . length = 0 } ) } function x ( e , t , n ) { var i = b ( e , t , n , ke ) , a = i . animationDelay , r = i . transitionDelay ; return i . maxDelay = a && r ? Math . max ( a , r ) : a || r , i . maxDuration = Math . max ( i . animationDuration * i . animationIterationCount , i . transitionDuration ) , i } var U = u ( i ) , B = 0 , V = [ ] ; return function ( e , n ) { function c ( ) { g ( ) } function u ( ) { g ( ! 0 ) } function g ( t ) { if ( ! ( G || Y && K ) ) { G = ! 0 , K = ! 1 , q . $$skipPreparationClasses || i . removeClass ( e , ke ) , i . removeClass ( e , Ae ) , k ( W , ! 1 ) , w ( W , ! 1 ) , H ( ce , function ( e ) { W . style [ e [ 0 ] ] = "" } ) , U ( e , q ) , f ( e , q ) , Object . keys ( z ) . length && H ( z , function ( e , t ) { e ? W . style . setProperty ( t , e ) : W . style . removeProperty ( t ) } ) , q . onDone && q . onDone ( ) , fe && fe . length && e . off ( fe . join ( " " ) , B ) ; var n = e . data ( ve ) ; n && ( l . cancel ( n [ 0 ] . timer ) , e . removeData ( ve ) ) , ee && ee . complete ( ! t ) } } function b ( e ) { Ue . blockTransition && w ( W , e ) , Ue . blockKeyframeAnimation && k ( W , ! ! e ) } function T ( ) { return ee = new s ( { end : c , cancel : u } ) , E ( L ) , g ( ) , { $$willAnimate : ! 1 , start : function ( ) { return ee } , end : c } } function B ( e ) { e . stopPropagation ( ) ; var t = e . originalEvent || e , n = t . $manualTimeStamp || Date . now ( ) , i = parseFloat ( t . elapsedTime . toFixed ( be ) ) ; Math . max ( n - le , 0 ) >= ie && i >= ae && ( Y = ! 0 , g ( ) ) } function V ( ) { function t ( ) { if ( ! G ) { if ( b ( ! 1 ) , H ( ce , function ( e ) { var t = e [ 0 ] , n = e [ 1 ] ; W . style [ t ] = n } ) , U ( e , q ) , i . addClass ( e , Ae ) , Ue . recalculateTimingStyles ) { if ( Se = W . className + " " + ke , Ee = y ( W , Se ) , Le = x ( W , Se , Ee ) , Fe = Le . maxDelay , ne = Math . max ( Fe , 0 ) , ae = Le . maxDuration , 0 === ae ) return void g ( ) ; Ue . hasTransitions = Le . transitionDuration > 0 , Ue . hasAnimations = Le . animationDuration > 0 } if ( Ue . applyAnimationDelay && ( Fe = "boolean" != typeof q . delay && $ ( q . delay ) ? parseFloat ( q . delay ) : Fe , ne = Math . max ( Fe , 0 ) , Le . animationDelay = Fe , Be = C ( Fe , ! 0 ) , ce . push ( Be ) , W . style [ Be [ 0 ] ] = Be [ 1 ] ) , ie = ne * ye , oe = ae * ye , q . easing ) { var t , a = q . easing ; Ue . hasTransitions && ( t = D + se , ce . push ( [ t , a ] ) , W . style [ t ] = a ) , Ue . hasAnimations && ( t = O + se , ce . push ( [ t , a ] ) , W . style [ t ] = a ) } Le . transitionDuration && fe . push ( R ) , Le . animationDuration && fe . push ( N ) , le = Date . now ( ) ; var r = ie + we * oe , o = le + r , s = e . data ( ve ) || [ ] , c = ! 0 ; if ( s . length ) { var d = s [ 0 ] ; c = o > d . expectedEndTime , c ? l . cancel ( d . timer ) : s . push ( g ) } if ( c ) { var u = l ( n , r , ! 1 ) ; s [ 0 ] = { timer : u , expectedEndTime : o } , s . push ( g ) , e . data ( ve , s ) } fe . length && e . on ( fe . join ( " " ) , B ) , q . to && ( q . cleanupStyles && P ( z , W , Object . keys ( q . to ) ) , h ( e , q ) ) } } function n ( ) { var t = e . data ( ve ) ; if ( t ) { for ( var n = 1 ; n < t . length ; n ++ ) t [ n ] ( ) ; e . removeData ( ve ) } } if ( ! G ) { if ( ! W . parentNode ) return void g ( ) ; var a = function ( e ) { if ( Y ) K && e && ( K = ! 1 , g ( ) ) ; else if ( K = ! e , Le . animationDuration ) { var t = k ( W , K ) ; K ? ce . push ( t ) : o ( ce , t ) } } , r = Oe > 0 && ( Le . transitionDuration && 0 === $e . transitionDuration || Le . animationDuration && 0 === $e . animationDuration ) && Math . max ( $e . animationDelay , $e . transitionDelay ) ; r ? l ( t , Math . floor ( r * Oe * ye ) , ! 1 ) : t ( ) , te . resume = function ( ) { a ( ! 0 ) } , te . pause = function ( ) { a ( ! 1 ) } } } var q = n || { } ; q . $$prepared || ( q = p ( F ( q ) ) ) ; var z = { } , W = v ( e ) ; if ( ! W || ! W . parentNode || ! _ . enabled ( ) ) return T ( ) ; var G , K , Y , ee , te , ne , ie , ae , oe , le , ce = [ ] , ue = e . attr ( "class" ) , pe = a ( q ) , fe = [ ] ; if ( 0 === q . duration || ! d . animations && ! d . transitions ) return T ( ) ; var me = q . event && j ( q . event ) ? q . event . join ( " " ) : q . event , he = me && q . structural , ge = "" , _e = "" ; he ? ge = r ( me , Z , ! 0 ) : me && ( ge = me ) , q . addClass && ( _e += r ( q . addClass , X ) ) , q . removeClass && ( _e . length && ( _e += " " ) , _e += r ( q . removeClass , J ) ) , q .
return l . isOpen } , l . getToggleElement = function ( ) { return s . toggleElement } , l . focusToggleElement = function ( ) { s . toggleElement && s . toggleElement [ 0 ] . focus ( ) } , l . $watch ( "isOpen" , function ( t , n ) { r [ t ? "addClass" : "removeClass" ] ( s . $element , c ) , t ? ( l . focusToggleElement ( ) , a . open ( l ) ) : a . close ( l ) , d ( e , t ) , angular . isDefined ( t ) && t !== n && u ( e , { open : ! ! t } ) } ) , e . $on ( "$locationChangeSuccess" , function ( ) { l . isOpen = ! 1 } ) , e . $on ( "$destroy" , function ( ) { l . $destroy ( ) } ) } ] ) . directive ( "dropdown" , function ( ) { return { controller : "DropdownController" , link : function ( e , t , n , i ) { i . init ( t ) } } } ) . directive ( "dropdownToggle" , function ( ) { return { require : "?^dropdown" , link : function ( e , t , n , i ) { if ( i ) { i . toggleElement = t ; var a = function ( a ) { a . preventDefault ( ) , t . hasClass ( "disabled" ) || n . disabled || e . $apply ( function ( ) { i . toggle ( ) } ) } ; t . bind ( "click" , a ) , t . attr ( { "aria-haspopup" : ! 0 , "aria-expanded" : ! 1 } ) , e . $watch ( i . isOpen , function ( e ) { t . attr ( "aria-expanded" , ! ! e ) } ) , e . $on ( "$destroy" , function ( ) { t . unbind ( "click" , a ) } ) } } } } ) , angular . module ( "ui.bootstrap.tooltip" , [ "ui.bootstrap.position" , "ui.bootstrap.bindHtml" ] ) . provider ( "$tooltip" , function ( ) { function e ( e ) { var t = /[A-Z]/g , n = "-" ; return e . replace ( t , function ( e , t ) { return ( t ? n : "" ) + e . toLowerCase ( ) } ) } var t = { placement : "top" , animation : ! 0 , popupDelay : 0 } , n = { mouseenter : "mouseleave" , click : "click" , focus : "blur" } , i = { } ; this . options = function ( e ) { angular . extend ( i , e ) } , this . setTriggers = function ( e ) { angular . extend ( n , e ) } , this . $get = [ "$window" , "$compile" , "$timeout" , "$document" , "$position" , "$interpolate" , function ( a , r , o , s , l , c ) { return function ( a , d , u ) { function p ( e ) { var t = e || f . trigger || u , i = n [ t ] || t ; return { show : t , hide : i } } var f = angular . extend ( { } , t , i ) , m = e ( a ) , h = c . startSymbol ( ) , g = c . endSymbol ( ) , _ = "<div " + m + '-popup title="' + h + "title" + g + '" content="' + h + "content" + g + '" placement="' + h + "placement" + g + '" animation="animation" is-open="isOpen"></div>' ; return { restrict : "EA" , compile : function ( e , t ) { var n = r ( _ ) ; return function ( e , t , i ) { function r ( ) { $ . isOpen ? u ( ) : c ( ) } function c ( ) { E && ! e . $eval ( i [ d + "Enable" ] ) || ( v ( ) , $ . popupDelay ? A || ( A = o ( m , $ . popupDelay , ! 1 ) , A . then ( function ( e ) { e ( ) } ) ) : m ( ) ( ) ) } function u ( ) { e . $apply ( function ( ) { h ( ) } ) } function m ( ) { return A = null , S && ( o . cancel ( S ) , S = null ) , $ . content ? ( g ( ) , k . css ( { top : 0 , left : 0 , display : "block" } ) , C ? s . find ( "body" ) . append ( k ) : t . after ( k ) , I ( ) , $ . isOpen = ! 0 , $ . $digest ( ) , I ) : angular . noop } function h ( ) { $ . isOpen = ! 1 , o . cancel ( A ) , A = null , $ . animation ? S || ( S = o ( _ , 500 ) ) : _ ( ) } function g ( ) { k && _ ( ) , M = $ . $new ( ) , k = n ( M , angular . noop ) } function _ ( ) { S = null , k && ( k . remove ( ) , k = null ) , M && ( M . $destroy ( ) , M = null ) } function v ( ) { y ( ) , b ( ) } function y ( ) { var e = i [ d + "Placement" ] ; $ . placement = angular . isDefined ( e ) ? e : f . placement } function b ( ) { var e = i [ d + "PopupDelay" ] , t = parseInt ( e , 10 ) ; $ . popupDelay = isNaN ( t ) ? f . popupDelay : t } function w ( ) { var e = i [ d + "Trigger" ] ; x ( ) , T = p ( e ) , T . show === T . hide ? t . bind ( T . show , r ) : ( t . bind ( T . show , c ) , t . bind ( T . hide , u ) ) } var k , M , S , A , C = ! ! angular . isDefined ( f . appendToBody ) && f . appendToBody , T = p ( void 0 ) , E = angular . isDefined ( i [ d + "Enable" ] ) , $ = e . $new ( ! 0 ) , I = function ( ) { var e = l . positionElements ( t , k , $ . placement , C ) ; e . top += "px" , e . left += "px" , k . css ( e ) } ; $ . isOpen = ! 1 , i . $observe ( a , function ( e ) { $ . content = e , ! e && $ . isOpen && h ( ) } ) , i . $observe ( d + "Title" , function ( e ) { $ . title = e } ) ; var x = function ( ) { t . unbind ( T . show , c ) , t . unbind ( T . hide , u ) } ; w ( ) ; var P = e . $eval ( i [ d + "Animation" ] ) ; $ . animation = angular . isDefined ( P ) ? ! ! P : f . animation ; var D = e . $eval ( i [ d + "AppendToBody" ] ) ; C = angular . isDefined ( D ) ? D : C , C && e . $on ( "$locationChangeSuccess" , function ( ) { $ . isOpen && h ( ) } ) , e . $on ( "$destroy" , function ( ) { o . cancel ( S ) , o . cancel ( A ) , x ( ) , _ ( ) , $ = null } ) } } } } } ] } ) . directive ( "tooltipPopup" , function ( ) { return { restrict : "EA" , replace : ! 0 , scope : { content : "@" , placement : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/tooltip/tooltip-popup.html" } } ) . directive ( "tooltip" , [ "$tooltip" , function ( e ) { return e ( "tooltip" , "tooltip" , "mouseenter" ) } ] ) . directive ( "tooltipHtmlUnsafePopup" , function ( ) { return { restrict : "EA" , replace : ! 0 , scope : { content : "@" , placement : "@" , animation : "&" , isOpen : "&" } , templateUrl : "template/tooltip/tooltip-html-unsafe-popup.html" } } ) . directive ( "tooltipHtmlUnsafe" , [ "$tooltip" , function ( e ) { return e ( "tooltipHtmlUnsafe" , "tooltip" , "mouseenter" ) } ] ) , angular . module ( "ui.bootstrap.position" , [ ] ) . factory ( "$position" , [ "$document" , "$window" , function ( e , t ) { funct
return g . create ( { ciphertext : r , key : n , iv : o . iv , algorithm : e , mode : o . mode , padding : o . padding , blockSize : e . blockSize , formatter : i . format } ) } , decrypt : function ( e , t , n , i ) { i = this . cfg . extend ( i ) , t = this . _parse ( t , i . format ) ; var a = e . createDecryptor ( n , i ) . finalize ( t . ciphertext ) ; return a } , _parse : function ( e , t ) { return "string" == typeof e ? t . parse ( e , this ) : e } } ) , b = t . kdf = { } , w = b . OpenSSL = { execute : function ( e , t , n , i ) { i || ( i = a . random ( 8 ) ) ; var r = c . create ( { keySize : t + n } ) . compute ( e , i ) , o = a . create ( r . words . slice ( t ) , 4 * n ) ; return r . sigBytes = 4 * t , g . create ( { key : r , iv : o , salt : i } ) } } , k = n . PasswordBasedCipher = y . extend ( { cfg : y . cfg . extend ( { kdf : w } ) , encrypt : function ( e , t , n , i ) { i = this . cfg . extend ( i ) ; var a = i . kdf . execute ( n , e . keySize , e . ivSize ) ; i . iv = a . iv ; var r = y . encrypt . call ( this , e , t , a . key , i ) ; return r . mixIn ( a ) , r } , decrypt : function ( e , t , n , i ) { i = this . cfg . extend ( i ) , t = this . _parse ( t , i . format ) ; var a = i . kdf . execute ( n , e . keySize , e . ivSize , t . salt ) ; i . iv = a . iv ; var r = y . decrypt . call ( this , e , t , a . key , i ) ; return r } } ) } ( ) , function ( ) { var e = CryptoJS , t = e . lib , n = t . BlockCipher , i = e . algo , a = [ ] , r = [ ] , o = [ ] , s = [ ] , l = [ ] , c = [ ] , d = [ ] , u = [ ] , p = [ ] , f = [ ] ; ! function ( ) { for ( var e = [ ] , t = 0 ; t < 256 ; t ++ ) t < 128 ? e [ t ] = t << 1 : e [ t ] = t << 1 ^ 283 ; for ( var n = 0 , i = 0 , t = 0 ; t < 256 ; t ++ ) { var m = i ^ i << 1 ^ i << 2 ^ i << 3 ^ i << 4 ; m = m >>> 8 ^ 255 & m ^ 99 , a [ n ] = m , r [ m ] = n ; var h = e [ n ] , g = e [ h ] , _ = e [ g ] , v = 257 * e [ m ] ^ 16843008 * m ; o [ n ] = v << 24 | v >>> 8 , s [ n ] = v << 16 | v >>> 16 , l [ n ] = v << 8 | v >>> 24 , c [ n ] = v ; var v = 16843009 * _ ^ 65537 * g ^ 257 * h ^ 16843008 * n ; d [ m ] = v << 24 | v >>> 8 , u [ m ] = v << 16 | v >>> 16 , p [ m ] = v << 8 | v >>> 24 , f [ m ] = v , n ? ( n = h ^ e [ e [ e [ _ ^ h ] ] ] , i ^= e [ e [ i ] ] ) : n = i = 1 } } ( ) ; var m = [ 0 , 1 , 2 , 4 , 8 , 16 , 32 , 64 , 128 , 27 , 54 ] , h = i . AES = n . extend ( { _doReset : function ( ) { for ( var e = this . _key , t = e . words , n = e . sigBytes / 4 , i = this . _nRounds = n + 6 , r = 4 * ( i + 1 ) , o = this . _keySchedule = [ ] , s = 0 ; s < r ; s ++ ) if ( s < n ) o [ s ] = t [ s ] ; else { var l = o [ s - 1 ] ; s % n ? n > 6 && s % n == 4 && ( l = a [ l >>> 24 ] << 24 | a [ l >>> 16 & 255 ] << 16 | a [ l >>> 8 & 255 ] << 8 | a [ 255 & l ] ) : ( l = l << 8 | l >>> 24 , l = a [ l >>> 24 ] << 24 | a [ l >>> 16 & 255 ] << 16 | a [ l >>> 8 & 255 ] << 8 | a [ 255 & l ] , l ^= m [ s / n | 0 ] << 24 ) , o [ s ] = o [ s - n ] ^ l } for ( var c = this . _invKeySchedule = [ ] , h = 0 ; h < r ; h ++ ) { var s = r - h ; if ( h % 4 ) var l = o [ s ] ; else var l = o [ s - 4 ] ; h < 4 || s <= 4 ? c [ h ] = l : c [ h ] = d [ a [ l >>> 24 ] ] ^ u [ a [ l >>> 16 & 255 ] ] ^ p [ a [ l >>> 8 & 255 ] ] ^ f [ a [ 255 & l ] ] } } , encryptBlock : function ( e , t ) { this . _doCryptBlock ( e , t , this . _keySchedule , o , s , l , c , a ) } , decryptBlock : function ( e , t ) { var n = e [ t + 1 ] ; e [ t + 1 ] = e [ t + 3 ] , e [ t + 3 ] = n , this . _doCryptBlock ( e , t , this . _invKeySchedule , d , u , p , f , r ) ; var n = e [ t + 1 ] ; e [ t + 1 ] = e [ t + 3 ] , e [ t + 3 ] = n } , _doCryptBlock : function ( e , t , n , i , a , r , o , s ) { for ( var l = this . _nRounds , c = e [ t ] ^ n [ 0 ] , d = e [ t + 1 ] ^ n [ 1 ] , u = e [ t + 2 ] ^ n [ 2 ] , p = e [ t + 3 ] ^ n [ 3 ] , f = 4 , m = 1 ; m < l ; m ++ ) { var h = i [ c >>> 24 ] ^ a [ d >>> 16 & 255 ] ^ r [ u >>> 8 & 255 ] ^ o [ 255 & p ] ^ n [ f ++ ] , g = i [ d >>> 24 ] ^ a [ u >>> 16 & 255 ] ^ r [ p >>> 8 & 255 ] ^ o [ 255 & c ] ^ n [ f ++ ] , _ = i [ u >>> 24 ] ^ a [ p >>> 16 & 255 ] ^ r [ c >>> 8 & 255 ] ^ o [ 255 & d ] ^ n [ f ++ ] , v = i [ p >>> 24 ] ^ a [ c >>> 16 & 255 ] ^ r [ d >>> 8 & 255 ] ^ o [ 255 & u ] ^ n [ f ++ ] ; c = h , d = g , u = _ , p = v } var h = ( s [ c >>> 24 ] << 24 | s [ d >>> 16 & 255 ] << 16 | s [ u >>> 8 & 255 ] << 8 | s [ 255 & p ] ) ^ n [ f ++ ] , g = ( s [ d >>> 24 ] << 24 | s [ u >>> 16 & 255 ] << 16 | s [ p >>> 8 & 255 ] << 8 | s [ 255 & c ] ) ^ n [ f ++ ] , _ = ( s [ u >>> 24 ] << 24 | s [ p >>> 16 & 255 ] << 16 | s [ c >>> 8 & 255 ] << 8 | s [ 255 & d ] ) ^ n [ f ++ ] , v = ( s [ p >>> 24 ] << 24 | s [ c >>> 16 & 255 ] << 16 | s [ d >>> 8 & 255 ] << 8 | s [ 255 & u ] ) ^ n [ f ++ ] ; e [ t ] = h , e [ t + 1 ] = g , e [ t + 2 ] = _ , e [ t + 3 ] = v } , keySize : 8 } ) ; e . AES = n . _createHelper ( h ) } ( ) , function ( e ) { var t = CryptoJS , n = t . lib , i = n . WordArray , a = n . Hasher , r = t . algo , o = [ ] , s = [ ] ; ! function ( ) { function t ( t ) { for ( var n = e . sqrt ( t ) , i = 2 ; i <= n ; i ++ ) if ( ! ( t % i ) ) return ! 1 ; return ! 0 } function n ( e ) { return 4294967296 * ( e - ( 0 | e ) ) | 0 } for ( var i = 2 , a = 0 ; a < 64 ; ) t ( i ) && ( a < 8 && ( o [ a ] = n ( e . pow ( i , . 5 ) ) ) , s [ a ] = n ( e . pow ( i , 1 / 3 ) ) , a ++ ) , i ++ } ( ) ; var l = [ ] , c = r . SHA256 = a . extend ( { _doReset : function ( ) { this . _hash = new i . init ( o . slice ( 0 ) ) } , _doProcessBlock : function ( e , t ) { for ( var n = this . _hash . words , i = n [ 0 ] , a = n [ 1 ] , r = n [ 2 ] , o = n [ 3 ] , c = n [ 4 ] , d = n [ 5 ] , u = n [ 6 ] , p = n [ 7 ] , f = 0 ; f < 64 ; f ++ ) { if ( f < 16 ) l [ f ] = 0 | e [ t + f ] ; else { var m = l [ f - 15 ] , h = ( m << 25 | m >>> 7 ) ^ ( m << 14 | m >>> 18 ) ^ m >>> 3 , g = l [ f - 2 ] , _ = ( g << 15 | g >>> 17 ) ^ ( g << 13 | g >>> 19 ) ^ g >>> 10 ; l [ f ] = h + l [ f - 7 ] + _ + l [ f - 16 ] } var v = c & d ^ ~ c & u , y = i & a ^ i & r ^ a & r , b = ( i << 30 | i >>> 2 ) ^ ( i << 19 | i >>> 13 ) ^ ( i << 10 | i >>> 22 ) , w = ( c << 26 | c >>> 6 ) ^ ( c << 21 | c >>> 11 ) ^ ( c << 7 | c >>> 25 ) , k = p + w + v + s [ f ] + l [ f ] , M = b + y ; p = u , u = d , d = c , c = o + k | 0 , o = r , r = a , a = i , i = k + M | 0 } n [ 0 ] = n [ 0 ] + i | 0 , n [ 1 ] = n [ 1 ] + a | 0 , n [ 2 ] = n [ 2 ] + r | 0 , n [ 3 ] = n [ 3 ] + o | 0 , n [ 4 ] = n [ 4 ] + c | 0 , n [ 5 ] = n [ 5 ] + d | 0 , n [ 6 ] = n [ 6 ] + u | 0 , n [ 7 ] = n [ 7 ] + p | 0 } , _doFinalize : function ( ) { var t = this . _data , n = t . words , i = 8 * this . _nDataBytes , a = 8 * t . sigBytes ; return n [ a >>> 5 ] |= 128 << 24 - a % 32 , n [ ( a + 64 >>> 9 << 4 ) + 14 ] = e . floor ( i
if ( p ( 0 <= t ) , ! e . L && t < gn ) { if ( e . Q == e . ya && 32 <= e . g + t && ( e . L = 1 , 32 < e . g + t ) ) return n ; n = e . T >> e . g & _n [ t ] , e . g += t , 8 <= e . g && 8 <= e . g && $ ( e ) } else e . fa = 1 ; return n } function P ( e ) { return e . Pa == e . gb } function D ( e , t ) { return p ( e != h ) , 0 == t ? 0 : ( e . gb = 2 * t - 1 , e . Y = d ( e . gb , Wn ) , e . Y == h ? 0 : ( e . Y [ 0 ] . s = - 1 , e . Pa = 1 ) ) } function R ( e ) { e != h && ( e . Y = h , e . Y = h , e . gb = 0 , e . Pa = 0 ) } function O ( e , t , n , i ) { for ( var a = e . Y , r = 0 , o = + e . gb ; 0 < i -- ; ) { if ( r >= o ) return 0 ; if ( 0 > a [ r ] . s ) { if ( P ( e ) ) return 0 ; var s = e , l = s . Y , c = + s . Pa ; a [ r ] . s = c - r , s . Pa += 2 , l [ c + 0 ] . s = - 1 , l [ c + 1 ] . s = - 1 } else if ( 0 == a [ r ] . s ) return 0 ; r += a [ r ] . s + ( n >> i & 1 ) } if ( 0 > a [ r ] . s ) a [ r ] . s = 0 ; else if ( 0 != a [ r ] . s ) return 0 ; return a [ r ] . kc = t , 1 } function N ( e , t , n ) { var i = g , a = 0 , r = 0 ; for ( p ( e != h ) , p ( t != h ) , i = 0 ; i < n ; ++ i ) 0 < t [ i ] && ( ++ a , r = i ) ; if ( ! D ( e , a ) ) return 0 ; if ( 1 == a ) return 0 > r || r >= n ? ( R ( e ) , 0 ) : O ( e , r , 0 , 0 ) ; if ( a = 0 , r = c ( n , g ) , r == h ) return ( a = a && P ( e ) ) || R ( e ) , a ; var o = g , o = g , i = c ( Tn + 1 , 0 ) , s = g , l = c ( Tn + 1 , 0 ) , d = 0 ; for ( p ( t != h ) , p ( 0 < n ) , p ( r != h ) , o = 0 ; o < n ; ++ o ) t [ o ] > d && ( d = t [ o ] ) ; if ( d > Tn ) i = 0 ; else { for ( o = 0 ; o < n ; ++ o ) ++ i [ t [ o ] ] ; for ( s = i [ 0 ] = 0 , l [ 0 ] = - 1 , o = 1 ; o <= d ; ++ o ) s = s + i [ o - 1 ] << 1 , l [ o ] = s ; for ( o = 0 ; o < n ; ++ o ) r [ o ] = 0 < t [ o ] ? l [ t [ o ] ] ++ : Kn ; i = 1 } if ( ! i ) return ( a = a && P ( e ) ) || R ( e ) , a ; for ( i = 0 ; i < n ; ++ i ) if ( 0 < t [ i ] && ! O ( e , i , r [ i ] , t [ i ] ) ) return ( a = a && P ( e ) ) || R ( e ) , a ; return ( a = P ( e ) ) || R ( e ) , a } function L ( e , t , n , i , a , r , o ) { for ( var s = g , s = 0 ; s < o ; ++ s ) a [ r + s ] = e [ t + s ] + n [ i + s ] & 255 } function F ( n , i , a ) { var r = n . P . l ; if ( ! ( a = 0 > i || 0 > a || i + a > n . P . v ) && ( a = 0 == i ) ) { e : { var o = n . Ga , s = n . G , l = n . ub ; a = n . P . l ; var d = n . P . v , u = n . Xb , f = [ h ] , m = h , _ = d * a , v = h , y = h , y = "WEBP_FILTER_TYPE" , b = g , f = g , w = 0 , k = g ; if ( p ( 0 < a && 0 < d && r >= a ) , p ( o != h && u != h ) , l <= On ) a = 0 ; else if ( k = o [ s + 0 ] >> 0 & 3 , y = o [ s + 0 ] >> 2 & 3 , b = o [ s + 0 ] >> 4 & 3 , f = o [ s + 0 ] >> 6 & 3 , k < Nn || k > Ln || y >= Ni || b > Fn || 0 != f ) a = 0 ; else { if ( k == Nn ) w = l >= _ , f = o , m = s + On ; else { if ( f = c ( _ , 0 ) , m = 0 , f == h ) { a = 0 ; break e } var w = s + On , l = l - On , s = f , v = e ( un ) , M = 0 , S = Qe ( ) ; S == h ? w = 0 : ( S . l = a , S . v = d , S . N = v , ye ( Ft ) , v . put = Et , v . Mb = Tt , v . Pb = $t , v . ka = h , v . ka = s , v . fd = 0 , v . width = a , v . height = d , S . a = en , E ( S . o , o , w , l ) , S . Wa = Ii , tt ( a , d , 1 , S , h ) && nt ( S , a ) && ( S . Wa = $i , M = Je ( S , S . V , S . Ha , S . l , S . v , it ) ) , S != h && et ( S ) , w = M ) } if ( w ) { for ( o = Li [ y ] , o != h ? ( v = c ( _ , 0 ) , y = 0 , v == h && ( w = 0 , k != Nn && ( m = f = h ) ) , o ( f , m , a , d , 1 , a , v , y ) , _ = v , k = y ) : ( _ = f , k = m ) , o = 0 ; 0 < d -- ; ) t ( u , o , _ , k , a ) , k += a , o += r ; b == Fn && ( w = f == h || 0 >= m || 0 >= a ? 0 : 1 ) } a = w } } a = ! a } return a ? h : 0 == i ? n . Xb : + i * r } function U ( e ) { var t = e . width , n = e . height , i = e . J ; if ( 0 >= t || 0 >= n || ! ( i >= Ut && i < Zt ) ) return nn ; if ( ! e . Fc && e . Jb == h ) { var a = h , r = 0 , o = 0 , s = 0 , l = 0 , a = b , d = t * Fi [ i ] , u = d * n ; if ( i < Xt || ( r = parseInt ( ( t + 1 ) / 2 , 10 ) , s = r * parseInt ( ( n + 1 ) / 2 , 10 ) , i == Jt && ( o = t , l = o * n ) ) , a = u + 2 * s + l , a != a ) return nn ; if ( a = c ( a , 205 ) , a == h ) return tn ; e . Jb = a , e . jc = h , i < Xt ? ( t = e . c . RGBA , t . ma = a , t . Sa = h , t . f = d , t . size = u ) : ( t = e . c . Va , t . y = a , t . D = h , t . F = d , t . Wc = u , t . c = a , t . B = h + u , t . nb = r , t . Rc = s , t . S = a , t . C = h + u + s , t . rb = r , t . Uc = s , i == Jt && ( t . p = a , t . q = h + u + 2 * s ) , t . Wb = l , t . Fa = o ) } return i = 1 , r = e . J , o = e . width , s = e . height , r >= Ut && r < Zt ? r < Xt ? ( e = e . c . RGBA , i &= e . f * s <= e . size , i &= e . f >= o * Fi [ r ] , i &= e . ma != h ) : ( e = e . c . Va , l = e . nb * parseInt ( ( s + 1 ) / 2 , 10 ) , d = e . rb * parseInt ( ( s + 1 ) / 2 , 10 ) , u = e . Fa * s , i &= e . F * s <= e . Wc , i &= l <= e . Rc , i &= d <= e . Uc , i &= u <= e . Wb , i &= e . F >= o , i &= e . nb >= parseInt ( ( o + 1 ) / 2 , 10 ) , i &= e . rb >= parseInt ( ( o + 1 ) / 2 , 10 ) , i &= e . y != h , i &= e . c != h , i &= e . S != h , r == Jt && ( i &= e . Fa >= o , i &= u <= e . Wb , i &= e . p != h ) ) : i = 0 , i ? en : nn } function B ( e , t , n , i ) { if ( i == h || 0 >= e || 0 >= t ) return nn ; if ( n != h ) { if ( n . Ua ) { var a = n . wc , r = n . vc , o = n . t & - 2 , s = n . k & - 2 ; if ( 0 > o || 0 > s || 0 >= a || 0 >= r || o + a > e || s + r > t ) return nn ; e = a , t = r } if ( n . I ) { if ( 0 >= n . Ba || 0 >= n . Aa ) return nn ; e = n . Ba , t = n . Aa } } return i . width = e , i . height = t , U ( i ) } function H ( e ) { return e & - 256 ? 0 > e ? 0 : 255 : e } function V ( e , t , n , i ) { var a , r = c ( 16 , 0 ) ; a = 0 ; var o ; for ( o = 0 ; 4 > o ; ++ o ) { var s = e [ t + 0 ] + e [ t + 8 ] , l = e [ t + 0 ] - e [ t + 8 ] , d = ( e [ t + 4 ] * la >> 16 ) - ( e [ t + 12 ] * sa >> 16 ) , u = ( e [ t + 4 ] * sa >> 16 ) + ( e [ t + 12 ] * la >> 16 ) ; r [ a + 0 ] = s + u , r [ a + 1 ] = l + d , r [ a + 2 ] = l - d , r [ a + 3 ] = s - u , a += 4 , t ++ } for ( o = a = 0 ; 4 > o ; ++ o ) e = r [ a + 0 ] + 4 , s = e + r [ a + 8 ] , l = e - r [ a + 8 ] , d = ( r [ a + 4 ] * la >> 16 ) - ( r [ a + 12 ] * sa >> 16 ) , u = ( r [ a + 4 ] * sa >> 16 ) + ( r [ a + 12 ] * la >> 16 ) , n [ i + 0 + 0 * fi ] = H ( n [ i + 0 + 0 * fi ] + ( s + u >> 3 ) ) , n [ i + 1 + 0 * fi ] = H ( n [ i + 1 + 0 * fi ] + ( l + d >> 3 ) ) , n [ i + 2 + 0 * fi ] = H ( n [ i + 2 + 0 * fi ] + ( l - d >> 3 ) ) , n [ i + 3 + 0 * fi ] = H ( n [ i + 3 + 0 * fi ] + ( s - u >> 3 ) ) , a ++ , i += fi } function q ( e , t , n , i , a ) { V ( e , t , n , i ) , a && V ( e , t + 16 , n , i + 4 ) } function z ( e , t , n , i ) { Ui ( e , t + 0 , n , i + 0 , 1 ) , Ui ( e , t + 32 , n , i + 4 * fi , 1 ) } function W ( e , t , n , i ) { e = e [ t + 0 ] + 4 ; var a ; for ( a = 0 ; 4 > a ; ++ a ) for ( t = 0 ; 4 > t ; ++ t ) n [ i + t + a * fi ] = H ( n [ i + t + a * fi ] + ( e >> 3 ) ) } function G ( e , t , n , i ) { e [ t + 0 ] && W ( e , t + 0 , n , i + 0 ) , e [ t + 16 ] && W ( e , t + 16 , n , i + 4 ) , e [ t + 32 ] && W ( e , t + 32 , n , i + 4 * fi ) , e [ t + 48 ] && W ( e , t + 48 , n , i + 4 * fi + 4 ) } function K ( e , t , n ) { v
d [ u + 4 * f ] = _ , p &= _ } i += e . width , u += s . f } 255 != p && k ( r ) && WebPApplyAlphaMultiply ( d , c , o , a , l , s . f ) } return 0 } function Ct ( e , t ) { var n = e . p , i = [ e . q ] ; if ( n != h ) { var a = e . m , r = t . j . J , o = t . j . c . RGBA , s = [ g ] , l = St ( e , i , s ) , i = i [ 0 ] , c = o . ma , l = o . Sa + l * o . f , d = l + 1 , u = 15 , p = g ; for ( j = 0 ; j < s [ 0 ] ; ++ j ) { for ( p = 0 ; p < a ; ++ p ) { var f = n [ i + p ] >> 4 ; c [ d + 2 * p ] = 240 & c [ d + 2 * p ] | f , u &= f } i += e . width , d += o . f } 15 != u && k ( r ) && WebPApplyAlphaMultiply4444 ( c , l , a , s , o . f ) } return 0 } function Tt ( e ) { var t = e . ka , n = t . j . J , i = n < Xt , a = n == Bt || n == jt || n == Vt || n == qt || n == Jt || k ( n ) ; if ( t . memory = h , t . $a = h , t . zb = h , t . ad = h , ! Lt ( t . Qa , e , a ? Xt : Jt ) ) return 0 ; if ( e . I ) { if ( ! ( i ? InitRGBRescaler ( e , t ) : InitYUVRescaler ( e , t ) ) ) return alert ( "memory error #1" ) , 0 } else { if ( i ) { if ( t . $a = wt , e . Bb ) { var r , o = e . m + 1 >> 1 , s = e . m + 2 * o , l = [ ] ; for ( r = 0 ; r < s ; ++ r ) l . push ( 205 ) ; if ( l . push ( 0 ) , t . memory = l , t . memory == h ) return alert ( "memory error #2" ) , 0 ; t . Sb = t . memory , t . Tb = 0 , t . Qb = t . Sb , t . Rb = t . Tb + e . m , t . lc = t . Qb , t . mc = t . Rb + o , t . $a = kt , ir [ Ut ] = st , ir [ Bt ] = ct , ir [ Ht ] = lt , ir [ jt ] = dt , ir [ Vt ] = ut , ir [ qt ] = pt , ir [ zt ] = ft } } else t . $a = bt ; a && ( k ( n ) && ( WebPApplyAlphaMultiply = yt , ir [ Wt ] = ct , ir [ Gt ] = dt , ir [ Kt ] = ut , ir [ Yt ] = pt ) , t . zb = n == qt || n == Yt ? Ct : i ? At : Mt ) } if ( i && ! nr ) { for ( e = 0 ; 256 > e ; ++ e ) Xa [ e ] = 89858 * ( e - 128 ) + Ya >> $a , Qa [ e ] = - 22014 * ( e - 128 ) + Ya , Za [ e ] = - 45773 * ( e - 128 ) , Ja [ e ] = 113618 * ( e - 128 ) + Ya >> $a ; for ( e = Ia ; e < xa ; ++ e ) t = 76283 * ( e - 16 ) + Ya >> $a , er [ e - Ia ] = _e ( t , 255 ) , tr [ e - Ia ] = _e ( t + 8 >> 4 , 15 ) ; nr = 1 } return 1 } function Et ( e ) { var t = e . ka , n = e . m , i = e . h ; return p ( ! ( 1 & e . w ) ) , 0 >= n || 0 >= i ? 0 : ( n = t . $a ( e , t ) , t . ec += n , t . zb && t . zb ( e , t ) , 1 ) } function $t ( e ) { e = e . ka , e . memory = "" , e . memory = h } function It ( e , t ) { return e [ t + 0 ] | e [ t + 1 ] << 8 | e [ t + 2 ] << 16 } function xt ( e , t ) { return ( It ( e , t ) | e [ t + 3 ] << 24 ) >>> 0 } function Pt ( t , n , i , a , r , o , s ) { var c = 0 , d = [ 0 ] , u = "VP8StatusCode" , f = e ( fn ) ; if ( t == h || i [ 0 ] < Hn ) return ln ; f . data = t , f . b = [ n [ 0 ] ] , f . e = [ i [ 0 ] ] , f . na = [ f . na ] ; e : { if ( c = f . na , p ( t != h ) , p ( i != h ) , p ( c != h ) , c [ 0 ] = 0 , i [ 0 ] >= Hn && ! l ( t , n [ 0 ] , "RIFF" , Un ) ) { if ( l ( t , n [ 0 ] + 8 , "WEBP" , Un ) ) { u = an ; break e } var v = xt ( t , n [ 0 ] + Un ) ; if ( v < Un + Bn ) { u = an ; break e } c [ 0 ] = v , n [ 0 ] += Hn , i [ 0 ] -= Hn } else c [ 0 ] = 0 ; u = en } if ( f . na = f . na [ 0 ] , u != en ) return u ; c = 0 < f . na , v = [ 0 ] ; e : if ( u = Bn + jn , p ( t != h ) , p ( i != h ) , p ( d != h ) , d [ 0 ] = 0 , i [ 0 ] < Bn ) u = ln ; else { if ( ! l ( t , n [ 0 ] , "VP8X" , Un ) ) { var b = g , k = g , M = y ; if ( xt ( t , n [ 0 ] + Un ) != jn ) { u = an ; break e } if ( i [ 0 ] < u ) { u = ln ; break e } if ( M = xt ( t , n [ 0 ] + 8 ) , b = 1 + It ( t , n [ 0 ] + 12 ) , k = 1 + It ( t , n [ 0 ] + 15 ) , b * k >= qn ) { u = an ; break e } v != h && ( v [ 0 ] = M ) , a != h && ( a [ 0 ] = b ) , r != h && ( r [ 0 ] = k ) , n [ 0 ] += u , i [ 0 ] -= u , d [ 0 ] = 1 } u = en } if ( u != en ) return u ; if ( ! c && d [ 0 ] ) return an ; if ( o != h && ( o [ 0 ] = ! ! ( v [ 0 ] & Vn ) ) , d && s == h ) return en ; if ( i < Un ) return ln ; if ( c && d [ 0 ] || ! c && ! d [ 0 ] && ! l ( t , n [ 0 ] , "ALPH" , Un ) ) { f . $ = [ f . $ ] , f . G = [ f . G ] , f . pa = [ f . pa ] ; e : { var d = f . na , c = f . $ , v = f . G , u = f . pa , b = _ , k = 0 , M = w , S = Un + Bn + jn ; for ( p ( t != h ) , p ( i != h ) , b = t , k = n [ 0 ] , M = i [ 0 ] , p ( c != h ) , p ( u != h ) , c [ 0 ] = h , v [ 0 ] = h , u [ 0 ] = 0 ; ; ) { var A = y , C = y ; if ( n [ 0 ] = k , i [ 0 ] = M , M < Bn ) { u = ln ; break e } if ( A = xt ( b , k + Un ) , C = Bn + A + 1 & - 2 , S += C , 0 < d && S > d ) { u = an ; break e } if ( M < C ) { u = ln ; break e } if ( l ( b , k , "ALPH" , Un ) ) { if ( ! l ( b , k , "VP8 " , Un ) || ! l ( b , "VP8L" , Un ) ) { u = en ; break e } } else c [ 0 ] = b , v [ 0 ] = k + Bn , u [ 0 ] = A ; k += C , M -= C } u = m } if ( f . $ = f . $ [ 0 ] , f . G = f . G [ 0 ] , f . pa = f . pa [ 0 ] , u != en ) return u } f . ta = [ f . ta ] , f . ia = [ f . ia ] ; e : if ( d = f . na , c = f . ta , v = f . ia , k = ! l ( t , n [ 0 ] , "VP8 " , Un ) , u = ! l ( t , n [ 0 ] , "VP8L" , Un ) , b = Un + Bn , p ( t != h ) , p ( i != h ) , p ( c != h ) , p ( v != h ) , i [ 0 ] < Bn ) u = ln ; else { if ( k || u ) { if ( k = xt ( t , n [ 0 ] + Un ) , d >= b && k > d - b ) { u = an ; break e } c [ 0 ] = k , n [ 0 ] += Bn , i [ 0 ] -= Bn , v [ 0 ] = u } else v [ 0 ] = 1 <= i && t [ n + 0 ] == yn , c [ 0 ] = i [ 0 ] ; u = en } if ( f . ta = f . ta [ 0 ] , f . ia = f . ia [ 0 ] , u != en ) return u ; if ( f . ta > zn ) return an ; if ( f . ia ) { if ( i [ 0 ] < kn ) return ln ; d = n [ 0 ] , c = i [ 0 ] , a = a ? a [ 0 ] : h , r = r ? r [ 0 ] : h , v = o ? o [ 0 ] : h , t == h || c < kn ? t = 0 : ( u = [ g ] , b = [ g ] , k = [ g ] , M = e ( hn ) , E ( M , t , d , c ) , qe ( M , u , b , k ) ? ( a != h && ( a [ 0 ] = u [ 0 ] ) , r != h && ( r [ 0 ] = b [ 0 ] ) , v != h && ( v [ 0 ] = k [ 0 ] ) , t = 1 ) : t = 0 ) } else { if ( i < vn ) return ln ; d = n [ 0 ] , c = i [ 0 ] , a = a ? a [ 0 ] : h , r = r ? r [ 0 ] : h , ! ( t == h || c < vn ) && 3 <= c - 3 && 157 == t [ d + 3 + 0 ] && 1 == t [ d + 3 + 1 ] && 42 == t [ d + 3 + 2 ] ? ( c = t [ d + 0 ] | t [ d + 1 ] << 8 | t [ d + 2 ] << 16 , v = 16383 & ( t [ d + 7 ] << 8 | t [ d + 6 ] ) , t = 16383 & ( t [ d + 9 ] << 8 | t [ d + 8 ] ) , ! ( ! ( 1 & c ) + 0 ) || 3 < ( c >> 1 & 7 ) || ! ( c >> 4 & 1 ) || c >> 5 >= f . ta ? t = 0 : ( a && ( a [ 0 ] = v ) , r && ( r [ 0 ] = t ) , t = 1 ) ) : t = 0 } return t ? ( o != h && ( o [ 0 ] |= f . $ != h ) , s != h && ( s [ 0 ] = f , s [ 0 ] . offset = n [ 0 ] - s [ 0 ] . b , p ( n [ 0 ] - s [ 0 ] . b < zn ) , p ( s [ 0 ] . offset == s [ 0 ] . e - i [ 0 ] ) ) , en ) : an } function Dt ( e ) { return p ( e != h ) , Pt ( e [ 0 ] . data , e [ 0 ] . b , e [ 0 ] . e , h , h , h , e ) } function Rt ( t , n , i , a ) { var r = "VP8StatusCode" , o = e ( un ) , s = e ( fn ) ; if ( s . data = t , s . b = n , s . e = i , s . b = [ s . b ] , s . e = [ s . e ] , s = [ s ] , r = Dt ( s ) , r != en ) return r ; if ( s = s [ 0 ] , s . b = s . b [ 0 ] , s . e = s . e [ 0 ] , p ( a != h ) , ye ( Ft ) , o . data = s . data , o . b = n + s . offset , o . e = s . e -
if ( angular . isUndefined ( r ) || r . length <= 0 ) throw new Error ( "A valid directive name must be provided via the toast body argument when using bodyOutputType: directive" ) ; var o ; try { o = t . get ( a . $normalize ( r ) + "Directive" ) } catch ( s ) { throw new Error ( r + " could not be found. The name should appear as it exists in the markup, not camelCased as it would appear in the directive declaration, e.g. directive-name not directiveName." ) } var l = o [ 0 ] ; if ( l . scope !== ! 0 && l . scope ) throw new Error ( "Cannot use a directive with an isolated scope. The scope must be either true or falsy (e.g. false/null/undefined). Occurred for directive " + r + "." ) ; if ( l . restrict . indexOf ( "A" ) < 0 ) throw new Error ( 'Directives must be usable as attributes. Add "A" to the restrict option (or remove the option entirely). Occurred for directive ' + r + "." ) ; n . directiveData && ( n . directiveData = angular . fromJson ( n . directiveData ) ) ; var c = e ( "<div " + r + "></div>" ) ( n ) ; i . append ( c ) } ) } } } ] ) . directive ( "toasterContainer" , [ "$parse" , "$rootScope" , "$interval" , "$sce" , "toasterConfig" , "toaster" , "toasterEventRegistry" , function ( e , t , n , i , a , r , o ) { return { replace : ! 0 , restrict : "EA" , scope : ! 0 , link : function ( t , s , l ) { function c ( e , i ) { e . timeoutPromise = n ( function ( ) { t . removeToast ( e . toastId ) } , i , 1 ) } function d ( n , a ) { if ( n . type = m [ "icon-classes" ] [ n . type ] , n . type || ( n . type = m [ "icon-class" ] ) , m [ "prevent-duplicates" ] === ! 0 && t . toasters . length ) { if ( t . toasters [ t . toasters . length - 1 ] . body === n . body ) return ; var r , o , s = ! 1 ; for ( r = 0 , o = t . toasters . length ; r < o ; r ++ ) if ( t . toasters [ r ] . toastId === a ) { s = ! 0 ; break } if ( s ) return } var l = m [ "close-button" ] ; if ( "boolean" == typeof n . showCloseButton ) ; else if ( "boolean" == typeof l ) n . showCloseButton = l ; else if ( "object" == typeof l ) { var c = l [ n . type ] ; "undefined" != typeof c && null !== c && ( n . showCloseButton = c ) } else n . showCloseButton = ! 1 ; switch ( n . showCloseButton && ( n . closeHtml = i . trustAsHtml ( n . closeHtml || t . config . closeHtml ) ) , n . bodyOutputType = n . bodyOutputType || m [ "body-output-type" ] , n . bodyOutputType ) { case "trustedHtml" : n . html = i . trustAsHtml ( n . body ) ; break ; case "template" : n . bodyTemplate = n . body || m [ "body-template" ] ; break ; case "templateWithData" : var d = e ( n . body || m [ "body-template" ] ) , u = d ( t ) ; n . bodyTemplate = u . template , n . data = u . data ; break ; case "directive" : n . html = n . body } t . configureTimer ( n ) , m [ "newest-on-top" ] === ! 0 ? ( t . toasters . unshift ( n ) , m . limit > 0 && t . toasters . length > m . limit && t . toasters . pop ( ) ) : ( t . toasters . push ( n ) , m . limit > 0 && t . toasters . length > m . limit && t . toasters . shift ( ) ) , angular . isFunction ( n . onShowCallback ) && n . onShowCallback ( ) } function u ( e ) { var i = t . toasters [ e ] ; i . timeoutPromise && n . cancel ( i . timeoutPromise ) , t . toasters . splice ( e , 1 ) , angular . isFunction ( i . onHideCallback ) && i . onHideCallback ( ) } function p ( e ) { for ( var n = t . toasters . length - 1 ; n >= 0 ; n -- ) f ( e ) ? u ( n ) : t . toasters [ n ] . toastId == e && u ( n ) } function f ( e ) { return angular . isUndefined ( e ) || null === e } var m ; m = angular . extend ( { } , a , t . $eval ( l . toasterOptions ) ) , t . config = { toasterId : m [ "toaster-id" ] , position : m [ "position-class" ] , title : m [ "title-class" ] , message : m [ "message-class" ] , tap : m [ "tap-to-dismiss" ] , closeButton : m [ "close-button" ] , closeHtml : m [ "close-html" ] , animation : m [ "animation-class" ] , mouseoverTimer : m [ "mouseover-timer-stop" ] } , t . $on ( "$destroy" , function ( ) { o . unsubscribeToNewToastEvent ( t . _onNewToast ) , o . unsubscribeToClearToastsEvent ( t . _onClearToasts ) } ) , t . configureTimer = function ( e ) { var t = angular . isNumber ( e . timeout ) ? e . timeout : m [ "time-out" ] ; "object" == typeof t && ( t = t [ e . type ] ) , t > 0 && c ( e , t ) } , t . removeToast = function ( e ) { var n , i ; for ( n = 0 , i = t . toasters . length ; n < i ; n ++ ) if ( t . toasters [ n ] . toastId === e ) { u ( n ) ; break } } , t . toasters = [ ] , t . _onNewToast = function ( e , n , i ) { ( f ( t . config . toasterId ) && f ( n ) || ! f ( t . config . toasterId ) && ! f ( n ) && t . config . toasterId == n ) && d ( r . toast , i ) } , t . _onClearToasts = function ( e , n , i ) { ( "*" == n || f ( t . config . toasterId ) && f ( n ) || ! f ( t . config . toasterId ) && ! f ( n ) && t . config . toasterId == n ) && p ( i ) } , o . setup ( ) , o . subscribeToNewToastEvent ( t . _onNewToast ) , o . subscribeToClearToastsEvent ( t . _onClearToasts ) } , controller : [ "$scope" , "$element" , "$attrs" , function ( e , t , i ) { e . stopTimer = function ( t ) { e . config . mouseoverTimer === ! 0 && t . timeoutPromise && ( n . cancel ( t . timeoutPromise ) , t . timeoutPromise = null ) } , e . restartTimer = function ( t ) { e . config . mouseoverTimer === ! 0 ? t . timeoutPromise || e . configureTimer ( t ) : null === t . timeoutPromise && e . removeTo
for ( var _ = 0 ; _ < nt . length ; _ ++ ) { var h = nt [ _ ] ; Ze ++ , Be ++ , et = h . frameEndTimestamp , d = 1e3 * ( h . frameEndTimestamp - l ) , je = He - d , h . dropped = ! 0 , k ( h ) } nt = [ ] ; for ( var _ = 0 ; _ < it . length ; _ ++ ) { var h = it [ _ ] ; Ze ++ , Be ++ , et = h . frameEndTimestamp , d = 1e3 * ( h . frameEndTimestamp - l ) , je = He - d , h . dropped = ! 0 , k ( h ) } for ( it = [ ] , Tt = 0 ; fe . frameReady && fe . frameTimestamp < w ; ) { var h = { frameEndTimestamp : fe . frameTimestamp , dropped : ! 0 } ; d = 1e3 * ( h . frameEndTimestamp - l ) , je = He - d , Ze ++ , fe . discardFrame ( function ( ) { } ) , Be ++ , k ( h ) } return void ( R ( ) || L ( ) ) } } } else a && ke && ! o && ! i && d > p ? ( n ( "late frame recovery reached " + d ) , v ( l ) , ke = ! 1 , a = ! 1 ) : a && ke || a && d <= p || ( a = ! 1 ) } if ( o ) { n ( "play loop: ready to decode frame; thread depth: " + Tt + ", have buffered: " + nt . length ) , 0 == me . fps && fe . frameTimestamp - et > 0 && ( He = 1e3 * ( fe . frameTimestamp - et ) ) , Ve += He , qe ++ ; var A = et = fe . frameTimestamp ; Tt ++ , it . push ( { frameEndTimestamp : A } ) ; var C = it , T = ! 1 , E = t ( function ( ) { fe . decodeFrame ( function ( e ) { return C !== it ? void n ( "play loop callback after flush, discarding" ) : ( n ( "play loop callback: decoded frame" ) , Tt -- , it . shift ( ) , e ? nt . push ( { yCbCrBuffer : fe . frameBuffer , videoCpuTime : fe . videoCpuTime , frameEndTimestamp : A } ) : n ( "Bad video packet or something" ) , void fe . process ( function ( ) { R ( ) || L ( T ? void 0 : 0 ) } ) ) } ) } ) ; Tt && ( T = ! 0 , Ke += E , L ( ) ) } else if ( i ) { n ( "play loop: ready for audio; depth: " + Et ) , Et ++ ; var $ = fe . audioTimestamp , I = t ( function ( ) { fe . decodeAudio ( function ( e ) { if ( Et -- , n ( "play loop callback: decoded audio" ) , tt = $ , e ) { var i = fe . audioBuffer ; if ( i && ( We += t ( function ( ) { _e && _e . bufferData ( i ) } ) , ! fe . hasVideo ) ) { Be ++ ; var a = { frameEndTimestamp : tt } ; k ( a ) } } R ( ) || L ( ) } ) } ) ; Et && ( Ke += I , fe . audioReady ? L ( ) : r ( ) ) } else if ( a ) { n ( "play loop: ready to draw frame" ) , De && ( clearTimeout ( De ) , De = null ) , oe && ( ne . removeChild ( oe ) , oe = null ) ; var h = nt . shift ( ) ; vt = h . videoCpuTime , Ge += t ( function ( ) { ee . drawFrame ( h . yCbCrBuffer ) } ) , Be ++ , Ue ++ , k ( h ) , L ( ) } else if ( ! nt . length || De || we ) if ( $e && ! ( Et || Tt || nt . length ) ) { n ( "play loop: playback reached end of data " + [ Et , Tt , nt . length ] ) ; var x = 0 ; fe . hasAudio && _e && ( x = 1e3 * _e . durationBuffered ) , x > 0 ? ( n ( "play loop: ending pending " + x + " ms" ) , L ( Math . max ( 0 , x ) ) ) : ( n ( "play loop: ENDING NOW: playback time " + b ( ) + "; frameEndTimestamp: " + et ) , y ( ) , ke = ! 1 , we = ! 1 , be = Math . max ( tt , et ) , Le = ! 0 , Ne = ! 0 , f ( "pause" ) , f ( "ended" ) ) } else n ( "play loop: waiting on async/timers" ) ; else { var P = d ; n ( "play loop: setting a timer for drawing " + P ) , De = setTimeout ( function ( ) { De = null , L ( ) } , P ) } } else n ( "play loop: demuxing" ) , r ( ) } function r ( ) { var e = fe . frameReady , t = fe . audioReady ; fe . process ( function ( i ) { fe . frameReady && ! e || fe . audioReady && ! t ? ( n ( "demuxer has packets" ) , L ( ) ) : i ? ( n ( "demuxer processing to find more packets" ) , L ( ) ) : ( n ( "demuxer ran out of data" ) , Ae ? ( n ( "demuxer reached end of data stream" ) , $e = ! 0 , L ( ) ) : ( n ( "demuxer loading more data" ) , O ( ) ) ) } ) } if ( ge . length ) { var o = ge . shift ( ) ; o ( ) } else if ( Y == K . INITIAL ) if ( fe . loadedMetadata ) { if ( ! fe . hasVideo && ! fe . hasAudio ) throw new Error ( "No audio or video found, something is wrong" ) ; fe . hasAudio && ( he = fe . audioFormat ) , fe . hasVideo && ( me = fe . videoFormat , x ( ) ) , isNaN ( fe . duration ) || ( xe = fe . duration ) , null === xe && ae . seekable ? ( Y = K . SEEKING _END , Pe = - 1 , fe . flush ( function ( ) { S ( Math . max ( 0 , ae . length - 131072 ) ) } ) ) : ( Y = K . LOADED , L ( ) ) } else fe . process ( function ( e ) { if ( e ) L ( ) ; else { if ( Ae ) throw new Error ( "end of file before headers found" ) ; n ( "reading more cause we are out of data" ) , O ( ) } } ) ; else if ( Y == K . SEEKING _END ) fe . frameReady ? ( n ( "saw frame with " + fe . frameTimestamp ) , Pe = Math . max ( Pe , fe . frameTimestamp ) , fe . discardFrame ( function ( ) { L ( ) } ) ) : fe . audioReady ? ( n ( "saw audio with " + fe . audioTimestamp ) , Pe = Math . max ( Pe , fe . audioTimestamp ) , fe . discardAudio ( function ( ) { L ( ) } ) ) : fe . process ( function ( e ) { e ? L ( ) : ae . eof ? ( n ( "seek-duration: we are at the end: " + Pe ) , Pe > 0 && ( xe = Pe ) , Y = K . LOADED , fe . flush ( function ( ) { Ae = ! 1 , $e = ! 1 , S ( 0 ) } ) ) : O ( ) } ) ; else if ( Y == K . LOADED ) Y = K . PRELOAD , f ( "loadedmetadata" ) , f ( "durationchange" ) , fe . hasVideo && f ( "resize" ) , L ( 0 ) ; else if ( Y == K . PRELOAD ) ! fe . frameReady && fe . hasVideo || ! fe . audioReady && fe . hasAudio ? fe . process ( function ( e ) { e ? L ( ) : Ae ? Le = ! 0 : O ( ) } ) : ( Y = K . READY , f ( "loadeddata" ) , L ( ) ) ; else if ( Y == K . READY ) if ( n ( "initial seek to " + Me ) , Me > 0 ) { var s = Me ; Me = 0 , n ( "initial seek to " + s ) , T ( s ) } else Ne ? n ( "paused while in ready" ) : ! fe . hasAudio || _e || ve ? i ( ) : ( _ ( ) , _e . waitUntilReady ( i ) ) ; else if ( Y == K . SEEKING ) { if ( J == X . NOT _SEEKING ) throw new Er
} } , function ( e , t , n ) { "use strict" ; function i ( e , t ) { if ( ! ( e instanceof t ) ) throw new TypeError ( "Cannot call a class as a function" ) } var a = function ( ) { function e ( e , t ) { for ( var n = 0 ; n < t . length ; n ++ ) { var i = t [ n ] ; i . enumerable = i . enumerable || ! 1 , i . configurable = ! 0 , "value" in i && ( i . writable = ! 0 ) , Object . defineProperty ( e , i . key , i ) } } return function ( t , n , i ) { return n && e ( t . prototype , n ) , i && e ( t , i ) , t } } ( ) , r = ( n ( 20 ) , n ( 21 ) ) , o = n ( 24 ) , s = function ( ) { function e ( t ) { var n = t . url , a = void 0 === n ? "" : n , o = t . chunkSize , s = void 0 === o ? 1048576 : o , l = t . cacheSize , c = void 0 === l ? 0 : l ; i ( this , e ) , this . length = - 1 , this . loaded = ! 1 , this . loading = ! 1 , this . seekable = ! 1 , this . buffering = ! 1 , this . seeking = ! 1 , Object . defineProperties ( this , { offset : { get : function ( ) { return this . _cache . readOffset } } , eof : { get : function ( ) { return this . length === this . _cache . readOffset } } } ) , this . url = a , this . headers = { } , this . _cache = new r ( { cacheSize : c } ) , this . _backend = null , this . _cachever = 0 , this . _chunkSize = s } return a ( e , [ { key : "load" , value : function ( ) { var e = this ; return new Promise ( function ( t , n ) { if ( e . loading ) throw new Error ( "cannot load when loading" ) ; if ( e . loaded ) throw new Error ( "cannot load when loaded" ) ; e . loading = ! 0 , e . _openBackend ( ) . then ( function ( n ) { e . seekable = n . seekable , e . headers = n . headers , e . length = n . length , e . loaded = ! 0 , e . loading = ! 1 , t ( ) } ) [ "catch" ] ( function ( t ) { "AbortError" !== t . name && ( e . loading = ! 1 ) , n ( t ) } ) } ) } } , { key : "_openBackend" , value : function ( ) { var e = this ; return new Promise ( function ( t , n ) { if ( e . _backend ) t ( e . _backend ) ; else if ( e . eof ) n ( new Error ( "cannot open at end of file" ) ) ; else { var i = e . _cache , a = e . _chunkSize , r = i . bytesReadable ( a ) , s = i . readOffset + r ; if ( i . seekWrite ( s ) , e . length >= 0 && s >= e . length ) return void t ( null ) ; var l = i . bytesWritable ( a ) ; 0 === l ? t ( null ) : ! function ( ) { var i = e . _backend = new o ( { url : e . url , offset : e . _cache . writeOffset , length : l , cachever : e . _cachever } ) , a = null , r = function ( ) { i !== e . _backend ? ( a ( ) , n ( new Error ( "invalid state" ) ) ) : ( i . on ( "buffer" , function ( t ) { i === e . _backend && e . _cache . write ( t ) } ) , i . on ( "done" , function ( ) { i === e . _backend && ( e . length === - 1 && ( e . length = e . _backend . offset + e . _backend . bytesRead ) , e . _backend = null ) } ) , t ( i ) ) } , s = function ( t ) { i !== e . _backend ? n ( new Error ( "invalid state" ) ) : ( e . _backend = null , n ( t ) ) } ; a = function ( ) { i . off ( "open" , r ) , i . off ( "error" , s ) } , i . on ( "open" , r ) , i . on ( "error" , s ) , i . on ( "cachever" , function ( ) { e . _cachever ++ } ) , i . load ( ) } ( ) } } ) } } , { key : "_readAhead" , value : function ( ) { var e = this ; return new Promise ( function ( t , n ) { e . _backend || e . eof ? t ( ) : e . _openBackend ( ) . then ( function ( ) { t ( ) } ) [ "catch" ] ( function ( e ) { n ( e ) } ) } ) } } , { key : "seek" , value : function ( e ) { var t = this ; return new Promise ( function ( n , i ) { if ( ! t . loaded || t . buffering || t . seeking ) throw new Error ( "invalid state" ) ; if ( e !== ( 0 | e ) || e < 0 ) throw new Error ( "invalid input" ) ; if ( t . length >= 0 && e > t . length ) throw new Error ( "seek past end of file" ) ; if ( ! t . seekable ) throw new Error ( "seek on non-seekable stream" ) ; t . _backend && t . abort ( ) , t . _cache . seekRead ( e ) , t . _cache . seekWrite ( e ) , t . _readAhead ( ) . then ( n ) [ "catch" ] ( i ) } ) } } , { key : "read" , value : function ( e ) { var t = this ; return this . buffer ( e ) . then ( function ( e ) { return t . readSync ( e ) } ) } } , { key : "readSync" , value : function ( e ) { var t = this . bytesAvailable ( e ) , n = new Uint8Array ( t ) , i = this . readBytes ( n ) ; if ( i !== t ) throw new Error ( "failed to read expected data" ) ; return n . buffer } } , { key : "readBytes" , value : function ( e ) { if ( ! this . loaded || this . buffering || this . seeking ) throw new Error ( "invalid state" ) ; if ( ! ( e instanceof Uint8Array ) ) throw new Error ( "invalid input" ) ; var t = this . _cache . readBytes ( e ) ; return this . _readAhead ( ) , t } } , { key : "buffer" , value : function ( e ) { var t = this ; return new Promise ( function ( n , i ) { if ( ! t . loaded || t . buffering || t . seeking ) throw new Error ( "invalid state" ) ; if ( e !== ( 0 | e ) || e < 0 ) throw new Error ( "invalid input" ) ; var a = t . _clampToLength ( t . offset + e ) , r = a - t . offset , o = t . bytesAvailable ( r ) ; o >= r ? n ( o ) : ( t . buffering = ! 0 , t . _openBackend ( ) . then ( function ( n ) { return n ? n . bufferToOffset ( a ) . then ( function ( ) { return t . buffering = ! 1 , t . buffer ( e ) } ) : Promise . resolve ( o ) } ) . then ( function ( e ) { t . buffering = ! 1 , n ( e ) } ) [ "catch" ] ( function ( e ) { "AbortError" !== e . name && ( t . buffering = ! 1 ) , i ( e ) } ) ) } ) } } , { key : "bytesAvailable" , value : function ( ) { var e = arguments . length > 0 && void 0 !== arguments [ 0 ] ? arguments [ 0 ] : 1 / 0 ; return this . _cache . bytesReadable ( e ) } } , { key : "abort" , value : function ( ) { this . loading && ( this . loadi
t > n ? ( this . _bufferQueue . prependBuffer ( this . _liveBuffer ) , this . _bufferQueue . prependBuffer ( this . _bufferQueue . createBuffer ( t - n ) ) ) : this . _bufferQueue . prependBuffer ( this . _bufferQueue . trimBuffer ( this . _liveBuffer , n - t , t ) ) , this . _playbackTimeAtBufferTail -= e } this . _node . onaudioprocess = null , this . _node . disconnect ( ) } } , t . prototype . flush = function ( ) { this . _bufferQueue . flush ( ) } , t . prototype . close = function ( ) { this . stop ( ) , this . _context = null } , t . prototype . onstarved = null , t . prototype . onbufferlow = null , t . isSupported = function ( ) { return ! ! i } , t . sharedAudioContext = null , t . initSharedAudioContext = function ( ) { if ( ! t . sharedAudioContext && t . isSupported ( ) ) { var e , n = new i ; if ( n . createScriptProcessor ) e = n . createScriptProcessor ( 1024 , 0 , 2 ) ; else { if ( ! n . createJavaScriptNode ) throw new Error ( "Bad version of web audio API?" ) ; e = n . createJavaScriptNode ( 1024 , 0 , 2 ) } e . connect ( n . destination ) , e . disconnect ( ) , t . sharedAudioContext = n } return t . sharedAudioContext } , e . exports = t } ( ) } , function ( e , t ) { e . exports = function ( ) { if ( "undefined" != typeof window . setImmediate ) return window . setImmediate ; if ( window && window . postMessage ) { var e = [ ] ; return window . addEventListener ( "message" , function ( t ) { if ( t . source === window ) { var n = t . data ; if ( "object" == typeof n && n . nextTickBrowserPingMessage ) { var i = e . pop ( ) ; i && i ( ) } } } ) , function ( t ) { e . push ( t ) , window . postMessage ( { nextTickBrowserPingMessage : ! 0 } , document . location . toString ( ) ) } } return function ( e ) { setTimeout ( e , 0 ) } } ( ) } , function ( e , t , n ) { ! function ( ) { function t ( e ) { for ( var t = new Uint8Array ( e ) , n = "" , i = t . length , a = 0 ; a < i ; a ++ ) n += l [ t [ a ] ] ; return n } function i ( e ) { return this instanceof arguments . callee ? void ( "function" == typeof this . init && this . init . apply ( this , e && e . callee ? e : arguments ) ) : new arguments . callee ( arguments ) } var a = n ( 5 ) , r = n ( 3 ) , o = function ( e , t , n ) { n = n || { } ; var o = { } ; "string" == typeof n . base && ( o . swf = n . base + "/" + a ) , n . bufferSize && ( this . bufferSize = 0 | n . bufferSize ) , this . _flashaudio = new i ( o ) , this . _flashBuffer = "" , this . _flushTimeout = null , this . _flushInterval = 40 , this . _cachedFlashState = null , this . _cachedFlashTime = 0 , this . _cachedFlashInterval = 40 , this . _waitUntilReadyQueue = [ ] , this . onready = function ( ) { for ( this . _flashaudio . flashElement . setBufferSize ( this . bufferSize ) , this . _flashaudio . flashElement . setBufferThreshold ( this . bufferThreshold ) ; this . _waitUntilReadyQueue . length ; ) { var e = this . _waitUntilReadyQueue . shift ( ) ; e . apply ( this ) } } , this . onlog = function ( e ) { console . log ( "AudioFeeder FlashBackend: " + e ) } , this . bufferThreshold = 2 * this . bufferSize ; var s = { ready : "sync" , log : "sync" , starved : "sync" , bufferlow : "async" } ; this . _callbackName = "AudioFeederFlashBackendCallback" + this . _flashaudio . id ; window [ this . _callbackName ] = function ( e ) { var t = s [ e ] , n = this [ "on" + e ] ; t && n && ( "async" === t ? r ( n . bind ( this ) ) : ( n . apply ( this , Array . prototype . slice . call ( arguments , 1 ) ) , this . _flushFlashBuffer ( ) ) ) } . bind ( this ) } ; o . prototype . rate = 44100 , o . prototype . channels = 2 , o . prototype . bufferSize = 4096 , o . prototype . _bufferThreshold = 8192 , Object . defineProperty ( o . prototype , "bufferThreshold" , { get : function ( ) { return this . _bufferThreshold } , set : function ( e ) { this . _bufferThreshold = 0 | e , this . waitUntilReady ( function ( ) { this . _flashaudio . flashElement . setBufferThreshold ( this . _bufferThreshold ) } . bind ( this ) ) } } ) , o . prototype . _volume = 1 , Object . defineProperty ( o . prototype , "volume" , { get : function ( ) { return this . _volume } , set : function ( e ) { this . _volume = + e , this . waitUntilReady ( this . _flashVolumeUpdate . bind ( this ) ) } } ) , o . prototype . _muted = ! 1 , Object . defineProperty ( o . prototype , "muted" , { get : function ( ) { return this . _muted } , set : function ( e ) { this . _muted = ! ! e , this . waitUntilReady ( this . _flashVolumeUpdate . bind ( this ) ) } } ) , o . prototype . _paused = ! 0 , o . prototype . _flashVolumeUpdate = function ( ) { this . _flashaudio && this . _flashaudio . flashElement && this . _flashaudio . flashElement . setVolume && this . _flashaudio . flashElement . setVolume ( this . muted ? 0 : this . volume ) } , o . prototype . _resampleFlash = function ( e ) { for ( var t = 1 , n = e [ 0 ] . length , i = new Int16Array ( 2 * n ) , a = e [ 0 ] , r = this . channels > 1 ? e [ 1 ] : a , o = this . muted ? 0 : this . volume , s = 16384 * o , l = 0 ; l < n ; l ++ ) { var c = l * t | 0 , d = 2 * l ; i [ d ] = a [ c ] * s , i [ d + 1 ] = r [ c ] * s } return i } ; for ( var s = [ "0" , "1" , "2" , "3" , "4" , "5" , "6" , "7" , "8" , "9" , "a" , "b" , "c" , "d" , "e" , "f" ] , l = [ ] , c = 0 ; c < 256 ; c ++ ) l [ c ] = s [ 15 & c ] + s [ ( 240 & c ) >> 4 ] ; o . prototype . _flushFlashBuffer = function ( ) { var e = this . _flashBuffer , t = this . _flash
return STATICTOP = STATICTOP + e | 0 , STATICTOP = STATICTOP + 15 & - 16 , t } , dynamicAlloc : function ( e ) { var t = HEAP32 [ DYNAMICTOP _PTR >> 2 ] , n = ( t + e + 15 | 0 ) & - 16 ; if ( HEAP32 [ DYNAMICTOP _PTR >> 2 ] = n , n >= TOTAL _MEMORY ) { var i = enlargeMemory ( ) ; if ( ! i ) return HEAP32 [ DYNAMICTOP _PTR >> 2 ] = t , 0 } return t } , alignMemory : function ( e , t ) { var n = e = Math . ceil ( e / ( t ? t : 16 ) ) * ( t ? t : 16 ) ; return n } , makeBigInt : function ( e , t , n ) { var i = n ? + ( e >>> 0 ) + 4294967296 * + ( t >>> 0 ) : + ( e >>> 0 ) + 4294967296 * + ( 0 | t ) ; return i } , GLOBAL _BASE : 8 , QUANTUM _SIZE : 4 , _ _dummy _ _ : 0 } ; Module . Runtime = Runtime ; var ABORT = 0 , EXITSTATUS = 0 , cwrap , ccall ; ! function ( ) { function parseJSFunc ( e ) { var t = e . toString ( ) . match ( sourceRegex ) . slice ( 1 ) ; return { arguments : t [ 0 ] , body : t [ 1 ] , returnValue : t [ 2 ] } } function ensureJSsource ( ) { if ( ! JSsource ) { JSsource = { } ; for ( var e in JSfuncs ) JSfuncs . hasOwnProperty ( e ) && ( JSsource [ e ] = parseJSFunc ( JSfuncs [ e ] ) ) } } var JSfuncs = { stackSave : function ( ) { Runtime . stackSave ( ) } , stackRestore : function ( ) { Runtime . stackRestore ( ) } , arrayToC : function ( e ) { var t = Runtime . stackAlloc ( e . length ) ; return writeArrayToMemory ( e , t ) , t } , stringToC : function ( e ) { var t = 0 ; if ( null !== e && void 0 !== e && 0 !== e ) { var n = ( e . length << 2 ) + 1 ; t = Runtime . stackAlloc ( n ) , stringToUTF8 ( e , t , n ) } return t } } , toC = { string : JSfuncs . stringToC , array : JSfuncs . arrayToC } ; ccall = function ( e , t , n , i , a ) { var r = getCFunc ( e ) , o = [ ] , s = 0 ; if ( i ) for ( var l = 0 ; l < i . length ; l ++ ) { var c = toC [ n [ l ] ] ; c ? ( 0 === s && ( s = Runtime . stackSave ( ) ) , o [ l ] = c ( i [ l ] ) ) : o [ l ] = i [ l ] } var d = r . apply ( null , o ) ; if ( "string" === t && ( d = Pointer _stringify ( d ) ) , 0 !== s ) { if ( a && a . async ) return void EmterpreterAsync . asyncFinalizers . push ( function ( ) { Runtime . stackRestore ( s ) } ) ; Runtime . stackRestore ( s ) } return d } ; var sourceRegex = /^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/ , JSsource = null ; cwrap = function cwrap ( ident , returnType , argTypes ) { argTypes = argTypes || [ ] ; var cfunc = getCFunc ( ident ) , numericArgs = argTypes . every ( function ( e ) { return "number" === e } ) , numericRet = "string" !== returnType ; if ( numericRet && numericArgs ) return cfunc ; var argNames = argTypes . map ( function ( e , t ) { return "$" + t } ) , funcstr = "(function(" + argNames . join ( "," ) + ") {" , nargs = argTypes . length ; if ( ! numericArgs ) { ensureJSsource ( ) , funcstr += "var stack = " + JSsource . stackSave . body + ";" ; for ( var i = 0 ; i < nargs ; i ++ ) { var arg = argNames [ i ] , type = argTypes [ i ] ; if ( "number" !== type ) { var convertCode = JSsource [ type + "ToC" ] ; funcstr += "var " + convertCode . arguments + " = " + arg + ";" , funcstr += convertCode . body + ";" , funcstr += arg + "=(" + convertCode . returnValue + ");" } } } var cfuncname = parseJSFunc ( function ( ) { return cfunc } ) . returnValue ; if ( funcstr += "var ret = " + cfuncname + "(" + argNames . join ( "," ) + ");" , ! numericRet ) { var strgfy = parseJSFunc ( function ( ) { return Pointer _stringify } ) . returnValue ; funcstr += "ret = " + strgfy + "(ret);" } return numericArgs || ( ensureJSsource ( ) , funcstr += JSsource . stackRestore . body . replace ( "()" , "(stack)" ) + ";" ) , funcstr += "return ret})" , eval ( funcstr ) } } ( ) , Module . ccall = ccall , Module . cwrap = cwrap , Module . setValue = setValue , Module . getValue = getValue ; var ALLOC _NORMAL = 0 , ALLOC _STACK = 1 , ALLOC _STATIC = 2 , ALLOC _DYNAMIC = 3 , ALLOC _NONE = 4 ; Module . ALLOC _NORMAL = ALLOC _NORMAL , Module . ALLOC _STACK = ALLOC _STACK , Module . ALLOC _STATIC = ALLOC _STATIC , Module . ALLOC _DYNAMIC = ALLOC _DYNAMIC , Module . ALLOC _NONE = ALLOC _NONE , Module . allocate = allocate , Module . getMemory = getMemory , Module . Pointer _stringify = Pointer _stringify , Module . AsciiToString = AsciiToString , Module . stringToAscii = stringToAscii ; var UTF8Decoder = "undefined" != typeof TextDecoder ? new TextDecoder ( "utf8" ) : void 0 ; Module . UTF8ArrayToString = UTF8ArrayToString , Module . UTF8ToString = UTF8ToString , Module . stringToUTF8Array = stringToUTF8Array , Module . stringToUTF8 = stringToUTF8 , Module . lengthBytesUTF8 = lengthBytesUTF8 ; var UTF16Decoder = "undefined" != typeof TextDecoder ? new TextDecoder ( "utf-16le" ) : void 0 ; Module . stackTrace = stackTrace ; var HEAP , buffer , HEAP8 , HEAPU8 , HEAP16 , HEAPU16 , HEAP32 , HEAPU32 , HEAPF32 , HEAPF64 , STATIC _BASE , STATICTOP , staticSealed , STACK _BASE , STACKTOP , STACK _MAX , DYNAMIC _BASE , DYNAMICTOP _PTR ; STATIC _BASE = STATICTOP = STACK _BASE = STACKTOP = STACK _MAX = DYNAMIC _BASE = DYNAMICTOP _PTR = 0 , staticSealed = ! 1 ; var TOTAL _STACK = Module . TOTAL _STACK || 5242880 , TOTAL _MEMORY = Module . TOTAL _MEMORY || 16777216 ; if ( TOTAL _MEMORY < TOTAL _STACK && Module . printErr ( "TOTAL_MEMORY should be larger than TOTAL_STACK, was " + TOTAL _ME
r [ t + 4 >> 2 ] = y ; r [ t + 8 >> 2 ] = k + y ; r [ t + 12 >> 2 ] = $ } r [ e + 16 >> 2 ] = 0 ; k = $ + y | 0 ; r [ l >> 2 ] = k + b ; r [ c >> 2 ] = 0 ; r [ h >> 2 ] = 0 ; f = k ; m = n ; return f | 0 } while ( 0 ) ; r [ c >> 2 ] = 0 ; r [ _ >> 2 ] = 0 ; _ = Ua ( d + 1 | 0 , 79 , p + - 1 | 0 ) | 0 ; if ( ! _ ) O = g + ( r [ u >> 2 ] | 0 ) | 0 ; else O = _ ; _ = O ; r [ l >> 2 ] = _ - g ; f = d - _ | 0 ; m = n ; return f | 0 } function He ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , a = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 , D = 0 , R = 0 ; n = r [ t >> 2 ] | 0 ; a = r [ t + 8 >> 2 ] | 0 ; s = r [ t + 12 >> 2 ] | 0 ; t = i [ n + 4 >> 0 ] | 0 ; l = i [ n + 5 >> 0 ] | 0 ; c = l & 1 ; d = l & 2 ; u = l & 4 ; l = Lr ( o [ n + 13 >> 0 ] | 0 | 0 , 0 , 8 ) | 0 ; p = Lr ( l | ( o [ n + 12 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; l = Lr ( p | ( o [ n + 11 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; p = Lr ( l | ( o [ n + 10 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; l = Lr ( p | ( o [ n + 9 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; p = Lr ( l | ( o [ n + 8 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; l = Lr ( p | ( o [ n + 7 >> 0 ] | 0 ) | 0 , P | 0 , 8 ) | 0 ; p = P ; f = l | ( o [ n + 6 >> 0 ] | 0 ) ; l = ( o [ n + 15 >> 0 ] | 0 ) << 8 | ( o [ n + 14 >> 0 ] | 0 ) | ( o [ n + 16 >> 0 ] | 0 ) << 16 | ( o [ n + 17 >> 0 ] | 0 ) << 24 ; m = ( o [ n + 19 >> 0 ] | 0 ) << 8 | ( o [ n + 18 >> 0 ] | 0 ) | ( o [ n + 20 >> 0 ] | 0 ) << 16 | ( o [ n + 21 >> 0 ] | 0 ) << 24 ; h = i [ n + 26 >> 0 ] | 0 ; g = h & 255 ; if ( ! e ) { _ = - 1 ; return _ | 0 } v = r [ e >> 2 ] | 0 ; if ( ! v ) { _ = - 1 ; return _ | 0 } y = e + 36 | 0 ; b = r [ y >> 2 ] | 0 ; w = e + 12 | 0 ; k = r [ w >> 2 ] | 0 ; if ( k | 0 ) { M = e + 8 | 0 ; S = ( r [ M >> 2 ] | 0 ) - k | 0 ; r [ M >> 2 ] = S ; if ( S | 0 ) Wr ( v | 0 , v + k | 0 , S | 0 ) | 0 ; r [ w >> 2 ] = 0 } if ( b | 0 ) { w = e + 28 | 0 ; S = r [ w >> 2 ] | 0 ; k = S - b | 0 ; if ( ! k ) A = S ; else { S = r [ e + 16 >> 2 ] | 0 ; Wr ( S | 0 , S + ( b << 2 ) | 0 , k << 2 | 0 ) | 0 ; k = r [ e + 20 >> 2 ] | 0 ; Wr ( k | 0 , k + ( b << 3 ) | 0 , ( r [ w >> 2 ] | 0 ) - b << 3 | 0 ) | 0 ; A = r [ w >> 2 ] | 0 } r [ w >> 2 ] = A - b ; A = e + 32 | 0 ; r [ A >> 2 ] = ( r [ A >> 2 ] | 0 ) - b ; r [ y >> 2 ] = 0 } if ( t << 24 >> 24 ? 1 : ( l | 0 ) != ( r [ e + 336 >> 2 ] | 0 ) ) { _ = - 1 ; return _ | 0 } if ( Oe ( e , g + 1 | 0 ) | 0 ) { _ = - 1 ; return _ | 0 } l = e + 340 | 0 ; t = r [ l >> 2 ] | 0 ; if ( ( m | 0 ) != ( t | 0 ) ) { y = e + 32 | 0 ; b = r [ y >> 2 ] | 0 ; A = e + 28 | 0 ; w = r [ A >> 2 ] | 0 ; if ( ( b | 0 ) < ( w | 0 ) ) { k = r [ e + 16 >> 2 ] | 0 ; S = e + 8 | 0 ; v = b ; M = r [ S >> 2 ] | 0 ; do { M = M - ( r [ k + ( v << 2 ) >> 2 ] & 255 ) | 0 ; v = v + 1 | 0 } while ( ( v | 0 ) < ( w | 0 ) ) ; r [ S >> 2 ] = M } r [ A >> 2 ] = b ; if ( ( t | 0 ) != - 1 ) { t = r [ e + 16 >> 2 ] | 0 ; M = b + 1 | 0 ; r [ A >> 2 ] = M ; r [ t + ( b << 2 ) >> 2 ] = 1024 ; r [ y >> 2 ] = M } } e : do if ( c << 24 >> 24 ) { M = r [ e + 28 >> 2 ] | 0 ; if ( ( M | 0 ) >= 1 ? ( r [ ( r [ e + 16 >> 2 ] | 0 ) + ( M + - 1 << 2 ) >> 2 ] | 0 ) != 1024 : 0 ) { C = a ; T = s ; E = d ; $ = 0 ; break } if ( ! ( h << 24 >> 24 ) ) { C = a ; T = s ; E = 0 ; $ = 0 } else { M = a ; y = s ; b = 0 ; while ( 1 ) { t = i [ n + ( b + 27 ) >> 0 ] | 0 ; A = t & 255 ; S = M + A | 0 ; w = y - A | 0 ; A = t << 24 >> 24 == - 1 ; t = ( ( A ^ 1 ) & 1 ) + b | 0 ; if ( ! A ) { C = S ; T = w ; E = 0 ; $ = t ; break e } A = t + 1 | 0 ; if ( ( A | 0 ) < ( g | 0 ) ) { M = S ; y = w ; b = A } else { C = S ; T = w ; E = 0 ; $ = A ; break } } } } else { C = a ; T = s ; E = d ; $ = 0 } while ( 0 ) ; if ( T | 0 ) { d = e + 4 | 0 ; s = r [ d >> 2 ] | 0 ; a = e + 8 | 0 ; h = r [ a >> 2 ] | 0 ; do if ( ( s - T | 0 ) > ( h | 0 ) ) { I = r [ e >> 2 ] | 0 ; x = h } else { if ( ( s | 0 ) > ( 2147483647 - T | 0 ) ) { c = r [ e >> 2 ] | 0 ; if ( c | 0 ) Cr ( c ) ; c = r [ e + 16 >> 2 ] | 0 ; if ( c | 0 ) Cr ( c ) ; c = r [ e + 20 >> 2 ] | 0 ; if ( c | 0 ) Cr ( c ) ; Or ( e | 0 , 0 , 360 ) | 0 ; _ = - 1 ; return _ | 0 } c = s + T | 0 ; b = ( c | 0 ) < 2147482623 ? c + 1024 | 0 : c ; c = Er ( r [ e >> 2 ] | 0 , b ) | 0 ; if ( c | 0 ) { r [ d >> 2 ] = b ; r [ e >> 2 ] = c ; I = c ; x = r [ a >> 2 ] | 0 ; break } c = r [ e >> 2 ] | 0 ; if ( c | 0 ) Cr ( c ) ; c = r [ e + 16 >> 2 ] | 0 ; if ( c | 0 ) Cr ( c ) ; c = r [ e + 20 >> 2 ] | 0 ; if ( c | 0 ) Cr ( c ) ; Or ( e | 0 , 0 , 360 ) | 0 ; _ = - 1 ; return _ | 0 } while ( 0 ) ; zr ( I + x | 0 , C | 0 , T | 0 ) | 0 ; r [ a >> 2 ] = ( r [ a >> 2 ] | 0 ) + T } T = e + 16 | 0 ; a = e + 28 | 0 ; C = e + 20 | 0 ; x = e + 32 | 0 ; I = E ; E = - 1 ; d = $ ; e : while ( 1 ) { $ = I ; s = d ; while ( 1 ) { if ( ( s | 0 ) >= ( g | 0 ) ) break e ; h = i [ n + ( s + 27 ) >> 0 ] | 0 ; c = h & 255 ; D = r [ a >> 2 ] | 0 ; b = ( r [ T >> 2 ] | 0 ) + ( D << 2 ) | 0 ; r [ b >> 2 ] = c ; y = ( r [ C >> 2 ] | 0 ) + ( D << 3 ) | 0 ; r [ y >> 2 ] = - 1 ; r [ y + 4 >> 2 ] = - 1 ; if ( $ | 0 ) r [ b >> 2 ] = c | 256 ; R = D + 1 | 0 ; r [ a >> 2 ] = R ; s = s + 1 | 0 ; if ( h << 24 >> 24 != - 1 ) break ; else $ = 0 } r [ x >> 2 ] = R ; I = 0 ; E = D ; d = s } if ( ( E | 0 ) != - 1 ) { d = ( r [ C >> 2 ] | 0 ) + ( E << 3 ) | 0 ; r [ d >> 2 ] = f ; r [ d + 4 >> 2 ] = p } if ( u << 24 >> 24 ? ( r [ e + 328 >> 2 ] = 1 , e = r [ a >> 2 ] | 0 , ( e | 0 ) > 0 ) : 0 ) { a = ( r [ T >> 2 ] | 0 ) + ( e + - 1 << 2 ) | 0 ; r [ a >> 2 ] = r [ a >> 2 ] | 512 } r [ l >> 2 ] = m + 1 ; _ = 0 ; return _ | 0 } function je ( e ) { e = e | 0 ; var t = 0 , n = 0 ; if ( ( r [ e + 4 >> 2 ] | 0 ) <= - 1 ) { t = - 1 ; return t | 0 } n = e + 8 | 0 ; r [ n >> 2 ] = 0 ; r [ n + 4 >> 2 ] = 0 ; r [ n + 8 >> 2 ] = 0 ; r [ n + 12 >> 2 ] = 0 ; r [ n + 16 >> 2 ] = 0 ; t = 0 ; return t | 0 } function Ve ( e ) { e = e | 0 ; var t = 0 , n = 0 ; if ( ! e ) { t = - 1 ; return t | 0 } if ( ! ( r [ e >> 2 ] | 0 ) ) { t = - 1 ; return t | 0 } r [ e + 8 >> 2 ] = 0 ; r [ e + 12 >> 2 ] = 0 ; r [ e + 28 >> 2 ] = 0 ; r [ e + 32 >> 2 ] = 0 ; r [ e + 36 >> 2 ] = 0 ; r [ e + 324 >> 2 ] = 0 ; r [ e + 328 >> 2 ] = 0 ; r [ e + 332 >> 2 ] = 0 ; r [ e + 340 >> 2 ] = - 1 ; n = e + 344 | 0 ; r [ n >> 2 ] = 0 ; r [ n + 4 >> 2 ] = 0 ; r [ n + 8 >> 2 ] = 0 ; r [ n + 12 >> 2 ] = 0 ; t = 0 ; return t | 0 } function qe ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 ; if ( ! e ) { n = 0 ; return n | 0 } i = r [ e >> 2 ] | 0 ; if ( ! i ) { n = 0 ; return n | 0 } a = e + 36 | 0 ; o = r [ a >> 2 ] | 0 ; if ( ( r [ e + 32 >> 2 ] | 0 ) <= ( o | 0 ) ) { n = 0 ; return n | 0 } s = r [ e + 16 >> 2 ] | 0 ; l = r [ s + ( o << 2 ) >> 2 ] | 0 ; if ( l & 1024 | 0 ) { r [ a >> 2 ] = o + 1 ; c = e + 344 | 0 ; d = c ; u = Rr ( r [ d >> 2 ] | 0 , r [ d + 4 >> 2 ] | 0 , 1 , 0 ) | 0 ; d = c ; r [ d >> 2 ] = u ; r [ d + 4 >> 2 ] = P ; n = - 1 ; return n | 0 } d = ( t | 0 ) == 0 ; u = l & 255 ; c = l & 512 ; p = l & 256 ; if ( ( u | 0 ) == 255 ) { l = 255 ; f = c ; m = o ; while ( 1 ) { h = m + 1 | 0 ; g = r [ s + ( h << 2 ) >> 2 ] | 0 ; _ = g & 255 ; v = ( g & 512 | 0 ) == 0 ? f : 512 ; g = _ + l | 0 ; if ( ( _ | 0 ) == 255 ) { l = g ; f = v ; m = h } else { y = g ; b = v ; w = h ; break } } } else { y = u ; b = c ; w = o } if ( d ) { d = e + 12 | 0 ; o
r [ a >> 2 ] = 0 ; p = r [ a >> 2 ] | 0 ; m = i ; return p | 0 } return 0 } function Mt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 ; n = m ; m = m + 16 | 0 ; i = n + 12 | 0 ; a = n + 8 | 0 ; o = n + 4 | 0 ; s = n ; r [ a >> 2 ] = e ; r [ o >> 2 ] = t ; if ( ! ( r [ a >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 2 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } r [ s >> 2 ] = bt ( r [ a >> 2 ] | 0 , r [ o >> 2 ] | 0 ) | 0 ; if ( ! ( r [ s >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 20 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } t = ( r [ s >> 2 ] | 0 ) + 376 | 0 ; if ( ( r [ t >> 2 ] | 0 ) == 0 & ( r [ t + 4 >> 2 ] | 0 ) == 0 ) { t = ( r [ s >> 2 ] | 0 ) + 376 | 0 ; r [ t >> 2 ] = 1 ; r [ t + 4 >> 2 ] = 0 ; t = ( r [ s >> 2 ] | 0 ) + 384 | 0 ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 } t = r [ a >> 2 ] | 0 ; e = r [ o >> 2 ] | 0 ; if ( ! ( r [ ( r [ s >> 2 ] | 0 ) + 408 >> 2 ] | 0 ) ) { r [ i >> 2 ] = At ( t , e , 19 , 0 , 1 ) | 0 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } s = ( Ct ( t , e ) | 0 ) == 12 ; e = r [ a >> 2 ] | 0 ; t = r [ o >> 2 ] | 0 ; if ( s ) { r [ i >> 2 ] = At ( e , t , 20 , 0 , 1 ) | 0 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } s = ( Ct ( e , t ) | 0 ) == 14 ; t = r [ a >> 2 ] | 0 ; a = r [ o >> 2 ] | 0 ; if ( s ) { r [ i >> 2 ] = At ( t , a , 21 , 0 , 1 ) | 0 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } else { r [ i >> 2 ] = At ( t , a , 22 , 0 , 1 ) | 0 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } return 0 } function St ( e , t , n , i , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; var o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 ; o = m ; m = m + 32 | 0 ; s = o + 8 | 0 ; l = o + 28 | 0 ; c = o + 24 | 0 ; d = o ; u = o + 16 | 0 ; r [ l >> 2 ] = e ; r [ c >> 2 ] = t ; t = d ; r [ t >> 2 ] = n ; r [ t + 4 >> 2 ] = i ; r [ o + 20 >> 2 ] = a ; r [ u >> 2 ] = bt ( r [ l >> 2 ] | 0 , r [ c >> 2 ] | 0 ) | 0 ; if ( ! ( r [ u >> 2 ] | 0 ) ) { c = s ; r [ c >> 2 ] = - 1 ; r [ c + 4 >> 2 ] = - 1 ; p = s ; f = p ; h = r [ f >> 2 ] | 0 ; g = p + 4 | 0 ; _ = g ; v = r [ _ >> 2 ] | 0 ; P = v ; m = o ; return h | 0 } c = d ; l = r [ c + 4 >> 2 ] | 0 ; a = ( r [ u >> 2 ] | 0 ) + 392 | 0 ; i = r [ a + 4 >> 2 ] | 0 ; if ( ( l | 0 ) < ( i | 0 ) | ( ( l | 0 ) == ( i | 0 ) ? ( r [ c >> 2 ] | 0 ) >>> 0 <= ( r [ a >> 2 ] | 0 ) >>> 0 : 0 ) ) { y = 0 ; b = 0 } else { a = d ; c = ( r [ u >> 2 ] | 0 ) + 392 | 0 ; i = Dr ( r [ a >> 2 ] | 0 , r [ a + 4 >> 2 ] | 0 , r [ c >> 2 ] | 0 , r [ c + 4 >> 2 ] | 0 ) | 0 ; y = i ; b = P } i = d ; r [ i >> 2 ] = y ; r [ i + 4 >> 2 ] = b ; b = ( r [ u >> 2 ] | 0 ) + 384 | 0 ; i = d ; d = Vr ( r [ b >> 2 ] | 0 , r [ b + 4 >> 2 ] | 0 , r [ i >> 2 ] | 0 , r [ i + 4 >> 2 ] | 0 ) | 0 ; i = ( r [ u >> 2 ] | 0 ) + 376 | 0 ; u = Br ( d | 0 , P | 0 , r [ i >> 2 ] | 0 , r [ i + 4 >> 2 ] | 0 ) | 0 ; i = s ; r [ i >> 2 ] = u ; r [ i + 4 >> 2 ] = P ; p = s ; f = p ; h = r [ f >> 2 ] | 0 ; g = p + 4 | 0 ; _ = g ; v = r [ _ >> 2 ] | 0 ; P = v ; m = o ; return h | 0 } function At ( e , t , n , i , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; var o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 ; o = m ; m = m + 32 | 0 ; s = o + 24 | 0 ; l = o + 20 | 0 ; c = o + 16 | 0 ; d = o + 12 | 0 ; u = o + 8 | 0 ; p = o + 4 | 0 ; f = o ; r [ l >> 2 ] = e ; r [ c >> 2 ] = t ; r [ d >> 2 ] = n ; r [ u >> 2 ] = i ; r [ p >> 2 ] = a ; if ( ! ( r [ l >> 2 ] | 0 ) ) { r [ s >> 2 ] = - 2 ; h = r [ s >> 2 ] | 0 ; m = o ; return h | 0 } a = r [ l >> 2 ] | 0 ; if ( ( r [ c >> 2 ] | 0 ) == - 1 ) { if ( r [ a + 96 >> 2 ] | 0 ? r [ ( r [ l >> 2 ] | 0 ) + 92 >> 2 ] | 0 : 0 ) Cr ( r [ ( r [ l >> 2 ] | 0 ) + 92 >> 2 ] | 0 ) ; r [ ( r [ l >> 2 ] | 0 ) + 88 >> 2 ] = r [ d >> 2 ] ; r [ ( r [ l >> 2 ] | 0 ) + 92 >> 2 ] = r [ u >> 2 ] ; r [ ( r [ l >> 2 ] | 0 ) + 96 >> 2 ] = r [ p >> 2 ] } else { r [ f >> 2 ] = bt ( a , r [ c >> 2 ] | 0 ) | 0 ; if ( ! ( r [ f >> 2 ] | 0 ) ) { r [ s >> 2 ] = - 20 ; h = r [ s >> 2 ] | 0 ; m = o ; return h | 0 } if ( r [ ( r [ f >> 2 ] | 0 ) + 456 >> 2 ] | 0 ? r [ ( r [ f >> 2 ] | 0 ) + 452 >> 2 ] | 0 : 0 ) Cr ( r [ ( r [ f >> 2 ] | 0 ) + 452 >> 2 ] | 0 ) ; r [ ( r [ f >> 2 ] | 0 ) + 448 >> 2 ] = r [ d >> 2 ] ; r [ ( r [ f >> 2 ] | 0 ) + 452 >> 2 ] = r [ u >> 2 ] ; r [ ( r [ f >> 2 ] | 0 ) + 456 >> 2 ] = r [ p >> 2 ] } r [ s >> 2 ] = 0 ; h = r [ s >> 2 ] | 0 ; m = o ; return h | 0 } function Ct ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 ; n = m ; m = m + 16 | 0 ; i = n + 12 | 0 ; a = n + 8 | 0 ; o = n + 4 | 0 ; s = n ; r [ a >> 2 ] = e ; r [ o >> 2 ] = t ; if ( ! ( r [ a >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 2 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } r [ s >> 2 ] = bt ( r [ a >> 2 ] | 0 , r [ o >> 2 ] | 0 ) | 0 ; if ( ! ( r [ s >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 20 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } else { r [ i >> 2 ] = r [ ( r [ s >> 2 ] | 0 ) + 360 >> 2 ] ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } return 0 } function Tt ( e , t , n , i , o ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; o = o | 0 ; var l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 ; l = m ; m = m + 80 | 0 ; c = l + 40 | 0 ; d = l + 64 | 0 ; u = l + 60 | 0 ; p = l + 32 | 0 ; f = l + 52 | 0 ; h = l + 24 | 0 ; g = l + 16 | 0 ; _ = l + 48 | 0 ; v = l + 68 | 0 ; y = l + 8 | 0 ; b = l ; r [ d >> 2 ] = e ; r [ u >> 2 ] = t ; t = p ; r [ t >> 2 ] = n ; r [ t + 4 >> 2 ] = i ; r [ l + 56 >> 2 ] = o ; r [ f >> 2 ] = bt ( r [ d >> 2 ] | 0 , r [ u >> 2 ] | 0 ) | 0 ; if ( ! ( r [ f >> 2 ] | 0 ) ) { u = c ; r [ u >> 2 ] = - 1 ; r [ u + 4 >> 2 ] = - 1 ; w = c ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = l ; return M | 0 } else { u = p ; d = Pr ( r [ u >> 2 ] | 0 , r [ u + 4 >> 2 ] | 0 , r [ ( r [ f >> 2 ] | 0 ) + 408 >> 2 ] | 0 ) | 0 ; u = h ; r [ u >> 2 ] = d ; r [ u + 4 >> 2 ] = P ; u = p ; p = r [ u >> 2 ] | 0 ; d = r [ u + 4 >> 2 ] | 0 ; u = h ; o = Lr ( r [ u >> 2 ] | 0 , r [ u + 4 >> 2 ] | 0 , r [ ( r [ f >> 2 ] | 0 ) + 408 >> 2 ] | 0 ) | 0 ; u = Dr ( p | 0 , d | 0 , o | 0 , P | 0 ) | 0 ; o = g ; r [ o >> 2 ] = u ; r [ o + 4 >> 2 ] = P ; o = h ; h = g ; u = Rr ( r [ o >> 2 ] | 0 , r [ o + 4 >> 2 ] | 0 , r [ h >> 2 ] | 0 , r [ h + 4 >> 2 ] | 0 ) | 0 ; h = Pr ( u | 0 , P | 0 , 9 ) | 0 ; r [ _ >> 2 ] = h ; h = g ; g = Pr ( r [ h >> 2 ] | 0 , r [ h + 4 >> 2 ] | 0 , 9 ) | 0 ; a [ v >> 1 ] = g ; g = Dr ( r [ _ >> 2 ] | 0 , 0 , s [ v >> 1 ] | 0 | 0 , 0 ) | 0 ; v = y ; r [ v >> 2 ] = g ; r [ v + 4 >> 2 ] = P ; v = y ; y = ( r [ f >> 2 ] | 0 ) + 384 | 0 ; g = Vr ( r [ v >> 2 ] | 0 , r [ v + 4 >> 2 ] | 0 , r [ y >> 2 ] | 0 , r [ y + 4 >> 2 ] | 0 ) | 0 ; y = ( r [ f >> 2 ] | 0 ) + 376 | 0 ; f = Br ( g | 0 , P | 0 , r [ y >> 2 ] | 0 , r [ y + 4 >> 2 ] | 0 ) | 0 ; y = b ; r [ y >> 2 ] = f ; r [ y + 4 >> 2 ] = P ; y = b ; b = r [ y + 4 >> 2 ] | 0 ; f = c ; r [ f >> 2 ] = r [ y >> 2 ] ; r [ f + 4 >> 2 ] = b ; w = c ; k = w ; M = r [ k >> 2 ] | 0 ; S = w + 4 | 0 ; A = S ; C = r [ A >> 2 ] | 0 ; P = C ; m = l ; return M | 0 } return 0 } function Et ( e , t , n , i , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; var o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 ; o = m ; m = m + 48 | 0 ; s = o + 24 | 0 ; l = o + 44 | 0 ; c = o + 40 | 0 ; d = o + 16 | 0 ; u = o + 32 | 0 ; p = o + 8 | 0 ; f = o ; r [ l >> 2 ] = e ; r [ c >> 2 ] = t ; t = d ; r [ t >> 2 ] = n ; r [
break } case 11 : { if ( ( r [ ( r [ d >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) > 9 ? ( Ta ( r [ r [ d >> 2 ] >> 2 ] | 0 , 2744 , 8 ) | 0 ) == 0 : 0 ) r [ u >> 2 ] = 9 ; break } case 8 : { if ( ( r [ ( r [ d >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) > 4 ? ( ( o [ r [ r [ d >> 2 ] >> 2 ] >> 0 ] | 0 ) & 7 | 0 ) == 4 : 0 ) { r [ p >> 2 ] = ( ( o [ ( r [ r [ d >> 2 ] >> 2 ] | 0 ) + 1 >> 0 ] | 0 ) << 16 ) + ( ( o [ ( r [ r [ d >> 2 ] >> 2 ] | 0 ) + 2 >> 0 ] | 0 ) << 8 ) + ( o [ ( r [ r [ d >> 2 ] >> 2 ] | 0 ) + 3 >> 0 ] | 0 ) ; r [ u >> 2 ] = 4 } break } case 13 : { if ( ( r [ ( r [ d >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) > 8 ? ( Ta ( r [ r [ d >> 2 ] >> 2 ] | 0 , 2753 , 8 ) | 0 ) == 0 : 0 ) r [ u >> 2 ] = 8 ; break } case 14 : { if ( ( r [ ( r [ d >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) > 7 ? ( Ta ( r [ r [ d >> 2 ] >> 2 ] | 0 , 2762 , 7 ) | 0 ) == 0 : 0 ) r [ u >> 2 ] = 7 ; break } default : { } } if ( ( r [ p >> 2 ] | 0 ) == - 1 ) r [ p >> 2 ] = ( r [ ( r [ d >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) - ( r [ u >> 2 ] | 0 ) ; if ( ( r [ u >> 2 ] | 0 ) < 0 ) { m = a ; return 0 } Vn ( r [ s >> 2 ] | 0 , r [ c >> 2 ] | 0 , ( r [ r [ d >> 2 ] >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , r [ p >> 2 ] | 0 ) | 0 ; m = a ; return 0 } function En ( e , t , n , i , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; var o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 ; o = m ; m = m + 32 | 0 ; s = o + 28 | 0 ; l = o + 24 | 0 ; c = o + 20 | 0 ; d = o + 16 | 0 ; u = o + 12 | 0 ; p = o + 8 | 0 ; f = o + 4 | 0 ; h = o ; r [ l >> 2 ] = e ; r [ c >> 2 ] = t ; r [ d >> 2 ] = n ; r [ u >> 2 ] = i ; r [ p >> 2 ] = a ; r [ h >> 2 ] = r [ c >> 2 ] ; a = Ar ( 72 ) | 0 ; r [ f >> 2 ] = a ; if ( ! a ) { r [ s >> 2 ] = 0 ; g = r [ s >> 2 ] | 0 ; m = o ; return g | 0 } a = r [ f >> 2 ] | 0 ; i = r [ c >> 2 ] | 0 ; c = a + 56 | 0 ; do { r [ a >> 2 ] = r [ i >> 2 ] ; a = a + 4 | 0 ; i = i + 4 | 0 } while ( ( a | 0 ) < ( c | 0 ) ) ; i = Ar ( r [ ( r [ h >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) | 0 ; r [ r [ f >> 2 ] >> 2 ] = i ; a = r [ f >> 2 ] | 0 ; if ( ! i ) { Cr ( a ) ; r [ s >> 2 ] = 0 ; g = r [ s >> 2 ] | 0 ; m = o ; return g | 0 } else { zr ( r [ a >> 2 ] | 0 , r [ r [ h >> 2 ] >> 2 ] | 0 , r [ ( r [ h >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) | 0 ; r [ ( r [ f >> 2 ] | 0 ) + 56 >> 2 ] = r [ u >> 2 ] ; r [ ( r [ f >> 2 ] | 0 ) + 68 >> 2 ] = r [ d >> 2 ] ; r [ ( r [ f >> 2 ] | 0 ) + 60 >> 2 ] = r [ p >> 2 ] ; r [ ( r [ f >> 2 ] | 0 ) + 64 >> 2 ] = r [ l >> 2 ] ; r [ s >> 2 ] = r [ f >> 2 ] ; g = r [ s >> 2 ] | 0 ; m = o ; return g | 0 } return 0 } function $n ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 ; n = m ; m = m + 16 | 0 ; i = n + 12 | 0 ; a = n + 8 | 0 ; o = n + 4 | 0 ; s = n ; r [ a >> 2 ] = e ; r [ o >> 2 ] = t ; if ( ! ( r [ a >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 1 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } r [ s >> 2 ] = Ar ( 12 ) | 0 ; if ( ! ( r [ s >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 1 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } else { r [ ( r [ s >> 2 ] | 0 ) + 8 >> 2 ] = r [ o >> 2 ] ; r [ r [ s >> 2 ] >> 2 ] = r [ ( r [ a >> 2 ] | 0 ) + 4 >> 2 ] ; r [ ( r [ s >> 2 ] | 0 ) + 4 >> 2 ] = r [ ( r [ ( r [ a >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) + 4 >> 2 ] ; r [ r [ ( r [ s >> 2 ] | 0 ) + 4 >> 2 ] >> 2 ] = r [ s >> 2 ] ; r [ ( r [ r [ s >> 2 ] >> 2 ] | 0 ) + 4 >> 2 ] = r [ s >> 2 ] ; r [ i >> 2 ] = 0 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } return 0 } function In ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; m = t ; return ( r [ r [ r [ n >> 2 ] >> 2 ] >> 2 ] | 0 ) == ( r [ ( r [ n >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) | 0 } function xn ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 ; t = m ; m = m + 16 | 0 ; n = t + 12 | 0 ; i = t + 8 | 0 ; a = t + 4 | 0 ; o = t ; r [ i >> 2 ] = e ; r [ a >> 2 ] = r [ i >> 2 ] ; i = ( r [ a >> 2 ] | 0 ) + 32 | 0 ; do if ( ( ( r [ i >> 2 ] | 0 ) == - 1 ? ( r [ i + 4 >> 2 ] | 0 ) == - 1 : 0 ) ? ( e = ( r [ ( r [ a >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) + 488 | 0 , ( r [ e >> 2 ] | 0 ) != - 1 ? 1 : ( r [ e + 4 >> 2 ] | 0 ) != - 1 ) : 0 ) { r [ o >> 2 ] = Ct ( r [ ( r [ a >> 2 ] | 0 ) + 64 >> 2 ] | 0 , r [ ( r [ a >> 2 ] | 0 ) + 68 >> 2 ] | 0 ) | 0 ; if ( ! ( ( r [ o >> 2 ] | 0 ) < 0 | ( r [ o >> 2 ] | 0 ) >= 15 ) ) { e = ( r [ ( r [ a >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) + 488 | 0 ; s = jn ( r [ o >> 2 ] | 0 , r [ e >> 2 ] | 0 , r [ e + 4 >> 2 ] | 0 , r [ ( r [ a >> 2 ] | 0 ) + 56 >> 2 ] | 0 , r [ a >> 2 ] | 0 , r [ ( r [ ( r [ a >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) + 508 >> 2 ] | 0 ) | 0 ; e = ( r [ a >> 2 ] | 0 ) + 32 | 0 ; r [ e >> 2 ] = s ; r [ e + 4 >> 2 ] = P ; e = ( r [ a >> 2 ] | 0 ) + 32 | 0 ; s = r [ e + 4 >> 2 ] | 0 ; l = ( r [ ( r [ a >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) + 488 | 0 ; r [ l >> 2 ] = r [ e >> 2 ] ; r [ l + 4 >> 2 ] = s ; r [ ( r [ ( r [ a >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) + 508 >> 2 ] = r [ a >> 2 ] ; break } r [ n >> 2 ] = 0 ; c = r [ n >> 2 ] | 0 ; m = t ; return c | 0 } while ( 0 ) ; r [ n >> 2 ] = 1 ; c = r [ n >> 2 ] | 0 ; m = t ; return c | 0 } function Pn ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 ; n = m ; m = m + 16 | 0 ; i = n + 8 | 0 ; a = n + 4 | 0 ; o = n ; r [ i >> 2 ] = e ; r [ a >> 2 ] = t ; r [ o >> 2 ] = r [ ( r [ ( r [ i >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) + 4 >> 2 ] ; while ( 1 ) { if ( ( r [ o >> 2 ] | 0 ) == ( r [ r [ i >> 2 ] >> 2 ] | 0 ) ) { s = 5 ; break } if ( ! ( co [ r [ a >> 2 ] & 15 ] ( r [ ( r [ o >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ) ) { s = 5 ; break } r [ o >> 2 ] = r [ ( r [ o >> 2 ] | 0 ) + 4 >> 2 ] } if ( ( s | 0 ) == 5 ) { m = n ; return } } function Dn ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 ; t = m ; m = m + 32 | 0 ; n = t + 28 | 0 ; i = t + 24 | 0 ; a = t + 20 | 0 ; o = t + 8 | 0 ; s = t ; l = t + 16 | 0 ; r [ i >> 2 ] = e ; r [ a >> 2 ] = r [ i >> 2 ] ; i = ( r [ a >> 2 ] | 0 ) + 32 | 0 ; if ( ( r [ i >> 2 ] | 0 ) == - 1 ? ( r [ i + 4 >> 2 ] | 0 ) == - 1 : 0 ) { r [ n >> 2 ] = 0 ; c = r [ n >> 2 ] | 0 ; m = t ; return c | 0 } i = ( r [ ( r [ a >> 2 ] | 0 ) + 60 >> 2 ] | 0 ) + 424 | 0 ; e = r [ i + 4 >> 2 ] | 0 ; d = o ; r [ d >> 2 ] = r [ i >> 2 ] ; r [ d + 4 >> 2 ] = e ; e = ( r [ ( r [ a >> 2 ] | 0 ) + 60 >> 2 ] | 0 ) + 416 | 0 ; d = r [ e + 4 >> 2 ] | 0 ; i = s ; r [ i >> 2 ] = r [ e >> 2 ] ; r [ i + 4 >> 2 ] = d ; d = ( r [ a >> 2 ] | 0 ) + 32 | 0 ; i = r [ d + 4 >> 2 ] | 0 ; e = ( r [ ( r [ a >> 2 ] | 0 ) + 60 >> 2 ] | 0 ) + 424 | 0 ; r [ e >> 2 ] = r [ d >> 2 ] ; r [ e + 4 >> 2 ] = i ; i = ( r [ a >> 2 ] | 0 ) + 32 | 0 ; e = Cn ( r [ ( r [ a >> 2 ] | 0 ) + 64 >> 2 ] | 0 , r [ ( r [ a >> 2 ] | 0 ) + 68 >> 2 ] | 0 , r [ i >> 2 ] | 0 , r [ i + 4 >> 2 ] | 0 ) | 0 ; i = ( r [ ( r [ a >> 2 ] | 0 ) + 60 >> 2 ] | 0 ) + 416 | 0 ; r [ i >> 2 ] = e ; r [ i + 4 >> 2 ] = P ; i = r [ a >> 2 ] | 0 ; if ( r [ ( r [ ( r [ a >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) + 468 >> 2 ] | 0 ) { e = uo [ r [ ( r [ i + 56 >> 2 ] | 0 ) + 468 >> 2 ] & 15 ] ( r [ ( r [ a >> 2 ] | 0 ) + 64 >> 2 ] | 0 , r [ a >> 2 ] | 0 , r [ ( r [ a >> 2 ] | 0 ) + 68 >> 2 ] | 0 , r [ ( r [ ( r [ a >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) + 472 >> 2 ] | 0 ) | 0 ; r [ l >> 2 ] = e ; if ( ( e | 0 ) < 0 ? ( r [ ( r [ ( r [ a >> 2 ] | 0 ) + 64 >> 2 ] | 0 ) + 76 >> 2 ] = r [ l >> 2 ] , ( r [ l >> 2 ] | 0 ) == - 1 ) : 0 ) { r [ n >> 2 ] = - 1 ; c = r [ n >> 2 ] | 0 ; m = t ; return c | 0 } } else if ( ( r [ ( r [ i + 60 >> 2 ] | 0 ) + 396 >> 2 ] | 0 ? ( i = uo [ r [ ( r [ ( r [ a >> 2 ] | 0 ) + 60 >> 2 ] | 0 ) + 396 >> 2 ]
l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } return 0 } function Ei ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 ; n = m ; m = m + 32 | 0 ; i = n + 16 | 0 ; a = n + 12 | 0 ; o = n + 8 | 0 ; s = n + 4 | 0 ; l = n ; r [ a >> 2 ] = e ; r [ o >> 2 ] = t ; r [ s >> 2 ] = - 1 ; r [ l >> 2 ] = - 1 ; if ( ( r [ a >> 2 ] | 0 ) == 0 | ( r [ o >> 2 ] | 0 ) == 0 ) { r [ i >> 2 ] = 0 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } else { r [ a >> 2 ] = xi ( r [ a >> 2 ] | 0 , s ) | 0 ; r [ a >> 2 ] = Ti ( r [ a >> 2 ] | 0 , l ) | 0 ; t = r [ l >> 2 ] | 0 ; l = Rr ( r [ s >> 2 ] | 0 , 0 , 0 , t | 0 ) | 0 ; t = r [ o >> 2 ] | 0 ; r [ t >> 2 ] = l ; r [ t + 4 >> 2 ] = P ; r [ i >> 2 ] = r [ a >> 2 ] ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } return 0 } function $i ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 ; n = m ; m = m + 32 | 0 ; i = n + 16 | 0 ; a = n + 12 | 0 ; s = n + 8 | 0 ; l = n ; r [ i >> 2 ] = e ; r [ a >> 2 ] = t ; r [ s >> 2 ] = 0 ; t = l ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 ; t = r [ a >> 2 ] | 0 ; r [ t >> 2 ] = 0 ; r [ t + 4 >> 2 ] = 0 ; do { t = l ; r [ t >> 2 ] = o [ r [ i >> 2 ] >> 0 ] ; r [ t + 4 >> 2 ] = 0 ; t = Lr ( r [ l >> 2 ] & 127 | 0 , 0 , r [ s >> 2 ] | 0 ) | 0 ; e = r [ a >> 2 ] | 0 ; c = e ; d = r [ c + 4 >> 2 ] | P ; u = e ; r [ u >> 2 ] = r [ c >> 2 ] | t ; r [ u + 4 >> 2 ] = d ; r [ s >> 2 ] = ( r [ s >> 2 ] | 0 ) + 7 ; r [ i >> 2 ] = ( r [ i >> 2 ] | 0 ) + 1 } while ( 0 ? 1 : ( r [ l >> 2 ] & 128 | 0 ) != 128 ) ; m = n ; return r [ i >> 2 ] | 0 } function Ii ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 ; i = m ; m = m + 32 | 0 ; a = i + 16 | 0 ; o = i + 12 | 0 ; s = i + 8 | 0 ; l = i + 4 | 0 ; c = i ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; r [ c >> 2 ] = 0 ; do if ( r [ o >> 2 ] | 0 ) { if ( ! ( r [ s >> 2 ] | 0 ) ) { r [ a >> 2 ] = - 1 ; break } r [ c >> 2 ] = wi ( r [ o >> 2 ] | 0 , r [ l >> 2 ] | 0 ) | 0 ; if ( ! ( r [ c >> 2 ] | 0 ) ) { r [ a >> 2 ] = - 4 ; break } if ( r [ ( r [ c >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) { r [ a >> 2 ] = - 1 ; break } else { r [ ( r [ c >> 2 ] | 0 ) + 8 >> 2 ] = r [ s >> 2 ] ; r [ a >> 2 ] = 1 ; break } } else r [ a >> 2 ] = - 1 ; while ( 0 ) ; m = i ; return r [ a >> 2 ] | 0 } function xi ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , s = 0 , l = 0 ; n = m ; m = m + 16 | 0 ; i = n + 8 | 0 ; a = n + 4 | 0 ; s = n ; r [ a >> 2 ] = e ; r [ s >> 2 ] = t ; if ( ( r [ a >> 2 ] | 0 ) == 0 | ( r [ s >> 2 ] | 0 ) == 0 ) { r [ i >> 2 ] = 0 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } else { r [ r [ s >> 2 ] >> 2 ] = o [ r [ a >> 2 ] >> 0 ] | 0 | ( o [ ( r [ a >> 2 ] | 0 ) + 1 >> 0 ] | 0 ) << 8 | ( o [ ( r [ a >> 2 ] | 0 ) + 2 >> 0 ] | 0 ) << 16 | ( o [ ( r [ a >> 2 ] | 0 ) + 3 >> 0 ] | 0 ) << 24 ; r [ i >> 2 ] = ( r [ a >> 2 ] | 0 ) + 4 ; l = r [ i >> 2 ] | 0 ; m = n ; return l | 0 } return 0 } function Pi ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , s = 0 , l = 0 , c = 0 ; n = m ; m = m + 16 | 0 ; i = n + 8 | 0 ; s = n + 4 | 0 ; l = n ; r [ s >> 2 ] = e ; r [ l >> 2 ] = t ; if ( ( r [ s >> 2 ] | 0 ) == 0 | ( r [ l >> 2 ] | 0 ) == 0 ) { r [ i >> 2 ] = 0 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } else { a [ r [ l >> 2 ] >> 1 ] = o [ r [ s >> 2 ] >> 0 ] | 0 | ( o [ ( r [ s >> 2 ] | 0 ) + 1 >> 0 ] | 0 ) << 8 ; r [ i >> 2 ] = ( r [ s >> 2 ] | 0 ) + 2 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } return 0 } function Di ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , o = 0 , s = 0 , l = 0 , c = 0 ; n = m ; m = m + 16 | 0 ; i = n + 12 | 0 ; o = n + 8 | 0 ; s = n + 4 | 0 ; l = n ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = - 1 ; t = Ri ( r [ o >> 2 ] | 0 , r [ s >> 2 ] | 0 ) | 0 ; r [ l >> 2 ] = t ; if ( ( t | 0 ) < 0 ) { r [ i >> 2 ] = r [ l >> 2 ] ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } else { a [ r [ s >> 2 ] >> 1 ] = a [ r [ o >> 2 ] >> 1 ] | 0 ; r [ i >> 2 ] = 0 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } return 0 } function Ri ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , o = 0 , s = 0 ; n = m ; m = m + 16 | 0 ; i = n + 8 | 0 ; o = n + 4 | 0 ; s = n ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; do if ( r [ o >> 2 ] | 0 ) { if ( ! ( a [ ( r [ o >> 2 ] | 0 ) + 118 >> 1 ] | 0 ) ) { r [ i >> 2 ] = - 5 ; break } if ( ! ( r [ s >> 2 ] | 0 ) ) { r [ i >> 2 ] = - 16 ; break } else { r [ i >> 2 ] = 0 ; break } } else r [ i >> 2 ] = - 2 ; while ( 0 ) ; m = n ; return r [ i >> 2 ] | 0 } function Oi ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , o = 0 , s = 0 , l = 0 , c = 0 ; n = m ; m = m + 16 | 0 ; i = n + 12 | 0 ; o = n + 8 | 0 ; s = n + 4 | 0 ; l = n ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = - 1 ; t = Ri ( r [ o >> 2 ] | 0 , r [ s >> 2 ] | 0 ) | 0 ; r [ l >> 2 ] = t ; if ( ( t | 0 ) < 0 ) { r [ i >> 2 ] = r [ l >> 2 ] ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } else { a [ r [ s >> 2 ] >> 1 ] = a [ ( r [ o >> 2 ] | 0 ) + 2 >> 1 ] | 0 ; r [ i >> 2 ] = 0 ; c = r [ i >> 2 ] | 0 ; m = n ; return c | 0 } return 0 } function Ni ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , l = 0 , c = 0 , d = 0 ; n = m ; m = m + 32 | 0 ; i = n + 16 | 0 ; a = n + 12 | 0 ; o = n + 8 | 0 ; l = n + 4 | 0 ; c = n ; r [ a >> 2 ] = e ; r [ o >> 2 ] = t ; r [ l >> 2 ] = - 1 ; r [ c >> 2 ] = 0 ; t = Ri ( r [ a >> 2 ] | 0 , r [ o >> 2 ] | 0 ) | 0 ; r [ l >> 2 ] = t ; if ( ( t | 0 ) < 0 ) { r [ i >> 2 ] = r [ l >> 2 ] ; d = r [ i >> 2 ] | 0 ; m = n ; return d | 0 } r [ c >> 2 ] = ( s [ r [ a >> 2 ] >> 1 ] | 0 ) << 16 | ( s [ ( r [ a >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) ; if ( ( r [ c >> 2 ] | 0 ) >>> 0 < 196610 ) { r [ i >> 2 ] = - 1 ; d = r [ i >> 2 ] | 0 ; m = n ; return d | 0 } else { c = ( r [ a >> 2 ] | 0 ) + 96 | 0 ; a = r [ c + 4 >> 2 ] | 0 ; l = r [ o >> 2 ] | 0 ; r [ l >> 2 ] = r [ c >> 2 ] ; r [ l + 4 >> 2 ] = a ; r [ i >> 2 ] = 0 ; d = r [ i >> 2 ] | 0 ; m = n ; return d | 0 } return 0 } function Li ( e , t , n , i , o , l ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; o = o | 0 ; l = l | 0 ; var c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 ; c = m ; m = m + 64 | 0 ; d = c + 48 | 0 ; u = c + 44 | 0 ; p = c + 40 | 0 ; f = c + 36 | 0 ; h = c + 8 | 0 ; g = c + 32 | 0 ; _ = c + 28 | 0 ; v = c + 24 | 0 ; y = c + 20 | 0 ; b = c ; w = c + 16 | 0 ; r [ u >> 2 ] = e ; r [ p >> 2 ] = t ; r [ f >> 2 ] = n ; n = h ; r [ n >> 2 ] = i ; r [ n + 4 >> 2 ] = o ; r [ g >> 2 ] = l ; r [ _ >> 2 ] = 0 ; r [ v >> 2 ] = - 1 ; r [ y >> 2 ] = 0 ; l = b ; r [ l >> 2 ] = - 1 ; r [ l + 4 >> 2 ] = 2147483647 ; l = Ri ( r [ u >> 2 ] | 0 , r [ g >> 2 ] | 0 ) | 0 ; r [ v >> 2 ] = l ; if ( ( l | 0 ) < 0 ) { r [ d >> 2 ] = r [ v >> 2 ] ; k = r [ d >> 2 ] | 0 ; m = c ; return k | 0 } if ( ! ( a [ ( r [ u >> 2 ] | 0 ) + 116 >> 1 ] | 0 ) ) { r [ d >> 2 ] = - 19 ; k = r [ d >> 2 ] | 0 ; m = c ; return k | 0 } if ( ( r [ p >> 2 ] | 0 ) == 0 | ( r [ f >> 2 ] | 0 ) == 0 ) { r [ d >> 2 ] = - 1 ; k = r [ d >> 2 ] | 0 ; m = c ; return k | 0 } do if ( ( s [ r [ u >> 2 ] >> 1 ] | 0 ) == 3 ) { v = ( r [ u >> 2 ] | 0 ) + 80 | 0 ; l = r [ v + 4 >> 2 ] | 0 ; o = h ; n = r [ o + 4 >> 2 ] | 0 ; if ( ! ( ( l | 0 ) < ( n | 0 ) | ( ( l | 0 ) == ( n | 0 ) ? ( r [ v >> 2 ] | 0 ) >>> 0 < ( r [ o >> 2 ] | 0 ) >>> 0 : 0 ) ) ? ( o = h , v = r [ o + 4 >> 2 ] | 0 , n = ( r [ u >> 2 ] | 0 ) + 64 | 0 , l = r
N = D + 1 | 0 ; i [ D >> 0 ] = o [ 3643 + O >> 0 ] | M ; R = ( R - + ( O | 0 ) ) * 16 ; if ( ( N - f | 0 ) == 1 ? ! ( T & ( I & R == 0 ) ) : 0 ) { i [ N >> 0 ] = 46 ; L = D + 2 | 0 } else L = N ; if ( ! ( R != 0 ) ) break ; else D = L } D = L - f | 0 ; I = g - C | 0 ; T = ( a | 0 ) != 0 & ( D + - 2 | 0 ) < ( a | 0 ) ? a + 2 | 0 : D ; M = I + A + T | 0 ; Ba ( e , 32 , n , M , s ) ; Pa ( e , S , A ) ; Ba ( e , 48 , n , M , s ^ 65536 ) ; Pa ( e , p , D ) ; Ba ( e , 48 , T - D | 0 , 0 , 0 ) ; Pa ( e , C , I ) ; Ba ( e , 32 , n , M , s ^ 8192 ) ; F = M ; break } M = ( a | 0 ) < 0 ? 6 : a ; if ( w ) { I = ( r [ u >> 2 ] | 0 ) + - 28 | 0 ; r [ u >> 2 ] = I ; U = I ; B = t * 268435456 } else { U = r [ u >> 2 ] | 0 ; B = t } I = ( U | 0 ) < 0 ? d : d + 288 | 0 ; R = B ; D = I ; do { T = ~ ~ R >>> 0 ; r [ D >> 2 ] = T ; D = D + 4 | 0 ; R = ( R - + ( T >>> 0 ) ) * 1e9 } while ( R != 0 ) ; if ( ( U | 0 ) > 0 ) { w = U ; C = I ; A = D ; while ( 1 ) { S = ( w | 0 ) < 29 ? w : 29 ; T = A + - 4 | 0 ; if ( T >>> 0 >= C >>> 0 ) { N = 0 ; O = T ; do { T = Lr ( r [ O >> 2 ] | 0 , 0 , S | 0 ) | 0 ; H = Rr ( T | 0 , P | 0 , N | 0 , 0 ) | 0 ; T = P ; j = Gr ( H | 0 , T | 0 , 1e9 , 0 ) | 0 ; r [ O >> 2 ] = j ; N = Hr ( H | 0 , T | 0 , 1e9 , 0 ) | 0 ; O = O + - 4 | 0 } while ( O >>> 0 >= C >>> 0 ) ; if ( N ) { O = C + - 4 | 0 ; r [ O >> 2 ] = N ; V = O } else V = C } else V = C ; O = A ; while ( 1 ) { if ( O >>> 0 <= V >>> 0 ) break ; T = O + - 4 | 0 ; if ( ! ( r [ T >> 2 ] | 0 ) ) O = T ; else break } N = ( r [ u >> 2 ] | 0 ) - S | 0 ; r [ u >> 2 ] = N ; if ( ( N | 0 ) > 0 ) { w = N ; C = V ; A = O } else { q = N ; z = V ; W = O ; break } } } else { q = U ; z = I ; W = D } if ( ( q | 0 ) < 0 ) { A = ( ( M + 25 | 0 ) / 9 | 0 ) + 1 | 0 ; C = ( k | 0 ) == 102 ; w = q ; N = z ; T = W ; while ( 1 ) { H = 0 - w | 0 ; j = ( H | 0 ) < 9 ? H : 9 ; if ( N >>> 0 < T >>> 0 ) { H = ( 1 << j ) + - 1 | 0 ; K = 1e9 >>> j ; Y = 0 ; X = N ; do { J = r [ X >> 2 ] | 0 ; r [ X >> 2 ] = ( J >>> j ) + Y ; Y = G ( J & H , K ) | 0 ; X = X + 4 | 0 } while ( X >>> 0 < T >>> 0 ) ; X = ( r [ N >> 2 ] | 0 ) == 0 ? N + 4 | 0 : N ; if ( ! Y ) { Z = X ; Q = T } else { r [ T >> 2 ] = Y ; Z = X ; Q = T + 4 | 0 } } else { Z = ( r [ N >> 2 ] | 0 ) == 0 ? N + 4 | 0 : N ; Q = T } X = C ? I : Z ; K = ( Q - X >> 2 | 0 ) > ( A | 0 ) ? X + ( A << 2 ) | 0 : Q ; w = ( r [ u >> 2 ] | 0 ) + j | 0 ; r [ u >> 2 ] = w ; if ( ( w | 0 ) >= 0 ) { ee = Z ; te = K ; break } else { N = Z ; T = K } } } else { ee = z ; te = W } T = I ; if ( ee >>> 0 < te >>> 0 ) { N = ( T - ee >> 2 ) * 9 | 0 ; w = r [ ee >> 2 ] | 0 ; if ( w >>> 0 < 10 ) ne = N ; else { A = N ; N = 10 ; while ( 1 ) { N = N * 10 | 0 ; C = A + 1 | 0 ; if ( w >>> 0 < N >>> 0 ) { ne = C ; break } else A = C } } } else ne = 0 ; A = ( k | 0 ) == 103 ; N = ( M | 0 ) != 0 ; w = M - ( ( k | 0 ) != 102 ? ne : 0 ) + ( ( N & A ) << 31 >> 31 ) | 0 ; if ( ( w | 0 ) < ( ( ( te - T >> 2 ) * 9 | 0 ) + - 9 | 0 ) ) { C = w + 9216 | 0 ; w = I + 4 + ( ( ( C | 0 ) / 9 | 0 ) + - 1024 << 2 ) | 0 ; D = ( ( C | 0 ) % 9 | 0 ) + 1 | 0 ; if ( ( D | 0 ) < 9 ) { C = 10 ; K = D ; while ( 1 ) { D = C * 10 | 0 ; K = K + 1 | 0 ; if ( ( K | 0 ) == 9 ) { ie = D ; break } else C = D } } else ie = 10 ; C = r [ w >> 2 ] | 0 ; K = ( C >>> 0 ) % ( ie >>> 0 ) | 0 ; k = ( w + 4 | 0 ) == ( te | 0 ) ; if ( ! ( k & ( K | 0 ) == 0 ) ) { E = ( ( ( C >>> 0 ) / ( ie >>> 0 ) | 0 ) & 1 | 0 ) == 0 ? 9007199254740992 : 9007199254740994 ; D = ( ie | 0 ) / 2 | 0 ; R = K >>> 0 < D >>> 0 ? . 5 : k & ( K | 0 ) == ( D | 0 ) ? 1 : 1.5 ; if ( ! _ ) { ae = E ; re = R } else { D = ( i [ v >> 0 ] | 0 ) == 45 ; ae = D ? - E : E ; re = D ? - R : R } D = C - K | 0 ; r [ w >> 2 ] = D ; if ( ae + re != ae ) { K = D + ie | 0 ; r [ w >> 2 ] = K ; if ( K >>> 0 > 999999999 ) { K = ee ; D = w ; while ( 1 ) { C = D + - 4 | 0 ; r [ D >> 2 ] = 0 ; if ( C >>> 0 < K >>> 0 ) { k = K + - 4 | 0 ; r [ k >> 2 ] = 0 ; oe = k } else oe = K ; k = ( r [ C >> 2 ] | 0 ) + 1 | 0 ; r [ C >> 2 ] = k ; if ( k >>> 0 > 999999999 ) { K = oe ; D = C } else { se = oe ; le = C ; break } } } else { se = ee ; le = w } D = ( T - se >> 2 ) * 9 | 0 ; K = r [ se >> 2 ] | 0 ; if ( K >>> 0 < 10 ) { ce = se ; de = le ; ue = D } else { C = D ; D = 10 ; while ( 1 ) { D = D * 10 | 0 ; k = C + 1 | 0 ; if ( K >>> 0 < D >>> 0 ) { ce = se ; de = le ; ue = k ; break } else C = k } } } else { ce = ee ; de = w ; ue = ne } } else { ce = ee ; de = w ; ue = ne } C = de + 4 | 0 ; pe = ce ; fe = ue ; me = te >>> 0 > C >>> 0 ? C : te } else { pe = ee ; fe = ne ; me = te } C = me ; while ( 1 ) { if ( C >>> 0 <= pe >>> 0 ) { he = 0 ; break } D = C + - 4 | 0 ; if ( ! ( r [ D >> 2 ] | 0 ) ) C = D ; else { he = 1 ; break } } w = 0 - fe | 0 ; do if ( A ) { D = ( ( N ^ 1 ) & 1 ) + M | 0 ; if ( ( D | 0 ) > ( fe | 0 ) & ( fe | 0 ) > - 5 ) { ge = D + - 1 - fe | 0 ; _e = l + - 1 | 0 } else { ge = D + - 1 | 0 ; _e = l + - 2 | 0 } D = s & 8 ; if ( ! D ) { if ( he ? ( K = r [ C + - 4 >> 2 ] | 0 , ( K | 0 ) != 0 ) : 0 ) if ( ! ( ( K >>> 0 ) % 10 | 0 ) ) { k = 10 ; X = 0 ; while ( 1 ) { k = k * 10 | 0 ; H = X + 1 | 0 ; if ( ( K >>> 0 ) % ( k >>> 0 ) | 0 | 0 ) { ve = H ; break } else X = H } } else ve = 0 ; else ve = 9 ; X = ( ( C - T >> 2 ) * 9 | 0 ) + - 9 | 0 ; if ( ( _e | 32 | 0 ) == 102 ) { k = X - ve | 0 ; K = ( k | 0 ) > 0 ? k : 0 ; ye = 0 ; be = ( ge | 0 ) < ( K | 0 ) ? ge : K ; we = _e ; break } else { K = X + fe - ve | 0 ; X = ( K | 0 ) > 0 ? K : 0 ; ye = 0 ; be = ( ge | 0 ) < ( X | 0 ) ? ge : X ; we = _e ; break } } else { ye = D ; be = ge ; we = _e } } else { ye = s & 8 ; be = M ; we = l } while ( 0 ) ; M = be | ye ; T = ( M | 0 ) != 0 & 1 ; N = ( we | 32 | 0 ) == 102 ; if ( N ) { ke = 0 ; Me = ( fe | 0 ) > 0 ? fe : 0 } else { A = ( fe | 0 ) < 0 ? w : fe ; X = La ( A , ( ( A | 0 ) < 0 ) << 31 >> 31 , g ) | 0 ; A = g ; if ( ( A - X | 0 ) < 2 ) { K = X ; while ( 1 ) { k = K + - 1 | 0 ; i [ k >> 0 ] = 48 ; if ( ( A - k | 0 ) < 2 ) K = k ; else { Se = k ; break } } } else Se = X ; i [ Se + - 1 >> 0 ] = ( fe >> 31 & 2 ) + 43 ; K = Se + - 2 | 0 ; i [ K >> 0 ] = we ; ke = K ; Me = A - K | 0 } K = _ + 1 + be + T + Me | 0 ; Ba ( e , 32 , n , K , s ) ; Pa ( e , v , _ ) ; Ba ( e , 48 , n , K , s ^ 65536 ) ; if ( N ) { w = pe >>> 0 > I >>> 0 ? I : pe ; k = p + 9 | 0 ; j = k ; Y = p + 8 | 0 ; H = w ; do { O = La ( r [ H >> 2 ] | 0 , 0 , k ) | 0 ; if ( ( H | 0 ) == ( w | 0 ) ) if ( ( O | 0 ) == ( k | 0 ) ) { i [ Y >> 0 ] = 48 ; Ae = Y } else Ae = O ; else if ( O >>> 0 > p >>> 0 ) { Or ( p | 0 , 48 , O - f | 0 ) | 0 ; S = O ; while ( 1 ) { J = S + - 1 | 0 ; if ( J >>> 0 > p >>> 0 ) S = J ; else { Ae = J ; break } } } else Ae = O ; Pa ( e , Ae , j - Ae | 0 ) ; H = H + 4 | 0 } while ( H >>> 0 <= I >>> 0 ) ; if ( M | 0 ) Pa ( e , 3659 , 1 ) ; if ( H >>> 0 < C >>> 0 & ( be | 0 ) > 0 ) { I = H ; j = be ; while ( 1 ) { Y = La ( r [ I >> 2 ] | 0 , 0 , k ) | 0 ; if ( Y >>> 0 > p >>> 0 ) { Or ( p | 0 , 48 , Y - f | 0 ) | 0 ; w = Y ; while ( 1 ) { N = w + - 1 | 0 ; if ( N >>> 0 > p >>> 0 ) w = N ; else { Ce = N ; break } } } else Ce = Y ; Pa ( e , Ce , ( j | 0 ) < 9 ? j : 9 ) ; I = I + 4 | 0 ; w = j + - 9 | 0 ; if ( ! ( I >>> 0 < C >>> 0 & ( j | 0 ) > 9 ) ) { Te = w ; break } else j = w } } else Te = be ; Ba ( e , 48 , Te + 9 | 0 , 9 , 0 ) } else { j = he ? C : pe + 4 | 0 ; if ( ( be | 0 ) > - 1 ) { I = p + 9 | 0 ; k = ( ye | 0 ) =
if ( ! n ) return n | 0 ; if ( ! ( r [ n + - 4 >> 2 ] & 3 ) ) return n | 0 ; Or ( n | 0 , 0 , i | 0 ) | 0 ; return n | 0 } function Er ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 ; if ( ! e ) { n = Ar ( t ) | 0 ; return n | 0 } if ( t >>> 0 > 4294967231 ) { r [ ( ya ( ) | 0 ) >> 2 ] = 12 ; n = 0 ; return n | 0 } i = $r ( e + - 8 | 0 , t >>> 0 < 11 ? 16 : t + 11 & - 8 ) | 0 ; if ( i | 0 ) { n = i + 8 | 0 ; return n | 0 } i = Ar ( t ) | 0 ; if ( ! i ) { n = 0 ; return n | 0 } a = r [ e + - 4 >> 2 ] | 0 ; o = ( a & - 8 ) - ( ( a & 3 | 0 ) == 0 ? 8 : 4 ) | 0 ; zr ( i | 0 , e | 0 , ( o >>> 0 < t >>> 0 ? o : t ) | 0 ) | 0 ; Cr ( e ) ; n = i ; return n | 0 } function $r ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 ; n = e + 4 | 0 ; i = r [ n >> 2 ] | 0 ; a = i & - 8 ; o = e + a | 0 ; s = r [ 1425 ] | 0 ; l = i & 3 ; if ( ! ( ( l | 0 ) != 1 & e >>> 0 >= s >>> 0 & e >>> 0 < o >>> 0 ) ) fe ( ) ; c = r [ o + 4 >> 2 ] | 0 ; if ( ! ( c & 1 ) ) fe ( ) ; if ( ! l ) { if ( t >>> 0 < 256 ) { d = 0 ; return d | 0 } if ( a >>> 0 >= ( t + 4 | 0 ) >>> 0 ? ( a - t | 0 ) >>> 0 <= r [ 1541 ] << 1 >>> 0 : 0 ) { d = e ; return d | 0 } d = 0 ; return d | 0 } if ( a >>> 0 >= t >>> 0 ) { l = a - t | 0 ; if ( l >>> 0 <= 15 ) { d = e ; return d | 0 } u = e + t | 0 ; r [ n >> 2 ] = i & 1 | t | 2 ; r [ u + 4 >> 2 ] = l | 3 ; p = u + l + 4 | 0 ; r [ p >> 2 ] = r [ p >> 2 ] | 1 ; Ir ( u , l ) ; d = e ; return d | 0 } if ( ( o | 0 ) == ( r [ 1427 ] | 0 ) ) { l = ( r [ 1424 ] | 0 ) + a | 0 ; u = l - t | 0 ; p = e + t | 0 ; if ( l >>> 0 <= t >>> 0 ) { d = 0 ; return d | 0 } r [ n >> 2 ] = i & 1 | t | 2 ; r [ p + 4 >> 2 ] = u | 1 ; r [ 1427 ] = p ; r [ 1424 ] = u ; d = e ; return d | 0 } if ( ( o | 0 ) == ( r [ 1426 ] | 0 ) ) { u = ( r [ 1423 ] | 0 ) + a | 0 ; if ( u >>> 0 < t >>> 0 ) { d = 0 ; return d | 0 } p = u - t | 0 ; l = i & 1 ; if ( p >>> 0 > 15 ) { f = e + t | 0 ; m = f + p | 0 ; r [ n >> 2 ] = l | t | 2 ; r [ f + 4 >> 2 ] = p | 1 ; r [ m >> 2 ] = p ; h = m + 4 | 0 ; r [ h >> 2 ] = r [ h >> 2 ] & - 2 ; g = f ; _ = p } else { r [ n >> 2 ] = l | u | 2 ; l = e + u + 4 | 0 ; r [ l >> 2 ] = r [ l >> 2 ] | 1 ; g = 0 ; _ = 0 } r [ 1423 ] = _ ; r [ 1426 ] = g ; d = e ; return d | 0 } if ( c & 2 | 0 ) { d = 0 ; return d | 0 } g = ( c & - 8 ) + a | 0 ; if ( g >>> 0 < t >>> 0 ) { d = 0 ; return d | 0 } a = g - t | 0 ; _ = c >>> 3 ; e : do if ( c >>> 0 >= 256 ) { l = r [ o + 24 >> 2 ] | 0 ; u = r [ o + 12 >> 2 ] | 0 ; do if ( ( u | 0 ) == ( o | 0 ) ) { p = o + 16 | 0 ; f = p + 4 | 0 ; h = r [ f >> 2 ] | 0 ; if ( ! h ) { m = r [ p >> 2 ] | 0 ; if ( ! m ) { v = 0 ; break } else { y = m ; b = p } } else { y = h ; b = f } while ( 1 ) { f = y + 20 | 0 ; h = r [ f >> 2 ] | 0 ; if ( h | 0 ) { y = h ; b = f ; continue } f = y + 16 | 0 ; h = r [ f >> 2 ] | 0 ; if ( ! h ) break ; else { y = h ; b = f } } if ( b >>> 0 < s >>> 0 ) fe ( ) ; else { r [ b >> 2 ] = 0 ; v = y ; break } } else { f = r [ o + 8 >> 2 ] | 0 ; if ( f >>> 0 < s >>> 0 ) fe ( ) ; h = f + 12 | 0 ; if ( ( r [ h >> 2 ] | 0 ) != ( o | 0 ) ) fe ( ) ; p = u + 8 | 0 ; if ( ( r [ p >> 2 ] | 0 ) == ( o | 0 ) ) { r [ h >> 2 ] = u ; r [ p >> 2 ] = f ; v = u ; break } else fe ( ) } while ( 0 ) ; if ( l | 0 ) { u = r [ o + 28 >> 2 ] | 0 ; f = 5988 + ( u << 2 ) | 0 ; do if ( ( o | 0 ) == ( r [ f >> 2 ] | 0 ) ) { r [ f >> 2 ] = v ; if ( ! v ) { r [ 1422 ] = r [ 1422 ] & ~ ( 1 << u ) ; break e } } else if ( l >>> 0 >= ( r [ 1425 ] | 0 ) >>> 0 ) { r [ l + 16 + ( ( ( r [ l + 16 >> 2 ] | 0 ) != ( o | 0 ) & 1 ) << 2 ) >> 2 ] = v ; if ( ! v ) break e ; else break } else fe ( ) ; while ( 0 ) ; u = r [ 1425 ] | 0 ; if ( v >>> 0 < u >>> 0 ) fe ( ) ; r [ v + 24 >> 2 ] = l ; f = o + 16 | 0 ; p = r [ f >> 2 ] | 0 ; do if ( p | 0 ) if ( p >>> 0 < u >>> 0 ) fe ( ) ; else { r [ v + 16 >> 2 ] = p ; r [ p + 24 >> 2 ] = v ; break } while ( 0 ) ; p = r [ f + 4 >> 2 ] | 0 ; if ( p | 0 ) if ( p >>> 0 < ( r [ 1425 ] | 0 ) >>> 0 ) fe ( ) ; else { r [ v + 20 >> 2 ] = p ; r [ p + 24 >> 2 ] = v ; break } } } else { p = r [ o + 8 >> 2 ] | 0 ; u = r [ o + 12 >> 2 ] | 0 ; l = 5724 + ( _ << 1 << 2 ) | 0 ; if ( ( p | 0 ) != ( l | 0 ) ) { if ( p >>> 0 < s >>> 0 ) fe ( ) ; if ( ( r [ p + 12 >> 2 ] | 0 ) != ( o | 0 ) ) fe ( ) } if ( ( u | 0 ) == ( p | 0 ) ) { r [ 1421 ] = r [ 1421 ] & ~ ( 1 << _ ) ; break } if ( ( u | 0 ) != ( l | 0 ) ) { if ( u >>> 0 < s >>> 0 ) fe ( ) ; l = u + 8 | 0 ; if ( ( r [ l >> 2 ] | 0 ) == ( o | 0 ) ) w = l ; else fe ( ) } else w = u + 8 | 0 ; r [ p + 12 >> 2 ] = u ; r [ w >> 2 ] = p } while ( 0 ) ; w = i & 1 ; if ( a >>> 0 < 16 ) { r [ n >> 2 ] = g | w | 2 ; i = e + g + 4 | 0 ; r [ i >> 2 ] = r [ i >> 2 ] | 1 ; d = e ; return d | 0 } else { i = e + t | 0 ; r [ n >> 2 ] = w | t | 2 ; r [ i + 4 >> 2 ] = a | 3 ; t = i + a + 4 | 0 ; r [ t >> 2 ] = r [ t >> 2 ] | 1 ; Ir ( i , a ) ; d = e ; return d | 0 } return 0 } function Ir ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 ; n = e + t | 0 ; i = r [ e + 4 >> 2 ] | 0 ; e : do if ( ! ( i & 1 ) ) { a = r [ e >> 2 ] | 0 ; if ( ! ( i & 3 ) ) return ; o = e + ( 0 - a ) | 0 ; s = a + t | 0 ; l = r [ 1425 ] | 0 ; if ( o >>> 0 < l >>> 0 ) fe ( ) ; if ( ( o | 0 ) == ( r [ 1426 ] | 0 ) ) { c = n + 4 | 0 ; d = r [ c >> 2 ] | 0 ; if ( ( d & 3 | 0 ) != 3 ) { u = o ; p = s ; break } r [ 1423 ] = s ; r [ c >> 2 ] = d & - 2 ; r [ o + 4 >> 2 ] = s | 1 ; r [ o + s >> 2 ] = s ; return } d = a >>> 3 ; if ( a >>> 0 < 256 ) { a = r [ o + 8 >> 2 ] | 0 ; c = r [ o + 12 >> 2 ] | 0 ; f = 5724 + ( d << 1 << 2 ) | 0 ; if ( ( a | 0 ) != ( f | 0 ) ) { if ( a >>> 0 < l >>> 0 ) fe ( ) ; if ( ( r [ a + 12 >> 2 ] | 0 ) != ( o | 0 ) ) fe ( ) } if ( ( c | 0 ) == ( a | 0 ) ) { r [ 1421 ] = r [ 1421 ] & ~ ( 1 << d ) ; u = o ; p = s ; break } if ( ( c | 0 ) != ( f | 0 ) ) { if ( c >>> 0 < l >>> 0 ) fe ( ) ; f = c + 8 | 0 ; if ( ( r [ f >> 2 ] | 0 ) == ( o | 0 ) ) m = f ; else fe ( ) } else m = c + 8 | 0 ; r [ a + 12 >> 2 ] = c ; r [ m >> 2 ] = a ; u = o ; p = s ; break } a = r [ o + 24 >> 2 ] | 0 ; c = r [ o + 12 >> 2 ] | 0 ; do if ( ( c | 0 ) == ( o | 0 ) ) { f = o + 16 | 0 ; d = f + 4 | 0 ; h = r [ d >> 2 ] | 0 ; if ( ! h ) { g = r [ f >> 2 ] | 0 ; if ( ! g ) { _ = 0 ; break } else { v = g ; y = f } } else { v = h ; y = d } while ( 1 ) { d = v + 20 | 0 ; h = r [ d >> 2 ] | 0 ; if ( h | 0 ) { v = h ; y = d ; continue } d = v + 16 | 0 ; h = r [ d >> 2 ] | 0 ; if ( ! h ) break ; else { v = h ; y = d } } if ( y >>> 0 < l >>> 0 ) fe ( ) ; else { r [ y >> 2 ] = 0 ; _ = v ; break } } else { d = r [ o + 8 >> 2 ] | 0 ; if ( d >>> 0 < l >>> 0 ) fe ( ) ; h = d + 12 | 0 ; if ( ( r [ h >> 2 ] | 0 ) != ( o | 0 ) ) fe ( ) ; f = c + 8 | 0 ; if ( ( r [ f >> 2 ] | 0 ) == ( o | 0 ) ) { r [ h >> 2 ] = c ; r [ f >> 2 ] = d ; _ = c ; break } else fe ( ) } while ( 0 ) ; if ( a ) { c = r [ o + 28 >> 2 ] | 0 ; l = 5988 + ( c << 2 ) | 0 ; do if ( ( o | 0 ) == ( r [ l >> 2 ] | 0 ) ) { r [ l >> 2 ] = _ ; if ( ! _ ) { r [ 1422 ] = r [ 1422 ] & ~ ( 1 << c ) ; u = o ; p = s ; break e } } else
} function reallocInputBuffer ( e ) { return inputBuffer && inputBufferSize >= e ? inputBuffer : ( inputBuffer && Module . _free ( inputBuffer ) , inputBufferSize = e , inputBuffer = Module . _malloc ( inputBufferSize ) ) } function time ( e ) { var t , n = getTimestamp ( ) ; return t = e ( ) , Module . cpuTime += getTimestamp ( ) - n , t } OGVDecoderAudioOpus = OGVDecoderAudioOpus || { } , OGVDecoderAudioOpus . currentScriptUrl || ( OGVDecoderAudioOpus . currentScriptUrl = scriptSrc ) ; var Module = OGVDecoderAudioOpus , options = Module ; Module = { print : function ( e ) { console . log ( e ) } } , "undefined" != typeof OGVLoader && ( Module . pthreadMainPrefixURL = OGVLoader . base + "/" ) , options . memoryLimit && ! options . wasmBinary && ( Module . TOTAL _MEMORY = options . memoryLimit ) ; for ( option in options ) options . hasOwnProperty ( option ) && ( Module [ option ] = options [ option ] ) ; var Math _imul _orig = Math . imul , OGVDecoderAudioOpus = Module , Module ; Module || ( Module = ( "undefined" != typeof OGVDecoderAudioOpus ? OGVDecoderAudioOpus : null ) || { } ) ; var moduleOverrides = { } ; for ( var key in Module ) Module . hasOwnProperty ( key ) && ( moduleOverrides [ key ] = Module [ key ] ) ; var ENVIRONMENT _IS _WEB = ! 1 , ENVIRONMENT _IS _WORKER = ! 1 , ENVIRONMENT _IS _NODE = ! 1 , ENVIRONMENT _IS _SHELL = ! 1 ; if ( Module . ENVIRONMENT ) if ( "WEB" === Module . ENVIRONMENT ) ENVIRONMENT _IS _WEB = ! 0 ; else if ( "WORKER" === Module . ENVIRONMENT ) ENVIRONMENT _IS _WORKER = ! 0 ; else if ( "NODE" === Module . ENVIRONMENT ) ENVIRONMENT _IS _NODE = ! 0 ; else if ( "SHELL" === Module . ENVIRONMENT ) ENVIRONMENT _IS _SHELL = ! 0 ; else { if ( "PTHREAD" !== Module . ENVIRONMENT ) throw new Error ( "The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL." ) ; ENVIRONMENT _IS _WORKER = ! 0 , ENVIRONMENT _IS _PTHREAD = ! 0 } else ENVIRONMENT _IS _WEB = "object" == typeof window , ENVIRONMENT _IS _WORKER = "function" == typeof importScripts , ENVIRONMENT _IS _NODE = "object" == typeof process && "function" == typeof require && ! ENVIRONMENT _IS _WEB && ! ENVIRONMENT _IS _WORKER , ENVIRONMENT _IS _SHELL = ! ENVIRONMENT _IS _WEB && ! ENVIRONMENT _IS _NODE && ! ENVIRONMENT _IS _WORKER ; if ( ENVIRONMENT _IS _NODE ) { Module . print || ( Module . print = console . log ) , Module . printErr || ( Module . printErr = console . warn ) ; var nodeFS , nodePath ; Module . read = function ( e , t ) { nodeFS || ( nodeFS = require ( "fs" ) ) , nodePath || ( nodePath = require ( "path" ) ) , e = nodePath . normalize ( e ) ; var n = nodeFS . readFileSync ( e ) ; return t ? n : n . toString ( ) } , Module . readBinary = function ( e ) { var t = Module . read ( e , ! 0 ) ; return t . buffer || ( t = new Uint8Array ( t ) ) , assert ( t . buffer ) , t } , Module . load = function ( e ) { globalEval ( read ( e ) ) } , Module . thisProgram || ( process . argv . length > 1 ? Module . thisProgram = process . argv [ 1 ] . replace ( /\\/g , "/" ) : Module . thisProgram = "unknown-program" ) , Module . arguments = process . argv . slice ( 2 ) , "undefined" != typeof module && ( module . exports = Module ) , process . on ( "uncaughtException" , function ( e ) { if ( ! ( e instanceof ExitStatus ) ) throw e } ) , Module . inspect = function ( ) { return "[Emscripten Module object]" } } else if ( ENVIRONMENT _IS _SHELL ) Module . print || ( Module . print = print ) , "undefined" != typeof printErr && ( Module . printErr = printErr ) , "undefined" != typeof read ? Module . read = read : Module . read = function ( ) { throw "no read() available" } , Module . readBinary = function ( e ) { if ( "function" == typeof readbuffer ) return new Uint8Array ( readbuffer ( e ) ) ; var t = read ( e , "binary" ) ; return assert ( "object" == typeof t ) , t } , "undefined" != typeof scriptArgs ? Module . arguments = scriptArgs : "undefined" != typeof arguments && ( Module . arguments = arguments ) , "function" == typeof quit && ( Module . quit = function ( e , t ) { quit ( e ) } ) ; else { if ( ! ENVIRONMENT _IS _WEB && ! ENVIRONMENT _IS _WORKER ) throw "Unknown runtime environment. Where are we?" ; if ( Module . read = function ( e ) { var t = new XMLHttpRequest ; return t . open ( "GET" , e , ! 1 ) , t . send ( null ) , t . responseText } , ENVIRONMENT _IS _WORKER && ( Module . readBinary = function ( e ) { var t = new XMLHttpRequest ; return t . open ( "GET" , e , ! 1 ) , t . responseType = "arraybuffer" , t . send ( null ) , t . response } ) , Module . readAsync = function ( e , t , n ) { var i = new XMLHttpRequest ; i . open ( "GET" , e , ! 0 ) , i . responseType = "arraybuffer" , i . onload = function ( ) { 200 == i . status || 0 == i . status && i . response ? t ( i . response ) : n ( ) } , i . onerror = n , i . send ( null ) } , "undefined" != typeof arguments && ( Module . arguments = arguments ) , "undefined" != typeof console ) Module . print || ( Module . print = function ( e ) { console . log ( e ) } ) , Module . printErr || ( Module . printErr = function ( e ) { console . warn ( e ) } ) ; else { var TRY _USE _DUMP = ! 1 ; Module . print || ( Modul
allocate ( [ 191 , 49 , 127 , 63 , 88 , 14 , 127 , 63 , 37 , 232 , 126 , 63 , 38 , 191 , 126 , 63 , 92 , 147 , 126 , 63 , 200 , 100 , 126 , 63 , 105 , 51 , 126 , 63 , 65 , 255 , 125 , 63 , 79 , 200 , 125 , 63 , 150 , 142 , 125 , 63 , 20 , 82 , 125 , 63 , 203 , 18 , 125 , 63 , 188 , 208 , 124 , 63 , 231 , 139 , 124 , 63 , 77 , 68 , 124 , 63 , 239 , 249 , 123 , 63 , 205 , 172 , 123 , 63 , 233 , 92 , 123 , 63 , 67 , 10 , 123 , 63 , 221 , 180 , 122 , 63 , 182 , 92 , 122 , 63 , 209 , 1 , 122 , 63 , 46 , 164 , 121 , 63 , 206 , 67 , 121 , 63 , 178 , 224 , 120 , 63 , 220 , 122 , 120 , 63 , 76 , 18 , 120 , 63 , 4 , 167 , 119 , 63 , 4 , 57 , 119 , 63 , 79 , 200 , 118 , 63 , 228 , 84 , 118 , 63 , 198 , 222 , 117 , 63 , 246 , 101 , 117 , 63 , 117 , 234 , 116 , 63 , 68 , 108 , 116 , 63 , 101 , 235 , 115 , 63 , 218 , 103 , 115 , 63 , 163 , 225 , 114 , 63 , 194 , 88 , 114 , 63 , 57 , 205 , 113 , 63 , 9 , 63 , 113 , 63 , 52 , 174 , 112 , 63 , 187 , 26 , 112 , 63 , 160 , 132 , 111 , 63 , 228 , 235 , 110 , 63 , 138 , 80 , 110 , 63 , 147 , 178 , 109 , 63 , 1 , 18 , 109 , 63 , 213 , 110 , 108 , 63 , 17 , 201 , 107 , 63 , 183 , 32 , 107 , 63 , 201 , 117 , 106 , 63 , 73 , 200 , 105 , 63 , 57 , 24 , 105 , 63 , 155 , 101 , 104 , 63 , 111 , 176 , 103 , 63 , 186 , 248 , 102 , 63 , 124 , 62 , 102 , 63 , 184 , 129 , 101 , 63 , 111 , 194 , 100 , 63 , 164 , 0 , 100 , 63 , 90 , 60 , 99 , 63 , 145 , 117 , 98 , 63 , 76 , 172 , 97 , 63 , 142 , 224 , 96 , 63 , 89 , 18 , 96 , 63 , 174 , 65 , 95 , 63 , 145 , 110 , 94 , 63 , 3 , 153 , 93 , 63 , 8 , 193 , 92 , 63 , 160 , 230 , 91 , 63 , 207 , 9 , 91 , 63 , 152 , 42 , 90 , 63 , 251 , 72 , 89 , 63 , 253 , 100 , 88 , 63 , 159 , 126 , 87 , 63 , 229 , 149 , 86 , 63 , 208 , 170 , 85 , 63 , 99 , 189 , 84 , 63 , 161 , 205 , 83 , 63 , 140 , 219 , 82 , 63 , 39 , 231 , 81 , 63 , 117 , 240 , 80 , 63 , 121 , 247 , 79 , 63 , 52 , 252 , 78 , 63 , 171 , 254 , 77 , 63 , 223 , 254 , 76 , 63 , 212 , 252 , 75 , 63 , 140 , 248 , 74 , 63 , 10 , 242 , 73 , 63 , 82 , 233 , 72 , 63 , 101 , 222 , 71 , 63 , 71 , 209 , 70 , 63 , 251 , 193 , 69 , 63 , 132 , 176 , 68 , 63 , 229 , 156 , 67 , 63 , 32 , 135 , 66 , 63 , 58 , 111 , 65 , 63 , 52 , 85 , 64 , 63 , 19 , 57 , 63 , 63 , 216 , 26 , 62 , 63 , 136 , 250 , 60 , 63 , 38 , 216 , 59 , 63 , 180 , 179 , 58 , 63 , 54 , 141 , 57 , 63 , 175 , 100 , 56 , 63 , 34 , 58 , 55 , 63 , 147 , 13 , 54 , 63 , 5 , 223 , 52 , 63 , 124 , 174 , 51 , 63 , 249 , 123 , 50 , 63 , 130 , 71 , 49 , 63 , 25 , 17 , 48 , 63 , 194 , 216 , 46 , 63 , 127 , 158 , 45 , 63 , 86 , 98 , 44 , 63 , 72 , 36 , 43 , 63 , 90 , 228 , 41 , 63 , 144 , 162 , 40 , 63 , 235 , 94 , 39 , 63 , 113 , 25 , 38 , 63 , 37 , 210 , 36 , 63 , 9 , 137 , 35 , 63 , 35 , 62 , 34 , 63 , 117 , 241 , 32 , 63 , 4 , 163 , 31 , 63 , 210 , 82 , 30 , 63 , 228 , 0 , 29 , 63 , 61 , 173 , 27 , 63 , 225 , 87 , 26 , 63 , 211 , 0 , 25 , 63 , 25 , 168 , 23 , 63 , 180 , 77 , 22 , 63 , 170 , 241 , 20 , 63 , 253 , 147 , 19 , 63 , 178 , 52 , 18 , 63 , 204 , 211 , 16 , 63 , 80 , 113 , 15 , 63 , 66 , 13 , 14 , 63 , 164 , 167 , 12 , 63 , 124 , 64 , 11 , 63 , 205 , 215 , 9 , 63 , 154 , 109 , 8 , 63 , 233 , 1 , 7 , 63 , 189 , 148 , 5 , 63 , 25 , 38 , 4 , 63 , 3 , 182 , 2 , 63 , 126 , 68 , 1 , 63 , 28 , 163 , 255 , 62 , 110 , 186 , 252 , 62 , 250 , 206 , 249 , 62 , 202 , 224 , 246 , 62 , 228 , 239 , 243 , 62 , 81 , 252 , 240 , 62 , 26 , 6 , 238 , 62 , 71 , 13 , 235 , 62 , 224 , 17 , 232 , 62 , 237 , 19 , 229 , 62 , 119 , 19 , 226 , 62 , 135 , 16 , 223 , 62 , 36 , 11 , 220 , 62 , 88 , 3 , 217 , 62 , 42 , 249 , 213 , 62 , 164 , 236 , 210 , 62 , 205 , 221 , 207 , 62 , 175 , 204 , 204 , 62 , 82 , 185 , 201 , 62 , 191 , 163 , 198 , 62 , 254 , 139 , 195 , 62 , 24 , 114 , 192 , 62 , 22 , 86 , 189 , 62 , 0 , 56 , 186 , 62 , 224 , 23 , 183 , 62 , 189 , 245 , 179 , 62 , 161 , 209 , 176 , 62 , 149 , 171 , 173 , 62 , 162 , 131 , 170 , 62 , 207 , 89 , 167 , 62 , 39 , 46 , 164 , 62 , 178 , 0 , 161 , 62 , 121 , 209 , 157 , 62 , 133 , 160 , 154 , 62 , 223 , 109 , 151 , 62 , 143 , 57 , 148 , 62 , 160 , 3 , 145 , 62 , 26 , 204 , 141 , 62 , 5 , 147 , 138 , 62 , 107 , 88 , 135 , 62 , 86 , 28 , 132 , 62 , 205 , 222 , 128 , 62 , 182 , 63 , 123 , 62 , 16 , 191 , 116 , 62 , 187 , 59 , 110 , 62 , 201 , 181 , 103 , 62 , 77 , 45 , 97 , 62 , 89 , 162 , 90 , 62 , 255 , 20 , 84 , 62 , 81 , 133 , 77 , 62 , 99 , 243 , 70 , 62 , 70 , 95 , 64 , 62 , 13 , 201 , 57 , 62 , 202 , 48 , 51 , 62 , 144 , 150 , 44 , 62 , 114 , 250 , 37 , 62 , 130 , 92 , 31 , 62 , 210 , 188 , 24 , 62 , 118 , 27 , 18 , 62 , 127 , 120 , 11 , 62 , 1 , 212 , 4 , 62 , 29 , 92 , 252 , 61 , 114 , 13 , 239 , 61 , 41 , 188 , 225 , 61 , 102 , 104 , 212 , 61 , 78 , 18 , 199 , 61 , 8 , 186 , 185 , 61 , 184 , 95 , 172 , 61 , 132 , 3 , 159 , 61 , 146 , 165 , 145 , 61 , 7 , 70 , 132 , 61 , 18 , 202 , 109 , 61 , 122 , 5 , 83 , 61 , 145 , 62 , 56 , 61 , 164 , 117 , 29 , 61 , 252 , 170 , 2 , 61 , 202 , 189 , 207 , 60 , 86 , 35 , 154 , 60 , 97 , 14 , 73 , 60 , 197 , 167 , 187 , 59 , 61 , 122 , 86 , 186 , 9 , 70 , 241 , 187 , 18 , 221 , 99 , 188 , 80 , 138 , 167 , 188 , 65 , 36 , 221 , 188 , 227 , 93 , 9 , 189 , 35 , 40 , 36 , 189 , 150 , 240 , 62 , 189 , 242 , 182 , 89 , 189 , 234 , 122 , 116 , 189 , 26 , 158 , 135 , 189 , 66 , 253 , 148 , 189 , 200 , 90 , 162 , 189 , 134 , 182 , 175 , 189 , 87 , 16 , 189 , 189 , 22 , 104 , 202 , 189 , 155 , 189 , 215 , 189 , 195 , 16 , 229 , 189 , 105 , 97 , 242 , 189 , 101 , 175 , 255 , 189 , 74 , 125 , 6 , 190 , 104 , 33 , 13 , 190 , 250 , 195 , 19 , 190 , 237 , 100 , 26 , 190 , 46 , 4 , 33 , 190 , 172 , 161 , 39 , 190 , 83 , 61 , 46 , 190 , 16 , 215 , 52 , 190 , 210 , 110 , 59 , 190 , 134 , 4 , 66 , 190 , 25 , 152 , 72 , 190 , 121 , 41 , 79 , 190 , 148 , 184 , 85 , 190 , 86 , 69 , 92 , 190 , 174 , 207 , 98 , 190 , 137 , 87 , 105 , 190 , 214 , 220 , 111 , 190 , 128 , 95 , 118 , 190 , 120 , 223 , 124 , 190 , 84 , 174 , 129 , 190 , 129 , 235 , 132 , 190 , 56 , 39 , 136 , 190 , 114 , 97 , 139 , 190 , 36 , 154 , 142 , 190 , 69 , 209 , 145 , 190 , 205 , 6 , 149 , 190 , 179 , 58 , 152 , 190 , 238 , 108 , 155 , 190 , 116 , 157 , 158 , 190 , 61 , 204 , 161 , 190 , 64 , 249 , 164 , 190 , 115 , 36 , 168 , 190 , 207 , 77 , 171 , 190 , 73 , 117 , 174 , 190 , 218 , 154 , 177 , 190 , 120 , 190 , 180 , 190 , 27 , 224 , 183 , 190 , 186 , 255 , 186 , 190 , 75 , 29 , 190 , 190 , 199 , 56 , 193 , 190 , 37 , 82 , 196 , 190 , 91 , 105 , 199 , 190 , 97 , 126 , 202 , 190 , 48 , 145 , 205 , 190 , 188 , 161 , 208 , 190 , 0 , 176 , 211 , 190 , 241 , 187 , 2
allocate ( [ 95 , 1 , 191 , 1 , 95 , 0 , 191 , 0 , 31 , 1 , 127 , 1 , 223 , 1 , 184 , 126 , 154 , 121 , 154 , 121 , 102 , 102 , 184 , 126 , 51 , 115 , 210 , 6 , 138 , 58 , 171 , 152 , 198 , 26 , 169 , 100 , 246 , 216 , 0 , 255 , 0 , 255 , 0 , 255 , 0 , 255 , 0 , 255 , 0 , 254 , 1 , 0 , 1 , 255 , 0 , 254 , 0 , 253 , 2 , 0 , 1 , 255 , 0 , 254 , 0 , 253 , 3 , 0 , 1 , 255 , 224 , 112 , 44 , 15 , 3 , 2 , 1 , 0 , 254 , 237 , 192 , 132 , 70 , 23 , 4 , 0 , 255 , 252 , 226 , 155 , 61 , 11 , 2 , 0 , 250 , 245 , 234 , 203 , 71 , 50 , 42 , 38 , 35 , 33 , 31 , 29 , 28 , 27 , 26 , 25 , 24 , 23 , 22 , 21 , 20 , 19 , 18 , 17 , 16 , 15 , 14 , 13 , 12 , 11 , 10 , 9 , 8 , 7 , 6 , 5 , 4 , 3 , 2 , 1 , 0 , 179 , 99 , 0 , 71 , 56 , 43 , 30 , 21 , 12 , 6 , 0 , 199 , 165 , 144 , 124 , 109 , 96 , 84 , 71 , 61 , 51 , 42 , 32 , 23 , 15 , 8 , 0 , 241 , 225 , 211 , 199 , 187 , 175 , 164 , 153 , 142 , 132 , 123 , 114 , 105 , 96 , 88 , 80 , 72 , 64 , 57 , 50 , 44 , 38 , 33 , 29 , 24 , 20 , 16 , 12 , 9 , 5 , 2 , 0 , 4 , 6 , 24 , 7 , 5 , 0 , 0 , 2 , 0 , 0 , 12 , 28 , 41 , 13 , 252 , 247 , 15 , 42 , 25 , 14 , 1 , 254 , 62 , 41 , 247 , 246 , 37 , 65 , 252 , 3 , 250 , 4 , 66 , 7 , 248 , 16 , 14 , 38 , 253 , 33 , 13 , 22 , 39 , 23 , 12 , 255 , 36 , 64 , 27 , 250 , 249 , 10 , 55 , 43 , 17 , 1 , 1 , 8 , 1 , 1 , 6 , 245 , 74 , 53 , 247 , 244 , 55 , 76 , 244 , 8 , 253 , 3 , 93 , 27 , 252 , 26 , 39 , 59 , 3 , 248 , 2 , 0 , 77 , 11 , 9 , 248 , 22 , 44 , 250 , 7 , 40 , 9 , 26 , 3 , 9 , 249 , 20 , 101 , 249 , 4 , 3 , 248 , 42 , 26 , 0 , 241 , 33 , 68 , 2 , 23 , 254 , 55 , 46 , 254 , 15 , 3 , 255 , 21 , 16 , 41 , 250 , 27 , 61 , 39 , 5 , 245 , 42 , 88 , 4 , 1 , 254 , 60 , 65 , 6 , 252 , 255 , 251 , 73 , 56 , 1 , 247 , 19 , 94 , 29 , 247 , 0 , 12 , 99 , 6 , 4 , 8 , 237 , 102 , 46 , 243 , 3 , 2 , 13 , 3 , 2 , 9 , 235 , 84 , 72 , 238 , 245 , 46 , 104 , 234 , 8 , 18 , 38 , 48 , 23 , 0 , 240 , 70 , 83 , 235 , 11 , 5 , 245 , 117 , 22 , 248 , 250 , 23 , 117 , 244 , 3 , 3 , 248 , 95 , 28 , 4 , 246 , 15 , 77 , 60 , 241 , 255 , 4 , 124 , 2 , 252 , 3 , 38 , 84 , 24 , 231 , 2 , 13 , 42 , 13 , 31 , 21 , 252 , 56 , 46 , 255 , 255 , 35 , 79 , 243 , 19 , 249 , 65 , 88 , 247 , 242 , 20 , 4 , 81 , 49 , 227 , 20 , 0 , 75 , 3 , 239 , 5 , 247 , 44 , 92 , 248 , 1 , 253 , 22 , 69 , 31 , 250 , 95 , 41 , 244 , 5 , 39 , 67 , 16 , 252 , 1 , 0 , 250 , 120 , 55 , 220 , 243 , 44 , 122 , 4 , 232 , 81 , 5 , 11 , 3 , 7 , 2 , 0 , 9 , 10 , 88 , 12 , 35 , 60 , 83 , 108 , 132 , 157 , 180 , 206 , 228 , 15 , 32 , 55 , 77 , 101 , 125 , 151 , 175 , 201 , 225 , 19 , 42 , 66 , 89 , 114 , 137 , 162 , 184 , 209 , 230 , 12 , 25 , 50 , 72 , 97 , 120 , 147 , 172 , 200 , 223 , 26 , 44 , 69 , 90 , 114 , 135 , 159 , 180 , 205 , 225 , 13 , 22 , 53 , 80 , 106 , 130 , 156 , 180 , 205 , 228 , 15 , 25 , 44 , 64 , 90 , 115 , 142 , 168 , 196 , 222 , 19 , 24 , 62 , 82 , 100 , 120 , 145 , 168 , 190 , 214 , 22 , 31 , 50 , 79 , 103 , 120 , 151 , 170 , 203 , 227 , 21 , 29 , 45 , 65 , 106 , 124 , 150 , 171 , 196 , 224 , 30 , 49 , 75 , 97 , 121 , 142 , 165 , 186 , 209 , 229 , 19 , 25 , 52 , 70 , 93 , 116 , 143 , 166 , 192 , 219 , 26 , 34 , 62 , 75 , 97 , 118 , 145 , 167 , 194 , 217 , 25 , 33 , 56 , 70 , 91 , 113 , 143 , 165 , 196 , 223 , 21 , 34 , 51 , 72 , 97 , 117 , 145 , 171 , 196 , 222 , 20 , 29 , 50 , 67 , 90 , 117 , 144 , 168 , 197 , 221 , 22 , 31 , 48 , 66 , 95 , 117 , 146 , 168 , 196 , 222 , 24 , 33 , 51 , 77 , 116 , 134 , 158 , 180 , 200 , 224 , 21 , 28 , 70 , 87 , 106 , 124 , 149 , 170 , 194 , 217 , 26 , 33 , 53 , 64 , 83 , 117 , 152 , 173 , 204 , 225 , 27 , 34 , 65 , 95 , 108 , 129 , 155 , 174 , 210 , 225 , 20 , 26 , 72 , 99 , 113 , 131 , 154 , 176 , 200 , 219 , 34 , 43 , 61 , 78 , 93 , 114 , 155 , 177 , 205 , 229 , 23 , 29 , 54 , 97 , 124 , 138 , 163 , 179 , 209 , 229 , 30 , 38 , 56 , 89 , 118 , 129 , 158 , 178 , 200 , 231 , 21 , 29 , 49 , 63 , 85 , 111 , 142 , 163 , 193 , 222 , 27 , 48 , 77 , 103 , 133 , 158 , 179 , 196 , 215 , 232 , 29 , 47 , 74 , 99 , 124 , 151 , 176 , 198 , 220 , 237 , 33 , 42 , 61 , 76 , 93 , 121 , 155 , 174 , 207 , 225 , 29 , 53 , 87 , 112 , 136 , 154 , 170 , 188 , 208 , 227 , 24 , 30 , 52 , 84 , 131 , 150 , 166 , 186 , 203 , 229 , 37 , 48 , 64 , 84 , 104 , 118 , 156 , 177 , 201 , 230 , 212 , 178 , 148 , 129 , 108 , 96 , 85 , 82 , 79 , 77 , 61 , 59 , 57 , 56 , 51 , 49 , 48 , 45 , 42 , 41 , 40 , 38 , 36 , 34 , 31 , 30 , 21 , 12 , 10 , 3 , 1 , 0 , 255 , 245 , 244 , 236 , 233 , 225 , 217 , 203 , 190 , 176 , 175 , 161 , 149 , 136 , 125 , 114 , 102 , 91 , 81 , 71 , 60 , 52 , 43 , 35 , 28 , 20 , 19 , 18 , 12 , 11 , 5 , 0 , 179 , 138 , 140 , 148 , 151 , 149 , 153 , 151 , 163 , 116 , 67 , 82 , 59 , 92 , 72 , 100 , 89 , 92 , 16 , 0 , 0 , 0 , 0 , 99 , 66 , 36 , 36 , 34 , 36 , 34 , 34 , 34 , 34 , 83 , 69 , 36 , 52 , 34 , 116 , 102 , 70 , 68 , 68 , 176 , 102 , 68 , 68 , 34 , 65 , 85 , 68 , 84 , 36 , 116 , 141 , 152 , 139 , 170 , 132 , 187 , 184 , 216 , 137 , 132 , 249 , 168 , 185 , 139 , 104 , 102 , 100 , 68 , 68 , 178 , 218 , 185 , 185 , 170 , 244 , 216 , 187 , 187 , 170 , 244 , 187 , 187 , 219 , 138 , 103 , 155 , 184 , 185 , 137 , 116 , 183 , 155 , 152 , 136 , 132 , 217 , 184 , 184 , 170 , 164 , 217 , 171 , 155 , 139 , 244 , 169 , 184 , 185 , 170 , 164 , 216 , 223 , 218 , 138 , 214 , 143 , 188 , 218 , 168 , 244 , 141 , 136 , 155 , 170 , 168 , 138 , 220 , 219 , 139 , 164 , 219 , 202 , 216 , 137 , 168 , 186 , 246 , 185 , 139 , 116 , 185 , 219 , 185 , 138 , 100 , 100 , 134 , 100 , 102 , 34 , 68 , 68 , 100 , 68 , 168 , 203 , 221 , 218 , 168 , 167 , 154 , 136 , 104 , 70 , 164 , 246 , 171 , 137 , 139 , 137 , 155 , 218 , 219 , 139 , 255 , 254 , 253 , 238 , 14 , 3 , 2 , 1 , 0 , 255 , 254 , 252 , 218 , 35 , 3 , 2 , 1 , 0 , 255 , 254 , 250 , 208 , 59 , 4 , 2 , 1 , 0 , 255 , 254 , 246 , 194 , 71 , 10 , 2 , 1 , 0 , 255 , 252 , 236 , 183 , 82 , 8 , 2 , 1 , 0 , 255 , 252 , 235 , 180 , 90 , 17 , 2 , 1 , 0 , 255 , 248 , 224 , 171 , 97 , 30 , 4 , 1 , 0 , 255 , 254 , 236 , 173 , 95 , 37 , 7 , 1 , 0 , 255 , 255 , 255 , 131 , 6 , 145 , 255 , 255 , 255 , 255 , 255 , 236 , 93 , 15 , 96 , 255 , 255 , 255 , 255 , 255 , 194 , 83 , 25 , 71 , 221 , 255 , 255 , 255 , 255 , 162 , 73 , 34 , 66 , 162 , 255 , 255 , 255 , 210 , 126 , 73 , 43 , 57 , 173 , 255 , 255 , 255 , 201 , 125 , 71 , 48 , 58 , 130 , 255 , 255 , 255 , 166 , 110 , 73 , 57 , 62 , 104 , 210 , 255 , 255 , 251 , 123 , 65 , 55 , 68 , 100 , 171 , 255 , 7 , 23 , 38 , 54 , 69 , 85 , 100 , 116 , 131 , 147 , 162 , 178 , 193 , 208 , 223 , 239 , 13 , 25 , 41 , 55 , 69 , 83 , 98 , 112 , 127 , 142 , 157 , 171 , 187 , 203 , 220 , 236 , 15 , 21 , 34 , 51 , 61 , 78 , 92 , 106 , 1
V = r [ g >> 2 ] | 0 ; m = h ; return V | 0 } if ( ( r [ B >> 2 ] | 0 ) > 0 ) r [ D >> 2 ] = r [ B >> 2 ] ; do if ( ( r [ C >> 2 ] | 0 ) != 0 & ( r [ k >> 2 ] | 0 ) != 0 ) { if ( ( r [ D >> 2 ] | 0 ) == 0 ? ! ( ( r [ $ >> 2 ] & 1 | 0 ) == 0 & ( r [ B >> 2 ] | 0 ) < 0 | ( r [ x >> 2 ] | 0 ) > 1 ) : 0 ) break ; La ( r [ C >> 2 ] | 0 , r [ k >> 2 ] | 0 , ( r [ y >> 2 ] << 2 ) + 0 | 0 ) | 0 ; r [ k >> 2 ] = r [ C >> 2 ] } while ( 0 ) ; r [ F >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ F >> 2 ] | 0 ) >= ( r [ D >> 2 ] | 0 ) ) break ; if ( r [ U >> 2 ] | 0 ) Se ( r [ v >> 2 ] | 0 , r [ y >> 2 ] >> r [ F >> 2 ] , 1 << r [ F >> 2 ] ) ; if ( r [ k >> 2 ] | 0 ) Se ( r [ k >> 2 ] | 0 , r [ y >> 2 ] >> r [ F >> 2 ] , 1 << r [ F >> 2 ] ) ; r [ T >> 2 ] = o [ 23948 + ( r [ T >> 2 ] & 15 ) >> 0 ] | 0 | ( o [ 23948 + ( r [ T >> 2 ] >> 4 ) >> 0 ] | 0 ) << 2 ; r [ F >> 2 ] = ( r [ F >> 2 ] | 0 ) + 1 } r [ w >> 2 ] = r [ w >> 2 ] >> r [ D >> 2 ] ; r [ $ >> 2 ] = r [ $ >> 2 ] << r [ D >> 2 ] ; while ( 1 ) { if ( ! ( ( r [ $ >> 2 ] & 1 | 0 ) == 0 ? ( r [ B >> 2 ] | 0 ) < 0 : 0 ) ) break ; if ( r [ U >> 2 ] | 0 ) Se ( r [ v >> 2 ] | 0 , r [ $ >> 2 ] | 0 , r [ w >> 2 ] | 0 ) ; if ( r [ k >> 2 ] | 0 ) Se ( r [ k >> 2 ] | 0 , r [ $ >> 2 ] | 0 , r [ w >> 2 ] | 0 ) ; r [ T >> 2 ] = r [ T >> 2 ] | r [ T >> 2 ] << r [ w >> 2 ] ; r [ w >> 2 ] = r [ w >> 2 ] << 1 ; r [ $ >> 2 ] = r [ $ >> 2 ] >> 1 ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 ; r [ B >> 2 ] = ( r [ B >> 2 ] | 0 ) + 1 } r [ x >> 2 ] = r [ w >> 2 ] ; r [ I >> 2 ] = r [ $ >> 2 ] ; if ( ( r [ x >> 2 ] | 0 ) > 1 ) { if ( r [ U >> 2 ] | 0 ) rt ( r [ v >> 2 ] | 0 , r [ $ >> 2 ] >> r [ D >> 2 ] , r [ x >> 2 ] << r [ D >> 2 ] , r [ O >> 2 ] | 0 ) ; if ( r [ k >> 2 ] | 0 ) rt ( r [ k >> 2 ] | 0 , r [ $ >> 2 ] >> r [ D >> 2 ] , r [ x >> 2 ] << r [ D >> 2 ] , r [ O >> 2 ] | 0 ) } r [ N >> 2 ] = ot ( r [ _ >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ y >> 2 ] | 0 , r [ b >> 2 ] | 0 , r [ w >> 2 ] | 0 , r [ k >> 2 ] | 0 , r [ M >> 2 ] | 0 , + c [ A >> 2 ] , r [ T >> 2 ] | 0 ) | 0 ; if ( r [ L >> 2 ] | 0 ) { if ( ( r [ x >> 2 ] | 0 ) > 1 ) st ( r [ v >> 2 ] | 0 , r [ $ >> 2 ] >> r [ D >> 2 ] , r [ x >> 2 ] << r [ D >> 2 ] , r [ O >> 2 ] | 0 ) ; r [ $ >> 2 ] = r [ I >> 2 ] ; r [ w >> 2 ] = r [ x >> 2 ] ; r [ F >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ F >> 2 ] | 0 ) >= ( r [ P >> 2 ] | 0 ) ) break ; r [ w >> 2 ] = r [ w >> 2 ] >> 1 ; r [ $ >> 2 ] = r [ $ >> 2 ] << 1 ; r [ N >> 2 ] = r [ N >> 2 ] | ( r [ N >> 2 ] | 0 ) >>> ( r [ w >> 2 ] | 0 ) ; Se ( r [ v >> 2 ] | 0 , r [ $ >> 2 ] | 0 , r [ w >> 2 ] | 0 ) ; r [ F >> 2 ] = ( r [ F >> 2 ] | 0 ) + 1 } r [ F >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ F >> 2 ] | 0 ) >= ( r [ D >> 2 ] | 0 ) ) break ; r [ N >> 2 ] = o [ 23964 + ( r [ N >> 2 ] | 0 ) >> 0 ] ; Se ( r [ v >> 2 ] | 0 , r [ E >> 2 ] >> r [ F >> 2 ] , 1 << r [ F >> 2 ] ) ; r [ F >> 2 ] = ( r [ F >> 2 ] | 0 ) + 1 } r [ w >> 2 ] = r [ w >> 2 ] << r [ D >> 2 ] ; e : do if ( r [ S >> 2 ] | 0 ) { c [ j >> 2 ] = + R ( + + ( r [ E >> 2 ] | 0 ) ) ; r [ H >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ H >> 2 ] | 0 ) >= ( r [ E >> 2 ] | 0 ) ) break e ; c [ ( r [ S >> 2 ] | 0 ) + ( r [ H >> 2 ] << 2 ) >> 2 ] = + c [ j >> 2 ] * + c [ ( r [ v >> 2 ] | 0 ) + ( r [ H >> 2 ] << 2 ) >> 2 ] ; r [ H >> 2 ] = ( r [ H >> 2 ] | 0 ) + 1 } } while ( 0 ) ; r [ N >> 2 ] = r [ N >> 2 ] & ( 1 << r [ w >> 2 ] ) - 1 } r [ g >> 2 ] = r [ N >> 2 ] ; V = r [ g >> 2 ] | 0 ; m = h ; return V | 0 } function $e ( e , t , n , i , a , o , s , l , d , u , p ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; s = s | 0 ; l = l | 0 ; d = d | 0 ; u = u | 0 ; p = p | 0 ; var f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 , N = 0 , L = 0 , F = 0 , U = 0 , B = 0 , H = 0 , j = 0 , V = 0 , q = 0 , z = 0 , W = 0 , G = 0 , K = 0 , Y = 0 , X = 0 , J = 0 , Z = 0 ; f = m ; m = m + 160 | 0 ; h = f + 156 | 0 ; g = f + 152 | 0 ; _ = f + 148 | 0 ; v = f + 144 | 0 ; y = f + 140 | 0 ; b = f + 136 | 0 ; w = f + 132 | 0 ; k = f + 128 | 0 ; M = f + 124 | 0 ; S = f + 120 | 0 ; A = f + 116 | 0 ; C = f + 112 | 0 ; T = f + 108 | 0 ; E = f + 104 | 0 ; $ = f + 100 | 0 ; I = f + 96 | 0 ; x = f + 92 | 0 ; P = f + 88 | 0 ; D = f + 84 | 0 ; R = f + 80 | 0 ; O = f + 76 | 0 ; N = f + 72 | 0 ; L = f + 68 | 0 ; F = f + 64 | 0 ; U = f + 40 | 0 ; B = f + 36 | 0 ; H = f + 32 | 0 ; j = f + 28 | 0 ; V = f + 24 | 0 ; q = f + 20 | 0 ; z = f + 16 | 0 ; W = f + 12 | 0 ; G = f + 8 | 0 ; K = f + 4 | 0 ; Y = f ; r [ g >> 2 ] = e ; r [ _ >> 2 ] = t ; r [ v >> 2 ] = n ; r [ y >> 2 ] = i ; r [ b >> 2 ] = a ; r [ w >> 2 ] = o ; r [ k >> 2 ] = s ; r [ M >> 2 ] = l ; r [ S >> 2 ] = d ; r [ A >> 2 ] = u ; r [ C >> 2 ] = p ; r [ T >> 2 ] = 0 ; r [ E >> 2 ] = 0 ; r [ $ >> 2 ] = 0 ; c [ I >> 2 ] = 0 ; c [ x >> 2 ] = 0 ; r [ P >> 2 ] = 0 ; r [ D >> 2 ] = ( ( r [ r [ g >> 2 ] >> 2 ] | 0 ) != 0 ^ 1 ) & 1 ; r [ H >> 2 ] = r [ r [ g >> 2 ] >> 2 ] ; r [ j >> 2 ] = r [ ( r [ g >> 2 ] | 0 ) + 24 >> 2 ] ; if ( ( r [ y >> 2 ] | 0 ) == 1 ) { r [ h >> 2 ] = Ie ( r [ g >> 2 ] | 0 , r [ _ >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ b >> 2 ] | 0 , r [ S >> 2 ] | 0 ) | 0 ; X = r [ h >> 2 ] | 0 ; m = f ; return X | 0 } r [ B >> 2 ] = r [ C >> 2 ] ; xe ( r [ g >> 2 ] | 0 , U , r [ _ >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ y >> 2 ] | 0 , b , r [ w >> 2 ] | 0 , r [ w >> 2 ] | 0 , r [ M >> 2 ] | 0 , 1 , C ) ; r [ $ >> 2 ] = r [ U >> 2 ] ; r [ T >> 2 ] = r [ U + 4 >> 2 ] ; r [ E >> 2 ] = r [ U + 8 >> 2 ] ; r [ N >> 2 ] = r [ U + 12 >> 2 ] ; r [ L >> 2 ] = r [ U + 16 >> 2 ] ; r [ F >> 2 ] = r [ U + 20 >> 2 ] ; c [ I >> 2 ] = + ( r [ T >> 2 ] | 0 ) * 30517578125e-15 ; c [ x >> 2 ] = + ( r [ E >> 2 ] | 0 ) * 30517578125e-15 ; do if ( ( r [ y >> 2 ] | 0 ) == 2 ) { r [ q >> 2 ] = 0 ; r [ R >> 2 ] = r [ b >> 2 ] ; r [ O >> 2 ] = 0 ; r [ O >> 2 ] = ( r [ L >> 2 ] | 0 ) != 0 & ( r [ L >> 2 ] | 0 ) != 16384 ? 8 : 0 ; r [ R >> 2 ] = ( r [ R >> 2 ] | 0 ) - ( r [ O >> 2 ] | 0 ) ; r [ V >> 2 ] = ( r [ L >> 2 ] | 0 ) > 8192 & 1 ; E = ( r [ g >> 2 ] | 0 ) + 28 | 0 ; r [ E >> 2 ] = ( r [ E >> 2 ] | 0 ) - ( ( r [ F >> 2 ] | 0 ) + ( r [ O >> 2 ] | 0 ) ) ; r [ z >> 2 ] = r [ V >> 2 ] | 0 ? r [ v >> 2 ] | 0 : r [ _ >> 2 ] | 0 ; r [ W >> 2 ] = r [ V >> 2 ] | 0 ? r [ _ >> 2 ] | 0 : r [ v >> 2 ] | 0 ; do if ( r [ O >> 2 ] | 0 ) if ( r [ H >> 2 ] | 0 ) { r [ q >> 2 ] = + c [ r [ z >> 2 ] >> 2 ] * + c [ ( r [ W >> 2 ] | 0 ) + 4 >> 2 ] - + c [ ( r [ z >> 2 ] | 0 ) + 4 >> 2 ] * + c [ r [ W >> 2 ] >> 2 ] < 0 & 1 ; Pe ( r [ j >> 2 ] | 0 , r [ q >> 2 ] | 0 , 1 ) ; break } else { r [ q >> 2 ] = De ( r [ j >> 2 ] | 0 , 1 ) | 0 ; break } while ( 0 ) ; r [ q >> 2 ] = 1 - ( r [ q >> 2 ] << 1 ) ; r [ P >> 2 ] = Ee ( r [ g >> 2 ] | 0 , r [ z >> 2 ] | 0 , r [ y >> 2 ] | 0 , r [ R >> 2 ] | 0 , r [ w >> 2 ] | 0 , r [ k >> 2 ] | 0 , r [ M >> 2 ] | 0 , r [ S >> 2 ] | 0 , 1 , r [ A >> 2 ] | 0 , r [ B >> 2 ] | 0 ) | 0 ; c [ r [ W >> 2 ] >> 2 ] = + ( 0 - ( r [ q >> 2 ] | 0 ) | 0 ) * + c [ ( r [ z >> 2 ] | 0 ) + 4 >> 2 ] ; c [ ( r [ W >> 2 ] | 0 ) + 4 >> 2 ] = + ( r [ q >> 2 ] | 0 ) * + c [ r [ z >> 2 ] >> 2 ] ; if ( r [ D >> 2 ] | 0 ) { c [ r [ _ >> 2 ] >> 2 ] = + c [ I >> 2 ] * + c [ r [ _ >> 2 ] >> 2 ] ; c [ ( r [ _ >> 2 ] | 0 ) + 4 >> 2 ] = + c [ I >> 2 ] * + c [ ( r [ _ >> 2 ] | 0 ) + 4 >> 2 ] ; c [ r [ v >> 2 ] >> 2 ] = + c [ x >> 2 ] * + c [ r [ v >> 2 ] >> 2 ] ; c [ ( r [ v >> 2 ] | 0 ) + 4 >> 2 ] = + c [ x >> 2 ] * + c [ ( r [ v >> 2 ] | 0 ) + 4 >> 2 ] ; c [ G >> 2 ] = + c [ r [ _ >> 2 ] >> 2 ] ; c [ r [ _ >> 2 ] >> 2 ] = + c [ G >> 2 ] - + c [ r [ v >> 2 ] >> 2 ] ;
c [ n + ( d + ( r [ u >> 2 ] | 0 ) << 2 ) >> 2 ] = + c [ ( r [ o >> 2 ] | 0 ) + ( g + ( r [ p >> 2 ] | 0 ) << 2 ) >> 2 ] ; r [ p >> 2 ] = ( r [ p >> 2 ] | 0 ) + 1 } r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + 1 } _ = r [ o >> 2 ] | 0 ; v = r [ f >> 2 ] | 0 ; y = v << 2 ; b = r [ o >> 2 ] | 0 ; w = b ; k = n ; M = w - k | 0 ; S = ( M | 0 ) / 4 | 0 ; A = 0 ; C = y + A | 0 ; La ( _ | 0 , n | 0 , C | 0 ) | 0 ; T = r [ h >> 2 ] | 0 ; ce ( T | 0 ) ; m = a ; return } } function lt ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 ; s = m ; m = m + 48 | 0 ; l = s + 36 | 0 ; c = s + 32 | 0 ; d = s + 28 | 0 ; u = s + 24 | 0 ; p = s + 20 | 0 ; f = s + 16 | 0 ; h = s + 12 | 0 ; g = s + 8 | 0 ; _ = s + 4 | 0 ; v = s ; r [ c >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = i ; r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + 1 ; i = W ( r [ u >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ; r [ _ >> 2 ] = ( r [ ( r [ c >> 2 ] | 0 ) + 92 + 8 >> 2 ] | 0 ) + ( a [ ( r [ ( r [ c >> 2 ] | 0 ) + 92 + 4 >> 2 ] | 0 ) + ( i + ( r [ d >> 2 ] | 0 ) << 1 ) >> 1 ] | 0 ) ; r [ h >> 2 ] = 0 ; r [ g >> 2 ] = o [ r [ _ >> 2 ] >> 0 ] ; r [ p >> 2 ] = ( r [ p >> 2 ] | 0 ) + - 1 ; r [ f >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ f >> 2 ] | 0 ) >= 6 ) break ; r [ v >> 2 ] = ( r [ h >> 2 ] | 0 ) + ( r [ g >> 2 ] | 0 ) + 1 >> 1 ; d = r [ v >> 2 ] | 0 ; if ( ( o [ ( r [ _ >> 2 ] | 0 ) + ( r [ v >> 2 ] | 0 ) >> 0 ] | 0 ) >= ( r [ p >> 2 ] | 0 ) ) r [ g >> 2 ] = d ; else r [ h >> 2 ] = d ; r [ f >> 2 ] = ( r [ f >> 2 ] | 0 ) + 1 } if ( ! ( r [ h >> 2 ] | 0 ) ) y = - 1 ; else y = o [ ( r [ _ >> 2 ] | 0 ) + ( r [ h >> 2 ] | 0 ) >> 0 ] | 0 ; if ( ( ( r [ p >> 2 ] | 0 ) - y | 0 ) <= ( ( o [ ( r [ _ >> 2 ] | 0 ) + ( r [ g >> 2 ] | 0 ) >> 0 ] | 0 ) - ( r [ p >> 2 ] | 0 ) | 0 ) ) { r [ l >> 2 ] = r [ h >> 2 ] ; b = r [ l >> 2 ] | 0 ; m = s ; return b | 0 } else { r [ l >> 2 ] = r [ g >> 2 ] ; b = r [ l >> 2 ] | 0 ; m = s ; return b | 0 } return 0 } function ct ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 ; s = m ; m = m + 32 | 0 ; l = s + 16 | 0 ; c = s + 12 | 0 ; d = s + 8 | 0 ; u = s + 4 | 0 ; p = s ; r [ l >> 2 ] = e ; r [ c >> 2 ] = t ; r [ d >> 2 ] = n ; r [ u >> 2 ] = i ; r [ d >> 2 ] = ( r [ d >> 2 ] | 0 ) + 1 ; i = W ( r [ d >> 2 ] | 0 , r [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ; r [ p >> 2 ] = ( r [ ( r [ l >> 2 ] | 0 ) + 92 + 8 >> 2 ] | 0 ) + ( a [ ( r [ ( r [ l >> 2 ] | 0 ) + 92 + 4 >> 2 ] | 0 ) + ( i + ( r [ c >> 2 ] | 0 ) << 1 ) >> 1 ] | 0 ) ; if ( ! ( r [ u >> 2 ] | 0 ) ) { f = 0 ; m = s ; return f | 0 } f = ( o [ ( r [ p >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) >> 0 ] | 0 ) + 1 | 0 ; m = s ; return f | 0 } function dt ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; e = r [ n >> 2 ] | 0 ; if ( ( r [ n >> 2 ] | 0 ) < 8 ) { i = e ; m = t ; return i | 0 } i = 8 + ( e & 7 ) << ( r [ n >> 2 ] >> 3 ) - 1 ; m = t ; return i | 0 } function ut ( e , t , n , i , a , o ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; var s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 ; s = m ; m = m + 96 | 0 ; l = s + 84 | 0 ; d = s + 80 | 0 ; u = s + 76 | 0 ; p = s + 72 | 0 ; f = s + 68 | 0 ; h = s + 64 | 0 ; g = s + 60 | 0 ; _ = s + 56 | 0 ; v = s + 52 | 0 ; y = s + 48 | 0 ; b = s + 44 | 0 ; w = s + 40 | 0 ; k = s + 36 | 0 ; M = s + 32 | 0 ; S = s + 28 | 0 ; A = s + 24 | 0 ; C = s + 20 | 0 ; T = s + 16 | 0 ; E = s + 12 | 0 ; $ = s + 8 | 0 ; I = s + 4 | 0 ; x = s ; r [ l >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = i ; r [ f >> 2 ] = a ; r [ h >> 2 ] = o ; o = r [ d >> 2 ] | 0 ; r [ S >> 2 ] = oe ( ) | 0 ; a = m ; m = m + ( ( 1 * ( o << 2 ) | 0 ) + 15 & - 16 ) | 0 ; o = m ; m = m + ( ( 1 * ( r [ d >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; i = m ; m = m + ( ( 1 * ( r [ d >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; ht ( r [ l >> 2 ] | 0 , r [ d >> 2 ] | 0 , 1 , r [ f >> 2 ] | 0 , r [ u >> 2 ] | 0 , r [ p >> 2 ] | 0 ) ; c [ b >> 2 ] = 0 ; r [ _ >> 2 ] = 0 ; do { p = i + ( r [ _ >> 2 ] << 2 ) | 0 ; if ( + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] > 0 ) c [ p >> 2 ] = 1 ; else { c [ p >> 2 ] = - 1 ; c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] = - + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] } r [ o + ( r [ _ >> 2 ] << 2 ) >> 2 ] = 0 ; c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] = 0 ; p = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = p } while ( ( p | 0 ) < ( r [ d >> 2 ] | 0 ) ) ; c [ k >> 2 ] = 0 ; c [ w >> 2 ] = 0 ; r [ y >> 2 ] = r [ u >> 2 ] ; if ( ( r [ u >> 2 ] | 0 ) > ( r [ d >> 2 ] >> 1 | 0 ) ) { r [ _ >> 2 ] = 0 ; do { c [ b >> 2 ] = + c [ b >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; p = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = p } while ( ( p | 0 ) < ( r [ d >> 2 ] | 0 ) ) ; if ( ! ( + c [ b >> 2 ] > 1.0000000036274937 e - 15 & + c [ b >> 2 ] < 64 ) ) { c [ r [ l >> 2 ] >> 2 ] = 1 ; r [ _ >> 2 ] = 1 ; do { c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] = 0 ; p = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = p } while ( ( p | 0 ) < ( r [ d >> 2 ] | 0 ) ) ; c [ b >> 2 ] = 1 } c [ A >> 2 ] = + ( ( r [ u >> 2 ] | 0 ) - 1 | 0 ) * ( 1 / + c [ b >> 2 ] ) ; r [ _ >> 2 ] = 0 ; do { b = ~ ~ + P ( + ( + c [ A >> 2 ] * + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] ) ) ; r [ o + ( r [ _ >> 2 ] << 2 ) >> 2 ] = b ; c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] = + ( r [ o + ( r [ _ >> 2 ] << 2 ) >> 2 ] | 0 ) ; c [ k >> 2 ] = + c [ k >> 2 ] + + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] * + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; c [ w >> 2 ] = + c [ w >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] * + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; b = a + ( r [ _ >> 2 ] << 2 ) | 0 ; c [ b >> 2 ] = + c [ b >> 2 ] * 2 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) - ( r [ o + ( r [ _ >> 2 ] << 2 ) >> 2 ] | 0 ) ; b = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = b } while ( ( b | 0 ) < ( r [ d >> 2 ] | 0 ) ) } if ( ( r [ y >> 2 ] | 0 ) > ( ( r [ d >> 2 ] | 0 ) + 3 | 0 ) ) { c [ C >> 2 ] = + ( r [ y >> 2 ] | 0 ) ; c [ k >> 2 ] = + c [ k >> 2 ] + + c [ C >> 2 ] * + c [ C >> 2 ] ; c [ k >> 2 ] = + c [ k >> 2 ] + + c [ C >> 2 ] * + c [ a >> 2 ] ; r [ o >> 2 ] = ( r [ o >> 2 ] | 0 ) + ( r [ y >> 2 ] | 0 ) ; r [ y >> 2 ] = 0 } c [ v >> 2 ] = 1 ; r [ g >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) >= ( r [ y >> 2 ] | 0 ) ) break ; c [ E >> 2 ] = - 999999986991104 ; c [ $ >> 2 ] = 0 ; r [ T >> 2 ] = 0 ; c [ k >> 2 ] = + c [ k >> 2 ] + 1 ; r [ _ >> 2 ] = 0 ; do { c [ I >> 2 ] = + c [ w >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; c [ x >> 2 ] = + c [ k >> 2 ] + + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] ; c [ I >> 2 ] = + c [ I >> 2 ] * + c [ I >> 2 ] ; if ( + c [ $ >> 2 ] * + c [ I >> 2 ] > + c [ x >> 2 ] * + c [ E >> 2 ] ) { c [ $ >> 2 ] = + c [ x >> 2 ] ; c [ E >> 2 ] = + c [ I >> 2 ] ; r [ T >> 2 ] = r [ _ >> 2 ] } C = ( r [ _ >> 2 ] | 0 ) + 1 | 0 ; r [ _ >> 2 ] = C } while ( ( C | 0 ) < ( r [ d >> 2 ] | 0 ) ) ; c [ w >> 2 ] = + c [ w >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + ( r [ T >> 2 ] << 2 ) >> 2 ] ; c [ k >> 2 ] = + c [ k >> 2 ] + + c [ a + ( r [ T >> 2 ] << 2 ) >> 2 ] ; C = a + ( r [ T >> 2 ] << 2 ) | 0 ; c [ C >> 2 ] = + c [ C >> 2 ] + + c [ v >> 2 ] * 2 ; C = o + ( r [ T >> 2 ] << 2 ) | 0 ; r [ C >> 2 ] = ( r [ C >
r [ ae >> 2 ] = ( r [ ae >> 2 ] | 0 ) + 1 } m = E ; return r [ se >> 2 ] | 0 } function $t ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 ; n = m ; m = m + 16 | 0 ; i = n + 4 | 0 ; a = n ; r [ i >> 2 ] = e ; r [ a >> 2 ] = t ; m = n ; return ( ( r [ i >> 2 ] | 0 ) >>> 0 ) / ( ( r [ a >> 2 ] | 0 ) >>> 0 ) | 0 | 0 } function It ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; e = ( r [ ( r [ n >> 2 ] | 0 ) + 20 >> 2 ] | 0 ) - ( 32 - ( Y ( r [ ( r [ n >> 2 ] | 0 ) + 28 >> 2 ] | 0 ) | 0 ) ) | 0 ; m = t ; return e | 0 } function xt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 ; n = m ; m = m + 16 | 0 ; i = n + 8 | 0 ; a = n + 4 | 0 ; o = n ; r [ i >> 2 ] = e ; r [ a >> 2 ] = t ; r [ o >> 2 ] = 32736 - ( r [ i >> 2 ] | 0 ) ; i = ( W ( r [ o >> 2 ] | 0 , 16384 - ( r [ a >> 2 ] | 0 ) | 0 ) | 0 ) >>> 15 ; m = n ; return i | 0 } function Pt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 ; n = m ; m = m + 64 | 0 ; i = n + 60 | 0 ; o = n + 56 | 0 ; s = n + 52 | 0 ; l = n + 48 | 0 ; c = n + 44 | 0 ; d = n + 40 | 0 ; u = n + 8 | 0 ; p = n + 4 | 0 ; f = n ; r [ i >> 2 ] = e ; r [ o >> 2 ] = t ; if ( ( r [ ( r [ i >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) > 0 ) h = r [ ( r [ i >> 2 ] | 0 ) + 8 >> 2 ] | 0 ; else h = 0 ; r [ f >> 2 ] = h ; r [ u >> 2 ] = 1 ; r [ d >> 2 ] = 0 ; do { r [ c >> 2 ] = a [ ( r [ i >> 2 ] | 0 ) + 12 + ( r [ d >> 2 ] << 1 << 1 ) >> 1 ] ; r [ l >> 2 ] = a [ ( r [ i >> 2 ] | 0 ) + 12 + ( ( r [ d >> 2 ] << 1 ) + 1 << 1 ) >> 1 ] ; h = W ( r [ u + ( r [ d >> 2 ] << 2 ) >> 2 ] | 0 , r [ c >> 2 ] | 0 ) | 0 ; r [ u + ( ( r [ d >> 2 ] | 0 ) + 1 << 2 ) >> 2 ] = h ; r [ d >> 2 ] = ( r [ d >> 2 ] | 0 ) + 1 } while ( ( r [ l >> 2 ] | 0 ) != 1 ) ; r [ l >> 2 ] = a [ ( r [ i >> 2 ] | 0 ) + 12 + ( ( r [ d >> 2 ] << 1 ) - 1 << 1 ) >> 1 ] ; r [ p >> 2 ] = ( r [ d >> 2 ] | 0 ) - 1 ; while ( 1 ) { if ( ( r [ p >> 2 ] | 0 ) < 0 ) break ; if ( r [ p >> 2 ] | 0 ) r [ s >> 2 ] = a [ ( r [ i >> 2 ] | 0 ) + 12 + ( ( r [ p >> 2 ] << 1 ) - 1 << 1 ) >> 1 ] ; else r [ s >> 2 ] = 1 ; switch ( a [ ( r [ i >> 2 ] | 0 ) + 12 + ( r [ p >> 2 ] << 1 << 1 ) >> 1 ] | 0 ) { case 2 : { Dt ( r [ o >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] | 0 ) ; break } case 4 : { Rt ( r [ o >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] << r [ f >> 2 ] , r [ i >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] | 0 , r [ s >> 2 ] | 0 ) ; break } case 3 : { Ot ( r [ o >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] << r [ f >> 2 ] , r [ i >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] | 0 , r [ s >> 2 ] | 0 ) ; break } case 5 : { Nt ( r [ o >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] << r [ f >> 2 ] , r [ i >> 2 ] | 0 , r [ l >> 2 ] | 0 , r [ u + ( r [ p >> 2 ] << 2 ) >> 2 ] | 0 , r [ s >> 2 ] | 0 ) ; break } default : { } } r [ l >> 2 ] = r [ s >> 2 ] ; r [ p >> 2 ] = ( r [ p >> 2 ] | 0 ) + - 1 } m = n ; return } function Dt ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 ; i = m ; m = m + 32 | 0 ; a = i + 28 | 0 ; o = i + 20 | 0 ; s = i + 16 | 0 ; l = i + 12 | 0 ; d = i + 8 | 0 ; u = i ; r [ a >> 2 ] = e ; r [ i + 24 >> 2 ] = t ; r [ o >> 2 ] = n ; c [ d >> 2 ] = . 7071067690849304 ; r [ l >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ l >> 2 ] | 0 ) >= ( r [ o >> 2 ] | 0 ) ) break ; r [ s >> 2 ] = ( r [ a >> 2 ] | 0 ) + 32 ; n = r [ s >> 2 ] | 0 ; r [ u >> 2 ] = r [ n >> 2 ] ; r [ u + 4 >> 2 ] = r [ n + 4 >> 2 ] ; c [ r [ s >> 2 ] >> 2 ] = + c [ r [ a >> 2 ] >> 2 ] - + c [ u >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 4 >> 2 ] - + c [ u + 4 >> 2 ] ; n = r [ a >> 2 ] | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 4 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u + 4 >> 2 ] ; c [ u >> 2 ] = ( + c [ ( r [ s >> 2 ] | 0 ) + 8 >> 2 ] + + c [ ( r [ s >> 2 ] | 0 ) + 8 + 4 >> 2 ] ) * + c [ d >> 2 ] ; c [ u + 4 >> 2 ] = ( + c [ ( r [ s >> 2 ] | 0 ) + 8 + 4 >> 2 ] - + c [ ( r [ s >> 2 ] | 0 ) + 8 >> 2 ] ) * + c [ d >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 8 >> 2 ] - + c [ u >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 8 + 4 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 8 + 4 >> 2 ] - + c [ u + 4 >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 8 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 8 + 4 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u + 4 >> 2 ] ; c [ u >> 2 ] = + c [ ( r [ s >> 2 ] | 0 ) + 16 + 4 >> 2 ] ; c [ u + 4 >> 2 ] = - + c [ ( r [ s >> 2 ] | 0 ) + 16 >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 16 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 16 >> 2 ] - + c [ u >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 16 + 4 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 16 + 4 >> 2 ] - + c [ u + 4 >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 16 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 16 + 4 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u + 4 >> 2 ] ; c [ u >> 2 ] = ( + c [ ( r [ s >> 2 ] | 0 ) + 24 + 4 >> 2 ] - + c [ ( r [ s >> 2 ] | 0 ) + 24 >> 2 ] ) * + c [ d >> 2 ] ; c [ u + 4 >> 2 ] = ( - + c [ ( r [ s >> 2 ] | 0 ) + 24 + 4 >> 2 ] - + c [ ( r [ s >> 2 ] | 0 ) + 24 >> 2 ] ) * + c [ d >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 24 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 24 >> 2 ] - + c [ u >> 2 ] ; c [ ( r [ s >> 2 ] | 0 ) + 24 + 4 >> 2 ] = + c [ ( r [ a >> 2 ] | 0 ) + 24 + 4 >> 2 ] - + c [ u + 4 >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 24 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u >> 2 ] ; n = ( r [ a >> 2 ] | 0 ) + 24 + 4 | 0 ; c [ n >> 2 ] = + c [ n >> 2 ] + + c [ u + 4 >> 2 ] ; r [ a >> 2 ] = ( r [ a >> 2 ] | 0 ) + 64 ; r [ l >> 2 ] = ( r [ l >> 2 ] | 0 ) + 1 } m = i ; return } function Rt ( e , t , n , i , a , o ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; var s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 ; s = m ; m = m + 128 | 0 ; l = s + 120 | 0 ; d = s + 116 | 0 ; u = s + 112 | 0 ; p = s + 108 | 0 ; f = s + 104 | 0 ; h = s + 100 | 0 ; g = s + 96 | 0 ; _ = s + 88 | 0 ; v = s + 80 | 0 ; y = s + 72 | 0 ; b = s + 24 | 0 ; w = s + 20 | 0 ; k = s + 16 | 0 ; M = s + 12 | 0 ; S = s + 8 | 0 ; A = s + 4 | 0 ; C = s ; r [ l >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = i ; r [ f >> 2 ] = a ; r [ h >> 2 ] = o ; if ( ( r [ p >> 2 ] | 0 ) == 1 ) { r [ g >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) >= ( r [ f >> 2 ] | 0 ) ) break ; c [ _ >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] - + c [ ( r [ l >> 2 ] | 0 ) + 16 >> 2 ] ; c [ _ + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] - + c [ ( r [ l >> 2 ] | 0 ) + 16 + 4 >> 2 ] ; o = r [ l >> 2 ] | 0 ; c [ o >> 2 ] = + c [ o >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + 16 >> 2 ] ; o = ( r [ l >> 2 ] | 0 ) + 4 | 0 ; c [ o >> 2 ] = + c [ o >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + 16 + 4 >> 2 ] ; c [ v >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + 24 >> 2 ] ; c [ v + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 + 4 >> 2 ] + + c [ ( r [ l >> 2 ] | 0 ) + 24 + 4 >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 16 >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] - + c [ v >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 16 + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] - + c [ v + 4 >> 2 ] ; o = r [ l >> 2 ] | 0 ; c [ o >> 2 ] = + c [ o >> 2 ] + + c [ v >> 2 ] ; o = ( r [ l >> 2 ] | 0 ) + 4 | 0 ; c [ o >> 2 ] = + c [ o >> 2 ] +
r [ q >> 2 ] = 0 ; r [ Q >> 2 ] = 0 ; if ( ( r [ U >> 2 ] | 0 ) == 0 ? ( ( r [ J >> 2 ] | 0 ) + 16 | 0 ) <= ( r [ Y >> 2 ] | 0 ) : 0 ) { if ( Ye ( r [ v >> 2 ] | 0 , 1 ) | 0 ) { r [ ue >> 2 ] = qe ( r [ v >> 2 ] | 0 , 6 ) | 0 ; A = 16 << r [ ue >> 2 ] ; r [ q >> 2 ] = A + ( De ( r [ v >> 2 ] | 0 , 4 + ( r [ ue >> 2 ] | 0 ) | 0 ) | 0 ) - 1 ; r [ de >> 2 ] = De ( r [ v >> 2 ] | 0 , 3 ) | 0 ; ue = ( nn ( r [ v >> 2 ] | 0 ) | 0 ) + 2 | 0 ; if ( ( ue | 0 ) <= ( r [ Y >> 2 ] | 0 ) ) r [ Q >> 2 ] = an ( r [ v >> 2 ] | 0 , 25134 , 2 ) | 0 ; c [ z >> 2 ] = + ( ( r [ de >> 2 ] | 0 ) + 1 | 0 ) * . 09375 } r [ J >> 2 ] = nn ( r [ v >> 2 ] | 0 ) | 0 } if ( ( r [ L >> 2 ] | 0 ) > 0 ? ( ( r [ J >> 2 ] | 0 ) + 3 | 0 ) <= ( r [ Y >> 2 ] | 0 ) : 0 ) { r [ R >> 2 ] = Ye ( r [ v >> 2 ] | 0 , 3 ) | 0 ; r [ J >> 2 ] = nn ( r [ v >> 2 ] | 0 ) | 0 } else r [ R >> 2 ] = 0 ; if ( r [ R >> 2 ] | 0 ) r [ D >> 2 ] = r [ F >> 2 ] ; else r [ D >> 2 ] = 0 ; if ( ( ( r [ J >> 2 ] | 0 ) + 3 | 0 ) <= ( r [ Y >> 2 ] | 0 ) ) ke = Ye ( r [ v >> 2 ] | 0 , 3 ) | 0 ; else ke = 0 ; r [ O >> 2 ] = ke ; rn ( r [ ae >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , r [ $ >> 2 ] | 0 , r [ O >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ ie >> 2 ] | 0 , r [ L >> 2 ] | 0 ) ; O = r [ re >> 2 ] | 0 ; r [ pe >> 2 ] = oe ( ) | 0 ; ke = m ; m = m + ( ( 1 * ( O << 2 ) | 0 ) + 15 & - 16 ) | 0 ; on ( r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , r [ R >> 2 ] | 0 , ke , r [ L >> 2 ] | 0 , r [ v >> 2 ] | 0 ) ; r [ J >> 2 ] = nn ( r [ v >> 2 ] | 0 ) | 0 ; r [ M >> 2 ] = 2 ; if ( ( ( r [ J >> 2 ] | 0 ) + 4 | 0 ) <= ( r [ Y >> 2 ] | 0 ) ) r [ M >> 2 ] = an ( r [ v >> 2 ] | 0 , 25137 , 5 ) | 0 ; O = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; At ( r [ ae >> 2 ] | 0 , O , r [ L >> 2 ] | 0 , r [ ie >> 2 ] | 0 ) ; de = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; r [ Z >> 2 ] = 6 ; r [ Y >> 2 ] = r [ Y >> 2 ] << 3 ; r [ J >> 2 ] = Ce ( r [ v >> 2 ] | 0 ) | 0 ; r [ w >> 2 ] = r [ U >> 2 ] ; while ( 1 ) { if ( ( r [ w >> 2 ] | 0 ) >= ( r [ B >> 2 ] | 0 ) ) break ; ue = W ( r [ ie >> 2 ] | 0 , ( a [ ( r [ le >> 2 ] | 0 ) + ( ( r [ w >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] | 0 ) - ( a [ ( r [ le >> 2 ] | 0 ) + ( r [ w >> 2 ] << 1 ) >> 1 ] | 0 ) | 0 ) | 0 ; r [ fe >> 2 ] = ue << r [ L >> 2 ] ; ue = r [ fe >> 2 ] | 0 ; if ( ( r [ fe >> 2 ] << 3 | 0 ) < ( ( 48 > ( r [ fe >> 2 ] | 0 ) ? 48 : r [ fe >> 2 ] | 0 ) | 0 ) ) Me = ue << 3 ; else Me = 48 > ( ue | 0 ) ? 48 : r [ fe >> 2 ] | 0 ; r [ me >> 2 ] = Me ; r [ he >> 2 ] = r [ Z >> 2 ] ; r [ ge >> 2 ] = 0 ; while ( 1 ) { if ( ( ( r [ J >> 2 ] | 0 ) + ( r [ he >> 2 ] << 3 ) | 0 ) >= ( r [ Y >> 2 ] | 0 ) ) break ; if ( ( r [ ge >> 2 ] | 0 ) >= ( r [ O + ( r [ w >> 2 ] << 2 ) >> 2 ] | 0 ) ) break ; r [ _e >> 2 ] = Ye ( r [ v >> 2 ] | 0 , r [ he >> 2 ] | 0 ) | 0 ; r [ J >> 2 ] = Ce ( r [ v >> 2 ] | 0 ) | 0 ; if ( ! ( r [ _e >> 2 ] | 0 ) ) break ; r [ ge >> 2 ] = ( r [ ge >> 2 ] | 0 ) + ( r [ me >> 2 ] | 0 ) ; r [ Y >> 2 ] = ( r [ Y >> 2 ] | 0 ) - ( r [ me >> 2 ] | 0 ) ; r [ he >> 2 ] = 1 } r [ de + ( r [ w >> 2 ] << 2 ) >> 2 ] = r [ ge >> 2 ] ; if ( ( r [ ge >> 2 ] | 0 ) > 0 ) r [ Z >> 2 ] = 2 > ( ( r [ Z >> 2 ] | 0 ) - 1 | 0 ) ? 2 : ( r [ Z >> 2 ] | 0 ) - 1 | 0 ; r [ w >> 2 ] = ( r [ w >> 2 ] | 0 ) + 1 } Z = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; if ( ( ( r [ J >> 2 ] | 0 ) + 48 | 0 ) <= ( r [ Y >> 2 ] | 0 ) ) Se = an ( r [ v >> 2 ] | 0 , 25141 , 7 ) | 0 ; else Se = 5 ; r [ V >> 2 ] = Se ; Se = r [ h >> 2 ] << 3 << 3 ; r [ S >> 2 ] = Se - ( Ce ( r [ v >> 2 ] | 0 ) | 0 ) - 1 ; if ( ( r [ R >> 2 ] | 0 ) != 0 & ( r [ L >> 2 ] | 0 ) >= 2 ) Te = ( r [ S >> 2 ] | 0 ) >= ( ( r [ L >> 2 ] | 0 ) + 2 << 3 | 0 ) ; else Te = 0 ; r [ ee >> 2 ] = Te ? 8 : 0 ; r [ S >> 2 ] = ( r [ S >> 2 ] | 0 ) - ( r [ ee >> 2 ] | 0 ) ; Te = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; Se = m ; m = m + ( ( 1 * ( r [ re >> 2 ] << 2 ) | 0 ) + 15 & - 16 ) | 0 ; r [ j >> 2 ] = Tt ( r [ ae >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , de , O , r [ V >> 2 ] | 0 , G , K , r [ S >> 2 ] | 0 , X , Te , Z , Se , r [ ie >> 2 ] | 0 , r [ L >> 2 ] | 0 , r [ v >> 2 ] | 0 , 0 , 0 , 0 ) | 0 ; sn ( r [ ae >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , r [ $ >> 2 ] | 0 , Z , r [ v >> 2 ] | 0 , r [ ie >> 2 ] | 0 ) ; r [ b >> 2 ] = 0 ; do { Ba ( r [ C + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 , ( r [ C + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 ) + ( r [ k >> 2 ] << 2 ) | 0 , ( 2048 - ( r [ k >> 2 ] | 0 ) + ( ( r [ se >> 2 ] | 0 ) / 2 | 0 ) << 2 ) + 0 | 0 ) | 0 ; S = ( r [ b >> 2 ] | 0 ) + 1 | 0 ; r [ b >> 2 ] = S } while ( ( S | 0 ) < ( r [ N >> 2 ] | 0 ) ) ; C = W ( r [ ie >> 2 ] | 0 , r [ re >> 2 ] | 0 ) | 0 ; S = m ; m = m + ( ( 1 * C | 0 ) + 15 & - 16 ) | 0 ; C = ( W ( r [ ie >> 2 ] | 0 , r [ k >> 2 ] | 0 ) | 0 ) << 2 ; V = m ; m = m + ( ( 1 * C | 0 ) + 15 & - 16 ) | 0 ; Ae ( 0 , r [ ae >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , V , ( r [ ie >> 2 ] | 0 ) == 2 ? V + ( r [ k >> 2 ] << 2 ) | 0 : 0 , S , 0 , Te , r [ D >> 2 ] | 0 , r [ M >> 2 ] | 0 , r [ K >> 2 ] | 0 , r [ G >> 2 ] | 0 , ke , ( r [ h >> 2 ] << 6 ) - ( r [ ee >> 2 ] | 0 ) | 0 , r [ X >> 2 ] | 0 , r [ v >> 2 ] | 0 , r [ L >> 2 ] | 0 , r [ j >> 2 ] | 0 , ( r [ p >> 2 ] | 0 ) + 36 | 0 ) ; if ( ( r [ ee >> 2 ] | 0 ) > 0 ) r [ te >> 2 ] = De ( r [ v >> 2 ] | 0 , 1 ) | 0 ; ee = r [ ae >> 2 ] | 0 ; j = r [ U >> 2 ] | 0 ; X = r [ B >> 2 ] | 0 ; ke = r [ $ >> 2 ] | 0 ; G = r [ h >> 2 ] << 3 ; K = G - ( nn ( r [ v >> 2 ] | 0 ) | 0 ) | 0 ; ln ( ee , j , X , ke , Z , Se , K , r [ v >> 2 ] | 0 , r [ ie >> 2 ] | 0 ) ; if ( r [ te >> 2 ] | 0 ) be ( r [ ae >> 2 ] | 0 , V , S , r [ L >> 2 ] | 0 , r [ ie >> 2 ] | 0 , r [ k >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ B >> 2 ] | 0 , r [ $ >> 2 ] | 0 , r [ I >> 2 ] | 0 , r [ x >> 2 ] | 0 , Te , r [ ( r [ p >> 2 ] | 0 ) + 36 >> 2 ] | 0 ) ; e : do if ( r [ ne >> 2 ] | 0 ) { r [ w >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ w >> 2 ] | 0 ) >= ( W ( r [ ie >> 2 ] | 0 , r [ re >> 2 ] | 0 ) | 0 ) ) break e ; c [ ( r [ $ >> 2 ] | 0 ) + ( r [ w >> 2 ] << 2 ) >> 2 ] = - 28 ; r [ w >> 2 ] = ( r [ w >> 2 ] | 0 ) + 1 } } while ( 0 ) ; cn ( r [ ae >> 2 ] | 0 , V , T , r [ $ >> 2 ] | 0 , r [ U >> 2 ] | 0 , r [ H >> 2 ] | 0 , r [ ie >> 2 ] | 0 , r [ N >> 2 ] | 0 , r [ R >> 2 ] | 0 , r [ L >> 2 ] | 0 , r [ ( r [ p >> 2 ] | 0 ) + 16 >> 2 ] | 0 , r [ ne >> 2 ] | 0 ) ; r [ b >> 2 ] = 0 ; do { if ( ( r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] | 0 ) > 15 ) Ee = r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] | 0 ; else Ee = 15 ; r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] = Ee ; if ( ( r [ ( r [ p >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) > 15 ) $e = r [ ( r [ p >> 2 ] | 0 ) + 56 >> 2 ] | 0 ; else $e = 15 ; r [ ( r [ p >> 2 ] | 0 ) + 56 >> 2 ] = $e ; Mt ( r [ T + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 , r [ T + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 , r [ ( r [ p >> 2 ] | 0 ) + 56 >> 2 ] | 0 , r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] | 0 , r [ ( r [ ae >> 2 ] | 0 ) + 44 >> 2 ] | 0 , + c [ ( r [ p >> 2 ] | 0 ) + 64 >> 2 ] , + c [ ( r [ p >> 2 ] | 0 ) + 60 >> 2 ] , r [ ( r [ p >> 2 ] | 0 ) + 72 >> 2 ] | 0 , r [ ( r [ p >> 2 ] | 0 ) + 68 >> 2 ] | 0 , r [ ( r [ ae >> 2 ] | 0 ) + 60 >> 2 ] | 0 , r [ se >> 2 ] | 0 ) ; if ( r [ L >> 2 ] | 0 ) Mt ( ( r [ T + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 ) + ( r [ ( r [ ae >> 2 ] | 0 ) + 44 >> 2 ] << 2 ) | 0 , ( r [ T + ( r [ b >> 2 ] << 2 ) >> 2 ] | 0 ) + ( r [ ( r [ ae >> 2 ] | 0 ) + 44 >> 2 ] << 2 ) | 0 , r [ ( r [ p >> 2 ] | 0 ) + 52 >> 2 ] | 0 , r [ q >> 2 ] | 0 , ( r [ k >> 2 ] | 0 ) - ( r [ ( r [ ae >> 2 ] | 0 ) + 44 >> 2 ] | 0 ) | 0 , + c [ ( r [ p
c [ b >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + ( r [ g >> 2 ] << 2 ) >> 2 ] ; r [ _ >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ _ >> 2 ] | 0 ) >= ( r [ f >> 2 ] | 0 ) ) break ; c [ b >> 2 ] = + c [ b >> 2 ] - + c [ a + ( r [ _ >> 2 ] << 2 ) >> 2 ] * + c [ o + ( ( r [ g >> 2 ] | 0 ) + ( r [ _ >> 2 ] | 0 ) << 2 ) >> 2 ] ; r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + 1 } c [ o + ( ( r [ g >> 2 ] | 0 ) + ( r [ f >> 2 ] | 0 ) << 2 ) >> 2 ] = + c [ b >> 2 ] ; c [ ( r [ u >> 2 ] | 0 ) + ( r [ g >> 2 ] << 2 ) >> 2 ] = + c [ b >> 2 ] ; r [ g >> 2 ] = ( r [ g >> 2 ] | 0 ) + 1 } r [ g >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) >= ( r [ f >> 2 ] | 0 ) ) break ; c [ ( r [ h >> 2 ] | 0 ) + ( r [ g >> 2 ] << 2 ) >> 2 ] = + c [ ( r [ u >> 2 ] | 0 ) + ( ( r [ p >> 2 ] | 0 ) - ( r [ g >> 2 ] | 0 ) - 1 << 2 ) >> 2 ] ; r [ g >> 2 ] = ( r [ g >> 2 ] | 0 ) + 1 } ce ( r [ v >> 2 ] | 0 ) ; m = s ; return } function _n ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 ; a = m ; m = m + 64 | 0 ; o = a + 48 | 0 ; s = a + 44 | 0 ; l = a + 40 | 0 ; d = a + 36 | 0 ; u = a + 32 | 0 ; p = a + 28 | 0 ; f = a + 24 | 0 ; h = a + 20 | 0 ; g = a + 16 | 0 ; _ = a + 12 | 0 ; v = a + 8 | 0 ; y = a + 4 | 0 ; b = a ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; r [ d >> 2 ] = i ; c [ g >> 2 ] = 0 ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ p >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ f >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ h >> 2 ] = + c [ i >> 2 ] ; r [ u >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ u >> 2 ] | 0 ) >= ( ( r [ d >> 2 ] | 0 ) - 3 | 0 ) ) break ; i = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = i + 4 ; c [ _ >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ g >> 2 ] = + c [ i >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ _ >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ _ >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ _ >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ _ >> 2 ] * + c [ g >> 2 ] ; i = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = i + 4 ; c [ _ >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ p >> 2 ] = + c [ i >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ _ >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ _ >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ _ >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ _ >> 2 ] * + c [ p >> 2 ] ; i = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = i + 4 ; c [ _ >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ f >> 2 ] = + c [ i >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ _ >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ _ >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ _ >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ _ >> 2 ] * + c [ f >> 2 ] ; i = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = i + 4 ; c [ _ >> 2 ] = + c [ i >> 2 ] ; i = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = i + 4 ; c [ h >> 2 ] = + c [ i >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ _ >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ _ >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ _ >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ _ >> 2 ] * + c [ h >> 2 ] ; r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + 4 } _ = r [ u >> 2 ] | 0 ; r [ u >> 2 ] = _ + 1 ; if ( ( _ | 0 ) < ( r [ d >> 2 ] | 0 ) ) { _ = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = _ + 4 ; c [ v >> 2 ] = + c [ _ >> 2 ] ; _ = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = _ + 4 ; c [ g >> 2 ] = + c [ _ >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ v >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ v >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ v >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ v >> 2 ] * + c [ g >> 2 ] } v = r [ u >> 2 ] | 0 ; r [ u >> 2 ] = v + 1 ; if ( ( v | 0 ) < ( r [ d >> 2 ] | 0 ) ) { v = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = v + 4 ; c [ y >> 2 ] = + c [ v >> 2 ] ; v = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = v + 4 ; c [ p >> 2 ] = + c [ v >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ y >> 2 ] * + c [ f >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ y >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ y >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ y >> 2 ] * + c [ p >> 2 ] } if ( ( r [ u >> 2 ] | 0 ) >= ( r [ d >> 2 ] | 0 ) ) { m = a ; return } d = r [ o >> 2 ] | 0 ; r [ o >> 2 ] = d + 4 ; c [ b >> 2 ] = + c [ d >> 2 ] ; d = r [ s >> 2 ] | 0 ; r [ s >> 2 ] = d + 4 ; c [ f >> 2 ] = + c [ d >> 2 ] ; c [ r [ l >> 2 ] >> 2 ] = + c [ r [ l >> 2 ] >> 2 ] + + c [ b >> 2 ] * + c [ h >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 4 >> 2 ] + + c [ b >> 2 ] * + c [ g >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 8 >> 2 ] + + c [ b >> 2 ] * + c [ p >> 2 ] ; c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] = + c [ ( r [ l >> 2 ] | 0 ) + 12 >> 2 ] + + c [ b >> 2 ] * + c [ f >> 2 ] ; m = a ; return } function vn ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , o = 0 , s = 0 ; t = m ; m = m + 16 | 0 ; n = t + 12 | 0 ; i = t + 8 | 0 ; o = t + 4 | 0 ; s = t ; r [ n >> 2 ] = e ; r [ o >> 2 ] = 32767 / ( ( r [ ( r [ n >> 2 ] | 0 ) + 2340 >> 2 ] | 0 ) + 1 | 0 ) | 0 ; r [ s >> 2 ] = 0 ; r [ i >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ i >> 2 ] | 0 ) >= ( r [ ( r [ n >> 2 ] | 0 ) + 2340 >> 2 ] | 0 ) ) break ; r [ s >> 2 ] = ( r [ s >> 2 ] | 0 ) + ( r [ o >> 2 ] | 0 ) ; a [ ( r [ n >> 2 ] | 0 ) + 2772 + 1280 + ( r [ i >> 2 ] << 1 ) >> 1 ] = r [ s >> 2 ] ; r [ i >> 2 ] = ( r [ i >> 2 ] | 0 ) + 1 } r [ ( r [ n >> 2 ] | 0 ) + 2772 + 1376 >> 2 ] = 0 ; r [ ( r [ n >> 2 ] | 0 ) + 2772 + 1380 >> 2 ] = 3176576 ; m = t ; return } function yn ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 ; o = m ; m = m + 80 | 0 ; s = o + 36 | 0 ; l = o + 32 | 0 ; c = o + 28 | 0 ; d = o + 24 | 0 ; u = o + 20 | 0 ; p = o + 16 | 0 ; f = o + 12 | 0 ; h = o + 8 | 0 ; g = o + 40 | 0 ; _ = o + 4 | 0 ; v = o ; r [ s >> 2 ] = e ; r [ l >> 2 ] = t ; r [ c >> 2 ] = n ; r [ d >> 2 ] = i ; r [ _ >> 2 ] = ( r [ s >> 2 ] | 0 ) + 2772 ; if ( ( r [ ( r [ s >> 2 ] | 0 ) + 2316 >> 2 ] | 0 ) != ( r [ ( r [ _ >> 2 ] | 0 ) + 1384 >> 2 ] | 0 ) ) { vn ( r [ s >> 2 ] | 0 ) ; r [ ( r [ _ >> 2 ] | 0 ) + 1384 >> 2 ] = r [ ( r [ s >> 2 ] | 0 ) + 2316 >> 2 ] } e : do if ( ( r [
} i = 32 - ( 32 - ( Y ( r [ n >> 2 ] | 0 ) | 0 ) ) | 0 ; m = t ; return i | 0 } function Nn ( e , t , n , a , o , s ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; a = a | 0 ; o = o | 0 ; s = s | 0 ; var l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 ; l = m ; m = m + 192 | 0 ; c = l + 176 | 0 ; d = l + 172 | 0 ; u = l + 168 | 0 ; p = l + 164 | 0 ; f = l + 160 | 0 ; h = l + 156 | 0 ; g = l + 152 | 0 ; _ = l + 148 | 0 ; v = l + 144 | 0 ; y = l + 4 | 0 ; b = l ; r [ c >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = a ; r [ f >> 2 ] = o ; r [ h >> 2 ] = s ; r [ v >> 2 ] = 0 ; r [ g >> 2 ] = r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] ; r [ y + 136 >> 2 ] = 0 ; do if ( ! ( r [ f >> 2 ] | 0 ) ) w = 4 ; else { if ( ( r [ f >> 2 ] | 0 ) == 2 ? ( r [ ( r [ c >> 2 ] | 0 ) + 2420 + ( r [ ( r [ c >> 2 ] | 0 ) + 2388 >> 2 ] << 2 ) >> 2 ] | 0 ) == 1 : 0 ) { w = 4 ; break } Bn ( r [ c >> 2 ] | 0 , y , r [ u >> 2 ] | 0 , 1 ) } while ( 0 ) ; if ( ( w | 0 ) == 4 ) { w = ( r [ g >> 2 ] | 0 ) + 16 - 1 & - 16 ; r [ b >> 2 ] = oe ( ) | 0 ; s = m ; m = m + ( ( 1 * ( w << 1 ) | 0 ) + 15 & - 16 ) | 0 ; Ln ( r [ c >> 2 ] | 0 , r [ d >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2388 >> 2 ] | 0 , r [ f >> 2 ] | 0 , r [ h >> 2 ] | 0 ) ; Fn ( r [ d >> 2 ] | 0 , s , i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] | 0 , i [ ( r [ c >> 2 ] | 0 ) + 2736 + 30 >> 0 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] | 0 ) ; Un ( r [ c >> 2 ] | 0 , y , r [ h >> 2 ] | 0 ) ; xn ( r [ c >> 2 ] | 0 , y , r [ u >> 2 ] | 0 , s ) ; Bn ( r [ c >> 2 ] | 0 , y , r [ u >> 2 ] | 0 , 0 ) ; r [ ( r [ c >> 2 ] | 0 ) + 4160 >> 2 ] = 0 ; r [ ( r [ c >> 2 ] | 0 ) + 4164 >> 2 ] = i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] ; r [ ( r [ c >> 2 ] | 0 ) + 2376 >> 2 ] = 0 ; ce ( r [ b >> 2 ] | 0 ) } r [ _ >> 2 ] = ( r [ ( r [ c >> 2 ] | 0 ) + 2336 >> 2 ] | 0 ) - ( r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] | 0 ) ; Ba ( ( r [ c >> 2 ] | 0 ) + 1348 | 0 , ( r [ c >> 2 ] | 0 ) + 1348 + ( r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] << 1 ) | 0 , r [ _ >> 2 ] << 1 | 0 ) | 0 ; La ( ( r [ c >> 2 ] | 0 ) + 1348 + ( r [ _ >> 2 ] << 1 ) | 0 , r [ u >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2328 >> 2 ] << 1 | 0 ) | 0 ; Hn ( r [ c >> 2 ] | 0 , r [ u >> 2 ] | 0 , r [ g >> 2 ] | 0 ) ; yn ( r [ c >> 2 ] | 0 , y , r [ u >> 2 ] | 0 , r [ g >> 2 ] | 0 ) ; r [ ( r [ c >> 2 ] | 0 ) + 2308 >> 2 ] = r [ y + ( ( r [ ( r [ c >> 2 ] | 0 ) + 2324 >> 2 ] | 0 ) - 1 << 2 ) >> 2 ] ; r [ r [ p >> 2 ] >> 2 ] = r [ g >> 2 ] ; m = l ; return r [ v >> 2 ] | 0 } function Ln ( e , t , n , o , s ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; o = o | 0 ; s = s | 0 ; var l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 , N = 0 , L = 0 , F = 0 , U = 0 ; l = m ; m = m + 96 | 0 ; c = l + 36 | 0 ; d = l + 32 | 0 ; u = l + 28 | 0 ; p = l + 24 | 0 ; f = l + 20 | 0 ; h = l + 16 | 0 ; g = l + 12 | 0 ; _ = l + 8 | 0 ; v = l + 4 | 0 ; y = l ; b = l + 40 | 0 ; w = l + 72 | 0 ; r [ c >> 2 ] = e ; r [ d >> 2 ] = t ; r [ u >> 2 ] = n ; r [ p >> 2 ] = o ; r [ f >> 2 ] = s ; if ( ! ( r [ p >> 2 ] | 0 ) ? ! ( r [ ( r [ c >> 2 ] | 0 ) + 2404 + ( r [ u >> 2 ] << 2 ) >> 2 ] | 0 ) : 0 ) r [ _ >> 2 ] = an ( r [ d >> 2 ] | 0 , 22720 , 8 ) | 0 ; else r [ _ >> 2 ] = ( an ( r [ d >> 2 ] | 0 , 22716 , 8 ) | 0 ) + 2 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] = r [ _ >> 2 ] >> 1 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 30 >> 0 ] = r [ _ >> 2 ] & 1 ; u = r [ d >> 2 ] | 0 ; if ( ( r [ f >> 2 ] | 0 ) == 2 ) { p = ( an ( u , 20582 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 >> 0 ] = p } else { p = ( an ( u , 20558 + ( i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] << 3 ) | 0 , 8 ) | 0 ) << 3 & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 >> 0 ] = p ; p = ( ( an ( r [ d >> 2 ] | 0 , 22745 , 8 ) | 0 ) & 255 ) << 24 >> 24 ; u = ( r [ c >> 2 ] | 0 ) + 2736 | 0 ; i [ u >> 0 ] = ( i [ u >> 0 ] | 0 ) + p } r [ h >> 2 ] = 1 ; while ( 1 ) { k = r [ d >> 2 ] | 0 ; if ( ( r [ h >> 2 ] | 0 ) >= ( r [ ( r [ c >> 2 ] | 0 ) + 2324 >> 2 ] | 0 ) ) break ; p = ( an ( k , 20582 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + ( r [ h >> 2 ] | 0 ) >> 0 ] = p ; r [ h >> 2 ] = ( r [ h >> 2 ] | 0 ) + 1 } p = ( an ( k , ( r [ ( r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) + ( W ( i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] >> 1 , a [ r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] >> 1 ] | 0 ) | 0 ) | 0 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 8 >> 0 ] = p ; oi ( b , w , r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] | 0 , i [ ( r [ c >> 2 ] | 0 ) + 2736 + 8 >> 0 ] | 0 ) ; r [ h >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ h >> 2 ] | 0 ) >= ( a [ ( r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) ) break ; r [ _ >> 2 ] = an ( r [ d >> 2 ] | 0 , ( r [ ( r [ ( r [ c >> 2 ] | 0 ) + 2732 >> 2 ] | 0 ) + 24 >> 2 ] | 0 ) + ( a [ b + ( r [ h >> 2 ] << 1 ) >> 1 ] | 0 ) | 0 , 8 ) | 0 ; if ( r [ _ >> 2 ] | 0 ) { if ( ( r [ _ >> 2 ] | 0 ) == 8 ) { w = an ( r [ d >> 2 ] | 0 , 22753 , 8 ) | 0 ; r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + w } } else { w = an ( r [ d >> 2 ] | 0 , 22753 , 8 ) | 0 ; r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) - w } i [ ( r [ c >> 2 ] | 0 ) + 2736 + 8 + ( ( r [ h >> 2 ] | 0 ) + 1 ) >> 0 ] = ( r [ _ >> 2 ] | 0 ) - 4 ; r [ h >> 2 ] = ( r [ h >> 2 ] | 0 ) + 1 } if ( ( r [ ( r [ c >> 2 ] | 0 ) + 2324 >> 2 ] | 0 ) == 4 ) { h = ( an ( r [ d >> 2 ] | 0 , 22722 , 8 ) | 0 ) & 255 ; M = h ; S = r [ c >> 2 ] | 0 } else { M = 4 ; S = r [ c >> 2 ] | 0 } i [ S + 2736 + 31 >> 0 ] = M ; if ( ( i [ ( r [ c >> 2 ] | 0 ) + 2736 + 29 >> 0 ] | 0 ) != 2 ) { A = r [ c >> 2 ] | 0 ; C = A + 2736 | 0 ; T = C + 29 | 0 ; E = i [ T >> 0 ] | 0 ; $ = E << 24 >> 24 ; I = r [ c >> 2 ] | 0 ; x = I + 2396 | 0 ; r [ x >> 2 ] = $ ; P = r [ d >> 2 ] | 0 ; D = an ( P , 22730 , 8 ) | 0 ; R = D & 255 ; O = r [ c >> 2 ] | 0 ; N = O + 2736 | 0 ; L = N + 34 | 0 ; i [ L >> 0 ] = R ; m = l ; return } r [ v >> 2 ] = 1 ; if ( ( ( r [ f >> 2 ] | 0 ) == 2 ? ( r [ ( r [ c >> 2 ] | 0 ) + 2396 >> 2 ] | 0 ) == 2 : 0 ) ? ( r [ y >> 2 ] = ( ( an ( r [ d >> 2 ] | 0 , 22792 , 8 ) | 0 ) & 65535 ) << 16 >> 16 , ( r [ y >> 2 ] | 0 ) > 0 ) : 0 ) { r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) - 9 ; a [ ( r [ c >> 2 ] | 0 ) + 2736 + 26 >> 1 ] = ( a [ ( r [ c >> 2 ] | 0 ) + 2400 >> 1 ] | 0 ) + ( r [ y >> 2 ] | 0 ) ; r [ v >> 2 ] = 0 } if ( r [ v >> 2 ] | 0 ) { v = ( ( an ( r [ d >> 2 ] | 0 , 22760 , 8 ) | 0 ) & 65535 ) << 16 >> 16 ; y = ( W ( v , r [ ( r [ c >> 2 ] | 0 ) + 2316 >> 2 ] >> 1 ) | 0 ) & 65535 ; a [ ( r [ c >> 2 ] | 0 ) + 2736 + 26 >> 1 ] = y ; y = ( ( an ( r [ d >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2380 >> 2 ] | 0 , 8 ) | 0 ) & 65535 ) << 16 >> 16 ; v = ( r [ c >> 2 ] | 0 ) + 2736 + 26 | 0 ; a [ v >> 1 ] = ( a [ v >> 1 ] | 0 ) + y } a [ ( r [ c >> 2 ] | 0 ) + 2400 >> 1 ] = a [ ( r [ c >> 2 ] | 0 ) + 2736 + 26 >> 1 ] | 0 ; y = ( an ( r [ d >> 2 ] | 0 , r [ ( r [ c >> 2 ] | 0 ) + 2384 >> 2 ] | 0 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 28 >> 0 ] = y ; y = ( an ( r [ d >> 2 ] | 0 , 20623 , 8 ) | 0 ) & 255 ; i [ ( r [ c >> 2 ] | 0 ) + 2736 + 32 >> 0 ] = y ; r [ g >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) >= ( r [ ( r [ c >> 2 ] | 0 ) + 2324 >> 2 ] | 0 ) ) break ; y = ( an ( r [ d >> 2 ] | 0 , r [ 108 + ( i [ ( r [ c >> 2 ] | 0 ) + 2736 + 32 >> 0 ] << 2 ) >> 2 ] | 0 , 8 ) | 0 ) & 255 ; i [ ( r [
i [ ( r [ d >> 2 ] | 0 ) + ( r [ f >> 2 ] | 0 ) >> 0 ] = p ; a [ ( r [ c >> 2 ] | 0 ) + ( ( r [ f >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] = ( ( o [ h >> 0 ] >> 5 & 7 ) << 16 >> 16 ) * 9 ; p = i [ ( r [ ( r [ u >> 2 ] | 0 ) + 16 >> 2 ] | 0 ) + ( ( r [ f >> 2 ] | 0 ) + ( W ( o [ h >> 0 ] >> 4 & 1 , ( a [ ( r [ u >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) - 1 | 0 ) | 0 ) + 1 ) >> 0 ] | 0 ; i [ ( r [ d >> 2 ] | 0 ) + ( ( r [ f >> 2 ] | 0 ) + 1 ) >> 0 ] = p ; r [ f >> 2 ] = ( r [ f >> 2 ] | 0 ) + 2 } m = l ; return } function si ( e , t , n , s , l ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; s = s | 0 ; l = l | 0 ; var c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 ; c = m ; m = m + 32 | 0 ; d = c + 24 | 0 ; u = c + 20 | 0 ; p = c + 16 | 0 ; f = c + 12 | 0 ; h = c + 28 | 0 ; g = c + 8 | 0 ; _ = c + 4 | 0 ; v = c ; r [ d >> 2 ] = e ; r [ u >> 2 ] = t ; r [ p >> 2 ] = n ; r [ f >> 2 ] = s ; a [ h >> 1 ] = l ; r [ _ >> 2 ] = 0 ; r [ g >> 2 ] = ( a [ h >> 1 ] | 0 ) - 1 ; while ( 1 ) { if ( ( r [ g >> 2 ] | 0 ) < 0 ) break ; r [ v >> 2 ] = ( W ( ( r [ _ >> 2 ] & 65535 ) << 16 >> 16 , o [ ( r [ p >> 2 ] | 0 ) + ( r [ g >> 2 ] | 0 ) >> 0 ] | 0 ) | 0 ) >> 8 ; r [ _ >> 2 ] = i [ ( r [ u >> 2 ] | 0 ) + ( r [ g >> 2 ] | 0 ) >> 0 ] << 10 ; h = r [ _ >> 2 ] | 0 ; if ( ( r [ _ >> 2 ] | 0 ) <= 0 ) { if ( ( h | 0 ) < 0 ) r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + 102 } else r [ _ >> 2 ] = h - 102 ; h = W ( r [ _ >> 2 ] >> 16 , ( r [ f >> 2 ] & 65535 ) << 16 >> 16 ) | 0 ; r [ _ >> 2 ] = ( r [ v >> 2 ] | 0 ) + ( h + ( ( W ( r [ _ >> 2 ] & 65535 , ( r [ f >> 2 ] & 65535 ) << 16 >> 16 ) | 0 ) >> 16 ) ) ; a [ ( r [ d >> 2 ] | 0 ) + ( r [ g >> 2 ] << 1 ) >> 1 ] = r [ _ >> 2 ] ; r [ g >> 2 ] = ( r [ g >> 2 ] | 0 ) + - 1 } m = c ; return } function li ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 ; i = m ; m = m + 32 | 0 ; o = i + 20 | 0 ; s = i + 16 | 0 ; l = i + 12 | 0 ; c = i + 8 | 0 ; d = i + 4 | 0 ; u = i ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; r [ d >> 2 ] = _i ( a [ r [ s >> 2 ] >> 1 ] | 0 , 1 ) | 0 ; r [ d >> 2 ] = 131072 / ( r [ d >> 2 ] | 0 ) | 0 ; r [ u >> 2 ] = _i ( ( a [ ( r [ s >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) - ( a [ r [ s >> 2 ] >> 1 ] | 0 ) | 0 , 1 ) | 0 ; r [ u >> 2 ] = 131072 / ( r [ u >> 2 ] | 0 ) | 0 ; n = ( vi ( ( r [ d >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , 32767 ) | 0 ) & 65535 ; a [ r [ o >> 2 ] >> 1 ] = n ; r [ c >> 2 ] = 1 ; while ( 1 ) { p = r [ s >> 2 ] | 0 ; if ( ( r [ c >> 2 ] | 0 ) >= ( ( r [ l >> 2 ] | 0 ) - 1 | 0 ) ) break ; r [ d >> 2 ] = _i ( ( a [ p + ( ( r [ c >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] | 0 ) - ( a [ ( r [ s >> 2 ] | 0 ) + ( r [ c >> 2 ] << 1 ) >> 1 ] | 0 ) | 0 , 1 ) | 0 ; r [ d >> 2 ] = 131072 / ( r [ d >> 2 ] | 0 ) | 0 ; n = ( vi ( ( r [ d >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , 32767 ) | 0 ) & 65535 ; a [ ( r [ o >> 2 ] | 0 ) + ( r [ c >> 2 ] << 1 ) >> 1 ] = n ; r [ u >> 2 ] = _i ( ( a [ ( r [ s >> 2 ] | 0 ) + ( ( r [ c >> 2 ] | 0 ) + 2 << 1 ) >> 1 ] | 0 ) - ( a [ ( r [ s >> 2 ] | 0 ) + ( ( r [ c >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] | 0 ) | 0 , 1 ) | 0 ; r [ u >> 2 ] = 131072 / ( r [ u >> 2 ] | 0 ) | 0 ; n = ( vi ( ( r [ d >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , 32767 ) | 0 ) & 65535 ; a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ c >> 2 ] | 0 ) + 1 << 1 ) >> 1 ] = n ; r [ c >> 2 ] = ( r [ c >> 2 ] | 0 ) + 2 } r [ d >> 2 ] = _i ( 32768 - ( a [ p + ( ( r [ l >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) | 0 , 1 ) | 0 ; r [ d >> 2 ] = 131072 / ( r [ d >> 2 ] | 0 ) | 0 ; p = ( vi ( ( r [ d >> 2 ] | 0 ) + ( r [ u >> 2 ] | 0 ) | 0 , 32767 ) | 0 ) & 65535 ; a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ l >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] = p ; m = i ; return } function ci ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 ; t = m ; m = m + 32 | 0 ; n = t + 16 | 0 ; i = t + 12 | 0 ; a = t + 8 | 0 ; o = t + 4 | 0 ; s = t ; r [ i >> 2 ] = e ; if ( ( r [ i >> 2 ] | 0 ) <= 0 ) { r [ n >> 2 ] = 0 ; l = r [ n >> 2 ] | 0 ; m = t ; return l | 0 } mi ( r [ i >> 2 ] | 0 , o , s ) ; if ( r [ o >> 2 ] & 1 | 0 ) r [ a >> 2 ] = 32768 ; else r [ a >> 2 ] = 46214 ; r [ a >> 2 ] = r [ a >> 2 ] >> ( r [ o >> 2 ] >> 1 ) ; o = W ( r [ a >> 2 ] >> 16 , ( ( ( r [ s >> 2 ] & 65535 ) << 16 >> 16 ) * 213 & 65535 ) << 16 >> 16 ) | 0 ; r [ a >> 2 ] = ( r [ a >> 2 ] | 0 ) + ( o + ( ( W ( r [ a >> 2 ] & 65535 , ( ( ( r [ s >> 2 ] & 65535 ) << 16 >> 16 ) * 213 & 65535 ) << 16 >> 16 ) | 0 ) >> 16 ) ) ; r [ n >> 2 ] = r [ a >> 2 ] ; l = r [ n >> 2 ] | 0 ; m = t ; return l | 0 } function di ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 ; i = m ; m = m + 48 | 0 ; o = i + 40 | 0 ; s = i + 36 | 0 ; l = i + 32 | 0 ; c = i + 28 | 0 ; d = i + 24 | 0 ; u = i + 20 | 0 ; p = i + 16 | 0 ; f = i + 44 | 0 ; h = i + 12 | 0 ; g = i + 8 | 0 ; _ = i + 4 | 0 ; v = i ; r [ o >> 2 ] = e ; r [ s >> 2 ] = t ; r [ l >> 2 ] = n ; r [ d >> 2 ] = 0 ; r [ p >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ p >> 2 ] | 0 ) >= 20 ) break ; r [ g >> 2 ] = ( a [ r [ o >> 2 ] >> 1 ] | 0 ) - ( a [ r [ s >> 2 ] >> 1 ] | 0 ) ; r [ d >> 2 ] = 0 ; r [ c >> 2 ] = 1 ; while ( 1 ) { y = r [ o >> 2 ] | 0 ; if ( ( r [ c >> 2 ] | 0 ) > ( ( r [ l >> 2 ] | 0 ) - 1 | 0 ) ) break ; r [ h >> 2 ] = ( a [ y + ( r [ c >> 2 ] << 1 ) >> 1 ] | 0 ) - ( ( a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ c >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) + ( a [ ( r [ s >> 2 ] | 0 ) + ( r [ c >> 2 ] << 1 ) >> 1 ] | 0 ) ) ; if ( ( r [ h >> 2 ] | 0 ) < ( r [ g >> 2 ] | 0 ) ) { r [ g >> 2 ] = r [ h >> 2 ] ; r [ d >> 2 ] = r [ c >> 2 ] } r [ c >> 2 ] = ( r [ c >> 2 ] | 0 ) + 1 } r [ h >> 2 ] = 32768 - ( ( a [ y + ( ( r [ l >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) + ( a [ ( r [ s >> 2 ] | 0 ) + ( r [ l >> 2 ] << 1 ) >> 1 ] | 0 ) ) ; if ( ( r [ h >> 2 ] | 0 ) < ( r [ g >> 2 ] | 0 ) ) { r [ g >> 2 ] = r [ h >> 2 ] ; r [ d >> 2 ] = r [ l >> 2 ] } if ( ( r [ g >> 2 ] | 0 ) >= 0 ) { b = 42 ; break } if ( ! ( r [ d >> 2 ] | 0 ) ) a [ r [ o >> 2 ] >> 1 ] = a [ r [ s >> 2 ] >> 1 ] | 0 ; else { if ( ( r [ d >> 2 ] | 0 ) == ( r [ l >> 2 ] | 0 ) ) { w = ( r [ o >> 2 ] | 0 ) + ( ( r [ l >> 2 ] | 0 ) - 1 << 1 ) | 0 ; k = 32768 - ( a [ ( r [ s >> 2 ] | 0 ) + ( r [ l >> 2 ] << 1 ) >> 1 ] | 0 ) & 65535 } else { r [ _ >> 2 ] = 0 ; r [ u >> 2 ] = 0 ; while ( 1 ) { M = r [ s >> 2 ] | 0 ; if ( ( r [ u >> 2 ] | 0 ) >= ( r [ d >> 2 ] | 0 ) ) break ; r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + ( a [ M + ( r [ u >> 2 ] << 1 ) >> 1 ] | 0 ) ; r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + 1 } r [ _ >> 2 ] = ( r [ _ >> 2 ] | 0 ) + ( a [ M + ( r [ d >> 2 ] << 1 ) >> 1 ] >> 1 ) ; r [ v >> 2 ] = 32768 ; r [ u >> 2 ] = r [ l >> 2 ] ; while ( 1 ) { S = r [ s >> 2 ] | 0 ; if ( ( r [ u >> 2 ] | 0 ) <= ( r [ d >> 2 ] | 0 ) ) break ; r [ v >> 2 ] = ( r [ v >> 2 ] | 0 ) - ( a [ S + ( r [ u >> 2 ] << 1 ) >> 1 ] | 0 ) ; r [ u >> 2 ] = ( r [ u >> 2 ] | 0 ) + - 1 } r [ v >> 2 ] = ( r [ v >> 2 ] | 0 ) - ( a [ S + ( r [ d >> 2 ] << 1 ) >> 1 ] >> 1 ) ; n = ( ( a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ d >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) + ( a [ ( r [ o >> 2 ] | 0 ) + ( r [ d >> 2 ] << 1 ) >> 1 ] | 0 ) >> 1 ) + ( ( a [ ( r [ o >> 2 ] | 0 ) + ( ( r [ d >> 2 ] | 0 ) - 1 << 1 ) >> 1 ] | 0 ) + ( a [ ( r [ o >> 2 ] | 0 ) + ( r [ d >> 2 ] << 1 ) >> 1 ] | 0 ) & 1 ) | 0 ; do if ( ( r [ _ >> 2 ] | 0 ) > ( r [ v >> 2 ] | 0 ) ) { if ( ( n | 0 ) > ( r [ _ >> 2 ] | 0 ) ) { A = r [ _ >> 2 ] | 0 ; break } if ( ( ( ( a [ ( r [ o >> 2 ] |
} m = s ; return } function Li ( e , t , n , i , o , s , l ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; o = o | 0 ; s = s | 0 ; l = l | 0 ; var c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 ; c = m ; m = m + 48 | 0 ; d = c + 44 | 0 ; u = c + 40 | 0 ; p = c + 36 | 0 ; f = c + 32 | 0 ; h = c + 28 | 0 ; g = c + 24 | 0 ; _ = c + 20 | 0 ; v = c + 16 | 0 ; y = c + 12 | 0 ; b = c + 8 | 0 ; w = c + 4 | 0 ; k = c ; r [ d >> 2 ] = e ; r [ u >> 2 ] = t ; r [ p >> 2 ] = n ; r [ f >> 2 ] = i ; r [ h >> 2 ] = o ; r [ g >> 2 ] = s ; r [ _ >> 2 ] = l ; switch ( r [ f >> 2 ] | 0 ) { case 18 : { r [ v >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ v >> 2 ] | 0 ) >= ( r [ g >> 2 ] | 0 ) ) break ; r [ b >> 2 ] = ( r [ u >> 2 ] | 0 ) + ( r [ v >> 2 ] >> 16 << 2 ) ; f = W ( ( r [ v >> 2 ] & 65535 ) >> 16 , ( r [ h >> 2 ] & 65535 ) << 16 >> 16 ) | 0 ; r [ w >> 2 ] = f + ( ( W ( r [ v >> 2 ] & 65535 , ( r [ h >> 2 ] & 65535 ) << 16 >> 16 ) | 0 ) >> 16 ) ; r [ k >> 2 ] = ( r [ p >> 2 ] | 0 ) + ( ( r [ w >> 2 ] | 0 ) * 9 << 1 ) ; f = W ( r [ r [ b >> 2 ] >> 2 ] >> 16 , a [ r [ k >> 2 ] >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = f + ( ( W ( r [ r [ b >> 2 ] >> 2 ] & 65535 , a [ r [ k >> 2 ] >> 1 ] | 0 ) | 0 ) >> 16 ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 4 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 4 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 8 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 8 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 12 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 12 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 16 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 8 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 16 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 8 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 20 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 10 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 20 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 10 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 24 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 12 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 24 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 12 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 28 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 14 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 28 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 14 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 32 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 16 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 32 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 16 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; r [ k >> 2 ] = ( r [ p >> 2 ] | 0 ) + ( ( ( r [ h >> 2 ] | 0 ) - 1 - ( r [ w >> 2 ] | 0 ) | 0 ) * 9 << 1 ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 68 >> 2 ] >> 16 , a [ r [ k >> 2 ] >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 68 >> 2 ] & 65535 , a [ r [ k >> 2 ] >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 64 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 64 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 60 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 60 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 56 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 56 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 52 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 8 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 52 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 8 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 48 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 10 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 48 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 10 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 44 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 12 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 44 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 12 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 40 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 14 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 40 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 14 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; f = W ( r [ ( r [ b >> 2 ] | 0 ) + 36 >> 2 ] >> 16 , a [ ( r [ k >> 2 ] | 0 ) + 16 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( f + ( ( W ( r [ ( r [ b >> 2 ] | 0 ) + 36 >> 2 ] & 65535 , a [ ( r [ k >> 2 ] | 0 ) + 16 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; if ( ( ( r [ y >> 2 ] >> 5 ) + 1 >> 1 | 0 ) <= 32767 ) if ( ( ( r [ y >> 2 ] >> 5 ) + 1 >> 1 | 0 ) < - 32768 ) M = - 32768 ; else M = ( r [ y >> 2 ] >> 5 ) + 1 >> 1 ; else M = 32767 ; f = r [ d >> 2 ] | 0 ; r [ d >> 2 ] = f + 2 ; a [ f >> 1 ] = M ; r [ v >> 2 ] = ( r [ v >> 2 ] | 0 ) + ( r [ _ >> 2 ] | 0 ) } S = r [ d >> 2 ] | 0 ; m = c ; return S | 0 } case 24 : { r [ v >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ v >> 2 ] | 0 ) >= ( r [ g >> 2 ] | 0 ) ) break ; r [ b >> 2 ] = ( r [ u >> 2 ] | 0 ) + ( r [ v >> 2 ] >> 16 << 2 ) ; M = W ( ( r [ r [ b >> 2 ] >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 92 >> 2 ] | 0 ) >> 16 , a [ r [ p >> 2 ] >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = M + ( ( W ( ( r [ r [ b >> 2 ] >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 92 >> 2 ] | 0 ) & 65535 , a [ r [ p >> 2 ] >> 1 ] | 0 ) | 0 ) >> 16 ) ; M = W ( ( r [ ( r [ b >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 88 >> 2 ] | 0 ) >> 16 , a [ ( r [ p >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( M + ( ( W ( ( r [ ( r [ b >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 88 >> 2 ] | 0 ) & 65535 , a [ ( r [ p >> 2 ] | 0 ) + 2 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; M = W ( ( r [ ( r [ b >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 84 >> 2 ] | 0 ) >> 16 , a [ ( r [ p >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] | 0 ) + ( M + ( ( W ( ( r [ ( r [ b >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 84 >> 2 ] | 0 ) & 65535 , a [ ( r [ p >> 2 ] | 0 ) + 4 >> 1 ] | 0 ) | 0 ) >> 16 ) ) ; M = W ( ( r [ ( r [ b >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) + ( r [ ( r [ b >> 2 ] | 0 ) + 80 >> 2 ] | 0 ) >> 16 , a [ ( r [ p >> 2 ] | 0 ) + 6 >> 1 ] | 0 ) | 0 ; r [ y >> 2 ] = ( r [ y >> 2 ] |
if ( ( r [ K >> 2 ] | 0 ) != 0 & ( r [ X >> 2 ] | 0 ) != 0 ? r [ ( r [ S >> 2 ] | 0 ) + 64 >> 2 ] | 0 : 0 ) break ; re = r [ x >> 2 ] | 0 ; r [ g >> 2 ] = 0 ; Jt ( re , 10010 , g ) | 0 ; Zt ( r [ x >> 2 ] | 0 , ge , 2 , r [ T >> 2 ] | 0 , r [ Z >> 2 ] | 0 , 0 , r [ ae >> 2 ] | 0 ) | 0 } } else { r [ he >> 2 ] = ( r [ te >> 2 ] | 0 ) < ( r [ E >> 2 ] | 0 ) ? r [ te >> 2 ] | 0 : r [ E >> 2 ] | 0 ; do if ( ( r [ q >> 2 ] | 0 ) != ( r [ ( r [ S >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) ) { if ( ( r [ ( r [ S >> 2 ] | 0 ) + 56 >> 2 ] | 0 ) <= 0 ) break ; if ( r [ ( r [ S >> 2 ] | 0 ) + 64 >> 2 ] | 0 ) break ; Jt ( r [ x >> 2 ] | 0 , 4028 , _ ) | 0 } while ( 0 ) ; r [ R >> 2 ] = Zt ( r [ x >> 2 ] | 0 , r [ $ >> 2 ] | 0 ? 0 : r [ A >> 2 ] | 0 , r [ C >> 2 ] | 0 , r [ T >> 2 ] | 0 , r [ he >> 2 ] | 0 , O , r [ ae >> 2 ] | 0 ) | 0 } while ( 0 ) ; t : do if ( ! ( ( r [ q >> 2 ] | 0 ) == 1002 | ( r [ ae >> 2 ] | 0 ) != 0 ) ) { r [ P >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ P >> 2 ] | 0 ) >= ( W ( r [ E >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ) ) break t ; c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] = + c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] + + ( a [ U + ( r [ P >> 2 ] << 1 ) >> 1 ] | 0 ) * 30517578125e-15 ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 } } while ( 0 ) ; U = r [ x >> 2 ] | 0 ; r [ h >> 2 ] = _e + ( ( ( _e - _e | 0 ) / 4 | 0 ) << 2 ) ; Jt ( U , 10015 , h ) | 0 ; r [ ne >> 2 ] = r [ ( r [ _e >> 2 ] | 0 ) + 60 >> 2 ] ; if ( ! ( ( r [ K >> 2 ] | 0 ) == 0 | ( r [ X >> 2 ] | 0 ) != 0 ) ) { Jt ( r [ x >> 2 ] | 0 , 4028 , f ) | 0 ; U = r [ x >> 2 ] | 0 ; r [ p >> 2 ] = 0 ; Jt ( U , 10010 , p ) | 0 ; Zt ( r [ x >> 2 ] | 0 , ( r [ A >> 2 ] | 0 ) + ( r [ C >> 2 ] | 0 ) | 0 , r [ Y >> 2 ] | 0 , Se , r [ Q >> 2 ] | 0 , 0 , 0 ) | 0 ; U = r [ x >> 2 ] | 0 ; r [ u >> 2 ] = ie + ( ( ( ie - ie | 0 ) / 4 | 0 ) << 2 ) ; Jt ( U , 4031 , u ) | 0 ; U = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , ( r [ E >> 2 ] | 0 ) - ( r [ Z >> 2 ] | 0 ) | 0 ) | 0 ) << 2 ) | 0 ; re = Se + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; Me = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , ( r [ E >> 2 ] | 0 ) - ( r [ Z >> 2 ] | 0 ) | 0 ) | 0 ) << 2 ) | 0 ; ea ( U , re , Me , r [ Z >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ ne >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) } if ( ( r [ K >> 2 ] | 0 ) != 0 & ( r [ X >> 2 ] | 0 ) != 0 ) { r [ J >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ J >> 2 ] | 0 ) >= ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) ) break ; r [ P >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ P >> 2 ] | 0 ) >= ( r [ Z >> 2 ] | 0 ) ) break ; Me = W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ P >> 2 ] | 0 ) | 0 ; re = W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ P >> 2 ] | 0 ) | 0 ; c [ ( r [ T >> 2 ] | 0 ) + ( re + ( r [ J >> 2 ] | 0 ) << 2 ) >> 2 ] = + c [ Se + ( Me + ( r [ J >> 2 ] | 0 ) << 2 ) >> 2 ] ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 } r [ J >> 2 ] = ( r [ J >> 2 ] | 0 ) + 1 } Me = Se + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; re = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; U = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; ea ( Me , re , U , r [ Z >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ ne >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) } do if ( r [ z >> 2 ] | 0 ) { if ( ( r [ j >> 2 ] | 0 ) < ( r [ Q >> 2 ] | 0 ) ) { ea ( r [ B >> 2 ] | 0 , r [ T >> 2 ] | 0 , r [ T >> 2 ] | 0 , r [ Z >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ ne >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) ; break } r [ P >> 2 ] = 0 ; while ( 1 ) { U = ( r [ P >> 2 ] | 0 ) < ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) ; xe = r [ B >> 2 ] | 0 ; if ( ! U ) break ; c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] = + c [ xe + ( r [ P >> 2 ] << 2 ) >> 2 ] ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 } U = xe + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; re = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; Me = ( r [ T >> 2 ] | 0 ) + ( ( W ( r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ Z >> 2 ] | 0 ) | 0 ) << 2 ) | 0 ; ea ( U , re , Me , r [ Z >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 , r [ ne >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 12 >> 2 ] | 0 ) } while ( 0 ) ; t : do if ( r [ ( r [ S >> 2 ] | 0 ) + 40 >> 2 ] | 0 ) { c [ ve >> 2 ] = + V ( + ( + ( r [ ( r [ S >> 2 ] | 0 ) + 40 >> 2 ] | 0 ) * . 0006488140788860619 * . 6931471805599453 ) ) ; r [ P >> 2 ] = 0 ; while ( 1 ) { if ( ( r [ P >> 2 ] | 0 ) >= ( W ( r [ E >> 2 ] | 0 , r [ ( r [ S >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) | 0 ) ) break t ; c [ ye >> 2 ] = + c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] * + c [ ve >> 2 ] ; c [ ( r [ T >> 2 ] | 0 ) + ( r [ P >> 2 ] << 2 ) >> 2 ] = + c [ ye >> 2 ] ; r [ P >> 2 ] = ( r [ P >> 2 ] | 0 ) + 1 } } while ( 0 ) ; if ( ( r [ C >> 2 ] | 0 ) <= 1 ) { Pe = r [ S >> 2 ] | 0 ; De = 0 } else { Pe = r [ S >> 2 ] | 0 ; De = r [ O + 28 >> 2 ] ^ r [ ie >> 2 ] } r [ Pe + 80 >> 2 ] = De ; r [ ( r [ S >> 2 ] | 0 ) + 56 >> 2 ] = r [ q >> 2 ] ; if ( r [ K >> 2 ] | 0 ) Re = ( r [ X >> 2 ] | 0 ) != 0 ^ 1 ; else Re = 0 ; r [ ( r [ S >> 2 ] | 0 ) + 64 >> 2 ] = Re & 1 ; if ( ( r [ R >> 2 ] | 0 ) >= 0 ) Yi ( ) | 0 ; r [ M >> 2 ] = ( r [ R >> 2 ] | 0 ) < 0 ? r [ R >> 2 ] | 0 : r [ j >> 2 ] | 0 ; r [ le >> 2 ] = 1 } while ( 0 ) ; ce ( r [ se >> 2 ] | 0 ) ; be = r [ M >> 2 ] | 0 ; m = d ; return be | 0 } function Yi ( ) { return 0 } function Xi ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 ; t = m ; m = m + 16 | 0 ; n = t + 4 | 0 ; i = t ; r [ n >> 2 ] = e ; do if ( ! ( ( o [ r [ n >> 2 ] >> 0 ] | 0 ) & 128 | 0 ) ) if ( ( ( o [ r [ n >> 2 ] >> 0 ] | 0 ) & 96 | 0 ) == 96 ) { r [ i >> 2 ] = 1001 ; break } else { r [ i >> 2 ] = 1e3 ; break } else r [ i >> 2 ] = 1002 ; while ( 0 ) ; m = t ; return r [ i >> 2 ] | 0 } function Ji ( e ) { e = e | 0 ; var t = 0 , n = 0 , i = 0 , a = 0 , s = 0 ; t = m ; m = m + 16 | 0 ; n = t + 4 | 0 ; i = t ; r [ n >> 2 ] = e ; e = o [ r [ n >> 2 ] >> 0 ] | 0 ; if ( ( o [ r [ n >> 2 ] >> 0 ] | 0 ) & 128 | 0 ) { a = 1102 + ( e >> 5 & 3 ) | 0 ; r [ i >> 2 ] = a ; r [ i >> 2 ] = ( r [ i >> 2 ] | 0 ) == 1102 ? 1101 : a ; s = r [ i >> 2 ] | 0 ; m = t ; return s | 0 } a = o [ r [ n >> 2 ] >> 0 ] | 0 ; if ( ( e & 96 | 0 ) == 96 ) { r [ i >> 2 ] = a & 16 | 0 ? 1105 : 1104 ; s = r [ i >> 2 ] | 0 ; m = t ; return s | 0 } else { r [ i >> 2 ] = 1101 + ( a >> 5 & 3 ) ; s = r [ i >> 2 ] | 0 ; m = t ; return s | 0 } return 0 } function Zi ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; m = t ; return ( ( o [ r [ n >> 2 ] >> 0 ] | 0 ) & 4 | 0 ? 2 : 1 ) | 0 } function Qi ( e ) { e = e | 0 ; var t = 0 , n = 0 ; t = m ; m = m + 16 | 0 ; n = t ; r [ n >> 2 ] = e ; e = ( r [ ( r [ n >> 2 ] | 0 ) + 20 >> 2 ] | 0 ) - ( 32 - ( Y ( r [ ( r [ n >> 2 ] | 0 ) + 28 >> 2 ] | 0 ) | 0 ) ) | 0 ; m = t ; return e | 0 } function ea ( e , t , n , i , a , o , s ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; s = s | 0 ; var l = 0 , d = 0 , u = 0 , p = 0 , f =
r [ de >> 2 ] = ue + re ; oe = le + 8 | 0 ; ne = ( oe & 7 | 0 ) == 0 ? 0 : 0 - oe & 7 ; oe = le + ne | 0 ; ee = ( r [ 6331 ] | 0 ) + ( re - ne ) | 0 ; r [ 6334 ] = oe ; r [ 6331 ] = ee ; r [ oe + 4 >> 2 ] = ee | 1 ; r [ oe + ee + 4 >> 2 ] = 40 ; r [ 6335 ] = r [ 6450 ] ; break } ee = r [ 6332 ] | 0 ; if ( ie >>> 0 < ee >>> 0 ) { r [ 6332 ] = ie ; pe = ie } else pe = ee ; ee = ie + re | 0 ; oe = 25760 ; while ( 1 ) { if ( ( r [ oe >> 2 ] | 0 ) == ( ee | 0 ) ) { N = 198 ; break } ne = r [ oe + 8 >> 2 ] | 0 ; if ( ! ne ) break ; else oe = ne } if ( ( N | 0 ) == 198 ? ( r [ oe + 12 >> 2 ] & 8 | 0 ) == 0 : 0 ) { r [ oe >> 2 ] = ie ; se = oe + 4 | 0 ; r [ se >> 2 ] = ( r [ se >> 2 ] | 0 ) + re ; se = ie + 8 | 0 ; ne = ie + ( ( se & 7 | 0 ) == 0 ? 0 : 0 - se & 7 ) | 0 ; se = ee + 8 | 0 ; n = ee + ( ( se & 7 | 0 ) == 0 ? 0 : 0 - se & 7 ) | 0 ; se = ne + x | 0 ; z = n - ne - x | 0 ; r [ ne + 4 >> 2 ] = x | 3 ; do if ( ( n | 0 ) != ( le | 0 ) ) { if ( ( n | 0 ) == ( r [ 6333 ] | 0 ) ) { te = ( r [ 6330 ] | 0 ) + z | 0 ; r [ 6330 ] = te ; r [ 6333 ] = se ; r [ se + 4 >> 2 ] = te | 1 ; r [ se + te >> 2 ] = te ; break } te = r [ n + 4 >> 2 ] | 0 ; if ( ( te & 3 | 0 ) == 1 ) { Z = te & - 8 ; Q = te >>> 3 ; e : do if ( te >>> 0 >= 256 ) { q = r [ n + 24 >> 2 ] | 0 ; Y = r [ n + 12 >> 2 ] | 0 ; do if ( ( Y | 0 ) == ( n | 0 ) ) { W = n + 16 | 0 ; J = W + 4 | 0 ; _ = r [ J >> 2 ] | 0 ; if ( ! _ ) { y = r [ W >> 2 ] | 0 ; if ( ! y ) { fe = 0 ; break } else { me = y ; he = W } } else { me = _ ; he = J } while ( 1 ) { J = me + 20 | 0 ; _ = r [ J >> 2 ] | 0 ; if ( _ | 0 ) { me = _ ; he = J ; continue } J = me + 16 | 0 ; _ = r [ J >> 2 ] | 0 ; if ( ! _ ) break ; else { me = _ ; he = J } } if ( he >>> 0 < pe >>> 0 ) ae ( ) ; else { r [ he >> 2 ] = 0 ; fe = me ; break } } else { J = r [ n + 8 >> 2 ] | 0 ; if ( J >>> 0 < pe >>> 0 ) ae ( ) ; _ = J + 12 | 0 ; if ( ( r [ _ >> 2 ] | 0 ) != ( n | 0 ) ) ae ( ) ; W = Y + 8 | 0 ; if ( ( r [ W >> 2 ] | 0 ) == ( n | 0 ) ) { r [ _ >> 2 ] = Y ; r [ W >> 2 ] = J ; fe = Y ; break } else ae ( ) } while ( 0 ) ; if ( ! q ) break ; Y = r [ n + 28 >> 2 ] | 0 ; J = 25616 + ( Y << 2 ) | 0 ; do if ( ( n | 0 ) != ( r [ J >> 2 ] | 0 ) ) if ( q >>> 0 >= ( r [ 6332 ] | 0 ) >>> 0 ) { r [ q + 16 + ( ( ( r [ q + 16 >> 2 ] | 0 ) != ( n | 0 ) & 1 ) << 2 ) >> 2 ] = fe ; if ( ! fe ) break e ; else break } else ae ( ) ; else { r [ J >> 2 ] = fe ; if ( fe | 0 ) break ; r [ 6329 ] = r [ 6329 ] & ~ ( 1 << Y ) ; break e } while ( 0 ) ; Y = r [ 6332 ] | 0 ; if ( fe >>> 0 < Y >>> 0 ) ae ( ) ; r [ fe + 24 >> 2 ] = q ; J = n + 16 | 0 ; W = r [ J >> 2 ] | 0 ; do if ( W | 0 ) if ( W >>> 0 < Y >>> 0 ) ae ( ) ; else { r [ fe + 16 >> 2 ] = W ; r [ W + 24 >> 2 ] = fe ; break } while ( 0 ) ; W = r [ J + 4 >> 2 ] | 0 ; if ( ! W ) break ; if ( W >>> 0 < ( r [ 6332 ] | 0 ) >>> 0 ) ae ( ) ; else { r [ fe + 20 >> 2 ] = W ; r [ W + 24 >> 2 ] = fe ; break } } else { W = r [ n + 8 >> 2 ] | 0 ; Y = r [ n + 12 >> 2 ] | 0 ; q = 25352 + ( Q << 1 << 2 ) | 0 ; do if ( ( W | 0 ) != ( q | 0 ) ) { if ( W >>> 0 < pe >>> 0 ) ae ( ) ; if ( ( r [ W + 12 >> 2 ] | 0 ) == ( n | 0 ) ) break ; ae ( ) } while ( 0 ) ; if ( ( Y | 0 ) == ( W | 0 ) ) { r [ 6328 ] = r [ 6328 ] & ~ ( 1 << Q ) ; break } do if ( ( Y | 0 ) == ( q | 0 ) ) ge = Y + 8 | 0 ; else { if ( Y >>> 0 < pe >>> 0 ) ae ( ) ; J = Y + 8 | 0 ; if ( ( r [ J >> 2 ] | 0 ) == ( n | 0 ) ) { ge = J ; break } ae ( ) } while ( 0 ) ; r [ W + 12 >> 2 ] = Y ; r [ ge >> 2 ] = W } while ( 0 ) ; _e = n + Z | 0 ; ve = Z + z | 0 } else { _e = n ; ve = z } Q = _e + 4 | 0 ; r [ Q >> 2 ] = r [ Q >> 2 ] & - 2 ; r [ se + 4 >> 2 ] = ve | 1 ; r [ se + ve >> 2 ] = ve ; Q = ve >>> 3 ; if ( ve >>> 0 < 256 ) { te = 25352 + ( Q << 1 << 2 ) | 0 ; X = r [ 6328 ] | 0 ; q = 1 << Q ; do if ( ! ( X & q ) ) { r [ 6328 ] = X | q ; ye = te + 8 | 0 ; be = te } else { Q = te + 8 | 0 ; J = r [ Q >> 2 ] | 0 ; if ( J >>> 0 >= ( r [ 6332 ] | 0 ) >>> 0 ) { ye = Q ; be = J ; break } ae ( ) } while ( 0 ) ; r [ ye >> 2 ] = se ; r [ be + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = be ; r [ se + 12 >> 2 ] = te ; break } q = ve >>> 8 ; do if ( ! q ) we = 0 ; else { if ( ve >>> 0 > 16777215 ) { we = 31 ; break } X = ( q + 1048320 | 0 ) >>> 16 & 8 ; Z = q << X ; J = ( Z + 520192 | 0 ) >>> 16 & 4 ; Q = Z << J ; Z = ( Q + 245760 | 0 ) >>> 16 & 2 ; _ = 14 - ( J | X | Z ) + ( Q << Z >>> 15 ) | 0 ; we = ve >>> ( _ + 7 | 0 ) & 1 | _ << 1 } while ( 0 ) ; q = 25616 + ( we << 2 ) | 0 ; r [ se + 28 >> 2 ] = we ; te = se + 16 | 0 ; r [ te + 4 >> 2 ] = 0 ; r [ te >> 2 ] = 0 ; te = r [ 6329 ] | 0 ; _ = 1 << we ; if ( ! ( te & _ ) ) { r [ 6329 ] = te | _ ; r [ q >> 2 ] = se ; r [ se + 24 >> 2 ] = q ; r [ se + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = se ; break } _ = ve << ( ( we | 0 ) == 31 ? 0 : 25 - ( we >>> 1 ) | 0 ) ; te = r [ q >> 2 ] | 0 ; while ( 1 ) { if ( ( r [ te + 4 >> 2 ] & - 8 | 0 ) == ( ve | 0 ) ) { N = 265 ; break } ke = te + 16 + ( _ >>> 31 << 2 ) | 0 ; q = r [ ke >> 2 ] | 0 ; if ( ! q ) { N = 262 ; break } else { _ = _ << 1 ; te = q } } if ( ( N | 0 ) == 262 ) if ( ke >>> 0 < ( r [ 6332 ] | 0 ) >>> 0 ) ae ( ) ; else { r [ ke >> 2 ] = se ; r [ se + 24 >> 2 ] = te ; r [ se + 12 >> 2 ] = se ; r [ se + 8 >> 2 ] = se ; break } else if ( ( N | 0 ) == 265 ) { _ = te + 8 | 0 ; q = r [ _ >> 2 ] | 0 ; Z = r [ 6332 ] | 0 ; if ( q >>> 0 >= Z >>> 0 & te >>> 0 >= Z >>> 0 ) { r [ q + 12 >> 2 ] = se ; r [ _ >> 2 ] = se ; r [ se + 8 >> 2 ] = q ; r [ se + 12 >> 2 ] = te ; r [ se + 24 >> 2 ] = 0 ; break } else ae ( ) } } else { q = ( r [ 6331 ] | 0 ) + z | 0 ; r [ 6331 ] = q ; r [ 6334 ] = se ; r [ se + 4 >> 2 ] = q | 1 } while ( 0 ) ; g = ne + 8 | 0 ; m = t ; return g | 0 } se = 25760 ; while ( 1 ) { z = r [ se >> 2 ] | 0 ; if ( z >>> 0 <= le >>> 0 ? ( Me = z + ( r [ se + 4 >> 2 ] | 0 ) | 0 , Me >>> 0 > le >>> 0 ) : 0 ) break ; se = r [ se + 8 >> 2 ] | 0 } se = Me + - 47 | 0 ; ne = se + 8 | 0 ; z = se + ( ( ne & 7 | 0 ) == 0 ? 0 : 0 - ne & 7 ) | 0 ; ne = le + 16 | 0 ; se = z >>> 0 < ne >>> 0 ? le : z ; z = se + 8 | 0 ; n = ie + 8 | 0 ; ee = ( n & 7 | 0 ) == 0 ? 0 : 0 - n & 7 ; n = ie + ee | 0 ; oe = re + - 40 - ee | 0 ; r [ 6334 ] = n ; r [ 6331 ] = oe ; r [ n + 4 >> 2 ] = oe | 1 ; r [ n + oe + 4 >> 2 ] = 40 ; r [ 6335 ] = r [ 6450 ] ; oe = se + 4 | 0 ; r [ oe >> 2 ] = 27 ; r [ z >> 2 ] = r [ 6440 ] ; r [ z + 4 >> 2 ] = r [ 6441 ] ; r [ z + 8 >> 2 ] = r [ 6442 ] ; r [ z + 12 >> 2 ] = r [ 6443 ] ; r [ 6440 ] = ie ; r [ 6441 ] = re ; r [ 6443 ] = 0 ; r [ 6442 ] = z ; z = se + 24 | 0 ; do { n = z ; z = z + 4 | 0 ; r [ z >> 2 ] = 7 } while ( ( n + 8 | 0 ) >>> 0 < Me >>> 0 ) ; if ( ( se | 0 ) != ( le | 0 ) ) { z = se - le | 0 ; r [ oe >> 2 ] = r [ oe >> 2 ] & - 2 ; r [ le + 4 >> 2 ] = z | 1 ; r [ se >> 2 ] = z ; n = z >>> 3 ; if ( z >>> 0 < 256 ) { ee = 25352 + ( n << 1 << 2 ) | 0 ; q = r [ 6328 ] | 0 ; _ = 1 << n ; if ( q & _ ) { n = ee + 8 | 0 ; Z = r [ n >> 2 ] | 0 ; if ( Z >>> 0 < ( r [ 6332 ] | 0 ) >>> 0 ) ae ( ) ; else { Se = n ; Ae = Z } } else { r [ 6328 ] = q | _ ; Se = ee + 8 | 0 ; Ae = ee } r [ Se >> 2 ] = le ; r [ Ae + 12 >> 2 ] = le ; r [ le + 8 >> 2 ] = Ae ; r [ le + 12 >> 2 ] = ee ; break }
return t . open ( "GET" , e , ! 1 ) , t . responseType = "arraybuffer" , t . send ( null ) , t . response } ) , Module . readAsync = function ( e , t , n ) { var i = new XMLHttpRequest ; i . open ( "GET" , e , ! 0 ) , i . responseType = "arraybuffer" , i . onload = function ( ) { 200 == i . status || 0 == i . status && i . response ? t ( i . response ) : n ( ) } , i . onerror = n , i . send ( null ) } , "undefined" != typeof arguments && ( Module . arguments = arguments ) , "undefined" != typeof console ) Module . print || ( Module . print = function ( e ) { console . log ( e ) } ) , Module . printErr || ( Module . printErr = function ( e ) { console . warn ( e ) } ) ; else { var TRY _USE _DUMP = ! 1 ; Module . print || ( Module . print = TRY _USE _DUMP && "undefined" != typeof dump ? function ( e ) { dump ( e ) } : function ( e ) { } ) } ENVIRONMENT _IS _WORKER && ( Module . load = importScripts ) , "undefined" == typeof Module . setWindowTitle && ( Module . setWindowTitle = function ( e ) { document . title = e } ) } ! Module . load && Module . read && ( Module . load = function ( e ) { globalEval ( Module . read ( e ) ) } ) , Module . print || ( Module . print = function ( ) { } ) , Module . printErr || ( Module . printErr = Module . print ) , Module . arguments || ( Module . arguments = [ ] ) , Module . thisProgram || ( Module . thisProgram = "./this.program" ) , Module . quit || ( Module . quit = function ( e , t ) { throw t } ) , Module . print = Module . print , Module . printErr = Module . printErr , Module . preRun = [ ] , Module . postRun = [ ] ; for ( var key in moduleOverrides ) moduleOverrides . hasOwnProperty ( key ) && ( Module [ key ] = moduleOverrides [ key ] ) ; moduleOverrides = void 0 ; var Runtime = { setTempRet0 : function ( e ) { return tempRet0 = e , e } , getTempRet0 : function ( ) { return tempRet0 } , stackSave : function ( ) { return STACKTOP } , stackRestore : function ( e ) { STACKTOP = e } , getNativeTypeSize : function ( e ) { switch ( e ) { case "i1" : case "i8" : return 1 ; case "i16" : return 2 ; case "i32" : return 4 ; case "i64" : return 8 ; case "float" : return 4 ; case "double" : return 8 ; default : if ( "*" === e [ e . length - 1 ] ) return Runtime . QUANTUM _SIZE ; if ( "i" === e [ 0 ] ) { var t = parseInt ( e . substr ( 1 ) ) ; return assert ( t % 8 === 0 ) , t / 8 } return 0 } } , getNativeFieldSize : function ( e ) { return Math . max ( Runtime . getNativeTypeSize ( e ) , Runtime . QUANTUM _SIZE ) } , STACK _ALIGN : 16 , prepVararg : function ( e , t ) { return "double" === t || "i64" === t ? 7 & e && ( assert ( 4 === ( 7 & e ) ) , e += 4 ) : assert ( 0 === ( 3 & e ) ) , e } , getAlignSize : function ( e , t , n ) { return n || "i64" != e && "double" != e ? e ? Math . min ( t || ( e ? Runtime . getNativeFieldSize ( e ) : 0 ) , Runtime . QUANTUM _SIZE ) : Math . min ( t , 8 ) : 8 } , dynCall : function ( e , t , n ) { return n && n . length ? Module [ "dynCall_" + e ] . apply ( null , [ t ] . concat ( n ) ) : Module [ "dynCall_" + e ] . call ( null , t ) } , functionPointers : [ ] , addFunction : function ( e ) { for ( var t = 0 ; t < Runtime . functionPointers . length ; t ++ ) if ( ! Runtime . functionPointers [ t ] ) return Runtime . functionPointers [ t ] = e , 2 * ( 1 + t ) ; throw "Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS." } , removeFunction : function ( e ) { Runtime . functionPointers [ ( e - 2 ) / 2 ] = null } , warnOnce : function ( e ) { Runtime . warnOnce . shown || ( Runtime . warnOnce . shown = { } ) , Runtime . warnOnce . shown [ e ] || ( Runtime . warnOnce . shown [ e ] = 1 , Module . printErr ( e ) ) } , funcWrappers : { } , getFuncWrapper : function ( e , t ) { assert ( t ) , Runtime . funcWrappers [ t ] || ( Runtime . funcWrappers [ t ] = { } ) ; var n = Runtime . funcWrappers [ t ] ; return n [ e ] || ( 1 === t . length ? n [ e ] = function ( ) { return Runtime . dynCall ( t , e ) } : 2 === t . length ? n [ e ] = function ( n ) { return Runtime . dynCall ( t , e , [ n ] ) } : n [ e ] = function ( ) { return Runtime . dynCall ( t , e , Array . prototype . slice . call ( arguments ) ) } ) , n [ e ] } , getCompilerSetting : function ( e ) { throw "You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work" } , stackAlloc : function ( e ) { var t = STACKTOP ; return STACKTOP = STACKTOP + e | 0 , STACKTOP = STACKTOP + 15 & - 16 , t } , staticAlloc : function ( e ) { var t = STATICTOP ; return STATICTOP = STATICTOP + e | 0 , STATICTOP = STATICTOP + 15 & - 16 , t } , dynamicAlloc : function ( e ) { var t = HEAP32 [ DYNAMICTOP _PTR >> 2 ] , n = ( t + e + 15 | 0 ) & - 16 ; if ( HEAP32 [ DYNAMICTOP _PTR >> 2 ] = n , n >= TOTAL _MEMORY ) { var i = enlargeMemory ( ) ; if ( ! i ) return HEAP32 [ DYNAMICTOP _PTR >> 2 ] = t , 0 } return t } , alignMemory : function ( e , t ) { var n = e = Math . ceil ( e / ( t ? t : 16 ) ) * ( t ? t : 16 ) ; return n } , makeBigInt : function ( e , t , n ) { var i = n ? + ( e >>> 0 ) + 4294967296 * + ( t >>> 0 ) : + ( e >>> 0 ) + 4294967296 * + ( 0 | t ) ; return i } , GLOBAL _BASE : 8 , QUANTUM _SIZE : 4 , _ _dummy _ _ : 0 } ; Module . Runtime = Runtime ; var ABORT = 0 , EXITSTATUS = 0 , cwrap , ccall ; ! function ( ) { function parseJSFunc ( e ) { var t = e . toString ( ) . match ( sourceRegex ) . slice ( 1 ) ; return { arguments : t [ 0 ] , body : t [ 1 ] , re
allocate ( [ 12 , 72 , 201 , 60 , 205 , 188 , 203 , 60 , 77 , 53 , 206 , 60 , 140 , 177 , 208 , 60 , 137 , 49 , 211 , 60 , 69 , 181 , 213 , 60 , 189 , 60 , 216 , 60 , 243 , 199 , 218 , 60 , 230 , 86 , 221 , 60 , 149 , 233 , 223 , 60 , 0 , 128 , 226 , 60 , 39 , 26 , 229 , 60 , 8 , 184 , 231 , 60 , 164 , 89 , 234 , 60 , 250 , 254 , 236 , 60 , 9 , 168 , 239 , 60 , 210 , 84 , 242 , 60 , 83 , 5 , 245 , 60 , 141 , 185 , 247 , 60 , 126 , 113 , 250 , 60 , 39 , 45 , 253 , 60 , 134 , 236 , 255 , 60 , 206 , 87 , 1 , 61 , 52 , 187 , 2 , 61 , 117 , 32 , 4 , 61 , 144 , 135 , 5 , 61 , 133 , 240 , 6 , 61 , 84 , 91 , 8 , 61 , 253 , 199 , 9 , 61 , 128 , 54 , 11 , 61 , 219 , 166 , 12 , 61 , 16 , 25 , 14 , 61 , 29 , 141 , 15 , 61 , 3 , 3 , 17 , 61 , 193 , 122 , 18 , 61 , 87 , 244 , 19 , 61 , 197 , 111 , 21 , 61 , 10 , 237 , 22 , 61 , 39 , 108 , 24 , 61 , 26 , 237 , 25 , 61 , 228 , 111 , 27 , 61 , 132 , 244 , 28 , 61 , 251 , 122 , 30 , 61 , 71 , 3 , 32 , 61 , 105 , 141 , 33 , 61 , 96 , 25 , 35 , 61 , 45 , 167 , 36 , 61 , 206 , 54 , 38 , 61 , 67 , 200 , 39 , 61 , 141 , 91 , 41 , 61 , 171 , 240 , 42 , 61 , 156 , 135 , 44 , 61 , 96 , 32 , 46 , 61 , 248 , 186 , 47 , 61 , 99 , 87 , 49 , 61 , 160 , 245 , 50 , 61 , 175 , 149 , 52 , 61 , 144 , 55 , 54 , 61 , 67 , 219 , 55 , 61 , 199 , 128 , 57 , 61 , 28 , 40 , 59 , 61 , 65 , 209 , 60 , 61 , 56 , 124 , 62 , 61 , 254 , 40 , 64 , 61 , 148 , 215 , 65 , 61 , 250 , 135 , 67 , 61 , 47 , 58 , 69 , 61 , 51 , 238 , 70 , 61 , 5 , 164 , 72 , 61 , 166 , 91 , 74 , 61 , 20 , 21 , 76 , 61 , 80 , 208 , 77 , 61 , 90 , 141 , 79 , 61 , 49 , 76 , 81 , 61 , 212 , 12 , 83 , 61 , 68 , 207 , 84 , 61 , 128 , 147 , 86 , 61 , 135 , 89 , 88 , 61 , 90 , 33 , 90 , 61 , 248 , 234 , 91 , 61 , 97 , 182 , 93 , 61 , 148 , 131 , 95 , 61 , 145 , 82 , 97 , 61 , 88 , 35 , 99 , 61 , 232 , 245 , 100 , 61 , 65 , 202 , 102 , 61 , 100 , 160 , 104 , 61 , 78 , 120 , 106 , 61 , 1 , 82 , 108 , 61 , 123 , 45 , 110 , 61 , 188 , 10 , 112 , 61 , 197 , 233 , 113 , 61 , 148 , 202 , 115 , 61 , 41 , 173 , 117 , 61 , 133 , 145 , 119 , 61 , 166 , 119 , 121 , 61 , 140 , 95 , 123 , 61 , 55 , 73 , 125 , 61 , 166 , 52 , 127 , 61 , 237 , 144 , 128 , 61 , 105 , 136 , 129 , 61 , 198 , 128 , 130 , 61 , 5 , 122 , 131 , 61 , 37 , 116 , 132 , 61 , 39 , 111 , 133 , 61 , 9 , 107 , 134 , 61 , 204 , 103 , 135 , 61 , 112 , 101 , 136 , 61 , 244 , 99 , 137 , 61 , 88 , 99 , 138 , 61 , 157 , 99 , 139 , 61 , 193 , 100 , 140 , 61 , 196 , 102 , 141 , 61 , 167 , 105 , 142 , 61 , 106 , 109 , 143 , 61 , 11 , 114 , 144 , 61 , 139 , 119 , 145 , 61 , 234 , 125 , 146 , 61 , 40 , 133 , 147 , 61 , 67 , 141 , 148 , 61 , 61 , 150 , 149 , 61 , 20 , 160 , 150 , 61 , 201 , 170 , 151 , 61 , 92 , 182 , 152 , 61 , 203 , 194 , 153 , 61 , 24 , 208 , 154 , 61 , 66 , 222 , 155 , 61 , 72 , 237 , 156 , 61 , 42 , 253 , 157 , 61 , 233 , 13 , 159 , 61 , 132 , 31 , 160 , 61 , 250 , 49 , 161 , 61 , 76 , 69 , 162 , 61 , 122 , 89 , 163 , 61 , 130 , 110 , 164 , 61 , 101 , 132 , 165 , 61 , 35 , 155 , 166 , 61 , 188 , 178 , 167 , 61 , 47 , 203 , 168 , 61 , 124 , 228 , 169 , 61 , 162 , 254 , 170 , 61 , 163 , 25 , 172 , 61 , 124 , 53 , 173 , 61 , 47 , 82 , 174 , 61 , 187 , 111 , 175 , 61 , 31 , 142 , 176 , 61 , 92 , 173 , 177 , 61 , 113 , 205 , 178 , 61 , 94 , 238 , 179 , 61 , 35 , 16 , 181 , 61 , 192 , 50 , 182 , 61 , 52 , 86 , 183 , 61 , 127 , 122 , 184 , 61 , 160 , 159 , 185 , 61 , 153 , 197 , 186 , 61 , 104 , 236 , 187 , 61 , 13 , 20 , 189 , 61 , 136 , 60 , 190 , 61 , 217 , 101 , 191 , 61 , 255 , 143 , 192 , 61 , 250 , 186 , 193 , 61 , 202 , 230 , 194 , 61 , 111 , 19 , 196 , 61 , 233 , 64 , 197 , 61 , 55 , 111 , 198 , 61 , 89 , 158 , 199 , 61 , 78 , 206 , 200 , 61 , 23 , 255 , 201 , 61 , 179 , 48 , 203 , 61 , 35 , 99 , 204 , 61 , 101 , 150 , 205 , 61 , 121 , 202 , 206 , 61 , 96 , 255 , 207 , 61 , 25 , 53 , 209 , 61 , 164 , 107 , 210 , 61 , 0 , 163 , 211 , 61 , 45 , 219 , 212 , 61 , 44 , 20 , 214 , 61 , 251 , 77 , 215 , 61 , 154 , 136 , 216 , 61 , 10 , 196 , 217 , 61 , 74 , 0 , 219 , 61 , 89 , 61 , 220 , 61 , 56 , 123 , 221 , 61 , 230 , 185 , 222 , 61 , 99 , 249 , 223 , 61 , 174 , 57 , 225 , 61 , 200 , 122 , 226 , 61 , 176 , 188 , 227 , 61 , 102 , 255 , 228 , 61 , 233 , 66 , 230 , 61 , 58 , 135 , 231 , 61 , 88 , 204 , 232 , 61 , 66 , 18 , 234 , 61 , 249 , 88 , 235 , 61 , 124 , 160 , 236 , 61 , 203 , 232 , 237 , 61 , 230 , 49 , 239 , 61 , 204 , 123 , 240 , 61 , 125 , 198 , 241 , 61 , 249 , 17 , 243 , 61 , 63 , 94 , 244 , 61 , 79 , 171 , 245 , 61 , 42 , 249 , 246 , 61 , 206 , 71 , 248 , 61 , 60 , 151 , 249 , 61 , 114 , 231 , 250 , 61 , 114 , 56 , 252 , 61 , 58 , 138 , 253 , 61 , 202 , 220 , 254 , 61 , 17 , 24 , 0 , 62 , 33 , 194 , 0 , 62 , 149 , 108 , 1 , 62 , 108 , 23 , 2 , 62 , 166 , 194 , 2 , 62 , 68 , 110 , 3 , 62 , 69 , 26 , 4 , 62 , 168 , 198 , 4 , 62 , 111 , 115 , 5 , 62 , 152 , 32 , 6 , 62 , 35 , 206 , 6 , 62 , 17 , 124 , 7 , 62 , 98 , 42 , 8 , 62 , 20 , 217 , 8 , 62 , 40 , 136 , 9 , 62 , 157 , 55 , 10 , 62 , 117 , 231 , 10 , 62 , 173 , 151 , 11 , 62 , 71 , 72 , 12 , 62 , 66 , 249 , 12 , 62 , 158 , 170 , 13 , 62 , 91 , 92 , 14 , 62 , 120 , 14 , 15 , 62 , 246 , 192 , 15 , 62 , 213 , 115 , 16 , 62 , 19 , 39 , 17 , 62 , 177 , 218 , 17 , 62 , 175 , 142 , 18 , 62 , 13 , 67 , 19 , 62 , 202 , 247 , 19 , 62 , 231 , 172 , 20 , 62 , 99 , 98 , 21 , 62 , 62 , 24 , 22 , 62 , 120 , 206 , 22 , 62 , 16 , 133 , 23 , 62 , 7 , 60 , 24 , 62 , 92 , 243 , 24 , 62 , 16 , 171 , 25 , 62 , 33 , 99 , 26 , 62 , 145 , 27 , 27 , 62 , 94 , 212 , 27 , 62 , 137 , 141 , 28 , 62 , 17 , 71 , 29 , 62 , 246 , 0 , 30 , 62 , 56 , 187 , 30 , 62 , 215 , 117 , 31 , 62 , 211 , 48 , 32 , 62 , 43 , 236 , 32 , 62 , 224 , 167 , 33 , 62 , 241 , 99 , 34 , 62 , 93 , 32 , 35 , 62 , 38 , 221 , 35 , 62 , 74 , 154 , 36 , 62 , 202 , 87 , 37 , 62 , 165 , 21 , 38 , 62 , 219 , 211 , 38 , 62 , 108 , 146 , 39 , 62 , 88 , 81 , 40 , 62 , 159 , 16 , 41 , 62 , 64 , 208 , 41 , 62 , 59 , 144 , 42 , 62 , 144 , 80 , 43 , 62 , 63 , 17 , 44 , 62 , 72 , 210 , 44 , 62 , 170 , 147 , 45 , 62 , 102 , 85 , 46 , 62 , 122 , 23 , 47 , 62 , 232 , 217 , 47 , 62 , 175 , 156 , 48 , 62 , 206 , 95 , 49 , 62 , 69 , 35 , 50 , 62 , 21 , 231 , 50 , 62 , 61 , 171 , 51 , 62 , 189 , 111 , 52 , 62 , 148 , 52 , 53 , 62 , 195 , 249 , 53 , 62 , 73 , 191 , 54 , 62 , 38 , 133 , 55 , 62 , 91 , 75 , 56 , 62 , 230 , 17 , 57 , 62 , 199 , 216 , 57 , 62 , 255 , 159 , 58 , 62 , 141 , 103 , 59 , 62 , 113 , 47 , 60 , 62 , 171 , 247 , 60 , 62 , 59 , 192 , 61 , 62 , 31 , 137 , 62 , 62 , 89 , 82 , 63 , 62 , 232 , 27 , 64 , 62 , 204 , 229 , 64 , 62 , 5 , 176 , 65 , 62 , 146 , 122
allocate ( [ 103 , 185 , 210 , 61 , 21 , 85 , 211 , 61 , 248 , 240 , 211 , 61 , 14 , 141 , 212 , 61 , 89 , 41 , 213 , 61 , 216 , 197 , 213 , 61 , 140 , 98 , 214 , 61 , 115 , 255 , 214 , 61 , 143 , 156 , 215 , 61 , 223 , 57 , 216 , 61 , 99 , 215 , 216 , 61 , 27 , 117 , 217 , 61 , 7 , 19 , 218 , 61 , 38 , 177 , 218 , 61 , 122 , 79 , 219 , 61 , 2 , 238 , 219 , 61 , 189 , 140 , 220 , 61 , 173 , 43 , 221 , 61 , 208 , 202 , 221 , 61 , 39 , 106 , 222 , 61 , 178 , 9 , 223 , 61 , 112 , 169 , 223 , 61 , 98 , 73 , 224 , 61 , 136 , 233 , 224 , 61 , 226 , 137 , 225 , 61 , 111 , 42 , 226 , 61 , 47 , 203 , 226 , 61 , 35 , 108 , 227 , 61 , 74 , 13 , 228 , 61 , 165 , 174 , 228 , 61 , 52 , 80 , 229 , 61 , 245 , 241 , 229 , 61 , 234 , 147 , 230 , 61 , 19 , 54 , 231 , 61 , 110 , 216 , 231 , 61 , 253 , 122 , 232 , 61 , 191 , 29 , 233 , 61 , 180 , 192 , 233 , 61 , 221 , 99 , 234 , 61 , 56 , 7 , 235 , 61 , 199 , 170 , 235 , 61 , 136 , 78 , 236 , 61 , 125 , 242 , 236 , 61 , 164 , 150 , 237 , 61 , 255 , 58 , 238 , 61 , 140 , 223 , 238 , 61 , 76 , 132 , 239 , 61 , 63 , 41 , 240 , 61 , 101 , 206 , 240 , 61 , 189 , 115 , 241 , 61 , 73 , 25 , 242 , 61 , 7 , 191 , 242 , 61 , 247 , 100 , 243 , 61 , 26 , 11 , 244 , 61 , 112 , 177 , 244 , 61 , 248 , 87 , 245 , 61 , 179 , 254 , 245 , 61 , 160 , 165 , 246 , 61 , 192 , 76 , 247 , 61 , 18 , 244 , 247 , 61 , 151 , 155 , 248 , 61 , 77 , 67 , 249 , 61 , 55 , 235 , 249 , 61 , 82 , 147 , 250 , 61 , 159 , 59 , 251 , 61 , 31 , 228 , 251 , 61 , 209 , 140 , 252 , 61 , 181 , 53 , 253 , 61 , 203 , 222 , 253 , 61 , 19 , 136 , 254 , 61 , 141 , 49 , 255 , 61 , 57 , 219 , 255 , 61 , 140 , 66 , 0 , 62 , 148 , 151 , 0 , 62 , 181 , 236 , 0 , 62 , 238 , 65 , 1 , 62 , 65 , 151 , 1 , 62 , 173 , 236 , 1 , 62 , 49 , 66 , 2 , 62 , 206 , 151 , 2 , 62 , 132 , 237 , 2 , 62 , 83 , 67 , 3 , 62 , 59 , 153 , 3 , 62 , 59 , 239 , 3 , 62 , 84 , 69 , 4 , 62 , 134 , 155 , 4 , 62 , 209 , 241 , 4 , 62 , 52 , 72 , 5 , 62 , 176 , 158 , 5 , 62 , 68 , 245 , 5 , 62 , 242 , 75 , 6 , 62 , 183 , 162 , 6 , 62 , 150 , 249 , 6 , 62 , 141 , 80 , 7 , 62 , 156 , 167 , 7 , 62 , 196 , 254 , 7 , 62 , 5 , 86 , 8 , 62 , 94 , 173 , 8 , 62 , 207 , 4 , 9 , 62 , 89 , 92 , 9 , 62 , 252 , 179 , 9 , 62 , 183 , 11 , 10 , 62 , 138 , 99 , 10 , 62 , 118 , 187 , 10 , 62 , 122 , 19 , 11 , 62 , 150 , 107 , 11 , 62 , 203 , 195 , 11 , 62 , 24 , 28 , 12 , 62 , 125 , 116 , 12 , 62 , 250 , 204 , 12 , 62 , 144 , 37 , 13 , 62 , 62 , 126 , 13 , 62 , 4 , 215 , 13 , 62 , 227 , 47 , 14 , 62 , 217 , 136 , 14 , 62 , 232 , 225 , 14 , 62 , 15 , 59 , 15 , 62 , 78 , 148 , 15 , 62 , 165 , 237 , 15 , 62 , 20 , 71 , 16 , 62 , 155 , 160 , 16 , 62 , 58 , 250 , 16 , 62 , 241 , 83 , 17 , 62 , 193 , 173 , 17 , 62 , 168 , 7 , 18 , 62 , 167 , 97 , 18 , 62 , 190 , 187 , 18 , 62 , 237 , 21 , 19 , 62 , 51 , 112 , 19 , 62 , 146 , 202 , 19 , 62 , 9 , 37 , 20 , 62 , 151 , 127 , 20 , 62 , 61 , 218 , 20 , 62 , 251 , 52 , 21 , 62 , 209 , 143 , 21 , 62 , 190 , 234 , 21 , 62 , 195 , 69 , 22 , 62 , 224 , 160 , 22 , 62 , 21 , 252 , 22 , 62 , 97 , 87 , 23 , 62 , 197 , 178 , 23 , 62 , 64 , 14 , 24 , 62 , 211 , 105 , 24 , 62 , 126 , 197 , 24 , 62 , 64 , 33 , 25 , 62 , 26 , 125 , 25 , 62 , 11 , 217 , 25 , 62 , 20 , 53 , 26 , 62 , 52 , 145 , 26 , 62 , 108 , 237 , 26 , 62 , 187 , 73 , 27 , 62 , 34 , 166 , 27 , 62 , 160 , 2 , 28 , 62 , 53 , 95 , 28 , 62 , 226 , 187 , 28 , 62 , 166 , 24 , 29 , 62 , 129 , 117 , 29 , 62 , 116 , 210 , 29 , 62 , 126 , 47 , 30 , 62 , 159 , 140 , 30 , 62 , 215 , 233 , 30 , 62 , 39 , 71 , 31 , 62 , 141 , 164 , 31 , 62 , 11 , 2 , 32 , 62 , 160 , 95 , 32 , 62 , 76 , 189 , 32 , 62 , 16 , 27 , 33 , 62 , 234 , 120 , 33 , 62 , 219 , 214 , 33 , 62 , 228 , 52 , 34 , 62 , 3 , 147 , 34 , 62 , 58 , 241 , 34 , 62 , 135 , 79 , 35 , 62 , 235 , 173 , 35 , 62 , 103 , 12 , 36 , 62 , 249 , 106 , 36 , 62 , 162 , 201 , 36 , 62 , 98 , 40 , 37 , 62 , 56 , 135 , 37 , 62 , 38 , 230 , 37 , 62 , 42 , 69 , 38 , 62 , 69 , 164 , 38 , 62 , 119 , 3 , 39 , 62 , 192 , 98 , 39 , 62 , 31 , 194 , 39 , 62 , 149 , 33 , 40 , 62 , 33 , 129 , 40 , 62 , 197 , 224 , 40 , 62 , 126 , 64 , 41 , 62 , 79 , 160 , 41 , 62 , 54 , 0 , 42 , 62 , 51 , 96 , 42 , 62 , 72 , 192 , 42 , 62 , 114 , 32 , 43 , 62 , 179 , 128 , 43 , 62 , 11 , 225 , 43 , 62 , 121 , 65 , 44 , 62 , 253 , 161 , 44 , 62 , 152 , 2 , 45 , 62 , 73 , 99 , 45 , 62 , 16 , 196 , 45 , 62 , 238 , 36 , 46 , 62 , 226 , 133 , 46 , 62 , 237 , 230 , 46 , 62 , 13 , 72 , 47 , 62 , 68 , 169 , 47 , 62 , 145 , 10 , 48 , 62 , 245 , 107 , 48 , 62 , 110 , 205 , 48 , 62 , 254 , 46 , 49 , 62 , 163 , 144 , 49 , 62 , 95 , 242 , 49 , 62 , 49 , 84 , 50 , 62 , 25 , 182 , 50 , 62 , 23 , 24 , 51 , 62 , 43 , 122 , 51 , 62 , 85 , 220 , 51 , 62 , 148 , 62 , 52 , 62 , 234 , 160 , 52 , 62 , 86 , 3 , 53 , 62 , 216 , 101 , 53 , 62 , 111 , 200 , 53 , 62 , 28 , 43 , 54 , 62 , 223 , 141 , 54 , 62 , 184 , 240 , 54 , 62 , 167 , 83 , 55 , 62 , 171 , 182 , 55 , 62 , 197 , 25 , 56 , 62 , 245 , 124 , 56 , 62 , 59 , 224 , 56 , 62 , 150 , 67 , 57 , 62 , 7 , 167 , 57 , 62 , 141 , 10 , 58 , 62 , 41 , 110 , 58 , 62 , 219 , 209 , 58 , 62 , 162 , 53 , 59 , 62 , 126 , 153 , 59 , 62 , 112 , 253 , 59 , 62 , 120 , 97 , 60 , 62 , 149 , 197 , 60 , 62 , 199 , 41 , 61 , 62 , 15 , 142 , 61 , 62 , 108 , 242 , 61 , 62 , 222 , 86 , 62 , 62 , 102 , 187 , 62 , 62 , 3 , 32 , 63 , 62 , 181 , 132 , 63 , 62 , 125 , 233 , 63 , 62 , 90 , 78 , 64 , 62 , 75 , 179 , 64 , 62 , 83 , 24 , 65 , 62 , 111 , 125 , 65 , 62 , 160 , 226 , 65 , 62 , 231 , 71 , 66 , 62 , 66 , 173 , 66 , 62 , 179 , 18 , 67 , 62 , 57 , 120 , 67 , 62 , 211 , 221 , 67 , 62 , 131 , 67 , 68 , 62 , 71 , 169 , 68 , 62 , 33 , 15 , 69 , 62 , 15 , 117 , 69 , 62 , 18 , 219 , 69 , 62 , 42 , 65 , 70 , 62 , 87 , 167 , 70 , 62 , 153 , 13 , 71 , 62 , 240 , 115 , 71 , 62 , 91 , 218 , 71 , 62 , 219 , 64 , 72 , 62 , 111 , 167 , 72 , 62 , 25 , 14 , 73 , 62 , 215 , 116 , 73 , 62 , 169 , 219 , 73 , 62 , 144 , 66 , 74 , 62 , 140 , 169 , 74 , 62 , 157 , 16 , 75 , 62 , 193 , 119 , 75 , 62 , 251 , 222 , 75 , 62 , 73 , 70 , 76 , 62 , 171 , 173 , 76 , 62 , 34 , 21 , 77 , 62 , 173 , 124 , 77 , 62 , 76 , 228 , 77 , 62 , 0 , 76 , 78 , 62 , 200 , 179 , 78 , 62 , 164 , 27 , 79 , 62 , 149 , 131 , 79 , 62 , 154 , 235 , 79 , 62 , 179 , 83 , 80 , 62 , 225 , 187 , 80 , 62 , 34 , 36 , 81 , 62 , 120 , 140 , 81 , 62 , 225 , 244 , 81 , 62 , 95 , 93 , 82 , 62 , 241 , 197 , 82 , 62 , 151 , 46 , 83 , 62 , 81 , 151 , 83 , 62 , 31 , 0 , 84 , 62 , 1 , 105 , 84 , 62 , 247 , 209 , 84 , 62 , 0 , 59 , 85 , 62 , 30 , 164 , 85 , 62 , 79 , 13 , 86 , 62 , 149 , 118 , 86 , 62 , 238 , 223 , 86 , 62 , 91 , 73 , 87 , 62 , 219 , 178 , 87 , 62 , 112 , 28 , 88 ,
allocate ( [ 150 , 134 , 124 , 63 , 142 , 138 , 124 , 63 , 130 , 142 , 124 , 63 , 116 , 146 , 124 , 63 , 98 , 150 , 124 , 63 , 77 , 154 , 124 , 63 , 52 , 158 , 124 , 63 , 24 , 162 , 124 , 63 , 249 , 165 , 124 , 63 , 215 , 169 , 124 , 63 , 178 , 173 , 124 , 63 , 137 , 177 , 124 , 63 , 94 , 181 , 124 , 63 , 47 , 185 , 124 , 63 , 253 , 188 , 124 , 63 , 199 , 192 , 124 , 63 , 143 , 196 , 124 , 63 , 83 , 200 , 124 , 63 , 20 , 204 , 124 , 63 , 211 , 207 , 124 , 63 , 141 , 211 , 124 , 63 , 69 , 215 , 124 , 63 , 250 , 218 , 124 , 63 , 171 , 222 , 124 , 63 , 90 , 226 , 124 , 63 , 5 , 230 , 124 , 63 , 173 , 233 , 124 , 63 , 82 , 237 , 124 , 63 , 244 , 240 , 124 , 63 , 147 , 244 , 124 , 63 , 46 , 248 , 124 , 63 , 199 , 251 , 124 , 63 , 93 , 255 , 124 , 63 , 239 , 2 , 125 , 63 , 127 , 6 , 125 , 63 , 11 , 10 , 125 , 63 , 148 , 13 , 125 , 63 , 27 , 17 , 125 , 63 , 158 , 20 , 125 , 63 , 30 , 24 , 125 , 63 , 155 , 27 , 125 , 63 , 21 , 31 , 125 , 63 , 140 , 34 , 125 , 63 , 0 , 38 , 125 , 63 , 114 , 41 , 125 , 63 , 224 , 44 , 125 , 63 , 75 , 48 , 125 , 63 , 179 , 51 , 125 , 63 , 24 , 55 , 125 , 63 , 122 , 58 , 125 , 63 , 217 , 61 , 125 , 63 , 54 , 65 , 125 , 63 , 143 , 68 , 125 , 63 , 229 , 71 , 125 , 63 , 56 , 75 , 125 , 63 , 137 , 78 , 125 , 63 , 214 , 81 , 125 , 63 , 33 , 85 , 125 , 63 , 104 , 88 , 125 , 63 , 173 , 91 , 125 , 63 , 239 , 94 , 125 , 63 , 46 , 98 , 125 , 63 , 106 , 101 , 125 , 63 , 163 , 104 , 125 , 63 , 217 , 107 , 125 , 63 , 12 , 111 , 125 , 63 , 61 , 114 , 125 , 63 , 106 , 117 , 125 , 63 , 149 , 120 , 125 , 63 , 189 , 123 , 125 , 63 , 226 , 126 , 125 , 63 , 4 , 130 , 125 , 63 , 36 , 133 , 125 , 63 , 64 , 136 , 125 , 63 , 90 , 139 , 125 , 63 , 112 , 142 , 125 , 63 , 133 , 145 , 125 , 63 , 150 , 148 , 125 , 63 , 164 , 151 , 125 , 63 , 176 , 154 , 125 , 63 , 185 , 157 , 125 , 63 , 191 , 160 , 125 , 63 , 194 , 163 , 125 , 63 , 194 , 166 , 125 , 63 , 192 , 169 , 125 , 63 , 187 , 172 , 125 , 63 , 179 , 175 , 125 , 63 , 168 , 178 , 125 , 63 , 155 , 181 , 125 , 63 , 139 , 184 , 125 , 63 , 120 , 187 , 125 , 63 , 99 , 190 , 125 , 63 , 74 , 193 , 125 , 63 , 48 , 196 , 125 , 63 , 18 , 199 , 125 , 63 , 241 , 201 , 125 , 63 , 206 , 204 , 125 , 63 , 169 , 207 , 125 , 63 , 128 , 210 , 125 , 63 , 85 , 213 , 125 , 63 , 39 , 216 , 125 , 63 , 247 , 218 , 125 , 63 , 196 , 221 , 125 , 63 , 142 , 224 , 125 , 63 , 85 , 227 , 125 , 63 , 26 , 230 , 125 , 63 , 220 , 232 , 125 , 63 , 156 , 235 , 125 , 63 , 89 , 238 , 125 , 63 , 19 , 241 , 125 , 63 , 203 , 243 , 125 , 63 , 128 , 246 , 125 , 63 , 51 , 249 , 125 , 63 , 227 , 251 , 125 , 63 , 144 , 254 , 125 , 63 , 59 , 1 , 126 , 63 , 227 , 3 , 126 , 63 , 137 , 6 , 126 , 63 , 44 , 9 , 126 , 63 , 204 , 11 , 126 , 63 , 106 , 14 , 126 , 63 , 6 , 17 , 126 , 63 , 158 , 19 , 126 , 63 , 53 , 22 , 126 , 63 , 200 , 24 , 126 , 63 , 90 , 27 , 126 , 63 , 232 , 29 , 126 , 63 , 116 , 32 , 126 , 63 , 254 , 34 , 126 , 63 , 133 , 37 , 126 , 63 , 10 , 40 , 126 , 63 , 140 , 42 , 126 , 63 , 12 , 45 , 126 , 63 , 137 , 47 , 126 , 63 , 4 , 50 , 126 , 63 , 124 , 52 , 126 , 63 , 242 , 54 , 126 , 63 , 101 , 57 , 126 , 63 , 214 , 59 , 126 , 63 , 68 , 62 , 126 , 63 , 176 , 64 , 126 , 63 , 26 , 67 , 126 , 63 , 129 , 69 , 126 , 63 , 230 , 71 , 126 , 63 , 72 , 74 , 126 , 63 , 168 , 76 , 126 , 63 , 5 , 79 , 126 , 63 , 96 , 81 , 126 , 63 , 185 , 83 , 126 , 63 , 15 , 86 , 126 , 63 , 99 , 88 , 126 , 63 , 181 , 90 , 126 , 63 , 4 , 93 , 126 , 63 , 81 , 95 , 126 , 63 , 155 , 97 , 126 , 63 , 227 , 99 , 126 , 63 , 41 , 102 , 126 , 63 , 108 , 104 , 126 , 63 , 173 , 106 , 126 , 63 , 236 , 108 , 126 , 63 , 40 , 111 , 126 , 63 , 98 , 113 , 126 , 63 , 154 , 115 , 126 , 63 , 208 , 117 , 126 , 63 , 3 , 120 , 126 , 63 , 51 , 122 , 126 , 63 , 98 , 124 , 126 , 63 , 142 , 126 , 126 , 63 , 184 , 128 , 126 , 63 , 224 , 130 , 126 , 63 , 5 , 133 , 126 , 63 , 40 , 135 , 126 , 63 , 73 , 137 , 126 , 63 , 104 , 139 , 126 , 63 , 132 , 141 , 126 , 63 , 159 , 143 , 126 , 63 , 183 , 145 , 126 , 63 , 204 , 147 , 126 , 63 , 224 , 149 , 126 , 63 , 241 , 151 , 126 , 63 , 0 , 154 , 126 , 63 , 13 , 156 , 126 , 63 , 24 , 158 , 126 , 63 , 32 , 160 , 126 , 63 , 38 , 162 , 126 , 63 , 42 , 164 , 126 , 63 , 44 , 166 , 126 , 63 , 44 , 168 , 126 , 63 , 41 , 170 , 126 , 63 , 37 , 172 , 126 , 63 , 30 , 174 , 126 , 63 , 21 , 176 , 126 , 63 , 10 , 178 , 126 , 63 , 253 , 179 , 126 , 63 , 238 , 181 , 126 , 63 , 220 , 183 , 126 , 63 , 201 , 185 , 126 , 63 , 179 , 187 , 126 , 63 , 155 , 189 , 126 , 63 , 129 , 191 , 126 , 63 , 101 , 193 , 126 , 63 , 71 , 195 , 126 , 63 , 39 , 197 , 126 , 63 , 5 , 199 , 126 , 63 , 224 , 200 , 126 , 63 , 186 , 202 , 126 , 63 , 145 , 204 , 126 , 63 , 103 , 206 , 126 , 63 , 58 , 208 , 126 , 63 , 12 , 210 , 126 , 63 , 219 , 211 , 126 , 63 , 168 , 213 , 126 , 63 , 115 , 215 , 126 , 63 , 61 , 217 , 126 , 63 , 4 , 219 , 126 , 63 , 201 , 220 , 126 , 63 , 140 , 222 , 126 , 63 , 77 , 224 , 126 , 63 , 12 , 226 , 126 , 63 , 202 , 227 , 126 , 63 , 133 , 229 , 126 , 63 , 62 , 231 , 126 , 63 , 245 , 232 , 126 , 63 , 170 , 234 , 126 , 63 , 94 , 236 , 126 , 63 , 15 , 238 , 126 , 63 , 190 , 239 , 126 , 63 , 108 , 241 , 126 , 63 , 23 , 243 , 126 , 63 , 193 , 244 , 126 , 63 , 104 , 246 , 126 , 63 , 14 , 248 , 126 , 63 , 178 , 249 , 126 , 63 , 84 , 251 , 126 , 63 , 243 , 252 , 126 , 63 , 145 , 254 , 126 , 63 , 46 , 0 , 127 , 63 , 200 , 1 , 127 , 63 , 96 , 3 , 127 , 63 , 247 , 4 , 127 , 63 , 139 , 6 , 127 , 63 , 30 , 8 , 127 , 63 , 175 , 9 , 127 , 63 , 62 , 11 , 127 , 63 , 203 , 12 , 127 , 63 , 86 , 14 , 127 , 63 , 223 , 15 , 127 , 63 , 103 , 17 , 127 , 63 , 237 , 18 , 127 , 63 , 112 , 20 , 127 , 63 , 242 , 21 , 127 , 63 , 115 , 23 , 127 , 63 , 241 , 24 , 127 , 63 , 110 , 26 , 127 , 63 , 233 , 27 , 127 , 63 , 98 , 29 , 127 , 63 , 217 , 30 , 127 , 63 , 78 , 32 , 127 , 63 , 194 , 33 , 127 , 63 , 52 , 35 , 127 , 63 , 164 , 36 , 127 , 63 , 18 , 38 , 127 , 63 , 127 , 39 , 127 , 63 , 234 , 40 , 127 , 63 , 83 , 42 , 127 , 63 , 186 , 43 , 127 , 63 , 32 , 45 , 127 , 63 , 131 , 46 , 127 , 63 , 230 , 47 , 127 , 63 , 70 , 49 , 127 , 63 , 165 , 50 , 127 , 63 , 2 , 52 , 127 , 63 , 93 , 53 , 127 , 63 , 182 , 54 , 127 , 63 , 14 , 56 , 127 , 63 , 100 , 57 , 127 , 63 , 185 , 58 , 127 , 63 , 12 , 60 , 127 , 63 , 93 , 61 , 127 , 63 , 172 , 62 , 127 , 63 , 250 , 63 , 127 , 63 , 70 , 65 , 127 , 63 , 145 , 66 , 127 , 63 , 217 , 67 , 127 , 63 , 33 , 69 , 127 , 63 , 102 , 70 , 127 , 63 , 170 , 71 , 127 , 63 , 236 , 72 , 127 , 63 , 45 , 74 , 127 , 63 , 108 , 75 , 127 , 63 , 1
allocate ( [ 0 , 0 , 150 , 194 , 0 , 0 , 156 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 172 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 210 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 140 , 194 , 0 , 0 , 130 , 194 , 0 , 0 , 116 , 194 , 0 , 0 , 92 , 194 , 0 , 0 , 68 , 194 , 0 , 0 , 28 , 194 , 0 , 0 , 4 , 194 , 0 , 0 , 32 , 194 , 0 , 0 , 12 , 194 , 0 , 0 , 0 , 194 , 0 , 0 , 24 , 194 , 0 , 0 , 32 , 194 , 0 , 0 , 4 , 194 , 0 , 0 , 12 , 194 , 0 , 0 , 20 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 36 , 194 , 0 , 0 , 52 , 194 , 0 , 0 , 48 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 40 , 194 , 0 , 0 , 52 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 80 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 92 , 194 , 0 , 0 , 100 , 194 , 0 , 0 , 120 , 194 , 0 , 0 , 128 , 194 , 0 , 0 , 132 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 140 , 194 , 0 , 0 , 152 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 210 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 164 , 194 , 0 , 0 , 166 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 156 , 194 , 0 , 0 , 168 , 194 , 0 , 0 , 158 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 166 , 194 , 0 , 0 , 174 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 182 , 194 , 0 , 0 , 186 , 194 , 0 , 0 , 198 , 194 , 0 , 0 , 212 , 194 , 0 , 0 , 234 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 210 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 140 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 144 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 154 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 164 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 174 , 194 , 0 , 0 , 184 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 182 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 212 , 194 , 0 , 0 , 224 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 210 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 166 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 142 , 194 , 0 , 0 , 124 , 194 , 0 , 0 , 128 , 194 , 0 , 0 , 134 , 194 , 0 , 0 , 120 , 194 , 0 , 0 , 128 , 194 , 0 , 0 , 134 , 194 , 0 , 0 , 140 , 194 , 0 , 0 , 146 , 194 , 0 , 0 , 154 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 168 , 194 , 0 , 0 , 166 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 186 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 208 , 194 , 0 , 0 , 218 , 194 , 0 , 0 , 228 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 206 , 194 , 0 , 0 , 192 , 194 , 0 , 0 , 176 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 104 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 96 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 96 , 194 , 0 , 0 , 96 , 194 , 0 , 0 , 104 , 194 , 0 , 0 , 112 , 194 , 0 , 0 , 124 , 194 , 0 , 0 , 132 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 138 , 194 , 0 , 0 , 144 , 194 , 0 , 0 , 144 , 194 , 0 , 0 , 150 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 154 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 164 , 194 , 0 , 0 , 168 , 194 , 0 , 0 , 174 , 194 , 0 , 0 , 186 , 194 , 0 , 0 , 192 , 194 , 0 , 0 , 198 , 194 , 0 , 0 , 208 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 216 , 194 , 0 , 0 , 204 , 194 , 0 , 0 , 192 , 194 , 0 , 0 , 182 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 112 , 194 , 0 , 0 , 76 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 64 , 194 , 0 , 0 , 56 , 194 , 0 , 0 , 44 , 194 , 0 , 0 , 52 , 194 , 0 , 0 , 60 , 194 , 0 , 0
allocate ( [ 0 , 0 , 190 , 194 , 0 , 0 , 198 , 194 , 0 , 0 , 206 , 194 , 0 , 0 , 214 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 220 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 104 , 194 , 0 , 0 , 92 , 194 , 0 , 0 , 68 , 194 , 0 , 0 , 132 , 194 , 0 , 0 , 136 , 194 , 0 , 0 , 142 , 194 , 0 , 0 , 156 , 194 , 0 , 0 , 156 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 176 , 194 , 0 , 0 , 170 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 194 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 210 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 220 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 84 , 194 , 0 , 0 , 80 , 194 , 0 , 0 , 36 , 194 , 0 , 0 , 108 , 194 , 0 , 0 , 108 , 194 , 0 , 0 , 68 , 194 , 0 , 0 , 104 , 194 , 0 , 0 , 96 , 194 , 0 , 0 , 124 , 194 , 0 , 0 , 172 , 194 , 0 , 0 , 158 , 194 , 0 , 0 , 180 , 194 , 0 , 0 , 186 , 194 , 0 , 0 , 196 , 194 , 0 , 0 , 206 , 194 , 0 , 0 , 214 , 194 , 0 , 0 , 224 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 220 , 194 , 0 , 0 , 194 , 194 , 0 , 0 , 182 , 194 , 0 , 0 , 146 , 194 , 0 , 0 , 52 , 194 , 0 , 0 , 32 , 194 , 0 , 0 , 4 , 194 , 0 , 0 , 84 , 194 , 0 , 0 , 116 , 194 , 0 , 0 , 68 , 194 , 0 , 0 , 88 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 72 , 194 , 0 , 0 , 112 , 194 , 0 , 0 , 80 , 194 , 0 , 0 , 134 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 162 , 194 , 0 , 0 , 184 , 194 , 0 , 0 , 192 , 194 , 0 , 0 , 200 , 194 , 0 , 0 , 210 , 194 , 0 , 0 , 220 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 226 , 194 , 0 , 0 , 212 , 194 , 0 , 0 , 198 , 194 , 0 , 0 , 184 , 194 , 0 , 0 , 154 , 194 , 0 , 0 , 160 , 194 , 0 , 0 , 176 , 194 , 0 , 0 , 194 , 194 , 0 , 0 , 212 , 194 , 0 , 0 , 230 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 0 , 232 , 194 , 0 , 0 , 218 , 194 , 0 , 0 , 204 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 178 , 194 , 0 , 0 , 148 , 194 , 0 , 0 , 144 , 194 , 0 , 0 , 176 , 194 , 0 , 0 , 174 , 194 , 0 , 0 , 190 , 194 , 0 , 0 , 204 , 194 , 0 , 0 , 218 , 194 , 0 , 0 , 232 , 194 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 196 , 0 , 192 , 121 , 19
} if ( ( g | 0 ) == 29 ) return o | 0 } while ( 0 ) ; if ( ( r [ s >> 2 ] | 0 ) <= 2 ) { o = l ; return o | 0 } g = t + 1032 | 0 ; a = t + 780 | 0 ; t = 2 ; do { i = t + - 2 | 0 ; _ = g + ( i << 2 ) | 0 ; u = r [ _ >> 2 ] | 0 ; f = r [ n + 836 + ( u << 2 ) >> 2 ] | 0 ; v = a + ( i << 2 ) | 0 ; i = r [ v >> 2 ] | 0 ; c = r [ l + ( u << 2 ) >> 2 ] & 32767 ; u = ( r [ l + ( i << 2 ) >> 2 ] & 32767 ) - c | 0 ; m = ( W ( ( u | 0 ) > - 1 ? u : 0 - u | 0 , ( r [ n + 836 + ( t << 2 ) >> 2 ] | 0 ) - f | 0 ) | 0 ) / ( ( r [ n + 836 + ( i << 2 ) >> 2 ] | 0 ) - f | 0 ) | 0 ; f = ( ( u | 0 ) < 0 ? 0 - m | 0 : m ) + c | 0 ; c = ( r [ e >> 2 ] | 0 ) - f | 0 ; m = l + ( t << 2 ) | 0 ; u = r [ m >> 2 ] | 0 ; if ( ! u ) r [ m >> 2 ] = f | 32768 ; else { do if ( ( u | 0 ) < ( ( ( c | 0 ) < ( f | 0 ) ? c : f ) << 1 | 0 ) ) if ( ! ( u & 1 ) ) { w = u >> 1 ; break } else { w = 0 - ( u + 1 >> 1 ) | 0 ; break } else if ( ( c | 0 ) > ( f | 0 ) ) { w = u - f | 0 ; break } else { w = ~ ( u - c ) ; break } while ( 0 ) ; r [ m >> 2 ] = w + f & 32767 ; c = l + ( r [ _ >> 2 ] << 2 ) | 0 ; r [ c >> 2 ] = r [ c >> 2 ] & 32767 ; c = l + ( r [ v >> 2 ] << 2 ) | 0 ; r [ c >> 2 ] = r [ c >> 2 ] & 32767 } t = t + 1 | 0 } while ( ( t | 0 ) < ( r [ s >> 2 ] | 0 ) ) ; o = l ; return o | 0 } function Be ( e , t , n , i ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; var a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 , N = 0 , L = 0 , F = 0 , U = 0 ; a = r [ t + 1296 >> 2 ] | 0 ; o = ( r [ ( r [ ( r [ ( r [ e + 64 >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) + 28 >> 2 ] | 0 ) + ( r [ e + 28 >> 2 ] << 2 ) >> 2 ] | 0 ) / 2 | 0 ; if ( ! n ) { ai ( i | 0 , 0 , o << 2 | 0 ) | 0 ; s = 0 ; return s | 0 } e = r [ a + 832 >> 2 ] | 0 ; l = W ( e , r [ n >> 2 ] | 0 ) | 0 ; d = ( l | 0 ) < 0 ? 0 : ( l | 0 ) < 255 ? l : 255 ; l = r [ t + 1284 >> 2 ] | 0 ; if ( ( l | 0 ) > 1 ) { u = t + 260 | 0 ; t = 0 ; p = 1 ; f = 0 ; m = d ; while ( 1 ) { h = r [ u + ( p << 2 ) >> 2 ] | 0 ; g = r [ n + ( h << 2 ) >> 2 ] | 0 ; e : do if ( ( g & 32767 | 0 ) == ( g | 0 ) ) { _ = r [ a + 836 + ( h << 2 ) >> 2 ] | 0 ; v = W ( e , g ) | 0 ; y = ( v | 0 ) < 0 ? 0 : ( v | 0 ) < 255 ? v : 255 ; v = y - m | 0 ; b = _ - f | 0 ; w = ( v | 0 ) / ( b | 0 ) | 0 ; k = v >> 31 | 1 ; M = W ( w , b ) | 0 ; S = ( ( v | 0 ) > - 1 ? v : 0 - v | 0 ) - ( ( M | 0 ) > - 1 ? M : 0 - M | 0 ) | 0 ; M = ( o | 0 ) > ( _ | 0 ) ? _ : o ; if ( ( M | 0 ) > ( f | 0 ) ) { A = 0 ; C = f ; T = m ; E = 8 } else { $ = 0 ; I = f ; x = m } while ( 1 ) { if ( ( E | 0 ) == 8 ) { E = 0 ; v = i + ( C << 2 ) | 0 ; c [ v >> 2 ] = + c [ v >> 2 ] * + c [ 476 + ( T << 2 ) >> 2 ] ; $ = A ; I = C ; x = T } v = I + 1 | 0 ; if ( ( v | 0 ) >= ( M | 0 ) ) { P = _ ; D = _ ; R = y ; break e } O = $ + S | 0 ; N = ( O | 0 ) < ( b | 0 ) ; A = O - ( N ? 0 : b ) | 0 ; C = v ; T = x + w + ( N ? 0 : k ) | 0 ; E = 8 } } else { P = t ; D = f ; R = m } while ( 0 ) ; p = p + 1 | 0 ; if ( ( p | 0 ) >= ( l | 0 ) ) { L = P ; F = R ; break } else { t = P ; f = D ; m = R } } } else { L = 0 ; F = d } if ( ( L | 0 ) >= ( o | 0 ) ) { s = 1 ; return s | 0 } U = + c [ 476 + ( F << 2 ) >> 2 ] ; F = L ; do { L = i + ( F << 2 ) | 0 ; c [ L >> 2 ] = + c [ L >> 2 ] * U ; F = F + 1 | 0 } while ( ( F | 0 ) != ( o | 0 ) ) ; s = 1 ; return s | 0 } function He ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 ; n = t + 7 & - 8 ; t = e + 72 | 0 ; i = r [ t >> 2 ] | 0 ; a = e + 76 | 0 ; o = e + 68 | 0 ; s = r [ o >> 2 ] | 0 ; if ( ( i + n | 0 ) <= ( r [ a >> 2 ] | 0 ) ) { l = s ; c = i ; d = l + c | 0 ; u = c + n | 0 ; r [ t >> 2 ] = u ; return d | 0 } if ( s | 0 ) { p = Yn ( 8 ) | 0 ; f = e + 80 | 0 ; r [ f >> 2 ] = ( r [ f >> 2 ] | 0 ) + i ; i = e + 84 | 0 ; r [ p + 4 >> 2 ] = r [ i >> 2 ] ; r [ p >> 2 ] = s ; r [ i >> 2 ] = p } r [ a >> 2 ] = n ; a = Yn ( n ) | 0 ; r [ o >> 2 ] = a ; r [ t >> 2 ] = 0 ; l = a ; c = 0 ; d = l + c | 0 ; u = c + n | 0 ; r [ t >> 2 ] = u ; return d | 0 } function je ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 ; if ( ( r [ e + 8 >> 2 ] | 0 ) <= 0 ) { n = - 1 ; return n | 0 } i = Ve ( e , t ) | 0 ; if ( ( i | 0 ) <= - 1 ) { n = - 1 ; return n | 0 } n = r [ ( r [ e + 24 >> 2 ] | 0 ) + ( i << 2 ) >> 2 ] | 0 ; return n | 0 } function Ve ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 ; n = r [ e + 40 >> 2 ] | 0 ; a = Ie ( t , r [ e + 36 >> 2 ] | 0 ) | 0 ; do if ( ( a | 0 ) > - 1 ) { o = r [ ( r [ e + 32 >> 2 ] | 0 ) + ( a << 2 ) >> 2 ] | 0 ; if ( ( o | 0 ) < 0 ) { s = ( r [ e + 8 >> 2 ] | 0 ) - ( o & 32767 ) | 0 ; l = o >>> 15 & 32767 ; break } c = o + - 1 | 0 ; xe ( t , i [ ( r [ e + 28 >> 2 ] | 0 ) + c >> 0 ] | 0 ) ; d = c ; return d | 0 } else { s = r [ e + 8 >> 2 ] | 0 ; l = 0 } while ( 0 ) ; a = n ; while ( 1 ) { u = Ie ( t , a ) | 0 ; p = ( u | 0 ) < 0 ; if ( ( a | 0 ) > 1 & p ) a = a + - 1 | 0 ; else break } if ( p ) { d = - 1 ; return d | 0 } p = oi ( u | 0 ) | 0 ; u = p >>> 4 & 252645135 | p << 4 & - 252645136 ; p = u >>> 2 & 858993459 | u << 2 & - 858993460 ; u = p >>> 1 & 1431655765 | p << 1 & - 1431655766 ; p = s - l | 0 ; if ( ( p | 0 ) > 1 ) { n = r [ e + 20 >> 2 ] | 0 ; c = s ; s = l ; o = p ; while ( 1 ) { p = o >>> 1 ; f = ( r [ n + ( p + s << 2 ) >> 2 ] | 0 ) >>> 0 > u >>> 0 ; m = ( f ? 0 : p ) + s | 0 ; c = c - ( f ? p : 0 ) | 0 ; o = c - m | 0 ; if ( ( o | 0 ) <= 1 ) { h = m ; break } else s = m } } else h = l ; l = i [ ( r [ e + 28 >> 2 ] | 0 ) + h >> 0 ] | 0 ; if ( ( l | 0 ) > ( a | 0 ) ) { xe ( t , a ) ; d = - 1 ; return d | 0 } else { xe ( t , l ) ; d = h ; return d | 0 } return 0 } function qe ( e , t ) { e = e | 0 ; t = t | 0 ; return ( r [ r [ e >> 2 ] >> 2 ] | 0 ) - ( r [ r [ t >> 2 ] >> 2 ] | 0 ) | 0 } function ze ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 ; n = r [ e + 28 >> 2 ] | 0 ; e = Yn ( 96 ) | 0 ; i = Pe ( t , 8 ) | 0 ; r [ e >> 2 ] = i ; a = Pe ( t , 16 ) | 0 ; r [ e + 4 >> 2 ] = a ; o = Pe ( t , 16 ) | 0 ; r [ e + 8 >> 2 ] = o ; r [ e + 12 >> 2 ] = Pe ( t , 6 ) | 0 ; r [ e + 16 >> 2 ] = Pe ( t , 8 ) | 0 ; s = Pe ( t , 4 ) | 0 ; l = e + 20 | 0 ; r [ l >> 2 ] = s + 1 ; e : do if ( ( i | 0 ) < 1 ) { if ( ! e ) { c = 0 ; return c | 0 } } else if ( ( a | 0 ) >= 1 ? ! ( ( s | 0 ) < 0 | ( o | 0 ) < 1 ) : 0 ) { if ( ( s | 0 ) <= - 1 ) { c = e ; return c | 0 } d = e + 24 | 0 ; u = n + 24 | 0 ; p = 0 ; while ( 1 ) { f = Pe ( t , 8 ) | 0 ; r [ d + ( p << 2 ) >> 2 ] = f ; if ( ( f | 0 ) < 0 ) break e ; if ( ( f | 0 ) >= ( r [ u >> 2 ] | 0 ) ) break e ; m = r [ n + 1824 + ( f << 2 ) >> 2 ] | 0 ; if ( ! ( r [ m + 12 >> 2 ] | 0 ) ) break e ; p = p + 1 | 0 ; if ( ( r [ m >> 2 ] | 0 ) < 1 ) break e ; if ( ( p | 0 ) >= ( r [ l >> 2 ] | 0 ) ) { c = e ; break } } return c | 0 } while ( 0 ) ; Xn ( e ) ; c = 0 ; return c | 0 } function We ( e , t ) { e = e | 0 ; t = t | 0 ; e = Jn ( 1 , 32 ) | 0 ; r [ e + 4 >> 2 ] = r [ t >> 2 ] ; r [ e >> 2 ] = r [ t + 8 >> 2 ] ; r [ e + 20 >> 2 ] = t ; r [ e + 8 >> 2 ] = Jn ( 2 , 4 ) | 0 ; return e | 0 } function Ge ( e ) { e = e | 0 ; if ( ! e ) return ; Xn ( e ) ; return } function K
r [ ( r [ V >> 2 ] | 0 ) + 8 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , 28086 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 12 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , 37449 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 16 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , 46811 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 20 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , 56173 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 24 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , r [ N + 56 >> 2 ] | 0 , 9362 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 32 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , r [ O + 56 >> 2 ] | 0 , 18724 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 36 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , r [ N + 56 >> 2 ] | 0 , 28086 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 40 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , r [ O + 56 >> 2 ] | 0 , 37449 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 44 >> 2 ] = N ; N = r [ V >> 2 ] | 0 ; O = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ N + 28 >> 2 ] | 0 , r [ N + 56 >> 2 ] | 0 , 46811 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 48 >> 2 ] = O ; O = r [ V >> 2 ] | 0 ; N = Dt ( e , r [ ( r [ S >> 2 ] | 0 ) + ( r [ z >> 2 ] << 2 ) >> 2 ] | 0 , r [ O + 28 >> 2 ] | 0 , r [ O + 56 >> 2 ] | 0 , 56173 ) | 0 ; r [ ( r [ V >> 2 ] | 0 ) + 52 >> 2 ] = N } x = x + 1 | 0 ; N = r [ l >> 2 ] | 0 ; if ( ( x | 0 ) >= ( N | 0 ) ) { G = N ; K = S ; break e } } m = t ; return W | 0 } else { G = j ; K = o + 48 | 0 } while ( 0 ) ; c [ h >> 2 ] = H ; h = G << 2 ; G = m ; m = m + ( ( 1 * h | 0 ) + 15 & - 16 ) | 0 ; j = m ; m = m + ( ( 1 * h | 0 ) + 15 & - 16 ) | 0 ; h = ( Pt ( e ) | 0 ) != 0 ; _ = o + 44 | 0 ; R = e + 24 | 0 ; v = e + 32 | 0 ; B = a + 2868 | 0 ; M = o + 52 | 0 ; o = h ? 0 : 7 ; while ( 1 ) { h = r [ n + 12 + ( o << 2 ) >> 2 ] | 0 ; Te ( h , 0 , 1 ) ; Te ( h , b , r [ _ >> 2 ] | 0 ) ; if ( r [ y >> 2 ] | 0 ) { Te ( h , r [ R >> 2 ] | 0 , 1 ) ; Te ( h , r [ v >> 2 ] | 0 , 1 ) } s = r [ l >> 2 ] | 0 ; if ( ( s | 0 ) > 0 ) { S = 0 ; do { r [ d + ( S << 2 ) >> 2 ] = Rt ( h , e , r [ ( r [ K >> 2 ] | 0 ) + ( r [ w + 1028 + ( r [ w + 4 + ( S << 2 ) >> 2 ] << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 , r [ ( r [ f + ( S << 2 ) >> 2 ] | 0 ) + ( o << 2 ) >> 2 ] | 0 , r [ i + ( S << 2 ) >> 2 ] | 0 ) | 0 ; S = S + 1 | 0 ; x = r [ l >> 2 ] | 0 } while ( ( S | 0 ) < ( x | 0 ) ) ; Y = x } else Y = s ; Ot ( o , B , k , w , u , i , d , r [ a + 3240 + ( ( r [ y >> 2 ] | 0 ) * 60 | 0 ) + ( o << 2 ) >> 2 ] | 0 , Y ) ; if ( ( r [ w >> 2 ] | 0 ) > 0 ) { S = 0 ; do { x = r [ w + 1092 + ( S << 2 ) >> 2 ] | 0 ; A = r [ l >> 2 ] | 0 ; if ( ( A | 0 ) > 0 ) { N = A ; A = 0 ; O = 0 ; while ( 1 ) { if ( ( r [ w + 4 + ( O << 2 ) >> 2 ] | 0 ) == ( S | 0 ) ) { r [ j + ( A << 2 ) >> 2 ] = ( r [ d + ( O << 2 ) >> 2 ] | 0 ) != 0 & 1 ; r [ G + ( A << 2 ) >> 2 ] = r [ i + ( O << 2 ) >> 2 ] ; X = r [ l >> 2 ] | 0 ; J = A + 1 | 0 } else { X = N ; J = A } O = O + 1 | 0 ; if ( ( O | 0 ) >= ( X | 0 ) ) { Z = J ; break } else { N = X ; A = J } } } else Z = 0 ; A = a + 1312 + ( x << 2 ) | 0 ; N = Pi [ r [ ( r [ 464 + ( r [ A >> 2 ] << 2 ) >> 2 ] | 0 ) + 20 >> 2 ] & 7 ] ( e , r [ ( r [ M >> 2 ] | 0 ) + ( x << 2 ) >> 2 ] | 0 , G , j , Z ) | 0 ; O = r [ l >> 2 ] | 0 ; if ( ( O | 0 ) > 0 ) { V = 0 ; T = 0 ; while ( 1 ) { if ( ( r [ w + 4 + ( T << 2 ) >> 2 ] | 0 ) == ( S | 0 ) ) { r [ G + ( V << 2 ) >> 2 ] = r [ i + ( T << 2 ) >> 2 ] ; Q = V + 1 | 0 } else Q = V ; T = T + 1 | 0 ; if ( ( T | 0 ) >= ( O | 0 ) ) { ee = Q ; break } else V = Q } } else ee = 0 ; Ii [ r [ ( r [ 464 + ( r [ A >> 2 ] << 2 ) >> 2 ] | 0 ) + 24 >> 2 ] & 3 ] ( h , e , r [ ( r [ M >> 2 ] | 0 ) + ( x << 2 ) >> 2 ] | 0 , G , j , ee , N , S ) | 0 ; S = S + 1 | 0 } while ( ( S | 0 ) < ( r [ w >> 2 ] | 0 ) ) } S = ( Pt ( e ) | 0 ) != 0 ; if ( ( o | 0 ) < ( ( S ? 14 : 7 ) | 0 ) ) o = o + 1 | 0 ; else { W = 0 ; break } } m = t ; return W | 0 } function kt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 ; n = m ; i = r [ e + 64 >> 2 ] | 0 ; a = r [ i + 4 >> 2 ] | 0 ; o = r [ a + 28 >> 2 ] | 0 ; s = r [ i + 104 >> 2 ] | 0 ; i = e + 28 | 0 ; l = r [ o + ( r [ i >> 2 ] << 2 ) >> 2 ] | 0 ; r [ e + 36 >> 2 ] = l ; d = a + 4 | 0 ; a = r [ d >> 2 ] | 0 ; u = a << 2 ; p = m ; m = m + ( ( 1 * u | 0 ) + 15 & - 16 ) | 0 ; f = m ; m = m + ( ( 1 * u | 0 ) + 15 & - 16 ) | 0 ; h = m ; m = m + ( ( 1 * u | 0 ) + 15 & - 16 ) | 0 ; g = m ; m = m + ( ( 1 * u | 0 ) + 15 & - 16 ) | 0 ; if ( ( a | 0 ) > 0 ) { u = t + 4 | 0 ; _ = t + 1028 | 0 ; v = s + 48 | 0 ; y = l << 1 & 2147483646 ; b = 0 ; do { w = r [ _ + ( r [ u + ( b << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ; k = xi [ r [ ( r [ 456 + ( r [ o + 800 + ( w << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ) + 20 >> 2 ] & 15 ] ( e , r [ ( r [ v >> 2 ] | 0 ) + ( w << 2 ) >> 2 ] | 0 ) | 0 ; r [ g + ( b << 2 ) >> 2 ] = k ; r [ h + ( b << 2 ) >> 2 ] = ( k | 0 ) != 0 & 1 ; ai ( r [ ( r [ e >> 2 ] | 0 ) + ( b << 2 ) >> 2 ] | 0 , 0 , y | 0 ) | 0 ; b = b + 1 | 0 ; k = r [ d >> 2 ] | 0 } while ( ( b | 0 ) < ( k | 0 ) ) ; M = k } else M = a ; a = t + 1156 | 0 ; b = r [ a >> 2 ] | 0 ; if ( ( b | 0 ) > 0 ) { y = t + 1160 | 0 ; v = t + 2184 | 0 ; u = 0 ; do { _ = h + ( r [ y + ( u << 2 ) >> 2 ] << 2 ) | 0 ; k = h + ( r [ v + ( u << 2 ) >> 2 ] << 2 ) | 0 ; if ( ! ( ( r [ _ >> 2 ] | 0 ) == 0 ? ! ( r [ k >> 2 ] | 0 ) : 0 ) ) { r [ _ >> 2 ] = 1 ; r [ k >> 2 ] = 1 } u = u + 1 | 0 } while ( ( u | 0 ) < ( b | 0 ) ) } if ( ( r [ t >> 2 ] | 0 ) > 0 ) { u = t + 1092 | 0 ; v = s + 52 | 0 ; y = t + 4 | 0 ; k = M ; M = 0 ; while ( 1 ) { if ( ( k | 0 ) > 0 ) { _ = k ; w = 0 ; S = 0 ; while ( 1 ) { if ( ( r [ y + ( S << 2 ) >> 2 ] | 0 ) == ( M | 0 ) ) { r [ f + ( w << 2 ) >> 2 ] = ( r [ h + ( S << 2 ) >> 2 ] | 0 ) != 0 & 1 ; r [ p + ( w << 2 ) >> 2 ] = r [ ( r [ e >> 2 ] | 0 ) + ( S << 2 ) >> 2 ] ; A = r [ d >> 2 ] | 0 ; C = w + 1 | 0 } else { A = _ ; C = w } S = S + 1 | 0 ; if ( ( S | 0 ) >= ( A | 0 ) ) { T = C ; break } else { _ = A ; w = C } } } else T = 0 ; w = r [ u + ( M << 2 ) >> 2 ] | 0 ; Pi [ r [ ( r [ 464 + ( r [ o + 1312 + ( w << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ) + 28 >> 2 ] & 7 ] ( e , r [ ( r [ v >> 2 ] | 0 ) + ( w << 2 ) >> 2 ] | 0 , p , f , T ) | 0 ; w = M + 1 | 0 ; if ( ( w | 0 ) >= ( r [ t >> 2 ] | 0 ) ) break ; k = r [ d >> 2 ] | 0 ; M = w } E = r [ a >> 2 ] | 0 } else E = b ; if ( ( E | 0 ) > 0 ? ( b = r [ e >> 2 ] | 0 , a = t + 1160 | 0 , M = t + 2184 | 0 , k = ( l | 0 ) / 2 | 0 , ( l | 0 ) > 1 ) : 0 ) { l = E ; do { E = l ; l = l + - 1 | 0 ; T = r [ b + ( r [ a + ( l << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ; f = r [ b + ( r [ M + ( l << 2 ) >> 2 ] << 2 ) >> 2 ] | 0 ; p = 0 ; do { v = T + ( p << 2 ) | 0 ; $ = + c [ v >> 2 ] ; u = f + ( p << 2 ) | 0 ;
O = r [ y + ( P << 2 ) >> 2 ] | 0 ; N = r [ b + ( P << 2 ) >> 2 ] | 0 ; if ( T ) { L = 0 ; do { H = F + ( L + C << 2 ) | 0 ; B = + c [ H >> 2 ] ; j = B * B ; V = O + ( L << 2 ) | 0 ; c [ V >> 2 ] = j ; c [ N + ( L << 2 ) >> 2 ] = j ; if ( + c [ H >> 2 ] < 0 ) c [ V >> 2 ] = - + c [ V >> 2 ] ; V = U + ( L << 2 ) | 0 ; j = + c [ V >> 2 ] ; c [ V >> 2 ] = j * j ; L = L + 1 | 0 } while ( ( L | 0 ) < ( I | 0 ) ) ; q = O ; z = N } else { q = O ; z = N } } else G = 20 } else G = 20 ; if ( ( G | 0 ) == 20 ) { G = 0 ; q = r [ y + ( P << 2 ) >> 2 ] | 0 ; z = r [ b + ( P << 2 ) >> 2 ] | 0 } + Nt ( r [ h >> 2 ] | 0 , _ , q , z , U , 0 , C , I , R ) } P = P + 1 | 0 } while ( ( P | 0 ) != ( u | 0 ) ) } P = r [ S >> 2 ] | 0 ; if ( ( P | 0 ) > 0 ) { T = ( I | 0 ) > 0 ; x = l - C | 0 ; L = _ - C | 0 ; F = P ; V = 0 ; while ( 1 ) { H = r [ i + 1160 + ( V << 2 ) >> 2 ] | 0 ; K = r [ i + 2184 + ( V << 2 ) >> 2 ] | 0 ; Y = ( r [ o + ( H << 2 ) >> 2 ] | 0 ) + ( C << 2 ) | 0 ; X = ( r [ o + ( K << 2 ) >> 2 ] | 0 ) + ( C << 2 ) | 0 ; J = r [ y + ( H << 2 ) >> 2 ] | 0 ; Z = r [ y + ( K << 2 ) >> 2 ] | 0 ; Q = r [ b + ( H << 2 ) >> 2 ] | 0 ; ee = r [ b + ( K << 2 ) >> 2 ] | 0 ; te = r [ w + ( H << 2 ) >> 2 ] | 0 ; ne = r [ w + ( K << 2 ) >> 2 ] | 0 ; ie = r [ k + ( H << 2 ) >> 2 ] | 0 ; ae = r [ k + ( K << 2 ) >> 2 ] | 0 ; re = M + ( H << 2 ) | 0 ; H = M + ( K << 2 ) | 0 ; if ( ( r [ re >> 2 ] | 0 ) == 0 ? ( r [ H >> 2 ] | 0 ) == 0 : 0 ) oe = F ; else { r [ H >> 2 ] = 1 ; r [ re >> 2 ] = 1 ; if ( T ) { re = 0 ; do { do if ( ( re | 0 ) < ( x | 0 ) ) { H = ie + ( re << 2 ) | 0 ; K = Z + ( re << 2 ) | 0 ; j = + c [ K >> 2 ] ; se = J + ( re << 2 ) | 0 ; B = + c [ se >> 2 ] ; le = ae + ( re << 2 ) | 0 ; if ( ( r [ H >> 2 ] | 0 ) == 0 ? ( r [ le >> 2 ] | 0 ) == 0 : 0 ) { ce = B + j ; if ( ( re | 0 ) < ( L | 0 ) ) { c [ se >> 2 ] = ce ; c [ Q + ( re << 2 ) >> 2 ] = + D ( + ce ) } else { de = + D ( + j ) + + D ( + B ) ; c [ Q + ( re << 2 ) >> 2 ] = de ; c [ se >> 2 ] = ce < 0 ? - de : de } c [ ee + ( re << 2 ) >> 2 ] = 0 ; c [ K >> 2 ] = 0 ; r [ le >> 2 ] = 1 ; r [ X + ( re << 2 ) >> 2 ] = 0 ; break } c [ se >> 2 ] = + D ( + j ) + + D ( + B ) ; se = Q + ( re << 2 ) | 0 ; c [ se >> 2 ] = + c [ ee + ( re << 2 ) >> 2 ] + + c [ se >> 2 ] ; r [ le >> 2 ] = 1 ; r [ H >> 2 ] = 1 ; H = Y + ( re << 2 ) | 0 ; le = r [ H >> 2 ] | 0 ; se = X + ( re << 2 ) | 0 ; K = r [ se >> 2 ] | 0 ; if ( ( ( ( le | 0 ) > - 1 ? le : 0 - le | 0 ) | 0 ) > ( ( ( K | 0 ) > - 1 ? K : 0 - K | 0 ) | 0 ) ) { ue = ( le | 0 ) > 0 ? le - K | 0 : K - le | 0 ; pe = se } else { r [ se >> 2 ] = ( K | 0 ) > 0 ? le - K | 0 : K - le | 0 ; ue = K ; pe = H } r [ pe >> 2 ] = ue ; K = r [ se >> 2 ] | 0 ; le = r [ H >> 2 ] | 0 ; if ( ( K | 0 ) >= ( ( ( le | 0 ) > - 1 ? le : 0 - le | 0 ) << 1 | 0 ) ) { r [ se >> 2 ] = 0 - K ; r [ H >> 2 ] = 0 - ( r [ H >> 2 ] | 0 ) } } while ( 0 ) ; H = te + ( re << 2 ) | 0 ; K = ne + ( re << 2 ) | 0 ; B = + c [ K >> 2 ] + + c [ H >> 2 ] ; c [ K >> 2 ] = B ; c [ H >> 2 ] = B ; re = re + 1 | 0 } while ( ( re | 0 ) < ( I | 0 ) ) } + Nt ( r [ h >> 2 ] | 0 , _ , J , Q , te , ie , C , I , Y ) ; oe = r [ S >> 2 ] | 0 } V = V + 1 | 0 ; if ( ( V | 0 ) >= ( oe | 0 ) ) { fe = oe ; break } else F = oe } } else fe = P ; C = C + g | 0 } while ( ( f | 0 ) > ( C | 0 ) ) ; me = fe } else me = E ; if ( ( me | 0 ) > 0 ) { he = me ; ge = 0 } else { m = p ; return } while ( 1 ) { me = s + ( r [ i + 1160 + ( ge << 2 ) >> 2 ] << 2 ) | 0 ; E = i + 2184 + ( ge << 2 ) | 0 ; if ( ( r [ me >> 2 ] | 0 ) == 0 ? ( r [ s + ( r [ E >> 2 ] << 2 ) >> 2 ] | 0 ) == 0 : 0 ) _e = he ; else { r [ me >> 2 ] = 1 ; r [ s + ( r [ E >> 2 ] << 2 ) >> 2 ] = 1 ; _e = r [ S >> 2 ] | 0 } ge = ge + 1 | 0 ; if ( ( ge | 0 ) >= ( _e | 0 ) ) break ; else he = _e } m = p ; return } function Nt ( e , t , n , i , a , o , s , l , u ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; o = o | 0 ; s = s | 0 ; l = l | 0 ; u = u | 0 ; var f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 , P = 0 , D = 0 , O = 0 ; f = m ; h = m ; m = m + ( ( 1 * ( l << 2 ) | 0 ) + 15 & - 16 ) | 0 ; if ( ! ( r [ e + 500 >> 2 ] | 0 ) ) g = l ; else g = ( r [ e + 504 >> 2 ] | 0 ) - s | 0 ; _ = ( g | 0 ) > ( l | 0 ) ? l : g ; e : do if ( ( _ | 0 ) > 0 ) { if ( ! o ) { g = 0 ; while ( 1 ) { v = + c [ n + ( g << 2 ) >> 2 ] < 0 ; y = + Gn ( + R ( + ( + c [ i + ( g << 2 ) >> 2 ] / + c [ a + ( g << 2 ) >> 2 ] ) ) ) ; r [ u + ( g << 2 ) >> 2 ] = ~ ~ ( v ? - y : y ) ; g = g + 1 | 0 ; if ( ( g | 0 ) >= ( _ | 0 ) ) { b = _ ; break e } } } else w = 0 ; do { if ( ! ( r [ o + ( w << 2 ) >> 2 ] | 0 ) ) { g = + c [ n + ( w << 2 ) >> 2 ] < 0 ; y = + Gn ( + R ( + ( + c [ i + ( w << 2 ) >> 2 ] / + c [ a + ( w << 2 ) >> 2 ] ) ) ) ; r [ u + ( w << 2 ) >> 2 ] = ~ ~ ( g ? - y : y ) } w = w + 1 | 0 } while ( ( w | 0 ) < ( _ | 0 ) ) ; b = _ } else b = 0 ; while ( 0 ) ; if ( ( b | 0 ) >= ( l | 0 ) ) { k = 0 ; m = f ; return + k } _ = t - s | 0 ; if ( ! o ) { y = 0 ; s = 0 ; t = b ; while ( 1 ) { w = i + ( t << 2 ) | 0 ; M = + c [ a + ( t << 2 ) >> 2 ] ; S = + c [ w >> 2 ] / M ; if ( S < . 25 ) { r [ h + ( s << 2 ) >> 2 ] = w ; A = S + y ; C = s + 1 | 0 } else { g = + c [ n + ( t << 2 ) >> 2 ] < 0 ; T = + Gn ( + R ( + S ) ) ; v = ~ ~ ( g ? - T : T ) ; r [ u + ( t << 2 ) >> 2 ] = v ; c [ w >> 2 ] = + ( W ( v , v ) | 0 ) * M ; A = y ; C = s } t = t + 1 | 0 ; if ( ( t | 0 ) == ( l | 0 ) ) { E = A ; $ = C ; break } else { y = A ; s = C } } } else { A = 0 ; C = 0 ; s = b ; while ( 1 ) { do if ( ! ( r [ o + ( s << 2 ) >> 2 ] | 0 ) ) { b = i + ( s << 2 ) | 0 ; y = + c [ a + ( s << 2 ) >> 2 ] ; M = + c [ b >> 2 ] / y ; if ( ! ( M < . 25 ) | ( s | 0 ) < ( _ | 0 ) ) { t = + c [ n + ( s << 2 ) >> 2 ] < 0 ; T = + Gn ( + R ( + M ) ) ; v = ~ ~ ( t ? - T : T ) ; r [ u + ( s << 2 ) >> 2 ] = v ; c [ b >> 2 ] = + ( W ( v , v ) | 0 ) * y ; I = A ; x = C ; break } else { r [ h + ( C << 2 ) >> 2 ] = b ; I = M + A ; x = C + 1 | 0 ; break } } else { I = A ; x = C } while ( 0 ) ; s = s + 1 | 0 ; if ( ( s | 0 ) == ( l | 0 ) ) { E = I ; $ = x ; break } else { A = I ; C = x } } } if ( ! $ ) { k = E ; m = f ; return + k } Ln ( h , $ , 4 , 12 ) ; if ( ( $ | 0 ) <= 0 ) { k = E ; m = f ; return + k } x = i ; I = + d [ e + 512 >> 3 ] ; A = E ; e = 0 ; while ( 1 ) { i = r [ h + ( e << 2 ) >> 2 ] | 0 ; C = i - x >> 2 ; if ( ! ( A >= I ) ) { P = 0 ; D = A ; O = 0 } else { P = + c [ a + ( C << 2 ) >> 2 ] ; D = A + - 1 ; O = ~ ~ ( r [ p >> 2 ] = r [ n + ( C << 2 ) >> 2 ] & - 2147483648 | 1065353216 , + c [ p >> 2 ] ) } r [ u + ( C << 2 ) >> 2 ] = O ; c [ i >> 2 ] = P ; e = e + 1 | 0 ; if ( ( e | 0 ) == ( $ | 0 ) ) { k = D ; break } else A = D } m = f ; return + k } function Lt ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 , i = 0 ; n = + c [ r [ e >> 2 ] >> 2 ] ; i = + c [ r [ t >> 2 ] >> 2 ] ; return ( n < i & 1 ) - ( n > i & 1 ) | 0 } function Ft ( e , t , n , i , a ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; i = i | 0 ; a = a | 0 ; var o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 , P = 0 , D = 0 , R = 0 , O = 0 , N = 0 , L = 0 , F = 0 , U = 0 , B = 0 , H = 0 , j = 0 , V = 0 , q = 0 ; o = r [ e >> 2 ] | 0 ; s = r [ e + ( ( t + - 1 | 0 ) * 56 | 0 ) + 4 >> 2 ] | 0 ; if ( ( t | 0 ) > 0 ) { l = + c [ a + 1108 >> 2 ] ; d = 0 ; a = 0 ; u = 0 ; p = 0 ; f = 0 ; m = 0 ; while ( 1 ) { h = r [ e + ( a * 56 | 0 ) + 52 >> 2
} t = e + 12 | 0 ; n = r [ t >> 2 ] | 0 ; if ( n | 0 ) { Xn ( r [ n >> 2 ] | 0 ) ; Xn ( r [ ( r [ t >> 2 ] | 0 ) + 4 >> 2 ] | 0 ) ; Xn ( r [ ( r [ t >> 2 ] | 0 ) + 8 >> 2 ] | 0 ) ; Xn ( r [ t >> 2 ] | 0 ) } t = e ; e = t + 52 | 0 ; do { r [ t >> 2 ] = 0 ; t = t + 4 | 0 } while ( ( t | 0 ) < ( e | 0 ) ) ; return } function on ( e ) { e = e | 0 ; if ( ! e ) return ; Xn ( e ) ; return } function sn ( e ) { e = e | 0 ; var t = 0 ; t = e ; e = t + 48 | 0 ; do { r [ t >> 2 ] = 0 ; t = t + 4 | 0 } while ( ( t | 0 ) < ( e | 0 ) ) ; return } function ln ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , c = 0 , d = 0 , u = 0 , p = 0 , f = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 , $ = 0 , I = 0 , x = 0 , P = 0 ; i = m ; m = m + 144 | 0 ; a = i ; o = ( n | 0 ) != 0 ; s = Yn ( ( o ? n : t ) << 2 ) | 0 ; ai ( a | 0 , 0 , 132 ) | 0 ; l = ( t | 0 ) > 0 ; e : do if ( l ) { c = a + 4 | 0 ; d = ( n | 0 ) == 0 & 1 ; u = 0 ; p = 0 ; t : while ( 1 ) { f = r [ e + ( p << 2 ) >> 2 ] | 0 ; n : do if ( ( f | 0 ) > 0 ) { h = r [ a + ( f << 2 ) >> 2 ] | 0 ; if ( ! ( ( f | 0 ) > 31 | ( h >>> f | 0 ) == 0 ) ) break t ; g = u + 1 | 0 ; r [ s + ( u << 2 ) >> 2 ] = h ; _ = a + ( f << 2 ) | 0 ; i : do if ( ! ( h & 1 ) ) { v = h ; y = _ ; b = f ; while ( 1 ) { r [ y >> 2 ] = v + 1 ; w = b + - 1 | 0 ; if ( ( b | 0 ) <= 1 ) break i ; v = r [ a + ( w << 2 ) >> 2 ] | 0 ; k = a + ( w << 2 ) | 0 ; if ( v & 1 | 0 ) { M = k ; S = w ; A = 7 ; break } else { y = k ; b = w } } } else { M = _ ; S = f ; A = 7 } while ( 0 ) ; do if ( ( A | 0 ) == 7 ) { A = 0 ; if ( ( S | 0 ) == 1 ) { r [ c >> 2 ] = ( r [ c >> 2 ] | 0 ) + 1 ; break } else { r [ M >> 2 ] = r [ a + ( S + - 1 << 2 ) >> 2 ] << 1 ; break } } while ( 0 ) ; _ = f + 1 | 0 ; if ( ( _ | 0 ) < 33 ) { b = h ; y = f ; v = _ ; while ( 1 ) { _ = a + ( v << 2 ) | 0 ; w = b ; b = r [ _ >> 2 ] | 0 ; if ( ( b >>> 1 | 0 ) != ( w | 0 ) ) { C = g ; break n } r [ _ >> 2 ] = r [ a + ( y << 2 ) >> 2 ] << 1 ; _ = v + 1 | 0 ; if ( ( _ | 0 ) >= 33 ) { C = g ; break } else { w = v ; v = _ ; y = w } } } else C = g } else C = u + d | 0 ; while ( 0 ) ; p = p + 1 | 0 ; if ( ( p | 0 ) >= ( t | 0 ) ) break e ; else u = C } Xn ( s ) ; T = 0 ; m = i ; return T | 0 } while ( 0 ) ; e : do if ( ( n | 0 ) != 1 ) { C = 1 ; while ( 1 ) { if ( r [ a + ( C << 2 ) >> 2 ] & - 1 >>> ( 32 - C | 0 ) | 0 ) break ; C = C + 1 | 0 ; if ( ( C | 0 ) >= 33 ) break e } Xn ( s ) ; T = 0 ; m = i ; return T | 0 } while ( 0 ) ; if ( ! l ) { T = s ; m = i ; return T | 0 } if ( o ) { E = 0 ; $ = 0 } else { o = 0 ; do { l = r [ e + ( o << 2 ) >> 2 ] | 0 ; a = s + ( o << 2 ) | 0 ; if ( ( l | 0 ) > 0 ) { n = r [ a >> 2 ] | 0 ; C = 0 ; S = 0 ; while ( 1 ) { M = n >>> C & 1 | S << 1 ; C = C + 1 | 0 ; if ( ( C | 0 ) >= ( l | 0 ) ) { I = M ; break } else S = M } } else I = 0 ; o = o + 1 | 0 ; r [ a >> 2 ] = I } while ( ( o | 0 ) != ( t | 0 ) ) ; T = s ; m = i ; return T | 0 } while ( 1 ) { o = r [ e + ( $ << 2 ) >> 2 ] | 0 ; if ( ( o | 0 ) > 0 ) { I = r [ s + ( E << 2 ) >> 2 ] | 0 ; S = 0 ; l = 0 ; while ( 1 ) { C = I >>> S & 1 | l << 1 ; S = S + 1 | 0 ; if ( ( S | 0 ) >= ( o | 0 ) ) { x = C ; break } else l = C } } else x = 0 ; if ( ! o ) P = E ; else { r [ s + ( E << 2 ) >> 2 ] = x ; P = E + 1 | 0 } $ = $ + 1 | 0 ; if ( ( $ | 0 ) == ( t | 0 ) ) { T = s ; break } else E = P } m = i ; return T | 0 } function cn ( e , t ) { e = e | 0 ; t = t | 0 ; var n = 0 ; n = r [ r [ e >> 2 ] >> 2 ] | 0 ; e = r [ r [ t >> 2 ] >> 2 ] | 0 ; return ( n >>> 0 > e >>> 0 & 1 ) - ( n >>> 0 < e >>> 0 & 1 ) | 0 } function dn ( e , t , n ) { e = e | 0 ; t = t | 0 ; n = n | 0 ; var i = 0 , a = 0 , o = 0 , s = 0 , l = 0 , d = 0 , u = 0 , p = 0 , f = 0 , m = 0 , h = 0 , g = 0 , _ = 0 , v = 0 , y = 0 , b = 0 , w = 0 , k = 0 , M = 0 , S = 0 , A = 0 , C = 0 , T = 0 , E = 0 ; i = r [ e + 12 >> 2 ] | 0 ; if ( ( i + - 1 | 0 ) >>> 0 >= 2 ) { a = 0 ; return a | 0 } o = r [ e + 16 >> 2 ] | 0 ; s = + ( o & 2097151 | 0 ) ; l = + Wn ( ( o | 0 ) < 0 ? - s : s , ( o >>> 21 & 1023 ) + - 788 | 0 ) ; o = r [ e + 20 >> 2 ] | 0 ; s = + ( o & 2097151 | 0 ) ; d = + Wn ( ( o | 0 ) < 0 ? - s : s , ( o >>> 21 & 1023 ) + - 788 | 0 ) ; o = r [ e >> 2 ] | 0 ; u = Jn ( W ( o , t ) | 0 , 4 ) | 0 ; switch ( i | 0 ) { case 1 : { i = r [ e + 4 >> 2 ] | 0 ; if ( ( o | 0 ) <= 0 ) while ( 1 ) { } t = ~ ~ + P ( + + O ( + + ( i | 0 ) , + ( 1 / + ( o | 0 ) ) ) ) ; while ( 1 ) { p = t + 1 | 0 ; f = 1 ; m = 1 ; h = 0 ; do { f = W ( f , t ) | 0 ; m = W ( m , p ) | 0 ; h = h + 1 | 0 } while ( ( h | 0 ) != ( o | 0 ) ) ; if ( ( m | 0 ) > ( i | 0 ) & ( f | 0 ) <= ( i | 0 ) ) break ; else t = ( ( f | 0 ) > ( i | 0 ) ? - 1 : 1 ) + t | 0 } if ( ( i | 0 ) <= 0 ) { a = u ; return a | 0 } h = ( n | 0 ) == 0 ; p = e + 8 | 0 ; g = e + 32 | 0 ; s = d ; _ = l ; v = e + 28 | 0 ; y = 0 ; b = 0 ; while ( 1 ) { if ( h ) { w = r [ g >> 2 ] | 0 ; k = W ( y , o ) | 0 ; if ( ! ( r [ v >> 2 ] | 0 ) ) { M = 1 ; S = 0 ; do { c [ u + ( k + S << 2 ) >> 2 ] = _ + + D ( + + ( r [ w + ( ( ( ( b | 0 ) / ( M | 0 ) | 0 | 0 ) % ( t | 0 ) | 0 ) << 2 ) >> 2 ] | 0 ) ) * s ; M = W ( M , t ) | 0 ; S = S + 1 | 0 } while ( ( S | 0 ) < ( o | 0 ) ) ; A = 21 } else { S = 1 ; M = 0 ; C = 0 ; do { C = C + _ + + D ( + + ( r [ w + ( ( ( ( b | 0 ) / ( S | 0 ) | 0 | 0 ) % ( t | 0 ) | 0 ) << 2 ) >> 2 ] | 0 ) ) * s ; c [ u + ( k + M << 2 ) >> 2 ] = C ; S = W ( S , t ) | 0 ; M = M + 1 | 0 } while ( ( M | 0 ) < ( o | 0 ) ) ; A = 21 } } else if ( r [ ( r [ p >> 2 ] | 0 ) + ( b << 2 ) >> 2 ] | 0 ) { M = r [ g >> 2 ] | 0 ; S = W ( r [ n + ( y << 2 ) >> 2 ] | 0 , o ) | 0 ; if ( ! ( r [ v >> 2 ] | 0 ) ) { k = 1 ; w = 0 ; do { c [ u + ( S + w << 2 ) >> 2 ] = _ + + D ( + + ( r [ M + ( ( ( ( b | 0 ) / ( k | 0 ) | 0 | 0 ) % ( t | 0 ) | 0 ) << 2 ) >> 2 ] | 0 ) ) * s ; k = W ( k , t ) | 0 ; w = w + 1 | 0 } while ( ( w | 0 ) < ( o | 0 ) ) ; A = 21 } else { w = 1 ; k = 0 ; C = 0 ; do { C = C + _ + + D ( + + ( r [ M + ( ( ( ( b | 0 ) / ( w | 0 ) | 0 | 0 ) % ( t | 0 ) | 0 ) << 2 ) >> 2 ] | 0 ) ) * s ; c [ u + ( S + k << 2 ) >> 2 ] = C ; w = W ( w , t ) | 0 ; k = k + 1 | 0 } while ( ( k | 0 ) < ( o | 0 ) ) ; A = 21 } } else T = y ; if ( ( A | 0 ) == 21 ) { A = 0 ; T = y + 1 | 0 } b = b + 1 | 0 ; if ( ( b | 0 ) >= ( i | 0 ) ) { a = u ; break } else y = T } return a | 0 } case 2 : { T = r [ e + 4 >> 2 ] | 0 ; if ( ( T | 0 ) <= 0 ) { a = u ; return a | 0 } y = ( n | 0 ) != 0 ; i = e + 8 | 0 ; b = e + 32 | 0 ; s = d ; d = l ; A = e + 28 | 0 ; e = ( o | 0 ) > 0 ; t = 0 ; v = 0 ; while ( 1 ) { if ( y ? ( r [ ( r [ i >> 2 ] | 0 ) + ( v << 2 ) >> 2 ] | 0 ) == 0 : 0 ) E = t ; else { if ( e ) { g = r [ b >> 2 ] | 0 ; p = ( r [ A >> 2 ] | 0 ) == 0 ; if ( y ) { h = W ( o , v ) | 0 ; k = W ( r [ n + ( t << 2 ) >> 2 ] | 0 , o ) | 0 ; if ( p ) { w = 0 ; do { c [ u + ( k + w << 2 ) >> 2 ] = d + + D ( + + ( r [ g + ( h + w << 2 ) >> 2 ] | 0 ) ) * s ; w = w + 1 | 0 } while ( ( w | 0 ) < ( o | 0 ) ) } else { w = 0 ; l = 0 ; do { l = l + d + + D ( + + ( r [ g + ( h + w << 2 ) >> 2 ] | 0 ) ) * s ; c [ u + ( k + w << 2 ) >> 2 ] = l ; w = w + 1 | 0 } while ( ( w | 0 ) < ( o | 0 ) ) } } else { w = W ( o , v ) | 0 ; k = W ( t , o ) | 0 ; if ( p ) { h = 0 ; do { c [ u + ( k + h << 2 ) >> 2 ] = d + + D ( + + ( r [ g + ( w + h << 2 ) >> 2 ] | 0 ) ) * s ; h = h + 1 | 0 } while ( ( h | 0 ) < ( o | 0 ) ) } else { h = 0 ; l = 0 ; do { l = l + d + + D ( + + ( r [ g + ( w + h << 2 ) >> 2 ]
b = l << p ; l = ( b + 245760 | 0 ) >>> 16 & 2 ; s = 14 - ( p | u | l ) + ( b << l >>> 15 ) | 0 ; P = y >>> ( s + 7 | 0 ) & 1 | s << 1 } else P = 0 ; s = r [ 58292 + ( P << 2 ) >> 2 ] | 0 ; e : do if ( ! s ) { D = _ ; R = 0 ; O = 0 ; N = 81 } else { l = _ ; b = 0 ; u = y << ( ( P | 0 ) == 31 ? 0 : 25 - ( P >>> 1 ) | 0 ) ; p = s ; v = 0 ; while ( 1 ) { c = ( r [ p + 4 >> 2 ] & - 8 ) - y | 0 ; if ( c >>> 0 < l >>> 0 ) if ( ! c ) { L = 0 ; F = p ; U = p ; N = 85 ; break e } else { B = c ; H = p } else { B = l ; H = v } c = r [ p + 20 >> 2 ] | 0 ; p = r [ p + 16 + ( u >>> 31 << 2 ) >> 2 ] | 0 ; f = ( c | 0 ) == 0 | ( c | 0 ) == ( p | 0 ) ? b : c ; c = ( p | 0 ) == 0 ; if ( c ) { D = B ; R = f ; O = H ; N = 81 ; break } else { l = B ; b = f ; u = u << ( ( c ^ 1 ) & 1 ) ; v = H } } } while ( 0 ) ; if ( ( N | 0 ) == 81 ) { if ( ( R | 0 ) == 0 & ( O | 0 ) == 0 ) { s = 2 << P ; _ = h & ( s | 0 - s ) ; if ( ! _ ) { x = y ; break } s = ( _ & 0 - _ ) + - 1 | 0 ; _ = s >>> 12 & 16 ; i = s >>> _ ; s = i >>> 5 & 8 ; a = i >>> s ; i = a >>> 2 & 4 ; o = a >>> i ; a = o >>> 1 & 2 ; d = o >>> a ; o = d >>> 1 & 1 ; j = r [ 58292 + ( ( s | _ | i | a | o ) + ( d >>> o ) << 2 ) >> 2 ] | 0 ; V = 0 } else { j = R ; V = O } if ( ! j ) { q = D ; z = V } else { L = D ; F = j ; U = V ; N = 85 } } if ( ( N | 0 ) == 85 ) while ( 1 ) { N = 0 ; o = ( r [ F + 4 >> 2 ] & - 8 ) - y | 0 ; d = o >>> 0 < L >>> 0 ; a = d ? o : L ; o = d ? F : U ; F = r [ F + 16 + ( ( ( r [ F + 16 >> 2 ] | 0 ) == 0 & 1 ) << 2 ) >> 2 ] | 0 ; if ( ! F ) { q = a ; z = o ; break } else { L = a ; U = o ; N = 85 } } if ( ( z | 0 ) != 0 ? q >>> 0 < ( ( r [ 14499 ] | 0 ) - y | 0 ) >>> 0 : 0 ) { o = r [ 14501 ] | 0 ; if ( z >>> 0 < o >>> 0 ) pe ( ) ; a = z + y | 0 ; if ( z >>> 0 >= a >>> 0 ) pe ( ) ; d = r [ z + 24 >> 2 ] | 0 ; i = r [ z + 12 >> 2 ] | 0 ; do if ( ( i | 0 ) == ( z | 0 ) ) { _ = z + 20 | 0 ; s = r [ _ >> 2 ] | 0 ; if ( ! s ) { v = z + 16 | 0 ; u = r [ v >> 2 ] | 0 ; if ( ! u ) { W = 0 ; break } else { G = u ; K = v } } else { G = s ; K = _ } while ( 1 ) { _ = G + 20 | 0 ; s = r [ _ >> 2 ] | 0 ; if ( s | 0 ) { G = s ; K = _ ; continue } _ = G + 16 | 0 ; s = r [ _ >> 2 ] | 0 ; if ( ! s ) break ; else { G = s ; K = _ } } if ( K >>> 0 < o >>> 0 ) pe ( ) ; else { r [ K >> 2 ] = 0 ; W = G ; break } } else { _ = r [ z + 8 >> 2 ] | 0 ; if ( _ >>> 0 < o >>> 0 ) pe ( ) ; s = _ + 12 | 0 ; if ( ( r [ s >> 2 ] | 0 ) != ( z | 0 ) ) pe ( ) ; v = i + 8 | 0 ; if ( ( r [ v >> 2 ] | 0 ) == ( z | 0 ) ) { r [ s >> 2 ] = i ; r [ v >> 2 ] = _ ; W = i ; break } else pe ( ) } while ( 0 ) ; e : do if ( d ) { i = r [ z + 28 >> 2 ] | 0 ; o = 58292 + ( i << 2 ) | 0 ; do if ( ( z | 0 ) == ( r [ o >> 2 ] | 0 ) ) { r [ o >> 2 ] = W ; if ( ! W ) { _ = h & ~ ( 1 << i ) ; r [ 14498 ] = _ ; Y = _ ; break e } } else if ( d >>> 0 >= ( r [ 14501 ] | 0 ) >>> 0 ) { r [ d + 16 + ( ( ( r [ d + 16 >> 2 ] | 0 ) != ( z | 0 ) & 1 ) << 2 ) >> 2 ] = W ; if ( ! W ) { Y = h ; break e } else break } else pe ( ) ; while ( 0 ) ; i = r [ 14501 ] | 0 ; if ( W >>> 0 < i >>> 0 ) pe ( ) ; r [ W + 24 >> 2 ] = d ; o = r [ z + 16 >> 2 ] | 0 ; do if ( o | 0 ) if ( o >>> 0 < i >>> 0 ) pe ( ) ; else { r [ W + 16 >> 2 ] = o ; r [ o + 24 >> 2 ] = W ; break } while ( 0 ) ; o = r [ z + 20 >> 2 ] | 0 ; if ( o ) if ( o >>> 0 < ( r [ 14501 ] | 0 ) >>> 0 ) pe ( ) ; else { r [ W + 20 >> 2 ] = o ; r [ o + 24 >> 2 ] = W ; Y = h ; break } else Y = h } else Y = h ; while ( 0 ) ; do if ( q >>> 0 >= 16 ) { r [ z + 4 >> 2 ] = y | 3 ; r [ a + 4 >> 2 ] = q | 1 ; r [ a + q >> 2 ] = q ; h = q >>> 3 ; if ( q >>> 0 < 256 ) { d = 58028 + ( h << 1 << 2 ) | 0 ; o = r [ 14497 ] | 0 ; i = 1 << h ; if ( o & i ) { h = d + 8 | 0 ; _ = r [ h >> 2 ] | 0 ; if ( _ >>> 0 < ( r [ 14501 ] | 0 ) >>> 0 ) pe ( ) ; else { X = h ; J = _ } } else { r [ 14497 ] = o | i ; X = d + 8 | 0 ; J = d } r [ X >> 2 ] = a ; r [ J + 12 >> 2 ] = a ; r [ a + 8 >> 2 ] = J ; r [ a + 12 >> 2 ] = d ; break } d = q >>> 8 ; if ( d ) if ( q >>> 0 > 16777215 ) Z = 31 ; else { i = ( d + 1048320 | 0 ) >>> 16 & 8 ; o = d << i ; d = ( o + 520192 | 0 ) >>> 16 & 4 ; _ = o << d ; o = ( _ + 245760 | 0 ) >>> 16 & 2 ; h = 14 - ( d | i | o ) + ( _ << o >>> 15 ) | 0 ; Z = q >>> ( h + 7 | 0 ) & 1 | h << 1 } else Z = 0 ; h = 58292 + ( Z << 2 ) | 0 ; r [ a + 28 >> 2 ] = Z ; o = a + 16 | 0 ; r [ o + 4 >> 2 ] = 0 ; r [ o >> 2 ] = 0 ; o = 1 << Z ; if ( ! ( Y & o ) ) { r [ 14498 ] = Y | o ; r [ h >> 2 ] = a ; r [ a + 24 >> 2 ] = h ; r [ a + 12 >> 2 ] = a ; r [ a + 8 >> 2 ] = a ; break } o = q << ( ( Z | 0 ) == 31 ? 0 : 25 - ( Z >>> 1 ) | 0 ) ; _ = r [ h >> 2 ] | 0 ; while ( 1 ) { if ( ( r [ _ + 4 >> 2 ] & - 8 | 0 ) == ( q | 0 ) ) { N = 139 ; break } Q = _ + 16 + ( o >>> 31 << 2 ) | 0 ; h = r [ Q >> 2 ] | 0 ; if ( ! h ) { N = 136 ; break } else { o = o << 1 ; _ = h } } if ( ( N | 0 ) == 136 ) if ( Q >>> 0 < ( r [ 14501 ] | 0 ) >>> 0 ) pe ( ) ; else { r [ Q >> 2 ] = a ; r [ a + 24 >> 2 ] = _ ; r [ a + 12 >> 2 ] = a ; r [ a + 8 >> 2 ] = a ; break } else if ( ( N | 0 ) == 139 ) { o = _ + 8 | 0 ; h = r [ o >> 2 ] | 0 ; i = r [ 14501 ] | 0 ; if ( h >>> 0 >= i >>> 0 & _ >>> 0 >= i >>> 0 ) { r [ h + 12 >> 2 ] = a ; r [ o >> 2 ] = a ; r [ a + 8 >> 2 ] = h ; r [ a + 12 >> 2 ] = _ ; r [ a + 24 >> 2 ] = 0 ; break } else pe ( ) } } else { h = q + y | 0 ; r [ z + 4 >> 2 ] = h | 3 ; o = z + h + 4 | 0 ; r [ o >> 2 ] = r [ o >> 2 ] | 1 } while ( 0 ) ; g = z + 8 | 0 ; m = t ; return g | 0 } else x = y } else x = y } else x = - 1 ; while ( 0 ) ; z = r [ 14499 ] | 0 ; if ( z >>> 0 >= x >>> 0 ) { q = z - x | 0 ; Q = r [ 14502 ] | 0 ; if ( q >>> 0 > 15 ) { Z = Q + x | 0 ; r [ 14502 ] = Z ; r [ 14499 ] = q ; r [ Z + 4 >> 2 ] = q | 1 ; r [ Z + q >> 2 ] = q ; r [ Q + 4 >> 2 ] = x | 3 } else { r [ 14499 ] = 0 ; r [ 14502 ] = 0 ; r [ Q + 4 >> 2 ] = z | 3 ; q = Q + z + 4 | 0 ; r [ q >> 2 ] = r [ q >> 2 ] | 1 } g = Q + 8 | 0 ; m = t ; return g | 0 } Q = r [ 14500 ] | 0 ; if ( Q >>> 0 > x >>> 0 ) { q = Q - x | 0 ; r [ 14500 ] = q ; z = r [ 14503 ] | 0 ; Z = z + x | 0 ; r [ 14503 ] = Z ; r [ Z + 4 >> 2 ] = q | 1 ; r [ z + 4 >> 2 ] = x | 3 ; g = z + 8 | 0 ; m = t ; return g | 0 } if ( ! ( r [ 14615 ] | 0 ) ) { r [ 14617 ] = 4096 ; r [ 14616 ] = 4096 ; r [ 14618 ] = - 1 ; r [ 14619 ] = - 1 ; r [ 14620 ] = 0 ; r [ 14608 ] = 0 ; z = n & - 16 ^ 1431655768 ; r [ n >> 2 ] = z ; r [ 14615 ] = z ; ee = 4096 } else ee = r [ 14617 ] | 0 ; z = x + 48 | 0 ; n = x + 47 | 0 ; q = ee + n | 0 ; Z = 0 - ee | 0 ; ee = q & Z ; if ( ee >>> 0 <= x >>> 0 ) { g = 0 ; m = t ; return g | 0 } Y = r [ 14607 ] | 0 ; if ( Y | 0 ? ( J = r [ 14605 ] | 0 , X = J + ee | 0 , X >>> 0 <= J >>> 0 | X >>> 0 > Y >>> 0 ) : 0 ) { g = 0 ; m = t ; return g | 0 } e : do if ( ! ( r [ 14608 ] & 4 ) ) { Y = r [ 14503 ] | 0 ; t : do if ( Y ) { X = 58436 ; while ( 1 ) { J = r [ X >> 2 ] | 0 ; if ( J >>> 0 <= Y >>> 0 ? ( te = X + 4 | 0 , ( J + ( r [ te >> 2 ] | 0 ) | 0 ) >>> 0 > Y >>> 0 ) : 0 ) break ; J = r [ X + 8 >> 2 ] | 0 ; if ( ! J ) { N = 163 ; break t } else X = J } _ = q - Q & Z ; if ( _ >>> 0 < 2147483647 ) { J = si ( _ | 0 ) | 0 ; if ( ( J | 0 ) == ( ( r [ X >> 2 ] | 0 ) + ( r [ te >> 2 ] | 0 ) | 0 ) ) if ( ( J | 0 ) == ( - 1 | 0 ) ) ne = _ ; else { ie = J ; ae = _ ; N = 180 ; break e } else { re = J ; oe
} } ; e . exports = a } , function ( e , t ) { function n ( ) { function e ( ) { var e = 0 , n = function ( t ) { return e ++ , t < 2 ? t : n ( t - 2 ) + n ( t - 1 ) } , a = t ( ) ; n ( 30 ) ; var r = t ( ) - a ; i = e / r } var t , n = this ; t = window . performance && window . performance . now ? function ( ) { return window . performance . now ( ) } : function ( ) { return Date . now ( ) } ; var i = null ; Object . defineProperty ( n , "speed" , { get : function ( ) { return null === i && e ( ) , i } } ) , Object . defineProperty ( n , "slowCutoff" , { get : function ( ) { return 5e4 } } ) , Object . defineProperty ( n , "tooSlowCutoff" , { get : function ( ) { return 0 } } ) , Object . defineProperty ( n , "slow" , { get : function ( ) { return n . speed < n . slowCutoff } } ) , Object . defineProperty ( n , "tooSlow" , { get : function ( ) { return n . speed < n . tooSlowCutoff } } ) } e . exports = n } ] ) , ! function ( e , t ) { "object" == typeof exports && "object" == typeof module ? module . exports = t ( ) : "function" == typeof define && define . amd ? define ( [ ] , t ) : "object" == typeof exports ? exports . Recorder = t ( ) : e . Recorder = t ( ) } ( this , function ( ) { return function ( e ) { function t ( i ) { if ( n [ i ] ) return n [ i ] . exports ; var a = n [ i ] = { i : i , l : ! 1 , exports : { } } ; return e [ i ] . call ( a . exports , a , a . exports , t ) , a . l = ! 0 , a . exports } var n = { } ; return t . m = e , t . c = n , t . d = function ( e , n , i ) { t . o ( e , n ) || Object . defineProperty ( e , n , { configurable : ! 1 , enumerable : ! 0 , get : i } ) } , t . n = function ( e ) { var n = e && e . _ _esModule ? function ( ) { return e [ "default" ] } : function ( ) { return e } ; return t . d ( n , "a" , n ) , n } , t . o = function ( e , t ) { return Object . prototype . hasOwnProperty . call ( e , t ) } , t . p = "" , t ( t . s = 0 ) } ( [ function ( e , t , n ) { "use strict" ; ( function ( t ) { var i = n ( 2 ) , a = function ( e ) { var n = this , i = t . AudioContext || t . webkitAudioContext ; if ( ! a . isRecordingSupported ( ) ) throw new Error ( "Recording is not supported in this browser" ) ; this . state = "inactive" , this . eventTarget = t . document . createDocumentFragment ( ) , this . audioContext = new i , this . monitorNode = this . audioContext . createGain ( ) , this . config = Object . assign ( { bufferLength : 4096 , encoderApplication : 2049 , encoderFrameSize : 20 , encoderPath : "encoderWorker.min.js" , encoderSampleRate : 48e3 , leaveStreamOpen : ! 1 , maxBuffersPerPage : 40 , monitorGain : 0 , numberOfChannels : 1 , originalSampleRate : this . audioContext . sampleRate , resampleQuality : 3 , mediaTrackConstraints : ! 0 , streamPages : ! 1 , wavBitDepth : 16 , wavSampleRate : this . audioContext . sampleRate } , e ) , this . initWorker ( ) , this . setMonitorGain ( this . config . monitorGain ) , this . scriptProcessorNode = this . audioContext . createScriptProcessor ( this . config . bufferLength , this . config . numberOfChannels , this . config . numberOfChannels ) , this . scriptProcessorNode . onaudioprocess = function ( e ) { n . encodeBuffers ( e . inputBuffer ) } } ; a . isRecordingSupported = function ( ) { return ( t . AudioContext || t . webkitAudioContext ) && i . isSupported } , a . prototype . addEventListener = function ( e , t , n ) { this . eventTarget . addEventListener ( e , t , n ) } , a . prototype . clearStream = function ( ) { this . stream && ( this . stream . getTracks ? this . stream . getTracks ( ) . forEach ( function ( e ) { e . stop ( ) } ) : this . stream . stop ( ) , delete this . stream ) } , a . prototype . encodeBuffers = function ( e ) { if ( "recording" === this . state ) { for ( var t = [ ] , n = 0 ; n < e . numberOfChannels ; n ++ ) t [ n ] = e . getChannelData ( n ) ; this . encoder . postMessage ( { command : "encode" , buffers : t } ) } } , a . prototype . initStream = function ( ) { var e = this , n = function ( n ) { return e . stream = n , e . sourceNode = e . audioContext . createMediaStreamSource ( n ) , e . sourceNode . connect ( e . scriptProcessorNode ) , e . sourceNode . connect ( e . monitorNode ) , e . eventTarget . dispatchEvent ( new t . Event ( "streamReady" ) ) , n } , a = function ( n ) { throw e . eventTarget . dispatchEvent ( new t . ErrorEvent ( "streamError" , { error : n } ) ) , n } , r = { audio : this . config . mediaTrackConstraints } ; return this . stream ? ( this . eventTarget . dispatchEvent ( new t . Event ( "streamReady" ) ) , t . Promise . resolve ( this . stream ) ) : i ( r ) . then ( n , a ) } , a . prototype . initWorker = function ( ) { var e = this ; this . encoder = new t . Worker ( this . config . encoderPath ) , this . config . streamPages ? this . encoder . addEventListener ( "message" , function ( t ) { e . streamPage ( t . data ) } ) : ( this . recordedPages = [ ] , this . totalLength = 0 , this . encoder . addEventListener ( "message" , function ( t ) { e . storePage ( t . data ) } ) ) } , a . prototype . pause = function ( ) { "recording" === this . state && ( this . state = "paused" , this . eventTarget . dispatchEvent ( new t . Event ( "pause" ) ) ) } , a . prototype . removeEventListener = function ( e , t , n ) { this . eventTarget . removeEventListener ( e , t , n ) } , a . prototype . resume = function ( ) { "paused" === this . state && ( this . state = "recording" , this . ev
setTimeout ( function ( ) { a ( { type : "blur" , fake _initial : ! 0 } ) } , 0 ) ) } function a ( i ) { if ( "mousemove" == i . type ) { var i = i . originalEvent || i ; if ( i && 0 === i . movementX && 0 === i . movementY ) return ; $ ( t ) . off ( "mousemove" , a ) } var s = "blur" == i . type || "timeout" == i . type ; l && document [ l ] && ( s = ! 0 ) , n . cancel ( r ) , s || ( r = n ( function ( ) { a ( { type : "timeout" } ) } , 3e4 ) ) , "focus" != i . type || e . idle . afterFocus || ( e . idle . afterFocus = ! 0 , setTimeout ( function ( ) { delete e . idle . afterFocus } , 10 ) ) ; var c = e . idle . initial ? 0 : 1e3 ; i && ! i . fake _initial && delete e . idle . initial , n . cancel ( o ) , e . idle . isIDLE != s && ( o = n ( function ( ) { e . idle . isIDLE = s , s && "timeout" == i . type && $ ( t ) . on ( "mousemove" , a ) } , c ) ) } e . idle = { isIDLE : ! 1 , initial : ! 0 } ; var r , o , s = ! 1 , l = "hidden" , c = "visibilitychange" ; return "undefined" != typeof document . hidden || ( "undefined" != typeof document . mozHidden ? ( l = "mozHidden" , c = "mozvisibilitychange" ) : "undefined" != typeof document . msHidden ? ( l = "msHidden" , c = "msvisibilitychange" ) : "undefined" != typeof document . webkitHidden && ( l = "webkitHidden" , c = "webkitvisibilitychange" ) ) , Config . Mobile || ( c = "" ) , { start : i } } ] ) . service ( "GeoLocationManager" , [ "$q" , function ( e ) { function t ( ) { return void 0 !== navigator . geolocation } function n ( n ) { if ( ! n && i ) return e . when ( i ) ; if ( ! t ( ) ) return e . reject ( ) ; var a = e . defer ( ) ; return navigator . geolocation . getCurrentPosition ( function ( e ) { i = { lat : e . coords . latitude , "long" : e . coords . longitude } , a . resolve ( i ) } , function ( e ) { a . reject ( e ) } ) , a . promise } var i = ! 1 ; return { getPosition : n , isAvailable : t } } ] ) . service ( "AppRuntimeManager" , [ "$window" , function ( e ) { return { reload : function ( ) { try { location . reload ( ) } catch ( t ) { } e . chrome && chrome . runtime && chrome . runtime . reload && chrome . runtime . reload ( ) } , close : function ( ) { try { e . close ( ) } catch ( t ) { } } , focus : function ( ) { window . navigator . mozApps && document . hidden ? window . navigator . mozApps . getSelf ( ) . onsuccess = function ( ) { this . result . launch ( ) } : ( window . chrome && chrome . app && chrome . app . window && chrome . app . window . current ( ) . focus ( ) , window . focus ( ) ) } } } ] ) . service ( "RichTextProcessor" , [ "$sce" , "$sanitize" , function ( e , t ) { function n ( e ) { for ( var t , n , i , a , r = 0 ; r < Config . EmojiCategories . length ; r ++ ) if ( a = Config . EmojiCategorySpritesheetDimens [ r ] [ 1 ] , t = Config . EmojiCategories [ r ] . indexOf ( e ) , t > - 1 ) return n = Math . floor ( t / a ) , i = t % a , { category : r , row : n , column : i } ; return console . error ( "emoji not found in spritesheet" , e ) , null } function i ( e , t ) { t = t || { } ; for ( var i , a , r , o , s , l = e , c = [ ] , u = 0 ; i = l . match ( A ) ; ) { if ( s = u + i . index , i [ 3 ] ) c . push ( { _ : "messageEntityMention" , offset : s + i [ 1 ] . length , length : i [ 2 ] . length + i [ 3 ] . length } ) ; else if ( i [ 4 ] ) if ( C . test ( i [ 4 ] ) ) c . push ( { _ : "messageEntityEmail" , offset : s , length : i [ 4 ] . length } ) ; else { var a = ! 1 , p = i [ 5 ] , f = i [ 6 ] , m = "" ; if ( f ) { if ( p || "xn--" !== f . substr ( 0 , 4 ) && Config . TLD . indexOf ( f . toLowerCase ( ) ) === - 1 || ( p = "http://" ) , p ) { var g = d ( i [ 4 ] ) ; g . length !== i [ 4 ] . length && ( m = i [ 4 ] . substring ( g . length ) , i [ 4 ] = g ) , a = ( i [ 5 ] ? "" : p ) + i [ 4 ] } } else a = ( i [ 5 ] ? "" : "http://" ) + i [ 4 ] ; a && c . push ( { _ : "messageEntityUrl" , offset : s , length : i [ 4 ] . length } ) } else i [ 7 ] ? c . push ( { _ : "messageEntityLinebreak" , offset : s , length : 1 } ) : i [ 8 ] ? ( r = EmojiHelper . emojiMap [ i [ 8 ] ] ) && ( o = n ( r ) ) && c . push ( { _ : "messageEntityEmoji" , offset : s , length : i [ 0 ] . length , coords : o , title : h [ r ] [ 1 ] [ 0 ] } ) : i [ 10 ] ? c . push ( { _ : "messageEntityHashtag" , offset : s + i [ 9 ] . length , length : i [ 10 ] . length } ) : i [ 12 ] && c . push ( { _ : "messageEntityBotCommand" , offset : s + i [ 11 ] . length , length : 1 + i [ 12 ] . length + ( i [ 13 ] ? 1 + i [ 13 ] . length : 0 ) } ) ; l = l . substr ( i . index + i [ 0 ] . length ) , u += i . index + i [ 0 ] . length } return c } function a ( e ) { return e . replace ( /:([a-z0-9\-\+\*_]+?):/gi , function ( e , t ) { var n = EmojiHelper . shortcuts [ t ] ; return void 0 !== n ? EmojiHelper . emojis [ n ] [ 0 ] : e } ) } function r ( e , t , n ) { if ( ! T . test ( e ) ) return n ? e : e . trim ( ) ; for ( var i , a , r = e , o = [ ] , s = 0 ; i = r . match ( E ) ; ) { a = s + i . index , o . push ( r . substr ( 0 , i . index ) ) ; var e = i [ 3 ] || i [ 8 ] || i [ 11 ] ; s -= e . length , e = e . replace ( /^\s+|\s+$/g , "" ) , s += e . length , e . match ( /^`*$/ ) ? o . push ( i [ 0 ] ) : i [ 3 ] ? ( "\n" == i [ 5 ] && ( i [ 5 ] = "" , s -= 1 ) , o . push ( i [ 1 ] + e + i [ 5 ] ) , t . push ( { _ : "messageEntityPre" , language : "" , offset : a + i [ 1 ] . length , length : e . length } ) , s -= i [ 2 ] . length + i [ 4 ] . length ) : i [ 7 ] ? ( o . push ( i [ 6 ] + e + i [ 9 ] ) , t . push ( { _ : x [ i [ 7 ] ] , offset : a + i [ 6 ] . length , length : e . length } ) , s -= 2 * i [ 7 ] . length ) : i [ 11 ] && ( o . push ( e ) , t . push ( { _ : "messageEntityMentionName" , user _id : i [ 10 ] , offset : a , length : e . length } ) , s -= i [ 0 ] . length - e . length ) , r = r . substr ( i . index + i [ 0 ] . length ) , s += i . index + i [ 0 ] . length } return o . push ( r ) , o = o .
this . updateSession ( ) , this . lastServerMessages = [ ] , this . checkConnectionPeriod = 0 , this . sentMessages = { } , this . pendingMessages = { } , this . pendingAcks = [ ] , this . pendingResends = [ ] , this . connectionInited = ! 1 , this . longPollInt = c ( this . checkLongPoll . bind ( this ) , 1e4 ) , this . checkLongPoll ( ) , h || ( h = ! 0 , d . offline = ! 0 , d . offlineConnecting = ! 0 ) , Config . Navigator . mobile && this . setupMobileSleep ( ) } function p ( ) { g && ( g = ! 1 , m ( { _ : "new_session_created" } , ! 0 ) ) } function f ( ) { g = ! 0 } var m , h = ! 1 , g = ! 1 , _ = navigator . userAgent . match ( /Chrome\/(\d+(\.\d+)?)/ ) , v = _ && parseFloat ( _ [ 1 ] ) || ! 1 , y = ! ( "ArrayBufferView" in window ) && v > 0 && v < 30 ; return delete o . defaults . headers . post [ "Content-Type" ] , delete o . defaults . headers . common . Accept , d . retryOnline = function ( ) { $ ( document . body ) . trigger ( "online" ) } , u . prototype . updateSession = function ( ) { this . seqNo = 0 , this . prevSessionID = this . sessionID , this . sessionID = new Array ( 8 ) , n . nextBytes ( this . sessionID ) } , u . prototype . setupMobileSleep = function ( ) { var e = this ; d . $watch ( "idle.isIDLE" , function ( t ) { t ? e . sleepAfter = tsNow ( ) + 3e4 : ( delete e . sleepAfter , e . checkLongPoll ( ) ) } ) , d . $on ( "push_received" , function ( ) { e . sleepAfter && ( e . sleepAfter = tsNow ( ) + 3e4 , e . checkLongPoll ( ) ) } ) } , u . prototype . updateSentMessage = function ( e ) { var n = this . sentMessages [ e ] ; if ( ! n ) return ! 1 ; var i = this ; if ( n . container ) { var a = [ ] ; angular . forEach ( n . inner , function ( e ) { var t = i . updateSentMessage ( e ) ; t && a . push ( t . msg _id ) } ) , n . inner = a } return n . msg _id = t . generateID ( ) , n . seq _no = this . generateSeqNo ( n . notContentRelated || n . container ) , this . sentMessages [ n . msg _id ] = n , delete i . sentMessages [ e ] , n } , u . prototype . generateSeqNo = function ( e ) { var t = 2 * this . seqNo ; return e || ( t ++ , this . seqNo ++ ) , t } , u . prototype . wrapMtpCall = function ( e , n , i ) { var a = new TLSerialization ( { mtproto : ! 0 } ) ; a . storeMethod ( e , n ) ; var r = t . generateID ( ) , o = this . generateSeqNo ( ) , s = { msg _id : r , seq _no : o , body : a . getBytes ( ) } ; return Config . Modes . debug && console . log ( dT ( ) , "MT call" , e , n , r , o ) , this . pushMessage ( s , i ) } , u . prototype . wrapMtpMessage = function ( e , n ) { n = n || { } ; var i = new TLSerialization ( { mtproto : ! 0 } ) ; i . storeObject ( e , "Object" ) ; var a = t . generateID ( ) , r = this . generateSeqNo ( n . notContentRelated ) , o = { msg _id : a , seq _no : r , body : i . getBytes ( ) } ; return Config . Modes . debug && console . log ( dT ( ) , "MT message" , e , a , r ) , this . pushMessage ( o , n ) } , u . prototype . wrapApiCall = function ( e , n , i ) { var a = new TLSerialization ( i ) ; this . connectionInited || ( a . storeInt ( 3667594509 , "invokeWithLayer" ) , a . storeInt ( Config . Schema . API . layer , "layer" ) , a . storeInt ( 3343392166 , "initConnection" ) , a . storeInt ( Config . App . id , "api_id" ) , a . storeString ( navigator . userAgent || "Unknown UserAgent" , "device_model" ) , a . storeString ( navigator . platform || "Unknown Platform" , "system_version" ) , a . storeString ( Config . App . version , "app_version" ) , a . storeString ( navigator . language || "en" , "system_lang_code" ) , a . storeString ( "" , "lang_pack" ) , a . storeString ( navigator . language || "en" , "lang_code" ) ) , i . afterMessageID && ( a . storeInt ( 3416209197 , "invokeAfterMsg" ) , a . storeLong ( i . afterMessageID , "msg_id" ) ) , i . resultType = a . storeMethod ( e , n ) ; var r = t . generateID ( ) , o = this . generateSeqNo ( ) , s = { msg _id : r , seq _no : o , body : a . getBytes ( ! 0 ) , isAPI : ! 0 } ; return Config . Modes . debug ? console . log ( dT ( ) , "Api call" , e , n , r , o , i ) : console . log ( dT ( ) , "Api call" , e ) , this . pushMessage ( s , i ) } , u . prototype . checkLongPoll = function ( e ) { var t = this . cleanupSent ( ) ; if ( this . longPollPending && tsNow ( ) < this . longPollPending || this . offline || g ) return ! 1 ; var n = this ; i . get ( "dc" ) . then ( function ( e ) { t && ( e != n . dcID || n . upload || n . sleepAfter && tsNow ( ) > n . sleepAfter ) || n . sendLongPoll ( ) } ) } , u . prototype . sendLongPoll = function ( ) { var e = 25e3 , t = this ; this . longPollPending = tsNow ( ) + e , this . wrapMtpCall ( "http_wait" , { max _delay : 500 , wait _after : 150 , max _wait : e } , { noResponse : ! 0 , longPoll : ! 0 } ) . then ( function ( ) { delete t . longPollPending , setZeroTimeout ( t . checkLongPoll . bind ( t ) ) } , function ( e ) { console . log ( "Long-poll failed" , e ) } ) } , u . prototype . pushMessage = function ( e , t ) { var n = s . defer ( ) ; return this . sentMessages [ e . msg _id ] = angular . extend ( e , t || { } , { deferred : n } ) , this . pendingMessages [ e . msg _id ] = 0 , t && t . noShedule || this . sheduleRequest ( ) , angular . isObject ( t ) && ( t . messageID = e . msg _id ) , n . promise } , u . prototype . pushResend = function ( e , t ) { var n = t ? tsNow ( ) + t : 0 , i = this . sentMessages [ e ] ; if ( i . container ) for ( var a = 0 ; a < i . inner . length ; a ++ ) this . pendingMessages [ i . inner [ a ] ] = n ; else this . pendingMess
controller : "UserModalController" , scope : a , windowClass : "user_modal_window mobile_modal" , backdrop : "single" } ) } function I ( e , t , n ) { return o . invokeApi ( "contacts.importContacts" , { contacts : [ { _ : "inputPhoneContact" , client _id : "1" , phone : e , first _name : t , last _name : n } ] , replace : ! 1 } ) . then ( function ( e ) { h ( e . users ) ; var t = ! 1 ; return angular . forEach ( e . imported , function ( e ) { D ( t = e . user _id , ! 0 ) } ) , t || ! 1 } ) } function x ( e ) { var t , n , i = [ ] ; for ( t = 0 ; t < e . length ; t ++ ) for ( n = 0 ; n < e [ t ] . phones . length ; n ++ ) i . push ( { _ : "inputPhoneContact" , client _id : ( t << 16 | n ) . toString ( 10 ) , phone : e [ t ] . phones [ n ] , first _name : e [ t ] . first _name , last _name : e [ t ] . last _name } ) ; return o . invokeApi ( "contacts.importContacts" , { contacts : i , replace : ! 1 } ) . then ( function ( e ) { h ( e . users ) ; var t = [ ] ; return angular . forEach ( e . imported , function ( e ) { D ( e . user _id , ! 0 ) , t . push ( e . user _id ) } ) , t } ) } function P ( e ) { var t = [ ] ; return angular . forEach ( e , function ( e ) { t . push ( A ( e ) ) } ) , o . invokeApi ( "contacts.deleteContacts" , { id : t } ) . then ( function ( ) { angular . forEach ( e , function ( e ) { D ( e , ! 1 ) } ) } ) } function D ( t , n ) { if ( t = parseInt ( t ) , angular . isArray ( L ) ) { var i = a = L . indexOf ( t ) , a = i != - 1 ; n != a && ( n ? ( L . push ( t ) , SearchIndexManager . indexObject ( t , p ( t ) , V ) ) : L . splice ( i , 1 ) , e . $broadcast ( "contacts_update" , t ) ) } } function R ( ) { return t . open ( { templateUrl : templateUrl ( "import_contact_modal" ) , controller : "ImportContactModalController" , windowClass : "md_simple_modal_window mobile_modal" } ) . result . then ( function ( e ) { return e ? e : a . reject ( ) } ) } function O ( t , n ) { if ( ! w ( t ) ) { var i = U [ t ] ; if ( i ) { var a = n ? { _ : "userStatusOffline" , was _online : tsNow ( ! 0 ) } : { _ : "userStatusOnline" , expires : tsNow ( ! 0 ) + 500 } ; i . status = a , i . sortStatus = v ( i . status ) , e . $broadcast ( "user_update" , t ) } } } var N , L , F , U = { } , B = { } , H = { } , j = { } , V = SearchIndexManager . createIndex ( ) ; return o . getUserID ( ) . then ( function ( e ) { F = e } ) , e . $on ( "apiUpdate" , function ( t , n ) { switch ( n . _ ) { case "updateUserStatus" : var i = n . user _id , a = U [ i ] ; a && ( a . status = n . status , a . status && ( a . status . expires && ( a . status . expires -= l . serverTimeOffset ) , a . status . was _online && ( a . status . was _online -= l . serverTimeOffset ) ) , a . sortStatus = v ( a . status ) , e . $broadcast ( "user_update" , i ) ) ; break ; case "updateUserPhoto" : var i = n . user _id , a = U [ i ] ; a && ( T ( i ) , a . photo ? safeReplaceObject ( a . photo , n . photo ) : a . photo = n . photo , void 0 !== j [ i ] && safeReplaceObject ( j [ i ] , n . photo && n . photo . photo _small || { empty : ! 0 } ) , e . $broadcast ( "user_update" , i ) ) ; break ; case "updateContactLink" : D ( n . user _id , "contactLinkContact" == n . my _link . _ ) } } ) , e . $on ( "user_auth" , function ( e , t ) { F = t && t . id || 0 } ) , setInterval ( C , 6e4 ) , e . $on ( "stateSynchronized" , C ) , { getContacts : f , saveApiUsers : h , saveApiUser : g , saveUserAccess : _ , getUser : y , getSelf : b , getUserInput : A , setUserStatus : O , forceUserOnline : T , getUserPhoto : M , getUserString : S , getUserSearchText : p , hasUser : k , isBot : w , importContact : I , importContacts : x , deleteContacts : P , wrapForFull : E , openUser : $ , resolveUsername : m , openImportContact : R } } ] ) . service ( "PhonebookContactsService" , [ "$q" , "$modal" , "$sce" , "FileManager" , function ( e , t , n , i ) { function a ( ) { if ( Config . Mobile && Config . Navigator . ffos && Config . Modes . packed ) try { return navigator . mozContacts && navigator . mozContacts . getAll } catch ( e ) { return console . error ( dT ( ) , "phonebook n/a" , e ) , ! 1 } return ! 1 } function r ( ) { return t . open ( { templateUrl : templateUrl ( "phonebook_modal" ) , controller : "PhonebookModalController" , windowClass : "phonebook_modal_window mobile_modal" } ) } function o ( ) { try { var t = window . navigator . mozContacts . getAll ( { } ) } catch ( a ) { return e . reject ( a ) } var r = e . defer ( ) , o = [ ] , s = 0 ; return t . onsuccess = function ( ) { if ( this . result ) { var e = { id : s , first _name : ( this . result . givenName || [ ] ) . join ( " " ) , last _name : ( this . result . familyName || [ ] ) . join ( " " ) , phones : [ ] } ; if ( void 0 != this . result . tel ) for ( var t = 0 ; t < this . result . tel . length ; t ++ ) e . phones . push ( this . result . tel [ t ] . value ) ; if ( this . result . photo && this . result . photo [ 0 ] ) try { e . photo = i . getUrl ( this . result . photo [ 0 ] ) } catch ( a ) { } e . photo || ( e . photo = "img/placeholders/UserAvatar" + ( Math . abs ( s ) % 8 + 1 ) + "@2x.png" ) , e . photo = n . trustAsResourceUrl ( e . photo ) , s ++ , o . push ( e ) } return ! this . result || s >= 1e3 ? void r . resolve ( o ) : void this [ "continue" ] ( ) } , t . onerror = function ( e ) { console . log ( "phonebook error" , e , e . type , e . message ) , r . reject ( e ) } , r . promise } return { isAvailable : a , openPhonebookImport : r , getPhonebookContacts : o } } ] ) . service ( "AppChatsManager" , [ "$q" , "$rootScope" , "$modal" , "_" , " MtpApiManage
} : { _ : "updateNewStickerSet" , stickerset : e } , l . processUpdateMessage ( { _ : "updateShort" , update : i } ) } ) } function y ( e ) { return b ( { _ : "inputStickerSetShortName" , short _name : e } ) } function b ( e ) { var i = t . $new ( ! 0 ) ; i . inputStickerset = e ; n . open ( { templateUrl : templateUrl ( "stickerset_modal" ) , controller : "StickersetModalController" , scope : i , windowClass : "stickerset_modal_window mobile_modal" } ) } function w ( e ) { for ( var t , n = 0 , i = 0 ; i < e . length ; i ++ ) t = e [ i ] , ! t . pFlags . disabled && t . pFlags . installed && ( n = ( 20261 * n + 2147483648 + t . hash ) % 2147483648 ) ; return n } var k = ! 1 , M = ! 1 , S = [ ] , A = { } ; return t . $on ( "apiUpdate" , function ( e , n ) { return ( "updateStickerSets" == n . _ || "updateNewStickerSet" == n . _ || "updateDelStickerSet" == n . _ || "updateStickerSetsOrder" == n . _ ) && s . get ( "all_stickers" ) . then ( function ( e ) { switch ( e && e . layer == Config . Schema . API . layer || t . $broadcast ( "stickers_changed" ) , n . _ ) { case "updateNewStickerSet" : var i = n . stickerset , a = i . set ; if ( a . pFlags . masks ) return ! 1 ; for ( var r = ! 1 , o = 0 , l = e . sets . length ; o < l ; o ++ ) if ( e . sets [ o ] . id == a . id ) { r = o ; break } r !== ! 1 && e . sets . splice ( r , 1 ) , a . pFlags . installed = ! 0 , e . sets . unshift ( a ) , e . fullSets [ a . id ] = i , p ( i ) ; break ; case "updateDelStickerSet" : for ( var a , o = 0 , l = e . sets . length ; o < l ; o ++ ) if ( a = e . sets [ o ] , a . id == n . id ) { a . pFlags . installed = ! 1 , e . sets . splice ( o , 1 ) ; break } delete e . fullSets [ n . id ] ; break ; case "updateStickerSetsOrder" : if ( n . pFlags . masks ) return ; var c = n . order ; e . sets . sort ( function ( e , t ) { return c . indexOf ( e . id ) - c . indexOf ( t . id ) } ) } e . hash = w ( e . sets ) , e . date = 0 , s . set ( { all _stickers : e } ) . then ( function ( ) { t . $broadcast ( "stickers_changed" ) } ) } ) } ) , { start : c , getStickers : d , openStickersetLink : y , openStickerset : b , installStickerset : v , pushPopularSticker : g , searchStickers : f , getStickerset : _ } } ] ) . service ( "AppInlineBotsManager" , [ "qSync" , "$q" , "$rootScope" , "toaster" , "Storage" , "ErrorService" , "MtpApiManager" , "AppMessagesManager" , "AppMessagesIDsManager" , "AppDocsManager" , "AppPhotosManager" , "AppGamesManager" , "RichTextProcessor" , "AppUsersManager" , "AppPeersManager" , "LocationParamsService" , "PeersSelectService" , "GeoLocationManager" , function ( e , t , n , i , a , r , o , s , l , c , d , u , p , f , m , h , g , _ ) { function v ( ) { return a . get ( "inline_bots_popular" ) . then ( function ( e ) { var t , n , i , a = [ ] ; if ( e && e . length ) { var r = tsNow ( ! 0 ) ; for ( t = 0 , n = e . length ; t < n ; t ++ ) r - e [ t ] [ 3 ] > 1209600 || ( i = e [ t ] [ 0 ] , f . hasUser ( i ) || f . saveApiUser ( e [ t ] [ 1 ] ) , a . push ( { id : i , rate : e [ t ] [ 2 ] , date : e [ t ] [ 3 ] } ) ) } return a } ) } function y ( e ) { v ( ) . then ( function ( t ) { for ( var i = ! 1 , a = t . length , r = [ ] , o = 0 ; o < a ; o ++ ) { t [ o ] . id == e && ( i = ! 0 , t [ o ] . rate ++ , t [ o ] . date = tsNow ( ! 0 ) ) ; var s = f . getUser ( t [ o ] . id ) ; r . push ( [ t [ o ] . id , s , t [ o ] . rate , t [ o ] . date ] ) } i ? r . sort ( function ( e , t ) { return t [ 2 ] - e [ 2 ] } ) : ( r . length > 15 && ( r = r . slice ( 0 , 15 ) ) , r . push ( [ e , f . getUser ( e ) , 1 , tsNow ( ! 0 ) ] ) ) , ConfigStorage . set ( { inline _bots _popular : r } ) , n . $broadcast ( "inline_bots_popular" ) } ) } function b ( n ) { return m . resolveUsername ( n ) . then ( function ( i ) { if ( i > 0 ) { var a = f . getUser ( i ) ; if ( a . pFlags . bot && void 0 !== a . bot _inline _placeholder ) { var r = { username : n , id : i , placeholder : a . bot _inline _placeholder } ; return a . pFlags . bot _inline _geo && _ . isAvailable ( ) ? x ( i ) . then ( function ( ) { return _ . getPosition ( ) . then ( function ( t ) { return r . geo = t , e . when ( r ) } ) } ) [ "catch" ] ( function ( ) { return e . when ( r ) } ) : e . when ( r ) } } return t . reject ( ) } , function ( e ) { return e . handled = ! 0 , t . reject ( e ) } ) } function w ( e , t , n , i , a ) { return o . invokeApi ( "messages.getInlineBotResults" , { flags : 0 | ( i ? 1 : 0 ) , bot : f . getUserInput ( t ) , peer : m . getInputPeerByID ( e ) , query : n , geo _point : i && { _ : "inputGeoPoint" , lat : i . lat , "long" : i [ "long" ] } , offset : a } , { timeout : 1 , stopTime : - 1 , noErrorBox : ! 0 } ) . then ( function ( e ) { var n = e . query _id ; return delete e . _ , delete e . flags , delete e . query _id , e . switch _pm && ( e . switch _pm . rText = p . wrapRichText ( e . switch _pm . text , { noLinebreaks : ! 0 , noLinks : ! 0 } ) ) , angular . forEach ( e . results , function ( e ) { var i = n + "_" + e . id ; e . qID = i , e . botID = t , e . rTitle = p . wrapRichText ( e . title , { noLinebreaks : ! 0 , noLinks : ! 0 } ) , e . rDescription = p . wrapRichText ( e . description , { noLinebreaks : ! 0 , noLinks : ! 0 } ) , e . initials = ( e . url || e . title || e . type || "" ) . substr ( 0 , 1 ) , e . document && c . saveDoc ( e . document ) , e . photo && d . savePhoto ( e . photo ) , P [ i ] = e } ) , e } ) } function k ( e , t , n ) { if ( e && e [ 0 ] && [ "photo" , "gif" , "sticker" ] . indexOf ( e [ 0 ] . type ) != - 1 ) { var i = [ ] ; angular . forEach ( e , function ( e ) { var t , n , a , r ; if ( "botInlineMediaResult" == e . _ ) { if ( a = e . document ) t = e . document . w , n = e . document . h ; else if ( r = e . photo ) { var o =
} } ) , t . $on ( "$routeUpdate" , f ) , f ( ) ) } function _ ( e ) { var t = e . match ( b ) ; if ( t && m ( t [ 3 ] , ! 0 ) ) return ! 0 ; var n = window . open ( e , "_blank" ) ; try { n . opener = null } catch ( i ) { } return ! ! n } function v ( n , i , a ) { var r = { } ; a && ( r . shareLinkPromise = e . when ( n ) ) , d . selectPeer ( r ) . then ( function ( e ) { t . $broadcast ( "history_focus" , { peerString : e , attachment : { _ : "share_url" , url : n , text : i } } ) } ) } function y ( e ) { return l . invokeApi ( "messages.checkChatInvite" , { hash : e } ) . then ( function ( n ) { var i ; if ( "chatInviteAlready" == n . _ ) { r . saveApiChat ( n . chat ) ; var a = ! n . chat . pFlags . left || r . isChannel ( n . chat . id ) && n . chat . username ; if ( a ) return t . $broadcast ( "history_focus" , { peerString : r . getChatString ( n . chat . id ) } ) ; i = n . chat . title } else i = n . title ; p . confirm ( { type : n . pFlags . channel && ! n . pFlags . megagroup ? "JOIN_CHANNEL_BY_LINK" : "JOIN_GROUP_BY_LINK" , title : i } ) . then ( function ( ) { return l . invokeApi ( "messages.importChatInvite" , { hash : e } ) . then ( function ( e ) { if ( c . processUpdateMessage ( e ) , e . chats && 1 == e . chats . length ) t . $broadcast ( "history_focus" , { peerString : r . getChatString ( e . chats [ 0 ] . id ) } ) ; else if ( e . updates && e . updates . length ) for ( var n , i = 0 , a = e . updates . length ; i < a ; i ++ ) if ( n = e . updates [ i ] , "updateNewMessage" == n . _ ) { t . $broadcast ( "history_focus" , { peerString : r . getChatString ( n . message . to _id . chat _id ) } ) ; break } } ) } ) } ) } var b = /^(web\+)?tg:(\/\/)?(.+)/ , w = ! 1 ; return { start : g , shareUrl : v , openUrl : _ } } ] ) . service ( "DraftsManager" , [ "$rootScope" , "qSync" , "MtpApiManager" , "ApiUpdatesManager" , "AppMessagesIDsManager" , "AppChatsManager" , "AppPeersManager" , "RichTextProcessor" , "Storage" , "ServerTimeManager" , function ( e , t , n , i , a , r , o , s , l , c ) { function d ( e , t ) { return l . get ( "draft" + e ) . then ( function ( n ) { "string" == typeof n && ( n = n . length > 0 && { text : n } ) , n || t || ( n = u ( e ) ) ; var i = n && n . replyToMsgID ; if ( i ) { var r = ! ! o . isChannel ( e ) && - e ; n . replyToMsgID = a . getFullMessageID ( i , r ) } return n } ) } function u ( e ) { var t = y [ e ] ; return void 0 !== t && t } function p ( t , n , i ) { i = i || { } ; var a = _ ( n ) ; return y [ t ] = a , i . notify && ( f ( t , a ) , e . $broadcast ( "draft_updated" , { peerID : t , draft : a , local : i . local } ) ) , a } function f ( e , t ) { e || console . trace ( "empty peerID" ) , e < 0 && ! r . hasRights ( - e , "send" ) && ( t = ! 1 ) , t || ( t = { text : "" , replyToMsgID : 0 } ) , t . replyToMsgID = t . replyToMsgID ? a . getMessageLocalID ( t . replyToMsgID ) : 0 ; var n = "draft" + e ; if ( g ( t ) ) l . remove ( n ) ; else { var i = { } ; i [ n ] = t , l . set ( i ) } } function m ( e , t ) { f ( e ) , i . processUpdateMessage ( { _ : "updateShort" , update : { _ : "updateDraftMessage" , peer : o . getOutputPeer ( e ) , draft : { _ : "draftMessageEmpty" } , local : ! 0 } } ) , t && v ( e ) } function h ( e , t ) { var n = g ( e ) , i = g ( t ) ; return ! ( ! n || ! i ) || n == i && ( e . replyToMsgID == t . replyToMsgID && e . text == t . text ) } function g ( e ) { return ! e || ! ( e . replyToMsgID > 0 ) && ( "string" != typeof e . text || ! e . text . length ) } function _ ( e ) { if ( ! e || "draftMessage" != e . _ ) return ! 1 ; var t = s . parseEntities ( e . message ) , n = e . entities || [ ] ; t = s . mergeEntities ( t , n ) ; var i = s . wrapDraftText ( e . message , { entities : t } ) , a = s . wrapRichText ( e . message , { noLinks : ! 0 , noLinebreaks : ! 0 } ) ; return { text : i , richMessage : a , replyToMsgID : e . reply _to _msg _id || 0 , date : e . date - c . serverTimeOffset } } function v ( e ) { d ( e , ! 0 ) . then ( function ( t ) { var i = y [ e ] ; if ( ! h ( i , t ) ) { var a , r = { flags : 0 , peer : o . getInputPeerByID ( e ) } ; if ( g ( t ) ) a = { _ : "draftMessageEmpty" } , r . message = "" ; else { a = { _ : "draftMessage" } ; var l = t . text , d = [ ] ; l = s . parseEmojis ( l ) , l = s . parseMarkdown ( l , d , ! 0 ) , t . replyToMsgID > 0 && ( r . flags |= 1 , r . reply _to _msg _id = t . replyToMsgID , a . reply _to _msg _id = t . replyToMsgID ) , d . length && ( r . flags |= 8 , r . entities = d , a . entities = d ) , r . message = l , a . message = l } n . invokeApi ( "messages.saveDraft" , r ) . then ( function ( ) { a . date = tsNow ( ! 0 ) + c . serverTimeOffset , p ( e , a , { notify : ! 0 , local : ! 0 } ) } ) } } ) } var y = { } ; return e . $on ( "apiUpdate" , function ( e , t ) { if ( "updateDraftMessage" == t . _ ) { var n = o . getPeerID ( t . peer ) ; p ( n , t . draft , { notify : ! 0 , local : t . local } ) } } ) , { getDraft : d , getServerDraft : u , saveDraft : p , changeDraft : f , clearDraft : m , syncDraft : v } } ] ) , angular . module ( "myApp.controllers" , [ "myApp.i18n" ] ) . controller ( "AppWelcomeController" , [ "$scope" , "$location" , "MtpApiManager" , "ChangelogNotifyService" , "LayoutSwitchService" , function ( e , t , n , i , a ) { n . getUserID ( ) . then ( function ( e ) { return e ? void t . url ( "/im" ) : "http:" != location . protocol || Config . Modes . http || Config . App . domains . indexOf ( location . hostname ) == - 1 ? void t . url ( "/login" ) : void ( location . href = location . href . replace ( /^http:/ , "https:" ) ) } ) , i . checkUpdate ( ) , a . start ( ) } ] ) . controller ( " AppLoginController
t && ( e . curDialog . messageID = ! 1 ) , K . messages = [ ] , K . ids = [ ] , e . state . empty = ! 0 , void $ ( ) ) } function W ( ) { e . historyFilter . mediaType ? z ( ) : e . curDialog . messageID ? a . $broadcast ( "history_focus" , { peerString : e . curDialog . peer } ) : $ ( ! 0 ) } e . $watchCollection ( "curDialog" , y ) , p . attach ( ) , m . start ( ) , h . start ( ) , e . peerHistories = [ ] , e . selectedMsgs = { } , e . selectedCount = 0 , e . historyState . selectActions = ! 1 , e . historyState . botActions = ! 1 , e . historyState . channelActions = ! 1 , e . historyState . canDelete = ! 1 , e . historyState . canReply = ! 1 , e . historyState . missedCount = 0 , e . historyState . skipped = ! 1 , e . state = { } , e . toggleMessage = O , e . selectedDelete = U , e . selectedForward = H , e . selectedReply = j , e . selectedEdit = V , e . selectedCancel = L , e . selectedFlush = F , e . selectInlineBot = N , e . startBot = x , e . cancelBot = P , e . joinChannel = D , e . togglePeerMuted = R , e . toggleEdit = q , e . toggleMedia = z , e . returnToRecent = W , e . $on ( "history_edit_toggle" , q ) , e . $on ( "history_edit_flush" , F ) , e . $on ( "history_media_toggle" , function ( e , t ) { z ( t ) } ) , e . $on ( "history_return_recent" , W ) ; var G , K = ! 1 , Y = ! 1 , X = ! 1 , J = ! 1 , Z = 0 , Q = 0 , ee = ! 1 , te = { photos : "inputMessagesFilterPhotos" , video : "inputMessagesFilterVideo" , documents : "inputMessagesFilterDocument" , audio : "inputMessagesFilterVoice" , round : "inputMessagesFilterRoundVideo" , music : "inputMessagesFilterMusic" , urls : "inputMessagesFilterUrl" , mentions : "inputMessagesFilterMyMentions" } , ne = 0 , ie = 0 , ae = ! 1 , re = ! 1 , oe = 0 , se = ! 1 , le = ! 1 ; e . $on ( "history_update" , angular . noop ) ; var ce = ! 1 ; e . $on ( "stateSynchronized" , function ( ) { ce && ( ce == e . curDialog . peerID && $ ( ) , ce = ! 1 ) } ) , e . $on ( "reply_button_press" , function ( t , n ) { var i = e . historyState . replyKeyboard ; if ( i ) { var a = { replyToMsgID : G < 0 && i . mid } ; switch ( n . _ ) { case "keyboardButtonRequestPhone" : _ . confirm ( { type : "BOT_ACCESS_PHONE" } ) . then ( function ( ) { var e = l . getSelf ( ) ; d . sendOther ( G , { _ : "inputMediaContact" , phone _number : e . phone , first _name : e . first _name , last _name : e . last _name } , a ) } ) ; break ; case "keyboardButtonRequestGeoLocation" : _ . confirm ( { type : "BOT_ACCESS_GEO" } ) . then ( function ( ) { return v . getPosition ( ) . then ( function ( e ) { d . sendOther ( G , { _ : "inputMediaGeoPoint" , geo _point : { _ : "inputGeoPoint" , lat : e . lat , "long" : e [ "long" ] } } , a ) } , function ( e ) { _ . alert ( o ( "error_modal_bad_request_title_raw" ) , o ( "error_modal_gelocation_na_raw" ) ) } ) } ) ; break ; default : d . sendText ( G , n . text , a ) } } } ) , e . $on ( "history_reload" , function ( t , n ) { n == e . curDialog . peerID && $ ( ) } ) , e . $on ( "history_forbidden" , function ( n , i ) { i == e . curDialog . peerID && t . url ( "/im" ) , k ( i ) } ) , e . $on ( "dialog_migrate" , function ( t , n ) { if ( n . migrateFrom == e . curDialog . peerID ) { var i = u . getPeerString ( n . migrateTo ) ; a . $broadcast ( "history_focus" , { peerString : i } ) } k ( n . migrateFrom ) } ) , e . $on ( "notify_settings" , function ( t , n ) { n . peerID == e . curDialog . peerID && A ( ) } ) , e . $on ( "channel_settings" , function ( t , n ) { n . channelID == - e . curDialog . peerID && A ( ) } ) ; var de = { } ; e . $on ( "history_append" , function ( t , i ) { var r = w ( i . peerID ) ; if ( r ) { var o = i . peerID == e . curDialog . peerID ; if ( o ) { if ( e . historyFilter . mediaType || e . historyState . skipped ) return void ( i . my ? W ( ) : e . historyState . missedCount ++ ) ; e . curDialog . messageID && i . my && W ( ) , delete e . state . empty } var s = d . wrapForHistory ( i . messageID ) ; r . messages . push ( s ) , r . ids . push ( i . messageID ) , d . regroupWrappedHistory ( r . messages , - 3 ) && e . $broadcast ( "messages_regroup" ) , o && ( e . historyState . typing . splice ( 0 , e . historyState . typing . length ) , e . $broadcast ( "ui_history_append_new" , { my : i . my , idleScroll : Y && ! s . pFlags . out && a . idle . isIDLE } ) , i . my && e . historyUnreadAfter && ( delete e . historyUnreadAfter , e . $broadcast ( "messages_unread_after" ) ) , a . idle . isIDLE ? ! s . pFlags . unread || s . pFlags . out || ( r . messages [ r . messages . length - 2 ] || { } ) . pFlags . unread || ( e . historyUnreadAfter = s . mid , Y = ! 0 , e . $broadcast ( "messages_unread_after" ) ) : n ( function ( ) { d . readHistory ( e . curDialog . peerID ) } ) , S ( ) , A ( ) ) } } ) , e . $on ( "history_multiappend" , function ( t , i ) { var r = ! 1 , o = ! 1 , s = a . idle . isIDLE ; angular . forEach ( i , function ( t , i ) { var a = w ( i ) ; if ( a ) { var l = i == e . curDialog . peerID , c = a . messages . length , u = t . length ; if ( l ) { if ( e . historyFilter . mediaType || e . historyState . skipped ) return void ( e . historyState . missedCount += u ) ; delete e . state . empty } if ( ( ! l || s ) && c > ( u > 10 ? 10 : 100 ) ) return console . warn ( dT ( ) , "Drop too many messages" , u , c , s , l , i ) , void ( l ? ( Q = a . messages [ c - 1 ] . mid , e . historyState . skipped = J = Q > 0 , J && ( ce = i , e . $broadcast ( "ui_history_append" ) ) ) : k ( i ) ) ; var p , f , m = ! 1 , h = ! 1 , g = a . messages [ a . messages . length - 1
function g ( t ) { f . processUpdateMessage ( t ) , n . $broadcast ( "history_focus" , { peerString : e . chatFull . peerString } ) , t && t . updates && t . updates . length && r . isChannel ( e . chatID ) && o . invalidateChannelParticipants ( e . chatID ) } function _ ( t ) { t && t . type && 0 === t . type . indexOf ( "image" ) && ( e . photo . updating = ! 0 , c . uploadFile ( t ) . then ( function ( t ) { return l . invokeApi ( "channels.editPhoto" , { channel : r . getChannelInput ( e . chatID ) , photo : { _ : "inputChatUploadedPhoto" , file : t } } ) . then ( g ) } ) [ "finally" ] ( function ( ) { e . photo . updating = ! 1 } ) ) } e . chatFull = r . wrapForFull ( e . chatID , { } ) , e . settings = { notifications : ! 0 } , e . isMegagroup = r . isMegagroup ( e . chatID ) , o . getChannelFull ( e . chatID , ! 0 ) . then ( function ( t ) { e . chatFull = r . wrapForFull ( e . chatID , t ) , e . $broadcast ( "ui_height" ) , d . getPeerMuted ( - e . chatID ) . then ( function ( t ) { e . settings . notifications = ! t , e . $watch ( "settings.notifications" , function ( t , n ) { return t !== n && void d . getPeerSettings ( - e . chatID ) . then ( function ( n ) { t ? n . mute _until = 0 : n . mute _until = 2e9 , d . updatePeerSettings ( - e . chatID , n ) } ) } ) } ) , e . chatFull . chat && e . chatFull . chat . pFlags . creator && e . chatFull . exported _invite && "chatInviteEmpty" == e . chatFull . exported _invite . _ && o . getChatInviteLink ( e . chatID , ! 0 ) . then ( function ( t ) { e . chatFull . exported _invite = { _ : "chatInviteExported" , link : t } } ) } ) , o . getChannelParticipants ( e . chatID ) . then ( function ( t ) { e . participants = r . wrapParticipants ( e . chatID , t ) , e . $broadcast ( "ui_height" ) } ) , e . leaveChannel = function ( ) { return h . confirm ( { type : e . isMegagroup ? "MEGAGROUP_LEAVE" : "CHANNEL_LEAVE" } ) . then ( function ( ) { l . invokeApi ( "channels.leaveChannel" , { channel : r . getChannelInput ( e . chatID ) } ) . then ( g ) } ) } , e . deleteChannel = function ( ) { return h . confirm ( { type : e . isMegagroup ? "MEGAGROUP_DELETE" : "CHANNEL_DELETE" } ) . then ( function ( ) { l . invokeApi ( "channels.deleteChannel" , { channel : r . getChannelInput ( e . chatID ) } ) . then ( g ) } ) } , e . flushHistory = function ( ) { h . confirm ( { type : "HISTORY_FLUSH" } ) . then ( function ( ) { u . flushHistory ( - e . chatID ) . then ( function ( ) { n . $broadcast ( "history_focus" , { peerString : e . chatFull . peerString } ) } ) } ) } , e . joinChannel = function ( ) { l . invokeApi ( "channels.joinChannel" , { channel : r . getChannelInput ( e . chatID ) } ) . then ( g ) } , e . inviteToChannel = function ( ) { var t = [ ] ; angular . forEach ( ( e . chatFull . participants || { } ) . participants || [ ] , function ( e ) { t . push ( e . user _id ) } ) , m . selectContacts ( { disabled : t } ) . then ( function ( t ) { var n = [ ] ; angular . forEach ( t , function ( e ) { n . push ( a . getUserInput ( e ) ) } ) , l . invokeApi ( "channels.inviteToChannel" , { channel : r . getChannelInput ( e . chatID ) , users : n } ) . then ( g ) } ) } , e . kickFromChannel = function ( t ) { l . invokeApi ( "channels.editBanned" , { channel : r . getChannelInput ( e . chatID ) , user _id : a . getUserInput ( t ) , banned _rights : { _ : "channelBannedRights" , flags : 1 , until _date : 0 } } ) . then ( g ) } , e . shareLink = function ( t ) { var a = n . $new ( ) ; return a . chatID = e . chatID , i . open ( { templateUrl : templateUrl ( "chat_invite_link_modal" ) , controller : "ChatInviteLinkModalController" , scope : a , windowClass : "md_simple_modal_window" } ) , cancelEvent ( t ) } , e . photo = { } , e . $watch ( "photo.file" , _ ) , e . deletePhoto = function ( ) { e . photo . updating = ! 0 , l . invokeApi ( "channels.editPhoto" , { channel : r . getChannelInput ( e . chatID ) , photo : { _ : "inputChatPhotoEmpty" } } ) . then ( g ) [ "finally" ] ( function ( ) { e . photo . updating = ! 1 } ) } , e . editChannel = function ( ) { var t = n . $new ( ) ; t . chatID = e . chatID , i . open ( { templateUrl : templateUrl ( e . isMegagroup ? "megagroup_edit_modal" : "channel_edit_modal" ) , controller : "ChannelEditModalController" , scope : t , windowClass : "md_simple_modal_window mobile_modal" } ) } , e . goToHistory = function ( ) { n . $broadcast ( "history_focus" , { peerString : e . chatFull . peerString } ) } , e . hasRights = function ( t ) { return r . hasRights ( e . chatID , t ) } } ] ) . controller ( "SettingsModalController" , [ "$rootScope" , "$scope" , "$timeout" , "$modal" , "AppUsersManager" , "AppChatsManager" , "AppPhotosManager" , "MtpApiManager" , "Storage" , "NotificationsManager" , "MtpApiFileManager" , "PasswordManager" , "ApiUpdatesManager" , "ChangelogNotifyService" , "LayoutSwitchService" , "WebPushApiManager" , "AppRuntimeManager" , "ErrorService" , "_" , function ( e , t , n , i , a , r , o , s , l , c , d , u , p , f , m , h , g , _ , v ) { function y ( ) { n . cancel ( w ) , w = ! 1 , u . getState ( ) . then ( function ( e ) { t . password = e , "account.noPassword" == e . _ && e . email _unconfirmed _pattern && ! k && ( w = n ( y , 5e3 ) ) } ) } function b ( e ) { e && e . type && 0 === e . type . indexOf ( "image" ) && ( t . photo . updating = ! 0 , d . uploadFile ( e ) . then ( function ( e ) { s . invo
var k = 16 & d . flags ? d . from _id : n ; w . getPeerMuted ( k ) . then ( function ( e ) { e || Ce ( d ) } ) } } function P ( e ) { var n = Le . dialogs , i = 0 , r = 0 , o = 0 , d = 0 , u = 0 ; return rt && ( i = rt + y . serverTimeOffset , d = 65536 * rt , u |= 1 ) , _ . invokeApi ( "messages.getDialogs" , { flags : u , offset _date : i , offset _id : f . getMessageLocalID ( r ) , offset _peer : c . getInputPeerByID ( o ) , limit : e } , { timeout : 300 } ) . then ( function ( e ) { i || S . setAuthorized ( ! 0 ) , s . saveApiUsers ( e . users ) , l . saveApiChats ( e . chats ) , ne ( e . messages ) ; var r = ! ! i , o = ! 1 ; e . dialogs . reverse ( ) , angular . forEach ( e . dialogs , function ( e ) { x ( e ) , d && e . index > d && ( ft [ e . peerID ] = e , o = ! 0 ) , r || c . isChannel ( c . getPeerID ( e . peer ) ) || ( Ae ( e . top _message ) , r = ! 0 ) } ) , e . dialogs . reverse ( ) , ( ! e . dialogs . length || ! e . count || n . length >= e . count ) && ( at = ! 0 ) , o && ! pt ? pt = a ( Ee , 0 ) : t . $broadcast ( "dialogs_multiupdate" , { } ) } ) } function D ( ) { return 2147483392 + ( 255 & ot ++ ) } function R ( e ) { return void 0 === e && ( e = tsNow ( ! 0 ) + y . serverTimeOffset ) , 65536 * e + ( 65535 & ++ st ) } function O ( e , t ) { var n = Le . dialogs , i = I ( e . peerID ) [ 1 ] ; if ( void 0 !== i && n . splice ( i , 1 ) , t && ! e . pFlags . pinned && ( ! rt || t < rt ) ) { if ( void 0 !== i ) return ! 1 ; rt = t } var a , r = e . index , o = n . length ; if ( ! o || r < n [ o - 1 ] . index ) n . push ( e ) ; else if ( r >= n [ 0 ] . index ) n . unshift ( e ) ; else for ( a = 0 ; a < o ; a ++ ) if ( r > n [ a ] . index ) { n . splice ( a , 0 , e ) ; break } } function N ( t , n , i , a ) { var r = c . isChannel ( t ) ; r && c . isMegagroup ( t ) ; return _ . invokeApi ( "messages.getHistory" , { peer : c . getInputPeerByID ( t ) , offset _id : n ? f . getMessageLocalID ( n ) : 0 , add _offset : a || 0 , limit : i || 0 } , { timeout : 300 , noErrorBox : ! 0 } ) . then ( function ( e ) { s . saveApiUsers ( e . users ) , l . saveApiChats ( e . chats ) , ne ( e . messages ) , r && o . addChannelState ( - t , e . pts ) ; var n = e . messages . length ; return n && e . messages [ n - 1 ] . deleted && ( e . messages . splice ( n - 1 , 1 ) , n -- , e . count -- ) , t < 0 || ! s . isBot ( t ) || n == i && i < e . count ? e : M . getProfile ( t ) . then ( function ( n ) { var i = n . bot _info && n . bot _info . description ; if ( i ) { var a = Ve -- , r = { _ : "messageService" , id : a , from _id : t , to _id : c . getOutputPeer ( t ) , flags : 0 , pFlags : { } , date : tsNow ( ! 0 ) + y . serverTimeOffset , action : { _ : "messageActionBotIntro" , description : i } } ; ne ( [ r ] ) , e . messages . push ( r ) , e . count && e . count ++ } return e } ) } , function ( n ) { switch ( n . type ) { case "CHANNEL_PRIVATE" : var i = l . getChat ( - t ) ; i = { _ : "channelForbidden" , access _hash : i . access _hash , title : i . title } , o . processUpdateMessage ( { _ : "updates" , updates : [ { _ : "updateChannel" , channel _id : - t } ] , chats : [ i ] , users : [ ] } ) } return e . reject ( n ) } ) } function L ( e , n , i , a ) { var r = lt [ e ] && ! n ? 1 : 0 ; return N ( e , n , i , r ) . then ( function ( r ) { a . count = r . count || r . messages . length ; var o = 0 ; if ( ! n && r . messages . length && ( n = r . messages [ 0 ] . mid + 1 ) , n > 0 ) for ( o = 0 ; o < a . history . length && ! ( n > a . history [ o ] ) ; o ++ ) ; var s = a . history . length ; a . history . splice ( o , a . history . length - o ) , angular . forEach ( r . messages , function ( n ) { V ( a , n ) && t . $broadcast ( "history_reply_markup" , { peerID : e } ) , a . history . push ( n . mid ) } ) ; var l = a . history . length ; i -= l - s ; var c = lt [ e ] , d = ct [ e ] , u = void 0 !== c || void 0 !== d ; if ( u && ( a . count = Math . max ( a . count , l ) + 1 ) , i > 0 ) { if ( n = a . history [ l - 1 ] , u ) { if ( ! r . messages . length ) { if ( ! d ) return a . count = l , ! 0 ; n = 0 , e = d } return L ( e , n , i , a ) } if ( l < a . count ) return L ( e , n , i , a ) } return ! 0 } ) } function F ( t , n ) { var i = n . unreadOffset ; if ( i ) { var a , r ; for ( a = n . history . length - 1 ; a >= 0 ; a -- ) if ( r = De [ n . history [ a ] ] , r && ! r . pFlags . out && r . pFlags . unread ) { n . unreadOffset = a + 1 ; break } } return e . when ( n ) } function U ( e , n ) { if ( ! lt [ e ] && ! ct [ n ] && l . hasChat ( - n ) ) { var i = l . getChat ( - e ) ; i && i . migrated _to && i . migrated _to . channel _id == - n && ( lt [ e ] = n , ct [ n ] = e , a ( function ( ) { var i = I ( e ) ; i . length && ( Le . dialogs . splice ( i [ 1 ] , 1 ) , t . $broadcast ( "dialog_drop" , { peerID : e } ) ) , t . $broadcast ( "dialog_migrate" , { migrateFrom : e , migrateTo : n } ) } , 100 ) ) } } function B ( e ) { if ( lt [ e ] ) return lt [ e ] } function H ( e , t , n , i , a ) { lt [ e ] && ( e = lt [ e ] ) ; var r = Ne [ e ] , o = 0 , s = ! 1 , l = ! 1 , c = ! 1 ; a = a ? Math . min ( 50 , a ) : 0 , void 0 === r && ( r = Ne [ e ] = { count : null , history : [ ] , pending : [ ] } ) , t < 0 && ( t = 0 ) ; var d = ! 1 , u = e ; if ( ct [ e ] && ( d = ! 0 , t && t < f . fullMsgIDModulus && ( u = ct [ e ] ) ) , ! n && ! t ) { var p = I ( e ) [ 0 ] ; if ( p && p . unread _count > 1 ) { var m = p . unread _count ; ( c = m > 50 ) ? p . read _inbox _max _id ? ( t = p . read _inbox _max _id , i = 16 , l = 16 , n = 4 ) : ( n = 20 , l = 16 , o = m - l ) : ( n = Math . max ( 10 , a , m + 2 ) , l = m ) } else Config . Mobile && ( n = 20 ) } if ( t > 0 ) for ( s = ! 0 , o = 0 ; o < r . history . length ; o ++ ) if ( t > r . history [ o ] ) { s = ! 1 ; break } if ( ! s && ( null !== r . count && r . history . length == r . count || r . history . length >= o + ( n || 1 ) ) ) { i ? ( i = Math . min ( o , i ) , o = Math . max ( 0 , o - i ) , n += i ) : n = n || ( o ? 20 : a || 5 ) ; var h = r . history . slice ( o , o + n ) ; return ! t && r . pending . length
} function Ae ( e ) { return ! ( ! e || et && ! ( e > et ) ) && ( k . set ( { max _seen _msg : e } ) , void _ . invokeApi ( "messages.receivedMessages" , { max _id : e } ) ) } function Ce ( e , n ) { n = n || { } ; var i , a , r = me ( e ) , o = { } , c = ! 1 , d = w . getNotifySettings ( ) ; if ( e . fwdFromID && n . fwd _count ) c = nt ( n . fwd _count ) ; else if ( e . message ) c = d . nopreview ? T ( "conversation_message_sent" ) : b . wrapPlainText ( e . message ) ; else if ( e . media ) { var u = ! 1 ; switch ( e . media . _ ) { case "messageMediaPhoto" : c = T ( "conversation_media_photo_raw" ) , u = "🖼" ; break ; case "messageMediaDocument" : switch ( e . media . document . type ) { case "gif" : c = T ( "conversation_media_gif_raw" ) , u = "🎬" ; break ; case "sticker" : c = T ( "conversation_media_sticker" ) ; var p = e . media . document . stickerEmojiRaw ; void 0 !== p && ( c = b . wrapPlainText ( p ) + " " + c ) ; break ; case "video" : c = T ( "conversation_media_video_raw" ) , u = "📹" ; break ; case "round" : c = T ( "conversation_media_round_raw" ) , u = "📹" ; break ; case "voice" : case "audio" : c = T ( "conversation_media_audio_raw" ) ; break ; default : e . media . document . file _name ? c = b . wrapPlainText ( "📎 " + e . media . document . file _name ) : ( c = T ( "conversation_media_document_raw" ) , u = "📎" ) } break ; case "messageMediaGeo" : case "messageMediaVenue" : c = T ( "conversation_media_location_raw" ) , u = "📍" ; break ; case "messageMediaContact" : c = T ( "conversation_media_contact_raw" ) ; break ; case "messageMediaGame" : c = b . wrapPlainText ( "🎮 " + e . media . game . title ) ; break ; case "messageMediaUnsupported" : c = T ( "conversation_media_unsupported_raw" ) ; break ; default : c = T ( "conversation_media_attachment_raw" ) } u !== ! 1 && e . media . caption && ( c = b . wrapPlainText ( u + " " + e . media . caption ) ) } else if ( "messageService" == e . _ ) switch ( e . action . _ ) { case "messageActionChatCreate" : c = T ( "conversation_group_created_raw" ) ; break ; case "messageActionChatEditTitle" : c = T ( "conversation_group_renamed_raw" ) ; break ; case "messageActionChatEditPhoto" : c = T ( "conversation_group_photo_updated_raw" ) ; break ; case "messageActionChatDeletePhoto" : c = T ( "conversation_group_photo_removed_raw" ) ; break ; case "messageActionChatAddUser" : case "messageActionChatAddUsers" : c = T ( "conversation_invited_user_message_raw" ) ; break ; case "messageActionChatReturn" : c = T ( "conversation_returned_to_group_raw" ) ; break ; case "messageActionChatJoined" : c = T ( "conversation_joined_group_raw" ) ; break ; case "messageActionChatDeleteUser" : c = T ( "conversation_kicked_user_message_raw" ) ; break ; case "messageActionChatLeave" : c = T ( "conversation_left_group_raw" ) ; break ; case "messageActionChatJoinedByLink" : c = T ( "conversation_joined_by_link_raw" ) ; break ; case "messageActionChannelCreate" : c = T ( "conversation_created_channel_raw" ) ; break ; case "messageActionChannelEditTitle" : c = T ( "conversation_changed_channel_name_raw" ) ; break ; case "messageActionChannelEditPhoto" : c = T ( "conversation_changed_channel_photo_raw" ) ; break ; case "messageActionChannelDeletePhoto" : c = T ( "conversation_removed_channel_photo_raw" ) ; break ; case "messageActionPinMessage" : c = T ( "conversation_pinned_message_raw" ) ; break ; case "messageActionGameScore" : c = it ( e . action . score ) ; break ; case "messageActionPhoneCall" : switch ( e . action . type ) { case "out_missed" : c = T ( "message_service_phonecall_canceled_raw" ) ; break ; case "in_missed" : c = T ( "message_service_phonecall_missed_raw" ) ; break ; case "out_ok" : c = T ( "message_service_phonecall_outgoing_raw" ) ; break ; case "in_ok" : c = T ( "message_service_phonecall_incoming_raw" ) } } if ( r > 0 ) { var f = s . getUser ( e . from _id ) , m = s . getUserPhoto ( e . from _id ) ; o . title = ( f . first _name || "" ) + ( f . first _name && f . last _name ? " " : "" ) + ( f . last _name || "" ) , o . title || ( o . title = f . phone || T ( "conversation_unknown_user_raw" ) ) , a = m , i = s . getUserString ( r ) } else { if ( o . title = l . getChat ( - r ) . title || T ( "conversation_unknown_chat_raw" ) , e . from _id > 0 ) { var f = s . getUser ( e . from _id ) ; o . title = ( f . first _name || f . last _name || T ( "conversation_unknown_user_raw" ) ) + " @ " + o . title } a = l . getChatPhoto ( - r ) , i = l . getChatString ( - r ) } o . title = b . wrapPlainText ( o . title ) , o . onclick = function ( ) { t . $broadcast ( "history_focus" , { peerString : i , messageID : 16 & e . flags ? e . mid : 0 } ) } , o . message = c , o . key = "msg" + e . mid , o . tag = i , o . silent = e . pFlags . silent || ! 1 , a . location && ! a . location . empty ? v . downloadSmallFile ( a . location , a . size ) . then ( function ( t ) { e . pFlags . unread && ( o . image = t , w . notify ( o ) ) } ) : w . notify ( o ) } function Te ( ) { a . cancel ( dt ) , dt = ! 1 , t . $broadcast ( "history_multiappend" , ut ) , ut = { } } function Ee ( ) { a . cancel ( pt ) , pt = ! 1 ; var e = 0 ; angular . forEach ( ft , function ( t , n )
e . put ( "partials/mobile/channel_modal.html" , '<div class="chat_modal_wrap">\n\n <div class="tg_page_head tg_modal_head">\n <div class="navbar navbar-static-top navbar-inverse">\n <div class="container">\n\n <div class="navbar-toggle-wrap dropdown" dropdown ng-if="hasRights(\'edit_title\') || hasRights(\'edit_photo\')">\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul class="dropdown-menu">\n <li ng-if="chatFull.chat.photo.photo_small" ng-if="hasRights(\'edit_photo\')">\n <a ng-click="deletePhoto()" my-i18n="group_modal_menu_delete_photo"></a>\n </li>\n <li ng-if="hasRights(\'edit_title\')">\n <a ng-click="editChannel()" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_menu_edit_group"></span>\n <span ng-switch-default my-i18n="channel_modal_menu_edit"></span>\n </a>\n </li>\n </ul>\n </div>\n\n <div class="navbar-header">\n\n <ul class="nav navbar-nav navbar-quick-nav">\n <li>\n <a ng-click="$close()" class="navbar-quick-media-back">\n <i class="icon icon-back"></i>\n <div class="navbar-quick-back-title" ng-switch="isMegagroup">\n <h4>\n <span ng-switch-when="true" my-i18n="group_modal_info"></span>\n <span ng-switch-default my-i18n="channel_modal_info"></span>\n </h4>\n </div>\n </a>\n </li>\n </ul>\n\n </div>\n\n </div>\n </div>\n </div>\n\n <div class="modal-body mobile_modal_body">\n\n <div class="mobile_user_modal_photo_profile_wrap">\n\n <a ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="mobile_user_modal_image_wrap pull-left" my-peer-photolink="::-chatFull.chat.id" img-class="mobile_user_modal_image mobile_chat_modal_image" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\n\n <div class="mobile_user_modal_info_wrap clearfix">\n <h4 class="mobile_user_modal_header" my-peer-link="-chatFull.chat.id"></h4>\n <p class="mobile_user_modal_status" ng-if="chatFull.participants_count > 0" ng-switch="isMegagroup">\n <ng-pluralize ng-switch-when="true"\n count="chatFull.participants_count"\n when="group_modal_pluralize_participants">\n </ng-pluralize>\n <ng-pluralize ng-switch-default\n count="chatFull.participants_count"\n when="group_modal_pluralize_subscribers">\n </ng-pluralize>\n </p>\n </div>\n\n </div>\n\n <div class="mobile_modal_section" ng-if="chatFull.chat.username">\n <h4 class="mobile_modal_section_header" my-i18n="channel_modal_share_link"></h4>\n <div class="mobile_modal_section_value">\n <a class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="\'https://t.me/\' + chatFull . chat . username " ng-href=" https : //t.me/{{chatFull.chat.username}}" target="_blank"></a>\n </div>\n </div>\n\n <div class="mobile_modal_section" ng-if="!chatFull.chat.username && chatFull.chat.pFlags.creator">\n <h4 class="mobile_modal_section_header" my-i18n="channel_modal_share_link"></h4>\n <div class="mobile_modal_section_value" ng-switch="chatFull.exported_invite._">\n <a ng-switch-when="chatInviteExported" class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="chatFull.exported_invite.link" ng-href="{{chatFull.exported_invite.link}}" target="_blank"></a>\n <span ng-switch-default my-i18n="channel_modal_share_loading">\n <my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param>\n
e . put ( "partials/mobile/head.html" , '<div class="tg_page_head">\n <div class="navbar navbar-static-top navbar-inverse" role="navigation" ng-class="{navbar_peer_not_selected: !curDialog.peer, navbar_offline: offline, navbar_history_select: historyState.selectActions}">\n <div class="container">\n\n\n <a class="navbar-peer-wrap" my-peer-photolink="historyPeer.id" peer-watch="true"></a>\n\n <div class="navbar-toggle-wrap dropdown" dropdown ng-switch="!curDialog.peer">\n <a class="dropdown-toggle navbar-toggle" dropdown-toggle>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n <span class="icon-bar"></span>\n </a>\n <ul ng-switch-when="true" class="dropdown-menu">\n <li><a ng-click="openGroup()" my-i18n="head_new_group"></a></li>\n <li><a ng-click="importContact()" my-i18n="head_new_contact"></a></li>\n <li ng-if="!isEmpty.contacts"><a ng-click="openContacts()" my-i18n="head_contacts"></a></li>\n <li><a ng-click="openSettings()" my-i18n="head_settings"></a></li>\n <li><a ng-click="logOut()" my-i18n="head_log_out"></a></li>\n </ul>\n <ul ng-switch-default class="dropdown-menu">\n <li><a ng-click="toggleEdit()" my-i18n="head_select_messages"></a></li>\n <li ng-if="!historyFilter.mediaType" class="divider"></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'photos\')" my-i18n="head_media_photos"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'video\')" my-i18n="head_media_video"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'documents\')" my-i18n="head_media_documents"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'music\')" my-i18n="head_media_music"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'urls\')" my-i18n="head_media_links"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'audio\')" my-i18n="head_media_audio"></a></li>\n <li ng-if="!historyFilter.mediaType"><a ng-click="toggleMedia(\'round\')" my-i18n="head_media_round"></a></li>\n <li ng-if="!historyFilter.mediaType && isHistoryPeerGroup()" class="divider"></li>\n <li ng-if="!historyFilter.mediaType && isHistoryPeerGroup()"><a ng-click="toggleMedia(\'mentions\' ) " my-i18n=" head _media _mymentions "></a></li>\n </ul>\n </div>\n\n <a class=" navbar - search - wrap " ng-click=" toggleSearch ( ) ">\n <i class=" icon - search "></i>\n </a>\n\n <div class=" navbar - header ">\n\n <a class=" navbar - brand tg _logo _wrap " href=" # / im "><i class=" icon icon - tg - logo "></i><i class=" icon icon - tg - title "></i></a>\n\n <span class=" tg _head _logo "></span></a>\n\n <div class=" tg _head _peer _menu _wrap " ng-switch=" curDialog . peer & amp ; & amp ; historyFilter . mediaType . length > 0 ">\n <ul ng-switch-when=" true " class=" nav navbar - nav navbar - quick - nav ">\n <li>\n <a ng-click=" toggleMedia ( ) " class=" navbar - quick - media - back ">\n <i class=" icon icon - back "></i>\n <div class=" navbar - quick - back - title " ng-switch=" historyFilter . mediaType ">\n <h4 ng-switch-when=" photos " my-i18n=" im _media _photos "></h4>\n <h4 ng-switch-when=" video " my-i18n=" im _media _video "></h4>\n <h4 ng-switch-when=" documents " my-i18n=" im _media _documents "></h4>\n <h4 ng-switch-when=" audio " my-i18n=" im _media _audio "></h4>\n <h4 ng-switch-when=" round " my-i18n=" im _media _round "></h4>\n <h4 ng-switch-when=" music " my-i18n=" im _media _music "></h4>\n <h4 ng-switch-when=" urls " my-i18n=" im _media _links "></h4>\n <h4 ng-switch-when=" mentions " my-i18n=" im _media _mentions "></h4>\n </div>\n </a>\n </li>\n </ul>\n <div ng-switch-default ng-switch=" historyState . selectActions " > \ n < ul ng - swi
e . put ( "partials/mobile/message_actions_modal.html" , '<div class="message_actions_modal_wrap" my-modal-position>\n\n <div class="message_actions_wrap">\n <button ng-if="historyState.canReply" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_reply" ng-click="$close(\'reply\')"></button>\n <button ng-if="historyState.canEdit" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_edit" ng-click="$close(\'edit\')"></button>\n <button class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_forward" ng-click="$close(\'forward\')"></button>\n <button ng-if="historyState.canDelete" class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_delete" ng-click="$close(\'delete\')"></button>\n <button class="btn btn-md btn-md-primary btn-block" my-i18n="message_action_select" ng-click="$close(\'select\')"></button>\n <button class="btn btn-md btn-block" my-i18n="message_action_cancel" ng-click="$dismiss()"></button>\n </div>\n\n</div>\n' ) , e . put ( "partials/mobile/message_attach_contact.html" , '<div class="im_message_contact">\n <a ng-if="::media.user_id > 0" class="im_message_contact_photo pull-left" my-peer-photolink="media.user_id" img-class="im_message_contact_photo" user-override="media"></a>\n <div class="im_message_contact_name" ng-switch="media.user_id > 0">\n <a ng-switch-when="true" my-peer-link="media.user_id" user-override="media"></a>\n <span ng-switch-default ng-bind-html="::media.rFullName"></span>\n </div>\n <div class="im_message_contact_phone" ng-bind="::media.phone_number | phoneNumber"></div>\n</div>' ) , e . put ( "partials/mobile/message_attach_document.html" , '<div ng-switch="::media.document.type">\n\n <div ng-switch-when="gif" my-load-gif document="media.document"></div>\n \n <div ng-switch-when="round" my-load-round document="media.document"></div>\n\n <div ng-switch-when="sticker" my-load-sticker document="media.document" open="true"></div>\n\n <div ng-switch-when="voice" class="im_message_audio">\n <div my-audio-player audio="media.document"></div>\n </div>\n\n <div ng-switch-when="audio" class="im_message_audio">\n <div my-audio-player audio="media.document"></div>\n </div>\n\n <div ng-switch-when="video" class="im_message_video im_message_document_thumbed">\n <a class="im_message_video_thumb" href="" ng-click="videoOpen()" ng-style="::{width: media.document.thumb.width + \'px\' } ">\n <span class=" im _message _video _duration " ng-bind=" : : media . document . duration | duration "></span>\n <i class=" icon icon - videoplay "></i>\n <img\n class=" im _message _video _thumb im _message _video _thumb _blurred "\n my-load-thumb\n thumb=" media . document . thumb "\n />\n </a>\n </div>\n\n <div ng-switch-default class=" im _message _document clearfix " ng-class=" { im _message _document _thumbed : ! ! media . document . thumb , im _message _document _progress : media . document . progress . enabled } ">\n\n <a ng-if=" : : ! media . document . thumb " class=" im _message _file _button " ng-click=" docOpen ( ) " ng-class=" { im _message _file _button _dl _doc : media . document . downloaded } ">\n <i class=" im _message _file _button _icon "></i>\n </a>\n <a ng-if=" : : media . document . thumb " ng-click=" docOpen ( ) ">\n <div class=" im _message _document _thumb _wrap ">\n <img\n class=" im _message _document _thumb "\n my-load-thumb\n thumb=" media . document . thumb "\n />\n </div>\n </a>\n\n <div class=" im _message _document _info ">\n <div class=" im _message _document _name _wrap ">\n <a href=" " ng-attr-data-name=" { { media _file _name _without _ext } } " ng-attr-data-ext=" { { media _file _ext } } " ng-click=" docOpen ( ) " class=" im _message _document _name "></a>\n <span class=" im _message _document _size " ng-if=" ! media . document . progress . enabled " ng-bind=" : : media . document . size | formatSize "></span>\n <span class=" im _message _document _size " ng-if=" media . document . progress . enabled " ng-bind=" media . document . progress | formatSizeProgress "></span>\n </div>\n <div class=" im _message _document _actions " ng-if=" ! media . document . progress . en
e . put ( "partials/mobile/send_form.html" , '<form class="im_send_form" ng-class="{im_send_form_empty: !draftMessage.text.length && draftMessage.type != \'edit\', composer_progress_enabled: draftMessage.inlineProgress, im_voice_recording: voiceRecorder.recording, im_processing_recording: voiceRecorder.processing}">\n\n <div class="im_send_reply_wrap" ng-if="draftMessage.replyToMsgID > 0">\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.replyClear(true)"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <a class="im_message_reply_wrap" my-reply-message="draftMessage.replyToMsgID" watch="true" edit="{{draftMessage.type == \'edit\'}}"></a>\n </div>\n\n <div class="im_send_reply_wrap im_send_fwds_wrap" ng-if="draftMessage.fwdMessages.length > 0">\n <a class="im_send_reply_cancel" ng-mousedown="draftMessage.fwdsClear()"><i class="icon icon-reply-bar"></i><i class="icon icon-reply-bar"></i></a>\n <div class="im_message_reply_wrap" my-forwarded-messages="draftMessage.fwdMessages"></div>\n </div>\n\n <div class="im_send_field_panel">\n\n <div class="im_voice_recorder_wrap">\n <div class="im_recorder_indicator"><i></i></div>\n <div class="im_recorder_time" ng-bind="voiceRecorder.duration | duration"></div>\n <div class="im_recorder_label" ng-switch="voiceRecorder.processing">\n <span ng-switch-when="true" my-i18n="im_voice_processing_label">\n <my-i18n-param name="dots"></my-i18n-param>\n </span>\n <span ng-switch-default>\n <span class="im_recorder_label_hover" my-i18n="im_voice_recording_label"></span>\n <span class="im_recorder_label_hout" my-i18n="im_voice_recording_cancel_label"></span>\n </span>\n </div>\n </div>\n\n <div class="im_send_field_wrap" ng-class="replyKeyboard._ == \'replyKeyboardMarkup\' ? \'im_send_field_wrap_2ndbtn\' : \'\'">\n <a class="composer_emoji_insert_btn pull-right"><i class="icon icon-emoji"></i></a>\n <a class="composer_command_btn" ng-show="!replyKeyboard && commands.list.length > 0 && (!draftMessage.text.length || draftMessage.text[0] == \'/\')" ng-mousedown="draftMessage.toggleSlash($event)" ng-class="draftMessage.text[0] == \'/\' ? \'active\' : \'\'"><i class="icon icon-slash"></i></a>\n <a class="composer_keyboard_btn" ng-show="replyKeyboard._ == \'replyKeyboardMarkup\'" ng-mousedown="draftMessage.replyKeyboardToggle($event)" ng-class="!replyKeyboard.pFlags.hidden ? \'active\' : \'\'"><i class="icon icon-keyboard"></i></a>\n\n <div class="composer_progress_icon_wrap">\n <div class="composer_progress_icon" my-arc-progress width="22" stroke="2.5"></div>\n </div>\n\n <div class="im_send_dropbox_wrap" my-i18n="im_photos_drop_text"></div>\n <textarea ng-model="draftMessage.text" class="form-control im_message_field no_outline" dir="auto" ng-trim="false"></textarea>\n </div>\n\n <div class="im_attach pull-left">\n <input type="file" class="im_attach_input" size="28" multiple="true" title="{{\'im_media_attach_title\' | i18n}}" />\n <i class="icon icon-paperclip"></i>\n </div>\n\n <div class="im_record pull-right">\n <i class="icon icon-mic"></i>\n </div>\n\n <button type="submit" class="btn btn-success im_submit"></button>\n </div>\n\n\n <div class="im_send_keyboard_wrap" ng-if="replyKeyboard._ == \'replyKeyboardMarkup\'" ng-show="!replyKeyboard.pFlags.hidden">\n <div my-reply-markup="replyKeyboard"></div>\n </div>\n\n</form>' ) , e . put ( "partials/mobile/sessions_list_modal.html" , ' < div class = "sessions_modal_wrap" > \ n \ n < div class = "tg_page_head tg_modal_head" > \ n < div class = "navbar navbar-static-top navbar-inverse" > \ n < div class = "container" > \ n \ n < div class = "navbar-header" > \ n < ul class = "nav navbar-nav navbar-quick-nav" > \ n < li > \ n < a ng - click = "$dismiss()" class = "navbar-quick-media-back" > \ n < i class = "icon icon-back" > < / i > \ n < d i v c l a s s = " n a v b a r - q u i c k - b a c k - t i t l e " > \ n < h 4 m y - i 1 8 n = " s e s s i o n s _ m o d a l _ t i t l e " > < / h 4 > \
e . put ( "partials/desktop/channel_modal.html" , '<div class="chat_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$close()" my-i18n="modal_close"></a>\n <a class="md_modal_action" ng-if="hasRights(\'edit_title\')" ng-click="editChannel()" my-i18n="modal_edit"></a>\n </div>\n <div class="md_modal_title" ng-switch="isMegagroup">\n <span ng-switch-when="true" my-i18n="group_modal_info"></span>\n <span ng-switch-default my-i18n="channel_modal_info"></span>\n </div>\n </div>\n\n <div class="peer_modal_profile_wrap clearfix">\n <div class="peer_modal_photo_wrap pull-left" ng-switch="photo.updating">\n <div ng-switch-when="true" class="peer_modal_photo md_photo_loading loading_dots">\n <i></i><i></i><i></i>\n </div>\n <a ng-switch-default ng-click="openPhoto(chatFull.chat_photo.id, {p: -chatFull.chat.id})" class="peer_modal_photo" my-peer-photolink="::-chatFull.chat.id" img-class="peer_modal_photo" no-open="true" watch="true" ng-class="{disabled: !chatFull.chat.photo.photo_small}" ng-disabled="!chatFull.chat.photo.photo_small"></a>\n </div>\n <div class="peer_modal_profile">\n <div class="peer_modal_profile_name" my-peer-link="-chatFull.chat.id" verified="true"></div>\n <div class="peer_modal_profile_description" ng-if="chatFull.participants_count > 0" ng-switch="isMegagroup">\n <ng-pluralize ng-switch-when="true"\n count="chatFull.participants_count"\n when="group_modal_pluralize_participants">\n </ng-pluralize>\n <ng-pluralize ng-switch-default\n count="chatFull.participants_count"\n when="group_modal_pluralize_subscribers">\n </ng-pluralize>\n </div>\n </div>\n </div>\n </div>\n\n <div class="md_modal_split_actions_wrap">\n <div class="md_modal_split_actions" ng-switch="hasRights(\'edit_photo\')">\n <div ng-switch-when="true" class="md_modal_split_action">\n <input my-file-upload type="file" multiple="false" class="im_attach_input" size="120" accept="image/x-png, image/png, image/gif, image/jpeg" title="{{\'group_modal_update_photo\' | i18n}}" />\n <i class="md_modal_split_action_camera"></i>\n </div>\n <a ng-switch-default class="md_modal_split_action" href="" ng-click="goToHistory()" title="{{\'user_modal_send_message\' | i18n}}">\n <i class="md_modal_split_action_msg"></i>\n </a>\n </div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="md_modal_sections clearfix">\n\n <div class="md_modal_iconed_section_wrap md_modal_iconed_section_number" ng-if="chatFull.rAbout || chatFull.chat.username || chatFull.chat.pFlags.creator">\n <i class="md_modal_section_icon md_modal_section_icon_about"></i>\n\n <div class="md_modal_section_param_wrap" ng-if="chatFull.about.length > 0">\n <div class="md_modal_section_param_value">\n <span ng-bind-html="chatFull.rAbout"></span>\n </div>\n <div class="md_modal_section_param_name" my-i18n="channel_modal_description"></div>\n </div>\n\n <div class="md_modal_section_param_wrap" ng-if="chatFull.chat.username">\n <div class="md_modal_section_param_value">\n <a class="settings_modal_username_link" ng-click="shareLink($event)" ng-bind="\'https://t.me/\' + chatFull . chat . username " ng-href=" https : //t.me/{{chatFull.chat.username}}" target="_blank"></a>\n </div>\n <div class="md_modal_section_param_name" my-i18n="channel_modal_share_link"></div>\n </div>\n\n <div class="md_modal_section_param_wrap" ng-if="!chatFull.chat.username && chatFull.chat.pFlags.creator">\n <div class="md_modal_section_param_value" ng-switch="chatFull.exported_invite._">\n <a ng-switch-when="chatInvi
e . put ( "partials/desktop/country_select_modal.html" , '<div class="countries_modal_wrap md_modal_wrap" my-modal-position>\n\n <div class="md_modal_head md_modal_head_simple">\n <div class="md_modal_title_wrap">\n <div class="md_modal_actions_wrap clearfix">\n <a class="md_modal_action md_modal_action_close" ng-click="$dismiss()" my-i18n="modal_close"></a>\n </div>\n </div>\n <div class="md_modal_title" my-i18n="country_select_modal_title"></div>\n </div>\n\n <div class="md_modal_body">\n\n <div class="countries_modal_search">\n <input class="form-control countries_modal_search_field no_outline" my-focused type="search" placeholder="{{\'modal_search\' | i18n}}" ng-model="search.query" autocomplete="off" />\n <a class="countries_modal_search_clear tg_search_clear" ng-click="search.query = \'\'" ng-show="search.query.length">\n <i class="icon icon-search-clear"></i>\n </a>\n\n </div>\n\n <div class="countries_modal_col" my-countries-list>\n\n <div class="countries_wrap nano" my-infinite-scroller>\n <div class="countries_scrollable_wrap nano-content">\n\n <ul class="countries_modal_members_list nav nav-pills nav-stacked">\n\n <li class="countries_modal_country_wrap clearfix" ng-repeat="country in countries | limitTo : slice.limit track by $index">\n <a class="countries_modal_country" ng-click="$close(country)">\n <span class="countries_modal_country_code pull-right" ng-bind="country.code"></span>\n <span class="countries_modal_country_name" ng-bind="country.name"></span>\n </a>\n </li>\n\n </ul>\n\n </div>\n </div>\n\n </div>\n\n </div>\n\n</div>\n' ) , e . put ( "partials/desktop/dialog.html" , '<a class="im_dialog" ng-mousedown="dialogSelect(dialogMessage.peerString, dialogMessage.unreadCount == -1 && dialogMessage.mid)">\n\n <div class="im_dialog_meta pull-right text-right">\n <div class="im_dialog_date" ng-bind="dialogMessage.dateText"></div>\n <span\n class="im_dialog_badge badge ng-hide"\n ng-show="dialogMessage.unreadCount > 0 && !dialogMessage.pFlags.out"\n ng-bind="dialogMessage.unreadCount"\n my-peer-muted="dialogMessage.peerID" muted-class="im_dialog_badge_muted"\n ></span>\n <i\n class="im_dialog_unread ng-hide"\n ng-show="dialogMessage.pFlags.out && dialogMessage.pFlags.unread"\n ></i>\n <i\n class="im_dialog_pinned ng-hide"\n ng-show="dialogMessage.pinned && !dialogMessage.unreadCount && !dialogMessage.pFlags.unread"\n ></i>\n </div>\n\n <i class="icon icon-select-tick" ng-class="{dialog_selected: isSelected(dialogMessage.peerString)}" ng-mousedown="dialogMultiSelect(dialogMessage.peerString, $event)"></i>\n \n <div class="im_dialog_photo pull-left" my-peer-photolink="::dialogMessage.peerID" img-class="im_dialog_photo" watch="true" for-dialog="!dialogMessage.foundInHistory"></div>\n\n <div class="im_dialog_message_wrap">\n\n <div class="im_dialog_peer">\n <span my-peer-link="dialogMessage.peerID" verified="true" for-dialog="!dialogMessage.foundInHistory"></span>\n </div>\n\n <div ng-switch="dialogMessage.typing ? \'typing\' : (!dialogMessage.unreadCount && dialogMessage.draft ? \'draft\' : (dialogMessage.deleted ? \'deleted\' : \'message\' ) ) ">\n\n <div ng-switch-when=" typing " class=" im _dialog _message ">\n <span class=" im _short _message _service " my-i18n=" im _conversation _group _typing ">\n <my-i18n-param name=" name "><span my-peer-link=" dialogMessage . typing " short=" true " class=" im _dialog _chat _from _wrap "></span></my-i18n-param><my-i18n-param name=" dots "><span my-loading-dots></span></my-i18n-param>\n </span>\n </div>\n\n <div ng-switch-when=" draft " class=" im _dialog _message ">\n <span class=" im _dialog _chat _from _wrap ">\n <span class=" im _dialog _draft _from " my-i18n=" conversation _draft "></span>\n </span>\n <span class=" im _short _message _text " ng-bind-html=" dialogMessage . draft . richMessage " > < / s p a n > \ n < / d i v >
e . put ( "partials/desktop/im.html" , '<div my-head></div>\n\n<div class="im_page_wrap clearfix" ng-class="{im_page_peer_not_selected: !curDialog.peer}">\n\n <div class="im_page_split clearfix">\n\n <div class="im_dialogs_col_wrap noselect" ng-controller="AppImDialogsController" my-dialogs ng-class="search.query.length > 0 ? \'im_dialogs_col_search\' : \'\'">\n <div class="im_dialogs_panel">\n <div class="im_dialogs_search">\n <input class="form-control im_dialogs_search_field no_outline" type="search" placeholder="{{\'modal_search\' | i18n } } " ng-model=" search . query " autocomplete=" off " />\n <a class=" im _dialogs _search _clear tg _search _clear " ng-click=" searchClear ( ) " ng-show=" search . query . length ">\n <i class=" icon icon - search - clear "></i>\n </a>\n </div>\n </div>\n\n <div my-dialogs-list class=" im _dialogs _col ">\n <div class=" im _dialogs _wrap nano ">\n <div class=" im _dialogs _scrollable _wrap nano - content ">\n\n <div class=" im _dialogs _empty _wrap " ng-if=" isEmpty . dialogs && isEmpty . contacts ">\n <h3 class=" im _dialogs _empty _header " my-i18n=" im _no _contacts "></h3>\n <p class=" im _dialogs _empty _lead " my-i18n=" im _get _started _long "></p>\n <button type=" button " class=" btn btn - primary btn - sm " ng-click=" importContact ( ) " my-i18n=" im _add _contact "></button>\n <button ng-if=" phonebookAvailable " type=" button " class=" btn btn - primary btn - sm im _dialogs _import _phonebook " ng-click=" importPhonebook ( ) " my-i18n=" im _import _phonebook "></button>\n </div>\n\n <ul class=" nav nav - pills nav - stacked ">\n <li class=" im _dialog _wrap " ng-if=" searchPeer ">\n <a class=" im _dialog im _dialog _searchpeer disabled " ng-mousedown=" setSearchPeer ( ) ">\n\n <div class=" im _dialog _meta pull - right ">\n <div class=" im _dialog _clear _searchpeer ">\n <!-- <i class=" icon icon - clear - searchpeer "></i> -->\n <i class=" icon icon - search - clear "></i>\n </div>\n </div>\n\n <div class=" im _dialog _photo pull - left " my-peer-photolink=" searchPeer " img-class=" im _dialog _photo " watch=" true " for-dialog=" true "></div>\n\n <div class=" im _dialog _message _wrap ">\n\n <div class=" im _dialog _peer ">\n <span my-peer-link=" searchPeer " for-dialog=" true "></span>\n </div>\n\n <div class=" im _dialog _message ">\n <span class=" " my-i18n=" conversation _search _peer "></span>\n </div>\n\n </div>\n\n </a>\n\n </li>\n <li class=" im _dialog _wrap " my-dialog dialog-message=" dialogMessage " ng-repeat=" dialogMessage in dialogs track by dialogMessage . peerID " ng-class=" { active : curDialog . peerID == dialogMessage . peerID } "></li>\n </ul>\n\n <div class=" im _dialogs _contacts _wrap " ng-show=" myResults . length > 0 ">\n <h5 my-i18n=" im _chat _contacts _title "></h5>\n <ul class=" nav nav - pills nav - stacked ">\n <li class=" im _dialog _wrap " ng-repeat=" myResult in myResults track by myResult . id " ng-class=" { active : curDialog . peerID == myResult . id } ">\n <a class=" im _dialog " ng-mousedown=" dialogSelect ( myResult . peerString ) ">\n <div class=" im _dialog _photo pull - left " my-peer-photolink=" myResult . id " img-class=" im _dialog _photo " watch=" true " for-dialog=" true "></div>\n <div class=" im _dialog _message _wrap ">\n <div class=" im _dialog _peer ">\n <span class=" im _dialog _user " my-peer-link=" myResult . id " verified=" true " for-dialog=" true "></span>\n </div>\n <div class=" im _dialog _message " ng-switch=" myResult . id > 0 ">\n <span ng-switch-when=" true " class=" im _dialog _message _text " my-user-status=" : : myResult . id " for-dialog=" true " > < / s p a n > \ n < s p a n
e . put ( "partials/desktop/media_modal_layout.html" , '<div tabindex="-1" role="dialog" class="modal" ng-style="{\'z-index\': 1050 + index*10}" ng-click="close($event)" modal-transclude></div>' ) , e . put ( "partials/desktop/megagroup_edit_modal.html" , '<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateChannel()">\n\n <h4 my-i18n="channel_edit_modal_title"></h4>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_edit_name"></label>\n <input class="md-input" my-focused type="text" ng-model="channel.title" />\n </div>\n\n <div class="md-input-group" my-labeled-input>\n <label class="md-input-label" my-i18n="group_edit_about"></label>\n <input class="md-input" type="text" ng-model="channel.about" />\n </div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: channel.updating}" ng-click="updateChannel()" ng-bind="channel.updating ? \'group_edit_submit_active\' : \'group_edit_submit\' | i18n" ng-disabled="channel.updating"></button>\n </div>\n\n</div>' ) , e . put ( "partials/desktop/message.html" , '<div class="im_message_outer_wrap hasselect" ng-click="toggleMessage(historyMessage.mid, $event)">\n\n <div class="im_message_wrap clearfix" ng-switch="::historyMessage._ == \'messageService\'">\n\n <div class="im_service_message_wrap" ng-switch-when="true" ng-switch="historyMessage.action._ == \'messageActionBotIntro\'">\n <div ng-switch-when="true" class="im_bot_intro_message_wrap">\n <div class="im_bot_intro_message_header" my-i18n="message_service_bot_intro_header"></div>\n <div class="im_bot_intro_message" ng-bind-html="::historyMessage.action.rDescription"></div>\n </div>\n <div ng-switch-default class="im_service_message">\n <a class="im_message_author" ng-if="::historyMessage.fromID > 0" my-peer-link="historyMessage.fromID" short="historyMessage.peerID > 0" color="historyMessage.peerID < 0" no-watch="true"></a>\n <span class="im_message_service" my-service-message="historyMessage"></span>\n </div>\n\n <a ng-if="::historyMessage.action._ == \'messageActionChatEditPhoto\' || historyMessage.action._ == \'messageActionChannelEditPhoto\'" class="im_service_message_photo_thumb" href="" ng-click="openPhoto(historyMessage.action.photo.id)">\n <img\n class="im_service_message_photo_thumb"\n my-load-thumb\n thumb="historyMessage.action.photo.thumb"\n />\n </a>\n\n </div>\n\n <div ng-switch-default class="im_content_message_wrap" ng-class="::[historyMessage.pFlags.out ? \'im_message_out\' : \'im_message_in\', historyMessage.fwdFromID ? \'im_message_fwd\' : \'\']">\n <i class="icon icon-select-tick"></i>\n\n <a class="im_message_error_btn" ng-if="::historyMessage.pending || historyMessage.error || false" ng-click="historyMessage.send()">\n <i class="icon-message-status" tooltip="{{\'message_action_retry\' | i18n } } "></i>\n </a>\n <i ng-if=" : : historyMessage . pFlags . unread & amp ; & amp ; historyMessage . pFlags . out || historyMessage . pending || false " class=" icon - message - status " ng-show=" ! historyMessage . error "></i>\n\n <a class=" im _message _from _photo pull - left " my-peer-photolink=" : : historyMessage . fromID " img-class=" im _message _from _photo "></a>\n\n <div class=" im _message _meta pull - right text - right noselect ">\n <div class=" im _message _views _wrap " ng-if=" : : ! historyMessage . fwdFromID && historyMessage . views > 0 ">\n <div class=" im _message _views ">\n <i class=" icon - message - views "></i><span class=" im _message _views _cnt " my-message-views=" historyMessage . mid "></span>\n </div>\n </div>\n <span class=" im _message _date clickable ">\n <span class=" im _message _edited " my-message-edited=" historyMessage . mid " > < / s p a n > \ n
e . put ( "partials/desktop/photo_modal.html" , '<div class="modal_prev_wrap" ng-class="{modal_prev_active_wrap: nav.hasPrev}" ng-click="nav.prev($event)">\n <div class="modal_prev"></div>\n</div>\n<div class="modal_next_wrap" ng-class="{modal_next_active_wrap: nav.hasNext}" ng-click="nav.next($event)">\n <div class="modal_next"></div>\n</div>\n<div class="modal_close_wrap modal_close_wrap_wnext" ng-click="$close()">\n <div class="modal_close"></div>\n</div>\n\n<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions">\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\n <i class="media_modal_action_btn_download"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="canForward" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="canDelete" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="!webpageID && photo.user_id">\n <a class="media_modal_author_photo pull-left" my-peer-photolink="photo.user_id" img-class="media_modal_author_photo" watch="true"></a>\n <div class="media_modal_author_name">\n <a class="media_modal_author" my-peer-link="photo.user_id" peer-watch="true"></a>\n </div>\n <div class="media_modal_date" ng-if="photo.date > 0" ng-switch="messageID > 0">\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="photo.date | dateOrTime :true"></a>\n <span ng-switch-default ng-bind="photo.date | dateOrTime :true"></span>\n </div>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="webpageID">\n <div class="media_modal_author_name">\n <a class="media_modal_author" href="{{webpage.url}}" target="_blank" rel="noopener noreferrer" ng-bind-html="webpage.rTitle"></a>\n </div>\n <div class="media_modal_date" ng-bind="webpage.site_name || webpage.display_url"></div>\n </div>\n\n <div class="media_modal_title_wrap" ng-switch="count > 1 && pos > 0">\n <my-i18n ng-switch-when="true" msgid="media_modal_photo_index">\n <my-i18n-param name="pos" ng-bind="pos"></my-i18n-param>\n <my-i18n-param name="count" ng-bind="count"></my-i18n-param>\n </my-i18n>\n <my-i18n ng-switch-default msgid="media_modal_photo">\n </div>\n </div>\n</div>\n\n<div class="modal-dialog" my-modal-nav next="nav.next()" prev="nav.prev()">\n <div class="modal-content">\n <div my-modal-width="{{photo.full.modalWidth}}" class="media_modal_wrap photo_modal_wrap" my-modal-position animation="no">\n\n <div class="modal-body">\n\n <div class="photo_modal_image_wrap" my-load-full-photo full-photo="photo.full" thumb-location="photo.thumb.location" ng-click="nav.next()"></div>\n\n </div>\n\n </div>\n </div>\n</div>\n\n' ) , e . put ( "partials/desktop/pinned_message.html" , '<span ng-switch="pinnedMessage.loading"><span ng-switch-when="true" my-i18n="im_reply_loading"><my-i18n-param name="dots"><span my-loading-dots></span></my-i18n-param></span><span ng-switch-default my-short-message="pinnedMessage"></span></span>' ) , e . put ( "partials/desktop/profile_edit_modal.html" , '<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateProfile()">\n\n <h4 my-i18n="profile_edit_modal_title"></h4>\n\n <div class="md-input-group" ng-class="{\'has-error\': error.field == \'first_name\'}" my-labeled-input>\n <label class="md-input-label" my-i18n="profile_edit_first_name"></label>\n <input class="md-input" my-focused type="text" ng-model="profile.first_name" />\n </div>\n\n <div class="md-input-group" ng-class="{\'has-error\': error.field == \'last_name\' } " my - labeled -
e . put ( "partials/desktop/username_edit_modal.html" , '<div class="md_simple_modal_wrap" my-modal-position>\n\n <div class="md_simple_modal_body">\n\n <form class="modal_simple_form" ng-submit="updateUsername()">\n\n <h4 my-i18n="username_edit_modal_title"></h4>\n\n <div class="md-input-group" ng-class="{\'md-input-error\': checked.error}" my-labeled-input>\n <label class="md-input-label" my-i18n="username_edit_placeholder"></label>\n <input class="md-input" my-focused type="text" ng-model="profile.username" name="username" ng-model-options="{updateOn: \'default blur\', debounce: {default: 600, blur: 0}}" />\n </div>\n\n <div class="md_simple_form_description" my-i18n="username_edit_description_md"></div>\n\n </form>\n\n </div>\n\n <div class="md_simple_modal_footer">\n\n <button class="btn btn-md" ng-click="$dismiss()" my-i18n="modal_cancel"></button>\n <button class="btn btn-md btn-md-primary" ng-class="{disabled: profile.updating}" ng-click="updateUsername()" ng-bind="profile.updating ? \'username_edit_submit_active\' : \'username_edit_submit\' | i18n" ng-disabled="profile.updating"></button>\n\n </div>\n\n</div>' ) , e . put ( "partials/desktop/video_modal.html" , '<div class="modal_close_wrap" ng-class="{modal_close_wrap_wnext: nav.hasNext}" ng-click="$close()">\n <div class="modal_close"></div>\n</div>\n\n<div class="media_modal_bottom_panel_wrap">\n <div class="media_modal_bottom_panel">\n <div class="media_modal_bottom_actions pull-right">\n <a class="media_modal_action_btn" ng-click="download()" title="{{\'media_modal_download\' | i18n}}">\n <i class="media_modal_action_btn_download"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="forward()" title="{{\'media_modal_forward\' | i18n}}">\n <i class="media_modal_action_btn_forward"></i>\n </a>\n <a class="media_modal_action_btn" ng-if="messageID" ng-click="delete()" title="{{\'media_modal_delete\' | i18n}}">\n <i class="media_modal_action_btn_delete"></i>\n </a>\n </div>\n\n <div class="media_modal_info_wrap pull-left" ng-if="video.user_id > 0" ng-switch="messageID > 0">\n <a class="media_modal_author_photo pull-left" my-peer-photolink="video.user_id" img-class="media_modal_author_photo" watch="true"></a>\n <div class="media_modal_author_name">\n <a class="media_modal_author" my-peer-link="video.user_id" peer-watch="true"></a>\n </div>\n <div class="media_modal_date" ng-if="video.date > 0">\n <a ng-switch-when="true" class="media_modal_date" ng-click="goToMessage()" ng-bind="video.date | dateOrTime :true"></a>\n <span ng-switch-default ng-bind="video.date | dateOrTime :true"></span>\n </div>\n </div>\n\n <div class="media_modal_title_wrap" my-i18n="media_modal_video"></div>\n </div>\n</div>\n\n<div class="modal-dialog">\n <div class="modal-content">\n <div my-modal-width="{{video.full.width - 32}}" class="media_modal_wrap video_modal_wrap" my-modal-position animation="no">\n\n <div class="modal-body">\n <div class="video_modal_image_wrap" my-load-video video="video"></div>\n\n </div>\n\n </div>\n </div>\n</div>' ) } ] ) , function ( e , t , n , i ) { function a ( e ) { ConfigStorage . get ( "emojis_popular" , function ( t ) { var n = [ ] ; if ( t && t . length ) { for ( var i = 0 , a = t . length ; i < a ; i ++ ) n . push ( { code : t [ i ] [ 0 ] , rate : t [ i ] [ 1 ] } ) ; return void e ( n ) } ConfigStorage . get ( "emojis_recent" , function ( t ) { t = t || w || [ ] ; for ( var i , a , r = 0 , o = t . length ; r < o ; r ++ ) i = t [ r ] , Array . isArray ( i ) && ( i = i [ 0 ] ) , i && "string" == typeof i && ( ":" == i . charAt ( 0 ) && ( i = i . substr ( 1 , i . length - 2 ) ) , ( a = _ [ i ] ) && n . push ( { code : a , rate : 1 } ) ) ; e ( n ) } ) } ) } function r ( e ) { a ( function ( t ) { for ( var n = ! 1 , i = t . length , a = [ ] , r = 0 ; r < i ; r ++ ) t [ r ] . code == e && ( n = ! 0 , t [ r ] . rate ++ ) , a . push ( [ t [ r ] . code , t [ r ] . rate ] ) ; n ? a . sort ( function ( e , t ) { return t [ 1 ] - e [ 1 ] } ) : ( a . length > 41 && ( a = a . slice ( 0 , 41 ) ) , a . push ( [ e , 1 ] ) ) , ConfigStorage . set ( { emojis _popular : a } ) } ) } function o ( ) { if ( b === ! 1 ) { b = SearchIndexManager . createIndex ( ) ; var e ; for ( e in _ ) _ . hasOwnProperty ( e ) && SearchIndexManager . indexObject ( _ [ e ] , e , b ) } } function s ( e ) { o ( ) ; var t , n = SearchInde
this . useNano && $ ( this . scroller ) . nanoScroller ( ) } , Scroller . prototype . reinit = function ( ) { this . scrollTo ( 0 ) , this . useNano && setTimeout ( function ( ) { this . updateHeight ( ) } . bind ( this ) , 100 ) } , Scroller . prototype . updateHeight = function ( ) { var e ; return this . useNano ? ( this . maxHeight || this . minHeight ? ( e = this . content [ 0 ] . offsetHeight , this . maxHeight && e > this . maxHeight && ( e = this . maxHeight ) , this . minHeight && e < this . minHeight && ( e = this . minHeight ) , this . wrap . css ( { height : e } ) ) : e = this . scroller [ 0 ] . offsetHeight , $ ( this . scroller ) . nanoScroller ( ) ) : e = this . scrollable [ 0 ] . offsetHeight , e } , Scroller . prototype . scrollTo = function ( e , t , n ) { if ( t > 0 ) { var i = this ; this . isAnimatedScroll = ! 0 , this . scrollable . animate ( { scrollTop : e } , t , function ( ) { delete i . isAnimatedScroll , i . useNano && $ ( i . scroller ) . nanoScroller ( { flash : ! 0 } ) , i . scrollable . trigger ( "scroll" ) , n && n ( ) } ) } else this . scrollable [ 0 ] . scrollTop = e , this . useNano && $ ( this . scroller ) . nanoScroller ( { flash : ! 0 } ) , n && n ( ) } , Scroller . prototype . scrollToNode = function ( e ) { e = e [ 0 ] || e ; var t = e . offsetTop - 15 , n = e . offsetHeight + 30 , i = this . scrollable [ 0 ] . scrollTop , a = this . scrollable [ 0 ] . clientHeight ; i > t ? this . scrollTo ( t ) : i < t + n - a && this . scrollTo ( t + n - a ) } , angular . module ( "myApp.directives" , [ "myApp.filters" ] ) . constant ( "shouldFocusOnInteraction" , ! Config . Navigator . mobile ) . directive ( "myHead" , function ( ) { return { restrict : "AE" , templateUrl : templateUrl ( "head" ) } } ) . directive ( "myLangFooter" , function ( ) { return { restrict : "AE" , templateUrl : templateUrl ( "lang_footer" ) } } ) . directive ( "myFooter" , function ( ) { return { restrict : "AE" , templateUrl : templateUrl ( "footer" ) } } ) . directive ( "myDialog" , function ( ) { return { restrict : "AE" , templateUrl : templateUrl ( "dialog" ) } } ) . directive ( "myMessage" , [ "$filter" , "_" , function ( e , t ) { function n ( e , t , n ) { var u , p , f = ! 1 , m = ! 1 , h = ! 1 , g = ! 1 , _ = ! 1 , v = ! 1 , y = ! 1 , b = function ( ) { f != ( e . selectedMsgs [ e . historyMessage . mid ] || ! 1 ) && ( f = ! f , t . toggleClass ( o , f ) ) } , w = function ( ) { m != e . historyMessage . grouped && ( m && t . removeClass ( m ) , m = e . historyMessage . grouped , m && t . addClass ( m ) ) , v != ( e . historyMessage . needDate || ! 1 ) && ( v = ! v , v ? u ? u . show ( ) : ( u = $ ( a ) , $ ( ".im_message_date_split_text" , u ) . text ( i ( e . historyMessage . date ) ) , p ? u . insertBefore ( p ) : u . prependTo ( t ) ) : u . hide ( ) ) } ; b ( ) , w ( ) , e . $on ( "messages_select" , b ) , e . $on ( "messages_regroup" , w ) , e . $on ( "messages_focus" , function ( n , i ) { i == e . historyMessage . mid != h && ( h = ! h , t . toggleClass ( s , h ) ) } ) ; var k ; if ( ! e . historyMessage . pFlags . out && ( e . historyMessage . pFlags . unread || e . historyMessage . unreadAfter ) ) { var M = function ( ) { e . peerHistory . peerID == e . historyPeer . id && y != ( e . historyUnreadAfter == e . historyMessage . mid ) && ( y = ! y , y ? p ? p . show ( ) : p = $ ( r ) . prependTo ( t ) : ( p . hide ( ) , k && k ( ) ) ) } ; M ( ) , k = e . $on ( "messages_unread_after" , M ) } if ( e . historyMessage . pFlags . unread && e . historyMessage . pFlags . out ) { t . addClass ( l ) ; var S = e . $on ( "messages_read" , function ( ) { e . historyMessage . pFlags . unread || ( t . removeClass ( l ) , S ( ) , k && ! y && k ( ) ) } ) } if ( e . historyMessage . error || e . historyMessage . pending ) { var A = function ( ) { _ != ( e . historyMessage . pending || ! 1 ) && ( _ = ! _ , t . toggleClass ( d , _ ) ) , g != ( e . historyMessage . error || ! 1 ) && ( g = ! g , t . toggleClass ( c , g ) ) , g || _ || C ( ) } , C = e . $on ( "messages_pending" , A ) ; A ( ) } } var i = e ( "myDate" ) , a = '<div class="im_message_date_split im_service_message_wrap"><div class="im_service_message"><span class="copyonly"><br/>--- </span><span class="im_message_date_split_text"></span><span class="copyonly"> ---</span></div></div>' , r = '<div class="im_message_unread_split">' + t ( "unread_messages_split" ) + "</div>" , o = "im_message_selected" , s = "im_message_focus" , l = "im_message_unread" , c = "im_message_error" , d = "im_message_pending" ; return { templateUrl : templateUrl ( "message" ) , link : n } } ] ) . directive ( "myMessageBody" , [ "$compile" , "AppPeersManager" , "AppChatsManager" , "AppUsersManager" , "AppMessagesManager" , "AppInlineBotsManager" , "RichTextProcessor" , function ( e , t , n , i , a , r , o ) { function s ( e , t , n ) { if ( n . media && n . media . handleMessage || "string" != typeof n . message || ! n . message . length ) return void $ ( ".im_message_text" , t ) . hide ( ) ; var i = a . wrapMessageText ( n . mid ) ; $ ( ".im_message_text" , t ) . html ( i . valueOf ( ) ) } function l ( e , t , n ) { if ( ! n . media ) return void $ ( ".im_message_media" , t ) . hide ( ) ; var i = e . $new ( ! 0 ) ; i . media = n . media , i . messageId = n . mid , f ( i , function ( e ) { $ ( ".im_message_media" , t ) . replaceWith ( e ) } ) } function c ( e , t , n ) { var i = n . post _author || n . fwd _from && n . fwd _from
s . draftMessage . isMedia = ! 0 ) , s . voiceRecorder . processing = ! 1 } ) } ) ) , v ( ) } , Config . Mobile || $ ( B ) . css ( { height : D . offsetHeight , width : D . offsetWidth } ) , $ ( a ) . on ( te . move , o ) , $ ( a ) . one ( te . stop , Q ) } } ) ; var ae = ! 0 ; s . $on ( "settings_changed" , y ) , y ( ) , $ ( U ) . on ( "mousedown touchstart" , b ) ; var re = X && X . offsetHeight ; $ ( document ) . on ( "keydown" , A ) , $ ( "body" ) . on ( "dragenter dragleave dragover drop" , I ) , $ ( document ) . on ( "paste" , E ) , h && ( s . $on ( "ui_peer_change" , C ) , s . $on ( "ui_history_focus" , C ) , s . $on ( "ui_history_change" , C ) ) , s . $on ( "ui_peer_change" , Y . resetTyping . bind ( Y ) ) , s . $on ( "ui_peer_draft" , function ( t , n ) { n = n || { } ; var i = s . draftMessage . isBroadcast ; Y . setPlaceholder ( e ( i ? "im_broadcast_field_placeholder_raw" : "im_message_field_placeholder_raw" ) ) , n . customSelection ? ( Y . setFocusedValue ( n . customSelection ) , S ( ) ) : ( X && ( Y . setValue ( s . draftMessage . text || "" ) , S ( ) ) , ( h || n && n . focus ) && Y . focus ( ) ) , onContentLoaded ( function ( ) { Y . checkAutocomplete ( ! 0 ) } ) , G && Config . Mobile && G . hide ( ) } ) , s . $on ( "ui_peer_reply" , function ( ) { onContentLoaded ( function ( ) { s . $emit ( "ui_editor_resize" ) , h && Y . focus ( ) } ) } ) , s . $on ( "mentions_update" , function ( ) { Y . onMentionsUpdated ( ) } ) , s . $on ( "ui_message_before_send" , function ( ) { M ( ) } ) , s . $on ( "ui_message_send" , function ( ) { h && C ( ) } ) , s . $on ( "ui_message_blur" , function ( ) { Y . blur ( ) } ) , s . $on ( "$destroy" , function ( ) { $ ( document ) . off ( "paste" , E ) , $ ( document ) . off ( "keydown" , A ) , $ ( "body" ) . off ( "dragenter dragleave dragover drop" , I ) , $ ( U ) . off ( "mousedown touchstart" ) , L . off ( "change" ) } ) , h && C ( ) } return { link : g , templateUrl : templateUrl ( "send_form" ) , scope : { draftMessage : "=" , replyKeyboard : "=" , mentions : "=" , commands : "=" } } } ] ) . directive ( "myLoadThumb" , [ "MtpApiFileManager" , "FileManager" , function ( e , t ) { function n ( n , i , a ) { var r = 0 , o = e . getCachedFile ( n . thumb && n . thumb . location && ! n . thumb . location . empty && n . thumb . location ) ; o && i . attr ( "src" , t . getUrl ( o , "image/jpeg" ) ) , n . thumb && n . thumb . width && n . thumb . height && ( i . attr ( "width" , n . thumb . width ) , i . attr ( "height" , n . thumb . height ) ) ; var s = n . $watchCollection ( "thumb.location" , function ( a ) { n . thumb && n . thumb . width && n . thumb . height && ( i . attr ( "width" , n . thumb . width ) , i . attr ( "height" , n . thumb . height ) , n . $emit ( "ui_height" ) ) ; var o = ++ r ; if ( ! a || a . empty ) return i . attr ( "src" , n . thumb && n . thumb . placeholder || "img/blank.gif" ) , void l ( ) ; var s = e . getCachedFile ( a ) ; return s ? ( i . attr ( "src" , t . getUrl ( s , "image/jpeg" ) ) , void l ( ) ) : ( i . attr ( "src" ) || i . attr ( "src" , n . thumb . placeholder || "img/blank.gif" ) , void e . downloadSmallFile ( n . thumb . location ) . then ( function ( e ) { o == r && ( i . attr ( "src" , t . getUrl ( e , "image/jpeg" ) ) , l ( ) ) } , function ( e ) { console . log ( "Download image failed" , e , n . thumb . location , i [ 0 ] ) , o == r && ( i . attr ( "src" , n . thumb . placeholder || "img/blank.gif" ) , l ( ) ) } ) ) } ) , l = a . watch ? angular . noop : function ( ) { setTimeout ( function ( ) { n . $destroy ( ) , s ( ) } , 0 ) } } return { link : n , scope : { thumb : "=" } } } ] ) . directive ( "myLoadFullPhoto" , [ "MtpApiFileManager" , "FileManager" , "_" , function ( e , t , n ) { function i ( i , a , r ) { var o = $ ( "img" , a ) [ 0 ] , s = $ ( ".img_fullsize_with_progress_wrap" , a ) . add ( ".img_fullsize_progress_wrap" , a ) . add ( $ ( o ) ) , l = function ( ) { s . css ( { width : i . fullPhoto . width , height : i . fullPhoto . height } ) , i . $emit ( "ui_height" , ! 0 ) } , c = 0 ; i . $watchCollection ( "fullPhoto.location" , function ( ) { var a = e . getCachedFile ( i . thumbLocation ) , r = ++ c ; if ( a ? ( o . src = t . getUrl ( a , "image/jpeg" ) , l ( ) ) : o . src = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7" , i . fullPhoto . location ) { var s ; if ( i . fullPhoto . size ) { var d = { _ : "inputFileLocation" , volume _id : i . fullPhoto . location . volume _id , local _id : i . fullPhoto . location . local _id , secret : i . fullPhoto . location . secret } ; s = e . downloadFile ( i . fullPhoto . location . dc _id , d , i . fullPhoto . size ) } else s = e . downloadSmallFile ( i . fullPhoto . location ) ; i . progress = { enabled : ! 0 , percent : 0 } , s . then ( function ( e ) { r == c && ( i . progress . enabled = ! 1 , o . src = t . getUrl ( e , "image/jpeg" ) , l ( ) ) } , function ( e ) { console . log ( "Download image failed" , e , i . fullPhoto . location ) , i . progress . enabled = ! 1 , e && "FS_BROWSER_UNSUPPORTED" == e . type ? i . error = { html : n ( "error_browser_no_local_file_system_image_md" , { "moz-link" : '<a href="{0}" target="_blank">{1}</a>' , "chrome-link" : '<a href="{0}" target="_blank">{1}</a>' , "telegram-link" : '<a href="{0}" target="_blank">{1}</a>' } ) } : i . error = { text : n ( "error_image_download_failed" ) , error : e } } , function ( e ) { i . progress . percent = Math . max ( 1 , Math . floor ( 100 * e .
e . $emit ( "ui_height" ) } ) } } u && ( s [ 0 ] . innerHTML = u , p && p ( ) ) } } var t = ! 1 , n = ! 1 , i = ! 1 , a = [ ] , r = [ ] , o = Config . Modes . chrome _packed ? "webview" : "iframe" ; return { link : e } } ) , angular . module ( "myApp.directives" ) . directive ( "myDialogsListMobile" , [ "$window" , "$timeout" , function ( e , t ) { function n ( n , i , a ) { function r ( ) { return d && d . offsetHeight || ( d = $ ( c ) [ 0 ] ) , a . modal ? void $ ( i ) . css ( { height : $ ( e ) . height ( ) - ( d ? d . offsetHeight : 58 ) - 46 } ) : ( l && l . offsetHeight || ( l = $ ( ".tg_page_head" ) [ 0 ] ) , o && o . offsetHeight || ( o = $ ( ".im_dialogs_col_wrap" ) [ 0 ] ) , void $ ( i ) . css ( { height : $ ( e ) . height ( ) - ( l ? l . offsetHeight : 46 ) - ( d ? d . offsetHeight : 58 ) - parseInt ( $ ( o ) . css ( "paddingBottom" ) || 0 ) } ) ) } var o = $ ( ".im_dialogs_col_wrap" ) [ 0 ] , s = i [ 0 ] , l = $ ( ".tg_page_head" ) [ 0 ] , c = a . modal ? ".mobile_modal_body .im_dialogs_panel" : ".im_dialogs_panel" , d = $ ( c ) [ 0 ] , u = ! 1 ; n . $on ( "ui_dialogs_search" , r ) , n . $on ( "ui_dialogs_update" , r ) , n . $on ( "ui_dialogs_append" , function ( ) { onContentLoaded ( function ( ) { u = ! 1 , t ( function ( ) { $ ( s ) . trigger ( "scroll" ) } ) } ) } ) , n . $on ( "ui_dialogs_change" , function ( ) { onContentLoaded ( function ( ) { u = ! 1 , t ( function ( ) { $ ( s ) . trigger ( "scroll" ) } ) } ) } ) , $ ( s ) . on ( "scroll" , function ( e ) { i . is ( ":visible" ) && ! u && s . scrollTop >= s . scrollHeight - s . clientHeight - 300 && ( n . $emit ( "dialogs_need_more" ) , u = ! 0 ) } ) , $ ( e ) . on ( "resize" , r ) , r ( ) , setTimeout ( r , 1e3 ) } return { link : n } } ] ) . directive ( "myHistoryMobile" , [ "$window" , "$timeout" , "$rootScope" , "$transition" , function ( e , t , n , i ) { function a ( n , i , a ) { function r ( ) { var e , n ; if ( n = $ ( ".im_message_focus:visible" , c ) [ 0 ] ) { var i = c . clientHeight , a = c . scrollTop , r = n . offsetTop , o = n . clientHeight ; ( ! a || a + i < r || a > r + o ) && ( c . scrollTop = Math . max ( 0 , r - Math . floor ( i / 2 ) + 26 ) ) , v = ! 1 } else ( e = $ ( ".im_message_unread_split:visible" , c ) [ 0 ] ) ? ( c . scrollTop = Math . max ( 0 , e . offsetTop - 52 ) , v = ! 1 ) : ( c . scrollTop = c . scrollHeight , v = ! 0 ) ; t ( function ( ) { $ ( c ) . trigger ( "scroll" ) , y = c . scrollTop } ) } function o ( t ) { if ( i . is ( ":visible" ) || $ ( i [ 0 ] . parentNode . parentNode ) . is ( ":visible" ) ) { $ ( p ) . is ( ":visible" ) && $ ( p ) . css ( { height : $ ( h ) . height ( ) } ) , f && f . offsetHeight || ( f = $ ( ".tg_page_head" ) [ 0 ] ) , m && m . offsetHeight || ( m = $ ( ".im_history_pinned_panel" , i ) [ 0 ] ) ; var n = m && m . offsetHeight || 0 , a = $ ( e ) . height ( ) - u . offsetHeight - ( f ? f . offsetHeight : 46 ) - n ; $ ( l ) . css ( { height : a } ) , s ( ) , t !== ! 0 && v && onContentLoaded ( function ( ) { c . scrollTop = c . scrollHeight } ) } } function s ( ) { } var l = $ ( ".im_history_wrap" , i ) [ 0 ] , c = ( $ ( ".im_history_messages" , i ) [ 0 ] , $ ( ".im_history_scrollable_wrap" , i ) [ 0 ] ) , d = $ ( ".im_history_scrollable" , i ) [ 0 ] , u = $ ( ".im_bottom_panel_wrap" , i ) [ 0 ] , p = $ ( ".im_send_form_wrap" , i ) [ 0 ] , f = $ ( ".tg_page_head" ) [ 0 ] , m = $ ( ".im_history_pinned_panel" , i ) [ 0 ] , h = $ ( ".im_send_form" , i ) [ 0 ] , g = ! 1 , _ = ! 1 ; onContentLoaded ( function ( ) { c . scrollTop = c . scrollHeight } ) , n . $on ( "ui_history_append_new" , function ( e , t ) { if ( v || t . my ) { var n = parseInt ( $ ( c ) . css ( "paddingRight" ) ) ; $ ( c ) . addClass ( "im_history_to_bottom" ) , $ ( d ) . css ( { bottom : 0 , marginLeft : - Math . ceil ( n / 2 ) } ) , onContentLoaded ( function ( ) { $ ( c ) . removeClass ( "im_history_to_bottom" ) , $ ( d ) . css ( { bottom : "" , marginLeft : "" } ) , c . scrollTop = c . scrollHeight , s ( ) } ) } } ) , n . $on ( "ui_history_change" , function ( ) { var e = parseInt ( $ ( c ) . css ( "paddingRight" ) ) ; $ ( c ) . addClass ( "im_history_to_bottom" ) , $ ( d ) . css ( { bottom : 0 , marginLeft : - Math . ceil ( e / 2 ) } ) , onContentLoaded ( function ( ) { $ ( c ) . removeClass ( "im_history_to_bottom" ) , $ ( d ) . css ( { bottom : "" , marginLeft : "" } ) , o ( ! 0 ) , g = ! 1 , _ = ! 1 , r ( ) } ) } ) , n . $on ( "ui_history_change_scroll" , function ( ) { onContentLoaded ( r ) } ) , n . $on ( "ui_history_focus" , function ( ) { v || ( c . scrollTop = c . scrollHeight , v = ! 0 ) } ) , n . $on ( "ui_history_prepend" , function ( ) { var e = c . scrollHeight , i = c . scrollTop , a = parseInt ( $ ( c ) . css ( "paddingRight" ) ) , o = c . clientHeight ; $ ( c ) . addClass ( "im_history_to_bottom" ) , c . scrollHeight , $ ( d ) . css ( { bottom : - ( e - i - o ) , marginLeft : - Math . ceil ( a / 2 ) } ) ; var l = function ( ) { $ ( c ) . removeClass ( "im_history_to_bottom" ) , $ ( d ) . css ( { bottom : "" , marginLeft : "" } ) , y >= 0 ? r ( ) : c . scrollTop = i + c . scrollHeight - e , s ( ) , g = ! 1 , t ( function ( ) { c . scrollHeight != e && $ ( c ) . trigger ( "scroll" ) } ) , clearTimeout ( u ) , p ( ) } , u = setTimeout ( l , 0 ) , p = n . $on ( "$viewContentLoaded" , l ) } ) , n . $on ( "ui_history_append" , function ( ) { var e = c . scrollHeight ; onContentLoaded ( function ( ) { v = ! 1 , s ( ) , _ = ! 1 , y >= 0 && r ( ) , t ( function ( ) { c . scrollHeight != e && $ ( c ) . trigger ( "scroll" ) } ) } ) } ) , n . $on ( "ui_panel_update" , function ( e , i ) { onContentLoaded ( function ( ) { o ( ) , i && i . blur ? n . $broadcast ( "ui_message_blur" ) : n . $broadcast ( "ui_message_send"