2015-10-15 13:01:16 +03:00
/ * *
2016-02-25 15:08:37 -06:00
* simplemde v1 . 10.1
2015-10-15 13:01:16 +03:00
* Copyright Next Step Webs , Inc .
* @ link https : //github.com/NextStepWebs/simplemde-markdown-editor
* @ license MIT
* /
2016-06-05 00:53:29 +01:00
! function ( e ) { if ( "object" == typeof exports && "undefined" != typeof module ) module . exports = e ( ) ; else if ( "function" == typeof define && define . amd ) define ( [ ] , e ) ; else { var t ; t = "undefined" != typeof window ? window : "undefined" != typeof global ? global : "undefined" != typeof self ? self : this , t . SimpleMDE = e ( ) } } ( function ( ) { var e ; return function t ( e , n , r ) { function i ( l , a ) { if ( ! n [ l ] ) { if ( ! e [ l ] ) { var s = "function" == typeof require && require ; if ( ! a && s ) return s ( l , ! 0 ) ; if ( o ) return o ( l , ! 0 ) ; var c = new Error ( "Cannot find module '" + l + "'" ) ; throw c . code = "MODULE_NOT_FOUND" , c } var u = n [ l ] = { exports : { } } ; e [ l ] [ 0 ] . call ( u . exports , function ( t ) { var n = e [ l ] [ 1 ] [ t ] ; return i ( n ? n : t ) } , u , u . exports , t , e , n , r ) } return n [ l ] . exports } for ( var o = "function" == typeof require && require , l = 0 ; l < r . length ; l ++ ) i ( r [ l ] ) ; return i } ( { 1 : [ function ( e , t , n ) { var r , i = 0 , o = ! 1 , l = ! 1 , a = "" , s = "" ; CodeMirror . defineMode ( "spell-checker" , function ( e , t ) { if ( ! o ) { o = ! 0 ; var n = new XMLHttpRequest ; n . open ( "GET" , "https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.aff" , ! 0 ) , n . onload = function ( e ) { 4 === n . readyState && 200 === n . status && ( a = n . responseText , i ++ , 2 == i && ( r = new Typo ( "en_US" , a , s , { platform : "any" } ) ) ) } , n . send ( null ) } if ( ! l ) { l = ! 0 ; var c = new XMLHttpRequest ; c . open ( "GET" , "https://cdn.jsdelivr.net/codemirror.spell-checker/latest/en_US.dic" , ! 0 ) , c . onload = function ( e ) { 4 === c . readyState && 200 === c . status && ( s = c . responseText , i ++ , 2 == i && ( r = new Typo ( "en_US" , a , s , { platform : "any" } ) ) ) } , c . send ( null ) } var u = '!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~ ' , d = { token : function ( e , t ) { var n = e . peek ( ) , i = "" ; if ( u . includes ( n ) ) return e . next ( ) , null ; for ( ; null != ( n = e . peek ( ) ) && ! u . includes ( n ) ; ) i += n , e . next ( ) ; return r && ! r . check ( i ) ? "spell-error" : null } } , f = CodeMirror . getMode ( e , e . backdrop || "text/plain" ) ; return CodeMirror . overlayMode ( f , d , ! 0 ) } ) , String . prototype . includes || ( String . prototype . includes = function ( ) { "use strict" ; return - 1 !== String . prototype . indexOf . apply ( this , arguments ) } ) } , { } ] , 2 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; function t ( e ) { var t = e . getWrapperElement ( ) ; e . state . fullScreenRestore = { scrollTop : window . pageYOffset , scrollLeft : window . pageXOffset , width : t . style . width , height : t . style . height } , t . style . width = "" , t . style . height = "auto" , t . className += " CodeMirror-fullscreen" , document . documentElement . style . overflow = "hidden" , e . refresh ( ) } function n ( e ) { var t = e . getWrapperElement ( ) ; t . className = t . className . replace ( /\s*CodeMirror-fullscreen\b/ , "" ) , document . documentElement . style . overflow = "" ; var n = e . state . fullScreenRestore ; t . style . width = n . width , t . style . height = n . height , window . scrollTo ( n . scrollLeft , n . scrollTop ) , e . refresh ( ) } e . defineOption ( "fullScreen" , ! 1 , function ( r , i , o ) { o == e . Init && ( o = ! 1 ) , ! o != ! i && ( i ? t ( r ) : n ( r ) ) } ) } ) } , { "../../lib/codemirror" : 7 } ] , 3 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" ] , i ) : i ( CodeMirror ) } ( function ( e ) { function t ( e ) { e . state . placeholder && ( e . state . placeholder . parentNode . removeChild ( e . state . placeholder ) , e . state . placeholder = null ) } function n ( e ) { t ( e ) ; var n = e . state . placeholder = document . createElement ( "pre" ) ; n . style . cssText = "height: 0; overflow: visible" , n . className = "CodeMirror-placeholder" ; var r = e . getOption ( "placeholder" ) ; "string" == typeof r && ( r = document . createTextNode ( r ) ) , n . appendChild ( r ) , e . display . lineSpace . insertBefore ( n , e . display . lineSpace . firstChild ) } function r ( e ) { o ( e ) && n ( e ) } function i ( e ) { var r = e . getWrapperElement ( ) , i = o ( e ) ; r . className = r . className . replace ( " CodeMirror-empty" , "" ) + ( i ? " CodeMirror-empty" : "" ) , i ? n ( e ) : t ( e ) } function o ( e ) { return 1 === e . lineCount ( ) && "" === e . getLine ( 0 ) } e . defineOption ( "placeholder" , "" , function ( n , o , l ) { var a = l && l != e . Init ; if ( o && ! a ) n . on ( "blur" , r ) , n . on ( "change" , i ) , n . on ( "swapDoc" , i ) , i ( n ) ; else if ( ! o && a ) { n . off ( "blur" , r ) , n . off ( "change" , i ) , n . off ( "swapDoc" , i ) , t ( n ) ; var s = n . getWrapperElement ( ) ; s . className = s . className . replace ( " CodeMirror-empty" , "" ) } o && ! n . hasFocus ( ) && r ( n ) } ) } ) } , { "../../lib/codemirror" : 7 } ] , 4 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ " . . / . . / lib / codemirror
} function Ae ( e ) { Ne ( e , Oe ( e , e . sel , null , ! 1 ) , zl ) } function Oe ( e , t , n , r ) { for ( var i , o = 0 ; o < t . ranges . length ; o ++ ) { var l = t . ranges [ o ] , a = t . ranges . length == e . sel . ranges . length && e . sel . ranges [ o ] , s = We ( e , l . anchor , a && a . anchor , n , r ) , c = We ( e , l . head , a && a . head , n , r ) ; ( i || s != l . anchor || c != l . head ) && ( i || ( i = t . ranges . slice ( 0 , o ) ) , i [ o ] = new de ( s , c ) ) } return i ? fe ( i , t . primIndex ) : t } function He ( e , t , n , r , i ) { var o = Zr ( e , t . line ) ; if ( o . markedSpans ) for ( var l = 0 ; l < o . markedSpans . length ; ++ l ) { var a = o . markedSpans [ l ] , s = a . marker ; if ( ( null == a . from || ( s . inclusiveLeft ? a . from <= t . ch : a . from < t . ch ) ) && ( null == a . to || ( s . inclusiveRight ? a . to >= t . ch : a . to > t . ch ) ) ) { if ( i && ( Il ( s , "beforeCursorEnter" ) , s . explicitlyCleared ) ) { if ( o . markedSpans ) { -- l ; continue } break } if ( ! s . atomic ) continue ; if ( n ) { var c , u = s . find ( 0 > r ? 1 : - 1 ) ; if ( ( 0 > r ? s . inclusiveRight : s . inclusiveLeft ) && ( u = Ie ( e , u , - r , u && u . line == t . line ? o : null ) ) , u && u . line == t . line && ( c = Fo ( u , n ) ) && ( 0 > r ? 0 > c : c > 0 ) ) return He ( e , u , t , r , i ) } var d = s . find ( 0 > r ? - 1 : 1 ) ; return ( 0 > r ? s . inclusiveLeft : s . inclusiveRight ) && ( d = Ie ( e , d , r , d . line == t . line ? o : null ) ) , d ? He ( e , d , t , r , i ) : null } } return t } function We ( e , t , n , r , i ) { var o = r || 1 , l = He ( e , t , n , o , i ) || ! i && He ( e , t , n , o , ! 0 ) || He ( e , t , n , - o , i ) || ! i && He ( e , t , n , - o , ! 0 ) ; return l ? l : ( e . cantEdit = ! 0 , Bo ( e . first , 0 ) ) } function Ie ( e , t , n , r ) { return 0 > n && 0 == t . ch ? t . line > e . first ? me ( e , Bo ( t . line - 1 ) ) : null : n > 0 && t . ch == ( r || Zr ( e , t . line ) ) . text . length ? t . line < e . first + e . size - 1 ? Bo ( t . line + 1 , 0 ) : null : new Bo ( t . line , t . ch + n ) } function De ( e ) { e . display . input . showSelection ( e . display . input . prepareSelection ( ) ) } function Ee ( e , t ) { for ( var n = e . doc , r = { } , i = r . cursors = document . createDocumentFragment ( ) , o = r . selection = document . createDocumentFragment ( ) , l = 0 ; l < n . sel . ranges . length ; l ++ ) if ( t !== ! 1 || l != n . sel . primIndex ) { var a = n . sel . ranges [ l ] ; if ( ! ( a . from ( ) . line >= e . display . viewTo || a . to ( ) . line < e . display . viewFrom ) ) { var s = a . empty ( ) ; ( s || e . options . showCursorWhenSelecting ) && Pe ( e , a . head , i ) , s || ze ( e , a , o ) } } return r } function Pe ( e , t , n ) { var r = ht ( e , t , "div" , null , null , ! e . options . singleCursorHeightPerLine ) , i = n . appendChild ( qi ( "div" , " " , "CodeMirror-cursor" ) ) ; if ( i . style . left = r . left + "px" , i . style . top = r . top + "px" , i . style . height = Math . max ( 0 , r . bottom - r . top ) * e . options . cursorHeight + "px" , r . other ) { var o = n . appendChild ( qi ( "div" , " " , "CodeMirror-cursor CodeMirror-secondarycursor" ) ) ; o . style . display = "" , o . style . left = r . other . left + "px" , o . style . top = r . other . top + "px" , o . style . height = . 85 * ( r . other . bottom - r . other . top ) + "px" } } function ze ( e , t , n ) { function r ( e , t , n , r ) { 0 > t && ( t = 0 ) , t = Math . round ( t ) , r = Math . round ( r ) , a . appendChild ( qi ( "div" , null , "CodeMirror-selected" , "position: absolute; left: " + e + "px; top: " + t + "px; width: " + ( null == n ? u - e : n ) + "px; height: " + ( r - t ) + "px" ) ) } function i ( t , n , i ) { function o ( n , r ) { return ft ( e , Bo ( t , n ) , "div" , d , r ) } var a , s , d = Zr ( l , t ) , f = d . text . length ; return eo ( ii ( d ) , n || 0 , null == i ? f : i , function ( e , t , l ) { var d , h , p , m = o ( e , "left" ) ; if ( e == t ) d = m , h = p = m . left ; else { if ( d = o ( t - 1 , "right" ) , "rtl" == l ) { var g = m ; m = d , d = g } h = m . left , p = d . right } null == n && 0 == e && ( h = c ) , d . top - m . top > 3 && ( r ( h , m . top , null , m . bottom ) , h = c , m . bottom < d . top && r ( h , m . bottom , null , d . top ) ) , null == i && t == f && ( p = u ) , ( ! a || m . top < a . top || m . top == a . top && m . left < a . left ) && ( a = m ) , ( ! s || d . bottom > s . bottom || d . bottom == s . bottom && d . right > s . right ) && ( s = d ) , c + 1 > h && ( h = c ) , r ( h , d . top , p - h , d . bottom ) } ) , { start : a , end : s } } var o = e . display , l = e . doc , a = document . createDocumentFragment ( ) , s = Ge ( e . display ) , c = s . left , u = Math . max ( o . sizerWidth , Ve ( e ) - o . sizer . offsetLeft ) - s . right , d = t . from ( ) , f = t . to ( ) ; if ( d . line == f . line ) i ( d . line , d . ch , f . ch ) ; else { var h = Zr ( l , d . line ) , p = Zr ( l , f . line ) , m = yr ( h ) == yr ( p ) , g = i ( d . line , d . ch , m ? h . text . length + 1 : null ) . end , v = i ( f . line , m ? 0 : null , f . ch ) . start ; m && ( g . top < v . top - 2 ? ( r ( g . right , g . top , null , g . bottom ) , r ( c , v . top , v . left , v . bottom ) ) : r ( g . right , g . top , v . left - g . right , g . bottom ) ) , g . bottom < v . top && r ( c , g . bottom , null , v . top ) } n . appendChild ( a ) } function Be ( e ) { if ( e . state . focused ) { var t = e . display ; clearInterval ( t . blinker ) ; var n = ! 0 ; t . cursorDiv . style . visibility = "" , e . options . cursorBlinkRate > 0 ? t . blinker = setInterval ( function ( ) { t . cursorDiv . style . visibility = ( n = ! n ) ? "" : "hidden" } , e . options . cursorBlinkRate ) : e . options . cursorBlinkRate < 0 && ( t . cursorDiv . style . visibility = "hidden" ) } } function Fe ( e , t ) { e . doc . mode . startState && e . doc . frontier < e . display . viewTo && e . state . highlight . set ( t , Bi ( je , e ) ) } function je ( e ) { var t = e . doc ; if ( t . frontier < t . f
var r = un ( t , e ) ; Co && ( Qo = r ? n : null , ! r && 88 == n && ! ra && ( Oo ? e . metaKey : e . ctrlKey ) && t . replaceSelection ( "" , null , "cut" ) ) , 18 != n || /\bCodeMirror-crosshair\b/ . test ( t . display . lineDiv . className ) || hn ( t ) } } function hn ( e ) { function t ( e ) { 18 != e . keyCode && e . altKey || ( Zl ( n , "CodeMirror-crosshair" ) , Wl ( document , "keyup" , t ) , Wl ( document , "mouseover" , t ) ) } var n = e . display . lineDiv ; Ql ( n , "CodeMirror-crosshair" ) , Ol ( document , "keyup" , t ) , Ol ( document , "mouseover" , t ) } function pn ( e ) { 16 == e . keyCode && ( this . doc . sel . shift = ! 1 ) , Ti ( this , e ) } function mn ( e ) { var t = this ; if ( ! ( Gt ( t . display , e ) || Ti ( t , e ) || e . ctrlKey && ! e . altKey || Oo && e . metaKey ) ) { var n = e . keyCode , r = e . charCode ; if ( Co && n == Qo ) return Qo = null , void Ml ( e ) ; if ( ! Co || e . which && ! ( e . which < 10 ) || ! un ( t , e ) ) { var i = String . fromCharCode ( null == r ? n : r ) ; dn ( t , e , i ) || t . display . input . onKeyPress ( e ) } } } function gn ( e ) { e . state . delayingBlurEvent = ! 0 , setTimeout ( function ( ) { e . state . delayingBlurEvent && ( e . state . delayingBlurEvent = ! 1 , yn ( e ) ) } , 100 ) } function vn ( e ) { e . state . delayingBlurEvent && ( e . state . delayingBlurEvent = ! 1 ) , "nocursor" != e . options . readOnly && ( e . state . focused || ( Il ( e , "focus" , e ) , e . state . focused = ! 0 , Ql ( e . display . wrapper , "CodeMirror-focused" ) , e . curOp || e . display . selForContextMenu == e . doc . sel || ( e . display . input . reset ( ) , wo && setTimeout ( function ( ) { e . display . input . reset ( ! 0 ) } , 20 ) ) , e . display . input . receivedFocus ( ) ) , Be ( e ) ) } function yn ( e ) { e . state . delayingBlurEvent || ( e . state . focused && ( Il ( e , "blur" , e ) , e . state . focused = ! 1 , Zl ( e . display . wrapper , "CodeMirror-focused" ) ) , clearInterval ( e . display . blinker ) , setTimeout ( function ( ) { e . state . focused || ( e . display . shift = ! 1 ) } , 150 ) ) } function xn ( e , t ) { Gt ( e . display , t ) || bn ( e , t ) || Ti ( e , t , "contextmenu" ) || e . display . input . onContextMenu ( t ) } function bn ( e , t ) { return Ni ( e , "gutterContextMenu" ) ? Zt ( e , t , "gutterContextMenu" , ! 1 ) : ! 1 } function wn ( e , t ) { if ( Fo ( e , t . from ) < 0 ) return e ; if ( Fo ( e , t . to ) <= 0 ) return Jo ( t ) ; var n = e . line + t . text . length - ( t . to . line - t . from . line ) - 1 , r = e . ch ; return e . line == t . to . line && ( r += Jo ( t ) . ch - t . to . ch ) , Bo ( n , r ) } function kn ( e , t ) { for ( var n = [ ] , r = 0 ; r < e . sel . ranges . length ; r ++ ) { var i = e . sel . ranges [ r ] ; n . push ( new de ( wn ( i . anchor , t ) , wn ( i . head , t ) ) ) } return fe ( n , e . sel . primIndex ) } function Sn ( e , t , n ) { return e . line == t . line ? Bo ( n . line , e . ch - t . ch + n . ch ) : Bo ( n . line + ( e . line - t . line ) , e . ch ) } function Cn ( e , t , n ) { for ( var r = [ ] , i = Bo ( e . first , 0 ) , o = i , l = 0 ; l < t . length ; l ++ ) { var a = t [ l ] , s = Sn ( a . from , i , o ) , c = Sn ( Jo ( a ) , i , o ) ; if ( i = a . to , o = c , "around" == n ) { var u = e . sel . ranges [ l ] , d = Fo ( u . head , u . anchor ) < 0 ; r [ l ] = new de ( d ? c : s , d ? s : c ) } else r [ l ] = new de ( s , s ) } return new ue ( r , e . sel . primIndex ) } function Ln ( e , t , n ) { var r = { canceled : ! 1 , from : t . from , to : t . to , text : t . text , origin : t . origin , cancel : function ( ) { this . canceled = ! 0 } } ; return n && ( r . update = function ( t , n , r , i ) { t && ( this . from = me ( e , t ) ) , n && ( this . to = me ( e , n ) ) , r && ( this . text = r ) , void 0 !== i && ( this . origin = i ) } ) , Il ( e , "beforeChange" , e , r ) , e . cm && Il ( e . cm , "beforeChange" , e . cm , r ) , r . canceled ? null : { from : r . from , to : r . to , text : r . text , origin : r . origin } } function Tn ( e , t , n ) { if ( e . cm ) { if ( ! e . cm . curOp ) return Ot ( e . cm , Tn ) ( e , t , n ) ; if ( e . cm . state . suppressEdits ) return } if ( ! ( Ni ( e , "beforeChange" ) || e . cm && Ni ( e . cm , "beforeChange" ) ) || ( t = Ln ( e , t , ! 0 ) ) ) { var r = Po && ! n && sr ( e , t . from , t . to ) ; if ( r ) for ( var i = r . length - 1 ; i >= 0 ; -- i ) Mn ( e , { from : r [ i ] . from , to : r [ i ] . to , text : i ? [ "" ] : t . text } ) ; else Mn ( e , t ) } } function Mn ( e , t ) { if ( 1 != t . text . length || "" != t . text [ 0 ] || 0 != Fo ( t . from , t . to ) ) { var n = kn ( e , t ) ; ci ( e , t , n , e . cm ? e . cm . curOp . id : NaN ) , On ( e , t , n , or ( e , t ) ) ; var r = [ ] ; Xr ( e , function ( e , n ) { n || - 1 != Ii ( r , e . history ) || ( xi ( e . history , t ) , r . push ( e . history ) ) , On ( e , t , null , or ( e , t ) ) } ) } } function Nn ( e , t , n ) { if ( ! e . cm || ! e . cm . state . suppressEdits ) { for ( var r , i = e . history , o = e . sel , l = "undo" == t ? i . done : i . undone , a = "undo" == t ? i . undone : i . done , s = 0 ; s < l . length && ( r = l [ s ] , n ? ! r . ranges || r . equals ( e . sel ) : r . ranges ) ; s ++ ) ; if ( s != l . length ) { for ( i . lastOrigin = i . lastSelOrigin = null ; r = l . pop ( ) , r . ranges ; ) { if ( fi ( r , a ) , n && ! r . equals ( e . sel ) ) return void Te ( e , r , { clearRedo : ! 1 } ) ; o = r } var c = [ ] ; fi ( o , a ) , a . push ( { changes : c , generation : i . generation } ) , i . generation = r . generation || ++ i . maxGeneration ; for ( var u = Ni ( e , "beforeChange" ) || e . cm && Ni ( e . cm , "beforeChange" ) , s = r . changes . length - 1 ; s >= 0 ; -- s ) { var d = r . changes [ s ] ; if ( d . origin = t , u && ! Ln ( e , d , ! 1 ) ) return void ( l . length = 0 ) ; c . push ( li ( e , d ) ) ; var f = s ? kn ( e , d ) : Wi ( l ) ; On ( e , d , f , ar ( e , d ) ) , ! s && e . cm && e . cm . scrollIntoView ( { from : d . from , to : Jo ( d
var n = t . from . line , r = t . to . line , i = t . text . length - ( r - n ) - 1 ; yi ( e . done , n , r , i ) , yi ( e . undone , n , r , i ) } function bi ( e ) { return null != e . defaultPrevented ? e . defaultPrevented : 0 == e . returnValue } function wi ( e ) { return e . target || e . srcElement } function ki ( e ) { var t = e . which ; return null == t && ( 1 & e . button ? t = 1 : 2 & e . button ? t = 3 : 4 & e . button && ( t = 2 ) ) , Oo && e . ctrlKey && 1 == t && ( t = 3 ) , t } function Si ( e , t , n ) { var r = e . _handlers && e . _handlers [ t ] ; return n ? r && r . length > 0 ? r . slice ( ) : Hl : r || Hl } function Ci ( e , t ) { function n ( e ) { return function ( ) { e . apply ( null , o ) } } var r = Si ( e , t , ! 1 ) ; if ( r . length ) { var i , o = Array . prototype . slice . call ( arguments , 2 ) ; Go ? i = Go . delayedCallbacks : Dl ? i = Dl : ( i = Dl = [ ] , setTimeout ( Li , 0 ) ) ; for ( var l = 0 ; l < r . length ; ++ l ) i . push ( n ( r [ l ] ) ) } } function Li ( ) { var e = Dl ; Dl = null ; for ( var t = 0 ; t < e . length ; ++ t ) e [ t ] ( ) } function Ti ( e , t , n ) { return "string" == typeof t && ( t = { type : t , preventDefault : function ( ) { this . defaultPrevented = ! 0 } } ) , Il ( e , n || t . type , e , t ) , bi ( t ) || t . codemirrorIgnore } function Mi ( e ) { var t = e . _handlers && e . _handlers . cursorActivity ; if ( t ) for ( var n = e . curOp . cursorActivityHandlers || ( e . curOp . cursorActivityHandlers = [ ] ) , r = 0 ; r < t . length ; ++ r ) - 1 == Ii ( n , t [ r ] ) && n . push ( t [ r ] ) } function Ni ( e , t ) { return Si ( e , t ) . length > 0 } function Ai ( e ) { e . prototype . on = function ( e , t ) { Ol ( this , e , t ) } , e . prototype . off = function ( e , t ) { Wl ( this , e , t ) } } function Oi ( ) { this . id = null } function Hi ( e ) { for ( ; ql . length <= e ; ) ql . push ( Wi ( ql ) + " " ) ; return ql [ e ] } function Wi ( e ) { return e [ e . length - 1 ] } function Ii ( e , t ) { for ( var n = 0 ; n < e . length ; ++ n ) if ( e [ n ] == t ) return n ; return - 1 } function Di ( e , t ) { for ( var n = [ ] , r = 0 ; r < e . length ; r ++ ) n [ r ] = t ( e [ r ] , r ) ; return n } function Ei ( ) { } function Pi ( e , t ) { var n ; return Object . create ? n = Object . create ( e ) : ( Ei . prototype = e , n = new Ei ) , t && zi ( t , n ) , n } function zi ( e , t , n ) { t || ( t = { } ) ; for ( var r in e ) ! e . hasOwnProperty ( r ) || n === ! 1 && t . hasOwnProperty ( r ) || ( t [ r ] = e [ r ] ) ; return t } function Bi ( e ) { var t = Array . prototype . slice . call ( arguments , 1 ) ; return function ( ) { return e . apply ( null , t ) } } function Fi ( e , t ) { return t ? t . source . indexOf ( "\\w" ) > - 1 && $l ( e ) ? ! 0 : t . test ( e ) : $l ( e ) } function ji ( e ) { for ( var t in e ) if ( e . hasOwnProperty ( t ) && e [ t ] ) return ! 1 ; return ! 0 } function Ri ( e ) { return e . charCodeAt ( 0 ) >= 768 && Vl . test ( e ) } function qi ( e , t , n , r ) { var i = document . createElement ( e ) ; if ( n && ( i . className = n ) , r && ( i . style . cssText = r ) , "string" == typeof t ) i . appendChild ( document . createTextNode ( t ) ) ; else if ( t ) for ( var o = 0 ; o < t . length ; ++ o ) i . appendChild ( t [ o ] ) ; return i } function _i ( e ) { for ( var t = e . childNodes . length ; t > 0 ; -- t ) e . removeChild ( e . firstChild ) ; return e } function Ui ( e , t ) { return _i ( e ) . appendChild ( t ) } function Gi ( ) { for ( var e = document . activeElement ; e && e . root && e . root . activeElement ; ) e = e . root . activeElement ; return e } function $i ( e ) { return new RegExp ( "(^|\\s)" + e + "(?:$|\\s)\\s*" ) } function Vi ( e , t ) { for ( var n = e . split ( " " ) , r = 0 ; r < n . length ; r ++ ) n [ r ] && ! $i ( n [ r ] ) . test ( t ) && ( t += " " + n [ r ] ) ; return t } function Ki ( e ) { if ( document . body . getElementsByClassName ) for ( var t = document . body . getElementsByClassName ( "CodeMirror" ) , n = 0 ; n < t . length ; n ++ ) { var r = t [ n ] . CodeMirror ; r && e ( r ) } } function Xi ( ) { Jl || ( Yi ( ) , Jl = ! 0 ) } function Yi ( ) { var e ; Ol ( window , "resize" , function ( ) { null == e && ( e = setTimeout ( function ( ) { e = null , Ki ( Ut ) } , 100 ) ) } ) , Ol ( window , "blur" , function ( ) { Ki ( yn ) } ) } function Zi ( e ) { if ( null == Xl ) { var t = qi ( "span" , " " ) ; Ui ( e , qi ( "span" , [ t , document . createTextNode ( "x" ) ] ) ) , 0 != e . firstChild . offsetHeight && ( Xl = t . offsetWidth <= 1 && t . offsetHeight > 2 && ! ( xo && 8 > bo ) ) } var n = Xl ? qi ( "span" , " " ) : qi ( "span" , " " , null , "display: inline-block; width: 1px; margin-right: -1px" ) ; return n . setAttribute ( "cm-text" , "" ) , n } function Qi ( e ) { if ( null != Yl ) return Yl ; var t = Ui ( e , document . createTextNode ( "AخA" ) ) , n = Ul ( t , 0 , 1 ) . getBoundingClientRect ( ) ; if ( ! n || n . left == n . right ) return ! 1 ; var r = Ul ( t , 1 , 2 ) . getBoundingClientRect ( ) ; return Yl = r . right - n . right < 3 } function Ji ( e ) { if ( null != ia ) return ia ; var t = Ui ( e , qi ( "span" , "x" ) ) , n = t . getBoundingClientRect ( ) , r = Ul ( t , 0 , 1 ) . getBoundingClientRect ( ) ; return ia = Math . abs ( n . left - r . left ) > 1 } function eo ( e , t , n , r ) { if ( ! e ) return r ( t , n , "ltr" ) ; for ( var i = ! 1 , o = 0 ; o < e . length ; ++ o ) { var l = e [ o ] ; ( l . from < n && l . to > t || t == n && l . to == t ) && ( r ( Math . max ( l . from , t ) , Math . min ( l . to , n ) , 1 == l . level ? "rtl" : "ltr" ) , i = ! 0 ) } i || r ( t , n , "ltr" ) } function to ( e ) { return e . level % 2 ? e . to : e . from } function no ( e ) { return e . level % 2 ? e . from : e . to } function ro ( e ) { var t = ii ( e ) ; return t ? to ( t [ 0 ]
} , ! 0 ) , Gn ( "keyMap" , "default" , function ( t , n , r ) { var i = Vn ( n ) , o = r != e . Init && Vn ( r ) ; o && o . detach && o . detach ( t , i ) , i . attach && i . attach ( t , o || null ) } ) , Gn ( "extraKeys" , null ) , Gn ( "lineWrapping" , ! 1 , i , ! 0 ) , Gn ( "gutters" , [ ] , function ( e ) { h ( e . options ) , s ( e ) } , ! 0 ) , Gn ( "fixedGutter" , ! 0 , function ( e , t ) { e . display . gutters . style . left = t ? C ( e . display ) + "px" : "0" , e . refresh ( ) } , ! 0 ) , Gn ( "coverGutterNextToScrollbar" , ! 1 , function ( e ) { y ( e ) } , ! 0 ) , Gn ( "scrollbarStyle" , "native" , function ( e ) { v ( e ) , y ( e ) , e . display . scrollbars . setScrollTop ( e . doc . scrollTop ) , e . display . scrollbars . setScrollLeft ( e . doc . scrollLeft ) } , ! 0 ) , Gn ( "lineNumbers" , ! 1 , function ( e ) { h ( e . options ) , s ( e ) } , ! 0 ) , Gn ( "firstLineNumber" , 1 , s , ! 0 ) , Gn ( "lineNumberFormatter" , function ( e ) { return e } , s , ! 0 ) , Gn ( "showCursorWhenSelecting" , ! 1 , De , ! 0 ) , Gn ( "resetSelectionOnContextMenu" , ! 0 ) , Gn ( "lineWiseCopyCut" , ! 0 ) , Gn ( "readOnly" , ! 1 , function ( e , t ) { "nocursor" == t ? ( yn ( e ) , e . display . input . blur ( ) , e . display . disabled = ! 0 ) : e . display . disabled = ! 1 , e . display . input . readOnlyChanged ( t ) } ) , Gn ( "disableInput" , ! 1 , function ( e , t ) { t || e . display . input . reset ( ) } , ! 0 ) , Gn ( "dragDrop" , ! 0 , _t ) , Gn ( "allowDropFileTypes" , null ) , Gn ( "cursorBlinkRate" , 530 ) , Gn ( "cursorScrollMargin" , 0 ) , Gn ( "cursorHeight" , 1 , De , ! 0 ) , Gn ( "singleCursorHeightPerLine" , ! 0 , De , ! 0 ) , Gn ( "workTime" , 100 ) , Gn ( "workDelay" , 100 ) , Gn ( "flattenSpans" , ! 0 , r , ! 0 ) , Gn ( "addModeClass" , ! 1 , r , ! 0 ) , Gn ( "pollInterval" , 100 ) , Gn ( "undoDepth" , 200 , function ( e , t ) { e . doc . history . undoDepth = t } ) , Gn ( "historyEventDelay" , 1250 ) , Gn ( "viewportMargin" , 10 , function ( e ) { e . refresh ( ) } , ! 0 ) , Gn ( "maxHighlightLength" , 1e4 , r , ! 0 ) , Gn ( "moveInputWithCursor" , ! 0 , function ( e , t ) { t || e . display . input . resetPosition ( ) } ) , Gn ( "tabindex" , null , function ( e , t ) { e . display . input . getField ( ) . tabIndex = t || "" } ) , Gn ( "autofocus" , null ) ; var rl = e . modes = { } , il = e . mimeModes = { } ; e . defineMode = function ( t , n ) { e . defaults . mode || "null" == t || ( e . defaults . mode = t ) , arguments . length > 2 && ( n . dependencies = Array . prototype . slice . call ( arguments , 2 ) ) , rl [ t ] = n } , e . defineMIME = function ( e , t ) { il [ e ] = t } , e . resolveMode = function ( t ) { if ( "string" == typeof t && il . hasOwnProperty ( t ) ) t = il [ t ] ; else if ( t && "string" == typeof t . name && il . hasOwnProperty ( t . name ) ) { var n = il [ t . name ] ; "string" == typeof n && ( n = { name : n } ) , t = Pi ( n , t ) , t . name = n . name } else if ( "string" == typeof t && /^[\w\-]+\/[\w\-]+\+xml$/ . test ( t ) ) return e . resolveMode ( "application/xml" ) ; return "string" == typeof t ? { name : t } : t || { name : "null" } } , e . getMode = function ( t , n ) { var n = e . resolveMode ( n ) , r = rl [ n . name ] ; if ( ! r ) return e . getMode ( t , "text/plain" ) ; var i = r ( t , n ) ; if ( ol . hasOwnProperty ( n . name ) ) { var o = ol [ n . name ] ; for ( var l in o ) o . hasOwnProperty ( l ) && ( i . hasOwnProperty ( l ) && ( i [ "_" + l ] = i [ l ] ) , i [ l ] = o [ l ] ) } if ( i . name = n . name , n . helperType && ( i . helperType = n . helperType ) , n . modeProps ) for ( var l in n . modeProps ) i [ l ] = n . modeProps [ l ] ; return i } , e . defineMode ( "null" , function ( ) { return { token : function ( e ) { e . skipToEnd ( ) } } } ) , e . defineMIME ( "text/plain" , "null" ) ; var ol = e . modeExtensions = { } ; e . extendMode = function ( e , t ) { var n = ol . hasOwnProperty ( e ) ? ol [ e ] : ol [ e ] = { } ; zi ( t , n ) } , e . defineExtension = function ( t , n ) { e . prototype [ t ] = n } , e . defineDocExtension = function ( e , t ) { Cl . prototype [ e ] = t } , e . defineOption = Gn ; var ll = [ ] ; e . defineInitHook = function ( e ) { ll . push ( e ) } ; var al = e . helpers = { } ; e . registerHelper = function ( t , n , r ) { al . hasOwnProperty ( t ) || ( al [ t ] = e [ t ] = { _global : [ ] } ) , al [ t ] [ n ] = r } , e . registerGlobalHelper = function ( t , n , r , i ) { e . registerHelper ( t , n , i ) , al [ t ] . _global . push ( { pred : r , val : i } ) } ; var sl = e . copyState = function ( e , t ) { if ( t === ! 0 ) return t ; if ( e . copyState ) return e . copyState ( t ) ; var n = { } ; for ( var r in t ) { var i = t [ r ] ; i instanceof Array && ( i = i . concat ( [ ] ) ) , n [ r ] = i } return n } , cl = e . startState = function ( e , t , n ) { return e . startState ? e . startState ( t , n ) : ! 0 } ; e . innerMode = function ( e , t ) { for ( ; e . innerMode ; ) { var n = e . innerMode ( t ) ; if ( ! n || n . mode == e ) break ; t = n . state , e = n . mode } return n || { mode : e , state : t } } ; var ul = e . commands = { selectAll : function ( e ) { e . setSelection ( Bo ( e . firstLine ( ) , 0 ) , Bo ( e . lastLine ( ) ) , zl ) } , singleSelection : function ( e ) { e . setSelection ( e . getCursor ( "anchor" ) , e . getCursor ( "head" ) , zl ) } , killLine : function ( e ) { qn ( e , function ( t ) { if ( t . empty ( ) ) { var n = Zr ( e . doc , t . head . line ) . text . length ; return t . head . ch == n && t . head . line < e . lastLine ( ) ? { from : t . head , to : Bo ( t . head . line + 1 , 0 ) } : { from : t . head , to : Bo ( t . head . line , n ) } } return { from : t . from ( ) , to : t . to ( ) } } ) } , deleteLine : function ( e ) { qn ( e , function ( t ) { retu
var i = e . indexOf ( "\n" , t ) ; - 1 == i && ( i = e . length ) ; var o = e . slice ( t , "\r" == e . charAt ( i - 1 ) ? i - 1 : i ) , l = o . indexOf ( "\r" ) ; - 1 != l ? ( n . push ( o . slice ( 0 , l ) ) , t += l + 1 ) : ( n . push ( o ) , t = i + 1 ) } return n } : function ( e ) { return e . split ( /\r\n?|\n/ ) } , na = window . getSelection ? function ( e ) { try { return e . selectionStart != e . selectionEnd } catch ( t ) { return ! 1 } } : function ( e ) { try { var t = e . ownerDocument . selection . createRange ( ) } catch ( n ) { } return t && t . parentElement ( ) == e ? 0 != t . compareEndPoints ( "StartToEnd" , t ) : ! 1 } , ra = function ( ) { var e = qi ( "div" ) ; return "oncopy" in e ? ! 0 : ( e . setAttribute ( "oncopy" , "return;" ) , "function" == typeof e . oncopy ) } ( ) , ia = null , oa = e . keyNames = { 3 : "Enter" , 8 : "Backspace" , 9 : "Tab" , 13 : "Enter" , 16 : "Shift" , 17 : "Ctrl" , 18 : "Alt" , 19 : "Pause" , 20 : "CapsLock" , 27 : "Esc" , 32 : "Space" , 33 : "PageUp" , 34 : "PageDown" , 35 : "End" , 36 : "Home" , 37 : "Left" , 38 : "Up" , 39 : "Right" , 40 : "Down" , 44 : "PrintScrn" , 45 : "Insert" , 46 : "Delete" , 59 : ";" , 61 : "=" , 91 : "Mod" , 92 : "Mod" , 93 : "Mod" , 106 : "*" , 107 : "=" , 109 : "-" , 110 : "." , 111 : "/" , 127 : "Delete" , 173 : "-" , 186 : ";" , 187 : "=" , 188 : "," , 189 : "-" , 190 : "." , 191 : "/" , 192 : "`" , 219 : "[" , 220 : "\\" , 221 : "]" , 222 : "'" , 63232 : "Up" , 63233 : "Down" , 63234 : "Left" , 63235 : "Right" , 63272 : "Delete" , 63273 : "Home" , 63275 : "End" , 63276 : "PageUp" , 63277 : "PageDown" , 63302 : "Insert" } ; ! function ( ) { for ( var e = 0 ; 10 > e ; e ++ ) oa [ e + 48 ] = oa [ e + 96 ] = String ( e ) ; for ( var e = 65 ; 90 >= e ; e ++ ) oa [ e ] = String . fromCharCode ( e ) ; for ( var e = 1 ; 12 >= e ; e ++ ) oa [ e + 111 ] = oa [ e + 63235 ] = "F" + e } ( ) ; var la , aa = function ( ) { function e ( e ) { return 247 >= e ? n . charAt ( e ) : e >= 1424 && 1524 >= e ? "R" : e >= 1536 && 1773 >= e ? r . charAt ( e - 1536 ) : e >= 1774 && 2220 >= e ? "r" : e >= 8192 && 8203 >= e ? "w" : 8204 == e ? "b" : "L" } function t ( e , t , n ) { this . level = e , this . from = t , this . to = n } var n = "bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN" , r = "rrrrrrrrrrrr,rNNmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmrrrrrrrnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmNmmmm" , i = /[\u0590-\u05f4\u0600-\u06ff\u0700-\u08ac]/ , o = /[stwN]/ , l = /[LRr]/ , a = /[Lb1n]/ , s = /[1n]/ , c = "L" ; return function ( n ) { if ( ! i . test ( n ) ) return ! 1 ; for ( var r , u = n . length , d = [ ] , f = 0 ; u > f ; ++ f ) d . push ( r = e ( n . charCodeAt ( f ) ) ) ; for ( var f = 0 , h = c ; u > f ; ++ f ) { var r = d [ f ] ; "m" == r ? d [ f ] = h : h = r } for ( var f = 0 , p = c ; u > f ; ++ f ) { var r = d [ f ] ; "1" == r && "r" == p ? d [ f ] = "n" : l . test ( r ) && ( p = r , "r" == r && ( d [ f ] = "R" ) ) } for ( var f = 1 , h = d [ 0 ] ; u - 1 > f ; ++ f ) { var r = d [ f ] ; "+" == r && "1" == h && "1" == d [ f + 1 ] ? d [ f ] = "1" : "," != r || h != d [ f + 1 ] || "1" != h && "n" != h || ( d [ f ] = h ) , h = r } for ( var f = 0 ; u > f ; ++ f ) { var r = d [ f ] ; if ( "," == r ) d [ f ] = "N" ; else if ( "%" == r ) { for ( var m = f + 1 ; u > m && "%" == d [ m ] ; ++ m ) ; for ( var g = f && "!" == d [ f - 1 ] || u > m && "1" == d [ m ] ? "1" : "N" , v = f ; m > v ; ++ v ) d [ v ] = g ; f = m - 1 } } for ( var f = 0 , p = c ; u > f ; ++ f ) { var r = d [ f ] ; "L" == p && "1" == r ? d [ f ] = "L" : l . test ( r ) && ( p = r ) } for ( var f = 0 ; u > f ; ++ f ) if ( o . test ( d [ f ] ) ) { for ( var m = f + 1 ; u > m && o . test ( d [ m ] ) ; ++ m ) ; for ( var y = "L" == ( f ? d [ f - 1 ] : c ) , x = "L" == ( u > m ? d [ m ] : c ) , g = y || x ? "L" : "R" , v = f ; m > v ; ++ v ) d [ v ] = g ; f = m - 1 } for ( var b , w = [ ] , f = 0 ; u > f ; ) if ( a . test ( d [ f ] ) ) { var k = f ; for ( ++ f ; u > f && a . test ( d [ f ] ) ; ++ f ) ; w . push ( new t ( 0 , k , f ) ) } else { var S = f , C = w . length ; for ( ++ f ; u > f && "L" != d [ f ] ; ++ f ) ; for ( var v = S ; f > v ; ) if ( s . test ( d [ v ] ) ) { v > S && w . splice ( C , 0 , new t ( 1 , S , v ) ) ; var L = v ; for ( ++ v ; f > v && s . test ( d [ v ] ) ; ++ v ) ; w . splice ( C , 0 , new t ( 2 , L , v ) ) , S = v } else ++ v ; f > S && w . splice ( C , 0 , new t ( 1 , S , f ) ) } return 1 == w [ 0 ] . level && ( b = n . match ( /^\s+/ ) ) && ( w [ 0 ] . from = b [ 0 ] . length , w . unshift ( new t ( 0 , 0 , b [ 0 ] . length ) ) ) , 1 == Wi ( w ) . level && ( b = n . match ( /\s+$/ ) ) && ( Wi ( w ) . to -= b [ 0 ] . length , w . push ( new t ( 0 , u - b [ 0 ] . length , u ) ) ) , 2 == w [ 0 ] . level && w . unshift ( new t ( 1 , w [ 0 ] . to , w [ 0 ] . to ) ) , w [ 0 ] . level != Wi ( w ) . level && w . push ( new t ( w [ 0 ] . level , u , u ) ) , w } } ( ) ; return e . version = "5.15.3" , e } ) } , { } ] , 8 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../markdown/markdown" ) , t ( "../../addon/mode/overlay" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../markdown/markdown" , "../../addon/mode/overlay" ] , i ) : i ( CodeMirror ) } ( function ( e ) { "use strict" ; var t = / ^ ( ( ? : ( ? : a a a s ? | a b o u t | a c a p | a d i u m x t r a | a f [ p s ] | a i m | a p t | a t t a c h m e n t | a w | b e s h a r e | b i t c o i n | b o l o | c a l l t o | c a p | c h r o m e ( ? : - e x t e n s i o n ) ? | c i d | c o a p | c o m - e v e n t b r i t e - a t t e n d e e | c o n t e n t | c
( S . doNotIndent . hasOwnProperty ( t ) || e . context && e . context . noIndent ) && ( this . noIndent = ! 0 ) } function d ( e ) { e . context && ( e . context = e . context . prev ) } function f ( e , t ) { for ( var n ; ; ) { if ( ! e . context ) return ; if ( n = e . context . tagName , ! S . contextGrabbers . hasOwnProperty ( n ) || ! S . contextGrabbers [ n ] . hasOwnProperty ( t ) ) return ; d ( e ) } } function h ( e , t , n ) { return "openTag" == e ? ( n . tagStart = t . column ( ) , p ) : "closeTag" == e ? m : h } function p ( e , t , n ) { return "word" == e ? ( n . tagName = t . current ( ) , M = "tag" , y ) : ( M = "error" , p ) } function m ( e , t , n ) { if ( "word" == e ) { var r = t . current ( ) ; return n . context && n . context . tagName != r && S . implicitlyClosed . hasOwnProperty ( n . context . tagName ) && d ( n ) , n . context && n . context . tagName == r || S . matchClosing === ! 1 ? ( M = "tag" , g ) : ( M = "tag error" , v ) } return M = "error" , v } function g ( e , t , n ) { return "endTag" != e ? ( M = "error" , g ) : ( d ( n ) , h ) } function v ( e , t , n ) { return M = "error" , g ( e , t , n ) } function y ( e , t , n ) { if ( "word" == e ) return M = "attribute" , x ; if ( "endTag" == e || "selfcloseTag" == e ) { var r = n . tagName , i = n . tagStart ; return n . tagName = n . tagStart = null , "selfcloseTag" == e || S . autoSelfClosers . hasOwnProperty ( r ) ? f ( n , r ) : ( f ( n , r ) , n . context = new u ( n , r , i == n . indented ) ) , h } return M = "error" , y } function x ( e , t , n ) { return "equals" == e ? b : ( S . allowMissing || ( M = "error" ) , y ( e , t , n ) ) } function b ( e , t , n ) { return "string" == e ? w : "word" == e && S . allowUnquoted ? ( M = "string" , y ) : ( M = "error" , y ( e , t , n ) ) } function w ( e , t , n ) { return "string" == e ? w : y ( e , t , n ) } var k = r . indentUnit , S = { } , C = i . htmlMode ? t : n ; for ( var L in C ) S [ L ] = C [ L ] ; for ( var L in i ) S [ L ] = i [ L ] ; var T , M ; return o . isInText = ! 0 , { startState : function ( e ) { var t = { tokenize : o , state : h , indented : e || 0 , tagName : null , tagStart : null , context : null } ; return null != e && ( t . baseIndent = e ) , t } , token : function ( e , t ) { if ( ! t . tagName && e . sol ( ) && ( t . indented = e . indentation ( ) ) , e . eatSpace ( ) ) return null ; T = null ; var n = t . tokenize ( e , t ) ; return ( n || T ) && "comment" != n && ( M = null , t . state = t . state ( T || n , e , t ) , M && ( n = "error" == M ? n + " error" : M ) ) , n } , indent : function ( t , n , r ) { var i = t . context ; if ( t . tokenize . isInAttribute ) return t . tagStart == t . indented ? t . stringStartCol + 1 : t . indented + k ; if ( i && i . noIndent ) return e . Pass ; if ( t . tokenize != l && t . tokenize != o ) return r ? r . match ( /^(\s*)/ ) [ 0 ] . length : 0 ; if ( t . tagName ) return S . multilineTagIndentPastTag !== ! 1 ? t . tagStart + t . tagName . length + 2 : t . tagStart + k * ( S . multilineTagIndentFactor || 1 ) ; if ( S . alignCDATA && /<!\[CDATA\[/ . test ( n ) ) return 0 ; var a = n && /^<(\/)?([\w_:\.-]*)/ . exec ( n ) ; if ( a && a [ 1 ] ) for ( ; i ; ) { if ( i . tagName == a [ 2 ] ) { i = i . prev ; break } if ( ! S . implicitlyClosed . hasOwnProperty ( i . tagName ) ) break ; i = i . prev } else if ( a ) for ( ; i ; ) { var s = S . contextGrabbers [ i . tagName ] ; if ( ! s || ! s . hasOwnProperty ( a [ 2 ] ) ) break ; i = i . prev } for ( ; i && i . prev && ! i . startOfLine ; ) i = i . prev ; return i ? i . indent + k : t . baseIndent || 0 } , electricInput : /<\/[\s\w:]+>$/ , blockCommentStart : "<!--" , blockCommentEnd : "-->" , configuration : S . htmlMode ? "html" : "xml" , helperType : S . htmlMode ? "html" : "xml" , skipAttribute : function ( e ) { e . state == b && ( e . state = y ) } } } ) , e . defineMIME ( "text/xml" , "xml" ) , e . defineMIME ( "application/xml" , "xml" ) , e . mimeModes . hasOwnProperty ( "text/html" ) || e . defineMIME ( "text/html" , { name : "xml" , htmlMode : ! 0 } ) } ) } , { "../../lib/codemirror" : 7 } ] , 12 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) , t ( "../yaml/yaml" ) ) : "function" == typeof e && e . amd ? e ( [ "../../lib/codemirror" , "../yaml/yaml" ] , i ) : i ( CodeMirror ) } ( function ( e ) { var t = 0 , n = 1 , r = 2 ; e . defineMode ( "yaml-frontmatter" , function ( i , o ) { function l ( e ) { return e . state == r ? s : a } var a = e . getMode ( i , "yaml" ) , s = e . getMode ( i , o && o . base || "gfm" ) ; return { startState : function ( ) { return { state : t , inner : e . startState ( a ) } } , copyState : function ( t ) { return { state : t . state , inner : e . copyState ( l ( t ) , t . inner ) } } , token : function ( i , o ) { if ( o . state == t ) return i . match ( /---/ , ! 1 ) ? ( o . state = n , a . token ( i , o . inner ) ) : ( o . state = r , o . inner = e . startState ( s ) , s . token ( i , o . inner ) ) ; if ( o . state == n ) { var l = i . sol ( ) && i . match ( /---/ , ! 1 ) , c = a . token ( i , o . inner ) ; return l && ( o . state = r , o . inner = e . startState ( s ) ) , c } return s . token ( i , o . inner ) } , innerMode : function ( e ) { return { mode : l ( e ) , state : e . inner } } , blankLine : function ( e ) { var t = l ( e ) ; return t . blankLine ? t . blankLine ( e . inner ) : void 0 } } } ) } ) } , { "../../lib/codemirror" : 7 , "../yaml/yaml" : 13 } ] , 13 : [ function ( t , n , r ) { ! function ( i ) { "object" == typeof r && "object" == typeof n ? i ( t ( "../../lib/codemirror" ) ) : "function" == typeof e && e . amd ? e ( [ " . . / . . / lib / codemirror
c = c . replace ( /(\*\*|~~)/ , "" ) ) , o . replaceRange ( s + c , { line : u . line , ch : 0 } , { line : u . line , ch : 99999999999999 } ) , "bold" == t || "strikethrough" == t ? ( u . ch -= 2 , u !== d && ( d . ch -= 2 ) ) : "italic" == t && ( u . ch -= 1 , u !== d && ( d . ch -= 1 ) ) ) : ( i = o . getSelection ( ) , "bold" == t ? ( i = i . split ( "**" ) . join ( "" ) , i = i . split ( "__" ) . join ( "" ) ) : "italic" == t ? ( i = i . split ( "*" ) . join ( "" ) , i = i . split ( "_" ) . join ( "" ) ) : "strikethrough" == t && ( i = i . split ( "~~" ) . join ( "" ) ) , o . replaceSelection ( s + i + c ) , u . ch += n . length , d . ch = u . ch + i . length ) , o . setSelection ( u , d ) , o . focus ( ) } } function D ( e ) { if ( ! /editor-preview-active/ . test ( e . getWrapperElement ( ) . lastChild . className ) ) for ( var t , n = e . getCursor ( "start" ) , r = e . getCursor ( "end" ) , i = n . line ; i <= r . line ; i ++ ) t = e . getLine ( i ) , t = t . replace ( /^[ ]*([# ]+|\*|\-|[> ]+|[0-9]+(.|\)))[ ]*/ , "" ) , e . replaceRange ( t , { line : i , ch : 0 } , { line : i , ch : 99999999999999 } ) } function E ( e , t ) { for ( var n in t ) t . hasOwnProperty ( n ) && ( t [ n ] instanceof Array ? e [ n ] = t [ n ] . concat ( e [ n ] instanceof Array ? e [ n ] : [ ] ) : null !== t [ n ] && "object" == typeof t [ n ] && t [ n ] . constructor === Object ? e [ n ] = E ( e [ n ] || { } , t [ n ] ) : e [ n ] = t [ n ] ) ; return e } function P ( e ) { for ( var t = 1 ; t < arguments . length ; t ++ ) e = E ( e , arguments [ t ] ) ; return e } function z ( e ) { var t = /[a-zA-Z0-9_\u0392-\u03c9]+|[\u4E00-\u9FFF\u3400-\u4dbf\uf900-\ufaff\u3040-\u309f\uac00-\ud7af]+/g , n = e . match ( t ) , r = 0 ; if ( null === n ) return r ; for ( var i = 0 ; i < n . length ; i ++ ) r += n [ i ] . charCodeAt ( 0 ) >= 19968 ? n [ i ] . length : 1 ; return r } function B ( e ) { e = e || { } , e . parent = this ; var t = ! 0 ; if ( e . autoDownloadFontAwesome === ! 1 && ( t = ! 1 ) , e . autoDownloadFontAwesome !== ! 0 ) for ( var n = document . styleSheets , r = 0 ; r < n . length ; r ++ ) n [ r ] . href && n [ r ] . href . indexOf ( "//maxcdn.bootstrapcdn.com/font-awesome/" ) > - 1 && ( t = ! 1 ) ; if ( t ) { var i = document . createElement ( "link" ) ; i . rel = "stylesheet" , i . href = "https://maxcdn.bootstrapcdn.com/font-awesome/latest/css/font-awesome.min.css" , document . getElementsByTagName ( "head" ) [ 0 ] . appendChild ( i ) } if ( e . element ) this . element = e . element ; else if ( null === e . element ) return void console . log ( "SimpleMDE: Error. No element was found." ) ; if ( void 0 === e . toolbar ) { e . toolbar = [ ] ; for ( var o in K ) K . hasOwnProperty ( o ) && ( - 1 != o . indexOf ( "separator-" ) && e . toolbar . push ( "|" ) , ( K [ o ] [ "default" ] === ! 0 || e . showIcons && e . showIcons . constructor === Array && - 1 != e . showIcons . indexOf ( o ) ) && e . toolbar . push ( o ) ) } e . hasOwnProperty ( "status" ) || ( e . status = [ "autosave" , "lines" , "words" , "cursor" ] ) , e . previewRender || ( e . previewRender = function ( e ) { return this . parent . markdown ( e ) } ) , e . parsingConfig = P ( { highlightFormatting : ! 0 } , e . parsingConfig || { } ) , e . insertTexts = P ( { } , X , e . insertTexts || { } ) , e . promptTexts = Y , e . blockStyles = P ( { } , Z , e . blockStyles || { } ) , e . shortcuts = P ( { } , U , e . shortcuts || { } ) , void 0 != e . autosave && void 0 != e . autosave . unique _id && "" != e . autosave . unique _id && ( e . autosave . uniqueId = e . autosave . unique _id ) , this . options = e , this . render ( ) , ! e . initialValue || this . options . autosave && this . options . autosave . foundSavedValue === ! 0 || this . value ( e . initialValue ) } function F ( ) { if ( "object" != typeof localStorage ) return ! 1 ; try { localStorage . setItem ( "smde_localStorage" , 1 ) , localStorage . removeItem ( "smde_localStorage" ) } catch ( e ) { return ! 1 } return ! 0 } var j = e ( "codemirror" ) ; e ( "codemirror/addon/edit/continuelist.js" ) , e ( "./codemirror/tablist" ) , e ( "codemirror/addon/display/fullscreen.js" ) , e ( "codemirror/mode/markdown/markdown.js" ) , e ( "codemirror/addon/mode/overlay.js" ) , e ( "codemirror/addon/display/placeholder.js" ) , e ( "codemirror/addon/selection/mark-selection.js" ) , e ( "codemirror/mode/gfm/gfm.js" ) , e ( "codemirror/mode/xml/xml.js" ) , e ( "codemirror/mode/yaml/yaml.js" ) , e ( "codemirror/mode/yaml-frontmatter/yaml-frontmatter.js" ) , e ( "spell-checker" ) ; var R = e ( "marked" ) , q = /Mac/ . test ( navigator . platform ) , _ = { toggleBold : c , toggleItalic : u , drawLink : k , toggleHeadingSmaller : p , toggleHeadingBigger : m , drawImage : S , toggleBlockquote : h , toggleOrderedList : b , toggleUnorderedList : x , toggleCodeBlock : f , togglePreview : A , toggleStrikethrough : d , toggleHeading1 : g , toggleHeading2 : v , toggleHeading3 : y , cleanBlock : w , drawTable : C , drawHorizontalRule : L , undo : T , redo : M , toggleSideBySide : N , toggleFullScreen : s } , U = { toggleBold : "Cmd-B" , toggleItalic : "Cmd-I" , drawLink : "Cmd-K" , toggleHeadingSmaller : "Cmd-H" , toggleHeadingBigger : "Shift-Cmd-H" , cleanBlock : "Cmd-E" , drawImage : "Cmd-Alt-I" , toggleBlockquote : "Cmd-'" , toggleOrderedList : "Cmd-Alt-L" , toggleUnorderedList : "Cmd-L" , toggleCodeBlock : "