package Ġjp . j ug g ler . sub way to oter . util čĊč Ċ import Ġandroid . graphics . Type face č Ċ import Ġandroid . text . Sp ann able č Ċ import Ġandroid . text . Sp ann able String č Ċ import Ġandroid . text . Sp ann able StringBuilder č Ċ import Ġandroid . text . Sp anned č Ċ import Ġandroid . text . style .* č Ċ import Ġjp . j ug g ler . sub way to oter . R č Ċ import Ġjp . j ug g ler . sub way to oter . api . entity .* č Ċ import Ġjp . j ug g ler . sub way to oter . mf m . Miss key Markdown Decoder č Ċ import Ġjp . j ug g ler . sub way to oter . pref . Pref B č Ċ import Ġjp . j ug g ler . sub way to oter . span .* č Ċ import Ġjp . j ug g ler . sub way to oter . table . Ac ct Color č Ċ import Ġjp . j ug g ler . sub way to oter . table . Highlight Word č Ċ import Ġjp . j ug g ler . util .* č Ċ import Ġjava . util .* č Ċ import Ġjava . util . regex . Pattern č Ċ import Ġkotlin . math . min čĊč Ċ object ĠHTML Decoder Ġ{ čĊčĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLog Category (" HTML Decoder ") čĊčĊĠĠĠ Ġprivate Ġconst Ġval ĠDEBUG _ HTML _ PARSER Ġ= Ġfalse čĊčĊĠĠĠ Ġprivate Ġenum Ġclass ĠOpen Type Ġ{ čĊĠĠĠĠĠĠĠ ĠOpen , čĊĠĠĠĠĠĠĠ ĠClose , čĊĠĠĠĠĠĠĠ ĠOpen Close , čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġconst Ġval ĠTAG _ TEXT Ġ= Ġ"< > text " čĊĠĠĠ Ġprivate Ġconst Ġval ĠTAG _ END Ġ= Ġ"< > end " čĊčĊĠĠĠ Ġprivate Ġval Ġre Tag Ġ= Ġ"< (/ ? )( \\ w +) ". ascii Pattern () čĊĠĠĠ Ġprivate Ġval Ġre Tag End Ġ= Ġ" (/ ?) >$ ". ascii Pattern () čĊĠĠĠ Ġprivate Ġval Ġre Href Ġ= Ġ"\\ b href =\" ([ ^\ "] *) \"" . ascii Pattern () čĊĠĠĠ Ġprivate Ġval Ġre Attribute Ġ= Ġ"\\ s + ([ A - Za - z 0 - 9 :_ - ]+ )\\ s *= ([ \" ']) ([^ > ]* ?) \\ 2 ". ascii Pattern () čĊĠĠĠ Ġprivate Ġval Ġre Short code Ġ= Ġ": [ A - Za - z 0 - 9 _- ]+ :" . ascii Pattern () čĊĠĠĠ Ġprivate Ġval Ġre Not est ock Emoji Alt Ġ= Ġ""" \ A : [^ : ]+ :\ z """. to Regex () čĊĠĠĠ Ġprivate Ġval Ġre Url Start Ġ= Ġ""" \ A https ? :// """. to Regex () čĊčĊĠĠĠ Ġ// ĠBlock - level ĠElements čĊĠĠĠ Ġ// Ġhttps :// developer . mozilla . org / en - US / docs / Web / HTML / Block - level _ elements čĊĠĠĠ Ġ// Ġhttps :// www . w 3 sch ools . com / html / html _ blocks . asp čĊĠĠĠ Ġprivate Ġval Ġblock Level Elements Ġ= ĠarrayOf ( čĊĠĠĠĠĠĠĠ Ġ" address ", čĊĠĠĠĠĠĠĠ Ġ" article ", čĊĠĠĠĠĠĠĠ Ġ" aside ", čĊĠĠĠĠĠĠĠ Ġ" blockquote ", čĊĠĠĠĠĠĠĠ Ġ" body ", čĊĠĠĠĠĠĠĠ Ġ" canvas ", čĊĠĠĠĠĠĠĠ Ġ" caption ", čĊĠĠĠĠĠĠĠ Ġ" col ", čĊĠĠĠĠĠĠĠ Ġ" colgroup ", čĊĠĠĠĠĠĠĠ Ġ" dd ", čĊĠĠĠĠĠĠĠ Ġ" div ", čĊĠĠĠĠĠĠĠ Ġ" dl ", čĊĠĠĠĠĠĠĠ Ġ" dt ", čĊĠĠĠĠĠĠĠ Ġ" embed ", čĊĠĠĠĠĠĠĠ Ġ" fieldset ", čĊĠĠĠĠĠĠĠ Ġ" figcaption ", čĊĠĠĠĠĠĠĠ Ġ" figure ", čĊĠĠĠĠĠĠĠ Ġ" footer ", čĊĠĠĠĠĠĠĠ Ġ" form ", čĊĠĠĠĠĠĠĠ Ġ" h 1 ", čĊĠĠĠĠĠĠĠ Ġ" h 2 ", čĊĠĠĠĠĠĠĠ Ġ" h 3 ", čĊĠĠĠĠĠĠĠ Ġ" h 4 ", čĊĠĠĠĠĠĠĠ Ġ" h 5 ", čĊĠĠĠĠĠĠĠ Ġ" h 6 ", čĊĠĠĠĠĠĠĠ Ġ" header ", čĊĠĠĠĠĠĠĠ Ġ" h group ", čĊĠĠĠĠĠĠĠ Ġ" hr ", čĊĠĠĠĠĠĠĠ Ġ" li ", čĊĠĠĠĠĠĠĠ Ġ" main ", čĊĠĠĠĠĠĠĠ Ġ" map ", čĊĠĠĠĠĠĠĠ Ġ" nav ", čĊĠĠĠĠĠĠĠ Ġ" noscript ", čĊĠĠĠĠĠĠĠ Ġ" object ", čĊĠĠĠĠĠĠĠ Ġ" ol ", čĊĠĠĠĠĠĠĠ Ġ" p ", čĊĠĠĠĠĠĠĠ Ġ" pre ", čĊĠĠĠĠĠĠĠ Ġ" progress ", čĊĠĠĠĠĠĠĠ Ġ" section ", čĊĠĠĠĠĠĠĠ Ġ" textarea ", čĊĠĠĠĠĠĠĠ Ġ" table ", čĊĠĠĠĠĠĠĠ Ġ" tbody ", čĊĠĠĠĠĠĠĠ Ġ" tfoot ", čĊĠĠĠĠĠĠĠ Ġ" thead ", čĊĠĠĠĠĠĠĠ Ġ" tr ", čĊĠĠĠĠĠĠĠ Ġ" ul ", čĊĠĠĠĠĠĠĠ Ġ" video " čĊĠĠĠ Ġ). to HashSet () čĊčĊĠĠĠ Ġ// ĠEmpty Ġelement čĊĠĠĠ Ġ// Ġhttps :// developer . mozilla . org / en - US / docs / G lossary / Empty _ element čĊĠĠĠ Ġ// Ġelements Ġthat Ġcannot Ġhave Ġany Ġchild Ġnodes Ġ( i . e ., Ġnested Ġelements Ġor Ġtext Ġnodes ). čĊĠĠĠ Ġ// ĠIn ĠHTML , Ġusing Ġa Ġclosing Ġtag Ġon Ġan Ġempty Ġelement Ġis Ġusually Ġinvalid . čĊĠĠĠ Ġprivate Ġval Ġempty Elements Ġ= ĠarrayOf ( čĊĠĠĠĠĠĠĠ Ġ" area ", čĊĠĠĠĠĠĠĠ Ġ" base ", čĊĠĠĠĠĠĠĠ Ġ" br ", čĊĠĠĠĠĠĠĠ Ġ" col ", čĊĠĠĠĠĠĠĠ Ġ" embed ", čĊĠĠĠĠĠĠĠ Ġ" hr ", čĊĠĠĠĠĠĠĠ Ġ" img ", čĊĠĠĠĠĠĠĠ Ġ" input ", čĊĠĠĠĠĠĠĠ Ġ" key gen ", Ġ// ( HTML Ġ 5 . 2 ĠDraft Ġremoved ) čĊĠĠĠĠĠĠĠ Ġ" link ", čĊĠĠĠĠĠĠĠ Ġ" meta ", čĊĠĠĠĠĠĠĠ Ġ" param ", čĊĠĠĠĠĠĠĠ Ġ" source ", čĊĠĠĠĠĠĠĠ Ġ" track ", čĊĠĠĠĠĠĠĠ Ġ" w br " čĊĠĠĠ Ġ). to HashSet () čĊčĊĠĠĠ Ġprivate Ġval Ġre Entity Ġ= Ġ"& (# ? )( \\ w + ); ". ascii Pattern () čĊĠĠĠ Ġprivate Ġval Ġentity _ map Ġ= ĠHashMap < String , ĠChar >() čĊĠĠĠ Ġprivate Ġfun Ġdefine Entity ( s : ĠString , Ġc : ĠChar ) Ġ{ čĊĠĠĠĠĠĠĠ Ġentity _ map [ s ] Ġ= Ġc čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġchr ( num : ĠInt ): ĠChar Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġnum . to Char () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdecode Entity ( src : ĠString ?): ĠString Ġ{ čĊĠĠĠĠĠĠĠ Ġsrc Ġ?: Ġreturn Ġ"" čĊĠĠĠĠĠĠĠ Ġvar Ġsb : ĠStringBuilder ? Ġ= Ġnull čĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġre Entity . matcher ( src ) čĊĠĠĠĠĠĠĠ Ġvar Ġlast _ end Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġwhile Ġ( m . find ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sb Ġ== Ġnull ) Ġsb Ġ= ĠStringBuilder () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġm . start () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġm . end () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( start Ġ> Ġlast _ end ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( src . substring ( last _ end , Ġstart )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis _ numeric Ġ= Ġm . group Ex ( 1 ) !!. isNotEmpty () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġpart Ġ= Ġm . group Ex ( 2 ) !! čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is _ numeric ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġentity _ map [ part ] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( c Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( c ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcp Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpart [ 0 ] Ġ== Ġ' x ' Ġ-> Ġpart . substring ( 1 ). toInt ( 1 6 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġpart . toInt ( 1 0 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCharacter . is B mp Code Point ( cp ) Ġ-> Ġsb . append ( cp . to Char ()) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCharacter . isValid Code Point ( cp ) Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( Character . high Sur rogate ( cp )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( Character . low Sur rogate ( cp )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsb . append (' ?') čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠThrowable ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . trace ( ex ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( src . substring ( start , Ġend )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlast _ end Ġ= Ġend čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġ// Ġ åħ¨ ãģı ãĥŀ ãĥĥ ãĥģ ãģĹãģª ãģĭ ãģ£ãģŁ čĊĠĠĠĠĠĠĠ Ġsb Ġ?: Ġreturn Ġsrc čĊčĊĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġsrc . length čĊĠĠĠĠĠĠĠ Ġif Ġ( end Ġ> Ġlast _ end ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( src . substring ( last _ end , Ġend )) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġencode Entity ( src : ĠString ): ĠString Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġsize Ġ= Ġsrc . length čĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠStringBuilder () čĊĠĠĠĠĠĠĠ Ġsb . ensure Capacity ( size ) čĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 0 Ġuntil Ġsize ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( val Ġc Ġ= Ġsrc [ i ]) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'< ' Ġ-> Ġsb . append ("& lt ; ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' >' Ġ-> Ġsb . append ("& gt ; ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'"' Ġ-> Ġsb . append ("& quot ; ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'\'' Ġ-> Ġsb . append (" &# 0 3 9 ; ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'& ' Ġ-> Ġsb . append ("& amp ; ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġsb . append ( c ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġsb . toString () čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// //////////////////////////////////////////////////////////////////////////////// //// čĊčĊĠĠĠ Ġprivate Ġval Ġre Do ctype Ġ= Ġ""" \ A \ s * <! doctype [^ > ]* > """. ascii Pattern ( Pattern . CASE _ INS ENS ITIVE ) čĊĠĠĠ Ġprivate Ġval Ġre Comment Ġ= Ġ""" <!-- .*? --> """. ascii Pattern ( Pattern . DOT ALL ) čĊčĊĠĠĠ Ġprivate Ġfun ĠString . quote Meta () Ġ= ĠPattern . quote ( this ) čĊčĊĠĠĠ Ġprivate Ġclass ĠToken Parser ( src Arg : ĠString ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġsrc : ĠString čĊĠĠĠĠĠĠĠ Ġvar Ġnext : ĠInt Ġ= Ġ 0 čĊčĊĠĠĠĠĠĠĠ Ġvar Ġopen _ type Ġ= ĠOpen Type . Open Close čĊĠĠĠĠĠĠĠ Ġvar Ġtag Ġ= Ġ"" čĊĠĠĠĠĠĠĠ Ġvar Ġtext Ġ= Ġ"" čĊčĊĠĠĠĠĠĠĠ Ġinit Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . src Ġ= Ġsrc Arg čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace First ( re Do ctype , Ġ"") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replaceAll ( re Comment , Ġ" Ġ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġeat () čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġeat () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġend ? čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( next Ġ>= Ġsrc . length ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= ĠTAG _ END čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ type Ġ= ĠOpen Type . Open Close čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtext Ġ? čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġend Ġ= Ġsrc . indexOf ('< ', Ġnext ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( end Ġ== Ġ- 1 ) Ġend Ġ= Ġsrc . length čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( end Ġ> Ġnext ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġsrc . substring ( next , Ġend ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . tag Ġ= ĠTAG _ TEXT čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . open _ type Ġ= ĠOpen Type . Open Close čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġend čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġtag Ġ? čĊĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġsrc . indexOf (' >', Ġnext ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( end Ġ== Ġ- 1 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġsrc . length čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ++ end čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġsrc . substring ( next , Ġend ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġend čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġre Tag . matcher ( text ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . find ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis _ close Ġ= Ġm . group Ex ( 1 ) !!. isNotEmpty () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġm . group Ex ( 2 ) !!. lowercase () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm 2 Ġ= Ġre Tag End . matcher ( text ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis _ openc lose Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm 2 . find () Ġ-> Ġm 2 . group Ex ( 1 ) !!. isNotEmpty () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġopen _ type Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis _ close Ġ-> ĠOpen Type . Close čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis _ openc lose Ġ|| Ġempty Elements . contains ( tag ) Ġ-> ĠOpen Type . Open Close čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠOpen Type . Open čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= ĠTAG _ TEXT čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . open _ type Ġ= ĠOpen Type . Open Close čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// Ġ æľ« å°¾ ãģ® æĶ¹ è¡Į ãĤĴ æķ° ãģĪãĤĭ čĊĠĠĠ Ġprivate Ġfun ĠSp ann able StringBuilder . last Br Count (): ĠInt Ġ{ čĊĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġvar Ġpos Ġ= Ġlength Ġ- Ġ 1 čĊĠĠĠĠĠĠĠ Ġwhile Ġ( pos Ġ> Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġc Ġ= Ġthis [ pos -- ] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġc Ġ== Ġ'\ n ' Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ++ count čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCharacter . is Whitespace ( c ) Ġ-> Ġcontinue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġbreak čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġcount čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġlist Markers Ġ= ĠarrayOf (" âĹ ı ", Ġ"-", Ġ"*", Ġ" ãĥ» ") čĊčĊĠĠĠ Ġprivate Ġenum Ġclass ĠList Type Ġ{ čĊĠĠĠĠĠĠĠ ĠNone , čĊĠĠĠĠĠĠĠ ĠOrdered , čĊĠĠĠĠĠĠĠ ĠUn ordered , čĊĠĠĠĠĠĠĠ ĠDefinition , čĊĠĠĠĠĠĠĠ ĠQuote čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġclass ĠList Context ( čĊĠĠĠĠĠĠĠ Ġval Ġtype : ĠList Type , čĊĠĠĠĠĠĠĠ Ġval Ġnest Level Ordered : ĠInt , čĊĠĠĠĠĠĠĠ Ġval Ġnest Level Un ordered : ĠInt , čĊĠĠĠĠĠĠĠ Ġval Ġnest Level Definition : ĠInt , čĊĠĠĠĠĠĠĠ Ġval Ġnest Level Quote : ĠInt , čĊĠĠĠĠĠĠĠ Ġvar Ġorder : ĠInt Ġ= Ġ 0 , čĊĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠ Ġfun Ġsub Ordered () Ġ= ĠList Context ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠList Type . Ordered , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Ordered Ġ+ Ġ 1 , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Un ordered , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Definition , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Quote čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġfun Ġsub Un ordered () Ġ= ĠList Context ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠList Type . Un ordered , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Ordered , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Un ordered Ġ+ Ġ 1 , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Definition , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Quote čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġfun Ġsub Definition () Ġ= ĠList Context ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠList Type . Definition , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Ordered , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Un ordered , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Definition Ġ+ Ġ 1 , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Quote čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġfun Ġsub Quote () Ġ= ĠList Context ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠList Type . Quote , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Ordered , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Un ordered , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Definition , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnest Level Quote Ġ+ Ġ 1 čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġfun Ġincrement () Ġ= Ġwhen Ġ( type ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠList Type . Ordered Ġ-> Ġ"${ ++ order }. Ġ" čĊĠĠĠĠĠĠĠĠĠĠĠ ĠList Type . Un ordered Ġ-> Ġ"${ list Markers [ nest Level Un ordered Ġ% Ġlist Markers . size ]} Ġ" čĊĠĠĠĠĠĠĠĠĠĠĠ ĠList Type . Definition Ġ-> Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ"" čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġin List () Ġ= Ġnest Level Ordered Ġ+ Ġnest Level Un ordered Ġ+ Ġnest Level Definition Ġ> Ġ 0 čĊčĊĠĠĠĠĠĠĠ Ġfun Ġquote Color (): ĠInt Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquote Nest Colors Ġ= ĠM iss key Markdown Decoder . quote Nest Colors čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġquote Nest Colors [ nest Level Quote Ġ% Ġquote Nest Colors . size ] čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// ĠSp ann able StringBuilder ãĤĴè¡Į ãģĶ ãģ¨ ãģ« åĪĨ è§£ ãģĻãĤĭ čĊĠĠĠ Ġ// Ġ è¡Į æľ« ãģ® æĶ¹ è¡Į æĸĩåŃĹ ãģ¯ åĲĦ è¡Į ãģ® æľ« å°¾ ãģ« æ® ĭ ãĤĭ čĊĠĠĠ Ġ// Ġ æľĢ çµĤ è¡Į ãģ® éķ· ãģķ ãģĮ 0 ( æĶ¹ è¡Į æĸĩåŃĹ ãĤĤ ãģª ãģĹ ) ãģł ãģ£ãģŁ åł´åĲĪãģ¯ åĩºåĬĽ ãģķãĤĮ ãģªãģĦ čĊĠĠĠ Ġfun ĠSp ann able StringBuilder . split Lines () Ġ= čĊĠĠĠĠĠĠĠ ĠArrayList < Sp ann able StringBuilder >(). also Ġ{ Ġdst Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¥åĬĽ ãģ® æľ« å°¾ ãģ® trim čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġend Ġ= Ġthis . length čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( end Ġ> Ġ 0 Ġ&& ĠCharacter Group . is Whitespace ( this [ end Ġ- Ġ 1 ]. code )) Ġ-- end čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åħ¥åĬĽ ãģ® æľĢ åĪĿ ãģ® éĿŀ ç©º çĻ½ æĸĩåŃĹ ãģ® ä½įç½® ãĤĴ èª¿ ãģ¹ ãģ¦ ãģĬ ãģı čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġfirst Non Space Ġ= Ġ 0 čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( first Non Space Ġ< Ġend Ġ&& ĠCharacter Group . is Whitespace ( this [ first Non Space ]. code )) Ġ++ first Non Space čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġi Ġ= Ġ 0 čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġend ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Start Ġ= Ġi čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( i Ġ< Ġend Ġ&& Ġthis [ i ] Ġ!= Ġ'\ n ') Ġ++ i čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline End Ġ= Ġif Ġ( i Ġ>= Ġend ) Ġend Ġelse Ġi Ġ+ Ġ 1 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ++ i čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ è¡Į éł Ń ãģ® ç©º çĻ½ ãĤĴ åīĬ ãĤĭ č Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( line Start Ġ< Ġline End Ġ&& č Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis [ line Start ] Ġ!= Ġ'\ n ' Ġ&& č Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCharacter Group . is Whitespace ( this [ line Start ]. toInt ()) č Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ++ line Start čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æľĢ åĪĿ ãģ® éĿŀ ç©º çĻ½ æĸĩåŃĹ ä»¥ éĻį ãģ® è¡Į ãĤĴ åĩºåĬĽ ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( line End Ġ> Ġfirst Non Space ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdst . add ( this . sub Sequence ( line Start , Ġline End ) Ġas ĠSp ann able StringBuilder ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( dst . isEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġãĥ ĸ ãĥŃ ãĥĥãĤ¯ è¦ģ ç´ł ãģ¯ æľĢ ä½İ 1 è¡Į ãģ¯ åŃĺåľ¨ ãģĻãĤĭ ãģ®ãģ§ ãĢģ 1 è¡Į ãģłãģĳ ãģ® è¦ģ ç´ł ãĤĴ ä½ľ ãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdst . add ( Sp ann able StringBuilder ()) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġre Last Line Ġ= Ġ""" (?: \ A |\ n ) ([ ^\ n ]*) \ z """. to Regex () čĊčĊĠĠĠ Ġprivate Ġclass ĠNode Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġval Ġchild _ nodes Ġ= ĠArrayList < Node >() čĊčĊĠĠĠĠĠĠĠ Ġval Ġtag : ĠString čĊĠĠĠĠĠĠĠ Ġval Ġtext : ĠString čĊčĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġhref : ĠString ? čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġre Href . matcher ( text ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . find ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhref Ġ= Ġdecode Entity ( m . group Ex ( 1 )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( href . isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġhref čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġnull čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġconstructor () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġ"< > root " čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Ġ= Ġ"" čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġconstructor ( t : ĠToken Parser ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . tag Ġ= Ġt . tag čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . text Ġ= Ġt . text čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġadd Child ( t : ĠToken Parser , Ġindent : ĠString ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( DEBUG _ HTML _ PARSER ) Ġlog . d (" addChild : Ġ$ indent ($ tag ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( t . tag Ġ!= ĠTAG _ END ) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĸ ī ãģĺ ãĤĭ ãĤ¿ ãĤ° čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t . open _ type Ġ== ĠOpen Type . Close ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( t . tag Ġ!= Ġthis . tag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĸ ī ãģĺ ãĤĭ ãĤ¿ ãĤ° ãģĮ çı¾åľ¨ ãģ® éļ İ å± ¤ ãģ¨ ãĥŀ ãĥĥ ãĥģ ãģĹãģªãģĦ ãģª ãĤī çĦ¡ è¦ĸ ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . w (" unexpected Ġclose Ġtag ! Ġ${ t . tag }") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . eat () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontinue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġãģĵãģ® éļ İ å± ¤ ãģ® çµĤ ç«¯ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . eat () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbreak čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġopen _ type Ġ= Ġt . open _ type čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild Ġ= ĠNode ( t ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild _ nodes . add ( child ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġt . eat () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( DEBUG _ HTML _ PARSER ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . d (" addChild : Ġ$ indent | ${ child . tag } Ġ$ open _ type Ġ[ ${ child . text . quote Meta ()} ]") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( open _ type Ġ== ĠOpen Type . Open ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . addChild ( t , Ġ"$ indent -- ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( DEBUG _ HTML _ PARSER ) Ġlog . d (" addChild : Ġ$ indent )$ tag ") čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun ĠString . tags Can Remove Near Spaces () Ġ= Ġwhen Ġ( this ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" li ", Ġ" ol ", Ġ" ul ", Ġ" dl ", Ġ" dt ", Ġ" dd ", Ġ" blockquote ", Ġ" h 1 ", Ġ" h 2 ", Ġ" h 3 ", Ġ" h 4 ", Ġ" h 5 ", Ġ" h 6 ", čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" table ", Ġ" tbody ", Ġ" thead ", Ġ" tfoot ", Ġ" tr ", Ġ" td ", Ġ" th ", čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ-> Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġcan Skip Encode ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Block Parent : ĠBoolean , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr : ĠNode , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent : ĠNode , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġprev : ĠNode ?, čĊĠĠĠĠĠĠĠĠĠĠĠ Ġnext : ĠNode ? čĊĠĠĠĠĠĠĠ Ġ) Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ! is Block Parent Ġ-> Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr . tag Ġ!= ĠTAG _ TEXT Ġ-> Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġcurr . text . isNotBlank () Ġ-> Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev ?. tag ?. tags Can Remove Near Spaces () Ġ== Ġtrue Ġ-> Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext ?. tag ?. tags Can Remove Near Spaces () Ġ== Ġtrue Ġ-> Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . tag . tags Can Remove Near Spaces () Ġ&& Ġ( prev Ġ== Ġnull Ġ|| Ġnext Ġ== Ġnull ) Ġ-> Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġencode Text ( options : ĠDecode Options , Ġsb : ĠSp ann able StringBuilder ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( options . context Ġ!= Ġnull Ġ&& Ġoptions . decode Emoji ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( options . decode Emoji ( decode Entity ( text ))) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( decode Entity ( text )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġencode Image ( options : ĠDecode Options , Ġsb : ĠSp ann able StringBuilder ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġattrs Ġ= Ġparse Attributes ( text ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( options . unwrap Emoji Image Tag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcss Class Ġ= Ġattrs [" class "] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġattrs [" title "] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġattrs [" src "] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalt Ġ= Ġattrs [" alt "] čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( css Class Ġ!= Ġnull Ġ&& čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ!= Ġnull Ġ&& čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcss Class . contains (" emo j ione ") Ġ&& čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre Short code . matcher ( title ). find () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( options . decode Emoji ( title )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( css Class Ġ== Ġ" emoji " Ġ&& Ġurl Ġ!= Ġnull Ġ&& Ġalt Ġ!= Ġnull Ġ&& Ġre Not est ock Emoji Alt . matches ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalt čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġnot est ock Ġcustom Ġemoji čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . run Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġlength čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( alt ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġlength čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork Emoji Span ( url , Ġscale Ġ= Ġoptions . en large Custom Emoji ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ("< img Ġ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġattrs [" src "] Ġ?: Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcaption Ġ= Ġattrs [" alt "] Ġ?: Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( caption . isNotEmpty () Ġ|| Ġurl . isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( caption . not Empty () Ġ?: Ġurl ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( re Url Start . find ( url ) Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Clickable Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLink Info ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġurl , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġac Ġ= Ġnull , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġnull , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcaption Ġ= Ġcaption , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmention Ġ= Ġnull čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( span , Ġstart , Ġsb . length , ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" Ġ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append (" /> ") čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġclass ĠEncode Span Env ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoptions : ĠDecode Options , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Context : ĠList Context , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag : ĠString , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsb : ĠSp ann able StringBuilder , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsb Tmp : ĠSp ann able StringBuilder , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Start : ĠInt , čĊĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠ Ġval Ġoriginal Flush er : ĠEncode Span Env . () Ġ-> ĠUnit Ġ= Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( tag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" s ", Ġ" strike ", Ġ" del " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStri ke through Span (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" em " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Span ( Type face . default From Style ( Type face . ITAL IC )), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" strong " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyle Span ( Type face . BOLD ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" tr " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ("| ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" style ", Ġ" script " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġsb _ tmp ãģ« ãĥ¬ ãĥ³ ãĥĢ ãĥª ãĥ³ãĤ° ãģĹãģŁ åĪĨ ãģ¯ èªŃãģ¿ æį ¨ ãģ¦ ãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" h 1 " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyle Span ( Type face . BOLD ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelative Size Span ( 1 . 8 f ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" h 2 " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyle Span ( Type face . BOLD ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelative Size Span ( 1 . 6 f ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" h 3 " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyle Span ( Type face . BOLD ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelative Size Span ( 1 . 4 f ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" h 4 " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyle Span ( Type face . BOLD ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelative Size Span ( 1 . 2 f ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" h 5 " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyle Span ( Type face . BOLD ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelative Size Span ( 1 . 0 f ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" h 6 " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStyle Span ( Type face . BOLD ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelative Size Span ( 0 . 8 f ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" pre " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBackground Color Span ( 0 x 4 0 8 0 8 0 8 0 ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRelative Size Span ( 0 . 7 f ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Span ( Type face . MON O SPACE ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" code " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBackground Color Span ( 0 x 4 0 8 0 8 0 8 0 ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Span ( Type face . MON O SPACE ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" hr " Ġ-> Ġsb . append (" ---------- ") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġtmp Flush er Ġ= ĠHashMap < String , ĠEncode Span Env . () Ġ-> ĠUnit >(). apply Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġadd ( var arg Ġtags : ĠString , Ġblock : ĠEncode Span Env . () Ġ-> ĠUnit ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( tag Ġin Ġtags ) Ġthis [ tag ] Ġ= Ġblock čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" a ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Info Ġ= Ġformat Link Caption ( options , Ġsb Tmp , Ġhref Ġ?: Ġ"") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcaption Ġ= Ġlink Info . caption čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( caption . isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( link Info . caption ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( link Info . url . isNotEmpty ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Ġ= ĠMy Clickable Span ( link Info ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( span , Ġstart , Ġend , ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ãĥª ãĥ³ ãĤ¯ ãĤ¹ ãĥĳ ãĥ³ ãĤĴè¨Ńå®ļ ãģĹãģŁ å¾Į ãģ« èī² ãĤĴ ãģ¤ ãģĳãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlist Ġ= Ġoptions . highlight T rie ?. match List ( sb , Ġstart , Ġend ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( range Ġin Ġlist ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġword Ġ= ĠHighlight Word . load ( range . word ) Ġ?: Ġcontinue čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHighlight Span ( word . color _ fg , Ġword . color _ bg ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange . start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrange . end , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( word . sound _ type Ġ!= ĠHighlight Word . SOUND _ TYPE _ NONE ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( options . highlight Sound Ġ== Ġnull ) Ġoptions . highlight Sound Ġ= Ġword čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( word . speech Ġ!= Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( options . highlight Speech Ġ== Ġnull ) Ġoptions . highlight Speech Ġ= Ġword čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( options . highlight Any Ġ== Ġnull ) Ġoptions . highlight Any Ġ= Ġword čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" style ", Ġ" script ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ èªŃãģ¿ æį ¨ ãģ¦ ãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æľĢ éģ© åĮĸ ãģ«ãĤĪ ãĤĬ tmp Flush er Original ãģ¨ ãģĵãģ® ãĥ© ãĥł ãĥĢ ãģĮ åĲĮ ä¸Ģ ãĤª ãĥĸãĤ¸ãĤ§ãĤ¯ãĥĪ ãģ«ãģª ãĤī ãģªãģĦ ãĤĪãģĨãģ« ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" blockquote ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbg _ color Ġ= Ġlist Context . quote Color () čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTextView Ġãģ® æĸĩåŃĹ è£ħ é£ ¾ ãģ§ãģ¯ ãĢĮ ãĥĸ ãĥŃ ãĥĥãĤ¯ è¦ģ ç´ł ãģ® åħ¥ ãĤĮ åŃĲ ãĢį ãĤĴ è¡¨ çı¾ ãģ§ãģį ãģªãģĦ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ åĨħå®¹ ãģ® åĲĦ è¡Į ãģ® å§ĭ ç«¯ ãģ« ä½ķ ãģĭ è¿½åĬł ãģĻãĤĭãģ¨ ãģĦãģĨ ãģ® ãģĮ ãģ¾ ãģļ ãĤŃ ãĥĦ ãģĦ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ãģĹãģ ĭ ãģĹ åĲĦ è¡Į ãģ® éł Ń ãģ« å¼ķçĶ¨ ãĥŀ ãĥ¼ãĤ¯ ãĤĴ ãģ¤ ãģĳ ãģªãģĦ ãģ¨ å¼ķçĶ¨ ãģ® ãĥį ãĤ¹ãĥĪ ãģ§ æĦı åĳ³ ãģĮ éĢļ ãģĺ ãģªãģı ãģª ãģ£ãģ¦ ãģĹãģ¾ ãģĨ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Italic Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Tmp . split Lines (). forEach Ġ{ Ġline Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Start Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ("> Ġ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBackground Color Span ( bg _ color ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Start , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġline Start Ġ+ Ġ 1 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( line ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Span ( Type face . default From Style ( Type face . ITAL IC )), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Italic , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" li ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Header 1 Ġ= Ġlist Context . increment () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġline Header 2 Ġ= Ġ" Ġ". repeat ( line Header 1 . length ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Tmp . split Lines (). forEach Indexed Ġ{ Ġi , Ġline Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( if Ġ( i Ġ== Ġ 0 ) Ġline Header 1 Ġelse Ġline Header 2 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( line ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" dt ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġlist Context . increment () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Bold Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Tmp . split Lines (). forEach Ġ{ Ġline Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( prefix ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( line ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfont Span ( Type face . default From Style ( Type face . BOLD )), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Bold , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . length , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" dd ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprefix Ġ= Ġlist Context . increment () Ġ+ Ġ" ãĢĢ ãĢĢ " čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Tmp . split Lines (). forEach Ġ{ Ġline Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( prefix ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( line ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġchild List Context ( tag : ĠString , Ġouter Context : ĠList Context ) Ġ= Ġwhen Ġ( tag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ol " Ġ-> Ġouter Context . sub Ordered () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" ul " Ġ-> Ġouter Context . sub Un ordered () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" dl " Ġ-> Ġouter Context . sub Definition () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" blockquote " Ġ-> Ġouter Context . sub Quote () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġouter Context čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġencode Span ( čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoptions : ĠDecode Options , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb : ĠSp ann able StringBuilder , čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Context : ĠList Context , čĊĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Block Ġ= Ġblock Level Elements . contains ( tag ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( tag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTAG _ TEXT Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencode Text ( options , Ġsb ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" img " Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġencode Image ( options , Ġsb ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" script ", Ġ" style " Ġ-> Ġreturn čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" th ", Ġ" td " Ġ-> Ġsb . append ("| ") čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġif Ġ( is Block Ġ&& Ġtag Ġ!= Ġ" script " Ġ&& Ġtag Ġ!= Ġ" style ") Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlast Line Ġ= Ġre Last Line . find ( sb )?. group Values ?. first OrNull () Ġ?: Ġ"" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( Character Group . re Not Whitespace . matcher ( last Line ). find ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ("\ n ") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġflush er Ġ= Ġthis . tmp Flush er [ tag ] čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġencode Span Env Ġ= Ġif Ġ( flush er Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġä¸Ģ æĻĤ çļĦãģª ãĥĲ ãĥĥ ãĥķãĤ ¡ ãģ« åŃĲ è¦ģ ç´ł ãĤĴ åĩºåĬĽ ãģĹãģ¦ ãĢģ å¾Į ãģ§ ä½ķ ãģĭ åĩ¦çĲĨ ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncode Span Env ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ= Ġoptions , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Context Ġ= Ġlist Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġtag , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Ġ= Ġsb , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Tmp Ġ= ĠSp ann able StringBuilder (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start Ġ= Ġ 0 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ çı¾åľ¨ ãģ® ãĥĲ ãĥĥ ãĥķãĤ ¡ ãģ« åĩºåĬĽ ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġflush er Ġ= Ġoriginal Flush er čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEncode Span Env ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions Ġ= Ġoptions , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist Context Ġ= Ġlist Context , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġtag , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Ġ= Ġsb , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb Tmp Ġ= Ġsb , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspan Start Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchild List Context Ġ= Ġchild List Context ( tag , Ġlist Context ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġchild _ nodes . forEach Indexed Ġ{ Ġi , Ġchild Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! can Skip Encode ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Block , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcurr Ġ= Ġchild , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent Ġ= Ġthis , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprev Ġ= Ġchild _ nodes . elementAt OrNull ( i Ġ- Ġ 1 ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Ġ= Ġchild _ nodes . elementAt OrNull ( i Ġ+ Ġ 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchild . encode Span ( options , Ġencode Span Env . sb Tmp , Ġchild List Context ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġflush er ( encode Span Env ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Block ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġãĥ ĸ ãĥŃ ãĥĥãĤ¯ è¦ģ ç´ł čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æľ« å°¾ ãģ® æĶ¹ è¡Į ãģĮ ï¼ Ĵ æĸĩåŃĹ æľª æº Ģ ãģª ãĤī æĶ¹ è¡Į ãĤĴ è¿½åĬł ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġappend Count Ġ= Ġ 2 Ġ- Ġsb . last Br Count () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( list Context . in List ()) Ġappend Count Ġ= Ġmin ( 1 , Ġappend Count ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( tag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" tr " Ġ-> Ġappend Count Ġ= Ġmin ( 1 , Ġappend Count ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" thead ", Ġ" tfoot ", Ġ" tbody " Ġ-> Ġappend Count Ġ= Ġ 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrepeat ( append Count ) Ġ{ Ġsb . append ("\ n ") Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ãĤ¤ãĥ³ ãĥ© ãĤ¤ãĥ³ è¦ģ ç´ł ãģ§ æĶ¹ è¡Į ãĤ¿ ãĤ° ãģ§ ãĥĨ ãĤŃ ãĤ¹ãĥĪ ãģĮ ãĤ« ãĥ© ãģ§ ãģªãģĦ ãģª ãĤī ãĢģ æĶ¹ è¡Į ãĤĴ è¿½åĬł ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(" br " Ġ== Ġtag Ġ&& Ġsb . isNotEmpty ()) Ġsb . append ('\ n ') čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// Ġsplit Ġattributes čĊĠĠĠ Ġprivate Ġfun Ġparse Attributes ( text : ĠString ): ĠHashMap < String , ĠString > Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġdst Ġ= ĠHashMap < String , ĠString >() čĊĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġre Attribute . matcher ( text ) čĊĠĠĠĠĠĠĠ Ġwhile Ġ( m . find ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġm . group Ex ( 1 ) !!. lowercase () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġdecode Entity ( m . group Ex ( 3 )) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġdst [ name ] Ġ= Ġvalue čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġdst čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdecode HTML ( options : ĠDecode Options , Ġsrc : ĠString ?): ĠSp ann able StringBuilder Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( options . link Helper ?. is Miss key Ġ== Ġtrue Ġ&& Ġ! options . force Html ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠM iss key Markdown Decoder . decode Markdown ( options , Ġsrc ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠSp ann able StringBuilder () čĊčĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( src Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġparse ĠHTML Ġnode Ġtree čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtracker Ġ= ĠToken Parser ( src ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġroot Node Ġ= ĠNode () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( TAG _ END Ġ!= Ġtracker . tag ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Node . addChild ( tracker , Ġ"") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġencode Ġto ĠSp ann able StringBuilder čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot Node . encode Span ( options , Ġsb , ĠList Context ( type Ġ= ĠList Type . None , Ġ 0 , Ġ 0 , Ġ 0 , Ġ 0 )) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æľ« å°¾ ãģ® ç©º çĻ½ ãĤĴ åıĸ ãĤĬ éĻ¤ ãģı čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsb . remove End Wh ites p aces () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠThrowable ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . trace ( ex ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġsb čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdecode Ment ions ( čĊĠĠĠĠĠĠĠ Ġlink Helper : ĠLink Helper , čĊĠĠĠĠĠĠĠ Ġstatus : ĠT oot Status , čĊĠĠĠ Ġ): ĠSp ann able ? Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġmention List : ĠList < To ot Mention >? Ġ= Ġstatus . mentions čĊĠĠĠĠĠĠĠ Ġval Ġlink _ tag : ĠAny Ġ= Ġstatus čĊčĊĠĠĠĠĠĠĠ Ġif Ġ( mention List Ġ== Ġnull Ġ|| Ġmention List . isEmpty ()) Ġreturn Ġnull čĊčĊĠĠĠĠĠĠĠ Ġval Ġsb Ġ= ĠSp ann able StringBuilder () čĊĠĠĠĠĠĠĠ Ġfor Ġ( item Ġin Ġmention List ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sb . isNotEmpty ()) Ġsb . append (" Ġ") čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfull Ac ct Ġ= Ġget Full Ac ct OrNull ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . acct , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitem . url , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Helper , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . account čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Info Ġ= Ġif Ġ( full Ac ct Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLink Info ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġitem . url , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcaption Ġ= Ġ"@ ${ ( if Ġ( Pref B . bp Mention Full Ac ct ()) Ġfull Ac ct Ġelse Ġitem . acct ). pretty }", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġac Ġ= ĠAc ct Color . load ( full Ac ct ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmention Ġ= Ġitem , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġlink _ tag čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLink Info ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġitem . url , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcaption Ġ= Ġ"@ ${ item . acct . pretty }", čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġac Ġ= Ġnull , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmention Ġ= Ġitem , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Ġ= Ġlink _ tag čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠ Ġsb . append ( link Info . caption ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġend Ġ= Ġsb . length čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( end Ġ> Ġstart ) Ġsb . set Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMy Clickable Span ( link Info ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġsb čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġre Normal Link Ġ= Ġ""" \ A (\ w + :// )[ ^ / ]* """. ascii Pattern () čĊčĊĠĠĠ Ġ// ĠURL ãģ® è¡¨ è¨ĺ ãĤĴ çŁŃ ãģı ãģĻãĤĭ čĊĠĠĠ Ġ// ĠP un y code Ġãģ® ãĥĩ ãĤ³ãĥ¼ãĥī ãģ¯ ãĤµ ãĥ¼ãĥĲ åģ ´ ãģ§ è¡Į ãĤı ãĤĮãĤĭ ? ãģ®ãģ§ ãĢģ ãģĵ ãģĵ ãģ§ãģ¯ åħĥ ãĥª ãĥ³ ãĤ¯ ãģ® è¡¨ç¤º ãĥĨ ãĤŃ ãĤ¹ãĥĪ ãĤĴ åħĥ ãģ« URL çŁŃ ç¸ ® ãĤĴ è© ¦ ãģ¿ ãĤĭ čĊĠĠĠ Ġfun Ġshort en Url ( original Url : ĠCharSequence ): ĠCharSequence Ġ{ čĊĠĠĠĠĠĠĠ Ġtry Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġre Normal Link . matcher ( original Url ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m . find ()) Ġreturn ĠSp ann able StringBuilder (). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ æĸĩåŃĹ è£ħ é£ ¾ ãĤĴ ãģĿãģ® ãģ¾ ãģ¾ æ® ĭ ãģĹãģŁ ãģĦ ãģ®ãģ§ sub Sequence ãĤĴ è¿Ķ ãģĻ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠWeb UI ãģ§ãģ¯ éĿŀ è¡¨ç¤º ãĤ¹ ãĥĳ ãĥ³ ãģ« éļ ł ãĤĮ ãģ¦ãģĦãĤĭ ãģĮ ãĢģ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĢļå¸¸ ãģ® ãĥª ãĥ³ ãĤ¯ ãģª ãĤī Ġ ãĤ¹ ãĤŃ ãĥ¼ãĥ ŀ åĲį Ġ+ Ġ: // ĠãģĮ å¿ħ ãģļ åĩº çı¾ ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġschema Ġ= Ġm . group Ex ( 1 ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstart Ġ= Ġif Ġ( schema ?. startsWith (" http ") Ġ== Ġtrue ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttp , https Ġãģ® åł´åĲĪãģ¯ ãĤ¹ ãĤŃ ãĥ¼ãĥ ŀ è¡¨ è¨ĺ ãĤĴ çľģ çķ¥ ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschema . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ãģĿãģ® ä»ĸ ãģ® ãĤ¹ ãĤŃ ãĥ¼ãĥ ŀ ãĤĤ M ast od on ãģ§ãģ¯ è¨± å®¹ ãģķãĤĮãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġãģĵãģ® åł´åĲĪãģ¯ ãĤ¹ ãĤŃ ãĥ¼ãĥ ŀ åĲį ãĤĴ çľģ çķ¥ ãģĹãģªãģĦ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / to ot suite / mast od on / pull / 7 8 1 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġoriginal Url . length čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlimit Ġ= Ġm . end () Ġ+ Ġ 1 0 Ġ// Ġ 1 0 Ġcharacters Ġfor Ġ( Ġpath Ġ+ Ġquery Ġ+ Ġfragment Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( length Ġ> Ġlimit ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( original Url . sub Sequence ( start , Ġlimit )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (' âĢ¦ ') čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend ( original Url . sub Sequence ( start , Ġlength )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠThrowable ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . trace ( ex ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġoriginal Url čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġre N ic od ic Ġ= Ġ""" \ A https ? :// dic . nic ov ideo . jp / a / ([^ ? #/ ]+) """. ascii Pattern () čĊčĊĠĠĠ Ġprivate Ġfun Ġformat Link Caption ( čĊĠĠĠĠĠĠĠ Ġoptions : ĠDecode Options , čĊĠĠĠĠĠĠĠ Ġoriginal Caption : ĠCharSequence , čĊĠĠĠĠĠĠĠ Ġhref : ĠString , čĊĠĠĠ Ġ) Ġ= ĠLink Info ( čĊĠĠĠĠĠĠĠ Ġcaption Ġ= Ġoriginal Caption , čĊĠĠĠĠĠĠĠ Ġurl Ġ= Ġhref , čĊĠĠĠĠĠĠĠ Ġtag Ġ= Ġoptions . link Tag čĊĠĠĠ Ġ). also Ġ{ Ġlink Info Ġ-> čĊĠĠĠĠĠĠĠ Ġwhen Ġ( original Caption . first OrNull ()) Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ# hasht ag Ġãģ¯ å¤īæĽ´ ãģĹãģªãģĦ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ'#' Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ@ mention čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ'@ ' Ġ-> Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġafter Full Ac ct Resolved ( full Ac ct : ĠAc ct ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Info . ac Ġ= ĠAc ct Color . load ( full Ac ct ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( options . mention Full Ac ct Ġ|| ĠPref B . bp Mention Full Ac ct ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Info . caption Ġ= Ġ"@ ${ full Ac ct . pretty }" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// github . com / t ate is u / Sub way To oter / issues / 1 0 8 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcheck Ġmentions Ġto Ġskip Ġget Ac ct From Url čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmention Ġ= Ġoptions . mentions ?. find Ġ{ Ġit . url Ġ== Ġhref Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( mention Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Full Ac ct OrNull ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmention . acct , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhref , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . link Helper , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . mention Default Host Domain čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ?. let Ġ{ Ġafter Full Ac ct Resolved ( it ) Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcase ĠA čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAccount . note Ġdoes Ġnot Ġhave Ġmentions Ġmetadata . čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġfallback Ġto Ġresolve Ġac ct Ġby Ġmention ĠURL . čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcase ĠB čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġhttps :// mast od on . j ug g ler . jp /@ t ate is u / 1 0 4 8 9 7 0 3 9 1 9 1 5 0 9 3 1 7 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ ãĥª ãĥ¢ ãĥ¼ãĥĪ ãģ® Miss key ãģĭãĤī M ast od on ãģ« æµģ ãĤĮ ãģ¦ ãģį ãģŁ æĬķ ç¨ ¿ ãĤĴ ST ãģ§ è¦ĭ ãĤĭ ãģ¨ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ( åħĥ ãĤ¿ ãĥ³ãĤ¹ ãģ§ ãģ® ) ãĥŃ ãĥ¼ãĤ « ãĥ« ãĥ¡ ãĥ³ ãĤ·ãĥ§ãĥ³ ãģ«å¯¾ ãģĹãģ¦ éĸĵ éģ ķ ãģ£ãģ¦ éĸ ² è¦§ èĢħ ãģ® ãĥī ãĥ¡ ãĤ¤ãĥ³ ãģĮ è£ ľ ãĤı ãĤĮãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠST ãģ® ãĥĲ ãĤ° ãģĭ ãģ¨ æĢĿ ãģ£ãģŁ ãģĳ ãģ© ãĢģ ãĥĩãĥ¼ãĤ¿ ãģ¿ ãģŁ ãĤī mentions ãĥ¡ ãĤ¿ ãĥĩãĥ¼ãĤ¿ ãģ« ä¸Ģ ãģ¤ çĽ® ãģ® ãĥ¡ ãĥ³ ãĤ·ãĥ§ãĥ³ ãģ® URL ãģĮ åĲ« ãģ¾ ãĤĮ ãģ¦ ãģªãģĦ ãĢĤ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġ éĸ ² è¦§ ãĤµ ãĥ¼ãĥĲ ãģĮ ãĥ¡ ãĥ³ ãĤ·ãĥ§ãĥ³ ãģ« åĲ« ãģ¾ ãĤĮãĤĭ ãĤ¢ ãĤ«ãĤ¦ãĥ³ãĥĪ ãĤĴ è§£ æ±º ãģ§ãģį ãģª ãģĭ ãģ£ãģŁ éļ Ľ ãģ« çĻº çĶŁ ãģĻãĤĭ ãĤī ãģĹãģĦ ãĢĤ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġãĥ¡ ãĥ³ ãĤ·ãĥ§ãĥ³ æĥħåł± ãģĮ ãģªãģĦ åł´åĲĪ ãģĮãģĤ ãĤĬ ãģĨ ãĤĭ ãĢĤ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġac ct ãģ® ãĥī ãĥ¡ ãĤ¤ãĥ³ éĥ¨åĪĨ ãĤĴ è£ ľ ãģĨ éļ Ľ ãĢģ éĸ ² è¦§ èĢħ ãģ® ãĥī ãĥ¡ ãĤ¤ãĥ³ ãĤĦ æĬķ ç¨ ¿ èĢħ ãģ® ãĥī ãĥ¡ ãĤ¤ãĥ³ ãģ¸ãģ® å¤ī æıĽ ãĤĴ è© ¦ ãģ¿ ãĤĭ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġraw Ac ct Ġ= ĠAc ct . parse ( original Caption . toString (). substring ( 1 )) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Full Ac ct OrNull ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġraw Ac ct , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhref , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . link Helper , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . mention Default Host Domain čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ?. let Ġ{ Ġfull Ac ct Ġ-> čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġmention ãĥ¡ ãĤ¿ ãĥĩãĥ¼ãĤ¿ ãĤĴ æį ı éĢł ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Info . mention Ġ= ĠT oot Mention ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠEntity Id . DEFAULT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġhref , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġac ct Ġ= Ġfull Ac ct , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġraw Ac ct . username čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġafter Full Ac ct Resolved ( full Ac ct ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontext Ġ= Ġoptions . context čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext Ġ== Ġnull Ġ|| Ġ! options . short Ġ|| Ġhref . isEmpty () Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoptions . is Media Attachment ( href ) Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġæ· » ä»ĺ ãĥ¡ ãĥĩãĤ£ ãĤ¢ ãģ® URL ãģª ãĤī çµ µ æĸĩåŃĹ ãģ« å¤ī æıĽ ãģĻãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Info . caption Ġ= ĠSp ann able String ( href ). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSvg Emoji Span ( context , Ġ" em j _ 1 f 5 bc . svg ", Ġscale Ġ= Ġ 1 f ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlength , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ also čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġãĥ ĭ ãĤ³ ãĥĭ ãĤ³ å¤§ çĻ¾ ç§ĳ ãģ® URL ãĤĴ å¤ī ãģĪãĤĭ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġm Ġ= Ġre N ic od ic . matcher ( href ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . find () Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Info . caption Ġ= čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp ann able String ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm . group Ex ( 1 ) !!. decode Percent () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}: nic od ic :" čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Span ( čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEmoji Image Span ( context , ĠR . drawable . nic od ic ), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlength Ġ- Ġ 9 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlength , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSp anned . SPAN _ EXCL USIVE _ EXCL USIVE čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn @ also čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġlink Info . caption Ġ= Ġshort en Url ( original Caption ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġinit 1 () Ġ{ čĊĠĠĠĠĠĠĠ Ġdefine Entity (" amp ", Ġ'& ') Ġ// Ġamp ers and čĊĠĠĠĠĠĠĠ Ġdefine Entity (" gt ", Ġ' >') Ġ// Ġgreater Ġthan čĊĠĠĠĠĠĠĠ Ġdefine Entity (" lt ", Ġ'< ') Ġ// Ġless Ġthan čĊĠĠĠĠĠĠĠ Ġdefine Entity (" quot ", Ġ'" ') Ġ// Ġdouble Ġquote čĊĠĠĠĠĠĠĠ Ġdefine Entity (" apos ", Ġ'\' ') Ġ// Ġsingle Ġquote čĊĠĠĠĠĠĠĠ Ġdefine Entity (" A El ig ", Ġchr ( 1 9 8 )) Ġ// Ġcapital ĠAE Ġd iph th ong Ġ( lig ature ) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" A acute ", Ġchr ( 1 9 3 )) Ġ// Ġcapital ĠA , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Ac irc ", Ġchr ( 1 9 4 )) Ġ// Ġcapital ĠA , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" A grave ", Ġchr ( 1 9 2 )) Ġ// Ġcapital ĠA , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" A ring ", Ġchr ( 1 9 7 )) Ġ// Ġcapital ĠA , Ġring čĊĠĠĠĠĠĠĠ Ġdefine Entity (" At ilde ", Ġchr ( 1 9 5 )) Ġ// Ġcapital ĠA , Ġtil de čĊĠĠĠĠĠĠĠ Ġdefine Entity (" A uml ", Ġchr ( 1 9 6 )) Ġ// Ġcapital ĠA , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" C ced il ", Ġchr ( 1 9 9 )) Ġ// Ġcapital ĠC , Ġc ed illa čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ETH ", Ġchr ( 2 0 8 )) Ġ// Ġcapital ĠE th , ĠI cel and ic čĊĠĠĠĠĠĠĠ Ġdefine Entity (" E acute ", Ġchr ( 2 0 1 )) Ġ// Ġcapital ĠE , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" E circ ", Ġchr ( 2 0 2 )) Ġ// Ġcapital ĠE , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" E grave ", Ġchr ( 2 0 0 )) Ġ// Ġcapital ĠE , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" E uml ", Ġchr ( 2 0 3 )) Ġ// Ġcapital ĠE , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" I acute ", Ġchr ( 2 0 5 )) Ġ// Ġcapital ĠI , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" I circ ", Ġchr ( 2 0 6 )) Ġ// Ġcapital ĠI , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" I grave ", Ġchr ( 2 0 4 )) Ġ// Ġcapital ĠI , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" I uml ", Ġchr ( 2 0 7 )) Ġ// Ġcapital ĠI , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" N tilde ", Ġchr ( 2 0 9 )) Ġ// Ġcapital ĠN , Ġtil de čĊĠĠĠĠĠĠĠ Ġdefine Entity (" O acute ", Ġchr ( 2 1 1 )) Ġ// Ġcapital ĠO , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" O circ ", Ġchr ( 2 1 2 )) Ġ// Ġcapital ĠO , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" O grave ", Ġchr ( 2 1 0 )) Ġ// Ġcapital ĠO , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" O slash ", Ġchr ( 2 1 6 )) Ġ// Ġcapital ĠO , Ġslash čĊĠĠĠĠĠĠĠ Ġdefine Entity (" O tilde ", Ġchr ( 2 1 3 )) Ġ// Ġcapital ĠO , Ġtil de čĊĠĠĠĠĠĠĠ Ġdefine Entity (" O uml ", Ġchr ( 2 1 4 )) Ġ// Ġcapital ĠO , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" TH OR N ", Ġchr ( 2 2 2 )) Ġ// Ġcapital ĠTH OR N , ĠI cel and ic čĊĠĠĠĠĠĠĠ Ġdefine Entity (" U acute ", Ġchr ( 2 1 8 )) Ġ// Ġcapital ĠU , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" U circ ", Ġchr ( 2 1 9 )) Ġ// Ġcapital ĠU , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" U grave ", Ġchr ( 2 1 7 )) Ġ// Ġcapital ĠU , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" U uml ", Ġchr ( 2 2 0 )) Ġ// Ġcapital ĠU , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Y acute ", Ġchr ( 2 2 1 )) Ġ// Ġcapital ĠY , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" aacute ", Ġchr ( 2 2 5 )) Ġ// Ġsmall Ġa , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ac irc ", Ġchr ( 2 2 6 )) Ġ// Ġsmall Ġa , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ael ig ", Ġchr ( 2 3 0 )) Ġ// Ġsmall Ġae Ġd iph th ong Ġ( lig ature ) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" agrave ", Ġchr ( 2 2 4 )) Ġ// Ġsmall Ġa , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" aring ", Ġchr ( 2 2 9 )) Ġ// Ġsmall Ġa , Ġring čĊĠĠĠĠĠĠĠ Ġdefine Entity (" at ilde ", Ġchr ( 2 2 7 )) Ġ// Ġsmall Ġa , Ġtil de čĊĠĠĠĠĠĠĠ Ġdefine Entity (" a uml ", Ġchr ( 2 2 8 )) Ġ// Ġsmall Ġa , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" cc ed il ", Ġchr ( 2 3 1 )) Ġ// Ġsmall Ġc , Ġc ed illa čĊĠĠĠĠĠĠĠ Ġdefine Entity (" eacute ", Ġchr ( 2 3 3 )) Ġ// Ġsmall Ġe , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ec irc ", Ġchr ( 2 3 4 )) Ġ// Ġsmall Ġe , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" e grave ", Ġchr ( 2 3 2 )) Ġ// Ġsmall Ġe , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" eth ", Ġchr ( 2 4 0 )) Ġ// Ġsmall Ġeth , ĠI cel and ic čĊĠĠĠĠĠĠĠ Ġdefine Entity (" e uml ", Ġchr ( 2 3 5 )) Ġ// Ġsmall Ġe , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" i acute ", Ġchr ( 2 3 7 )) Ġ// Ġsmall Ġi , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ic irc ", Ġchr ( 2 3 8 )) Ġ// Ġsmall Ġi , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" igr ave ", Ġchr ( 2 3 6 )) Ġ// Ġsmall Ġi , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ium l ", Ġchr ( 2 3 9 )) Ġ// Ġsmall Ġi , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" nt ilde ", Ġchr ( 2 4 1 )) Ġ// Ġsmall Ġn , Ġtil de čĊĠĠĠĠĠĠĠ Ġdefine Entity (" o acute ", Ġchr ( 2 4 3 )) Ġ// Ġsmall Ġo , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" oc irc ", Ġchr ( 2 4 4 )) Ġ// Ġsmall Ġo , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" o grave ", Ġchr ( 2 4 2 )) Ġ// Ġsmall Ġo , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" os l ash ", Ġchr ( 2 4 8 )) Ġ// Ġsmall Ġo , Ġslash čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ot ilde ", Ġchr ( 2 4 5 )) Ġ// Ġsmall Ġo , Ġtil de čĊĠĠĠĠĠĠĠ Ġdefine Entity (" o uml ", Ġchr ( 2 4 6 )) Ġ// Ġsmall Ġo , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sz lig ", Ġchr ( 2 2 3 )) Ġ// Ġsmall Ġsh arp Ġs , ĠGerman Ġ( sz Ġlig ature ) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" th orn ", Ġchr ( 2 5 4 )) Ġ// Ġsmall Ġth orn , ĠI cel and ic čĊĠĠĠĠĠĠĠ Ġdefine Entity (" u acute ", Ġchr ( 2 5 0 )) Ġ// Ġsmall Ġu , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" uc irc ", Ġchr ( 2 5 1 )) Ġ// Ġsmall Ġu , Ġcircum flex Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" u grave ", Ġchr ( 2 4 9 )) Ġ// Ġsmall Ġu , Ġgr ave Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" u uml ", Ġchr ( 2 5 2 )) Ġ// Ġsmall Ġu , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" y acute ", Ġchr ( 2 5 3 )) Ġ// Ġsmall Ġy , Ġac ute Ġaccent čĊĠĠĠĠĠĠĠ Ġdefine Entity (" y uml ", Ġchr ( 2 5 5 )) Ġ// Ġsmall Ġy , Ġdi er esis Ġor Ġum la ut Ġmark čĊĠĠĠĠĠĠĠ Ġdefine Entity (" copy ", Ġchr ( 1 6 9 )) Ġ// Ġcopyright Ġsign čĊĠĠĠĠĠĠĠ Ġdefine Entity (" reg ", Ġchr ( 1 7 4 )) Ġ// Ġregistered Ġsign čĊĠĠĠĠĠĠĠ Ġdefine Entity (" nbsp ", Ġchr ( 1 6 0 )) Ġ// Ġnon Ġbreaking Ġspace čĊĠĠĠĠĠĠĠ Ġdefine Entity (" i ex cl ", Ġchr ( 1 6 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" cent ", Ġchr ( 1 6 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" pound ", Ġchr ( 1 6 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" c urren ", Ġchr ( 1 6 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" yen ", Ġchr ( 1 6 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" br v bar ", Ġchr ( 1 6 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sect ", Ġchr ( 1 6 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" uml ", Ġchr ( 1 6 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ord f ", Ġchr ( 1 7 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" la quo ", Ġchr ( 1 7 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" not ", Ġchr ( 1 7 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sh y ", Ġchr ( 1 7 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" mac r ", Ġchr ( 1 7 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" deg ", Ġchr ( 1 7 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" plus mn ", Ġchr ( 1 7 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sup 1 ", Ġchr ( 1 8 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sup 2 ", Ġchr ( 1 7 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sup 3 ", Ġchr ( 1 7 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" acute ", Ġchr ( 1 8 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" micro ", Ġchr ( 1 8 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" para ", Ġchr ( 1 8 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" midd ot ", Ġchr ( 1 8 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ced il ", Ġchr ( 1 8 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ord m ", Ġchr ( 1 8 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" raquo ", Ġchr ( 1 8 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" frac 1 4 ", Ġchr ( 1 8 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" frac 1 2 ", Ġchr ( 1 8 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" frac 3 4 ", Ġchr ( 1 9 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" i quest ", Ġchr ( 1 9 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" times ", Ġchr ( 2 1 5 )) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġinit 2 () Ġ{ čĊĠĠĠĠĠĠĠ Ġdefine Entity (" divide ", Ġchr ( 2 4 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" O El ig ", Ġchr ( 3 3 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" o el ig ", Ġchr ( 3 3 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Sc aron ", Ġchr ( 3 5 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sc aron ", Ġchr ( 3 5 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Y uml ", Ġchr ( 3 7 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" fn of ", Ġchr ( 4 0 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" circ ", Ġchr ( 7 1 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" tilde ", Ġchr ( 7 3 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Alpha ", Ġchr ( 9 1 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Beta ", Ġchr ( 9 1 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Gamma ", Ġchr ( 9 1 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Delta ", Ġchr ( 9 1 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Epsilon ", Ġchr ( 9 1 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Z eta ", Ġchr ( 9 1 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Eta ", Ġchr ( 9 1 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Theta ", Ġchr ( 9 2 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" I ota ", Ġchr ( 9 2 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" K appa ", Ġchr ( 9 2 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Lambda ", Ġchr ( 9 2 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Mu ", Ġchr ( 9 2 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Nu ", Ġchr ( 9 2 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Xi ", Ġchr ( 9 2 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" O mic ron ", Ġchr ( 9 2 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Pi ", Ġchr ( 9 2 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" R ho ", Ġchr ( 9 2 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Sigma ", Ġchr ( 9 3 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" T au ", Ġchr ( 9 3 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" U psilon ", Ġchr ( 9 3 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Phi ", Ġchr ( 9 3 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Chi ", Ġchr ( 9 3 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Psi ", Ġchr ( 9 3 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Omega ", Ġchr ( 9 3 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" alpha ", Ġchr ( 9 4 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" beta ", Ġchr ( 9 4 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" gamma ", Ġchr ( 9 4 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" delta ", Ġchr ( 9 4 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" epsilon ", Ġchr ( 9 4 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" z eta ", Ġchr ( 9 5 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" eta ", Ġchr ( 9 5 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" theta ", Ġchr ( 9 5 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" i ota ", Ġchr ( 9 5 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" kappa ", Ġchr ( 9 5 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" lambda ", Ġchr ( 9 5 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" mu ", Ġchr ( 9 5 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" nu ", Ġchr ( 9 5 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" xi ", Ġchr ( 9 5 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" omic ron ", Ġchr ( 9 5 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" pi ", Ġchr ( 9 6 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" rho ", Ġchr ( 9 6 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sigma f ", Ġchr ( 9 6 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sigma ", Ġchr ( 9 6 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" tau ", Ġchr ( 9 6 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ups ilon ", Ġchr ( 9 6 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" phi ", Ġchr ( 9 6 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" chi ", Ġchr ( 9 6 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" psi ", Ġchr ( 9 6 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" omega ", Ġchr ( 9 6 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" the tas ym ", Ġchr ( 9 7 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" up si h ", Ġchr ( 9 7 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" piv ", Ġchr ( 9 8 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" en sp ", Ġchr ( 8 1 9 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" emsp ", Ġchr ( 8 1 9 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" thin sp ", Ġchr ( 8 2 0 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" z wn j ", Ġchr ( 8 2 0 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" z wj ", Ġchr ( 8 2 0 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" l rm ", Ġchr ( 8 2 0 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" rl m ", Ġchr ( 8 2 0 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ndash ", Ġchr ( 8 2 1 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" mdash ", Ġchr ( 8 2 1 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ls quo ", Ġchr ( 8 2 1 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" rsquo ", Ġchr ( 8 2 1 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sb quo ", Ġchr ( 8 2 1 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ldquo ", Ġchr ( 8 2 2 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" rdquo ", Ġchr ( 8 2 2 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" bd quo ", Ġchr ( 8 2 2 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" d agger ", Ġchr ( 8 2 2 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" D agger ", Ġchr ( 8 2 2 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" bull ", Ġchr ( 8 2 2 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" hel lip ", Ġchr ( 8 2 3 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" perm il ", Ġchr ( 8 2 4 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" prime ", Ġchr ( 8 2 4 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" Prime ", Ġchr ( 8 2 4 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" l sa quo ", Ġchr ( 8 2 4 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" rsa quo ", Ġchr ( 8 2 5 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" oline ", Ġchr ( 8 2 5 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" fr asl ", Ġchr ( 8 2 6 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" e uro ", Ġchr ( 8 3 6 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" image ", Ġchr ( 8 4 6 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" we ier p ", Ġchr ( 8 4 7 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" real ", Ġchr ( 8 4 7 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" trade ", Ġchr ( 8 4 8 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ale fs ym ", Ġchr ( 8 5 0 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" l arr ", Ġchr ( 8 5 9 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" u arr ", Ġchr ( 8 5 9 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" rarr ", Ġchr ( 8 5 9 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" d arr ", Ġchr ( 8 5 9 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" h arr ", Ġchr ( 8 5 9 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" cr arr ", Ġchr ( 8 6 2 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" l Arr ", Ġchr ( 8 6 5 6 )) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġinit 3 () Ġ{ čĊĠĠĠĠĠĠĠ Ġdefine Entity (" u Arr ", Ġchr ( 8 6 5 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" r Arr ", Ġchr ( 8 6 5 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" d Arr ", Ġchr ( 8 6 5 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" h Arr ", Ġchr ( 8 6 6 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" forall ", Ġchr ( 8 7 0 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" part ", Ġchr ( 8 7 0 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" exist ", Ġchr ( 8 7 0 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" empty ", Ġchr ( 8 7 0 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" nab la ", Ġchr ( 8 7 1 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" isin ", Ġchr ( 8 7 1 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" not in ", Ġchr ( 8 7 1 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ni ", Ġchr ( 8 7 1 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" prod ", Ġchr ( 8 7 1 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sum ", Ġchr ( 8 7 2 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" minus ", Ġchr ( 8 7 2 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" low ast ", Ġchr ( 8 7 2 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" rad ic ", Ġchr ( 8 7 3 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" prop ", Ġchr ( 8 7 3 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" in fin ", Ġchr ( 8 7 3 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ang ", Ġchr ( 8 7 3 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" and ", Ġchr ( 8 7 4 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" or ", Ġchr ( 8 7 4 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" cap ", Ġchr ( 8 7 4 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" cup ", Ġchr ( 8 7 4 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" int ", Ġchr ( 8 7 4 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" there 4 ", Ġchr ( 8 7 5 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sim ", Ġchr ( 8 7 6 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" con g ", Ġchr ( 8 7 7 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" asy mp ", Ġchr ( 8 7 7 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ne ", Ġchr ( 8 8 0 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" equiv ", Ġchr ( 8 8 0 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" le ", Ġchr ( 8 8 0 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ge ", Ġchr ( 8 8 0 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sub ", Ġchr ( 8 8 3 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sup ", Ġchr ( 8 8 3 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" n sub ", Ġchr ( 8 8 3 6 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sub e ", Ġchr ( 8 8 3 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" su pe ", Ġchr ( 8 8 3 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" op lus ", Ġchr ( 8 8 5 3 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" ot imes ", Ġchr ( 8 8 5 5 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" per p ", Ġchr ( 8 8 6 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sd ot ", Ġchr ( 8 9 0 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" l ceil ", Ġchr ( 8 9 6 8 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" r ceil ", Ġchr ( 8 9 6 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" lf loor ", Ġchr ( 8 9 7 0 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" rf loor ", Ġchr ( 8 9 7 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" lang ", Ġchr ( 9 0 0 1 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" r ang ", Ġchr ( 9 0 0 2 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" lo z ", Ġchr ( 9 6 7 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" sp ades ", Ġchr ( 9 8 2 4 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" club s ", Ġchr ( 9 8 2 7 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" heart s ", Ġchr ( 9 8 2 9 )) čĊĠĠĠĠĠĠĠ Ġdefine Entity (" di ams ", Ġchr ( 9 8 3 0 )) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġinit Ġ{ čĊĠĠĠĠĠĠĠ Ġinit 1 () čĊĠĠĠĠĠĠĠ Ġinit 2 () čĊĠĠĠĠĠĠĠ Ġinit 3 () čĊĠĠĠ Ġ} č Ċ } čĊ