package Ġorg . du ang s use . bin Ċ Ċ import Ġorg . du ang s use . bin . type . Buffer Ċ import Ġorg . du ang s use . bin . type . Cnt Ċ import Ġorg . du ang s use . bin . type . Idx Range Ċ import Ġorg . du ang s use . bin . type . Nat 8 Ċ import Ġjava . io . InputStream Ċ import Ġjava . io . OutputStream Ċ Ċ class ĠIn Stream Nat 8 Reader ( private Ġval Ġin _ stream : ĠInputStream , Ġprivate Ġval Ġmark _ size : ĠC nt Ġ= Ġ 0 ): ĠNat 8 Reader , ĠMark Reset , ĠClose able Ġ{ ĊĠ Ġoverride Ġfun Ġread (): ĠNat 8 Ġ= Ġin _ stream . read () ĊĠ Ġoverride Ġfun Ġread To ( buffer : ĠBuffer , Ġindices : ĠI dx Range ) Ġ{ ĊĠĠĠ Ġin _ stream . read ( buffer , Ġindices . first , Ġindices . size ) ĊĠ Ġ} ĊĠ Ġoverride Ġfun Ġmark () Ġ{ Ġin _ stream . mark ( mark _ size ) Ġ} ĊĠ Ġoverride Ġfun Ġreset () Ġ{ Ġin _ stream . reset () Ġ} ĊĠ Ġoverride Ġval Ġestimate : ĠC nt Ġget () Ġ= Ġin _ stream . available () ĊĠ Ġoverride Ġfun Ġskip ( n : ĠC nt ) Ġ{ Ġin _ stream . skip ( n . to Long ()) Ġ} ĊĠ Ġoverride Ġfun Ġclose () Ġ{ Ġin _ stream . close () Ġ} Ċ } Ċ class ĠOut Stream Nat 8 Writer ( private Ġval Ġout _ stream : ĠOutputStream ): ĠNat 8 Writer , ĠFlush able , ĠClose able Ġ{ ĊĠ Ġoverride Ġfun Ġwrite ( x : ĠNat 8 ) Ġ{ Ġout _ stream . write ( x ) Ġ} ĊĠ Ġoverride Ġfun Ġwrite From ( buffer : ĠBuffer , Ġindices : ĠI dx Range ) Ġ{ ĊĠĠĠ Ġout _ stream . write ( buffer , Ġindices . first , Ġindices . size ) ĊĠ Ġ} ĊĠ Ġoverride Ġfun Ġflush () Ġ{ Ġout _ stream . flush () Ġ} ĊĠ Ġoverride Ġfun Ġclose () Ġ{ Ġout _ stream . close () Ġ} Ċ } Ċ