/* Ċ Ġ* ĠMIT ĠLicense Ċ Ġ* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 1 , ĠVal ap he e . Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ġall Ċ Ġ* Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN ĠTHE Ċ Ġ* ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . val ap he e . t esseract . util Ċ Ċ import Ġio . netty . buffer . Byte Buf Ċ import Ġjava . nio . charset . StandardCharsets Ċ Ċ /** Ċ Ġ* Ġ@ author ĠKevin ĠL ud w ig Ċ Ġ*/ Ċ class ĠL ittle Endian Var Int Byte Buf InputStream Ġ: ĠL ittle Endian Byte Buf InputStream Ġ{ ĊĠĠĠ Ġconstructor ( buffer : ĠByte Buf ) Ġ: Ġsuper ( buffer ) ĊĊĠĠĠ Ġconstructor ( buffer : ĠByte Buf , Ġlength : ĠInt ) Ġ: Ġsuper ( buffer , Ġlength ) ĊĊĠĠĠ Ġconstructor ( buffer : ĠByte Buf , Ġrelease On Close : ĠBoolean ) Ġ: Ġsuper ( buffer , Ġrelease On Close ) ĊĊĠĠĠ Ġconstructor ( buffer : ĠByte Buf , Ġlength : ĠInt , Ġrelease On Close : ĠBoolean ) Ġ: Ġsuper ( buffer , Ġlength , Ġrelease On Close ) ĊĊĠĠĠ Ġoverride Ġfun Ġread Int (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġread Var UInt () ĊĠĠĠĠĠĠĠ Ġreturn Ġ( value Ġ ush r Ġ 1 ) Ġxor Ġ-( value Ġand Ġ 1 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread Long (): ĠLong Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue : ĠLong Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġshift Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( shift Ġ<= Ġ 7 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhead Ġ= Ġread Byte (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue Ġor Ġ(( head Ġand Ġ 0 x 7 F ). to Long () Ġshl Ġshift ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( head Ġand Ġ 0 x 8 0 Ġ== Ġ 0 ) Ġreturn Ġ( value Ġ ush r Ġ 1 ) Ġxor Ġ-( value Ġand Ġ 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshift Ġ+= Ġ 7 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception (" Var Long Ġw ider Ġthan Ġ 7 0 - bit ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġread UTF (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlength Ġ= Ġread Var UInt () ĊĠĠĠĠĠĠĠ Ġcheck ( Short . MAX _ VALUE Ġ>= Ġlength ) Ġ{ Ġ" Maximum Ġlength Ġof Ġ${ Short . MAX _ VALUE } Ġexceeded " Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġbytes Ġ= ĠByteArray ( length ) ĊĠĠĠĠĠĠĠ Ġread Fully ( bytes ) ĊĠĠĠĠĠĠĠ Ġreturn ĠString ( bytes , ĠStandard Charsets . UTF _ 8 ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġread Var UInt (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġshift Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( shift Ġ<= Ġ 3 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhead Ġ= Ġread Byte (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ= Ġvalue Ġor Ġ(( head Ġand Ġ 0 x 7 F ) Ġshl Ġshift ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( head Ġand Ġ 0 x 8 0 Ġ== Ġ 0 ) Ġreturn Ġvalue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshift Ġ+= Ġ 7 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġthrow ĠArithmetic Exception (" Var Int Ġw ider Ġthan Ġ 3 5 - bit ") ĊĠĠĠ Ġ} Ċ } Ċ