
    )iN                     L	   S SK r S SKrS SKrSrSrSrSrSrSrSr	S	r
S
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSS SSSSSS S!S"S#S$.r\\\/r0 SS_SS%_S&S'_S(S)_S*S+_S,S-_S.S/_S0S1_S2S3_S4S5_S6S7_S8S9_S:S;_S<S=_S>S?_S@SA_SBSC_0 SDSE_SFSG_SHSI_SJSK_SLSM_SNSO_SPSQ_SRSS_STSU_SVSW_SXSY_SZS[_S\S]_S^S__S`Sa_SbSc_SdSe_E0 SfSg_ShSi_SjSk_SlSm_SnSo_SpSq_SrSs_StSu_SvSw_SxSy_SzS{_S|S}_S~S_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_E0 SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_SS_S
S_SS_SS_SS_SS_ESSSSSSSSSSSS.Er / / SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQP/ SQPr SSSSSSSSSSSSSSSS.r!SSS.r"S r#\#" 5       r$S r%\%" 5       r&0 r'\\\\/-   r(\)" S5       H  r*\+" \*\(;   5      \'\*'   M     S r, " S S\-5      r. " S S5      r/S r0Sr1\2S:X  a  S r* \+" \ Rf                  S   5      r*\*\)" SS5      ;  a  \4e \/" 5       r6\6Ro                  \*5        Sr8S r9 \9(       a  g\ Rt                  Rw                  \15      r<\<(       d  Sr9\8\<-   r<\6R{                  \<\95      r>\<\>S r8\6R                  5         MZ  g! \4\54 a    \0" \ Rf                  S    5         Nf = f)    N   ip	  O   id	     iQ	  iR	  ie	           iM	  i 	  i  i                 
   i  i	  i   i                           )@   B   C   D   E   F   G   H   I   J   K   i	     i	     i	     i	     i	     i	     i	     i		     i
	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i	     i 	     i!	     i"	     i#	     i$	     i%	     i&	     i'	     i(	     i)	     i*	     i+	     i,	     i-	     i.	     i/	     i_	     i0	     i1	     i2	     i3	     i4	     i5	     i6	     i7	     i8	     i9	     i>	     i?	     i@	     iA	     iB	     iC	     iF	     iG	     iH	     iE	     iJ	     iK	     iL	     iI	  i<	              if	     ig	     ih	     ii	  ij	  ik	  il	  im	  in	  io	  )                                 )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   )	r   r   r   r   r   r   r   r   r   i	  i=	  iD	  iP	  iX	  iY	  iZ	  i[	  i\	  i]	  i^	  i`	  ia	  ib	  ic	  )r'   r
   r_   r   r4   r5   r6   r;   r@   rA   rJ   r+   r(   r[   r\   i	  i	  ))r   rP   )r   rU   c                     [        [        SS5      5      [        [        SS5      5      -   n 0 n[        S5       Hk  n0 n[        S5       H  nXCU'   M	     [        SS5       H<  nX@;   a  M
  [        U   n[        US-     U   (       d  M)  XSU'   X4==   US-  -  ss'   M>     X1U'   Mm     [         H  n[        U   XS	      US
   '   M     U$ )Nrh   rk   ru      	   r	   ry   r   r   r   )listrangeiscii_to_unicodevalidation_tablespecial_maps)_invalid_rangescriptsicurr_scrchts         m/var/www/html/land-doc-ocr/venv/lib/python3.13/site-packages/indic_transliteration_unmaintained/iscii2utf8.pymake_script_mapsr   f  s    %d+,tE$4I/JJNG1X+BRL  h'B$ $AD)!,, T* ( 
) , *1o!ad  N    c                      0 n [        S5       H9  n0 n[        S5       H!  nU[        U   ;  =(       a	    U[        ;  X#'   M#     X U'   M;     U $ )Nr|   r{   )r~   script_mapsISCII_SPECIALS)mapsr   curr_mapjs       r   make_invalid_mapsr     sX    D1XxAKN2 4N2 K ! Q  Kr   r{   c                 V   / nU  GH  nUS:  a  UR                  U5        M  US:  a0  UR                  US-	  S-  5        UR                  US-  S-  5        MS  US:  aJ  UR                  US-	  S-  5        UR                  US-	  S-  S-  5        UR                  US-  S-  5        M  UR                  US	-	  S
-  5        UR                  US-	  S-  5        UR                  US-	  S-  S-  5        UR                  US-  S-  5        GM     SR                  [        [        U5      5      $ )z.
converts an array of integers to utf8 string
r   i   r   rA   ?   i      r`      r    )appendjoinmapchr)youtxs      r   to_utf8r     s   
 Cu9JJqMZJJQ$'JJDD()[JJR4'(JJa44/0JJDD()JJR4'(JJR4'(JJa44/0JJDD() " 773sC=!!r   c                        \ rS rSrS rS rSrg)IllegalInputi  c                     Xl         g N	exception)selfes     r   __init__IllegalInput.__init__  s    r   c                 ,    [        U R                  5      $ r   )reprr   r   s    r   __str__IllegalInput.__str__  s    DNN##r   r   N)__name__
__module____qualname____firstlineno__r   r   __static_attributes__ r   r   r   r     s    $r   r   c                   Z    \ rS rSrS rS rS rS rS rS r	S r
S	 rS
 rS rSS jrSrg)Parseri  c                     SU l         SU l        [        =U l        =U l        U l        / U l        SU l        S/S-  U l        g )Nr   r   )	delta	curr_maskNO_CHAR	prev_charsrc_char	dest_chardestposstatr   s    r   r   Parser.__init__  s@    
:AAA	C"H	r   c                 z    [        U R                  5      n[        R                  R	                  U5        / U l        g r   )r   r   sysstdoutwrite)r   r   s     r   write_outputParser.write_output  s)    dii 

	r   c                     U[        SS5      ;   a  US-
  nO[        S[        U5      -  5      eUS:  a  X l        U[        -  U l        g)z9
set the value of delta to reflect the current codepage

r   r   zInvalid Value for ATR %sr   N)r~   r   hexcurr_scriptDELTAr   )r   r   ns      r   
set_scriptParser.set_script  sK     aAA9SVDEEr6 UDJr   c                 4    [         US-     U R                     $ )Nry   )r   r   r   r   s     r   isvalidParser.isvalid  s    D)$*:*:;;r   c                 .    U[         U R                     ;  $ r   )invalid_charsr   )r   r   s     r   isvalid_isciiParser.isvalid_iscii  s    d&6&6777r   c                 2    [         R                  US 5      nU$ r   )nukta_specialsget)r   r   r   s      r   is_nukta_specialParser.is_nukta_special  s    q$'r   c                 l   U =R                   S-  sl         [        S5       H[  n[        U:  a
  [        U::  d    OFUS;  a    O>US:X  a  [        nOUS:X  a  [
        nO[        nU R                  U5      (       d  MY  Us  $    [        R                  " [        R                  S[        [        5      -  5        g )Nr   )r@   r6   r9   r@   r6   zInvalid input after EXT %s)r   r~   EXT_RANGE_ENDEXT_RANGE_BEGINDEV_ABBR_SIGNDEV_SVARITADEV_ANUDATTAr   logginginfor   stderrr   r   )r   	curr_charar   s       r   
handle_extParser.handle_ext  s    AqA"i/$	1 22D )	d"'	(	||I&&  # ( 	SZZ!=Q!HIr   c                 r   [         R                  " [        R                  S5        U[        R                  5       ;   a?  U R                  [        U   5        [         R                  " [        R                  SU5        O&[         R                  " [        R                  S5         U =R                  S-  sl        g )NzHandling ATR:zsetting script toignoredr   )r   r   r   r   ISCII_SCRIPTSkeysr   r   r   s     r   
handle_atrParser.handle_atr  sr    SZZ2""$$OOM!,-LL%8!< LLY/Ar   c                 V    U[         :X  a  SnO[        nU =R                  S-  sl        U$ )N    r   )ISCII_HALANTZWJr   )r   r   rets      r   
handle_invParser.handle_inv.  s&    CCA
r   c                     S nU[         :X  a  U R                  U5      nU$ U[        :X  a  U R                  U5      nU$ U[        :X  a  U R                  U5      nU$ r   )	ISCII_ATRr   	ISCII_EXTr   	ISCII_INVr   )r   r   r   r   s       r   post_analysisParser.post_analysis:  s`    	!//(+C 
 )#//(+C 
	 )#//(+C
r   c                 <   U R                   n[        R                  " SU5      R                  5       n[        =pE[	        U5      nSU l        U R                  n[        U5       GH+  nX   n[        n	Sn
[        U R                     U   (       aF  [        R                  " [        R                  S[        U5      5        U =R
                  S-  sl        Mq  U(       a  XS-
  :X  a  Un	OU[        :X  a  UnM  U[        ;   a  U R!                  XT5      nUb  Un	[        nO["        U   (       d  OU[        ;   a  Un	UnOU[$        :X  a,  U[$        :X  a"  [&        n	[        nU =R
                  S-  sl        OoU[(        :X  a  U[(        :X  a	  [*        n	Sn
ORU[,        :X  aH  U[(        :X  a	  [.        n	Sn
O5U R1                  U5      nU(       a  Un	[        nU =R
                  S-  sl        / nU
S:X  a  UR3                  U5        [        nU	[        :w  a  UR3                  U	5        OU[        :w  a  UR3                  U5        UnU HR  nUS::  a  [4        U R                     U   nOUnU =R
                  S-  sl        U R                   R3                  U5        MT     GM.     U R
                  $ )NBr   zignoring invalid iscii charr   ry   )r   arraytolistr   lenr   r   r~   r   r   r   r   r   r   r   r   r   iscii_modifyingISCII_DANDADOUBLE_DANDAr   ZWNJISCII_NUKTAr   r   r   r   )r   srcflushr   r   r   r   r   r   r   add_prevr   tmpto_addr   ms                   r   
iscii2utf8Parser.iscii2utf8K  s1   yykk#s#**, !('	HyyqAIIHT--.y9SZZ)F)n&A!A,%	w&%	n,((>? #I#	$Y/n,%	%	{*k1I(	#	A|+)|2K 	k), #I H //	:C$'	$+	AF1}i(#	G#i(g%i(%	$J#D$4$45b9AA A		  # K b xxr   )	r   r   r   r   r   r   r   r   r   N)r   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r   r   r   r   r   r     s:    
$<
8
8	"]r   r   c                     SU -  n[         R                  " [        R                  U5        [        R                  " S5        g )NaZ  
    Usage:

    %s script

    where script is a number between 1-9

    1 - devnag
    2 - bengali / assamese
    3 - punjabi
    4 - gujarati
    5 - oriya
    6 - tamil
    7 - telugu
    8 - kannada
    9 - malayalam

    the program reads from stdin and writes to stdout

    any msgs to the user (error msgs etc) are printed on stderr
    r   )r   r   r   r   exit)nameusages     r   
show_usager    s2    ( )E, LLe$HHQKr   i   __main__r   )@r   r   r   r   r   ATR_MASKDANDAr   r   r   r  r   r   r   HALANTINDIC_BLOCK_BEGININDIC_BLOCK_ENDINVALID_CHARISCII_BEGINr  r   r   r  LFr   	UNI_BEGINUNI_ENDr   r  r   r   r   r   r   r   r   r   r   r   r   _tmpr~   r   intr   	Exceptionr   r   r  
chunk_sizer   argv
ValueError
IndexErrormyparr   r   r  stdinreadr   r  r   r   r   r   r   <module>r'     s      #	""""""""	"""" """"""	""""	"""   Y	2a5a5a 	5a 	5	a
 	5a 	5a 	5a 	5a 	5a 	5a 	5a 	5a 	5a 	5a 	5a  	5!a" 	5#a$ 	5%a& 	5'a( 	5)a* 	5+a, 	5-a. 	5/a0 	51a2 	53a4 	55a6 	57a8 	59a: 	5;a< 	5=a> 	5?a@ 	5AaB 	5CaD 	5EaF 	5GaH 	5IaJ 	5KaL 	5MaN 	5OaP 	5QaR 	5SaT 	5UaV 	5WaX 	5YaZ 	5[a\ 	5]a^ 	5_a` 	5aab 	5cad 	5eaf 	5gah 	5iaj 	5kal 	5man 	5oap 	5qar 	5sat 	6uav 	5wax 	5yaz 	5{a| 	5}a~ 	5a@ 	5AaB 	5CaD 	5EaF 	5GaH 	5IaJ 	5KaL 	5MaN 	5OaP 	5QaR 	5SaT 	5UaV 	5WaX 	6YaZ 	6[a\ 	6]a^ 	6_a` 	6aab 	6cad 	5eaf 	5gah 	5iaj 	5kal Aa H2AAA  A  	A
  A  A  A  A  A  A  A  A  A  A  A   !A"  #A$  %A&  'A(  )A*  +A,  -A.  /A0  1A2  3A4  5A6  7A8  9A:  ;A<  =A>  ?A@  AAB  CAD  EAF  GAH  IAJ  KAL  MAN  OAP  QAR  SAT  UAV  WAX  YAZ  [A\  ]A^  _A`  aAb  cAd  eAf  gAh  iAj  kAl  mAn  oAp  qAr  sAt  uAv  wAx  yAz  {A|  }A~  A@  AAB  CAD  EAF  GAH  IAJ  KAL  MAN  OAP  QAR  SAT  UAV  WAX  YAZ  [A\  ]A^  _A`  aAb  cAd  eAf  gAh  iAj  kAl  mAn  oAp  qAr  sAt  uAv  wAx  yAz  {A|  }A~  A@  AAB  CAD  EAF  GAH  IAJ  KAL  MAN  OAP  QAR  SAT  UAV  WAX  YAZ  [A\  ]A^  _A`  aAb  cAd  eAf  gAh  iAj  kAl  mAn  oAp  qAr  sAt  uAv  wAx  yAz  {A|  }A~  A@  AA L , 	D   "# {K@@	xAQ$YOA 

"6$9 $^ ^B6 
z	A E!RL  ! HE	Q
AE
IINN:&EEQ&abE '  
#  388A; s   &$R R#"R#