package Ġcom . half dead games . k terminal čĊč Ċ import Ġcom . badlogic . gdx . graphics . Color č Ċ import Ġcom . half dead games . k terminal . K Terminal Shape Plot ter . plot Circle č Ċ import Ġcom . half dead games . k terminal . K Terminal Shape Plot ter . plot Ellipse č Ċ import Ġcom . half dead games . k terminal . K Terminal Shape Plot ter . plot Line č Ċ import Ġcom . half dead games . k terminal . K Terminal Shape Plot ter . plot Rect č Ċ import Ġcom . half dead games . k terminal . K Terminal Shape Plot ter . plot Triangle č Ċ import Ġjava . security . cert . Certificate Not Y et Valid Exception čĊč Ċ @ Suppress (" unused ", Ġ" Member Visibility Can Be Private ") č Ċ class ĠK Terminal Data ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdefault ForegroundColor : ĠFloat Ġ= ĠColor . WHITE . toFloat Bits (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġdefault BackgroundColor : ĠFloat Ġ= ĠColor . BLACK . toFloat Bits (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcustom Color Map : ĠMap < String , ĠColor >? Ġ= Ġnull č Ċ ) Ġ{ čĊĠĠĠ Ġvar Ġwidth : ĠInt Ġ= Ġwidth čĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( value Ġ> Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Width Ġcan 't Ġbe Ġ 0 Ġor Ġbelow .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġvar Ġheight : ĠInt Ġ= Ġheight čĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( value Ġ> Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġvalue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" Height Ġcan 't Ġbe Ġ 0 Ġor Ġbelow .") čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠ Ġvar Ġterminal Ġ= ĠArray ( width ) Ġ{ čĊĠĠĠĠĠĠĠ ĠArray ( height ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠK Terminal Glyph ( 0 , Ġdefault ForegroundColor , Ġdefault BackgroundColor ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// will Ġnot Ġpreserve Ġterminal Ġdata čĊĠĠĠ Ġfun Ġresize ( width : ĠInt , Ġheight : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠ Ġthis . width Ġ= Ġwidth čĊĠĠĠĠĠĠĠ Ġthis . height Ġ= Ġheight čĊčĊĠĠĠĠĠĠĠ Ġterminal Ġ= ĠArray ( width ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ ĠArray ( height ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠK Terminal Glyph ( 0 , Ġdefault ForegroundColor , Ġdefault BackgroundColor ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġinner Ġclass ĠCursor ( x : ĠInt , Ġy : ĠInt , Ġforeground Color : ĠFloat , ĠbackgroundColor : ĠFloat , Ġrotation : ĠFloat , Ġscale : ĠFloat , Ġoffset X : ĠFloat , Ġoffset Y : ĠFloat , Ġis F lipped X : ĠBoolean , Ġis F lipped Y : ĠBoolean ) Ġ{ čĊčĊĠĠĠĠĠĠĠ Ġconstructor () Ġ: Ġthis ( 0 , Ġ 0 , Ġdefault ForegroundColor , Ġdefault BackgroundColor , Ġ 0 f , Ġ 1 f , Ġ 0 f , Ġ 0 f , Ġis F lipped X Ġ= Ġfalse , Ġis F lipped Y Ġ= Ġfalse ) čĊčĊĠĠĠĠĠĠĠ Ġvar Ġforeground Color : ĠFloat čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ Ġcursor Glyph . foreground Color Ġ= Ġvalue Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcursor Glyph . foreground Color čĊĠĠĠĠĠĠĠ Ġvar ĠbackgroundColor : ĠFloat čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ Ġcursor Glyph . backgroundColor Ġ= Ġvalue Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcursor Glyph . backgroundColor čĊĠĠĠĠĠĠĠ Ġvar Ġrotation : ĠFloat čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ Ġcursor Glyph . rotation Ġ= Ġvalue Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcursor Glyph . rotation čĊĠĠĠĠĠĠĠ Ġvar Ġscale : ĠFloat čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ Ġcursor Glyph . scale Ġ= Ġvalue Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcursor Glyph . scale čĊĠĠĠĠĠĠĠ Ġvar Ġoffset X : ĠFloat čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ Ġcursor Glyph . offset X Ġ= Ġvalue Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcursor Glyph . offset X čĊĠĠĠĠĠĠĠ Ġvar Ġoffset Y : ĠFloat čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ Ġcursor Glyph . offset Y Ġ= Ġvalue Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcursor Glyph . offset Y čĊĠĠĠĠĠĠĠ Ġvar Ġis F lipped X : ĠBoolean čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ Ġcursor Glyph . is F lipped X Ġ= Ġvalue Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcursor Glyph . is F lipped X čĊĠĠĠĠĠĠĠ Ġvar Ġis F lipped Y : ĠBoolean čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ Ġcursor Glyph . is F lipped Y Ġ= Ġvalue Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ= Ġcursor Glyph . is F lipped Y čĊčĊĠĠĠĠĠĠĠ Ġprivate Ġvar Ġcursor Glyph Ġ= ĠK Terminal Glyph ( 0 , Ġforeground Color , ĠbackgroundColor , Ġrotation , Ġscale , Ġoffset X , Ġoffset Y , Ġis F lipped X , Ġis F lipped Y ) čĊčĊĠĠĠĠĠĠĠ Ġprivate Ġfun Ġclamp Cursor ( value : ĠInt , Ġmax : ĠInt ) Ġ: ĠInt Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemp Value Ġ= Ġvalue čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( temp Value Ġ< Ġ 0 Ġ|| Ġtemp Value Ġ>= Ġmax ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temp Value Ġ< Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Value Ġ+= Ġmax čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( temp Value Ġ>= Ġmax ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Value Ġ-= Ġmax čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtemp Value čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġvar Ġx : ĠInt Ġ= Ġx čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġclamp Cursor ( value , Ġwidth ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġvar Ġy : ĠInt Ġ= Ġy čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfield Ġ= Ġclamp Cursor ( value , Ġheight ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġset ( x : ĠInt , Ġy : ĠInt , Ġforeground Color : ĠFloat , ĠbackgroundColor : ĠFloat , Ġrotation : ĠFloat , Ġscale : ĠFloat , Ġoffset X : ĠFloat , Ġoffset Y : ĠFloat , Ġis F lipped X : ĠBoolean , Ġis F lipped Y : ĠBoolean ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġcursor Glyph . set ( 0 , Ġforeground Color , ĠbackgroundColor , Ġrotation , Ġscale , Ġoffset X , Ġoffset Y , Ġis F lipped X , Ġis F lipped Y ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġset ( x : ĠInt , Ġy : ĠInt ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . x Ġ= Ġx čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . y Ġ= Ġy čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġfun Ġset ( cursor : ĠCursor ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġset ( cursor . x , Ġcursor . y , Ġcursor . foreground Color , Ġcursor . backgroundColor , Ġcursor . rotation , Ġcursor . scale , Ġcursor . offset X , Ġcursor . offset Y , Ġcursor . is F lipped X , Ġcursor . is F lipped Y ) čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġval Ġcursor : ĠCursor Ġ= ĠCursor () čĊĠĠĠ Ġprivate Ġval Ġworking Cursor : ĠCursor Ġ= ĠCursor () čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġset Cursor ( x : ĠInt Ġ= Ġ 0 , Ġy : ĠInt Ġ= Ġ 0 , Ġforeground Color : ĠFloat Ġ= Ġdefault ForegroundColor , ĠbackgroundColor : ĠFloat Ġ= Ġdefault BackgroundColor , Ġrotation : ĠFloat Ġ= Ġ 0 f , Ġscale : ĠFloat Ġ= Ġ 1 f , Ġoffset X : ĠFloat Ġ= Ġ 0 f , Ġoffset Y : ĠFloat Ġ= Ġ 0 f , Ġis F lipped X : ĠBoolean Ġ= Ġfalse , Ġis F lipped Y : ĠBoolean Ġ= Ġfalse ) Ġ{ čĊĠĠĠĠĠĠĠ Ġcursor . set ( x , Ġy , Ġforeground Color , ĠbackgroundColor , Ġrotation , Ġscale , Ġoffset X , Ġoffset Y , Ġis F lipped X , Ġis F lipped Y ) čĊĠĠĠĠĠĠĠ Ġworking Cursor . set ( cursor ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġreset Cursor () Ġ{ čĊĠĠĠĠĠĠĠ Ġset Cursor ( 0 , Ġ 0 , Ġdefault ForegroundColor , Ġdefault BackgroundColor , Ġ 0 f , Ġ 1 f , Ġ 0 f , Ġ 0 f , Ġis F lipped X Ġ= Ġfalse , Ġis F lipped Y Ġ= Ġfalse ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Cursor Position ( x : ĠInt , Ġy : ĠInt ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġcursor . x Ġ= Ġx čĊĠĠĠĠĠĠĠ Ġcursor . y Ġ= Ġy čĊĠĠĠĠĠĠĠ Ġworking Cursor . set ( cursor ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Cursor Color ( foreground Color : ĠFloat , ĠbackgroundColor : ĠFloat ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġcursor . foreground Color Ġ= Ġforeground Color čĊĠĠĠĠĠĠĠ Ġcursor . backgroundColor Ġ= ĠbackgroundColor čĊčĊĠĠĠĠĠĠĠ Ġworking Cursor . foreground Color Ġ= Ġforeground Color čĊĠĠĠĠĠĠĠ Ġworking Cursor . backgroundColor Ġ= ĠbackgroundColor čĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Cursor Color ( foreground Color : ĠColor , ĠbackgroundColor : ĠColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġset Cursor Color ( foreground Color . toFloat Bits (), ĠbackgroundColor . toFloat Bits ()) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Cursor Scale ( scale : ĠFloat ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġcursor . scale Ġ= Ġscale čĊĠĠĠĠĠĠĠ Ġworking Cursor . scale Ġ= Ġscale čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Cursor Rotation ( rotation : ĠFloat ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġcursor . rotation Ġ= Ġrotation čĊĠĠĠĠĠĠĠ Ġworking Cursor . rotation Ġ= Ġrotation čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Cursor Offset ( x : ĠFloat , Ġy : ĠFloat ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġcursor . offset X Ġ= Ġx čĊĠĠĠĠĠĠĠ Ġcursor . offset Y Ġ= Ġy čĊĠĠĠĠĠĠĠ Ġworking Cursor . offset X Ġ= Ġx čĊĠĠĠĠĠĠĠ Ġworking Cursor . offset Y Ġ= Ġy čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Cursor Flip ( is F lipped X : ĠBoolean , Ġis F lipped Y : ĠBoolean ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġcursor . is F lipped X Ġ= Ġis F lipped X čĊĠĠĠĠĠĠĠ Ġcursor . is F lipped Y Ġ= Ġis F lipped Y čĊĠĠĠĠĠĠĠ Ġworking Cursor . is F lipped X Ġ= Ġis F lipped X čĊĠĠĠĠĠĠĠ Ġworking Cursor . is F lipped Y Ġ= Ġis F lipped Y čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// position Ġbrackets čĊĠĠĠ Ġoperator Ġfun Ġget ( x : ĠInt , Ġy : ĠInt ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġset Cursor Position ( x , Ġy ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// position Ġ+ Ġoffset Ġbrackets čĊĠĠĠ Ġoperator Ġfun Ġget ( x : ĠInt , Ġy : ĠInt , Ġoffset X : ĠFloat , Ġoffset Y : ĠFloat ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġset Cursor Position ( x , Ġy ). set Cursor Offset ( offset X , Ġoffset Y ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// color Ġbrackets , Ġcan 't Ġdo Ġfloats Ġbecause Ġrotation Ġand Ġscale Ġuse Ġfloats čĊĠĠĠ Ġoperator Ġfun Ġget ( foreground Color : ĠColor , ĠbackgroundColor : ĠColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġset Cursor Color ( foreground Color , ĠbackgroundColor ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// rotation Ġand Ġscale Ġbrackets čĊĠĠĠ Ġoperator Ġfun Ġget ( rotation : ĠFloat , Ġscale : ĠFloat ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġset Cursor Rotation ( rotation ). set Cursor Scale ( scale ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// flip Ġstatus Ġbrackets čĊĠĠĠ Ġoperator Ġfun Ġget ( is F lipped X : ĠBoolean , Ġis F lipped Y : ĠBoolean ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġset Cursor Flip ( is F lipped X , Ġis F lipped Y ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ// override Ġany Ġcursor Ġdata Ġgiven Ġby Ġthe Ġglyph čĊĠĠĠ Ġfun Ġwrite ( glyph : ĠK Terminal Glyph ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġworking Cursor . foreground Color Ġ= Ġglyph . foreground Color čĊĠĠĠĠĠĠĠ Ġworking Cursor . backgroundColor Ġ= Ġglyph . backgroundColor čĊĠĠĠĠĠĠĠ Ġworking Cursor . rotation Ġ= Ġglyph . rotation čĊĠĠĠĠĠĠĠ Ġworking Cursor . scale Ġ= Ġglyph . scale čĊĠĠĠĠĠĠĠ Ġworking Cursor . offset X Ġ= Ġglyph . offset X čĊĠĠĠĠĠĠĠ Ġworking Cursor . offset Y Ġ= Ġglyph . offset Y čĊĠĠĠĠĠĠĠ Ġworking Cursor . is F lipped X Ġ= Ġglyph . is F lipped X čĊĠĠĠĠĠĠĠ Ġworking Cursor . is F lipped Y Ġ= Ġglyph . is F lipped Y čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġwrite ( glyph . value ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġwrite ( value : ĠInt ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġterminal [ working Cursor . x ][ working Cursor . y ]. apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . value Ġ= Ġvalue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . foreground Color Ġ= Ġworking Cursor . foreground Color čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . backgroundColor Ġ= Ġworking Cursor . backgroundColor čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . rotation Ġ= Ġworking Cursor . rotation čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . scale Ġ= Ġworking Cursor . scale čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . offset X Ġ= Ġworking Cursor . offset X čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . offset Y Ġ= Ġworking Cursor . offset Y čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is F lipped X Ġ= Ġworking Cursor . is F lipped X čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is F lipped Y Ġ= Ġworking Cursor . is F lipped Y čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġworking Cursor . set ( cursor ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġwrite ( char : ĠChar ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġwrite ( char . toInt ()) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Suppress (" Local Variable Name ") čĊĠĠĠ Ġprivate Ġtail rec Ġfun Ġrecursive Tag Extractor ( input : ĠString , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Map : ĠMutable Map < Int , ĠString >, č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġposition : ĠInt Ġ= Ġ 0 , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġin Tag : ĠBoolean Ġ= Ġfalse , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput : ĠString Ġ= Ġ"", č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtag Position : ĠInt Ġ= Ġ- 1 , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Position : ĠInt Ġ= Ġ 0 ) Ġ: ĠString Ġ{ čĊĠĠĠĠĠĠĠ Ġval ĠSTART ING _ CHAR Ġ= Ġ'[' čĊĠĠĠĠĠĠĠ Ġval ĠEND ING _ CHAR Ġ= Ġ' ]' čĊĠĠĠĠĠĠĠ Ġval ĠESC APE _ CHAR Ġ= Ġ'\\ ' čĊčĊĠĠĠĠĠĠĠ Ġvar Ġtagging : ĠBoolean Ġ= Ġin Tag čĊĠĠĠĠĠĠĠ Ġvar Ġtag Pos Ġ= Ġtag Position čĊĠĠĠĠĠĠĠ Ġvar Ġoutput String Ġ= Ġoutput čĊĠĠĠĠĠĠĠ Ġvar Ġoffset Pos Ġ= Ġoffset Position čĊčĊĠĠĠĠĠĠĠ Ġfun Ġis Starting Char ( pos : ĠInt Ġ= Ġposition ) Ġ: ĠBoolean Ġ= Ġinput [ pos ] Ġ== ĠSTART ING _ CHAR čĊčĊĠĠĠĠĠĠĠ Ġfun Ġis Escape Char ( pos : ĠInt Ġ= Ġposition ) Ġ: ĠBoolean Ġ= Ġinput [ pos ] Ġ== ĠESC APE _ CHAR čĊčĊĠĠĠĠĠĠĠ Ġfun Ġis Ending Char ( pos : ĠInt Ġ= Ġposition ) Ġ: ĠBoolean Ġ= Ġinput [ pos ] Ġ== ĠEND ING _ CHAR čĊčĊĠĠĠĠĠĠĠ Ġfun Ġis Esc aped ( pos : Int Ġ= Ġposition ) Ġ: ĠBoolean Ġ= Ġ( pos Ġ== Ġ 0 Ġ&& Ġ( is Escape Char ( pos ))) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ|| Ġ( pos Ġ> Ġ 0 Ġ&& Ġis Escape Char ( pos ) Ġ&& Ġ! is Escape Char ( pos Ġ- Ġ 1 )) čĊčĊčĊĠĠĠĠĠĠĠ Ġif (! tag ging Ġ&& Ġ( is Starting Char () Ġ&& Ġ! is Esc aped ( 2 ))) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtagging Ġ= Ġtrue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag Pos Ġ= Ġoffset Pos čĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( tag ging Ġ&& Ġis Ending Char ( Ġposition Ġ- Ġ 1 ) Ġ&& Ġ! is Esc aped ( position Ġ- Ġ 1 )) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtagging Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag Pos Ġ= Ġ- 1 čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġinput Char String Ġ= Ġ"${ input [ position ]}" čĊčĊĠĠĠĠĠĠĠ Ġif (! is Esc aped ()) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( tag ging ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġtag Map [ tag Pos ] Ġ= Ġif ( tag Map [ tag Pos ]. isNull OrEmpty ()) Ġinput Char String Ġelse Ġ Ġtag Map [ tag Pos ] Ġ+ Ġinput Char String čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġ Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput String Ġ+= Ġif ( tag Map [- 1 ]. isNull OrEmpty ()) Ġinput Char String Ġelse Ġ Ġtag Map [- 1 ] Ġ+ Ġinput Char String čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoffset Pos ++ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġif ( position Ġ+ Ġ 1 Ġ>= Ġinput . length ) Ġoutput String čĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġrecursive Tag Extractor ( input , Ġtag Map , Ġposition Ġ+ Ġ 1 , Ġtagging , Ġoutput String , Ġtag Pos , Ġoffset Pos ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġwrite ( string : ĠString , Ġhas Markup : ĠBoolean Ġ= Ġfalse , Ġdirection : ĠInt Ġ= ĠWRITE _ LEFT _ TO _ RIGHT , Ġwrapping : ĠInt Ġ= ĠWR AP _ NONE ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġvar Ġpos X Ġ= Ġcursor . x čĊĠĠĠĠĠĠĠ Ġvar Ġpos Y Ġ= Ġcursor . y čĊĠĠĠĠĠĠĠ Ġvar Ġis Writing Ġ= Ġtrue čĊčĊĠĠĠĠĠĠĠ Ġfun Ġwrap ( writing Pos : ĠInt , Ġalign Pos : ĠInt , Ġmax : ĠInt ) Ġ: ĠPair < Int , ĠInt > Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemp Align Pos Ġ= Ġalign Pos čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġadjust Align Pos () Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( wrapping ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWR AP _ NONE Ġ-> Ġis Writing Ġ= Ġfalse čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWR AP _ POSITIVE _ SHIFT Ġ-> Ġtemp Align Pos ++ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWR AP _ NEGATIVE _ SHIFT Ġ-> Ġtemp Align Pos -- čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Writing Pos Ġ= Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriting Pos Ġ>= Ġmax Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadjust Align Pos () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriting Pos Ġ< Ġ 0 Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadjust Align Pos () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmax Ġ- Ġ 1 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġwriting Pos čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPair ( temp Writing Pos , Ġtemp Align Pos ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġtag Map Ġ= Ġmutable Map Of < Int , ĠString >() čĊĠĠĠĠĠĠĠ Ġval Ġworking String Ġ= Ġif ( has Markup ) Ġrecursive Tag Extractor ( string , Ġtag Map ) Ġelse Ġstring čĊĠĠĠĠĠĠĠ Ġvar Ġwriting Color Ġ= Ġworking Cursor . foreground Color čĊčĊĠĠĠĠĠĠĠ Ġworking String . toCharArray (). forEach Indexed Ġ{ Ġi , Ġit Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( is Writing ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . set ( pos X , Ġpos Y ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( has Markup Ġ&& Ġtag Map [ i ] Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtag String Ġ= Ġtag Map . getValue ( i ). remove Prefix (" [" ). remove Suffix (" ]") čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( custom Color Map Ġ!= Ġnull Ġ&& Ġcustom Color Map [ tag String ] Ġ!= Ġnull ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriting Color Ġ= Ġcustom Color Map . getValue ( tag String ). toFloat Bits () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( K Terminal Color . color Map [ tag String ] Ġ!= Ġnull ) Ġ Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwriting Color Ġ= ĠK Terminal Color . color Map . getValue ( tag String ). toFloat Bits () čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . foreground Color Ġ= Ġwriting Color čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite ( it ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( direction ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWRITE _ LEFT _ TO _ RIGHT Ġ-> Ġpos X ++ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWRITE _ TOP _ TO _ BOTTOM Ġ-> Ġpos Y ++ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWRITE _ RIGHT _ TO _ LEFT Ġ-> Ġpos X -- čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWRITE _ BOTTOM _ TO _ TOP Ġ-> Ġpos Y -- čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( direction ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWRITE _ LEFT _ TO _ RIGHT , ĠWRITE _ RIGHT _ TO _ LEFT Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( temp X , Ġtemp Y ) Ġ= Ġwrap ( pos X , Ġpos Y , Ġwidth ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos X Ġ= Ġtemp X čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos Y Ġ= Ġtemp Y čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWRITE _ TOP _ TO _ BOTTOM , ĠWRITE _ BOTTOM _ TO _ TOP Ġ-> Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ( temp Y , Ġtemp X ) Ġ= Ġwrap ( pos Y , Ġpos X , Ġheight ) čĊčĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos X Ġ= Ġtemp X čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpos Y Ġ= Ġtemp Y čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġwrite Sub Cell ( sub cell X : ĠInt , Ġsub cell Y : ĠInt , Ġcolor : ĠFloat Ġ= Ġdefault BackgroundColor , Ġvalue : ĠInt Ġ= Ġ- 1 ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġfun Ġclamp Coord ( value : ĠInt , Ġmax : ĠInt ) Ġ: ĠInt Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġtemp Value Ġ= Ġvalue čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( temp Value Ġ< Ġ 0 Ġ|| Ġtemp Value Ġ>= Ġmax ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( temp Value Ġ< Ġ 0 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Value Ġ+= Ġmax čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( temp Value Ġ>= Ġmax ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp Value Ġ-= Ġmax čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtemp Value čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġval Ġtemp X Ġ= Ġclamp Coord ( sub cell X , Ġwidth Ġ* Ġ 2 ) čĊĠĠĠĠĠĠĠ Ġval Ġtemp Y Ġ= Ġclamp Coord ( sub cell Y , Ġheight Ġ* Ġ 2 ) čĊčĊĠĠĠĠĠĠĠ Ġterminal [ temp X Ġ/ Ġ 2 ][ temp Y Ġ/ Ġ 2 ]. apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Sub Cell Enabled Ġ= Ġtrue čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Value Ġ= Ġwhen ( value ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ- 1 Ġ-> Ġwhen Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp X Ġ% Ġ 2 Ġ== Ġ 0 Ġ&& Ġtemp Y Ġ% Ġ 2 Ġ== Ġ 0 Ġ-> Ġ 2 5 7 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp X Ġ% Ġ 2 Ġ== Ġ 1 Ġ&& Ġtemp Y Ġ% Ġ 2 Ġ== Ġ 0 Ġ-> Ġ 2 5 8 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtemp X Ġ% Ġ 2 Ġ== Ġ 0 Ġ&& Ġtemp Y Ġ% Ġ 2 Ġ== Ġ 1 Ġ-> Ġ 2 6 0 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ 2 5 9 čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġvalue čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sub Cell Glyph . sub Cells [ temp X Ġ% Ġ 2 ][ temp Y Ġ% Ġ 2 ]. set ( color , Ġtemp Value ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġset Sub Cell ( top Left Color : ĠFloat Ġ= Ġdefault BackgroundColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right Color : ĠFloat Ġ= Ġdefault BackgroundColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left Color : ĠFloat Ġ= Ġdefault BackgroundColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right Color : ĠFloat Ġ= Ġdefault BackgroundColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Left Value : ĠInt Ġ= Ġ 2 5 7 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right Value : ĠInt Ġ= Ġ 2 5 8 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left Value : ĠInt Ġ= Ġ 2 6 0 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right Value : ĠInt Ġ= Ġ 2 5 9 ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġterminal [ working Cursor . x ][ working Cursor . y ]. apply Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Sub Cell Enabled Ġ= Ġtrue čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sub Cell Glyph . sub Cells [ 0 ][ 0 ]. set ( top Left Color , Ġtop Left Value ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sub Cell Glyph . sub Cells [ 1 ][ 0 ]. set ( top Right Color , Ġtop Right Value ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sub Cell Glyph . sub Cells [ 0 ][ 1 ]. set ( bottom Left Color , Ġbottom Left Value ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . sub Cell Glyph . sub Cells [ 1 ][ 1 ]. set ( bottom Right Color , Ġbottom Right Value ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Sub Cell ( top Left Color : ĠColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right Color : ĠColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left Color : ĠColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right Color : ĠColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Left Value : ĠInt Ġ= Ġ 2 5 7 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right Value : ĠInt Ġ= Ġ 2 5 8 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left Value : ĠInt Ġ= Ġ 2 6 0 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right Value : ĠInt Ġ= Ġ 2 5 9 ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġset Sub Cell ( top Left Color . toFloat Bits (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right Color . toFloat Bits (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left Color . toFloat Bits (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right Color . toFloat Bits (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Left Value , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right Value , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left Value , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right Value ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġset Sub Cell ( sub Cell Glyph : ĠSub Cell Glyph ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġterminal [ working Cursor . x ][ working Cursor . y ]. is Sub Cell Enabled Ġ= Ġtrue čĊĠĠĠĠĠĠĠ Ġterminal [ working Cursor . x ][ working Cursor . y ]. sub Cell Glyph Ġ= Ġsub Cell Glyph čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġclear Sub Cell () Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġterminal [ working Cursor . x ][ working Cursor . y ]. is Sub Cell Enabled Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġterminal [ working Cursor . x ][ working Cursor . y ]. sub Cell Glyph . reset () čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġclear ( width : ĠInt Ġ= Ġ 1 , Ġheight : ĠInt Ġ= Ġ 1 ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġworking Cursor . foreground Color Ġ= Ġdefault ForegroundColor čĊĠĠĠĠĠĠĠ Ġworking Cursor . backgroundColor Ġ= Ġdefault BackgroundColor čĊĠĠĠĠĠĠĠ Ġworking Cursor . rotation Ġ= Ġ 0 f čĊĠĠĠĠĠĠĠ Ġworking Cursor . scale Ġ= Ġ 1 f čĊĠĠĠĠĠĠĠ Ġworking Cursor . is F lipped X Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġworking Cursor . is F lipped Y Ġ= Ġfalse čĊĠĠĠĠĠĠĠ Ġworking Cursor . offset X Ġ= Ġ 0 f čĊĠĠĠĠĠĠĠ Ġworking Cursor . offset Y Ġ= Ġ 0 f čĊčĊĠĠĠĠĠĠĠ Ġval Ġstart X Ġ= Ġworking Cursor . x čĊĠĠĠĠĠĠĠ Ġval Ġstart Y Ġ= Ġworking Cursor . y čĊčĊĠĠĠĠĠĠĠ Ġdraw Rect ( width , Ġheight , Ġ 0 , Ġtrue ) čĊčĊĠĠĠĠĠĠĠ Ġfor ( x Ġin Ġstart X Ġuntil Ġstart X Ġ+ Ġwidth ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( y Ġin Ġstart Y Ġuntil Ġstart Y Ġ+ Ġheight ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . x Ġ= Ġx čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . y Ġ= Ġy čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclear Sub Cell () čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġclear All () Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġworking Cursor . set ( 0 , Ġ 0 , Ġdefault ForegroundColor , Ġdefault BackgroundColor , Ġ 0 f , Ġ 1 f , Ġ 0 f , Ġ 0 f , Ġis F lipped X Ġ= Ġfalse , Ġis F lipped Y Ġ= Ġfalse ) čĊĠĠĠĠĠĠĠ Ġreturn Ġclear ( width , Ġheight ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġfill Shape ( shape List : ĠList < Pair < Int , ĠInt >>, Ġvalue : ĠInt , Ġforeground Color : ĠFloat , ĠbackgroundColor : ĠFloat ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġshape List Sorted Ġ= Ġshape List . sorted With ( compare By < Pair < Int , ĠInt >> { it . second }. then By Ġ{ Ġit . first Ġ}) čĊčĊĠĠĠĠĠĠĠ Ġval Ġfirst Y Ġ= Ġshape List Sorted . first (). second čĊĠĠĠĠĠĠĠ Ġval Ġlast Y Ġ= Ġshape List Sorted . last (). second čĊčĊĠĠĠĠĠĠĠ Ġshape List Sorted . forEach Indexed Ġ{ Ġindex , Ġpair Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( index Ġ+ Ġ 1 Ġ< Ġshape List Sorted . size ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( pair . second Ġ!= Ġfirst Y Ġ&& Ġpair . second Ġ!= Ġlast Y ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( Ġpair . second Ġ== Ġshape List Sorted [ index Ġ+ Ġ 1 ]. second čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġpair . first Ġ<= Ġshape List Sorted [ index Ġ+ Ġ 1 ]. first Ġ- Ġ 2 ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġpair . first Ġ+ Ġ 1 Ġuntil Ġshape List Sorted [ index Ġ+ Ġ 1 ]. first ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . x Ġ= Ġi čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . y Ġ= Ġpair . second čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . foreground Color Ġ= Ġforeground Color čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . backgroundColor Ġ= ĠbackgroundColor čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwrite ( value ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġprivate Ġfun Ġdraw Shape ( shape List : ĠList < Pair < Int , ĠInt >>, Ġvalue : ĠInt ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġshape List . forEach Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . x Ġ= Ġit . first čĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . y Ġ= Ġit . second čĊĠĠĠĠĠĠĠĠĠĠĠ Ġwrite ( value ) čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdraw Rect ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchar : ĠChar Ġ= Ġ' Ġ', čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Char : ĠChar Ġ= Ġchar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat ) Ġ: K Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Rect ( width , Ġheight , Ġchar . toInt (), Ġis Filled , Ġfill Char . toInt (), Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Rect ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Value : ĠInt Ġ= Ġvalue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġplot List Ġ= Ġplot Rect ( cursor . x , Ġcursor . y , Ġwidth , Ġheight ) čĊčĊĠĠĠĠĠĠĠ Ġdraw Shape ( plot List , Ġvalue ) čĊĠĠĠĠĠĠĠ Ġif ( is Filled ) Ġfill Shape ( plot List , Ġfill Value , Ġfill Foreground , Ġfill Background ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdraw Line ( end X : ĠInt , Ġend Y : ĠInt , Ġchar : ĠChar ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Line ( end X , Ġend Y , Ġchar . toInt ()) čĊĠĠĠ Ġ} čĊĠĠĠ Ġfun Ġdraw Line ( end X : ĠInt , Ġend Y : ĠInt , Ġvalue : ĠInt ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġline Plot Ġ= Ġplot Line ( cursor . x , Ġcursor . y , Ġend X , Ġend Y ). toList () čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Shape ( line Plot , Ġvalue ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Ellipse ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchar : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Char : ĠChar Ġ= Ġ' Ġ', čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Ellipse ( width , Ġheight , Ġchar . toInt (), Ġis Filled , Ġfill Char . toInt (), Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Ellipse ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Value : ĠInt Ġ= Ġvalue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġel lipse Plot Ġ= Ġplot Ellipse ( cursor . x , Ġcursor . y , Ġcursor . x Ġ+ Ġwidth , Ġcursor . y Ġ+ Ġheight ) čĊčĊĠĠĠĠĠĠĠ Ġdraw Shape ( ellipse Plot , Ġvalue ) čĊĠĠĠĠĠĠĠ Ġif ( is Filled ) Ġfill Shape ( ellipse Plot , Ġfill Value , Ġfill Foreground , Ġfill Background ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Circle ( radius : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchar : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Char : ĠChar Ġ= Ġchar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Circle ( radius , Ġchar . toInt (), Ġis Filled , Ġfill Char . toInt (), Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Circle ( radius : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Value : ĠInt Ġ= Ġvalue , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġcircle Plot Ġ= Ġplot Circle ( cursor . x , Ġcursor . y , Ġradius ) čĊčĊĠĠĠĠĠĠĠ Ġdraw Shape ( circle Plot , Ġvalue ) čĊĠĠĠĠĠĠĠ Ġif ( is Filled ) Ġfill Shape ( circle Plot , Ġfill Value , Ġfill Foreground , Ġfill Background ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊĠĠĠĠčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Triangle ( left X : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Y : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright X : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Y : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchar : ĠChar , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Char : ĠChar Ġ= Ġchar , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Triangle ( left X , Ġleft Y , Ġright X , Ġright Y , Ġchar . toInt (), Ġis Filled , Ġfill Char . toInt (), Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Triangle ( left X : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġleft Y : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright X : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġright Y : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalue : ĠInt , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Value : ĠInt Ġ= Ġvalue , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , č ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġtriangle Plot Ġ= Ġplot Triangle ( cursor . x , Ġcursor . y , Ġleft X , Ġleft Y , Ġright X , Ġright Y ) čĊčĊĠĠĠĠĠĠĠ Ġdraw Shape ( triangle Plot , Ġvalue ) čĊĠĠĠĠĠĠĠ Ġif ( is Filled ) Ġfill Shape ( triangle Plot , Ġfill Value , Ġfill Foreground , Ġfill Background ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Box ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Left : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Char : ĠChar Ġ= Ġ' Ġ', čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Box ( width , Ġheight , Ġtop Left . toInt (), Ġtop Right . toInt (), Ġbottom Left . toInt (), Ġbottom Right . toInt (), čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal . toInt (), Ġvertical . toInt (), Ġis Filled , Ġfill Char . toInt (), Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Box ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Left : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Right : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Left : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbottom Right : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhorizontal : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvertical : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Value : ĠInt Ġ= Ġ 0 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġval Ġplot List Ġ= Ġplot Rect ( cursor . x , Ġcursor . y , Ġwidth , Ġheight ) čĊčĊĠĠĠĠĠĠĠ Ġplot List . forEach Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . x Ġ= Ġit . first čĊĠĠĠĠĠĠĠĠĠĠĠ Ġworking Cursor . y Ġ= Ġit . second čĊčĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . first ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . x Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . second ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . y Ġ-> Ġwrite ( top Left ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . y Ġ+ Ġheight Ġ- Ġ 1 Ġ-> Ġwrite ( bottom Left ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġwrite ( vertical ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . x Ġ+ Ġwidth Ġ- Ġ 1 Ġ-> čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( it . second ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . y Ġ-> Ġwrite ( top Right ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcursor . y Ġ+ Ġheight Ġ- Ġ 1 Ġ-> Ġwrite ( bottom Right ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġwrite ( vertical ) čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġwrite ( horizontal ) čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġif ( is Filled ) Ġfill Shape ( plot List , Ġfill Value , Ġfill Foreground , Ġfill Background ) čĊčĊĠĠĠĠĠĠĠ Ġreturn Ġthis čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Double Box ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Char : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Double Box ( width , Ġheight , Ġis Filled , Ġfill Char . toInt (), Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Double Box ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Value : ĠInt Ġ= Ġ 0 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Box ( width , Ġheight , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ DOUBLE _ DOWN _ RIGHT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ DOUBLE _ DOWN _ LEFT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ DOUBLE _ UP _ RIGHT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ DOUBLE _ UP _ LEFT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ DOUBLE _ HORIZONTAL , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ DOUBLE _ VERTICAL , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled , Ġfill Value , Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġfun Ġdraw Single Box ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Char : ĠChar , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠColor , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Single Box ( width , Ġheight , Ġis Filled , Ġfill Char , Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġ@ Jvm Over loads Ġfun Ġdraw Single Box ( width : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight : ĠInt , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled : ĠBoolean Ġ= Ġfalse , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Value : ĠInt Ġ= Ġ 0 , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Foreground : ĠFloat Ġ= Ġcursor . foreground Color , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfill Background : ĠFloat Ġ= Ġcursor . backgroundColor ) Ġ: ĠK Terminal Data Ġ{ čĊĠĠĠĠĠĠĠ Ġreturn Ġdraw Box ( width , Ġheight , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ SINGLE _ DOWN _ RIGHT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ SINGLE _ DOWN _ LEFT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ SINGLE _ UP _ RIGHT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ SINGLE _ UP _ LEFT , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ SINGLE _ HORIZONTAL , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBO X _ SINGLE _ VERTICAL , čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Filled , Ġfill Value , Ġfill Foreground , Ġfill Background ) čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġoverride Ġfun ĠtoString (): ĠString Ġ{ čĊĠĠĠĠĠĠĠ Ġvar Ġoutput Ġ= Ġ"[ width =$ width , height =$ height , default ForegroundColor =$ default ForegroundColor ," Ġ+ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" default BackgroundColor =$ default BackgroundColor , cursor ={ x =${ cursor . x }, y =${ cursor . y }," Ġ+ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" foreground =${ cursor . foreground Color }, background =${ cursor . backgroundColor }}, terminal ={ \ n " čĊčĊĠĠĠĠĠĠĠ Ġfor ( j Ġin Ġ 0 Ġuntil Ġheight ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor ( i Ġin Ġ 0 Ġuntil Ġwidth ) Ġ{ čĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ+= Ġ"${ terminal [ i ][ j ]. char }" čĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} čĊĠĠĠĠĠĠĠĠĠĠĠ Ġoutput Ġ+= Ġ"\ n " čĊĠĠĠĠĠĠĠ Ġ} čĊčĊĠĠĠĠĠĠĠ Ġoutput Ġ+= Ġ" }] " čĊĠĠĠĠĠĠĠ Ġreturn Ġoutput čĊĠĠĠ Ġ} čĊčĊĠĠĠ Ġcompanion Ġobject Ġ{ čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWRITE _ LEFT _ TO _ RIGHT Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWRITE _ TOP _ TO _ BOTTOM Ġ= Ġ 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWRITE _ RIGHT _ TO _ LEFT Ġ= Ġ 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWRITE _ BOTTOM _ TO _ TOP Ġ= Ġ 3 čĊčĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWR AP _ NONE Ġ= Ġ- 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWR AP _ NO _ SHIFT Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWR AP _ POSITIVE _ SHIFT Ġ= Ġ 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠWR AP _ NEGATIVE _ SHIFT Ġ= Ġ 2 čĊčĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNULL Ġ= Ġ 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSM ILE Ġ= Ġ 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN VERT ED _ SM ILE Ġ= Ġ 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHE ART Ġ= Ġ 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDI AM OND Ġ= Ġ 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠCL UB Ġ= Ġ 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSP ADE Ġ= Ġ 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB UL LET Ġ= Ġ 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN VERT ED _ B UL LET Ġ= Ġ 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC IR CLE Ġ= Ġ 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN VERT ED _ CIR CLE Ġ= Ġ 1 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠM ALE Ġ= Ġ 1 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠF EM ALE Ġ= Ġ 1 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPA IR _ E IGH TH _ NOTE Ġ= Ġ 1 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠE IGH TH _ NOTE Ġ= Ġ 1 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSOL AR Ġ= Ġ 1 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRIGHT _ TRI ANGLE Ġ= Ġ 1 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLEFT _ TRI ANGLE Ġ= Ġ 1 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUP _ DOWN _ ARROW Ġ= Ġ 1 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDOUBLE _ EXCL AM ATION Ġ= Ġ 1 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPAR AG R APH Ġ= Ġ 2 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSECTION Ġ= Ġ 2 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ BLACK _ RECT ANGLE Ġ= Ġ 2 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUP _ DOWN _ BAR _ ARROW Ġ= Ġ 2 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUP _ ARROW Ġ= Ġ 2 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDOWN _ ARROW Ġ= Ġ 2 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRIGHT _ ARROW Ġ= Ġ 2 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLEFT _ ARROW Ġ= Ġ 2 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRIGHT _ ANGLE Ġ= Ġ 2 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLEFT _ RIGHT _ ARROW Ġ= Ġ 2 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUP _ TRI ANGLE Ġ= Ġ 3 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDOWN _ TRI ANGLE Ġ= Ġ 3 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSPACE Ġ= Ġ 3 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHO USE Ġ= Ġ 1 2 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ CED IL LA _ C Ġ= Ġ 1 2 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ UML AUT _ U Ġ= Ġ 1 2 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAC UTE _ E Ġ= Ġ 1 3 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC IRC UM FLEX _ A Ġ= Ġ 1 3 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ UML AUT _ A Ġ= Ġ 1 3 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠGR AVE _ A Ġ= Ġ 1 3 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ RING _ A Ġ= Ġ 1 3 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ CED IL LA _ C Ġ= Ġ 1 3 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC IRC UM FLEX _ E Ġ= Ġ 1 3 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠU ML AUT _ E Ġ= Ġ 1 3 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠGR AVE _ E Ġ= Ġ 1 3 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠU ML AUT _ I Ġ= Ġ 1 3 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC IRC UM FLEX _ I Ġ= Ġ 1 4 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠGR AVE _ I Ġ= Ġ 1 4 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ UML AUT _ A Ġ= Ġ 1 4 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ RING _ A Ġ= Ġ 1 4 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ AC UTE _ E Ġ= Ġ 1 4 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ ASH Ġ= Ġ 1 4 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ ASH Ġ= Ġ 1 4 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC IRC UM FLEX _ O Ġ= Ġ 1 4 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ UML AUT _ O Ġ= Ġ 1 4 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠGR AVE _ O Ġ= Ġ 1 4 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC IRC UM FLEX _ U Ġ= Ġ 1 5 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠGR AVE _ U Ġ= Ġ 1 5 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠU ML AUT _ Y Ġ= Ġ 1 5 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ UML AUT _ O Ġ= Ġ 1 5 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ UML AUT _ U Ġ= Ġ 1 5 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠC ENT Ġ= Ġ 1 5 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPO UND Ġ= Ġ 1 5 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠY EN Ġ= Ġ 1 5 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPE SET A Ġ= Ġ 1 5 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHO OK _ F Ġ= Ġ 1 5 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAC UTE _ A Ġ= Ġ 1 6 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAC UTE _ I Ġ= Ġ 1 6 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAC UTE _ O Ġ= Ġ 1 6 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAC UTE _ U Ġ= Ġ 1 6 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ T IL DE _ N Ġ= Ġ 1 6 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ T IL DE _ N Ġ= Ġ 1 6 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOR D IN AL _ F EM IN INE Ġ= Ġ 1 6 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠOR D IN AL _ M ASC UL INE Ġ= Ġ 1 6 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN VERT ED _ QUEST ION Ġ= Ġ 1 6 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN VERT ED _ NOT Ġ= Ġ 1 6 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠNOT Ġ= Ġ 1 7 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠONE _ HALF Ġ= Ġ 1 7 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠONE _ FO UR TH Ġ= Ġ 1 7 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN VERT ED _ EXCL AM ATION Ġ= Ġ 1 7 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAN GLE _ LEFT Ġ= Ġ 1 7 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAN GLE _ RIGHT Ġ= Ġ 1 7 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSHA DE _ LIGHT Ġ= Ġ 1 7 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSHA DE _ MEDIUM Ġ= Ġ 1 7 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSHA DE _ DARK Ġ= Ġ 1 7 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ VERTICAL Ġ= Ġ 1 7 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ VERTICAL _ LEFT Ġ= Ġ 1 8 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ VERTICAL _ SINGLE _ LEFT _ DOUBLE Ġ= Ġ 1 8 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ VERTICAL _ DOUBLE _ LEFT _ SINGLE Ġ= Ġ 1 8 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOWN _ DOUBLE _ LEFT _ SINGLE Ġ= Ġ 1 8 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOWN _ SINGLE _ LEFT _ DOUBLE Ġ= Ġ 1 8 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ VERTICAL _ LEFT Ġ= Ġ 1 8 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ VERTICAL Ġ= Ġ 1 8 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ DOWN _ LEFT Ġ= Ġ 1 8 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ UP _ LEFT Ġ= Ġ 1 8 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ UP _ DOUBLE _ LEFT _ SINGLE Ġ= Ġ 1 8 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ UP _ SINGLE _ LEFT _ DOUBLE Ġ= Ġ 1 9 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ DOWN _ LEFT Ġ= Ġ 1 9 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ UP _ RIGHT Ġ= Ġ 1 9 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ HORIZONTAL _ UP Ġ= Ġ 1 9 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ HORIZONTAL _ DOWN Ġ= Ġ 1 9 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ VERTICAL _ RIGHT Ġ= Ġ 1 9 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ HORIZONTAL Ġ= Ġ 1 9 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ VERTICAL _ HORIZONTAL Ġ= Ġ 1 9 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ VERTICAL _ SINGLE _ RIGHT _ DOUBLE Ġ= Ġ 1 9 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ VERTICAL _ DOUBLE _ RIGHT _ SINGLE Ġ= Ġ 1 9 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ UP _ RIGHT Ġ= Ġ 2 0 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ DOWN _ RIGHT Ġ= Ġ 2 0 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ HORIZONTAL _ UP Ġ= Ġ 2 0 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠHO X _ DOUBLE _ HORIZONTAL _ DOWN Ġ= Ġ 2 0 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ VERTICAL _ RIGHT Ġ= Ġ 2 0 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ HORIZONTAL Ġ= Ġ 2 0 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOUBLE _ VERTICAL _ HORIZONTAL Ġ= Ġ 2 0 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ UP _ SINGLE _ HORIZONTAL _ DOUBLE Ġ= Ġ 2 0 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ UP _ DOUBLE _ HORIZONTAL _ SINGLE Ġ= Ġ 2 0 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOWN _ SINGLE _ HORIZONTAL _ DOUBLE Ġ= Ġ 2 0 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOWN _ DOUBLE _ HORIZONTAL _ SINGLE Ġ= Ġ 2 1 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ UP _ DOUBLE _ RIGHT _ SINGLE Ġ= Ġ 2 1 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ UP _ SINGLE _ RIGHT _ DOUBLE Ġ= Ġ 2 1 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOWN _ SINGLE _ RIGHT _ DOUBLE Ġ= Ġ 2 1 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ DOWN _ DOUBLE _ RIGHT _ SINGLE Ġ= Ġ 2 1 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ VERTICAL _ DOUBLE _ HORIZONTAL _ SINGLE Ġ= Ġ 2 1 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ VERTICAL _ SINGLE _ HORIZONTAL _ DOUBLE Ġ= Ġ 2 1 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ UP _ LEFT Ġ= Ġ 2 1 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBO X _ SINGLE _ DOWN _ RIGHT Ġ= Ġ 2 1 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBLOCK _ FULL Ġ= Ġ 2 1 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBLOCK _ LOWER _ HALF Ġ= Ġ 2 2 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBLOCK _ LEFT _ HALF Ġ= Ġ 2 2 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBLOCK _ RIGHT _ HALF Ġ= Ġ 2 2 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠBLOCK _ UPPER _ HALF Ġ= Ġ 2 2 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠAL PH A Ġ= Ġ 2 2 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSH ARP _ S Ġ= Ġ 2 2 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠG AM MA Ġ= Ġ 2 2 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPI Ġ= Ġ 2 2 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ SIG MA Ġ= Ġ 2 2 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ SIG MA Ġ= Ġ 2 2 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠM U Ġ= Ġ 2 3 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠT AU Ġ= Ġ 2 3 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠUPPER _ PH I Ġ= Ġ 2 3 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTH ETA Ġ= Ġ 2 3 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠO ME GA Ġ= Ġ 2 3 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDEL TA Ġ= Ġ 2 3 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN FIN ITY Ġ= Ġ 2 3 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠLOWER _ PH I Ġ= Ġ 2 3 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠEPS ILON Ġ= Ġ 2 3 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINTER SECTION Ġ= Ġ 2 3 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTR IP LE _ BAR Ġ= Ġ 2 4 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPL US _ MINUS Ġ= Ġ 2 4 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠG RE ATER _ EQUAL Ġ= Ġ 2 4 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠL ES SER _ EQUAL Ġ= Ġ 2 4 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN TEGR AL _ TOP Ġ= Ġ 2 4 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠIN TEGR AL _ BOTTOM Ġ= Ġ 2 4 5 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDIV ISION Ġ= Ġ 2 4 6 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠA PRO X IM ATE Ġ= Ġ 2 4 7 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDE G REE Ġ= Ġ 2 4 8 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSMALL _ B UL LET Ġ= Ġ 2 4 9 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠINTER PUN CT Ġ= Ġ 2 5 0 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠRAD ICAL Ġ= Ġ 2 5 1 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSUP ER SCRIPT Ġ= Ġ 2 5 2 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSUP ER SCRIPT _ S QUARE Ġ= Ġ 2 5 3 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠS QUARE Ġ= Ġ 2 5 4 čĊĠĠĠĠĠĠĠ Ġconst Ġval ĠN BSP Ġ= Ġ 2 5 5 čĊĠĠĠ Ġ} č Ċ } čĊ