2016-11-29 22:23:44 -05:00
function simpleUpload ( e , l , n ) { function t ( ) { if ( "object" == typeof n && null !== n ) { if ( "boolean" == typeof n . forceIframe && ( U = n . forceIframe ) , "function" == typeof n . init && ( I = n . init ) , "function" == typeof n . start && ( L = n . start ) , "function" == typeof n . progress && ( q = n . progress ) , "function" == typeof n . success && ( W = n . success ) , "function" == typeof n . error && ( _ = n . error ) , "function" == typeof n . cancel && ( M = n . cancel ) , "function" == typeof n . complete && ( D = n . complete ) , "function" == typeof n . finish && ( N = n . finish ) , "string" == typeof n . hashWorker && "" != n . hashWorker && ( S = n . hashWorker ) , "function" == typeof n . hashComplete && ( z = n . hashComplete ) , "object" == typeof n . data && null !== n . data ) for ( var e in n . data ) F [ e ] = n . data [ e ] ; if ( "number" == typeof n . limit && y ( n . limit ) && n . limit > 0 && ( w = n . limit ) , "number" == typeof n . maxFileSize && y ( n . maxFileSize ) && n . maxFileSize > 0 && ( x = n . maxFileSize ) , "object" == typeof n . allowedExts && null !== n . allowedExts ) for ( var e in n . allowedExts ) j . push ( n . allowedExts [ e ] ) ; if ( "object" == typeof n . allowedTypes && null !== n . allowedTypes ) for ( var e in n . allowedTypes ) k . push ( n . allowedTypes [ e ] ) ; if ( "string" == typeof n . expect && "" != n . expect ) { var t = n . expect . toLowerCase ( ) , o = [ "auto" , "json" , "xml" , "html" , "script" , "text" ] ; for ( var e in o ) if ( o [ e ] == t ) { E = t ; break } } if ( "object" == typeof n . xhrFields && null !== n . xhrFields ) for ( var e in n . xhrFields ) T [ e ] = n . xhrFields [ e ] } if ( "object" == typeof l && null !== l && l instanceof jQuery ) { if ( ! ( l . length > 0 ) ) return ! 1 ; l = l . get ( 0 ) } if ( ! U && window . File && window . FileReader && window . FileList && window . Blob && ( "object" == typeof n && null !== n && "object" == typeof n . files && null !== n . files ? b = n . files : "object" == typeof l && null !== l && "object" == typeof l . files && null !== l . files && ( b = l . files ) ) , ( "object" != typeof l || null === l ) && null == b ) return ! 1 ; "object" == typeof n && null !== n && "string" == typeof n . name && "" != n . name ? C = n . name . replace ( /\[\s*\]/g , "[0]" ) : "object" == typeof l && null !== l && "string" == typeof l . name && "" != l . name && ( C = l . name . replace ( /\[\s*\]/g , "[0]" ) ) ; var r = 0 ; if ( null != b ? b . length > 0 && ( r = b . length > 1 && window . FormData && $ . ajaxSettings . xhr ( ) . upload ? w > 0 && b . length > w ? w : b . length : 1 ) : "" != l . value && ( r = 1 ) , r > 0 ) { if ( "object" == typeof l && null !== l ) { var i = $ ( l ) ; J = $ ( "<form>" ) . hide ( ) . attr ( "enctype" , "multipart/form-data" ) . attr ( "method" , "post" ) . appendTo ( "body" ) , i . after ( i . clone ( ! 0 ) . val ( "" ) ) . removeAttr ( "onchange" ) . off ( ) . removeAttr ( "id" ) . attr ( "name" , C ) . appendTo ( J ) } for ( var s = 0 ; r > s ; s ++ ) ! function ( e ) { R [ e ] = { state : 0 , hashWorker : null , xhr : null , iframe : null } , A [ e ] = { upload : { index : e , state : "init" , file : null != b ? b [ e ] : { name : l . value . split ( /(\\|\/)/g ) . pop ( ) } , cancel : function ( ) { if ( 0 == u ( e ) ) d ( e , 4 ) ; else { if ( 1 != u ( e ) ) return ! 1 ; d ( e , 4 ) , null != R [ e ] . hashWorker && ( R [ e ] . hashWorker . terminate ( ) , R [ e ] . hashWorker = null ) , null != R [ e ] . xhr && ( R [ e ] . xhr . abort ( ) , R [ e ] . xhr = null ) , null != R [ e ] . iframe && ( $ ( "iframe[name=simpleUpload_iframe_" + R [ e ] . iframe + "]" ) . attr ( "src" , "javascript:false;" ) , simpleUpload . dequeueIframe ( R [ e ] . iframe ) , R [ e ] . iframe = null ) , P ( e ) } return ! 0 } } } } ( s ) ; var p = H ( r ) ; if ( p !== ! 1 ) { var f = r ; if ( "number" == typeof p && y ( p ) && p >= 0 && r > p ) { f = p ; for ( var m = f ; r > m ; m ++ ) d ( m , 4 ) } for ( var c = [ ] , v = 0 ; f > v ; v ++ ) X ( v , A [ v ] . upload . file ) !== ! 1 && ( c [ c . length ] = v ) ; c . length > 0 ? ( B = c . length , simpleUpload . queueUpload ( c , function ( e ) { a ( e ) } ) , simpleUpload . uploadNext ( ) ) : Z ( ) } else { for ( var m in A ) d ( m , 4 ) ; Z ( ) } } } function a ( e ) { if ( 1 == u ( e ) ) { var n = null ; if ( null != b ) { if ( void 0 == b [ e ] || null == b [ e ] ) return void K ( e , { name : "InternalError" , message : "There was an error uploading the file" } ) ; n = b [ e ] } else if ( "" == l . value ) return void K ( e , { name : "InternalError" , message : "There was an error uploading the file" } ) ; return j . length > 0 && ! c ( j , n ) ? void K ( e , { name : "InvalidFileExtensionError" , message : "That file format is not allowed" } ) : k . length > 0 && ! v ( k , n ) ? void K ( e , { name : "InvalidFileTypeError" , message : "That file format is not allowed" } ) : x > 0 && ! h ( x , n ) ? void K ( e , { name : "MaxFileSizeError" , message : "That file is too big" } ) : void ( null != S && null != z ? o ( e ) : i ( e ) ) } } function o ( e ) { if ( null != b && void 0 != b [ e ] && null != b [ e ] && window . Worker ) { var l = b [ e ] ; if ( void 0 != l . size && null != l . size && "" != l . size && y ( l . size ) && ( l . slice || l . webkitSlice || l . mozSlice ) ) try { var n = new Worker ( S ) ; n . addEventListener ( "error" , function ( ) { n . terminate ( ) , R [ e ] . hashWorker = null , i ( e ) } , ! 1 ) , n . addEventListener ( "message" , function ( l ) { if ( l . data . result ) { var t = l . data . result ; n . terminate ( ) , R [ e ] . h
return l } ) } ) . call ( this ) } ) . call ( e , r ( 12 ) ( t ) , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = function ( t ) { return t . webpackPolyfill || ( t . deprecate = function ( ) { } , t . paths = [ ] , t . children = [ ] , t . webpackPolyfill = 1 ) , t } } , function ( t , e ) { function r ( t ) { if ( t ) return n ( t ) } function n ( t ) { for ( var e in r . prototype ) t [ e ] = r . prototype [ e ] ; return t } t . exports = r , r . prototype . on = r . prototype . addEventListener = function ( t , e ) { return this . _callbacks = this . _callbacks || { } , ( this . _callbacks [ t ] = this . _callbacks [ t ] || [ ] ) . push ( e ) , this } , r . prototype . once = function ( t , e ) { function r ( ) { n . off ( t , r ) , e . apply ( this , arguments ) } var n = this ; return this . _callbacks = this . _callbacks || { } , r . fn = e , this . on ( t , r ) , this } , r . prototype . off = r . prototype . removeListener = r . prototype . removeAllListeners = r . prototype . removeEventListener = function ( t , e ) { if ( this . _callbacks = this . _callbacks || { } , 0 == arguments . length ) return this . _callbacks = { } , this ; var r = this . _callbacks [ t ] ; if ( ! r ) return this ; if ( 1 == arguments . length ) return delete this . _callbacks [ t ] , this ; for ( var n , o = 0 ; o < r . length ; o ++ ) if ( n = r [ o ] , n === e || n . fn === e ) { r . splice ( o , 1 ) ; break } return this } , r . prototype . emit = function ( t ) { this . _callbacks = this . _callbacks || { } ; var e = [ ] . slice . call ( arguments , 1 ) , r = this . _callbacks [ t ] ; if ( r ) { r = r . slice ( 0 ) ; for ( var n = 0 , o = r . length ; n < o ; ++ n ) r [ n ] . apply ( this , e ) } return this } , r . prototype . listeners = function ( t ) { return this . _callbacks = this . _callbacks || { } , this . _callbacks [ t ] || [ ] } , r . prototype . hasListeners = function ( t ) { return ! ! this . listeners ( t ) . length } } , function ( t , e , r ) { ( function ( t ) { var n = r ( 15 ) , o = r ( 16 ) ; e . deconstructPacket = function ( t ) { function e ( t ) { if ( ! t ) return t ; if ( o ( t ) ) { var i = { _placeholder : ! 0 , num : r . length } ; return r . push ( t ) , i } if ( n ( t ) ) { for ( var s = new Array ( t . length ) , a = 0 ; a < t . length ; a ++ ) s [ a ] = e ( t [ a ] ) ; return s } if ( "object" == typeof t && ! ( t instanceof Date ) ) { var s = { } ; for ( var c in t ) s [ c ] = e ( t [ c ] ) ; return s } return t } var r = [ ] , i = t . data , s = t ; return s . data = e ( i ) , s . attachments = r . length , { packet : s , buffers : r } } , e . reconstructPacket = function ( t , e ) { function r ( t ) { if ( t && t . _placeholder ) { var o = e [ t . num ] ; return o } if ( n ( t ) ) { for ( var i = 0 ; i < t . length ; i ++ ) t [ i ] = r ( t [ i ] ) ; return t } if ( t && "object" == typeof t ) { for ( var s in t ) t [ s ] = r ( t [ s ] ) ; return t } return t } return t . data = r ( t . data ) , t . attachments = void 0 , t } , e . removeBlobs = function ( e , r ) { function i ( e , c , u ) { if ( ! e ) return e ; if ( t . Blob && e instanceof Blob || t . File && e instanceof File ) { s ++ ; var h = new FileReader ; h . onload = function ( ) { u ? u [ c ] = this . result : a = this . result , -- s || r ( a ) } , h . readAsArrayBuffer ( e ) } else if ( n ( e ) ) for ( var p = 0 ; p < e . length ; p ++ ) i ( e [ p ] , p , e ) ; else if ( e && "object" == typeof e && ! o ( e ) ) for ( var f in e ) i ( e [ f ] , f , e ) } var s = 0 , a = e ; i ( a ) , s || r ( a ) } } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Array . isArray || function ( t ) { return "[object Array]" == Object . prototype . toString . call ( t ) } } , function ( t , e ) { ( function ( e ) { function r ( t ) { return e . Buffer && e . Buffer . isBuffer ( t ) || e . ArrayBuffer && t instanceof ArrayBuffer } t . exports = r } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e , r ) { "use strict" ; function n ( t , e ) { return this instanceof n ? ( t && "object" === ( "undefined" == typeof t ? "undefined" : o ( t ) ) && ( e = t , t = void 0 ) , e = e || { } , e . path = e . path || "/socket.io" , this . nsps = { } , this . subs = [ ] , this . opts = e , this . reconnection ( e . reconnection !== ! 1 ) , this . reconnectionAttempts ( e . reconnectionAttempts || 1 / 0 ) , this . reconnectionDelay ( e . reconnectionDelay || 1e3 ) , this . reconnectionDelayMax ( e . reconnectionDelayMax || 5e3 ) , this . randomizationFactor ( e . randomizationFactor || . 5 ) , this . backoff = new l ( { min : this . reconnectionDelay ( ) , max : this . reconnectionDelayMax ( ) , jitter : this . randomizationFactor ( ) } ) , this . timeout ( null == e . timeout ? 2e4 : e . timeout ) , this . readyState = "closed" , this . uri = t , this . connecting = [ ] , this . lastPing = null , this . encoding = ! 1 , this . packetBuffer = [ ] , this . encoder = new c . Encoder , this . decoder = new c . Decoder , this . autoConnect = e . autoConnect !== ! 1 , void ( this . autoConnect && this . open ( ) ) ) : new n ( t , e ) } var o = "function" == typeof Symbol && "symbol" == typeof Symbol . iterator ? function ( t ) { return typeof t } : function ( t ) { return t && "function" == typeof Symbol && t . constructor === Symbol && t !== Symbol . prototype ? "symbol" : typeof t } , i = r ( 18 ) , s = r ( 45 ) , a = r ( 36 ) , c = r ( 7 ) , u = r ( 47 ) , h = r ( 48 ) , p = r ( 3 ) ( "socket.io-client:manager" ) , f = r ( 43 ) , l = r ( 51 ) , d = Object . prototype . hasOwnProperty ; t . exports = n , n . prototype . emitAll = function ( ) { this .
if ( a [ s . length ] = 255 , k ) { var c = new k ( [ e . buffer , a . buffer , t ] ) ; r ( null , c ) } } ) } c ( t , n , function ( t , e ) { return r ( new k ( e ) ) } ) } , e . decodePayloadAsBinary = function ( t , r , n ) { "function" == typeof r && ( n = r , r = null ) ; for ( var o = t , i = [ ] , s = ! 1 ; o . byteLength > 0 ; ) { for ( var a = new Uint8Array ( o ) , c = 0 === a [ 0 ] , u = "" , h = 1 ; 255 != a [ h ] ; h ++ ) { if ( u . length > 310 ) { s = ! 0 ; break } u += a [ h ] } if ( s ) return n ( w , 0 , 1 ) ; o = f ( o , 2 + u . length ) , u = parseInt ( u ) ; var p = f ( o , 0 , u ) ; if ( c ) try { p = String . fromCharCode . apply ( null , new Uint8Array ( p ) ) } catch ( t ) { var l = new Uint8Array ( p ) ; p = "" ; for ( var h = 0 ; h < l . length ; h ++ ) p += String . fromCharCode ( l [ h ] ) } i . push ( p ) , o = f ( o , u ) } var d = i . length ; i . forEach ( function ( t , o ) { n ( e . decodePacket ( t , r , ! 0 ) , o , d ) } ) } } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Object . keys || function ( t ) { var e = [ ] , r = Object . prototype . hasOwnProperty ; for ( var n in t ) r . call ( t , n ) && e . push ( n ) ; return e } } , function ( t , e , r ) { ( function ( e ) { function n ( t ) { function r ( t ) { if ( ! t ) return ! 1 ; if ( e . Buffer && e . Buffer . isBuffer ( t ) || e . ArrayBuffer && t instanceof ArrayBuffer || e . Blob && t instanceof Blob || e . File && t instanceof File ) return ! 0 ; if ( o ( t ) ) { for ( var n = 0 ; n < t . length ; n ++ ) if ( r ( t [ n ] ) ) return ! 0 } else if ( t && "object" == typeof t ) { t . toJSON && ( t = t . toJSON ( ) ) ; for ( var i in t ) if ( Object . prototype . hasOwnProperty . call ( t , i ) && r ( t [ i ] ) ) return ! 0 } return ! 1 } return r ( t ) } var o = r ( 30 ) ; t . exports = n } ) . call ( e , function ( ) { return this } ( ) ) } , function ( t , e ) { t . exports = Array . isArray || function ( t ) { return "[object Array]" == Object . prototype . toString . call ( t ) } } , function ( t , e ) { t . exports = function ( t , e , r ) { var n = t . byteLength ; if ( e = e || 0 , r = r || n , t . slice ) return t . slice ( e , r ) ; if ( e < 0 && ( e += n ) , r < 0 && ( r += n ) , r > n && ( r = n ) , e >= n || e >= r || 0 === n ) return new ArrayBuffer ( 0 ) ; for ( var o = new Uint8Array ( t ) , i = new Uint8Array ( r - e ) , s = e , a = 0 ; s < r ; s ++ , a ++ ) i [ a ] = o [ s ] ; return i . buffer } } , function ( t , e ) { function r ( t , e , r ) { function o ( t , n ) { if ( o . count <= 0 ) throw new Error ( "after called too many times" ) ; -- o . count , t ? ( i = ! 0 , e ( t ) , e = r ) : 0 !== o . count || i || e ( null , n ) } var i = ! 1 ; return r = r || n , o . count = t , 0 === t ? e ( ) : o } function n ( ) { } t . exports = r } , function ( t , e , r ) { var n ; ( function ( t , o ) { ! function ( i ) { function s ( t ) { for ( var e , r , n = [ ] , o = 0 , i = t . length ; o < i ; ) e = t . charCodeAt ( o ++ ) , e >= 55296 && e <= 56319 && o < i ? ( r = t . charCodeAt ( o ++ ) , 56320 == ( 64512 & r ) ? n . push ( ( ( 1023 & e ) << 10 ) + ( 1023 & r ) + 65536 ) : ( n . push ( e ) , o -- ) ) : n . push ( e ) ; return n } function a ( t ) { for ( var e , r = t . length , n = - 1 , o = "" ; ++ n < r ; ) e = t [ n ] , e > 65535 && ( e -= 65536 , o += b ( e >>> 10 & 1023 | 55296 ) , e = 56320 | 1023 & e ) , o += b ( e ) ; return o } function c ( t , e ) { return b ( t >> e & 63 | 128 ) } function u ( t ) { if ( 0 == ( 4294967168 & t ) ) return b ( t ) ; var e = "" ; return 0 == ( 4294965248 & t ) ? e = b ( t >> 6 & 31 | 192 ) : 0 == ( 4294901760 & t ) ? ( e = b ( t >> 12 & 15 | 224 ) , e += c ( t , 6 ) ) : 0 == ( 4292870144 & t ) && ( e = b ( t >> 18 & 7 | 240 ) , e += c ( t , 12 ) , e += c ( t , 6 ) ) , e += b ( 63 & t | 128 ) } function h ( t ) { for ( var e , r = s ( t ) , n = r . length , o = - 1 , i = "" ; ++ o < n ; ) e = r [ o ] , i += u ( e ) ; return i } function p ( ) { if ( v >= m ) throw Error ( "Invalid byte index" ) ; var t = 255 & g [ v ] ; if ( v ++ , 128 == ( 192 & t ) ) return 63 & t ; throw Error ( "Invalid continuation byte" ) } function f ( ) { var t , e , r , n , o ; if ( v > m ) throw Error ( "Invalid byte index" ) ; if ( v == m ) return ! 1 ; if ( t = 255 & g [ v ] , v ++ , 0 == ( 128 & t ) ) return t ; if ( 192 == ( 224 & t ) ) { var e = p ( ) ; if ( o = ( 31 & t ) << 6 | e , o >= 128 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 224 == ( 240 & t ) ) { if ( e = p ( ) , r = p ( ) , o = ( 15 & t ) << 12 | e << 6 | r , o >= 2048 ) return o ; throw Error ( "Invalid continuation byte" ) } if ( 240 == ( 248 & t ) && ( e = p ( ) , r = p ( ) , n = p ( ) , o = ( 15 & t ) << 18 | e << 12 | r << 6 | n , o >= 65536 && o <= 1114111 ) ) return o ; throw Error ( "Invalid WTF-8 detected" ) } function l ( t ) { g = s ( t ) , m = g . length , v = 0 ; for ( var e , r = [ ] ; ( e = f ( ) ) !== ! 1 ; ) r . push ( e ) ; return a ( r ) } var d = "object" == typeof e && e , y = ( "object" == typeof t && t && t . exports == d && t , "object" == typeof o && o ) ; y . global !== y && y . window !== y || ( i = y ) ; var g , m , v , b = String . fromCharCode , w = { version : "1.0.0" , encode : h , decode : l } ; n = function ( ) { return w } . call ( e , r , e , t ) , ! ( void 0 !== n && ( t . exports = n ) ) } ( this ) } ) . call ( e , r ( 12 ) ( t ) , function ( ) { return this } ( ) ) } , function ( t , e ) { ! function ( ) { "use strict" ; for ( var t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" , r = new Uint8Array ( 256 ) , n = 0 ; n < t . length ; n ++ ) r [ t . charCodeAt ( n ) ] = n ; e . encode = function ( e ) { var r , n = new Uint8Array ( e ) , o = n . length , i = "" ; for ( r = 0 ; r < o ; r += 3 ) i += t [ n [ r ] >> 2 ] , i += t [ ( 3 & n [ r ] ) << 4 | n [ r + 1 ] >> 4 ] , i += t [ ( 15 & n [ r + 1 ] ) << 2 | n [ r + 2 ] >> 6 ] , i += t [ 63 & n [ r + 2 ] ] ; return o % 3 === 2 ? i = i . substring ( 0 , i . length - 1 ) + "=" : o % 3 === 1 && ( i = i . substring ( 0 , i .
f = c && r . isArray ( c ) ? c : [ ] ) : f = c && r . isPlainObject ( c ) ? c : { } , g [ b ] = r . extend ( j , f , d ) ) : void 0 !== d && ( g [ b ] = d ) ) ; return g } , r . extend ( { expando : "jQuery" + ( q + Math . random ( ) ) . replace ( /\D/g , "" ) , isReady : ! 0 , error : function ( a ) { throw new Error ( a ) } , noop : function ( ) { } , isFunction : function ( a ) { return "function" === r . type ( a ) } , isArray : Array . isArray , isWindow : function ( a ) { return null != a && a === a . window } , isNumeric : function ( a ) { var b = r . type ( a ) ; return ( "number" === b || "string" === b ) && ! isNaN ( a - parseFloat ( a ) ) } , isPlainObject : function ( a ) { var b , c ; return ! ( ! a || "[object Object]" !== k . call ( a ) || ( b = e ( a ) ) && ( c = l . call ( b , "constructor" ) && b . constructor , "function" != typeof c || m . call ( c ) !== n ) ) } , isEmptyObject : function ( a ) { var b ; for ( b in a ) return ! 1 ; return ! 0 } , type : function ( a ) { return null == a ? a + "" : "object" == typeof a || "function" == typeof a ? j [ k . call ( a ) ] || "object" : typeof a } , globalEval : function ( a ) { p ( a ) } , camelCase : function ( a ) { return a . replace ( t , "ms-" ) . replace ( u , v ) } , nodeName : function ( a , b ) { return a . nodeName && a . nodeName . toLowerCase ( ) === b . toLowerCase ( ) } , each : function ( a , b ) { var c , d = 0 ; if ( w ( a ) ) for ( c = a . length ; d < c && b . call ( a [ d ] , d , a [ d ] ) !== ! 1 ; d ++ ) ; else for ( d in a ) if ( b . call ( a [ d ] , d , a [ d ] ) === ! 1 ) break ; return a } , trim : function ( a ) { return null == a ? "" : ( a + "" ) . replace ( s , "" ) } , makeArray : function ( a , b ) { var c = b || [ ] ; return null != a && ( w ( Object ( a ) ) ? r . merge ( c , "string" == typeof a ? [ a ] : a ) : h . call ( c , a ) ) , c } , inArray : function ( a , b , c ) { return null == b ? - 1 : i . call ( b , a , c ) } , merge : function ( a , b ) { for ( var c = + b . length , d = 0 , e = a . length ; d < c ; d ++ ) a [ e ++ ] = b [ d ] ; return a . length = e , a } , grep : function ( a , b , c ) { for ( var d , e = [ ] , f = 0 , g = a . length , h = ! c ; f < g ; f ++ ) d = ! b ( a [ f ] , f ) , d !== h && e . push ( a [ f ] ) ; return e } , map : function ( a , b , c ) { var d , e , f = 0 , h = [ ] ; if ( w ( a ) ) for ( d = a . length ; f < d ; f ++ ) e = b ( a [ f ] , f , c ) , null != e && h . push ( e ) ; else for ( f in a ) e = b ( a [ f ] , f , c ) , null != e && h . push ( e ) ; return g . apply ( [ ] , h ) } , guid : 1 , proxy : function ( a , b ) { var c , d , e ; if ( "string" == typeof b && ( c = a [ b ] , b = a , a = c ) , r . isFunction ( a ) ) return d = f . call ( arguments , 2 ) , e = function ( ) { return a . apply ( b || this , d . concat ( f . call ( arguments ) ) ) } , e . guid = a . guid = a . guid || r . guid ++ , e } , now : Date . now , support : o } ) , "function" == typeof Symbol && ( r . fn [ Symbol . iterator ] = c [ Symbol . iterator ] ) , r . each ( "Boolean Number String Function Array Date RegExp Object Error Symbol" . split ( " " ) , function ( a , b ) { j [ "[object " + b + "]" ] = b . toLowerCase ( ) } ) ; var x = function ( a ) { function ga ( a , b , d , e ) { var f , h , j , k , l , o , r , s = b && b . ownerDocument , w = b ? b . nodeType : 9 ; if ( d = d || [ ] , "string" != typeof a || ! a || 1 !== w && 9 !== w && 11 !== w ) return d ; if ( ! e && ( ( b ? b . ownerDocument || b : v ) !== n && m ( b ) , b = b || n , p ) ) { if ( 11 !== w && ( l = Z . exec ( a ) ) ) if ( f = l [ 1 ] ) { if ( 9 === w ) { if ( ! ( j = b . getElementById ( f ) ) ) return d ; if ( j . id === f ) return d . push ( j ) , d } else if ( s && ( j = s . getElementById ( f ) ) && t ( b , j ) && j . id === f ) return d . push ( j ) , d } else { if ( l [ 2 ] ) return G . apply ( d , b . getElementsByTagName ( a ) ) , d ; if ( ( f = l [ 3 ] ) && c . getElementsByClassName && b . getElementsByClassName ) return G . apply ( d , b . getElementsByClassName ( f ) ) , d } if ( c . qsa && ! A [ a + " " ] && ( ! q || ! q . test ( a ) ) ) { if ( 1 !== w ) s = b , r = a ; else if ( "object" !== b . nodeName . toLowerCase ( ) ) { for ( ( k = b . getAttribute ( "id" ) ) ? k = k . replace ( ba , ca ) : b . setAttribute ( "id" , k = u ) , o = g ( a ) , h = o . length ; h -- ; ) o [ h ] = "#" + k + " " + sa ( o [ h ] ) ; r = o . join ( "," ) , s = $ . test ( a ) && qa ( b . parentNode ) || b } if ( r ) try { return G . apply ( d , s . querySelectorAll ( r ) ) , d } catch ( x ) { } finally { k === u && b . removeAttribute ( "id" ) } } } return i ( a . replace ( P , "$1" ) , b , d , e ) } function ha ( ) { function b ( c , e ) { return a . push ( c + " " ) > d . cacheLength && delete b [ a . shift ( ) ] , b [ c + " " ] = e } var a = [ ] ; return b } function ia ( a ) { return a [ u ] = ! 0 , a } function ja ( a ) { var b = n . createElement ( "fieldset" ) ; try { return ! ! a ( b ) } catch ( c ) { return ! 1 } finally { b . parentNode && b . parentNode . removeChild ( b ) , b = null } } function ka ( a , b ) { for ( var c = a . split ( "|" ) , e = c . length ; e -- ; ) d . attrHandle [ c [ e ] ] = b } function la ( a , b ) { var c = b && a , d = c && 1 === a . nodeType && 1 === b . nodeType && a . sourceIndex - b . sourceIndex ; if ( d ) return d ; if ( c ) for ( ; c = c . nextSibling ; ) if ( c === b ) return - 1 ; return a ? 1 : - 1 } function ma ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return "input" === c && b . type === a } } function na ( a ) { return function ( b ) { var c = b . nodeName . toLowerCase ( ) ; return ( "input" === c || "button" === c ) && b . type === a } } function oa ( a ) { return function ( b ) { return "form" in b ? b . parentNode && b . disabled === ! 1 ? "label" in b ? "label" in b . parentNode ? b . parentNode . disabled === a : b . disabled === a : b . isDisabled === a || b . isDisabled !
r . dequeue ( a , b ) } ; "inprogress" === e && ( e = c . shift ( ) , d -- ) , e && ( "fx" === b && c . unshift ( "inprogress" ) , delete f . stop , e . call ( a , g , f ) ) , ! d && f && f . empty . fire ( ) } , _queueHooks : function ( a , b ) { var c = b + "queueHooks" ; return V . get ( a , c ) || V . access ( a , c , { empty : r . Callbacks ( "once memory" ) . add ( function ( ) { V . remove ( a , [ b + "queue" , c ] ) } ) } ) } } ) , r . fn . extend ( { queue : function ( a , b ) { var c = 2 ; return "string" != typeof a && ( b = a , a = "fx" , c -- ) , arguments . length < c ? r . queue ( this [ 0 ] , a ) : void 0 === b ? this : this . each ( function ( ) { var c = r . queue ( this , a , b ) ; r . _queueHooks ( this , a ) , "fx" === a && "inprogress" !== c [ 0 ] && r . dequeue ( this , a ) } ) } , dequeue : function ( a ) { return this . each ( function ( ) { r . dequeue ( this , a ) } ) } , clearQueue : function ( a ) { return this . queue ( a || "fx" , [ ] ) } , promise : function ( a , b ) { var c , d = 1 , e = r . Deferred ( ) , f = this , g = this . length , h = function ( ) { -- d || e . resolveWith ( f , [ f ] ) } ; for ( "string" != typeof a && ( b = a , a = void 0 ) , a = a || "fx" ; g -- ; ) c = V . get ( f [ g ] , a + "queueHooks" ) , c && c . empty && ( d ++ , c . empty . add ( h ) ) ; return h ( ) , e . promise ( b ) } } ) ; var _ = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ . source , aa = new RegExp ( "^(?:([+-])=|)(" + _ + ")([a-z%]*)$" , "i" ) , ba = [ "Top" , "Right" , "Bottom" , "Left" ] , ca = function ( a , b ) { return a = b || a , "none" === a . style . display || "" === a . style . display && r . contains ( a . ownerDocument , a ) && "none" === r . css ( a , "display" ) } , da = function ( a , b , c , d ) { var e , f , g = { } ; for ( f in b ) g [ f ] = a . style [ f ] , a . style [ f ] = b [ f ] ; e = c . apply ( a , d || [ ] ) ; for ( f in b ) a . style [ f ] = g [ f ] ; return e } , fa = { } ; r . fn . extend ( { show : function ( ) { return ha ( this , ! 0 ) } , hide : function ( ) { return ha ( this ) } , toggle : function ( a ) { return "boolean" == typeof a ? a ? this . show ( ) : this . hide ( ) : this . each ( function ( ) { ca ( this ) ? r ( this ) . show ( ) : r ( this ) . hide ( ) } ) } } ) ; var ia = /^(?:checkbox|radio)$/i , ja = /<([a-z][^\/\0>\x20\t\r\n\f]+)/i , ka = /^$|\/(?:java|ecma)script/i , la = { option : [ 1 , "<select multiple='multiple'>" , "</select>" ] , thead : [ 1 , "<table>" , "</table>" ] , col : [ 2 , "<table><colgroup>" , "</colgroup></table>" ] , tr : [ 2 , "<table><tbody>" , "</tbody></table>" ] , td : [ 3 , "<table><tbody><tr>" , "</tr></tbody></table>" ] , _default : [ 0 , "" , "" ] } ; la . optgroup = la . option , la . tbody = la . tfoot = la . colgroup = la . caption = la . thead , la . th = la . td ; var oa = /<|&#?\w+;/ ; ! function ( ) { var a = d . createDocumentFragment ( ) , b = a . appendChild ( d . createElement ( "div" ) ) , c = d . createElement ( "input" ) ; c . setAttribute ( "type" , "radio" ) , c . setAttribute ( "checked" , "checked" ) , c . setAttribute ( "name" , "t" ) , b . appendChild ( c ) , o . checkClone = b . cloneNode ( ! 0 ) . cloneNode ( ! 0 ) . lastChild . checked , b . innerHTML = "<textarea>x</textarea>" , o . noCloneChecked = ! ! b . cloneNode ( ! 0 ) . lastChild . defaultValue } ( ) ; var qa = d . documentElement , ra = /^key/ , sa = /^(?:mouse|pointer|contextmenu|drag|drop)|click/ , ta = /^([^.]*)(?:\.(.+)|)/ ; r . event = { global : { } , add : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = V . get ( a ) ; if ( q ) for ( c . handler && ( f = c , c = f . handler , e = f . selector ) , e && r . find . matchesSelector ( qa , e ) , c . guid || ( c . guid = r . guid ++ ) , ( i = q . events ) || ( i = q . events = { } ) , ( g = q . handle ) || ( g = q . handle = function ( b ) { return "undefined" != typeof r && r . event . triggered !== b . type ? r . event . dispatch . apply ( a , arguments ) : void 0 } ) , b = ( b || "" ) . match ( K ) || [ "" ] , j = b . length ; j -- ; ) h = ta . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n && ( l = r . event . special [ n ] || { } , n = ( e ? l . delegateType : l . bindType ) || n , l = r . event . special [ n ] || { } , k = r . extend ( { type : n , origType : p , data : d , handler : c , guid : c . guid , selector : e , needsContext : e && r . expr . match . needsContext . test ( e ) , namespace : o . join ( "." ) } , f ) , ( m = i [ n ] ) || ( m = i [ n ] = [ ] , m . delegateCount = 0 , l . setup && l . setup . call ( a , d , o , g ) !== ! 1 || a . addEventListener && a . addEventListener ( n , g ) ) , l . add && ( l . add . call ( a , k ) , k . handler . guid || ( k . handler . guid = c . guid ) ) , e ? m . splice ( m . delegateCount ++ , 0 , k ) : m . push ( k ) , r . event . global [ n ] = ! 0 ) } , remove : function ( a , b , c , d , e ) { var f , g , h , i , j , k , l , m , n , o , p , q = V . hasData ( a ) && V . get ( a ) ; if ( q && ( i = q . events ) ) { for ( b = ( b || "" ) . match ( K ) || [ "" ] , j = b . length ; j -- ; ) if ( h = ta . exec ( b [ j ] ) || [ ] , n = p = h [ 1 ] , o = ( h [ 2 ] || "" ) . split ( "." ) . sort ( ) , n ) { for ( l = r . event . special [ n ] || { } , n = ( d ? l . delegateType : l . bindType ) || n , m = i [ n ] || [ ] , h = h [ 2 ] && new RegExp ( "(^|\\.)" + o . join ( "\\.(?:.*\\.|)" ) + "(\\.|$)" ) , g = f = m . length ; f -- ; ) k = m [ f ] , ! e && p !== k . origType || c && c . guid !== k . guid || h && ! h . test ( k . namespace ) || d && d !== k . selector && ( "**" !== d || ! k . selector ) || ( m . splice ( f , 1 ) , k . selector && m . delegateCount -- , l . remove && l . remove . call ( a , k ) ) ; g && ! m . length && ( l . teardown && l . teardown . call ( a , o , q . handle ) !== ! 1 || r . removeEve
2016-12-15 22:59:58 -05:00
( o . data && o . hasContent && o . contentType !== ! 1 || c . contentType ) && y . setRequestHeader ( "Content-Type" , o . contentType ) , y . setRequestHeader ( "Accept" , o . dataTypes [ 0 ] && o . accepts [ o . dataTypes [ 0 ] ] ? o . accepts [ o . dataTypes [ 0 ] ] + ( "*" !== o . dataTypes [ 0 ] ? ", " + Hb + "; q=0.01" : "" ) : o . accepts [ "*" ] ) ; for ( m in o . headers ) y . setRequestHeader ( m , o . headers [ m ] ) ; if ( o . beforeSend && ( o . beforeSend . call ( p , y , o ) === ! 1 || k ) ) return y . abort ( ) ; if ( x = "abort" , t . add ( o . complete ) , y . done ( o . success ) , y . fail ( o . error ) , e = Kb ( Gb , o , c , y ) ) { if ( y . readyState = 1 , l && q . trigger ( "ajaxSend" , [ y , o ] ) , k ) return y ; o . async && o . timeout > 0 && ( i = a . setTimeout ( function ( ) { y . abort ( "timeout" ) } , o . timeout ) ) ; try { k = ! 1 , e . send ( v , A ) } catch ( z ) { if ( k ) throw z ; A ( - 1 , z ) } } else A ( - 1 , "No Transport" ) ; return y } , getJSON : function ( a , b , c ) { return r . get ( a , b , c , "json" ) } , getScript : function ( a , b ) { return r . get ( a , void 0 , b , "script" ) } } ) , r . each ( [ "get" , "post" ] , function ( a , b ) { r [ b ] = function ( a , c , d , e ) { return r . isFunction ( c ) && ( e = e || d , d = c , c = void 0 ) , r . ajax ( r . extend ( { url : a , type : b , dataType : e , data : c , success : d } , r . isPlainObject ( a ) && a ) ) } } ) , r . _evalUrl = function ( a ) { return r . ajax ( { url : a , type : "GET" , dataType : "script" , cache : ! 0 , async : ! 1 , global : ! 1 , throws : ! 0 } ) } , r . fn . extend ( { wrapAll : function ( a ) { var b ; return this [ 0 ] && ( r . isFunction ( a ) && ( a = a . call ( this [ 0 ] ) ) , b = r ( a , this [ 0 ] . ownerDocument ) . eq ( 0 ) . clone ( ! 0 ) , this [ 0 ] . parentNode && b . insertBefore ( this [ 0 ] ) , b . map ( function ( ) { for ( var a = this ; a . firstElementChild ; ) a = a . firstElementChild ; return a } ) . append ( this ) ) , this } , wrapInner : function ( a ) { return r . isFunction ( a ) ? this . each ( function ( b ) { r ( this ) . wrapInner ( a . call ( this , b ) ) } ) : this . each ( function ( ) { var b = r ( this ) , c = b . contents ( ) ; c . length ? c . wrapAll ( a ) : b . append ( a ) } ) } , wrap : function ( a ) { var b = r . isFunction ( a ) ; return this . each ( function ( c ) { r ( this ) . wrapAll ( b ? a . call ( this , c ) : a ) } ) } , unwrap : function ( a ) { return this . parent ( a ) . not ( "body" ) . each ( function ( ) { r ( this ) . replaceWith ( this . childNodes ) } ) , this } } ) , r . expr . pseudos . hidden = function ( a ) { return ! r . expr . pseudos . visible ( a ) } , r . expr . pseudos . visible = function ( a ) { return ! ! ( a . offsetWidth || a . offsetHeight || a . getClientRects ( ) . length ) } , r . ajaxSettings . xhr = function ( ) { try { return new a . XMLHttpRequest } catch ( b ) { } } ; var Ob = { 0 : 200 , 1223 : 204 } , Pb = r . ajaxSettings . xhr ( ) ; o . cors = ! ! Pb && "withCredentials" in Pb , o . ajax = Pb = ! ! Pb , r . ajaxTransport ( function ( b ) { var c , d ; if ( o . cors || Pb && ! b . crossDomain ) return { send : function ( e , f ) { var g , h = b . xhr ( ) ; if ( h . open ( b . type , b . url , b . async , b . username , b . password ) , b . xhrFields ) for ( g in b . xhrFields ) h [ g ] = b . xhrFields [ g ] ; b . mimeType && h . overrideMimeType && h . overrideMimeType ( b . mimeType ) , b . crossDomain || e [ "X-Requested-With" ] || ( e [ "X-Requested-With" ] = "XMLHttpRequest" ) ; for ( g in e ) h . setRequestHeader ( g , e [ g ] ) ; c = function ( a ) { return function ( ) { c && ( c = d = h . onload = h . onerror = h . onabort = h . onreadystatechange = null , "abort" === a ? h . abort ( ) : "error" === a ? "number" != typeof h . status ? f ( 0 , "error" ) : f ( h . status , h . statusText ) : f ( Ob [ h . status ] || h . status , h . statusText , "text" !== ( h . responseType || "text" ) || "string" != typeof h . responseText ? { binary : h . response } : { text : h . responseText } , h . getAllResponseHeaders ( ) ) ) } } , h . onload = c ( ) , d = h . onerror = c ( "error" ) , void 0 !== h . onabort ? h . onabort = d : h . onreadystatechange = function ( ) { 4 === h . readyState && a . setTimeout ( function ( ) { c && d ( ) } ) } , c = c ( "abort" ) ; try { h . send ( b . hasContent && b . data || null ) } catch ( i ) { if ( c ) throw i } } , abort : function ( ) { c && c ( ) } } } ) , r . ajaxPrefilter ( function ( a ) { a . crossDomain && ( a . contents . script = ! 1 ) } ) , r . ajaxSetup ( { accepts : { script : "text/javascript, application/javascript, application/ecmascript, application/x-ecmascript" } , contents : { script : /\b(?:java|ecma)script\b/ } , converters : { "text script" : function ( a ) { return r . globalEval ( a ) , a } } } ) , r . ajaxPrefilter ( "script" , function ( a ) { void 0 === a . cache && ( a . cache = ! 1 ) , a . crossDomain && ( a . type = "GET" ) } ) , r . ajaxTransport ( "script" , function ( a ) { if ( a . crossDomain ) { var b , c ; return { send : function ( e , f ) { b = r ( "<script>" ) . prop ( { charset : a . scriptCharset , src : a . url } ) . on ( "load error" , c = function ( a ) { b . remove ( ) , c = null , a && f ( "error" === a . type ? 404 : 200 , a . type ) } ) , d . head . appendChild ( b [ 0 ] ) } , abort : function ( ) { c && c ( ) } } } } ) ; var Qb = [ ] , Rb = /(=)\?(?=&|$)|\?\?/ ; r . ajaxSetup ( { jsonp : "callback" , jsonpCallback : function ( ) { var a = Qb . pop ( ) || r . expando + "_" + rb ++ ; return this [ a ] = ! 0 , a } } ) , r . ajaxPrefilter ( "json jsonp" , function ( b , c , d ) { var e , f , g , h = b . jsonp !== ! 1 && ( Rb . te
if ( pt ( r ) ) for ( pt ( t = r . hook ) && pt ( t = t . destroy ) && t ( e ) , t = 0 ; t < C . destroy . length ; ++ t ) C . destroy [ t ] ( e ) ; if ( pt ( t = e . children ) ) for ( n = 0 ; n < e . children . length ; ++ n ) h ( e . children [ n ] ) } function m ( e , t , n , r ) { for ( ; n <= r ; ++ n ) { var i = t [ n ] ; pt ( i ) && ( pt ( i . tag ) ? ( g ( i ) , h ( i ) ) : A . removeChild ( e , i . elm ) ) } } function g ( e , t ) { if ( t || pt ( e . data ) ) { var i = C . remove . length + 1 ; for ( t ? t . listeners += i : t = n ( e . elm , i ) , pt ( w = e . child ) && pt ( w = w . _vnode ) && pt ( w . data ) && g ( w , t ) , w = 0 ; w < C . remove . length ; ++ w ) C . remove [ w ] ( e , t ) ; pt ( w = e . data . hook ) && pt ( w = w . remove ) ? w ( e , t ) : t ( ) } else r ( e . elm ) } function y ( e , t , n , r , o ) { for ( var a , s , c , l , u = 0 , f = 0 , d = t . length - 1 , p = t [ 0 ] , h = t [ d ] , g = n . length - 1 , y = n [ 0 ] , b = n [ g ] , $ = ! o ; u <= d && f <= g ; ) dt ( p ) ? p = t [ ++ u ] : dt ( h ) ? h = t [ -- d ] : vt ( p , y ) ? ( _ ( p , y , r ) , p = t [ ++ u ] , y = n [ ++ f ] ) : vt ( h , b ) ? ( _ ( h , b , r ) , h = t [ -- d ] , b = n [ -- g ] ) : vt ( p , b ) ? ( _ ( p , b , r ) , $ && A . insertBefore ( e , p . elm , A . nextSibling ( h . elm ) ) , p = t [ ++ u ] , b = n [ -- g ] ) : vt ( h , y ) ? ( _ ( h , y , r ) , $ && A . insertBefore ( e , h . elm , p . elm ) , h = t [ -- d ] , y = n [ ++ f ] ) : ( dt ( a ) && ( a = ht ( t , u , d ) ) , s = pt ( y . key ) ? a [ y . key ] : null , dt ( s ) ? ( i ( y , r , e , p . elm ) , y = n [ ++ f ] ) : ( c = t [ s ] , c . tag !== y . tag ? ( i ( y , r , e , p . elm ) , y = n [ ++ f ] ) : ( _ ( c , y , r ) , t [ s ] = void 0 , $ && A . insertBefore ( e , y . elm , p . elm ) , y = n [ ++ f ] ) ) ) ; u > d ? ( l = dt ( n [ g + 1 ] ) ? null : n [ g + 1 ] . elm , v ( e , l , n , f , g , r ) ) : f > g && m ( e , t , u , d ) } function _ ( e , t , n , r ) { if ( e !== t ) { if ( t . isStatic && e . isStatic && t . key === e . key && ( t . isCloned || t . isOnce ) ) return t . elm = e . elm , void ( t . child = e . child ) ; var i , o = t . data , a = pt ( o ) ; a && pt ( i = o . hook ) && pt ( i = i . prepatch ) && i ( e , t ) ; var s = t . elm = e . elm , c = e . children , l = t . children ; if ( a && u ( t ) ) { for ( i = 0 ; i < C . update . length ; ++ i ) C . update [ i ] ( e , t ) ; pt ( i = o . hook ) && pt ( i = i . update ) && i ( e , t ) } dt ( t . text ) ? pt ( c ) && pt ( l ) ? c !== l && y ( s , c , l , n , r ) : pt ( l ) ? ( pt ( e . text ) && A . setTextContent ( s , "" ) , v ( s , null , l , 0 , l . length - 1 , n ) ) : pt ( c ) ? m ( s , c , 0 , c . length - 1 ) : pt ( e . text ) && A . setTextContent ( s , "" ) : e . text !== t . text && A . setTextContent ( s , t . text ) , a && pt ( i = o . hook ) && pt ( i = i . postpatch ) && i ( e , t ) } } function b ( e , t , n ) { if ( n && e . parent ) e . parent . data . pendingInsert = t ; else for ( var r = 0 ; r < t . length ; ++ r ) t [ r ] . data . hook . insert ( t [ r ] ) } function $ ( e , t , n ) { t . elm = e ; var r = t . tag , i = t . data , o = t . children ; if ( pt ( i ) && ( pt ( w = i . hook ) && pt ( w = w . init ) && w ( t , ! 0 ) , pt ( w = t . child ) ) ) return d ( t , n ) , ! 0 ; if ( pt ( r ) ) { if ( pt ( o ) ) { var a = A . childNodes ( e ) ; if ( a . length ) { var s = ! 0 ; if ( a . length !== o . length ) s = ! 1 ; else for ( var c = 0 ; c < o . length ; c ++ ) if ( ! $ ( a [ c ] , o [ c ] , n ) ) { s = ! 1 ; break } if ( ! s ) return ! 1 } else l ( t , o , n ) } pt ( i ) && f ( t , n ) } return ! 0 } var w , x , C = { } , k = e . modules , A = e . nodeOps ; for ( w = 0 ; w < io . length ; ++ w ) for ( C [ io [ w ] ] = [ ] , x = 0 ; x < k . length ; ++ x ) void 0 !== k [ x ] [ io [ w ] ] && C [ io [ w ] ] . push ( k [ x ] [ io [ w ] ] ) ; return function ( e , n , r , o , a , s ) { if ( ! n ) return void ( e && h ( e ) ) ; var c , l , f = ! 1 , d = [ ] ; if ( e ) { var p = pt ( e . nodeType ) ; if ( ! p && vt ( e , n ) ) _ ( e , n , d , o ) ; else { if ( p ) { if ( 1 === e . nodeType && e . hasAttribute ( "server-rendered" ) && ( e . removeAttribute ( "server-rendered" ) , r = ! 0 ) , r && $ ( e , n , d ) ) return b ( n , d , ! 0 ) , e ; e = t ( e ) } if ( c = e . elm , l = A . parentNode ( c ) , i ( n , d , l , A . nextSibling ( c ) ) , n . parent ) { for ( var v = n . parent ; v ; ) v . elm = n . elm , v = v . parent ; if ( u ( n ) ) for ( var g = 0 ; g < C . create . length ; ++ g ) C . create [ g ] ( ro , n . parent ) } null !== l ? m ( l , [ e ] , 0 , 0 ) : pt ( e . tag ) && h ( e ) } } else f = ! 0 , i ( n , d , a , s ) ; return b ( n , d , f ) , n . elm } } function gt ( e , t ) { if ( e . data . directives || t . data . directives ) { var n , r , i , o = e === ro , a = yt ( e . data . directives , e . context ) , s = yt ( t . data . directives , t . context ) , c = [ ] , l = [ ] ; for ( n in s ) r = a [ n ] , i = s [ n ] , r ? ( i . oldValue = r . value , bt ( i , "update" , t , e ) , i . def && i . def . componentUpdated && l . push ( i ) ) : ( bt ( i , "bind" , t , e ) , i . def && i . def . inserted && c . push ( i ) ) ; if ( c . length ) { var u = function ( ) { c . forEach ( function ( n ) { bt ( n , "inserted" , t , e ) } ) } ; o ? ie ( t . data . hook || ( t . data . hook = { } ) , "insert" , u , "dir-insert" ) : u ( ) } if ( l . length && ie ( t . data . hook || ( t . data . hook = { } ) , "postpatch" , function ( ) { l . forEach ( function ( n ) { bt ( n , "componentUpdated" , t , e ) } ) } , "dir-postpatch" ) , ! o ) for ( n in a ) s [ n ] || bt ( a [ n ] , "unbind" , e ) } } function yt ( e , t ) { var n = Object . create ( null ) ; if ( ! e ) return n ; var r , i ; for ( r = 0 ; r < e . length ; r ++ ) i = e [ r ] , i . modifiers || ( i . modifiers = ao ) , n [ _t ( i ) ] = i , i . def = P ( t . $options , "directives" , i . name , ! 0 ) ; return n } function _t ( e ) { return e . rawName || e . name + "." + Object . keys ( e . modifiers || { } ) . join ( "." ) } function bt ( e , t , n , r ) { var i = e . def && e . def [ t ] ; i && i ( n . elm , e , n , r ) } function $t ( e , t ) { if ( e . data . attrs || t . data . attrs ) { var n , r , i , o = t . elm , a = e . data . attrs || { } , s = t . data . attrs || { } ; s . _ _ob _ _ && ( s = t . data . attrs = l ( { } , s ) ) ; for ( n in s ) r = s [ n ] , i = a [ n ] , i !== r && wt ( o , n , r ) ; for ( n in a ) null == s [ n ] && ( Ki ( n ) ? o . removeAttributeNS (
} ) , bi . watch = function ( e , t ) { if ( ! t ) return e ; if ( ! e ) return t ; var n = { } ; l ( n , e ) ; for ( var r in t ) { var i = n [ r ] , o = t [ r ] ; i && ! Array . isArray ( i ) && ( i = [ i ] ) , n [ r ] = i ? i . concat ( o ) : [ o ] } return n } , bi . props = bi . methods = bi . computed = function ( e , t ) { if ( ! t ) return e ; if ( ! e ) return t ; var n = Object . create ( null ) ; return l ( n , e ) , l ( n , t ) , n } ; var $i = function ( e , t ) { return void 0 === t ? e : t } , wi = Object . freeze ( { defineReactive : A , _toString : e , toNumber : t , makeMap : n , isBuiltInTag : Hr , remove : r , hasOwn : i , isPrimitive : o , cached : a , camelize : zr , capitalize : Jr , hyphenate : qr , bind : s , toArray : c , extend : l , isObject : u , isPlainObject : f , toObject : d , noop : p , no : Gr , genStaticKeys : v , looseEqual : h , looseIndexOf : m , isReserved : g , def : y , parsePath : _ , hasProto : Xr , inBrowser : ei , UA : ti , isIE : ni , isIE9 : ri , isEdge : ii , isAndroid : oi , isIOS : ai , isServerRendering : si , devtools : ci , nextTick : li , get _Set ( ) { return Ur } , mergeOptions : M , resolveAsset : P , warn : fi , formatComponentName : ui , validateProp : R } ) , xi = [ ] , Ci = { } , ki = ! 1 , Ai = ! 1 , Oi = 0 , Si = 0 , Ti = function ( e , t , n , r ) { void 0 === r && ( r = { } ) , this . vm = e , e . _watchers . push ( this ) , this . deep = ! ! r . deep , this . user = ! ! r . user , this . lazy = ! ! r . lazy , this . sync = ! ! r . sync , this . expression = t . toString ( ) , this . cb = n , this . id = ++ Si , this . active = ! 0 , this . dirty = this . lazy , this . deps = [ ] , this . newDeps = [ ] , this . depIds = new Ur , this . newDepIds = new Ur , "function" == typeof t ? this . getter = t : ( this . getter = _ ( t ) , this . getter || ( this . getter = function ( ) { } ) ) , this . value = this . lazy ? void 0 : this . get ( ) } ; Ti . prototype . get = function ( ) { $ ( this ) ; var e = this . getter . call ( this . vm , this . vm ) ; return this . deep && z ( e ) , w ( ) , this . cleanupDeps ( ) , e } , Ti . prototype . addDep = function ( e ) { var t = e . id ; this . newDepIds . has ( t ) || ( this . newDepIds . add ( t ) , this . newDeps . push ( e ) , this . depIds . has ( t ) || e . addSub ( this ) ) } , Ti . prototype . cleanupDeps = function ( ) { for ( var e = this , t = this . deps . length ; t -- ; ) { var n = e . deps [ t ] ; e . newDepIds . has ( n . id ) || n . removeSub ( e ) } var r = this . depIds ; this . depIds = this . newDepIds , this . newDepIds = r , this . newDepIds . clear ( ) , r = this . deps , this . deps = this . newDeps , this . newDeps = r , this . newDeps . length = 0 } , Ti . prototype . update = function ( ) { this . lazy ? this . dirty = ! 0 : this . sync ? this . run ( ) : V ( this ) } , Ti . prototype . run = function ( ) { if ( this . active ) { var e = this . get ( ) ; if ( e !== this . value || u ( e ) || this . deep ) { var t = this . value ; if ( this . value = e , this . user ) try { this . cb . call ( this . vm , e , t ) } catch ( e ) { if ( ! Yr . errorHandler ) throw e ; Yr . errorHandler . call ( null , e , this . vm ) } else this . cb . call ( this . vm , e , t ) } } } , Ti . prototype . evaluate = function ( ) { this . value = this . get ( ) , this . dirty = ! 1 } , Ti . prototype . depend = function ( ) { for ( var e = this , t = this . deps . length ; t -- ; ) e . deps [ t ] . depend ( ) } , Ti . prototype . teardown = function ( ) { var e = this ; if ( this . active ) { this . vm . _isBeingDestroyed || this . vm . _vForRemoving || r ( this . vm . _watchers , this ) ; for ( var t = this . deps . length ; t -- ; ) e . deps [ t ] . removeSub ( e ) ; this . active = ! 1 } } ; var Ei = new Ur , ji = { enumerable : ! 0 , configurable : ! 0 , get : p , set : p } , Ni = function ( e , t , n , r , i , o , a , s ) { this . tag = e , this . data = t , this . children = n , this . text = r , this . elm = i , this . ns = o , this . context = a , this . functionalContext = void 0 , this . key = t && t . key , this . componentOptions = s , this . child = void 0 , this . parent = void 0 , this . raw = ! 1 , this . isStatic = ! 1 , this . isRootInsert = ! 0 , this . isComment = ! 1 , this . isCloned = ! 1 , this . isOnce = ! 1 } , Li = function ( ) { var e = new Ni ; return e . text = "" , e . isComment = ! 0 , e } , Di = null , Mi = { init : ye , prepatch : _e , insert : be , destroy : $e } , Pi = Object . keys ( Mi ) , Ri = 0 ; De ( Re ) , ee ( Re ) , Le ( Re ) , pe ( Re ) , Ee ( Re ) ; var Ii = [ String , RegExp ] , Fi = { name : "keep-alive" , abstract : ! 0 , props : { include : Ii , exclude : Ii } , created : function ( ) { this . cache = Object . create ( null ) } , render : function ( ) { var e = fe ( this . $slots . default ) ; if ( e && e . componentOptions ) { var t = e . componentOptions , n = t . Ctor . options . name || t . tag ; if ( n && ( this . include && ! Be ( this . include , n ) || this . exclude && Be ( this . exclude , n ) ) ) return e ; var r = null == e . key ? t . Ctor . cid + ( t . tag ? "::" + t . tag : "" ) : e . key ; this . cache [ r ] ? e . child = this . cache [ r ] . child : this . cache [ r ] = e , e . data . keepAlive = ! 0 } return e } , destroyed : function ( ) { var e = this ; for ( var t in this . cache ) { var n = e . cache [ t ] ; ve ( n . child , "deactivated" ) , n . child . $destroy ( ) } } } , Ui = { KeepAlive : Fi } ; Ve ( Re ) , Object . defineProperty ( Re . prototype , "$isServer" , { get : si } ) , Re . version = "2.1.4" ; var Hi , Bi = function ( e , t ) { return "value" === t && ( "input" === e || "textarea" === e || "option" === e ) || "selected" === t && "option" === e || "checked" === t && "input" === e || "muted" === t && "video" ==
} , nextItem : function ( t ) { t . stopPropagation ( ) ; var n = e ( this ) . data ( "contextMenu" ) || { } , a = e ( this ) . data ( "contextMenuRoot" ) || { } ; if ( n . $selected ) { var o = n . $selected ; n = n . $selected . parent ( ) . data ( "contextMenu" ) || { } , n . $selected = o } for ( var s = n . $menu . children ( ) , i = n . $selected && n . $selected . next ( ) . length ? n . $selected . next ( ) : s . first ( ) , c = i ; i . hasClass ( a . classNames . disabled ) || i . hasClass ( a . classNames . notSelectable ) || i . is ( ":hidden" ) ; ) if ( i = i . next ( ) . length ? i . next ( ) : s . first ( ) , i . is ( c ) ) return ; n . $selected && f . itemMouseleave . call ( n . $selected . get ( 0 ) , t ) , f . itemMouseenter . call ( i . get ( 0 ) , t ) ; var r = i . find ( "input, textarea, select" ) ; r . length && r . focus ( ) } , focusInput : function ( ) { var t = e ( this ) . closest ( ".context-menu-item" ) , n = t . data ( ) , a = n . contextMenu , o = n . contextMenuRoot ; o . $selected = a . $selected = t , o . isInput = a . isInput = ! 0 } , blurInput : function ( ) { var t = e ( this ) . closest ( ".context-menu-item" ) , n = t . data ( ) , a = n . contextMenu , o = n . contextMenuRoot ; o . isInput = a . isInput = ! 1 } , menuMouseenter : function ( ) { var t = e ( this ) . data ( ) . contextMenuRoot ; t . hovering = ! 0 } , menuMouseleave : function ( t ) { var n = e ( this ) . data ( ) . contextMenuRoot ; n . $layer && n . $layer . is ( t . relatedTarget ) && ( n . hovering = ! 1 ) } , itemMouseenter : function ( t ) { var n = e ( this ) , a = n . data ( ) , o = a . contextMenu , s = a . contextMenuRoot ; return s . hovering = ! 0 , t && s . $layer && s . $layer . is ( t . relatedTarget ) && ( t . preventDefault ( ) , t . stopImmediatePropagation ( ) ) , ( o . $menu ? o : s ) . $menu . children ( "." + s . classNames . hover ) . trigger ( "contextmenu:blur" ) . children ( ".hover" ) . trigger ( "contextmenu:blur" ) , n . hasClass ( s . classNames . disabled ) || n . hasClass ( s . classNames . notSelectable ) ? void ( o . $selected = null ) : void n . trigger ( "contextmenu:focus" ) } , itemMouseleave : function ( t ) { var n = e ( this ) , a = n . data ( ) , o = a . contextMenu , s = a . contextMenuRoot ; return s !== o && s . $layer && s . $layer . is ( t . relatedTarget ) ? ( "undefined" != typeof s . $selected && null !== s . $selected && s . $selected . trigger ( "contextmenu:blur" ) , t . preventDefault ( ) , t . stopImmediatePropagation ( ) , void ( s . $selected = o . $selected = o . $node ) ) : void n . trigger ( "contextmenu:blur" ) } , itemClick : function ( t ) { var n , a = e ( this ) , o = a . data ( ) , s = o . contextMenu , i = o . contextMenuRoot , c = o . contextMenuKey ; if ( ! i . selectableSubMenu || s . items [ c ] && ! a . is ( "." + i . classNames . disabled + ", .context-menu-submenu, .context-menu-separator, ." + i . classNames . notSelectable ) ) { if ( t . preventDefault ( ) , t . stopImmediatePropagation ( ) , e . isFunction ( s . callbacks [ c ] ) && Object . prototype . hasOwnProperty . call ( s . callbacks , c ) ) n = s . callbacks [ c ] ; else { if ( ! e . isFunction ( i . callback ) ) return ; n = i . callback } n . call ( i . $trigger , c , i ) !== ! 1 ? i . $menu . trigger ( "contextmenu:hide" ) : i . $menu . parent ( ) . length && h . update . call ( i . $trigger , i ) } } , inputClick : function ( e ) { e . stopImmediatePropagation ( ) } , hideMenu : function ( t , n ) { var a = e ( this ) . data ( "contextMenuRoot" ) ; h . hide . call ( a . $trigger , a , n && n . force ) } , focusItem : function ( t ) { t . stopPropagation ( ) ; var n = e ( this ) , a = n . data ( ) , o = a . contextMenu , s = a . contextMenuRoot ; n . hasClass ( s . classNames . disabled ) || n . hasClass ( s . classNames . notSelectable ) || ( n . addClass ( [ s . classNames . hover , s . classNames . visible ] . join ( " " ) ) . parent ( ) . find ( ".context-menu-item" ) . not ( n ) . removeClass ( s . classNames . visible ) . filter ( "." + s . classNames . hover ) . trigger ( "contextmenu:blur" ) , o . $selected = s . $selected = n , o . $node && s . positionSubmenu . call ( o . $node , o . $menu ) ) } , blurItem : function ( t ) { t . stopPropagation ( ) ; var n = e ( this ) , a = n . data ( ) , o = a . contextMenu , s = a . contextMenuRoot ; o . autoHide && n . removeClass ( s . classNames . visible ) , n . removeClass ( s . classNames . hover ) , o . $selected = null } } , h = { show : function ( t , n , a ) { var s = e ( this ) , i = { } ; if ( e ( "#context-menu-layer" ) . trigger ( "mousedown" ) , t . $trigger = s , t . events . show . call ( s , t ) === ! 1 ) return void ( o = null ) ; if ( h . update . call ( s , t ) , t . position . call ( s , t , n , a ) , t . zIndex ) { var c = t . zIndex ; "function" == typeof t . zIndex && ( c = t . zIndex . call ( s , t ) ) , i . zIndex = p ( s ) + c } h . layer . call ( t . $menu , t , i . zIndex ) , t . $menu . find ( "ul" ) . css ( "zIndex" , i . zIndex + 1 ) , t . $menu . css ( i ) [ t . animation . show ] ( t . animation . duration , function ( ) { s . trigger ( "contextmenu:visible" ) } ) , s . data ( "contextMenu" , t ) . addClass ( "context-menu-active" ) , e ( document ) . off ( "keydown.contextMenu" ) . on ( "keydown.contextMenu" , f . key ) , t . autoHide && e ( document ) . on ( "mousemove.contextMenuAutoHide" , function ( e ) { var n = s . offset ( ) ; n . right = n . left + s . outerWidth ( ) , n . bottom = n . top + s . outerHeight ( ) , ! t . $layer || t . hovering |
case "hex" : case "utf8" : case "utf-8" : case "ascii" : case "binary" : case "base64" : case "raw" : case "ucs2" : case "ucs-2" : case "utf16le" : case "utf-16le" : return ! 0 ; default : return ! 1 } } , a . concat = function ( e , t ) { if ( ! J ( e ) ) throw new TypeError ( '"list" argument must be an Array of Buffers' ) ; if ( 0 === e . length ) return a . alloc ( 0 ) ; var n ; if ( void 0 === t ) for ( t = 0 , n = 0 ; n < e . length ; n ++ ) t += e [ n ] . length ; var r = a . allocUnsafe ( t ) , i = 0 ; for ( n = 0 ; n < e . length ; n ++ ) { var o = e [ n ] ; if ( ! a . isBuffer ( o ) ) throw new TypeError ( '"list" argument must be an Array of Buffers' ) ; o . copy ( r , i ) , i += o . length } return r } , a . byteLength = v , a . prototype . _isBuffer = ! 0 , a . prototype . swap16 = function ( ) { var e = this . length ; if ( e % 2 !== 0 ) throw new RangeError ( "Buffer size must be a multiple of 16-bits" ) ; for ( var t = 0 ; e > t ; t += 2 ) x ( this , t , t + 1 ) ; return this } , a . prototype . swap32 = function ( ) { var e = this . length ; if ( e % 4 !== 0 ) throw new RangeError ( "Buffer size must be a multiple of 32-bits" ) ; for ( var t = 0 ; e > t ; t += 4 ) x ( this , t , t + 3 ) , x ( this , t + 1 , t + 2 ) ; return this } , a . prototype . toString = function ( ) { var e = 0 | this . length ; return 0 === e ? "" : 0 === arguments . length ? N ( this , 0 , e ) : y . apply ( this , arguments ) } , a . prototype . equals = function ( e ) { if ( ! a . isBuffer ( e ) ) throw new TypeError ( "Argument must be a Buffer" ) ; return this === e || 0 === a . compare ( this , e ) } , a . prototype . inspect = function ( ) { var e = "" , t = n . INSPECT _MAX _BYTES ; return this . length > 0 && ( e = this . toString ( "hex" , 0 , t ) . match ( /.{2}/g ) . join ( " " ) , this . length > t && ( e += " ... " ) ) , "<Buffer " + e + ">" } , a . prototype . compare = function ( e , t , n , r , i ) { if ( ! a . isBuffer ( e ) ) throw new TypeError ( "Argument must be a Buffer" ) ; if ( void 0 === t && ( t = 0 ) , void 0 === n && ( n = e ? e . length : 0 ) , void 0 === r && ( r = 0 ) , void 0 === i && ( i = this . length ) , 0 > t || n > e . length || 0 > r || i > this . length ) throw new RangeError ( "out of range index" ) ; if ( r >= i && t >= n ) return 0 ; if ( r >= i ) return - 1 ; if ( t >= n ) return 1 ; if ( t >>>= 0 , n >>>= 0 , r >>>= 0 , i >>>= 0 , this === e ) return 0 ; for ( var o = i - r , l = n - t , s = Math . min ( o , l ) , c = this . slice ( r , i ) , u = e . slice ( t , n ) , f = 0 ; s > f ; ++ f ) if ( c [ f ] !== u [ f ] ) { o = c [ f ] , l = u [ f ] ; break } return l > o ? - 1 : o > l ? 1 : 0 } , a . prototype . indexOf = function ( e , t , n ) { if ( "string" == typeof t ? ( n = t , t = 0 ) : t > 2147483647 ? t = 2147483647 : - 2147483648 > t && ( t = - 2147483648 ) , t >>= 0 , 0 === this . length ) return - 1 ; if ( t >= this . length ) return - 1 ; if ( 0 > t && ( t = Math . max ( this . length + t , 0 ) ) , "string" == typeof e && ( e = a . from ( e , n ) ) , a . isBuffer ( e ) ) return 0 === e . length ? - 1 : b ( this , e , t , n ) ; if ( "number" == typeof e ) return a . TYPED _ARRAY _SUPPORT && "function" === Uint8Array . prototype . indexOf ? Uint8Array . prototype . indexOf . call ( this , e , t ) : b ( this , [ e ] , t , n ) ; throw new TypeError ( "val must be string, number or Buffer" ) } , a . prototype . includes = function ( e , t , n ) { return - 1 !== this . indexOf ( e , t , n ) } , a . prototype . write = function ( e , t , n , r ) { if ( void 0 === t ) r = "utf8" , n = this . length , t = 0 ; else if ( void 0 === n && "string" == typeof t ) r = t , n = this . length , t = 0 ; else { if ( ! isFinite ( t ) ) throw new Error ( "Buffer.write(string, encoding, offset[, length]) is no longer supported" ) ; t = 0 | t , isFinite ( n ) ? ( n = 0 | n , void 0 === r && ( r = "utf8" ) ) : ( r = n , n = void 0 ) } var i = this . length - t ; if ( ( void 0 === n || n > i ) && ( n = i ) , e . length > 0 && ( 0 > n || 0 > t ) || t > this . length ) throw new RangeError ( "Attempt to write outside buffer bounds" ) ; r || ( r = "utf8" ) ; for ( var o = ! 1 ; ; ) switch ( r ) { case "hex" : return w ( this , e , t , n ) ; case "utf8" : case "utf-8" : return k ( this , e , t , n ) ; case "ascii" : return S ( this , e , t , n ) ; case "binary" : return C ( this , e , t , n ) ; case "base64" : return L ( this , e , t , n ) ; case "ucs2" : case "ucs-2" : case "utf16le" : case "utf-16le" : return T ( this , e , t , n ) ; default : if ( o ) throw new TypeError ( "Unknown encoding: " + r ) ; r = ( "" + r ) . toLowerCase ( ) , o = ! 0 } } , a . prototype . toJSON = function ( ) { return { type : "Buffer" , data : Array . prototype . slice . call ( this . _arr || this , 0 ) } } ; var Q = 4096 ; a . prototype . slice = function ( e , t ) { var n = this . length ; e = ~ ~ e , t = void 0 === t ? n : ~ ~ t , 0 > e ? ( e += n , 0 > e && ( e = 0 ) ) : e > n && ( e = n ) , 0 > t ? ( t += n , 0 > t && ( t = 0 ) ) : t > n && ( t = n ) , e > t && ( t = e ) ; var r ; if ( a . TYPED _ARRAY _SUPPORT ) r = this . subarray ( e , t ) , r . _ _proto _ _ = a . prototype ; else { var i = t - e ; r = new a ( i , ( void 0 ) ) ; for ( var o = 0 ; i > o ; o ++ ) r [ o ] = this [ o + e ] } return r } , a . prototype . readUIntLE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = this [ e ] , i = 1 , o = 0 ; ++ o < t && ( i *= 256 ) ; ) r += this [ e + o ] * i ; return r } , a . prototype . readUIntBE = function ( e , t , n ) { e = 0 | e , t = 0 | t , n || R ( e , t , this . length ) ; for ( var r = this [ e + -- t ] , i = 1 ; t > 0 && ( i *= 256 ) ; ) r += this [ e + -- t ] * i ; return r } , a . prototype . readUInt8 = function ( e , t ) { return t |
t . measure = n . measure , n . built ) : Br ( e , t ) } function _ ( e , t ) { var n = t . text . className , r = B ( e , t ) ; t . text == t . node && ( t . node = r . pre ) , t . text . parentNode . replaceChild ( r . pre , t . text ) , t . text = r . pre , r . bgClass != t . bgClass || r . textClass != t . textClass ? ( t . bgClass = r . bgClass , t . textClass = r . textClass , F ( t ) ) : n && ( t . text . className = n ) } function F ( e ) { W ( e ) , e . line . wrapClass ? H ( e ) . className = e . line . wrapClass : e . node != e . text && ( e . node . className = "" ) ; var t = e . textClass ? e . textClass + " " + ( e . line . textClass || "" ) : e . line . textClass ; e . text . className = t || "" } function z ( e , t , n , r ) { if ( t . gutter && ( t . node . removeChild ( t . gutter ) , t . gutter = null ) , t . gutterBackground && ( t . node . removeChild ( t . gutterBackground ) , t . gutterBackground = null ) , t . line . gutterClass ) { var i = H ( t ) ; t . gutterBackground = ji ( "div" , null , "CodeMirror-gutter-background " + t . line . gutterClass , "left: " + ( e . options . fixedGutter ? r . fixedPos : - r . gutterTotalWidth ) + "px; width: " + r . gutterTotalWidth + "px" ) , i . insertBefore ( t . gutterBackground , t . text ) } var o = t . line . gutterMarkers ; if ( e . options . lineNumbers || o ) { var i = H ( t ) , a = t . gutter = ji ( "div" , null , "CodeMirror-gutter-wrapper" , "left: " + ( e . options . fixedGutter ? r . fixedPos : - r . gutterTotalWidth ) + "px" ) ; if ( e . display . input . setUneditable ( a ) , i . insertBefore ( a , t . text ) , t . line . gutterClass && ( a . className += " " + t . line . gutterClass ) , ! e . options . lineNumbers || o && o [ "CodeMirror-linenumbers" ] || ( t . lineNumber = a . appendChild ( ji ( "div" , S ( e . options , n ) , "CodeMirror-linenumber CodeMirror-gutter-elt" , "left: " + r . gutterLeft [ "CodeMirror-linenumbers" ] + "px; width: " + e . display . lineNumInnerWidth + "px" ) ) ) , o ) for ( var l = 0 ; l < e . options . gutters . length ; ++ l ) { var s = e . options . gutters [ l ] , c = o . hasOwnProperty ( s ) && o [ s ] ; c && a . appendChild ( ji ( "div" , [ c ] , "CodeMirror-gutter-elt" , "left: " + r . gutterLeft [ s ] + "px; width: " + r . gutterWidth [ s ] + "px" ) ) } } } function j ( e , t , n ) { t . alignable && ( t . alignable = null ) ; for ( var r , i = t . node . firstChild ; i ; i = r ) { var r = i . nextSibling ; "CodeMirror-linewidget" == i . className && t . node . removeChild ( i ) } q ( e , t , n ) } function U ( e , t , n , r ) { var i = B ( e , t ) ; return t . text = t . node = i . pre , i . bgClass && ( t . bgClass = i . bgClass ) , i . textClass && ( t . textClass = i . textClass ) , F ( t ) , z ( e , t , n , r ) , q ( e , t , r ) , t . node } function q ( e , t , n ) { if ( G ( e , t . line , t , n , ! 0 ) , t . rest ) for ( var r = 0 ; r < t . rest . length ; r ++ ) G ( e , t . rest [ r ] , t , n , ! 1 ) } function G ( e , t , n , r , i ) { if ( t . widgets ) for ( var o = H ( n ) , a = 0 , l = t . widgets ; a < l . length ; ++ a ) { var s = l [ a ] , c = ji ( "div" , [ s . node ] , "CodeMirror-linewidget" ) ; s . handleMouseEvents || c . setAttribute ( "cm-ignore-events" , "true" ) , Y ( s , c , n , r ) , e . display . input . setUneditable ( c ) , i && s . above ? o . insertBefore ( c , n . gutter || n . text ) : o . appendChild ( c ) , Ci ( s , "redraw" ) } } function Y ( e , t , n , r ) { if ( e . noHScroll ) { ( n . alignable || ( n . alignable = [ ] ) ) . push ( t ) ; var i = r . wrapperWidth ; t . style . left = r . fixedPos + "px" , e . coverGutter || ( i -= r . gutterTotalWidth , t . style . paddingLeft = r . gutterTotalWidth + "px" ) , t . style . width = i + "px" } e . coverGutter && ( t . style . zIndex = 5 , t . style . position = "relative" , e . noHScroll || ( t . style . marginLeft = - r . gutterTotalWidth + "px" ) ) } function $ ( e ) { return Bo ( e . line , e . ch ) } function V ( e , t ) { return _o ( e , t ) < 0 ? t : e } function K ( e , t ) { return _o ( e , t ) < 0 ? e : t } function X ( e ) { e . state . focused || ( e . display . input . focus ( ) , vn ( e ) ) } function Z ( e , t , n , r , i ) { var o = e . doc ; e . display . shift = ! 1 , r || ( r = o . sel ) ; var a = e . state . pasteIncoming || "paste" == i , l = o . splitLines ( t ) , s = null ; if ( a && r . ranges . length > 1 ) if ( Fo && Fo . text . join ( "\n" ) == t ) { if ( r . ranges . length % Fo . text . length == 0 ) { s = [ ] ; for ( var c = 0 ; c < Fo . text . length ; c ++ ) s . push ( o . splitLines ( Fo . text [ c ] ) ) } } else l . length == r . ranges . length && ( s = Ri ( l , function ( e ) { return [ e ] } ) ) ; for ( var c = r . ranges . length - 1 ; c >= 0 ; c -- ) { var u = r . ranges [ c ] , f = u . from ( ) , h = u . to ( ) ; u . empty ( ) && ( n && n > 0 ? f = Bo ( f . line , f . ch - n ) : e . state . overwrite && ! a ? h = Bo ( h . line , Math . min ( Zr ( o , h . line ) . text . length , h . ch + Ii ( l ) . length ) ) : Fo && Fo . lineWise && Fo . text . join ( "\n" ) == t && ( f = h = Bo ( f . line , 0 ) ) ) ; var d = e . curOp . updateInput , p = { from : f , to : h , text : s ? s [ c % s . length ] : l , origin : i || ( a ? "paste" : e . state . cutIncoming ? "cut" : "+input" ) } ; Tn ( e . doc , p ) , Ci ( e , "inputRead" , e , p ) } t && ! a && Q ( e , t ) , Bn ( e ) , e . curOp . updateInput = d , e . curOp . typing = ! 0 , e . state . pasteIncoming = e . state . cutIncoming = ! 1 } function J ( e , t ) { var n = e . clipboardData && e . clipboardData . getData ( "text/plain" ) ; return n ? ( e . preventDefault ( ) , t . isReadOnly ( ) || t . options . disableInput || At ( t , function ( ) { Z ( t , n , 0 , null , "paste" ) } ) , ! 0 ) : void 0 } function Q ( e , t ) { if ( e .
Ea ( l , "blur" , Bi ( yn , e ) ) } function Ut ( t , n , r ) { var i = r && r != e . Init ; if ( ! n != ! i ) { var o = t . display . dragFunctions , a = n ? Ea : Ia ; a ( t . display . scroller , "dragstart" , o . start ) , a ( t . display . scroller , "dragenter" , o . enter ) , a ( t . display . scroller , "dragover" , o . over ) , a ( t . display . scroller , "dragleave" , o . leave ) , a ( t . display . scroller , "drop" , o . drop ) } } function qt ( e ) { var t = e . display ; t . lastWrapHeight == t . wrapper . clientHeight && t . lastWrapWidth == t . wrapper . clientWidth || ( t . cachedCharWidth = t . cachedTextHeight = t . cachedPaddingH = null , t . scrollbarsClipped = ! 1 , e . setSize ( ) ) } function Gt ( e , t ) { for ( var n = wi ( t ) ; n != e . wrapper ; n = n . parentNode ) if ( ! n || 1 == n . nodeType && "true" == n . getAttribute ( "cm-ignore-events" ) || n . parentNode == e . sizer && n != e . mover ) return ! 0 } function Yt ( e , t , n , r ) { var i = e . display ; if ( ! n && "true" == wi ( t ) . getAttribute ( "cm-not-content" ) ) return null ; var o , a , l = i . lineSpace . getBoundingClientRect ( ) ; try { o = t . clientX - l . left , a = t . clientY - l . top } catch ( t ) { return null } var s , c = gt ( e , o , a ) ; if ( r && 1 == c . xRel && ( s = Zr ( e . doc , c . line ) . text ) . length == c . ch ) { var u = Fa ( s , s . length , e . options . tabSize ) - s . length ; c = Bo ( c . line , Math . max ( 0 , Math . round ( ( o - Ge ( e . display ) . left ) / xt ( e . display ) ) - u ) ) } return c } function $t ( e ) { var t = this , n = t . display ; if ( ! ( Ti ( t , e ) || n . activeTouch && n . input . supportsTouch ( ) ) ) { if ( n . shift = e . shiftKey , Gt ( n , e ) ) return void ( wo || ( n . scroller . draggable = ! 1 , setTimeout ( function ( ) { n . scroller . draggable = ! 0 } , 100 ) ) ) ; if ( ! Jt ( t , e ) ) { var r = Yt ( t , e ) ; switch ( window . focus ( ) , ki ( e ) ) { case 1 : t . state . selectingText ? t . state . selectingText ( e ) : r ? Vt ( t , e , r ) : wi ( e ) == n . scroller && Ma ( e ) ; break ; case 2 : wo && ( t . state . lastMiddleDown = + new Date ) , r && be ( t . doc , r ) , setTimeout ( function ( ) { n . input . focus ( ) } , 20 ) , Ma ( e ) ; break ; case 3 : Do ? xn ( t , e ) : gn ( t ) } } } } function Vt ( e , t , n ) { xo ? setTimeout ( Bi ( X , e ) , 0 ) : e . curOp . focus = Gi ( ) ; var r , i = + new Date ; Uo && Uo . time > i - 400 && 0 == _o ( Uo . pos , n ) ? r = "triple" : jo && jo . time > i - 400 && 0 == _o ( jo . pos , n ) ? ( r = "double" , Uo = { time : i , pos : n } ) : ( r = "single" , jo = { time : i , pos : n } ) ; var o , a = e . doc . sel , l = Eo ? t . metaKey : t . ctrlKey ; e . options . dragDrop && el && ! e . isReadOnly ( ) && "single" == r && ( o = a . contains ( n ) ) > - 1 && ( _o ( ( o = a . ranges [ o ] ) . from ( ) , n ) < 0 || n . xRel > 0 ) && ( _o ( o . to ( ) , n ) > 0 || n . xRel < 0 ) ? Kt ( e , t , n , l ) : Xt ( e , t , n , r , l ) } function Kt ( e , t , n , r ) { var i = e . display , o = + new Date , a = Et ( e , function ( l ) { wo && ( i . scroller . draggable = ! 1 ) , e . state . draggingText = ! 1 , Ia ( document , "mouseup" , a ) , Ia ( i . scroller , "drop" , a ) , Math . abs ( t . clientX - l . clientX ) + Math . abs ( t . clientY - l . clientY ) < 10 && ( Ma ( l ) , ! r && + new Date - 200 < o && be ( e . doc , n ) , wo || xo && 9 == bo ? setTimeout ( function ( ) { document . body . focus ( ) , i . input . focus ( ) } , 20 ) : i . input . focus ( ) ) } ) ; wo && ( i . scroller . draggable = ! 0 ) , e . state . draggingText = a , i . scroller . dragDrop && i . scroller . dragDrop ( ) , Ea ( document , "mouseup" , a ) , Ea ( i . scroller , "drop" , a ) } function Xt ( e , t , n , r , i ) { function o ( t ) { if ( 0 != _o ( g , t ) ) if ( g = t , "rect" == r ) { for ( var i = [ ] , o = e . options . tabSize , a = Fa ( Zr ( c , n . line ) . text , n . ch , o ) , l = Fa ( Zr ( c , t . line ) . text , t . ch , o ) , s = Math . min ( a , l ) , d = Math . max ( a , l ) , p = Math . min ( n . line , t . line ) , m = Math . min ( e . lastLine ( ) , Math . max ( n . line , t . line ) ) ; m >= p ; p ++ ) { var v = Zr ( c , p ) . text , y = za ( v , s , o ) ; s == d ? i . push ( new fe ( Bo ( p , y ) , Bo ( p , y ) ) ) : v . length > y && i . push ( new fe ( Bo ( p , y ) , Bo ( p , za ( v , d , o ) ) ) ) } i . length || i . push ( new fe ( n , n ) ) , Te ( c , he ( h . ranges . slice ( 0 , f ) . concat ( i ) , f ) , { origin : "*mouse" , scroll : ! 1 } ) , e . scrollIntoView ( t ) } else { var x = u , b = x . anchor , w = t ; if ( "single" != r ) { if ( "double" == r ) var k = e . findWordAt ( t ) ; else var k = new fe ( Bo ( t . line , 0 ) , me ( c , Bo ( t . line + 1 , 0 ) ) ) ; _o ( k . anchor , b ) > 0 ? ( w = k . head , b = K ( x . from ( ) , k . anchor ) ) : ( w = k . anchor , b = V ( x . to ( ) , k . head ) ) } var i = h . ranges . slice ( 0 ) ; i [ f ] = new fe ( me ( c , b ) , w ) , Te ( c , he ( i , f ) , Ba ) } } function a ( t ) { var n = ++ y , i = Yt ( e , t , ! 0 , "rect" == r ) ; if ( i ) if ( 0 != _o ( i , g ) ) { e . curOp . focus = Gi ( ) , o ( i ) ; var l = b ( s , c ) ; ( i . line >= l . to || i . line < l . from ) && setTimeout ( Et ( e , function ( ) { y == n && a ( t ) } ) , 150 ) } else { var u = t . clientY < v . top ? - 20 : t . clientY > v . bottom ? 20 : 0 ; u && setTimeout ( Et ( e , function ( ) { y == n && ( s . scroller . scrollTop += u , a ( t ) ) } ) , 50 ) } } function l ( t ) { e . state . selectingText = ! 1 , y = 1 / 0 , Ma ( t ) , s . input . focus ( ) , Ia ( document , "mousemove" , x ) , Ia ( document , "mouseup" , w ) , c . history . lastSelOrigin = null } var s = e . display , c = e . doc ; Ma ( t ) ; var u , f , h = c . sel , d = h . ranges ; if ( i && ! t . shiftKey ? ( f = c . sel . contains ( n ) , u = f > - 1 ? d [ f ] : new fe ( n , n ) ) : ( u = c . sel . primary ( ) , f = c . sel . primIndex ) , Oo ? t . shiftKey && t . metaKey : t . altKey ) r = "rect" , i || ( u = new fe ( n , n ) ) , n = Yt ( e , t , ! 0 , ! 0 ) , f = - 1 ; else if ( " do
var l = t != e . display . externalMeasured && ti ( a ) ; qr ( a , r , Dr ( e , a , l ) ) , a . styleClasses && ( a . styleClasses . bgClass && ( r . bgClass = $i ( a . styleClasses . bgClass , r . bgClass || "" ) ) , a . styleClasses . textClass && ( r . textClass = $i ( a . styleClasses . textClass , r . textClass || "" ) ) ) , 0 == r . map . length && r . map . push ( 0 , 0 , r . content . appendChild ( Zi ( e . display . measure ) ) ) , 0 == i ? ( t . measure . map = r . map , t . measure . cache = { } ) : ( ( t . measure . maps || ( t . measure . maps = [ ] ) ) . push ( r . map ) , ( t . measure . caches || ( t . measure . caches = [ ] ) ) . push ( { } ) ) } if ( wo ) { var s = r . content . lastChild ; ( /\bcm-tab\b/ . test ( s . className ) || s . querySelector && s . querySelector ( ".cm-tab" ) ) && ( r . content . className = "cm-tab-wrap-hack" ) } return Pa ( e , "renderLine" , e , t . line , r . pre ) , r . pre . className && ( r . textClass = $i ( r . pre . className , r . textClass || "" ) ) , r } function _r ( e ) { var t = ji ( "span" , "•" , "cm-invalidchar" ) ; return t . title = "\\u" + e . charCodeAt ( 0 ) . toString ( 16 ) , t . setAttribute ( "aria-label" , t . title ) , t } function Fr ( e , t , n , r , i , o , a ) { if ( t ) { var l = e . splitSpaces ? t . replace ( / {3,}/g , zr ) : t , s = e . cm . state . specialChars , c = ! 1 ; if ( s . test ( t ) ) for ( var u = document . createDocumentFragment ( ) , f = 0 ; ; ) { s . lastIndex = f ; var h = s . exec ( t ) , d = h ? h . index - f : t . length - f ; if ( d ) { var p = document . createTextNode ( l . slice ( f , f + d ) ) ; xo && 9 > bo ? u . appendChild ( ji ( "span" , [ p ] ) ) : u . appendChild ( p ) , e . map . push ( e . pos , e . pos + d , p ) , e . col += d , e . pos += d } if ( ! h ) break ; if ( f += d + 1 , "\t" == h [ 0 ] ) { var m = e . cm . options . tabSize , g = m - e . col % m , p = u . appendChild ( ji ( "span" , Oi ( g ) , "cm-tab" ) ) ; p . setAttribute ( "role" , "presentation" ) , p . setAttribute ( "cm-text" , "\t" ) , e . col += g } else if ( "\r" == h [ 0 ] || "\n" == h [ 0 ] ) { var p = u . appendChild ( ji ( "span" , "\r" == h [ 0 ] ? "␍" : "" , "cm-invalidchar" ) ) ; p . setAttribute ( "cm-text" , h [ 0 ] ) , e . col += 1 } else { var p = e . cm . options . specialCharPlaceholder ( h [ 0 ] ) ; p . setAttribute ( "cm-text" , h [ 0 ] ) , xo && 9 > bo ? u . appendChild ( ji ( "span" , [ p ] ) ) : u . appendChild ( p ) , e . col += 1 } e . map . push ( e . pos , e . pos + 1 , p ) , e . pos ++ } else { e . col += t . length ; var u = document . createTextNode ( l ) ; e . map . push ( e . pos , e . pos + t . length , u ) , xo && 9 > bo && ( c = ! 0 ) , e . pos += t . length } if ( n || r || i || c || a ) { var v = n || "" ; r && ( v += r ) , i && ( v += i ) ; var y = ji ( "span" , [ u ] , v , a ) ; return o && ( y . title = o ) , e . content . appendChild ( y ) } e . content . appendChild ( u ) } } function zr ( e ) { for ( var t = " " , n = 0 ; n < e . length - 2 ; ++ n ) t += n % 2 ? " " : " " ; return t += " " } function jr ( e , t ) { return function ( n , r , i , o , a , l , s ) { i = i ? i + " cm-force-border" : "cm-force-border" ; for ( var c = n . pos , u = c + r . length ; ; ) { for ( var f = 0 ; f < t . length ; f ++ ) { var h = t [ f ] ; if ( h . to > c && h . from <= c ) break } if ( h . to >= u ) return e ( n , r , i , o , a , l , s ) ; e ( n , r . slice ( 0 , h . to - c ) , i , o , null , l , s ) , o = null , r = r . slice ( h . to - c ) , c = h . to } } } function Ur ( e , t , n , r ) { var i = ! r && n . widgetNode ; i && e . map . push ( e . pos , e . pos + t , i ) , ! r && e . cm . display . input . needsContentAttribute && ( i || ( i = e . content . appendChild ( document . createElement ( "span" ) ) ) , i . setAttribute ( "cm-marker" , n . id ) ) , i && ( e . cm . display . input . setUneditable ( i ) , e . content . appendChild ( i ) ) , e . pos += t } function qr ( e , t , n ) { var r = e . markedSpans , i = e . text , o = 0 ; if ( r ) for ( var a , l , s , c , u , f , h , d = i . length , p = 0 , m = 1 , g = "" , v = 0 ; ; ) { if ( v == p ) { s = c = u = f = l = "" , h = null , v = 1 / 0 ; for ( var y , x = [ ] , b = 0 ; b < r . length ; ++ b ) { var w = r [ b ] , k = w . marker ; "bookmark" == k . type && w . from == p && k . widgetNode ? x . push ( k ) : w . from <= p && ( null == w . to || w . to > p || k . collapsed && w . to == p && w . from == p ) ? ( null != w . to && w . to != p && v > w . to && ( v = w . to , c = "" ) , k . className && ( s += " " + k . className ) , k . css && ( l = ( l ? l + ";" : "" ) + k . css ) , k . startStyle && w . from == p && ( u += " " + k . startStyle ) , k . endStyle && w . to == v && ( y || ( y = [ ] ) ) . push ( k . endStyle , w . to ) , k . title && ! f && ( f = k . title ) , k . collapsed && ( ! h || dr ( h . marker , k ) < 0 ) && ( h = w ) ) : w . from > p && v > w . from && ( v = w . from ) } if ( y ) for ( var b = 0 ; b < y . length ; b += 2 ) y [ b + 1 ] == v && ( c += " " + y [ b ] ) ; if ( ! h || h . from == p ) for ( var b = 0 ; b < x . length ; ++ b ) Ur ( t , 0 , x [ b ] ) ; if ( h && ( h . from || 0 ) == p ) { if ( Ur ( t , ( null == h . to ? d + 1 : h . to ) - p , h . marker , null == h . from ) , null == h . to ) return ; h . to == p && ( h = ! 1 ) } } if ( p >= d ) break ; for ( var S = Math . min ( d , v ) ; ; ) { if ( g ) { var C = p + g . length ; if ( ! h ) { var L = C > S ? g . slice ( 0 , S - p ) : g ; t . addToken ( t , L , a ? a + s : s , u , p + L . length == v ? c : "" , f , l ) } if ( C >= S ) { g = g . slice ( S - p ) , p = S ; break } p = C , u = "" } g = i . slice ( o , o = n [ m ++ ] ) , a = Wr ( n [ m ++ ] , t . cm . options ) } } else for ( var m = 1 ; m < n . length ; m += 2 ) t . addToken ( t , i . slice ( o , o = n [ m ] ) , Wr ( n [ m + 1 ] , t . cm . options ) ) } function Gr ( e , t ) { return 0 == t . from . ch && 0 == t . to . ch && "" == Ii ( t . text ) && ( ! e . cm || e . cm . options . wholeLineUpdateBefore ) } function Yr ( e , t , n , r ) { function i ( e ) { return n ? n [ e ] : null } function o ( e , n , i ) { Mr ( e , n , i , r )
} , getDoc : function ( ) { return this . doc } , addKeyMap : function ( e , t ) { this . state . keyMaps [ t ? "push" : "unshift" ] ( $n ( e ) ) } , removeKeyMap : function ( e ) { for ( var t = this . state . keyMaps , n = 0 ; n < t . length ; ++ n ) if ( t [ n ] == e || t [ n ] . name == e ) return t . splice ( n , 1 ) , ! 0 } , addOverlay : Ot ( function ( t , n ) { var r = t . token ? t : e . getMode ( this . options , t ) ; if ( r . startState ) throw new Error ( "Overlays may not be stateful." ) ; this . state . overlays . push ( { mode : r , modeSpec : t , opaque : n && n . opaque } ) , this . state . modeGen ++ , Dt ( this ) } ) , removeOverlay : Ot ( function ( e ) { for ( var t = this . state . overlays , n = 0 ; n < t . length ; ++ n ) { var r = t [ n ] . modeSpec ; if ( r == e || "string" == typeof e && r . name == e ) return t . splice ( n , 1 ) , this . state . modeGen ++ , void Dt ( this ) } } ) , indentLine : Ot ( function ( e , t , n ) { "string" != typeof t && "number" != typeof t && ( t = null == t ? this . options . smartIndent ? "smart" : "prev" : t ? "add" : "subtract" ) , ve ( this . doc , e ) && Fn ( this , e , t , n ) } ) , indentSelection : Ot ( function ( e ) { for ( var t = this . doc . sel . ranges , n = - 1 , r = 0 ; r < t . length ; r ++ ) { var i = t [ r ] ; if ( i . empty ( ) ) i . head . line > n && ( Fn ( this , i . head . line , e , ! 0 ) , n = i . head . line , r == this . doc . sel . primIndex && Bn ( this ) ) ; else { var o = i . from ( ) , a = i . to ( ) , l = Math . max ( n , o . line ) ; n = Math . min ( this . lastLine ( ) , a . line - ( a . ch ? 0 : 1 ) ) + 1 ; for ( var s = l ; n > s ; ++ s ) Fn ( this , s , e ) ; var c = this . doc . sel . ranges ; 0 == o . ch && t . length == c . length && c [ r ] . from ( ) . ch > 0 && ke ( this . doc , r , new fe ( o , c [ r ] . to ( ) ) , Wa ) } } } ) , getTokenAt : function ( e , t ) { return Ir ( this , e , t ) } , getLineTokens : function ( e , t ) { return Ir ( this , Bo ( e ) , t , ! 0 ) } , getTokenTypeAt : function ( e ) { e = me ( this . doc , e ) ; var t , n = Dr ( this , Zr ( this . doc , e . line ) ) , r = 0 , i = ( n . length - 1 ) / 2 , o = e . ch ; if ( 0 == o ) t = n [ 2 ] ; else for ( ; ; ) { var a = r + i >> 1 ; if ( ( a ? n [ 2 * a - 1 ] : 0 ) >= o ) i = a ; else { if ( ! ( n [ 2 * a + 1 ] < o ) ) { t = n [ 2 * a + 2 ] ; break } r = a + 1 } } var l = t ? t . indexOf ( "cm-overlay " ) : - 1 ; return 0 > l ? t : 0 == l ? null : t . slice ( 0 , l - 1 ) } , getModeAt : function ( t ) { var n = this . doc . mode ; return n . innerMode ? e . innerMode ( n , this . getTokenAt ( t ) . state ) . mode : n } , getHelper : function ( e , t ) { return this . getHelpers ( e , t ) [ 0 ] } , getHelpers : function ( e , t ) { var n = [ ] ; if ( ! la . hasOwnProperty ( t ) ) return n ; var r = la [ t ] , i = this . getModeAt ( e ) ; if ( "string" == typeof i [ t ] ) r [ i [ t ] ] && n . push ( r [ i [ t ] ] ) ; else if ( i [ t ] ) for ( var o = 0 ; o < i [ t ] . length ; o ++ ) { var a = r [ i [ t ] [ o ] ] ; a && n . push ( a ) } else i . helperType && r [ i . helperType ] ? n . push ( r [ i . helperType ] ) : r [ i . name ] && n . push ( r [ i . name ] ) ; for ( var o = 0 ; o < r . _global . length ; o ++ ) { var l = r . _global [ o ] ; l . pred ( i , this ) && - 1 == Pi ( n , l . val ) && n . push ( l . val ) } return n } , getStateAfter : function ( e , t ) { var n = this . doc ; return e = pe ( n , null == e ? n . first + n . size - 1 : e ) , je ( this , e + 1 , t ) } , cursorCoords : function ( e , t ) { var n , r = this . doc . sel . primary ( ) ; return n = null == e ? r . head : "object" == typeof e ? me ( this . doc , e ) : e ? r . from ( ) : r . to ( ) , dt ( this , n , t || "page" ) } , charCoords : function ( e , t ) { return ht ( this , me ( this . doc , e ) , t || "page" ) } , coordsChar : function ( e , t ) { return e = ft ( this , e , t || "page" ) , gt ( this , e . left , e . top ) } , lineAtHeight : function ( e , t ) { return e = ft ( this , { top : e , left : 0 } , t || "page" ) . top , ni ( this . doc , e + this . display . viewOffset ) } , heightAtLine : function ( e , t ) { var n , r = ! 1 ; if ( "number" == typeof e ) { var i = this . doc . first + this . doc . size - 1 ; e < this . doc . first ? e = this . doc . first : e > i && ( e = i , r = ! 0 ) , n = Zr ( this . doc , e ) } else n = e ; return ut ( this , n , { top : 0 , left : 0 } , t || "page" ) . top + ( r ? this . doc . height - ri ( n ) : 0 ) } , defaultTextHeight : function ( ) { return yt ( this . display ) } , defaultCharWidth : function ( ) { return xt ( this . display ) } , setGutterMarker : Ot ( function ( e , t , n ) { return zn ( this . doc , e , "gutter" , function ( e ) { var r = e . gutterMarkers || ( e . gutterMarkers = { } ) ; return r [ t ] = n , ! n && Fi ( r ) && ( e . gutterMarkers = null ) , ! 0 } ) } ) , clearGutter : Ot ( function ( e ) { var t = this , n = t . doc , r = n . first ; n . iter ( function ( n ) { n . gutterMarkers && n . gutterMarkers [ e ] && ( n . gutterMarkers [ e ] = null , Ht ( t , r , "gutter" ) , Fi ( n . gutterMarkers ) && ( n . gutterMarkers = null ) ) , ++ r } ) } ) , lineInfo : function ( e ) { if ( "number" == typeof e ) { if ( ! ve ( this . doc , e ) ) return null ; var t = e ; if ( e = Zr ( this . doc , e ) , ! e ) return null } else { var t = ti ( e ) ; if ( null == t ) return null } return { line : t , handle : e , text : e . text , gutterMarkers : e . gutterMarkers , textClass : e . textClass , bgClass : e . bgClass , wrapClass : e . wrapClass , widgets : e . widgets } } , getViewport : function ( ) { return { from : this . display . viewFrom , to : this . display . viewTo } } , addWidget : function ( e , t , n , r , i ) { var o = this . display ; e = dt ( this , me ( this . doc , e ) ) ; var a = e . bottom , l = e . left ; if ( t . style . position = "absolute" , t . setAttribute ( "cm-ignore-events" , "true" ) , this . disp
} , getSelections : function ( e ) { for ( var t = [ ] , n = this . sel . ranges , r = 0 ; r < n . length ; r ++ ) { var i = Jr ( this , n [ r ] . from ( ) , n [ r ] . to ( ) ) ; e !== ! 1 && ( i = i . join ( e || this . lineSeparator ( ) ) ) , t [ r ] = i } return t } , replaceSelection : function ( e , t , n ) { for ( var r = [ ] , i = 0 ; i < this . sel . ranges . length ; i ++ ) r [ i ] = e ; this . replaceSelections ( r , t , n || "+input" ) } , replaceSelections : It ( function ( e , t , n ) { for ( var r = [ ] , i = this . sel , o = 0 ; o < i . ranges . length ; o ++ ) { var a = i . ranges [ o ] ; r [ o ] = { from : a . from ( ) , to : a . to ( ) , text : this . splitLines ( e [ o ] ) , origin : n } } for ( var l = t && "end" != t && Cn ( this , r , t ) , o = r . length - 1 ; o >= 0 ; o -- ) Tn ( this , r [ o ] ) ; l ? Le ( this , l ) : this . cm && Bn ( this . cm ) } ) , undo : It ( function ( ) { Nn ( this , "undo" ) } ) , redo : It ( function ( ) { Nn ( this , "redo" ) } ) , undoSelection : It ( function ( ) { Nn ( this , "undo" , ! 0 ) } ) , redoSelection : It ( function ( ) { Nn ( this , "redo" , ! 0 ) } ) , setExtending : function ( e ) { this . extend = e } , getExtending : function ( ) { return this . extend } , historySize : function ( ) { for ( var e = this . history , t = 0 , n = 0 , r = 0 ; r < e . done . length ; r ++ ) e . done [ r ] . ranges || ++ t ; for ( var r = 0 ; r < e . undone . length ; r ++ ) e . undone [ r ] . ranges || ++ n ; return { undo : t , redo : n } } , clearHistory : function ( ) { this . history = new oi ( this . history . maxGeneration ) } , markClean : function ( ) { this . cleanGeneration = this . changeGeneration ( ! 0 ) } , changeGeneration : function ( e ) { return e && ( this . history . lastOp = this . history . lastSelOp = this . history . lastOrigin = null ) , this . history . generation } , isClean : function ( e ) { return this . history . generation == ( e || this . cleanGeneration ) } , getHistory : function ( ) { return { done : gi ( this . history . done ) , undone : gi ( this . history . undone ) } } , setHistory : function ( e ) { var t = this . history = new oi ( this . history . maxGeneration ) ; t . done = gi ( e . done . slice ( 0 ) , null , ! 0 ) , t . undone = gi ( e . undone . slice ( 0 ) , null , ! 0 ) } , addLineClass : It ( function ( e , t , n ) { return zn ( this , e , "gutter" == t ? "gutter" : "class" , function ( e ) { var r = "text" == t ? "textClass" : "background" == t ? "bgClass" : "gutter" == t ? "gutterClass" : "wrapClass" ; if ( e [ r ] ) { if ( Yi ( n ) . test ( e [ r ] ) ) return ! 1 ; e [ r ] += " " + n } else e [ r ] = n ; return ! 0 } ) } ) , removeLineClass : It ( function ( e , t , n ) { return zn ( this , e , "gutter" == t ? "gutter" : "class" , function ( e ) { var r = "text" == t ? "textClass" : "background" == t ? "bgClass" : "gutter" == t ? "gutterClass" : "wrapClass" , i = e [ r ] ; if ( ! i ) return ! 1 ; if ( null == n ) e [ r ] = null ; else { var o = i . match ( Yi ( n ) ) ; if ( ! o ) return ! 1 ; var a = o . index + o [ 0 ] . length ; e [ r ] = i . slice ( 0 , o . index ) + ( o . index && a != i . length ? " " : "" ) + i . slice ( a ) || null } return ! 0 } ) } ) , addLineWidget : It ( function ( e , t , n ) { return Tr ( this , e , t , n ) } ) , removeLineWidget : function ( e ) { e . clear ( ) } , markText : function ( e , t , n ) { return Vn ( this , me ( this , e ) , me ( this , t ) , n , n && n . type || "range" ) } , setBookmark : function ( e , t ) { var n = { replacedWith : t && ( null == t . nodeType ? t . widget : t ) , insertLeft : t && t . insertLeft , clearWhenEmpty : ! 1 , shared : t && t . shared , handleMouseEvents : t && t . handleMouseEvents } ; return e = me ( this , e ) , Vn ( this , e , e , n , "bookmark" ) } , findMarksAt : function ( e ) { e = me ( this , e ) ; var t = [ ] , n = Zr ( this , e . line ) . markedSpans ; if ( n ) for ( var r = 0 ; r < n . length ; ++ r ) { var i = n [ r ] ; ( null == i . from || i . from <= e . ch ) && ( null == i . to || i . to >= e . ch ) && t . push ( i . marker . parent || i . marker ) } return t } , findMarks : function ( e , t , n ) { e = me ( this , e ) , t = me ( this , t ) ; var r = [ ] , i = e . line ; return this . iter ( e . line , t . line + 1 , function ( o ) { var a = o . markedSpans ; if ( a ) for ( var l = 0 ; l < a . length ; l ++ ) { var s = a [ l ] ; null != s . to && i == e . line && e . ch >= s . to || null == s . from && i != e . line || null != s . from && i == t . line && s . from >= t . ch || n && ! n ( s . marker ) || r . push ( s . marker . parent || s . marker ) } ++ i } ) , r } , getAllMarks : function ( ) { var e = [ ] ; return this . iter ( function ( t ) { var n = t . markedSpans ; if ( n ) for ( var r = 0 ; r < n . length ; ++ r ) null != n [ r ] . from && e . push ( n [ r ] . marker ) } ) , e } , posFromIndex : function ( e ) { var t , n = this . first , r = this . lineSeparator ( ) . length ; return this . iter ( function ( i ) { var o = i . text . length + r ; return o > e ? ( t = e , ! 0 ) : ( e -= o , void ++ n ) } ) , me ( this , Bo ( n , t ) ) } , indexFromPos : function ( e ) { e = me ( this , e ) ; var t = e . ch ; if ( e . line < this . first || e . ch < 0 ) return 0 ; var n = this . lineSeparator ( ) . length ; return this . iter ( this . first , e . line , function ( e ) { t += e . text . length + n } ) , t } , copy : function ( e ) { var t = new Ca ( Qr ( this , this . first , this . first + this . size ) , this . modeOption , this . first , this . lineSep ) ; return t . scrollTop = this . scrollTop , t . scrollLeft = this . scrollLeft , t . sel = this . sel , t . extend = ! 1 , e && ( t . history . undoDepth = this . history . undoDepth , t . setHistory ( this . getHistory ( ) ) ) , t } , linkedDoc : function ( e ) { e || ( e = { } ) ; var t = this . first , n = th
mode : "javascript" , ext : [ "js" ] , alias : [ "ecmascript" , "js" , "node" ] } , { name : "JSON" , mimes : [ "application/json" , "application/x-json" ] , mode : "javascript" , ext : [ "json" , "map" ] , alias : [ "json5" ] } , { name : "JSON-LD" , mime : "application/ld+json" , mode : "javascript" , ext : [ "jsonld" ] , alias : [ "jsonld" ] } , { name : "JSX" , mime : "text/jsx" , mode : "jsx" , ext : [ "jsx" ] } , { name : "Jinja2" , mime : "null" , mode : "jinja2" } , { name : "Julia" , mime : "text/x-julia" , mode : "julia" , ext : [ "jl" ] } , { name : "Kotlin" , mime : "text/x-kotlin" , mode : "clike" , ext : [ "kt" ] } , { name : "LESS" , mime : "text/x-less" , mode : "css" , ext : [ "less" ] } , { name : "LiveScript" , mime : "text/x-livescript" , mode : "livescript" , ext : [ "ls" ] , alias : [ "ls" ] } , { name : "Lua" , mime : "text/x-lua" , mode : "lua" , ext : [ "lua" ] } , { name : "Markdown" , mime : "text/x-markdown" , mode : "markdown" , ext : [ "markdown" , "md" , "mkd" ] } , { name : "mIRC" , mime : "text/mirc" , mode : "mirc" } , { name : "MariaDB SQL" , mime : "text/x-mariadb" , mode : "sql" } , { name : "Mathematica" , mime : "text/x-mathematica" , mode : "mathematica" , ext : [ "m" , "nb" ] } , { name : "Modelica" , mime : "text/x-modelica" , mode : "modelica" , ext : [ "mo" ] } , { name : "MUMPS" , mime : "text/x-mumps" , mode : "mumps" , ext : [ "mps" ] } , { name : "MS SQL" , mime : "text/x-mssql" , mode : "sql" } , { name : "mbox" , mime : "application/mbox" , mode : "mbox" , ext : [ "mbox" ] } , { name : "MySQL" , mime : "text/x-mysql" , mode : "sql" } , { name : "Nginx" , mime : "text/x-nginx-conf" , mode : "nginx" , file : /nginx.*\.conf$/i } , { name : "NSIS" , mime : "text/x-nsis" , mode : "nsis" , ext : [ "nsh" , "nsi" ] } , { name : "NTriples" , mime : "text/n-triples" , mode : "ntriples" , ext : [ "nt" ] } , { name : "Objective C" , mime : "text/x-objectivec" , mode : "clike" , ext : [ "m" , "mm" ] , alias : [ "objective-c" , "objc" ] } , { name : "OCaml" , mime : "text/x-ocaml" , mode : "mllike" , ext : [ "ml" , "mli" , "mll" , "mly" ] } , { name : "Octave" , mime : "text/x-octave" , mode : "octave" , ext : [ "m" ] } , { name : "Oz" , mime : "text/x-oz" , mode : "oz" , ext : [ "oz" ] } , { name : "Pascal" , mime : "text/x-pascal" , mode : "pascal" , ext : [ "p" , "pas" ] } , { name : "PEG.js" , mime : "null" , mode : "pegjs" , ext : [ "jsonld" ] } , { name : "Perl" , mime : "text/x-perl" , mode : "perl" , ext : [ "pl" , "pm" ] } , { name : "PHP" , mime : "application/x-httpd-php" , mode : "php" , ext : [ "php" , "php3" , "php4" , "php5" , "phtml" ] } , { name : "Pig" , mime : "text/x-pig" , mode : "pig" , ext : [ "pig" ] } , { name : "Plain Text" , mime : "text/plain" , mode : "null" , ext : [ "txt" , "text" , "conf" , "def" , "list" , "log" ] } , { name : "PLSQL" , mime : "text/x-plsql" , mode : "sql" , ext : [ "pls" ] } , { name : "PowerShell" , mime : "application/x-powershell" , mode : "powershell" , ext : [ "ps1" , "psd1" , "psm1" ] } , { name : "Properties files" , mime : "text/x-properties" , mode : "properties" , ext : [ "properties" , "ini" , "in" ] , alias : [ "ini" , "properties" ] } , { name : "ProtoBuf" , mime : "text/x-protobuf" , mode : "protobuf" , ext : [ "proto" ] } , { name : "Python" , mime : "text/x-python" , mode : "python" , ext : [ "BUILD" , "bzl" , "py" , "pyw" ] , file : /^(BUCK|BUILD)$/ } , { name : "Puppet" , mime : "text/x-puppet" , mode : "puppet" , ext : [ "pp" ] } , { name : "Q" , mime : "text/x-q" , mode : "q" , ext : [ "q" ] } , { name : "R" , mime : "text/x-rsrc" , mode : "r" , ext : [ "r" ] , alias : [ "rscript" ] } , { name : "reStructuredText" , mime : "text/x-rst" , mode : "rst" , ext : [ "rst" ] , alias : [ "rst" ] } , { name : "RPM Changes" , mime : "text/x-rpm-changes" , mode : "rpm" } , { name : "RPM Spec" , mime : "text/x-rpm-spec" , mode : "rpm" , ext : [ "spec" ] } , { name : "Ruby" , mime : "text/x-ruby" , mode : "ruby" , ext : [ "rb" ] , alias : [ "jruby" , "macruby" , "rake" , "rb" , "rbx" ] } , { name : "Rust" , mime : "text/x-rustsrc" , mode : "rust" , ext : [ "rs" ] } , { name : "SAS" , mime : "text/x-sas" , mode : "sas" , ext : [ "sas" ] } , { name : "Sass" , mime : "text/x-sass" , mode : "sass" , ext : [ "sass" ] } , { name : "Scala" , mime : "text/x-scala" , mode : "clike" , ext : [ "scala" ] } , { name : "Scheme" , mime : "text/x-scheme" , mode : "scheme" , ext : [ "scm" , "ss" ] } , { name : "SCSS" , mime : "text/x-scss" , mode : "css" , ext : [ "scss" ] } , { name : "Shell" , mime : "text/x-sh" , mode : "shell" , ext : [ "sh" , "ksh" , "bash" ] , alias : [ "bash" , "sh" , "zsh" ] , file : /^PKGBUILD$/ } , { name : "Sieve" , mime : "application/sieve" , mode : "sieve" , ext : [ "siv" , "sieve" ] } , { name : "Slim" , mimes : [ "text/x-slim" , "application/x-slim" ] , mode : "slim" , ext : [ "slim" ] } , { name : "Smalltalk" , mime : "text/x-stsrc" , mode : "smalltalk" , ext : [ "st" ] } , { name : "Smarty" , mime : "text/x-smarty" , mode : "smarty" , ext : [ "tpl" ] } , { name : "Solr" , mime : "text/x-solr" , mode : "solr" } , { name : "Soy" , mime : "text/x-soy" , mode : "soy" , ext : [ "soy" ] , alias : [ "closure template" ] } , { name : "SPARQL" , mime : "application/sparql-query" , mode : "sparql" , ext : [ "rq" , "sparql" ] , alias : [ "sparul" ] } , { name : "Spreadsheet" , mi
return console . log ( c ) , "" } } } , _parseAFF : function ( e ) { var t = { } ; e = this . _removeAffixComments ( e ) ; for ( var n = e . split ( "\n" ) , r = 0 , i = n . length ; i > r ; r ++ ) { var o = n [ r ] , a = o . split ( /\s+/ ) , l = a [ 0 ] ; if ( "PFX" == l || "SFX" == l ) { for ( var s = a [ 1 ] , c = a [ 2 ] , u = parseInt ( a [ 3 ] , 10 ) , f = [ ] , h = r + 1 , d = r + 1 + u ; d > h ; h ++ ) { var o = n [ h ] , p = o . split ( /\s+/ ) , m = p [ 2 ] , g = p [ 3 ] . split ( "/" ) , v = g [ 0 ] ; "0" === v && ( v = "" ) ; var y = this . parseRuleCodes ( g [ 1 ] ) , x = p [ 4 ] , b = { } ; b . add = v , y . length > 0 && ( b . continuationClasses = y ) , "." !== x && ( "SFX" === l ? b . match = new RegExp ( x + "$" ) : b . match = new RegExp ( "^" + x ) ) , "0" != m && ( "SFX" === l ? b . remove = new RegExp ( m + "$" ) : b . remove = m ) , f . push ( b ) } t [ s ] = { type : l , combineable : "Y" == c , entries : f } , r += u } else if ( "COMPOUNDRULE" === l ) { for ( var u = parseInt ( a [ 1 ] , 10 ) , h = r + 1 , d = r + 1 + u ; d > h ; h ++ ) { var o = n [ h ] , p = o . split ( /\s+/ ) ; this . compoundRules . push ( p [ 1 ] ) } r += u } else if ( "REP" === l ) { var p = o . split ( /\s+/ ) ; 3 === p . length && this . replacementTable . push ( [ p [ 1 ] , p [ 2 ] ] ) } else this . flags [ l ] = a [ 1 ] } return t } , _removeAffixComments : function ( e ) { return e = e . replace ( /#.*$/gm , "" ) , e = e . replace ( /^\s\s*/m , "" ) . replace ( /\s\s*$/m , "" ) , e = e . replace ( /\n{2,}/g , "\n" ) , e = e . replace ( /^\s\s*/ , "" ) . replace ( /\s\s*$/ , "" ) } , _parseDIC : function ( e ) { function t ( e , t ) { e in r && "object" == typeof r [ e ] || ( r [ e ] = [ ] ) , r [ e ] . push ( t ) } e = this . _removeDicComments ( e ) ; for ( var n = e . split ( "\n" ) , r = { } , i = 1 , o = n . length ; o > i ; i ++ ) { var a = n [ i ] , l = a . split ( "/" , 2 ) , s = l [ 0 ] ; if ( l . length > 1 ) { var c = this . parseRuleCodes ( l [ 1 ] ) ; "NEEDAFFIX" in this . flags && - 1 != c . indexOf ( this . flags . NEEDAFFIX ) || t ( s , c ) ; for ( var u = 0 , f = c . length ; f > u ; u ++ ) { var h = c [ u ] , d = this . rules [ h ] ; if ( d ) for ( var p = this . _applyRule ( s , d ) , m = 0 , g = p . length ; g > m ; m ++ ) { var v = p [ m ] ; if ( t ( v , [ ] ) , d . combineable ) for ( var y = u + 1 ; f > y ; y ++ ) { var x = c [ y ] , b = this . rules [ x ] ; if ( b && b . combineable && d . type != b . type ) for ( var w = this . _applyRule ( v , b ) , k = 0 , S = w . length ; S > k ; k ++ ) { var C = w [ k ] ; t ( C , [ ] ) } } } h in this . compoundRuleCodes && this . compoundRuleCodes [ h ] . push ( s ) } } else t ( s . trim ( ) , [ ] ) } return r } , _removeDicComments : function ( e ) { return e = e . replace ( /^\t.*$/gm , "" ) } , parseRuleCodes : function ( e ) { if ( ! e ) return [ ] ; if ( ! ( "FLAG" in this . flags ) ) return e . split ( "" ) ; if ( "long" === this . flags . FLAG ) { for ( var t = [ ] , n = 0 , r = e . length ; r > n ; n += 2 ) t . push ( e . substr ( n , 2 ) ) ; return t } return "num" === this . flags . FLAG ? textCode . split ( "," ) : void 0 } , _applyRule : function ( e , t ) { for ( var n = t . entries , r = [ ] , i = 0 , o = n . length ; o > i ; i ++ ) { var a = n [ i ] ; if ( ! a . match || e . match ( a . match ) ) { var l = e ; if ( a . remove && ( l = l . replace ( a . remove , "" ) ) , "SFX" === t . type ? l += a . add : l = a . add + l , r . push ( l ) , "continuationClasses" in a ) for ( var s = 0 , c = a . continuationClasses . length ; c > s ; s ++ ) { var u = this . rules [ a . continuationClasses [ s ] ] ; u && ( r = r . concat ( this . _applyRule ( l , u ) ) ) } } } return r } , check : function ( e ) { var t = e . replace ( /^\s\s*/ , "" ) . replace ( /\s\s*$/ , "" ) ; if ( this . checkExact ( t ) ) return ! 0 ; if ( t . toUpperCase ( ) === t ) { var n = t [ 0 ] + t . substring ( 1 ) . toLowerCase ( ) ; if ( this . hasFlag ( n , "KEEPCASE" ) ) return ! 1 ; if ( this . checkExact ( n ) ) return ! 0 } var r = t . toLowerCase ( ) ; if ( r !== t ) { if ( this . hasFlag ( r , "KEEPCASE" ) ) return ! 1 ; if ( this . checkExact ( r ) ) return ! 0 } return ! 1 } , checkExact : function ( e ) { var t = this . dictionaryTable [ e ] ; if ( "undefined" == typeof t ) { if ( "COMPOUNDMIN" in this . flags && e . length >= this . flags . COMPOUNDMIN ) for ( var n = 0 , r = this . compoundRules . length ; r > n ; n ++ ) if ( e . match ( this . compoundRules [ n ] ) ) return ! 0 ; return ! 1 } if ( "object" == typeof t ) { for ( var n = 0 , r = t . length ; r > n ; n ++ ) if ( ! this . hasFlag ( e , "ONLYINCOMPOUND" , t [ n ] ) ) return ! 0 ; return ! 1 } } , hasFlag : function ( e , t , n ) { if ( t in this . flags ) { if ( "undefined" == typeof n ) var n = Array . prototype . concat . apply ( [ ] , this . dictionaryTable [ e ] ) ; if ( n && - 1 !== n . indexOf ( this . flags [ t ] ) ) return ! 0 } return ! 1 } , alphabet : "" , suggest : function ( e , t ) { function n ( e ) { for ( var t = [ ] , n = 0 , r = e . length ; r > n ; n ++ ) { for ( var i = e [ n ] , o = [ ] , a = 0 , l = i . length + 1 ; l > a ; a ++ ) o . push ( [ i . substring ( 0 , a ) , i . substring ( a , i . length ) ] ) ; for ( var s = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; u [ 1 ] && s . push ( u [ 0 ] + u [ 1 ] . substring ( 1 ) ) } for ( var f = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; u [ 1 ] . length > 1 && f . push ( u [ 0 ] + u [ 1 ] [ 1 ] + u [ 1 ] [ 0 ] + u [ 1 ] . substring ( 2 ) ) } for ( var h = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; if ( u [ 1 ] ) for ( var d = 0 , p = c . alphabet . length ; p > d ; d ++ ) h . push ( u [ 0 ] + c . alphabet [ d ] + u [ 1 ] . substring ( 1 ) ) } for ( var m = [ ] , a = 0 , l = o . length ; l > a ; a ++ ) { var u = o [ a ] ; if ( u [ 1 ] ) for ( var d = 0 , p = c . alphabet . length ; p > d ; d ++ ) h . push ( u [ 0 ] + c . alphabet [ d ] + u [ 1 ] ) } t = t . concat ( s ) , t = t . concat ( f ) , t = t . concat ( h ) , t = t . concat ( m ) }
w ( this ) } , B . prototype . drawLink = function ( ) { k ( this ) } , B . prototype . drawImage = function ( ) { S ( this ) } , B . prototype . drawTable = function ( ) { C ( this ) } , B . prototype . drawHorizontalRule = function ( ) { L ( this ) } , B . prototype . undo = function ( ) { T ( this ) } , B . prototype . redo = function ( ) { M ( this ) } , B . prototype . togglePreview = function ( ) { A ( this ) } , B . prototype . toggleSideBySide = function ( ) { N ( this ) } , B . prototype . toggleFullScreen = function ( ) { s ( this ) } , B . prototype . isPreviewActive = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) , n = t . lastChild ; return /editor-preview-active/ . test ( n . className ) } , B . prototype . isSideBySideActive = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) , n = t . nextSibling ; return /editor-preview-active-side/ . test ( n . className ) } , B . prototype . isFullscreenActive = function ( ) { var e = this . codemirror ; return e . getOption ( "fullScreen" ) } , B . prototype . getState = function ( ) { var e = this . codemirror ; return l ( e ) } , B . prototype . toTextArea = function ( ) { var e = this . codemirror , t = e . getWrapperElement ( ) ; t . parentNode && ( this . gui . toolbar && t . parentNode . removeChild ( this . gui . toolbar ) , this . gui . statusbar && t . parentNode . removeChild ( this . gui . statusbar ) , this . gui . sideBySide && t . parentNode . removeChild ( this . gui . sideBySide ) ) , e . toTextArea ( ) , this . autosaveTimeoutId && ( clearTimeout ( this . autosaveTimeoutId ) , this . autosaveTimeoutId = void 0 , this . clearAutosavedValue ( ) ) } , t . exports = B } , { "./codemirror/tablist" : 19 , codemirror : 10 , "codemirror-spell-checker" : 4 , "codemirror/addon/display/fullscreen.js" : 5 , "codemirror/addon/display/placeholder.js" : 6 , "codemirror/addon/edit/continuelist.js" : 7 , "codemirror/addon/mode/overlay.js" : 8 , "codemirror/addon/selection/mark-selection.js" : 9 , "codemirror/mode/gfm/gfm.js" : 11 , "codemirror/mode/markdown/markdown.js" : 12 , "codemirror/mode/xml/xml.js" : 14 , marked : 17 } ] } , { } , [ 20 ] ) ( 20 ) } ) , function ( ) { function o ( n ) { var i = e ; n && ( e [ n ] || ( e [ n ] = { } ) , i = e [ n ] ) , i . define && i . define . packaged || ( t . original = i . define , i . define = t , i . define . packaged = ! 0 ) , i . require && i . require . packaged || ( r . original = i . require , i . require = r , i . require . packaged = ! 0 ) } var ACE _NAMESPACE = "ace" , e = function ( ) { return this } ( ) ; if ( ! e && "undefined" != typeof window && ( e = window ) , ACE _NAMESPACE || "undefined" == typeof requirejs ) { var t = function ( e , n , r ) { return "string" != typeof e ? void ( t . original ? t . original . apply ( this , arguments ) : ( console . error ( "dropping module because define wasn't a string." ) , console . trace ( ) ) ) : ( 2 == arguments . length && ( r = n ) , void ( t . modules [ e ] || ( t . payloads [ e ] = r , t . modules [ e ] = null ) ) ) } ; t . modules = { } , t . payloads = { } ; var n = function ( e , t , n ) { if ( "string" == typeof t ) { var i = s ( e , t ) ; if ( void 0 != i ) return n && n ( ) , i } else if ( "[object Array]" === Object . prototype . toString . call ( t ) ) { for ( var o = [ ] , u = 0 , a = t . length ; u < a ; ++ u ) { var f = s ( e , t [ u ] ) ; if ( void 0 == f && r . original ) return ; o . push ( f ) } return n && n . apply ( null , o ) || ! 0 } } , r = function ( e , t ) { var i = n ( "" , e , t ) ; return void 0 == i && r . original ? r . original . apply ( this , arguments ) : i } , i = function ( e , t ) { if ( t . indexOf ( "!" ) !== - 1 ) { var n = t . split ( "!" ) ; return i ( e , n [ 0 ] ) + "!" + i ( e , n [ 1 ] ) } if ( "." == t . charAt ( 0 ) ) { var r = e . split ( "/" ) . slice ( 0 , - 1 ) . join ( "/" ) ; for ( t = r + "/" + t ; t . indexOf ( "." ) !== - 1 && s != t ; ) { var s = t ; t = t . replace ( /\/\.\// , "/" ) . replace ( /[^\/]+\/\.\.\// , "" ) } } return t } , s = function ( e , r ) { r = i ( e , r ) ; var s = t . modules [ r ] ; if ( ! s ) { if ( s = t . payloads [ r ] , "function" == typeof s ) { var o = { } , u = { id : r , uri : "" , exports : o , packaged : ! 0 } , a = function ( e , t ) { return n ( r , e , t ) } , f = s ( a , o , u ) ; o = f || u . exports , t . modules [ r ] = o , delete t . payloads [ r ] } s = t . modules [ r ] = o || s } return s } ; o ( ACE _NAMESPACE ) } } ( ) , ace . define ( "ace/lib/regexp" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; function o ( e ) { return ( e . global ? "g" : "" ) + ( e . ignoreCase ? "i" : "" ) + ( e . multiline ? "m" : "" ) + ( e . extended ? "x" : "" ) + ( e . sticky ? "y" : "" ) } function u ( e , t , n ) { if ( Array . prototype . indexOf ) return e . indexOf ( t , n ) ; for ( var r = n || 0 ; r < e . length ; r ++ ) if ( e [ r ] === t ) return r ; return - 1 } var r = { exec : RegExp . prototype . exec , test : RegExp . prototype . test , match : String . prototype . match , replace : String . prototype . replace , split : String . prototype . split } , i = void 0 === r . exec . call ( /()??/ , "" ) [ 1 ] , s = function ( ) { var e = /^/g ; return r . test . call ( e , "" ) , ! e . lastIndex } ( ) ; s && i || ( RegExp . prototype . exec = function ( e ) { var n , a , t = r . exec . apply ( this , arguments ) ; if ( "string" == typeof e && t ) { if ( ! i && t . length > 1 && u ( t , "" ) > - 1 && ( a = RegExp ( this . source , r . replace . call ( o ( this
h || ( e == r . lastValue ? w ( ) : ! r . lastValue && e && ( w ( ) , A ( e ) ) ) } ) ; k = function ( n ) { return i && clearTimeout ( i ) , n = n . replace ( /\x01/g , "" ) , n == r . lastValue ? "" : ( r . lastValue && i && t . undo ( ) , n ) } , t . onCompositionEnd ( ) , t . removeListener ( "mousedown" , F ) , "compositionend" == e . type && r . range && t . selection . setRange ( r . range ) } } , I = o . delayedCall ( j , 50 ) ; r . addListener ( n , "compositionstart" , B ) , i . isGecko ? r . addListener ( n , "text" , function ( ) { I . schedule ( ) } ) : ( r . addListener ( n , "keyup" , function ( ) { I . schedule ( ) } ) , r . addListener ( n , "keydown" , function ( ) { I . schedule ( ) } ) ) , r . addListener ( n , "compositionend" , F ) , this . getElement = function ( ) { return n } , this . setReadOnly = function ( e ) { n . readOnly = e } , this . onContextMenu = function ( e ) { L = ! 0 , b ( t . selection . isEmpty ( ) ) , t . _emit ( "nativecontextmenu" , { target : t , domEvent : e } ) , this . moveToMouse ( e , ! 0 ) } , this . moveToMouse = function ( e , o ) { if ( o || ! i . isOldIE ) { p || ( p = n . style . cssText ) , n . style . cssText = ( o ? "z-index:100000;" : "" ) + "height:" + n . style . height + ";" + ( i . isIE ? "opacity:0.1;" : "" ) ; var u = t . container . getBoundingClientRect ( ) , a = s . computedStyle ( t . container ) , f = u . top + ( parseInt ( a . borderTopWidth ) || 0 ) , l = u . left + ( parseInt ( u . borderLeftWidth ) || 0 ) , c = u . bottom - f - n . clientHeight - 2 , h = function ( e ) { n . style . left = e . clientX - l - 2 + "px" , n . style . top = Math . min ( e . clientY - f - 2 , c ) + "px" } ; h ( e ) , "mousedown" == e . type && ( t . renderer . $keepTextAreaAtCursor && ( t . renderer . $keepTextAreaAtCursor = null ) , clearTimeout ( q ) , i . isWin && ! i . isOldIE && r . capture ( t . container , h , R ) ) } } , this . onContextMenuClose = R ; var q , U = function ( e ) { t . textInput . onContextMenu ( e ) , R ( ) } ; r . addListener ( n , "mouseup" , U ) , r . addListener ( n , "mousedown" , function ( e ) { e . preventDefault ( ) , R ( ) } ) , r . addListener ( t . renderer . scroller , "contextmenu" , U ) , r . addListener ( n , "contextmenu" , U ) } ; t . TextInput = f } ) , ace . define ( "ace/mouse/default_handlers" , [ "require" , "exports" , "module" , "ace/lib/dom" , "ace/lib/event" , "ace/lib/useragent" ] , function ( e , t , n ) { "use strict" ; function u ( e ) { e . $clickSelection = null ; var t = e . editor ; t . setDefaultHandler ( "mousedown" , this . onMouseDown . bind ( e ) ) , t . setDefaultHandler ( "dblclick" , this . onDoubleClick . bind ( e ) ) , t . setDefaultHandler ( "tripleclick" , this . onTripleClick . bind ( e ) ) , t . setDefaultHandler ( "quadclick" , this . onQuadClick . bind ( e ) ) , t . setDefaultHandler ( "mousewheel" , this . onMouseWheel . bind ( e ) ) , t . setDefaultHandler ( "touchmove" , this . onTouchMove . bind ( e ) ) ; var n = [ "select" , "startSelect" , "selectEnd" , "selectAllEnd" , "selectByWordsEnd" , "selectByLinesEnd" , "dragWait" , "dragWaitEnd" , "focusWait" ] ; n . forEach ( function ( t ) { e [ t ] = this [ t ] } , this ) , e . selectByLines = this . extendSelectionBy . bind ( e , "getLineRange" ) , e . selectByWords = this . extendSelectionBy . bind ( e , "getWordRange" ) } function a ( e , t , n , r ) { return Math . sqrt ( Math . pow ( n - e , 2 ) + Math . pow ( r - t , 2 ) ) } function f ( e , t ) { if ( e . start . row == e . end . row ) var n = 2 * t . column - e . start . column - e . end . column ; else if ( e . start . row != e . end . row - 1 || e . start . column || e . end . column ) var n = 2 * t . row - e . start . row - e . end . row ; else var n = t . column - 4 ; return n < 0 ? { cursor : e . start , anchor : e . end } : { cursor : e . end , anchor : e . start } } var o = ( e ( "../lib/dom" ) , e ( "../lib/event" ) , e ( "../lib/useragent" ) , 0 ) ; ( function ( ) { this . onMouseDown = function ( e ) { var t = e . inSelection ( ) , n = e . getDocumentPosition ( ) ; this . mousedownEvent = e ; var r = this . editor , i = e . getButton ( ) ; if ( 0 !== i ) { var s = r . getSelectionRange ( ) , o = s . isEmpty ( ) ; return r . $blockScrolling ++ , ( o || 1 == i ) && r . selection . moveToPosition ( n ) , r . $blockScrolling -- , 2 == i && r . textInput . onContextMenu ( e . domEvent ) , void 0 } return this . mousedownEvent . time = Date . now ( ) , ! t || r . isFocused ( ) || ( r . focus ( ) , ! this . $focusTimout || this . $clickSelection || r . inMultiSelectMode ) ? ( this . captureMouse ( e ) , this . startSelect ( n , e . domEvent . _clicks > 1 ) , e . preventDefault ( ) ) : ( this . setState ( "focusWait" ) , void this . captureMouse ( e ) ) } , this . startSelect = function ( e , t ) { e = e || this . editor . renderer . screenToTextCoordinates ( this . x , this . y ) ; var n = this . editor ; n . $blockScrolling ++ , this . mousedownEvent . getShiftKey ( ) ? n . selection . selectToPosition ( e ) : t || n . selection . moveToPosition ( e ) , t || this . select ( ) , n . renderer . scroller . setCapture && n . renderer . scroller . setCapture ( ) , n . setStyle ( "ace_selecting" ) , this . setState ( "select" ) , n . $blockScrolling -- } , this . select = function ( ) { var e , t = this . editor , n = t . renderer . screenToTextCoordinates ( this . x , this . y ) ; if ( t . $blockScrolling ++ , this . $clickSelection ) { var r = this . $clickSelection . comparePoi
return "Range: [" + this . start . row + "/" + this . start . column + "] -> [" + this . end . row + "/" + this . end . column + "]" } , this . contains = function ( e , t ) { return 0 == this . compare ( e , t ) } , this . compareRange = function ( e ) { var t , n = e . end , r = e . start ; return t = this . compare ( n . row , n . column ) , 1 == t ? ( t = this . compare ( r . row , r . column ) , 1 == t ? 2 : 0 == t ? 1 : 0 ) : t == - 1 ? - 2 : ( t = this . compare ( r . row , r . column ) , t == - 1 ? - 1 : 1 == t ? 42 : 0 ) } , this . comparePoint = function ( e ) { return this . compare ( e . row , e . column ) } , this . containsRange = function ( e ) { return 0 == this . comparePoint ( e . start ) && 0 == this . comparePoint ( e . end ) } , this . intersects = function ( e ) { var t = this . compareRange ( e ) ; return t == - 1 || 0 == t || 1 == t } , this . isEnd = function ( e , t ) { return this . end . row == e && this . end . column == t } , this . isStart = function ( e , t ) { return this . start . row == e && this . start . column == t } , this . setStart = function ( e , t ) { "object" == typeof e ? ( this . start . column = e . column , this . start . row = e . row ) : ( this . start . row = e , this . start . column = t ) } , this . setEnd = function ( e , t ) { "object" == typeof e ? ( this . end . column = e . column , this . end . row = e . row ) : ( this . end . row = e , this . end . column = t ) } , this . inside = function ( e , t ) { return 0 == this . compare ( e , t ) && ( ! this . isEnd ( e , t ) && ! this . isStart ( e , t ) ) } , this . insideStart = function ( e , t ) { return 0 == this . compare ( e , t ) && ! this . isEnd ( e , t ) } , this . insideEnd = function ( e , t ) { return 0 == this . compare ( e , t ) && ! this . isStart ( e , t ) } , this . compare = function ( e , t ) { return this . isMultiLine ( ) || e !== this . start . row ? e < this . start . row ? - 1 : e > this . end . row ? 1 : this . start . row === e ? t >= this . start . column ? 0 : - 1 : this . end . row === e ? t <= this . end . column ? 0 : 1 : 0 : t < this . start . column ? - 1 : t > this . end . column ? 1 : 0 } , this . compareStart = function ( e , t ) { return this . start . row == e && this . start . column == t ? - 1 : this . compare ( e , t ) } , this . compareEnd = function ( e , t ) { return this . end . row == e && this . end . column == t ? 1 : this . compare ( e , t ) } , this . compareInside = function ( e , t ) { return this . end . row == e && this . end . column == t ? 1 : this . start . row == e && this . start . column == t ? - 1 : this . compare ( e , t ) } , this . clipRows = function ( e , t ) { if ( this . end . row > t ) var n = { row : t + 1 , column : 0 } ; else if ( this . end . row < e ) var n = { row : e , column : 0 } ; if ( this . start . row > t ) var r = { row : t + 1 , column : 0 } ; else if ( this . start . row < e ) var r = { row : e , column : 0 } ; return i . fromPoints ( r || this . start , n || this . end ) } , this . extend = function ( e , t ) { var n = this . compare ( e , t ) ; if ( 0 == n ) return this ; if ( n == - 1 ) var r = { row : e , column : t } ; else var s = { row : e , column : t } ; return i . fromPoints ( r || this . start , s || this . end ) } , this . isEmpty = function ( ) { return this . start . row === this . end . row && this . start . column === this . end . column } , this . isMultiLine = function ( ) { return this . start . row !== this . end . row } , this . clone = function ( ) { return i . fromPoints ( this . start , this . end ) } , this . collapseRows = function ( ) { return 0 == this . end . column ? new i ( this . start . row , 0 , Math . max ( this . start . row , this . end . row - 1 ) , 0 ) : new i ( this . start . row , 0 , this . end . row , 0 ) } , this . toScreenRange = function ( e ) { var t = e . documentToScreenPosition ( this . start ) , n = e . documentToScreenPosition ( this . end ) ; return new i ( t . row , t . column , n . row , n . column ) } , this . moveBy = function ( e , t ) { this . start . row += e , this . start . column += t , this . end . row += e , this . end . column += t } } ) . call ( i . prototype ) , i . fromPoints = function ( e , t ) { return new i ( e . row , e . column , t . row , t . column ) } , i . comparePoints = r , i . comparePoints = function ( e , t ) { return e . row - t . row || e . column - t . column } , t . Range = i } ) , ace . define ( "ace/selection" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/lib/event_emitter" , "ace/range" ] , function ( e , t , n ) { "use strict" ; var r = e ( "./lib/oop" ) , i = e ( "./lib/lang" ) , s = e ( "./lib/event_emitter" ) . EventEmitter , o = e ( "./range" ) . Range , u = function ( e ) { this . session = e , this . doc = e . getDocument ( ) , this . clearSelection ( ) , this . lead = this . selectionLead = this . doc . createAnchor ( 0 , 0 ) , this . anchor = this . selectionAnchor = this . doc . createAnchor ( 0 , 0 ) ; var t = this ; this . lead . on ( "change" , function ( e ) { t . _emit ( "changeCursor" ) , t . $isEmpty || t . _emit ( "changeSelection" ) , ! t . $keepDesiredColumnOnChange && e . old . column != e . value . column && ( t . $desiredColumn = null ) } ) , this . selectionAnchor . on ( "change" , function ( ) { t . $isEmpty || t . _emit ( "changeSelection" ) } ) } ; ( function ( ) { r . implement ( this , s ) , this . isEmpty = function ( ) { return this . $isEmpty || this . anchor . row == this . lead . row && this . anchor . column == this . lead . column } , this . isMultiLine = function ( ) { return ! this . isEmpty ( ) && this . getRange ( ) . isMultiLine ( ) } , this . getCurso
Ll : "0061-007A00AA00B500BA00DF-00F600F8-00FF01010103010501070109010B010D010F01110113011501170119011B011D011F01210123012501270129012B012D012F01310133013501370138013A013C013E014001420144014601480149014B014D014F01510153015501570159015B015D015F01610163016501670169016B016D016F0171017301750177017A017C017E-0180018301850188018C018D019201950199-019B019E01A101A301A501A801AA01AB01AD01B001B401B601B901BA01BD-01BF01C601C901CC01CE01D001D201D401D601D801DA01DC01DD01DF01E101E301E501E701E901EB01ED01EF01F001F301F501F901FB01FD01FF02010203020502070209020B020D020F02110213021502170219021B021D021F02210223022502270229022B022D022F02310233-0239023C023F0240024202470249024B024D024F-02930295-02AF037103730377037B-037D039003AC-03CE03D003D103D5-03D703D903DB03DD03DF03E103E303E503E703E903EB03ED03EF-03F303F503F803FB03FC0430-045F04610463046504670469046B046D046F04710473047504770479047B047D047F0481048B048D048F04910493049504970499049B049D049F04A104A304A504A704A904AB04AD04AF04B104B304B504B704B904BB04BD04BF04C204C404C604C804CA04CC04CE04CF04D104D304D504D704D904DB04DD04DF04E104E304E504E704E904EB04ED04EF04F104F304F504F704F904FB04FD04FF05010503050505070509050B050D050F05110513051505170519051B051D051F0521052305250561-05871D00-1D2B1D62-1D771D79-1D9A1E011E031E051E071E091E0B1E0D1E0F1E111E131E151E171E191E1B1E1D1E1F1E211E231E251E271E291E2B1E2D1E2F1E311E331E351E371E391E3B1E3D1E3F1E411E431E451E471E491E4B1E4D1E4F1E511E531E551E571E591E5B1E5D1E5F1E611E631E651E671E691E6B1E6D1E6F1E711E731E751E771E791E7B1E7D1E7F1E811E831E851E871E891E8B1E8D1E8F1E911E931E95-1E9D1E9F1EA11EA31EA51EA71EA91EAB1EAD1EAF1EB11EB31EB51EB71EB91EBB1EBD1EBF1EC11EC31EC51EC71EC91ECB1ECD1ECF1ED11ED31ED51ED71ED91EDB1EDD1EDF1EE11EE31EE51EE71EE91EEB1EED1EEF1EF11EF31EF51EF71EF91EFB1EFD1EFF-1F071F10-1F151F20-1F271F30-1F371F40-1F451F50-1F571F60-1F671F70-1F7D1F80-1F871F90-1F971FA0-1FA71FB0-1FB41FB61FB71FBE1FC2-1FC41FC61FC71FD0-1FD31FD61FD71FE0-1FE71FF2-1FF41FF61FF7210A210E210F2113212F21342139213C213D2146-2149214E21842C30-2C5E2C612C652C662C682C6A2C6C2C712C732C742C76-2C7C2C812C832C852C872C892C8B2C8D2C8F2C912C932C952C972C992C9B2C9D2C9F2CA12CA32CA52CA72CA92CAB2CAD2CAF2CB12CB32CB52CB72CB92CBB2CBD2CBF2CC12CC32CC52CC72CC92CCB2CCD2CCF2CD12CD32CD52CD72CD92CDB2CDD2CDF2CE12CE32CE42CEC2CEE2D00-2D25A641A643A645A647A649A64BA64DA64FA651A653A655A657A659A65BA65DA65FA663A665A667A669A66BA66DA681A683A685A687A689A68BA68DA68FA691A693A695A697A723A725A727A729A72BA72DA72F-A731A733A735A737A739A73BA73DA73FA741A743A745A747A749A74BA74DA74FA751A753A755A757A759A75BA75DA75FA761A763A765A767A769A76BA76DA76FA771-A778A77AA77CA77FA781A783A785A787A78CFB00-FB06FB13-FB17FF41-FF5A" , Lu : " 0041 - 005 A00C0 - 00 D600D8 - 00 DE01000102010401060108010A010C010E01100112011401160118011A011C011E01200122012401260128012A012C012E01300132013401360139013B013D013F0141014301450147014A014C014E01500152015401560158015A015C015E01600162016401660168016A016C016E017001720174017601780179017B017D018101820184018601870189 - 018 B018E - 0191019301940196 - 0198019 C019D019F01A001A201A401A601A701A901AC01AE01AF01B1 - 01 B301B501B701B801BC01C401C701CA01CD01CF01D101D301D501D701D901DB01DE01E001E201E401E601E801EA01EC01EE01F101F401F6 - 01 F801FA01FC01FE02000202020402060208020A020C020E02100212021402160218021A021C021E02200222022402260228022A022C022E02300232023A023B023D023E02410243 - 02460248024 A024C024E03700372037603860388 - 038 A038C038E038F0391 - 03 A103A3 - 03 AB03CF03D2 - 03 D403D803DA03DC03DE03E003E203E403E603E803EA03EC03EE03F403F703F903FA03FD - 042 F04600462046404660468046A046C046E04700472047404760478047A047C047E0480048A048C048E04900492049404960498049A049C049E04A004A204A404A604A804AA04AC04AE04B004B204B404B604B804BA04BC04BE04C004C104C304C504C704C904CB04CD04D004D204D404D604D804DA04DC04DE04E004E204E404E604E804EA04EC04EE04F004F204F404F604F804FA04FC04FE05000502050405060508050A050C050E05100512051405160518051A051C051E0520052205240531 - 055610 A0 - 10 C51E001E021E041E061E081E0A1E0C1E0E1E101E121E141E161E181E1A1E1C1E1E1E201E221E241E261E281E2A1E2C1E2E1E301E321E341E361E381E3A1E3C1E3E1E401E421E441E461E481E4A1E4C1E4E1E501E521E541E561E581E5A1E5C1E5E1E601E621E641E661E681E6A1E6C1E6E1E701E721E741E761E781E7A1E7C1E7E1E801E821E841E861E881E8A1E8C1E8E1E901E921E941
this . setNewLineMode = function ( e ) { this . $newLineMode !== e && ( this . $newLineMode = e , this . _signal ( "changeNewLineMode" ) ) } , this . getNewLineMode = function ( ) { return this . $newLineMode } , this . isNewLine = function ( e ) { return "\r\n" == e || "\r" == e || "\n" == e } , this . getLine = function ( e ) { return this . $lines [ e ] || "" } , this . getLines = function ( e , t ) { return this . $lines . slice ( e , t + 1 ) } , this . getAllLines = function ( ) { return this . getLines ( 0 , this . getLength ( ) ) } , this . getLength = function ( ) { return this . $lines . length } , this . getTextRange = function ( e ) { return this . getLinesForRange ( e ) . join ( this . getNewLineCharacter ( ) ) } , this . getLinesForRange = function ( e ) { var t ; if ( e . start . row === e . end . row ) t = [ this . getLine ( e . start . row ) . substring ( e . start . column , e . end . column ) ] ; else { t = this . getLines ( e . start . row , e . end . row ) , t [ 0 ] = ( t [ 0 ] || "" ) . substring ( e . start . column ) ; var n = t . length - 1 ; e . end . row - e . start . row == n && ( t [ n ] = t [ n ] . substring ( 0 , e . end . column ) ) } return t } , this . insertLines = function ( e , t ) { return console . warn ( "Use of document.insertLines is deprecated. Use the insertFullLines method instead." ) , this . insertFullLines ( e , t ) } , this . removeLines = function ( e , t ) { return console . warn ( "Use of document.removeLines is deprecated. Use the removeFullLines method instead." ) , this . removeFullLines ( e , t ) } , this . insertNewLine = function ( e ) { return console . warn ( "Use of document.insertNewLine is deprecated. Use insertMergedLines(position, ['', '']) instead." ) , this . insertMergedLines ( e , [ "" , "" ] ) } , this . insert = function ( e , t ) { return this . getLength ( ) <= 1 && this . $detectNewLine ( t ) , this . insertMergedLines ( e , this . $split ( t ) ) } , this . insertInLine = function ( e , t ) { var n = this . clippedPos ( e . row , e . column ) , r = this . pos ( e . row , e . column + t . length ) ; return this . applyDelta ( { start : n , end : r , action : "insert" , lines : [ t ] } , ! 0 ) , this . clonePos ( r ) } , this . clippedPos = function ( e , t ) { var n = this . getLength ( ) ; void 0 === e ? e = n : e < 0 ? e = 0 : e >= n && ( e = n - 1 , t = void 0 ) ; var r = this . getLine ( e ) ; return void 0 == t && ( t = r . length ) , t = Math . min ( Math . max ( t , 0 ) , r . length ) , { row : e , column : t } } , this . clonePos = function ( e ) { return { row : e . row , column : e . column } } , this . pos = function ( e , t ) { return { row : e , column : t } } , this . $clipPosition = function ( e ) { var t = this . getLength ( ) ; return e . row >= t ? ( e . row = Math . max ( 0 , t - 1 ) , e . column = this . getLine ( t - 1 ) . length ) : ( e . row = Math . max ( 0 , e . row ) , e . column = Math . min ( Math . max ( e . column , 0 ) , this . getLine ( e . row ) . length ) ) , e } , this . insertFullLines = function ( e , t ) { e = Math . min ( Math . max ( e , 0 ) , this . getLength ( ) ) ; var n = 0 ; e < this . getLength ( ) ? ( t = t . concat ( [ "" ] ) , n = 0 ) : ( t = [ "" ] . concat ( t ) , e -- , n = this . $lines [ e ] . length ) , this . insertMergedLines ( { row : e , column : n } , t ) } , this . insertMergedLines = function ( e , t ) { var n = this . clippedPos ( e . row , e . column ) , r = { row : n . row + t . length - 1 , column : ( 1 == t . length ? n . column : 0 ) + t [ t . length - 1 ] . length } ; return this . applyDelta ( { start : n , end : r , action : "insert" , lines : t } ) , this . clonePos ( r ) } , this . remove = function ( e ) { var t = this . clippedPos ( e . start . row , e . start . column ) , n = this . clippedPos ( e . end . row , e . end . column ) ; return this . applyDelta ( { start : t , end : n , action : "remove" , lines : this . getLinesForRange ( { start : t , end : n } ) } ) , this . clonePos ( t ) } , this . removeInLine = function ( e , t , n ) { var r = this . clippedPos ( e , t ) , i = this . clippedPos ( e , n ) ; return this . applyDelta ( { start : r , end : i , action : "remove" , lines : this . getLinesForRange ( { start : r , end : i } ) } , ! 0 ) , this . clonePos ( r ) } , this . removeFullLines = function ( e , t ) { e = Math . min ( Math . max ( 0 , e ) , this . getLength ( ) - 1 ) , t = Math . min ( Math . max ( 0 , t ) , this . getLength ( ) - 1 ) ; var n = t == this . getLength ( ) - 1 && e > 0 , r = t < this . getLength ( ) - 1 , i = n ? e - 1 : e , s = n ? this . getLine ( i ) . length : 0 , u = r ? t + 1 : t , a = r ? 0 : this . getLine ( u ) . length , f = new o ( i , s , u , a ) , l = this . $lines . slice ( e , t + 1 ) ; return this . applyDelta ( { start : f . start , end : f . end , action : "remove" , lines : this . getLinesForRange ( f ) } ) , l } , this . removeNewLine = function ( e ) { e < this . getLength ( ) - 1 && e >= 0 && this . applyDelta ( { start : this . pos ( e , this . getLine ( e ) . length ) , end : this . pos ( e + 1 , 0 ) , action : "remove" , lines : [ "" , "" ] } ) } , this . replace = function ( e , t ) { if ( e instanceof o || ( e = o . fromPoints ( e . start , e . end ) ) , 0 === t . length && e . isEmpty ( ) ) return e . start ; if ( t == this . getTextRange ( e ) ) return e . end ; this . remove ( e ) ; var n ; return n = t ? this . insert ( e . start , t ) : e . start } , this . applyDeltas = function ( e ) { for ( var t = 0 ; t < e . length ; t ++ ) this . applyDelta ( e [ t ] ) } , this . revertDeltas = function ( e ) { for ( var t = e . length - 1 ; t >= 0 ; t -- ) this . revertDelta ( e [ t ] ) } , thi
return this . doc . getValue ( ) } , this . getSelection = function ( ) { return this . selection } , this . getState = function ( e ) { return this . bgTokenizer . getState ( e ) } , this . getTokens = function ( e ) { return this . bgTokenizer . getTokens ( e ) } , this . getTokenAt = function ( e , t ) { var r , n = this . bgTokenizer . getTokens ( e ) , i = 0 ; if ( null == t ) s = n . length - 1 , i = this . getLine ( e ) . length ; else for ( var s = 0 ; s < n . length && ( i += n [ s ] . value . length , ! ( i >= t ) ) ; s ++ ) ; return r = n [ s ] , r ? ( r . index = s , r . start = i - r . value . length , r ) : null } , this . setUndoManager = function ( e ) { if ( this . $undoManager = e , this . $deltas = [ ] , this . $deltasDoc = [ ] , this . $deltasFold = [ ] , this . $informUndoManager && this . $informUndoManager . cancel ( ) , e ) { var t = this ; this . $syncInformUndoManager = function ( ) { t . $informUndoManager . cancel ( ) , t . $deltasFold . length && ( t . $deltas . push ( { group : "fold" , deltas : t . $deltasFold } ) , t . $deltasFold = [ ] ) , t . $deltasDoc . length && ( t . $deltas . push ( { group : "doc" , deltas : t . $deltasDoc } ) , t . $deltasDoc = [ ] ) , t . $deltas . length > 0 && e . execute ( { action : "aceupdate" , args : [ t . $deltas , t ] , merge : t . mergeUndoDeltas } ) , t . mergeUndoDeltas = ! 1 , t . $deltas = [ ] } , this . $informUndoManager = i . delayedCall ( this . $syncInformUndoManager ) } } , this . markUndoGroup = function ( ) { this . $syncInformUndoManager && this . $syncInformUndoManager ( ) } , this . $defaultUndoManager = { undo : function ( ) { } , redo : function ( ) { } , reset : function ( ) { } } , this . getUndoManager = function ( ) { return this . $undoManager || this . $defaultUndoManager } , this . getTabString = function ( ) { return this . getUseSoftTabs ( ) ? i . stringRepeat ( " " , this . getTabSize ( ) ) : "\t" } , this . setUseSoftTabs = function ( e ) { this . setOption ( "useSoftTabs" , e ) } , this . getUseSoftTabs = function ( ) { return this . $useSoftTabs && ! this . $mode . $indentWithTabs } , this . setTabSize = function ( e ) { this . setOption ( "tabSize" , e ) } , this . getTabSize = function ( ) { return this . $tabSize } , this . isTabStop = function ( e ) { return this . $useSoftTabs && e . column % this . $tabSize === 0 } , this . $overwrite = ! 1 , this . setOverwrite = function ( e ) { this . setOption ( "overwrite" , e ) } , this . getOverwrite = function ( ) { return this . $overwrite } , this . toggleOverwrite = function ( ) { this . setOverwrite ( ! this . $overwrite ) } , this . addGutterDecoration = function ( e , t ) { this . $decorations [ e ] || ( this . $decorations [ e ] = "" ) , this . $decorations [ e ] += " " + t , this . _signal ( "changeBreakpoint" , { } ) } , this . removeGutterDecoration = function ( e , t ) { this . $decorations [ e ] = ( this . $decorations [ e ] || "" ) . replace ( " " + t , "" ) , this . _signal ( "changeBreakpoint" , { } ) } , this . getBreakpoints = function ( ) { return this . $breakpoints } , this . setBreakpoints = function ( e ) { this . $breakpoints = [ ] ; for ( var t = 0 ; t < e . length ; t ++ ) this . $breakpoints [ e [ t ] ] = "ace_breakpoint" ; this . _signal ( "changeBreakpoint" , { } ) } , this . clearBreakpoints = function ( ) { this . $breakpoints = [ ] , this . _signal ( "changeBreakpoint" , { } ) } , this . setBreakpoint = function ( e , t ) { void 0 === t && ( t = "ace_breakpoint" ) , t ? this . $breakpoints [ e ] = t : delete this . $breakpoints [ e ] , this . _signal ( "changeBreakpoint" , { } ) } , this . clearBreakpoint = function ( e ) { delete this . $breakpoints [ e ] , this . _signal ( "changeBreakpoint" , { } ) } , this . addMarker = function ( e , t , n , r ) { var i = this . $markerId ++ , s = { range : e , type : n || "line" , renderer : "function" == typeof n ? n : null , clazz : t , inFront : ! ! r , id : i } ; return r ? ( this . $frontMarkers [ i ] = s , this . _signal ( "changeFrontMarker" ) ) : ( this . $backMarkers [ i ] = s , this . _signal ( "changeBackMarker" ) ) , i } , this . addDynamicMarker = function ( e , t ) { if ( e . update ) { var n = this . $markerId ++ ; return e . id = n , e . inFront = ! ! t , t ? ( this . $frontMarkers [ n ] = e , this . _signal ( "changeFrontMarker" ) ) : ( this . $backMarkers [ n ] = e , this . _signal ( "changeBackMarker" ) ) , e } } , this . removeMarker = function ( e ) { var t = this . $frontMarkers [ e ] || this . $backMarkers [ e ] ; if ( t ) { var n = t . inFront ? this . $frontMarkers : this . $backMarkers ; t && ( delete n [ e ] , this . _signal ( t . inFront ? "changeFrontMarker" : "changeBackMarker" ) ) } } , this . getMarkers = function ( e ) { return e ? this . $frontMarkers : this . $backMarkers } , this . highlight = function ( e ) { if ( ! this . $searchHighlight ) { var t = new h ( null , "ace_selected-word" , "text" ) ; this . $searchHighlight = this . addDynamicMarker ( t ) } this . $searchHighlight . setRegexp ( e ) } , this . highlightLines = function ( e , t , n , r ) { "number" != typeof t && ( n = t , t = e ) , n || ( n = "ace_step" ) ; var i = new f ( e , 0 , t , 1 / 0 ) ; return i . id = this . addMarker ( i , n , "fullLine" , r ) , i } , this . setAnnotations = function ( e ) { this . $annotations = e , this . _signal ( "changeAnnotation" , { } ) } , this . getAnnotations = function ( ) {
name : "showSettingsMenu" , bindKey : o ( "Ctrl-," , "Command-," ) , exec : function ( e ) { i . loadModule ( "ace/ext/settings_menu" , function ( t ) { t . init ( e ) , e . showSettingsMenu ( ) } ) } , readOnly : ! 0 } , { name : "goToNextError" , bindKey : o ( "Alt-E" , "Ctrl-E" ) , exec : function ( e ) { i . loadModule ( "ace/ext/error_marker" , function ( t ) { t . showErrorMarker ( e , 1 ) } ) } , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "goToPreviousError" , bindKey : o ( "Alt-Shift-E" , "Ctrl-Shift-E" ) , exec : function ( e ) { i . loadModule ( "ace/ext/error_marker" , function ( t ) { t . showErrorMarker ( e , - 1 ) } ) } , scrollIntoView : "animate" , readOnly : ! 0 } , { name : "selectall" , bindKey : o ( "Ctrl-A" , "Command-A" ) , exec : function ( e ) { e . selectAll ( ) } , readOnly : ! 0 } , { name : "centerselection" , bindKey : o ( null , "Ctrl-L" ) , exec : function ( e ) { e . centerSelection ( ) } , readOnly : ! 0 } , { name : "gotoline" , bindKey : o ( "Ctrl-L" , "Command-L" ) , exec : function ( e ) { var t = parseInt ( prompt ( "Enter line number:" ) , 10 ) ; isNaN ( t ) || e . gotoLine ( t ) } , readOnly : ! 0 } , { name : "fold" , bindKey : o ( "Alt-L|Ctrl-F1" , "Command-Alt-L|Command-F1" ) , exec : function ( e ) { e . session . toggleFold ( ! 1 ) } , multiSelectAction : "forEach" , scrollIntoView : "center" , readOnly : ! 0 } , { name : "unfold" , bindKey : o ( "Alt-Shift-L|Ctrl-Shift-F1" , "Command-Alt-Shift-L|Command-Shift-F1" ) , exec : function ( e ) { e . session . toggleFold ( ! 0 ) } , multiSelectAction : "forEach" , scrollIntoView : "center" , readOnly : ! 0 } , { name : "toggleFoldWidget" , bindKey : o ( "F2" , "F2" ) , exec : function ( e ) { e . session . toggleFoldWidget ( ) } , multiSelectAction : "forEach" , scrollIntoView : "center" , readOnly : ! 0 } , { name : "toggleParentFoldWidget" , bindKey : o ( "Alt-F2" , "Alt-F2" ) , exec : function ( e ) { e . session . toggleFoldWidget ( ! 0 ) } , multiSelectAction : "forEach" , scrollIntoView : "center" , readOnly : ! 0 } , { name : "foldall" , bindKey : o ( null , "Ctrl-Command-Option-0" ) , exec : function ( e ) { e . session . foldAll ( ) } , scrollIntoView : "center" , readOnly : ! 0 } , { name : "foldOther" , bindKey : o ( "Alt-0" , "Command-Option-0" ) , exec : function ( e ) { e . session . foldAll ( ) , e . session . unfold ( e . selection . getAllRanges ( ) ) } , scrollIntoView : "center" , readOnly : ! 0 } , { name : "unfoldall" , bindKey : o ( "Alt-Shift-0" , "Command-Option-Shift-0" ) , exec : function ( e ) { e . session . unfold ( ) } , scrollIntoView : "center" , readOnly : ! 0 } , { name : "findnext" , bindKey : o ( "Ctrl-K" , "Command-G" ) , exec : function ( e ) { e . findNext ( ) } , multiSelectAction : "forEach" , scrollIntoView : "center" , readOnly : ! 0 } , { name : "findprevious" , bindKey : o ( "Ctrl-Shift-K" , "Command-Shift-G" ) , exec : function ( e ) { e . findPrevious ( ) } , multiSelectAction : "forEach" , scrollIntoView : "center" , readOnly : ! 0 } , { name : "selectOrFindNext" , bindKey : o ( "Alt-K" , "Ctrl-G" ) , exec : function ( e ) { e . selection . isEmpty ( ) ? e . selection . selectWord ( ) : e . findNext ( ) } , readOnly : ! 0 } , { name : "selectOrFindPrevious" , bindKey : o ( "Alt-Shift-K" , "Ctrl-Shift-G" ) , exec : function ( e ) { e . selection . isEmpty ( ) ? e . selection . selectWord ( ) : e . findPrevious ( ) } , readOnly : ! 0 } , { name : "find" , bindKey : o ( "Ctrl-F" , "Command-F" ) , exec : function ( e ) { i . loadModule ( "ace/ext/searchbox" , function ( t ) { t . Search ( e ) } ) } , readOnly : ! 0 } , { name : "overwrite" , bindKey : "Insert" , exec : function ( e ) { e . toggleOverwrite ( ) } , readOnly : ! 0 } , { name : "selecttostart" , bindKey : o ( "Ctrl-Shift-Home" , "Command-Shift-Up" ) , exec : function ( e ) { e . getSelection ( ) . selectFileStart ( ) } , multiSelectAction : "forEach" , readOnly : ! 0 , scrollIntoView : "animate" , aceCommandGroup : "fileJump" } , { name : "gotostart" , bindKey : o ( "Ctrl-Home" , "Command-Home|Command-Up" ) , exec : function ( e ) { e . navigateFileStart ( ) } , multiSelectAction : "forEach" , readOnly : ! 0 , scrollIntoView : "animate" , aceCommandGroup : "fileJump" } , { name : "selectup" , bindKey : o ( "Shift-Up" , "Shift-Up" ) , exec : function ( e ) { e . getSelection ( ) . selectUp ( ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "golineup" , bindKey : o ( "Up" , "Up|Ctrl-P" ) , exec : function ( e , t ) { e . navigateUp ( t . times ) } , multiSelectAction : "forEach" , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selecttoend" , bindKey : o ( "Ctrl-Shift-End" , "Command-Shift-Down" ) , exec : function ( e ) { e . getSelection ( ) . selectFileEnd ( ) } , multiSelectAction : "forEach" , readOnly : ! 0 , scrollIntoView : "animate" , aceCommandGroup : "fileJump" } , { name : "gotoend" , bindKey : o ( "Ctrl-End" , "Command-End|Command-Down" ) , exec : function ( e ) { e . navigateFileEnd ( ) } , multiSelectAction : "forEach" , readOnly : ! 0 , scrollIntoView : "animate" , aceCommandGroup : "fileJump" } , { name : "selectdown" , bindKey : o ( "Shift-Down" , "Shift-Down" ) , exec : function (
} , this . setHighlightSelectedWord = function ( e ) { this . setOption ( "highlightSelectedWord" , e ) } , this . getHighlightSelectedWord = function ( ) { return this . $highlightSelectedWord } , this . setAnimatedScroll = function ( e ) { this . renderer . setAnimatedScroll ( e ) } , this . getAnimatedScroll = function ( ) { return this . renderer . getAnimatedScroll ( ) } , this . setShowInvisibles = function ( e ) { this . renderer . setShowInvisibles ( e ) } , this . getShowInvisibles = function ( ) { return this . renderer . getShowInvisibles ( ) } , this . setDisplayIndentGuides = function ( e ) { this . renderer . setDisplayIndentGuides ( e ) } , this . getDisplayIndentGuides = function ( ) { return this . renderer . getDisplayIndentGuides ( ) } , this . setShowPrintMargin = function ( e ) { this . renderer . setShowPrintMargin ( e ) } , this . getShowPrintMargin = function ( ) { return this . renderer . getShowPrintMargin ( ) } , this . setPrintMarginColumn = function ( e ) { this . renderer . setPrintMarginColumn ( e ) } , this . getPrintMarginColumn = function ( ) { return this . renderer . getPrintMarginColumn ( ) } , this . setReadOnly = function ( e ) { this . setOption ( "readOnly" , e ) } , this . getReadOnly = function ( ) { return this . getOption ( "readOnly" ) } , this . setBehavioursEnabled = function ( e ) { this . setOption ( "behavioursEnabled" , e ) } , this . getBehavioursEnabled = function ( ) { return this . getOption ( "behavioursEnabled" ) } , this . setWrapBehavioursEnabled = function ( e ) { this . setOption ( "wrapBehavioursEnabled" , e ) } , this . getWrapBehavioursEnabled = function ( ) { return this . getOption ( "wrapBehavioursEnabled" ) } , this . setShowFoldWidgets = function ( e ) { this . setOption ( "showFoldWidgets" , e ) } , this . getShowFoldWidgets = function ( ) { return this . getOption ( "showFoldWidgets" ) } , this . setFadeFoldWidgets = function ( e ) { this . setOption ( "fadeFoldWidgets" , e ) } , this . getFadeFoldWidgets = function ( ) { return this . getOption ( "fadeFoldWidgets" ) } , this . remove = function ( e ) { this . selection . isEmpty ( ) && ( "left" == e ? this . selection . selectLeft ( ) : this . selection . selectRight ( ) ) ; var t = this . getSelectionRange ( ) ; if ( this . getBehavioursEnabled ( ) ) { var n = this . session , r = n . getState ( t . start . row ) , i = n . getMode ( ) . transformAction ( r , "deletion" , this , n , t ) ; if ( 0 === t . end . column ) { var s = n . getTextRange ( t ) ; if ( "\n" == s [ s . length - 1 ] ) { var o = n . getLine ( t . end . row ) ; /^\s+$/ . test ( o ) && ( t . end . column = o . length ) } } i && ( t = i ) } this . session . remove ( t ) , this . clearSelection ( ) } , this . removeWordRight = function ( ) { this . selection . isEmpty ( ) && this . selection . selectWordRight ( ) , this . session . remove ( this . getSelectionRange ( ) ) , this . clearSelection ( ) } , this . removeWordLeft = function ( ) { this . selection . isEmpty ( ) && this . selection . selectWordLeft ( ) , this . session . remove ( this . getSelectionRange ( ) ) , this . clearSelection ( ) } , this . removeToLineStart = function ( ) { this . selection . isEmpty ( ) && this . selection . selectLineStart ( ) , this . session . remove ( this . getSelectionRange ( ) ) , this . clearSelection ( ) } , this . removeToLineEnd = function ( ) { this . selection . isEmpty ( ) && this . selection . selectLineEnd ( ) ; var e = this . getSelectionRange ( ) ; e . start . column == e . end . column && e . start . row == e . end . row && ( e . end . column = 0 , e . end . row ++ ) , this . session . remove ( e ) , this . clearSelection ( ) } , this . splitLine = function ( ) { this . selection . isEmpty ( ) || ( this . session . remove ( this . getSelectionRange ( ) ) , this . clearSelection ( ) ) ; var e = this . getCursorPosition ( ) ; this . insert ( "\n" ) , this . moveCursorToPosition ( e ) } , this . transposeLetters = function ( ) { if ( this . selection . isEmpty ( ) ) { var e = this . getCursorPosition ( ) , t = e . column ; if ( 0 !== t ) { var r , i , n = this . session . getLine ( e . row ) ; t < n . length ? ( r = n . charAt ( t ) + n . charAt ( t - 1 ) , i = new p ( e . row , t - 1 , e . row , t + 1 ) ) : ( r = n . charAt ( t - 1 ) + n . charAt ( t - 2 ) , i = new p ( e . row , t - 2 , e . row , t ) ) , this . session . replace ( i , r ) } } } , this . toLowerCase = function ( ) { var e = this . getSelectionRange ( ) ; this . selection . isEmpty ( ) && this . selection . selectWord ( ) ; var t = this . getSelectionRange ( ) , n = this . session . getTextRange ( t ) ; this . session . replace ( t , n . toLowerCase ( ) ) , this . selection . setSelectionRange ( e ) } , this . toUpperCase = function ( ) { var e = this . getSelectionRange ( ) ; this . selection . isEmpty ( ) && this . selection . selectWord ( ) ; var t = this . getSelectionRange ( ) , n = this . session . getTextRange ( t ) ; this . session . replace ( t , n . toUpperCase ( ) ) , this . selection . setSelectionRange ( e ) } , this . indent = function ( ) { var e = this . session , t = this . getSelectionRange ( ) ; if ( t . start . row < t . end . row ) { var n = this . $getSelectedRows ( ) ; return void e . indentRows ( n . first , n . last , "\t" ) } if ( t . start . column <
var n = this . element ; if ( t . firstRow < e . firstRow ) for ( var r = this . session . getFoldedRowCount ( t . firstRow , e . firstRow - 1 ) ; r > 0 ; r -- ) n . removeChild ( n . firstChild ) ; if ( t . lastRow > e . lastRow ) for ( var r = this . session . getFoldedRowCount ( e . lastRow + 1 , t . lastRow ) ; r > 0 ; r -- ) n . removeChild ( n . lastChild ) ; if ( e . firstRow < t . firstRow ) { var i = this . $renderLinesFragment ( e , e . firstRow , t . firstRow - 1 ) ; n . firstChild ? n . insertBefore ( i , n . firstChild ) : n . appendChild ( i ) } if ( e . lastRow > t . lastRow ) { var i = this . $renderLinesFragment ( e , t . lastRow + 1 , e . lastRow ) ; n . appendChild ( i ) } } , this . $renderLinesFragment = function ( e , t , n ) { for ( var r = this . element . ownerDocument . createDocumentFragment ( ) , s = t , o = this . session . getNextFoldLine ( s ) , u = o ? o . start . row : 1 / 0 ; s > u && ( s = o . end . row + 1 , o = this . session . getNextFoldLine ( s , o ) , u = o ? o . start . row : 1 / 0 ) , ! ( s > n ) ; ) { var a = i . createElement ( "div" ) , f = [ ] ; if ( this . $renderLine ( f , s , ! 1 , s == u && o ) , a . innerHTML = f . join ( "" ) , this . $useLineGroups ( ) ) a . className = "ace_line_group" , r . appendChild ( a ) , a . style . height = e . lineHeight * this . session . getRowLength ( s ) + "px" ; else for ( ; a . firstChild ; ) r . appendChild ( a . firstChild ) ; s ++ } return r } , this . update = function ( e ) { this . config = e ; for ( var t = [ ] , n = e . firstRow , r = e . lastRow , i = n , s = this . session . getNextFoldLine ( i ) , o = s ? s . start . row : 1 / 0 ; i > o && ( i = s . end . row + 1 , s = this . session . getNextFoldLine ( i , s ) , o = s ? s . start . row : 1 / 0 ) , ! ( i > r ) ; ) this . $useLineGroups ( ) && t . push ( "<div class='ace_line_group' style='height:" , e . lineHeight * this . session . getRowLength ( i ) , "px'>" ) , this . $renderLine ( t , i , ! 1 , i == o && s ) , this . $useLineGroups ( ) && t . push ( "</div>" ) , i ++ ; this . element . innerHTML = t . join ( "" ) } , this . $textToken = { text : ! 0 , rparen : ! 0 , lparen : ! 0 } , this . $renderToken = function ( e , t , n , r ) { var i = this , o = /\t|&|<|>|( +)|([\x00-\x1f\x80-\xa0\xad\u1680\u180E\u2000-\u200f\u2028\u2029\u202F\u205F\u3000\uFEFF\uFFF9-\uFFFC])|[\u1100-\u115F\u11A3-\u11A7\u11FA-\u11FF\u2329-\u232A\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u2FF0-\u2FFB\u3000-\u303E\u3041-\u3096\u3099-\u30FF\u3105-\u312D\u3131-\u318E\u3190-\u31BA\u31C0-\u31E3\u31F0-\u321E\u3220-\u3247\u3250-\u32FE\u3300-\u4DBF\u4E00-\uA48C\uA490-\uA4C6\uA960-\uA97C\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFAFF\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE66\uFE68-\uFE6B\uFF01-\uFF60\uFFE0-\uFFE6]/g , u = function ( e , n , r , o , u ) { if ( n ) return i . showInvisibles ? "<span class='ace_invisible ace_invisible_space'>" + s . stringRepeat ( i . SPACE _CHAR , e . length ) + "</span>" : e ; if ( "&" == e ) return "&" ; if ( "<" == e ) return "<" ; if ( ">" == e ) return ">" ; if ( "\t" == e ) { var a = i . session . getScreenTabSize ( t + o ) ; return t += a - 1 , i . $tabStrings [ a ] } if ( " " == e ) { var f = i . showInvisibles ? "ace_cjk ace_invisible ace_invisible_space" : "ace_cjk" , l = i . showInvisibles ? i . SPACE _CHAR : "" ; return t += 1 , "<span class='" + f + "' style='width:" + 2 * i . config . characterWidth + "px'>" + l + "</span>" } return r ? "<span class='ace_invisible ace_invisible_space ace_invalid'>" + i . SPACE _CHAR + "</span>" : ( t += 1 , "<span class='ace_cjk' style='width:" + 2 * i . config . characterWidth + "px'>" + e + "</span>" ) } , a = r . replace ( o , u ) ; if ( this . $textToken [ n . type ] ) e . push ( a ) ; else { var f = "ace_" + n . type . replace ( /\./g , " ace_" ) , l = "" ; "fold" == n . type && ( l = " style='width:" + n . value . length * this . config . characterWidth + "px;' " ) , e . push ( "<span class='" , f , "'" , l , ">" , a , "</span>" ) } return t + r . length } , this . renderIndentGuide = function ( e , t , n ) { var r = t . search ( this . $indentGuideRe ) ; return r <= 0 || r >= n ? t : " " == t [ 0 ] ? ( r -= r % this . tabSize , e . push ( s . stringRepeat ( this . $tabStrings [ " " ] , r / this . tabSize ) ) , t . substr ( r ) ) : "\t" == t [ 0 ] ? ( e . push ( s . stringRepeat ( this . $tabStrings [ "\t" ] , r ) ) , t . substr ( r ) ) : t } , this . $renderWrappedLine = function ( e , t , n , r ) { for ( var i = 0 , o = 0 , u = n [ 0 ] , a = 0 , f = 0 ; f < t . length ; f ++ ) { var l = t [ f ] , c = l . value ; if ( 0 == f && this . displayIndentGuides ) { if ( i = c . length , c = this . renderIndentGuide ( e , c , u ) , ! c ) continue ; i -= c . length } if ( i + c . length < u ) a = this . $renderToken ( e , a , l , c ) , i += c . length ; else { for ( ; i + c . length >= u ; ) a = this . $renderToken ( e , a , l , c . substring ( 0 , u - i ) ) , c = c . substring ( u - i ) , i = u , r || e . push ( "</div>" , "<div class='ace_line' style='height:" , this . config . lineHeight , "px'>" ) , e . push ( s . stringRepeat ( " " , n . indent ) ) , o ++ , a = 0 , u = n [ o ] || Number . MAX _VALUE ; 0 != c . length && ( i += c . length , a = this . $renderToken ( e , a , l , c ) ) } } } , this . $renderSimpleLine = function ( e , t ) { var n = 0 , r = t [ 0 ] , i = r . value ; this . displayIndentGuides && ( i = this . renderIndentGuide ( e , i ) ) , i && ( n =
this . $textLayer . onChangeTabSize ( ) } , this . updateText = function ( ) { this . $loop . schedule ( this . CHANGE _TEXT ) } , this . updateFull = function ( e ) { e ? this . $renderChanges ( this . CHANGE _FULL , ! 0 ) : this . $loop . schedule ( this . CHANGE _FULL ) } , this . updateFontSize = function ( ) { this . $textLayer . checkForSizeChanges ( ) } , this . $changes = 0 , this . $updateSizeAsync = function ( ) { this . $loop . pending ? this . $size . $dirty = ! 0 : this . onResize ( ) } , this . onResize = function ( e , t , n , r ) { if ( ! ( this . resizing > 2 ) ) { this . resizing > 0 ? this . resizing ++ : this . resizing = e ? 1 : 0 ; var i = this . container ; r || ( r = i . clientHeight || i . scrollHeight ) , n || ( n = i . clientWidth || i . scrollWidth ) ; var s = this . $updateCachedSize ( e , t , n , r ) ; return this . $size . scrollerHeight && ( n || r ) ? ( e && ( this . $gutterLayer . $padding = null ) , e ? this . $renderChanges ( s | this . $changes , ! 0 ) : this . $loop . schedule ( s | this . $changes ) , this . resizing && ( this . resizing = 0 ) , this . scrollBarV . scrollLeft = this . scrollBarV . scrollTop = null , void 0 ) : this . resizing = 0 } } , this . $updateCachedSize = function ( e , t , n , r ) { r -= this . $extraHeight || 0 ; var i = 0 , s = this . $size , o = { width : s . width , height : s . height , scrollerHeight : s . scrollerHeight , scrollerWidth : s . scrollerWidth } ; return r && ( e || s . height != r ) && ( s . height = r , i |= this . CHANGE _SIZE , s . scrollerHeight = s . height , this . $horizScroll && ( s . scrollerHeight -= this . scrollBarH . getHeight ( ) ) , this . scrollBarV . element . style . bottom = this . scrollBarH . getHeight ( ) + "px" , i |= this . CHANGE _SCROLL ) , n && ( e || s . width != n ) && ( i |= this . CHANGE _SIZE , s . width = n , null == t && ( t = this . $showGutter ? this . $gutter . offsetWidth : 0 ) , this . gutterWidth = t , this . scrollBarH . element . style . left = this . scroller . style . left = t + "px" , s . scrollerWidth = Math . max ( 0 , n - t - this . scrollBarV . getWidth ( ) ) , this . scrollBarH . element . style . right = this . scroller . style . right = this . scrollBarV . getWidth ( ) + "px" , this . scroller . style . bottom = this . scrollBarH . getHeight ( ) + "px" , ( this . session && this . session . getUseWrapMode ( ) && this . adjustWrapLimit ( ) || e ) && ( i |= this . CHANGE _FULL ) ) , s . $dirty = ! n || ! r , i && this . _signal ( "resize" , o ) , i } , this . onGutterResize = function ( ) { var e = this . $showGutter ? this . $gutter . offsetWidth : 0 ; e != this . gutterWidth && ( this . $changes |= this . $updateCachedSize ( ! 0 , e , this . $size . width , this . $size . height ) ) , this . session . getUseWrapMode ( ) && this . adjustWrapLimit ( ) ? this . $loop . schedule ( this . CHANGE _FULL ) : this . $size . $dirty ? this . $loop . schedule ( this . CHANGE _FULL ) : ( this . $computeLayerConfig ( ) , this . $loop . schedule ( this . CHANGE _MARKER ) ) } , this . adjustWrapLimit = function ( ) { var e = this . $size . scrollerWidth - 2 * this . $padding , t = Math . floor ( e / this . characterWidth ) ; return this . session . adjustWrapLimit ( t , this . $showPrintMargin && this . $printMarginColumn ) } , this . setAnimatedScroll = function ( e ) { this . setOption ( "animatedScroll" , e ) } , this . getAnimatedScroll = function ( ) { return this . $animatedScroll } , this . setShowInvisibles = function ( e ) { this . setOption ( "showInvisibles" , e ) } , this . getShowInvisibles = function ( ) { return this . getOption ( "showInvisibles" ) } , this . getDisplayIndentGuides = function ( ) { return this . getOption ( "displayIndentGuides" ) } , this . setDisplayIndentGuides = function ( e ) { this . setOption ( "displayIndentGuides" , e ) } , this . setShowPrintMargin = function ( e ) { this . setOption ( "showPrintMargin" , e ) } , this . getShowPrintMargin = function ( ) { return this . getOption ( "showPrintMargin" ) } , this . setPrintMarginColumn = function ( e ) { this . setOption ( "printMarginColumn" , e ) } , this . getPrintMarginColumn = function ( ) { return this . getOption ( "printMarginColumn" ) } , this . getShowGutter = function ( ) { return this . getOption ( "showGutter" ) } , this . setShowGutter = function ( e ) { return this . setOption ( "showGutter" , e ) } , this . getFadeFoldWidgets = function ( ) { return this . getOption ( "fadeFoldWidgets" ) } , this . setFadeFoldWidgets = function ( e ) { this . setOption ( "fadeFoldWidgets" , e ) } , this . setHighlightGutterLine = function ( e ) { this . setOption ( "highlightGutterLine" , e ) } , this . getHighlightGutterLine = function ( ) { return this . getOption ( "highlightGutterLine" ) } , this . $updateGutterLineHighlight = function ( ) { var e = this . $cursorLayer . $pixelPos , t = this . layerConfig . lineHeight ; if ( this . session . getUseWrapMode ( ) ) { var n = this . session . selection . getCursor ( ) ; n . column = 0 , e = this . $cursorLayer . getPixelPosition ( n , ! 0 ) , t *= this . session . getRowLength ( n . row ) } this . $gutterLineHighlight . style . top = e . top - this . layerConfig . offset + "px" , this . $gutterLineHighlight . style . height = t + "px" } , this . $updatePr
l . $mouseHandler . $clickSelection && 1 == C . length && C [ 0 ] . isEmpty ( ) && ( C [ 0 ] = l . $mouseHandler . $clickSelection . clone ( ) ) , C . forEach ( l . addSelectionMarker , l ) , l . updateSelectionMarkers ( ) , l . $blockScrolling -- ) } ; l . $blockScrolling ++ , h && ! a ? c . toSingleRange ( ) : ! h && a && ( N = c . toOrientedRange ( ) , l . addSelectionMarker ( N ) ) , o ? w = b . documentToScreenPosition ( c . lead ) : c . moveToPosition ( p ) , l . $blockScrolling -- , E = { row : - 1 , column : - 1 } ; var L = function ( e ) { clearInterval ( O ) , l . removeSelectionMarkers ( C ) , C . length || ( C = [ c . toOrientedRange ( ) ] ) , l . $blockScrolling ++ , N && ( l . removeSelectionMarker ( N ) , c . toSingleRange ( N ) ) ; for ( var t = 0 ; t < C . length ; t ++ ) c . addRange ( C [ t ] ) ; l . inVirtualSelectionMode = ! 1 , l . $mouseHandler . $clickSelection = null , l . $blockScrolling -- } , A = k ; r . capture ( l . container , y , L ) ; var O = setInterval ( function ( ) { A ( ) } , 20 ) ; return e . preventDefault ( ) } } } var r = e ( "../lib/event" ) , i = e ( "../lib/useragent" ) ; t . onMouseDown = o } ) , ace . define ( "ace/commands/multi_select_commands" , [ "require" , "exports" , "module" , "ace/keyboard/hash_handler" ] , function ( e , t , n ) { t . defaultCommands = [ { name : "addCursorAbove" , exec : function ( e ) { e . selectMoreLines ( - 1 ) } , bindKey : { win : "Ctrl-Alt-Up" , mac : "Ctrl-Alt-Up" } , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "addCursorBelow" , exec : function ( e ) { e . selectMoreLines ( 1 ) } , bindKey : { win : "Ctrl-Alt-Down" , mac : "Ctrl-Alt-Down" } , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "addCursorAboveSkipCurrent" , exec : function ( e ) { e . selectMoreLines ( - 1 , ! 0 ) } , bindKey : { win : "Ctrl-Alt-Shift-Up" , mac : "Ctrl-Alt-Shift-Up" } , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "addCursorBelowSkipCurrent" , exec : function ( e ) { e . selectMoreLines ( 1 , ! 0 ) } , bindKey : { win : "Ctrl-Alt-Shift-Down" , mac : "Ctrl-Alt-Shift-Down" } , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectMoreBefore" , exec : function ( e ) { e . selectMore ( - 1 ) } , bindKey : { win : "Ctrl-Alt-Left" , mac : "Ctrl-Alt-Left" } , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectMoreAfter" , exec : function ( e ) { e . selectMore ( 1 ) } , bindKey : { win : "Ctrl-Alt-Right" , mac : "Ctrl-Alt-Right" } , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectNextBefore" , exec : function ( e ) { e . selectMore ( - 1 , ! 0 ) } , bindKey : { win : "Ctrl-Alt-Shift-Left" , mac : "Ctrl-Alt-Shift-Left" } , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "selectNextAfter" , exec : function ( e ) { e . selectMore ( 1 , ! 0 ) } , bindKey : { win : "Ctrl-Alt-Shift-Right" , mac : "Ctrl-Alt-Shift-Right" } , scrollIntoView : "cursor" , readOnly : ! 0 } , { name : "splitIntoLines" , exec : function ( e ) { e . multiSelect . splitIntoLines ( ) } , bindKey : { win : "Ctrl-Alt-L" , mac : "Ctrl-Alt-L" } , readOnly : ! 0 } , { name : "alignCursors" , exec : function ( e ) { e . alignCursors ( ) } , bindKey : { win : "Ctrl-Alt-A" , mac : "Ctrl-Alt-A" } , scrollIntoView : "cursor" } , { name : "findAll" , exec : function ( e ) { e . findAll ( ) } , bindKey : { win : "Ctrl-Alt-K" , mac : "Ctrl-Alt-G" } , scrollIntoView : "cursor" , readOnly : ! 0 } ] , t . multiSelectCommands = [ { name : "singleSelection" , bindKey : "esc" , exec : function ( e ) { e . exitMultiSelectMode ( ) } , scrollIntoView : "cursor" , readOnly : ! 0 , isAvailable : function ( e ) { return e && e . inMultiSelectMode } } ] ; var r = e ( "../keyboard/hash_handler" ) . HashHandler ; t . keyboardHandler = new r ( t . multiSelectCommands ) } ) , ace . define ( "ace/multi_select" , [ "require" , "exports" , "module" , "ace/range_list" , "ace/range" , "ace/selection" , "ace/mouse/multi_select_handler" , "ace/lib/event" , "ace/lib/lang" , "ace/commands/multi_select_commands" , "ace/search" , "ace/edit_session" , "ace/editor" , "ace/config" ] , function ( e , t , n ) { function h ( e , t , n ) { return c . $options . wrap = ! 0 , c . $options . needle = t , c . $options . backwards = n == - 1 , c . find ( e ) } function v ( e , t ) { return e . row == t . row && e . column == t . column } function m ( e ) { e . $multiselectOnSessionChange || ( e . $onAddRange = e . $onAddRange . bind ( e ) , e . $onRemoveRange = e . $onRemoveRange . bind ( e ) , e . $onMultiSelect = e . $onMultiSelect . bind ( e ) , e . $onSingleSelect = e . $onSingleSelect . bind ( e ) , e . $multiselectOnSessionChange = t . onSessionChange . bind ( e ) , e . $checkMultiselectChange = e . $checkMultiselectChange . bind ( e ) , e . $multiselectOnSessionChange ( e ) , e . on ( "changeSession" , e . $multiselectOnSessionChange ) , e . on ( "mousedown" , o ) , e . commands . addCommands ( f . defaultCommands ) , g ( e ) ) } function g ( e ) { function r ( t ) { n && ( e . renderer . setMouseCursor ( "" ) , n = ! 1 ) } var t = e . textInput . getElement ( ) , n = ! 1 ; u . addListener ( t , "keydown" , function ( t ) { var i = 18 == t . keyCode && ! ( t . ctrlKey || t . shiftKey || t . metaKey ) ; e . $blockSelectEnabled && i ? n || ( e . renderer . setMouse
} ; return u && ( c . textarea = u ) , i . addListener ( window , "resize" , c . onResize ) , l . on ( "destroy" , function ( ) { i . removeListener ( window , "resize" , c . onResize ) , c . editor . container . env = null } ) , l . container . env = l . env = c , l } , t . createEditSession = function ( e , t ) { var n = new o ( e , t ) ; return n . setUndoManager ( new u ) , n } , t . EditSession = o , t . UndoManager = u , t . version = "1.2.5" } ) , function ( ) { ace . require ( [ "ace/ace" ] , function ( a ) { a && ( a . config . init ( ! 0 ) , a . define = ace . define ) , window . ace || ( window . ace = a ) ; for ( var key in a ) a . hasOwnProperty ( key ) && ( window . ace [ key ] = a [ key ] ) } ) } ( ) , ace . define ( "ace/ext/modelist" , [ "require" , "exports" , "module" ] , function ( e , t , n ) { "use strict" ; function i ( e ) { for ( var t = a . text , n = e . split ( /[\/\\]/ ) . pop ( ) , i = 0 ; i < r . length ; i ++ ) if ( r [ i ] . supportsFile ( n ) ) { t = r [ i ] ; break } return t } var r = [ ] , s = function ( e , t , n ) { this . name = e , this . caption = t , this . mode = "ace/mode/" + e , this . extensions = n ; var r ; r = /\^/ . test ( n ) ? n . replace ( /\|(\^)?/g , function ( e , t ) { return "$|" + ( t ? "^" : "^.*\\." ) } ) + "$" : "^.*\\.(" + n + ")$" , this . extRe = new RegExp ( r , "gi" ) } ; s . prototype . supportsFile = function ( e ) { return e . match ( this . extRe ) } ; var o = { ABAP : [ "abap" ] , ABC : [ "abc" ] , ActionScript : [ "as" ] , ADA : [ "ada|adb" ] , Apache _Conf : [ "^htaccess|^htgroups|^htpasswd|^conf|htaccess|htgroups|htpasswd" ] , AsciiDoc : [ "asciidoc|adoc" ] , Assembly _x86 : [ "asm|a" ] , AutoHotKey : [ "ahk" ] , BatchFile : [ "bat|cmd" ] , C _Cpp : [ "cpp|c|cc|cxx|h|hh|hpp|ino" ] , C9Search : [ "c9search_results" ] , Cirru : [ "cirru|cr" ] , Clojure : [ "clj|cljs" ] , Cobol : [ "CBL|COB" ] , coffee : [ "coffee|cf|cson|^Cakefile" ] , ColdFusion : [ "cfm" ] , CSharp : [ "cs" ] , CSS : [ "css" ] , Curly : [ "curly" ] , D : [ "d|di" ] , Dart : [ "dart" ] , Diff : [ "diff|patch" ] , Dockerfile : [ "^Dockerfile" ] , Dot : [ "dot" ] , Drools : [ "drl" ] , Dummy : [ "dummy" ] , DummySyntax : [ "dummy" ] , Eiffel : [ "e|ge" ] , EJS : [ "ejs" ] , Elixir : [ "ex|exs" ] , Elm : [ "elm" ] , Erlang : [ "erl|hrl" ] , Forth : [ "frt|fs|ldr|fth|4th" ] , Fortran : [ "f|f90" ] , FTL : [ "ftl" ] , Gcode : [ "gcode" ] , Gherkin : [ "feature" ] , Gitignore : [ "^.gitignore" ] , Glsl : [ "glsl|frag|vert" ] , Gobstones : [ "gbs" ] , golang : [ "go" ] , Groovy : [ "groovy" ] , HAML : [ "haml" ] , Handlebars : [ "hbs|handlebars|tpl|mustache" ] , Haskell : [ "hs" ] , Haskell _Cabal : [ "cabal" ] , haXe : [ "hx" ] , HTML : [ "html|htm|xhtml" ] , HTML _Elixir : [ "eex|html.eex" ] , HTML _Ruby : [ "erb|rhtml|html.erb" ] , INI : [ "ini|conf|cfg|prefs" ] , Io : [ "io" ] , Jack : [ "jack" ] , Jade : [ "jade" ] , Java : [ "java" ] , JavaScript : [ "js|jsm|jsx" ] , JSON : [ "json" ] , JSONiq : [ "jq" ] , JSP : [ "jsp" ] , JSX : [ "jsx" ] , Julia : [ "jl" ] , Kotlin : [ "kt|kts" ] , LaTeX : [ "tex|latex|ltx|bib" ] , LESS : [ "less" ] , Liquid : [ "liquid" ] , Lisp : [ "lisp" ] , LiveScript : [ "ls" ] , LogiQL : [ "logic|lql" ] , LSL : [ "lsl" ] , Lua : [ "lua" ] , LuaPage : [ "lp" ] , Lucene : [ "lucene" ] , Makefile : [ "^Makefile|^GNUmakefile|^makefile|^OCamlMakefile|make" ] , Markdown : [ "md|markdown" ] , Mask : [ "mask" ] , MATLAB : [ "matlab" ] , Maze : [ "mz" ] , MEL : [ "mel" ] , MUSHCode : [ "mc|mush" ] , MySQL : [ "mysql" ] , Nix : [ "nix" ] , NSIS : [ "nsi|nsh" ] , ObjectiveC : [ "m|mm" ] , OCaml : [ "ml|mli" ] , Pascal : [ "pas|p" ] , Perl : [ "pl|pm" ] , pgSQL : [ "pgsql" ] , PHP : [ "php|phtml|shtml|php3|php4|php5|phps|phpt|aw|ctp|module" ] , Powershell : [ "ps1" ] , Praat : [ "praat|praatscript|psc|proc" ] , Prolog : [ "plg|prolog" ] , Properties : [ "properties" ] , Protobuf : [ "proto" ] , Python : [ "py" ] , R : [ "r" ] , Razor : [ "cshtml|asp" ] , RDoc : [ "Rd" ] , RHTML : [ "Rhtml" ] , RST : [ "rst" ] , Ruby : [ "rb|ru|gemspec|rake|^Guardfile|^Rakefile|^Gemfile" ] , Rust : [ "rs" ] , SASS : [ "sass" ] , SCAD : [ "scad" ] , Scala : [ "scala" ] , Scheme : [ "scm|sm|rkt|oak|scheme" ] , SCSS : [ "scss" ] , SH : [ "sh|bash|^.bashrc" ] , SJS : [ "sjs" ] , Smarty : [ "smarty|tpl" ] , snippets : [ "snippets" ] , Soy _Template : [ "soy" ] , Space : [ "space" ] , SQL : [ "sql" ] , SQLServer : [ "sqlserver" ] , Stylus : [ "styl|stylus" ] , SVG : [ "svg" ] , Swift : [ "swift" ] , Tcl : [ "tcl" ] , Tex : [ "tex" ] , Text : [ "txt" ] , Textile : [ "textile" ] , Toml : [ "toml" ] , Twig : [ "twig|swig" ] , Typescript : [ "ts|typescript|str" ] , TSX : [ "tsx" ] , Vala : [ "vala" ] , VBScript : [ "vbs|vb" ] , Velocity : [ "vm" ] , Verilog : [ "v|vh|sv|svh" ] , VHDL : [ "vhd|vhdl" ] , Wollok : [ "wlk|wpgm|wtest" ] , XML : [ "xml|rdf|rss|wsdl|xslt|atom|mathml|mml|xul|xbl|xaml" ] , XQuery : [ "xq" ] , YAML : [ "yaml|yml" ] , Django : [ "html" ] } , u = { ObjectiveC : "Objective-C" , CSharp : "C#" , golang : "Go" , C _Cpp : "C and C++" , coffee : "CoffeeScript" , HTML _Ruby : "HTML (Ruby)" , HTML _Elixir : "HTML (Elixir)" , FTL : "FreeMarker" } , a = { } ; for ( var f in o ) { var l = o [ f ] , c = ( u [ f ] || f ) . replace ( /_/g , " " ) , h = f . toLowerCase ( ) , p = new s ( h , c , l [ 0 ] ) ; a [ h ] = p , r . push ( p ) } n . exports = { getModeForPath : i , modes : r , modesByName : a } } ) , function ( ) { ace . req
e . pop ( ) } } } , this . getFoldWidgetRange = function ( e , t , n ) { var r = this . _getFirstTagInLine ( e , n ) ; if ( ! r ) return null ; var a , i = r . closing || r . selfClosing , o = [ ] ; if ( i ) { for ( var f = new u ( e , n , r . end . column ) , c = { row : n , column : r . start . column } ; a = this . _readTagBackward ( f ) ; ) if ( a . selfClosing ) { if ( ! o . length ) return a . start . column += a . tagName . length + 2 , a . end . column -= 2 , s . fromPoints ( a . start , a . end ) } else if ( a . closing ) o . push ( a ) ; else if ( this . _pop ( o , a ) , 0 == o . length ) return a . start . column += a . tagName . length + 2 , a . start . row == a . end . row && a . start . column < a . end . column && ( a . start . column = a . end . column ) , s . fromPoints ( a . start , c ) } else { var f = new u ( e , n , r . start . column ) , l = { row : n , column : r . start . column + r . tagName . length + 2 } ; for ( r . start . row == r . end . row && ( l . column = r . end . column ) ; a = this . _readTagForward ( f ) ; ) if ( a . selfClosing ) { if ( ! o . length ) return a . start . column += a . tagName . length + 2 , a . end . column -= 2 , s . fromPoints ( a . start , a . end ) } else if ( a . closing ) { if ( this . _pop ( o , a ) , 0 == o . length ) return s . fromPoints ( l , a . start ) } else o . push ( a ) } } } ) . call ( a . prototype ) } ) , ace . define ( "ace/mode/xml" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/mode/text" , "ace/mode/xml_highlight_rules" , "ace/mode/behaviour/xml" , "ace/mode/folding/xml" , "ace/worker/worker_client" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "../lib/lang" ) , s = e ( "./text" ) . Mode , o = e ( "./xml_highlight_rules" ) . XmlHighlightRules , u = e ( "./behaviour/xml" ) . XmlBehaviour , a = e ( "./folding/xml" ) . FoldMode , f = e ( "../worker/worker_client" ) . WorkerClient , l = function ( ) { this . HighlightRules = o , this . $behaviour = new u , this . foldingRules = new a } ; r . inherits ( l , s ) , function ( ) { this . voidElements = i . arrayToMap ( [ ] ) , this . blockComment = { start : "<!--" , end : "-->" } , this . createWorker = function ( e ) { var t = new f ( [ "ace" ] , "ace/mode/xml_worker" , "Worker" ) ; return t . attachToDocument ( e . getDocument ( ) ) , t . on ( "error" , function ( t ) { e . setAnnotations ( t . data ) } ) , t . on ( "terminate" , function ( ) { e . clearAnnotations ( ) } ) , t } , this . $id = "ace/mode/xml" } . call ( l . prototype ) , t . Mode = l } ) , ace . define ( "ace/mode/css_highlight_rules" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/lib/lang" , "ace/mode/text_highlight_rules" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , s = ( e ( "../lib/lang" ) , e ( "./text_highlight_rules" ) . TextHighlightRules ) , o = t . supportType = " align - content | align - items | align - self | all | animation | animation - delay | animation - direction | animation - duration | animation - fill - mode | animation - iteration - count | animation - name | animation - play - state | animation - timing - function | backface - visibility | background | background - attachment | background - blend - mode | background - clip | background - color | background - image | background - origin | background - position | background - repeat | background - size | border | border - bottom | border - bottom - color | border - bottom - left - radius | border - bottom - right - radius | border - bottom - style | border - bottom - width | border - collapse | border - color | border - image | border - image - outset | border - image - repeat | border - image - slice | border - image - source | border - image - width | border - left | border - left - color | border - left - style | border - left - width | border - radius | border - right | border - right - color | border - right - style | border - right - width | border - spacing | border - style | border - top | border - top - color | border - top - left - radius | border - top - right - radius | border - top - style | border - top - width | border - width | bottom | box - shadow | box - sizing | caption - side | clear | clip | color | column - count | column - fill | column - gap | column - rule | column - rule - color | column - rule - style | column - rule - width | column - span | column - width | columns | content | counter - increment | counter - reset | cursor | direction | display | empty - cells | filter | flex | flex - basis | flex - direction | flex - flow | flex - grow | flex - shrink | flex - wrap | float | font | font - family | font - size | font - size - adjust | font - stretch | font - style | font - variant | font - weight | hanging - punctuation | height | justify - content | left | letter - spacing | line - height | list - style | list - style - image | list - style - position | list - style - type | margin | margin - bottom | margin - left | margin - right | margin - top | max - height | max - width | min - height | min - width | nav - down | nav - index | nav - left | nav - right | nav - up | opacity | order | outline | outline - color | outline - offset | outline - style | outline - width | overflow | overflow - x | overflow - y | padding | padding - bottom | padding - left | padding - right | padding - top | page - break - after | page - break - before |
} , { token : "string.blockquote" , regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+" , next : "blockquote" } , { token : "constant" , regex : "^ {0,2}(?:(?: ?\\* ?){3,}|(?: ?\\- ?){3,}|(?: ?\\_ ?){3,})\\s*$" , next : "allowBlock" } , { token : "markup.list" , regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+" , next : "listblock-start" } , { include : "basic" } ) , this . addRules ( { basic : [ { token : "constant.language.escape" , regex : /\\[\\`*_{}\[\]()#+\-.!]/ } , { token : "support.function" , regex : "(`+)(.*?[^`])(\\1)" } , { token : [ "text" , "constant" , "text" , "url" , "string" , "text" ] , regex : '^([ ]{0,3}\\[)([^\\]]+)(\\]:\\s*)([^ ]+)(\\s*(?:["][^"]+["])?(\\s*))$' } , { token : [ "text" , "string" , "text" , "constant" , "text" ] , regex : "(\\[)(" + l ( "]" ) + ")(\\]\\s*\\[)(" + l ( "]" ) + ")(\\])" } , { token : [ "text" , "string" , "text" , "markup.underline" , "string" , "text" ] , regex : "(\\[)(" + l ( "]" ) + ')(\\]\\()((?:[^\\)\\s\\\\]|\\\\.|\\s(?=[^"]))*)(\\s*"' + l ( '"' ) + '"\\s*)?(\\))' } , { token : "string.strong" , regex : "([*]{2}|[_]{2}(?=\\S))(.*?\\S[*_]*)(\\1)" } , { token : "string.emphasis" , regex : "([*]|[_](?=\\S))(.*?\\S[*_]*)(\\1)" } , { token : [ "text" , "url" , "text" ] , regex : "(<)((?:https?|ftp|dict):[^'\">\\s]+|(?:mailto:)?[-.\\w]+\\@[-a-z0-9]+(?:\\.[-a-z0-9]+)*\\.[a-z]+)(>)" } ] , allowBlock : [ { token : "support.function" , regex : "^ {4}.+" , next : "allowBlock" } , { token : "empty_line" , regex : "^$" , next : "allowBlock" } , { token : "empty" , regex : "" , next : "start" } ] , header : [ { regex : "$" , next : "start" } , { include : "basic" } , { defaultToken : "heading" } ] , "listblock-start" : [ { token : "support.variable" , regex : /(?:\[[ x]\])?/ , next : "listblock" } ] , listblock : [ { token : "empty_line" , regex : "^$" , next : "start" } , { token : "markup.list" , regex : "^\\s{0,3}(?:[*+-]|\\d+\\.)\\s+" , next : "listblock-start" } , { include : "basic" , noEscape : ! 0 } , { token : "support.function" , regex : "^\\s*```\\s*[a-zA-Z]*(?:{.*?\\})?\\s*$" , next : "githubblock" } , { defaultToken : "list" } ] , blockquote : [ { token : "empty_line" , regex : "^\\s*$" , next : "start" } , { token : "string.blockquote" , regex : "^\\s*>\\s*(?:[*+-]|\\d+\\.)?\\s+" , next : "blockquote" } , { include : "basic" , noEscape : ! 0 } , { defaultToken : "string.blockquote" } ] , githubblock : [ { token : "support.function" , regex : "^\\s*```" , next : "start" } , { token : "support.function" , regex : ".+" } ] } ) , this . embedRules ( o , "jscode-" , [ { token : "support.function" , regex : "^\\s*```" , next : "pop" } ] ) , this . embedRules ( a , "htmlcode-" , [ { token : "support.function" , regex : "^\\s*```" , next : "pop" } ] ) , this . embedRules ( f , "csscode-" , [ { token : "support.function" , regex : "^\\s*```" , next : "pop" } ] ) , this . embedRules ( u , "xmlcode-" , [ { token : "support.function" , regex : "^\\s*```" , next : "pop" } ] ) , this . normalizeRules ( ) } ; r . inherits ( h , s ) , t . MarkdownHighlightRules = h } ) , ace . define ( "ace/mode/folding/markdown" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/folding/fold_mode" , "ace/range" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../../lib/oop" ) , i = e ( "./fold_mode" ) . FoldMode , s = e ( "../../range" ) . Range , o = t . FoldMode = function ( ) { } ; r . inherits ( o , i ) , function ( ) { this . foldingStartMarker = /^(?:[=-]+\s*$|#{1,6} |`{3})/ , this . getFoldWidget = function ( e , t , n ) { var r = e . getLine ( n ) ; return this . foldingStartMarker . test ( r ) ? "`" == r [ 0 ] && "start" == e . bgTokenizer . getState ( n ) ? "end" : "start" : "" } , this . getFoldWidgetRange = function ( e , t , n ) { function l ( t ) { return f = e . getTokens ( t ) [ 0 ] , f && 0 === f . type . lastIndexOf ( c , 0 ) } function h ( ) { var e = f . value [ 0 ] ; return "=" == e ? 6 : "-" == e ? 5 : 7 - f . value . search ( /[^#]/ ) } var r = e . getLine ( n ) , i = r . length , o = e . getLength ( ) , u = n , a = n ; if ( r . match ( this . foldingStartMarker ) ) { if ( "`" == r [ 0 ] ) { if ( "start" !== e . bgTokenizer . getState ( n ) ) { for ( ; ++ n < o && ( r = e . getLine ( n ) , ! ( "`" == r [ 0 ] & "```" == r . substring ( 0 , 3 ) ) ) ; ) ; return new s ( u , i , n , 0 ) } for ( ; n -- > 0 && ( r = e . getLine ( n ) , ! ( "`" == r [ 0 ] & "```" == r . substring ( 0 , 3 ) ) ) ; ) ; return new s ( n , r . length , u , 0 ) } var f , c = "markup.heading" ; if ( l ( n ) ) { for ( var p = h ( ) ; ++ n < o ; ) if ( l ( n ) ) { var d = h ( ) ; if ( d >= p ) break } if ( a = n - ( f && [ "=" , "-" ] . indexOf ( f . value [ 0 ] ) != - 1 ? 2 : 1 ) , a > u ) for ( ; a > u && /^\s*$/ . test ( e . getLine ( a ) ) ; ) a -- ; if ( a > u ) { var v = e . getLine ( a ) . length ; return new s ( u , i , a , v ) } } } } } . call ( o . prototype ) } ) , ace . define ( "ace/mode/markdown" , [ "require" , "exports" , "module" , "ace/lib/oop" , "ace/mode/text" , "ace/mode/javascript" , "ace/mode/xml" , "ace/mode/html" , "ace/mode/markdown_highlight_rules" , "ace/mode/folding/markdown" ] , function ( e , t , n ) { "use strict" ; var r = e ( "../lib/oop" ) , i = e ( "./text" ) . Mode , s = e ( "./javascript" ) . Mode , o = e ( "./xml" ) . Mode , u
return r } } function Vr ( n ) { return function ( t , r , e ) { var u = - 1 , i = Xu ( t ) ; e = e ( t ) ; for ( var o = e . length ; o -- ; ) { var f = e [ n ? o : ++ u ] ; if ( ! 1 === r ( i [ f ] , f , i ) ) break } return t } } function Kr ( n , t , r ) { function e ( ) { return ( this && this !== Zn && this instanceof e ? i : n ) . apply ( u ? r : this , arguments ) } var u = 1 & t , i = Jr ( n ) ; return e } function Gr ( n ) { return function ( t ) { t = Ru ( t ) ; var r = Bn . test ( t ) ? $ ( t ) : F , e = r ? r [ 0 ] : t . charAt ( 0 ) ; return t = r ? Wr ( r , 1 ) . join ( "" ) : t . slice ( 1 ) , e [ n ] ( ) + t } } function Hr ( n ) { return function ( t ) { return h ( Tu ( Mu ( t ) . replace ( In , "" ) ) , n , "" ) } } function Jr ( n ) { return function ( ) { var t = arguments ; switch ( t . length ) { case 0 : return new n ; case 1 : return new n ( t [ 0 ] ) ; case 2 : return new n ( t [ 0 ] , t [ 1 ] ) ; case 3 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] ) ; case 4 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] ) ; case 5 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] ) ; case 6 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] , t [ 5 ] ) ; case 7 : return new n ( t [ 0 ] , t [ 1 ] , t [ 2 ] , t [ 3 ] , t [ 4 ] , t [ 5 ] , t [ 6 ] ) } var r = uo ( n . prototype ) , t = n . apply ( r , t ) ; return yu ( t ) ? t : r } } function Yr ( n , t , e ) { function u ( ) { for ( var o = arguments . length , f = Gu ( o ) , c = o , a = ye ( u ) ; c -- ; ) f [ c ] = arguments [ c ] ; return c = 3 > o && f [ 0 ] !== a && f [ o - 1 ] !== a ? [ ] : C ( f , a ) , o -= c . length , o < e ? ce ( n , t , ne , u . placeholder , F , f , c , F , F , e - o ) : r ( this && this !== Zn && this instanceof u ? i : n , this , f ) } var i = Jr ( n ) ; return u } function Qr ( n ) { return function ( t , r , e ) { var u = Xu ( t ) ; if ( ! hu ( t ) ) { var i = be ( r , 3 ) ; t = Bu ( t ) , r = function ( n ) { return i ( u [ n ] , n , u ) } } return r = n ( t , r , e ) , - 1 < r ? u [ i ? t [ r ] : r ] : F } } function Xr ( n ) { return _e ( function ( t ) { var r = t . length , e = r , u = zn . prototype . thru ; for ( n && t . reverse ( ) ; e -- ; ) { var i = t [ e ] ; if ( "function" != typeof i ) throw new ri ( "Expected a function" ) ; if ( u && ! o && "wrapper" == de ( i ) ) var o = new zn ( [ ] , ( ! 0 ) ) } for ( e = o ? e : r ; ++ e < r ; ) var i = t [ e ] , u = de ( i ) , f = "wrapper" == u ? po ( i ) : F , o = f && ze ( f [ 0 ] ) && 424 == f [ 1 ] && ! f [ 4 ] . length && 1 == f [ 9 ] ? o [ de ( f [ 0 ] ) ] . apply ( o , f [ 3 ] ) : 1 == i . length && ze ( i ) ? o [ u ] ( ) : o . thru ( i ) ; return function ( ) { var n = arguments , e = n [ 0 ] ; if ( o && 1 == n . length && cf ( e ) && 200 <= e . length ) return o . plant ( e ) . value ( ) ; for ( var u = 0 , n = r ? t [ u ] . apply ( this , n ) : e ; ++ u < r ; ) n = t [ u ] . call ( this , n ) ; return n } } ) } function ne ( n , t , r , e , u , i , o , f , c , a ) { function l ( ) { for ( var d = arguments . length , y = Gu ( d ) , b = d ; b -- ; ) y [ b ] = arguments [ b ] ; if ( _ ) { var x , j = ye ( l ) , b = y . length ; for ( x = 0 ; b -- ; ) y [ b ] === j && ++ x } if ( e && ( y = Dr ( y , e , u , _ ) ) , i && ( y = Mr ( y , i , o , _ ) ) , d -= x , _ && d < a ) return j = C ( y , j ) , ce ( n , t , ne , l . placeholder , r , y , j , f , c , a - d ) ; if ( j = h ? r : this , b = p ? j [ n ] : n , d = y . length , f ) { x = y . length ; for ( var w = Di ( f . length , x ) , m = Tr ( y ) ; w -- ; ) { var A = f [ w ] ; y [ w ] = Se ( A , x ) ? m [ A ] : F } } else v && 1 < d && y . reverse ( ) ; return s && c < d && ( y . length = c ) , this && this !== Zn && this instanceof l && ( b = g || Jr ( b ) ) , b . apply ( j , y ) } var s = 128 & t , h = 1 & t , p = 2 & t , _ = 24 & t , v = 512 & t , g = p ? F : Jr ( n ) ; return l } function te ( n , t ) { return function ( r , e ) { return Dt ( r , n , t ( e ) ) } } function re ( n , t ) { return function ( r , e ) { var u ; if ( r === F && e === F ) return t ; if ( r !== F && ( u = r ) , e !== F ) { if ( u === F ) return e ; "string" == typeof r || "string" == typeof e ? ( r = wr ( r ) , e = wr ( e ) ) : ( r = jr ( r ) , e = jr ( e ) ) , u = n ( r , e ) } return u } } function ee ( n ) { return _e ( function ( t ) { return t = l ( t , S ( be ( ) ) ) , sr ( function ( e ) { var u = this ; return n ( t , function ( n ) { return r ( n , u , e ) } ) } ) } ) } function ue ( n , t ) { t = t === F ? " " : wr ( t ) ; var r = t . length ; return 2 > r ? r ? lr ( t , n ) : t : ( r = lr ( t , Ii ( n / T ( t ) ) ) , Bn . test ( t ) ? Wr ( $ ( r ) , 0 , n ) . join ( "" ) : r . slice ( 0 , n ) ) } function ie ( n , t , e , u ) { function i ( ) { for ( var t = - 1 , c = arguments . length , a = - 1 , l = u . length , s = Gu ( l + c ) , h = this && this !== Zn && this instanceof i ? f : n ; ++ a < l ; ) s [ a ] = u [ a ] ; for ( ; c -- ; ) s [ a ++ ] = arguments [ ++ t ] ; return r ( h , o ? e : this , s ) } var o = 1 & t , f = Jr ( n ) ; return i } function oe ( n ) { return function ( t , r , e ) { e && "number" != typeof e && Ie ( t , r , e ) && ( r = e = F ) , t = ku ( t ) , r === F ? ( r = t , t = 0 ) : r = ku ( r ) , e = e === F ? t < r ? 1 : - 1 : ku ( e ) ; var u = - 1 ; r = Ci ( Ii ( ( r - t ) / ( e || 1 ) ) , 0 ) ; for ( var i = Gu ( r ) ; r -- ; ) i [ n ? r : ++ u ] = t , t += e ; return i } } function fe ( n ) { return function ( t , r ) { return "string" == typeof t && "string" == typeof r || ( t = Su ( t ) , r = Su ( r ) ) , n ( t , r ) } } function ce ( n , t , r , e , u , i , o , f , c , a ) { var l = 8 & t , s = l ? o : F ; o = l ? F : o ; var h = l ? i : F ; return i = l ? F : i , t = ( t | ( l ? 32 : 64 ) ) & ~ ( l ? 64 : 32 ) , 4 & t || ( t &= - 4 ) , u = [ n , t , u , h , s , i , o , f , c , a ] , r = r . apply ( F , u ) , ze ( n ) && bo ( r , u ) , r . placeholder = e , Ce ( r , n , t ) } function ae ( n ) { var t = Qu [ n ] ; return function ( n , r ) { if ( n = Su ( n ) , r = Di ( Eu ( r ) , 292 ) ) { var e = ( Ru ( n ) + "e" ) . split ( "e" ) , e = t ( e [ 0 ] + "e" + ( + e [ 1 ] + r ) ) , e = ( Ru ( e ) + "e" ) . split ( "e" ) ; return + ( e [ 0 ] + "e" + ( + e [ 1 ] - r ) ) } return t ( n ) } } function le ( n ) { return function ( t ) { var r = go ( t ) ; return "[object Map]" == r ? L ( t ) : "[object Set]" == r ? M ( t ) : O ( t , n ( t ) ) } } f
r = i ? e ? new o : [ ] : yu ( n ) && vu ( o ) ? uo ( yi ( n ) ) : { } } return ( i ? u : Ot ) ( n , function ( n , e , u ) { return t ( r , n , e , u ) } ) , r } , On . unary = function ( n ) { return uu ( n , 1 ) } , On . union = zo , On . unionBy = Wo , On . unionWith = Bo , On . uniq = function ( n ) { return n && n . length ? mr ( n ) : [ ] } , On . uniqBy = function ( n , t ) { return n && n . length ? mr ( n , be ( t , 2 ) ) : [ ] } , On . uniqWith = function ( n , t ) { return t = "function" == typeof t ? t : F , n && n . length ? mr ( n , F , t ) : [ ] } , On . unset = function ( n , t ) { return null == n || Ar ( n , t ) } , On . unzip = Je , On . unzipWith = Ye , On . update = function ( n , t , r ) { return null == n ? n : _r ( n , t , Rr ( r ) ( Rt ( n , t ) ) , void 0 ) } , On . updateWith = function ( n , t , r , e ) { return e = "function" == typeof e ? e : F , null != n && ( n = _r ( n , t , Rr ( r ) ( Rt ( n , t ) ) , e ) ) , n } , On . values = Cu , On . valuesIn = function ( n ) { return null == n ? [ ] : I ( n , Lu ( n ) ) } , On . without = Lo , On . words = Tu , On . wrap = function ( n , t ) { return tf ( Rr ( t ) , n ) } , On . xor = Uo , On . xorBy = Co , On . xorWith = Do , On . zip = Mo , On . zipObject = function ( n , t ) { return Sr ( n || [ ] , t || [ ] , lt ) } , On . zipObjectDeep = function ( n , t ) { return Sr ( n || [ ] , t || [ ] , _r ) } , On . zipWith = To , On . entries = Wf , On . entriesIn = Bf , On . extend = bf , On . extendWith = xf , Pu ( On , On ) , On . add = Xf , On . attempt = Nf , On . camelCase = Lf , On . capitalize = Du , On . ceil = nc , On . clamp = function ( n , t , r ) { return r === F && ( r = t , t = F ) , r !== F && ( r = Su ( r ) , r = r === r ? r : 0 ) , t !== F && ( t = Su ( t ) , t = t === t ? t : 0 ) , dt ( Su ( n ) , t , r ) } , On . clone = function ( n ) { return yt ( n , 4 ) } , On . cloneDeep = function ( n ) { return yt ( n , 5 ) } , On . cloneDeepWith = function ( n , t ) { return t = "function" == typeof t ? t : F , yt ( n , 5 , t ) } , On . cloneWith = function ( n , t ) { return t = "function" == typeof t ? t : F , yt ( n , 4 , t ) } , On . conformsTo = function ( n , t ) { return null == t || xt ( n , t , Bu ( t ) ) } , On . deburr = Mu , On . defaultTo = function ( n , t ) { return null == n || n !== n ? t : n } , On . divide = tc , On . endsWith = function ( n , t , r ) { n = Ru ( n ) , t = wr ( t ) ; var e = n . length , e = r = r === F ? e : dt ( Eu ( r ) , 0 , e ) ; return r -= t . length , 0 <= r && n . slice ( r , e ) == t } , On . eq = su , On . escape = function ( n ) { return ( n = Ru ( n ) ) && Y . test ( n ) ? n . replace ( H , et ) : n } , On . escapeRegExp = function ( n ) { return ( n = Ru ( n ) ) && fn . test ( n ) ? n . replace ( on , "\\$&" ) : n } , On . every = function ( n , t , r ) { var e = cf ( n ) ? o : mt ; return r && Ie ( n , t , r ) && ( t = F ) , e ( n , be ( t , 3 ) ) } , On . find = No , On . findIndex = Pe , On . findKey = function ( n , t ) { return v ( n , be ( t , 3 ) , Ot ) } , On . findLast = Po , On . findLastIndex = Ze , On . findLastKey = function ( n , t ) { return v ( n , be ( t , 3 ) , St ) } , On . floor = rc , On . forEach = tu , On . forEachRight = ru , On . forIn = function ( n , t ) { return null == n ? n : fo ( n , be ( t , 3 ) , Lu ) } , On . forInRight = function ( n , t ) { return null == n ? n : co ( n , be ( t , 3 ) , Lu ) } , On . forOwn = function ( n , t ) { return n && Ot ( n , be ( t , 3 ) ) } , On . forOwnRight = function ( n , t ) { return n && St ( n , be ( t , 3 ) ) } , On . get = zu , On . gt = uf , On . gte = of , On . has = function ( n , t ) { return null != n && me ( n , t , Lt ) } , On . hasIn = Wu , On . head = Ve , On . identity = Fu , On . includes = function ( n , t , r , e ) { return n = hu ( n ) ? n : Cu ( n ) , r = r && ! e ? Eu ( r ) : 0 , e = n . length , 0 > r && ( r = Ci ( e + r , 0 ) ) , wu ( n ) ? r <= e && - 1 < n . indexOf ( t , r ) : ! ! e && - 1 < d ( n , t , r ) } , On . indexOf = function ( n , t , r ) { var e = null == n ? 0 : n . length ; return e ? ( r = null == r ? 0 : Eu ( r ) , 0 > r && ( r = Ci ( e + r , 0 ) ) , d ( n , t , r ) ) : - 1 } , On . inRange = function ( n , t , r ) { return t = ku ( t ) , r === F ? ( r = t , t = 0 ) : r = ku ( r ) , n = Su ( n ) , n >= Di ( t , r ) && n < Ci ( t , r ) } , On . invoke = Of , On . isArguments = ff , On . isArray = cf , On . isArrayBuffer = af , On . isArrayLike = hu , On . isArrayLikeObject = pu , On . isBoolean = function ( n ) { return ! 0 === n || ! 1 === n || bu ( n ) && "[object Boolean]" == Wt ( n ) } , On . isBuffer = lf , On . isDate = sf , On . isElement = function ( n ) { return bu ( n ) && 1 === n . nodeType && ! ju ( n ) } , On . isEmpty = function ( n ) { if ( null == n ) return ! 0 ; if ( hu ( n ) && ( cf ( n ) || "string" == typeof n || "function" == typeof n . splice || lf ( n ) || vf ( n ) || ff ( n ) ) ) return ! n . length ; var t = go ( n ) ; if ( "[object Map]" == t || "[object Set]" == t ) return ! n . size ; if ( We ( n ) ) return ! Jt ( n ) . length ; for ( var r in n ) if ( fi . call ( n , r ) ) return ! 1 ; return ! 0 } , On . isEqual = function ( n , t ) { return Nt ( n , t ) } , On . isEqualWith = function ( n , t , r ) { var e = ( r = "function" == typeof r ? r : F ) ? r ( n , t ) : F ; return e === F ? Nt ( n , t , F , r ) : ! ! e } , On . isError = _u , On . isFinite = function ( n ) { return "number" == typeof n && Bi ( n ) } , On . isFunction = vu , On . isInteger = gu , On . isLength = du , On . isMap = hf , On . isMatch = function ( n , t ) { return n === t || Zt ( n , t , je ( t ) ) } , On . isMatchWith = function ( n , t , r ) { return r = "function" == typeof r ? r : F , Zt ( n , t , je ( t ) , r ) } , On . isNaN = function ( n ) { return xu ( n ) && n != + n } , On . isNative = function ( n ) { if ( yo ( n ) ) throw new Ju ( "Unsupported core-js use. Try https://npms.io/search?q=ponyfill." ) ; return qt ( n ) } , On . isNil = function ( n ) { return null == n } , On . isNull = function ( n ) { return null === n } , On . isNumber = xu , On . isObject = yu , On