Ë
    ìì�iÂ%  ã                   óÔ   — d Z ddlZddlmZ d„ ZdZd„ Zd„ Zd„ Z	d	„ Z
d
„ Zd„ Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zdd„Zdj)                  d„ dD «       «      Zd„ Zd„ Zd„ Zd„ Z G d„ d«      Zy)z
Miscellaneous Routines.
é    N)Úmaxsizec                 ó  — |dk7  rt        d|z  «      ‚||z  |z  dz  }d}d}d|z  }t        dt        |«      |dz   «      D ]É  }|||dz    }	|dz  }||||z    }
d}|	dk(  r||
z  }nž|	dk(  r!d}|
D ]  }||z   dz  }|t        |g«      z  }Œ nx|	d	k(  r,t	        ||
«      D ]  \  }}||z   dz  }|t        |g«      z  }Œ nG|	d
k(  r4d}t	        ||
«      D ]"  \  }}||z   |z   dz  dz  }|t        |g«      z  }Œ$ nt        d|	z  «      ‚||z  }|}ŒË |S )Né   z"Unsupported `bitspercomponent': %dr   ó    ó    é   ó   éÿ   ó   ó   é   zUnsupported predictor value: %d)Ú
ValueErrorÚrangeÚlenÚbytesÚzip)ÚpredÚcolorsÚcolumnsÚbitspercomponentÚdataÚnbytesÚiÚbufÚline0ÚftÚline1Úline2ÚcÚbÚas                  ús/var/www/ITT-ServiceAPI-Services/ITT-Document-Scan/mrzscanner/mrzenv/lib/python3.12/site-packages/pdfminer/utils.pyÚapply_png_predictorr#      s�  € Ø˜1ÒäÐ=Ð>NÑNÓOÐOØ�G‰^Ð,Ñ,¨aÑ/€FØ	€AØ
€CØ�gÑ€EÜ�1”c˜$“i ¨¡Ó*ò ˆØ�!�A�a‘Cˆ[ˆØ	ˆQ‰ˆØ�Q�q˜‘xÐ ˆØˆØ�Š=à�U‰N‰EØ�7Š]àˆAØò $�Ø�q‘S˜C‘K�Øœ ˜s›Ñ#‘ñ$ð �7Š]ä˜e UÓ+ò $‘��AØ�q‘S˜C‘K�Øœ ˜s›Ñ#‘ñ$ð �7Š]àˆAÜ˜e UÓ+ò $‘��AØ˜‘c˜!‘e˜a‘Z 3Ñ&�Øœ ˜s›Ñ#‘ñ$ô
 Ð>¸rÑAÓBÐBØˆu‰ˆØ‰ð;ð< €Jr   )r   r   r   r   r   r   c                 ó°   — | \  }}}}}}|\  }}	}
}}}	 ||z  |
|z  z   |	|z  ||z  z   ||z  |
|z  z   |	|z  ||z  z   ||z  |
|z  z   |z   |	|z  ||z  z   |z   fS ©N© )Úm1Úm0Úa1Úb1Úc1Úd1Úe1Úf1Úa0Úb0Úc0Úd0Úe0Úf0s                 r"   Úmult_matrixr5   9   s’   € Ø!Ñ€RˆˆR��R˜Ø!Ñ€RˆˆR��R˜Ø5Øˆr‰E�"�R‘%‰K˜B˜r™E " R¡%™KØˆr‰E�"�R‘%‰K˜B˜r™E " R¡%™KØˆr‰E�"�R‘%‰K˜‰N˜B˜r™E " R¡%™K¨™Nð,ð ,r   c                 ó^   — | \  }}}}}}|\  }}	||||||z  |	|z  z   |z   ||z  |	|z  z   |z   fS )zTranslates a matrix by (x, y).r&   ©
ÚmÚvr!   r    r   ÚdÚeÚfÚxÚys
             r"   Útranslate_matrixr?   B   sP   € àÑ€Qˆˆ1ˆa��AØ�F€QˆØˆq�!�Q˜˜!™˜A˜a™C™ ™	 1 Q¡3 q¨¡s¡7¨1¡9Ð-Ð-r   c                 óX   — | \  }}}}}}|\  }}		 ||z  ||	z  z   |z   ||z  ||	z  z   |z   fS r%   r&   r7   s
             r"   Úapply_matrix_ptrA   I   sK   € ØÑ€Qˆˆ1ˆa��AØ�F€QˆØ&Øˆa‰C��!‘‰G�A‰I�q˜‘s˜1˜Q™3‘w˜q‘yÐ!Ð!r   c                 óJ   — | \  }}}}}}|\  }}	||z  ||	z  z   ||z  ||	z  z   fS )zCEquivalent to apply_matrix_pt(M, (p,q)) - apply_matrix_pt(M, (0,0))r&   )
r8   r9   r!   r    r   r:   r;   r<   ÚpÚqs
             r"   Úapply_matrix_normrE   P   s@   € àÑ€Qˆˆ1ˆa��AØ�F€QˆØˆa‰C��!‘‰G�Q�q‘S˜˜1™‘WÐÐr   c                 ó.   — t        | t        t        f«      S r%   )Ú
isinstanceÚintÚfloat)r=   s    r"   ÚisnumberrJ   [   s   € Ü�aœ#œu˜Ó&Ð&r   c              #   ób   K  — t        «       }| D ]  }||v rŒ|j                  |«       |–— Œ y­w)zEliminates duplicated elements.N)ÚsetÚadd)ÚobjsÚdoneÚobjs      r"   ÚuniqrQ   _   s;   è ø€ ä‹5€DØò ˆØ�$‰;ØØ�‰�ŒØ‹	ð	ð
 ùs   ‚-/c                 ór   ‡‡— t        | «      D ��ci c]  \  }}||“Œ
 c}}Št        | ˆˆfd„¬«      S c c}}w )z"Order-preserving sorting function.c                 ó   •—  ‰| «      ‰|    fS r%   r&   )rP   ÚidxsÚkeys    €€r"   ú<lambda>zcsort.<locals>.<lambda>n   s   ø€ ©¨S«°4¸±9Ð(=€ r   )rU   )Ú	enumerateÚsorted)rN   rU   r   rP   rT   s    `  @r"   ÚcsortrY   k   s2   ù€ ä#,¨T£?×4‘x˜˜3ˆS�‰UÓ4€DÜ�$Ô=Ô>Ð>ùó 5s   ‘3c                 óv   — g }g }|D ]-  } | |«      r|j                  |«       Œ|j                  |«       Œ/ ||fS )z9Split a list into two classes according to the predicate.)Úappend)r   rN   Útr<   rP   s        r"   Úfsplitr]   r   sC   € à
€AØ
€AØò ˆÙ�Œ9Ø�H‰H�S�Mà�H‰H�S�Mð	ð
 ˆqˆ6€Mr   c                 ó^   — | |k  sJ ‚t        t        | «      |z  t        ||z   «      |z  «      S )zReturns a discrete range.)r   rH   )Úv0Úv1r:   s      r"   Údrangera      s.   € à�Š7€Nˆ7Ü”�R“˜!‘œS  A¡›Y¨™\Ó*Ð*r   c                 ó¼   — t         t         t          t          f\  }}}}| D ]5  \  }}t        ||«      }t        ||«      }t        ||«      }t        ||«      }Œ7 ||||fS )z7Compute a minimal rectangle that covers all the points.)ÚINFÚminÚmax)ÚptsÚx0Úy0Úx1Úy1r=   r>   s          r"   Ú	get_boundrk   †   sm   € äœS¤3 $¬¨Ð-Ñ€RˆˆR�Øò ‰ˆˆAÜ��Q‹ZˆÜ��Q‹ZˆÜ��Q‹ZˆÜ��Q‹Z‰ð	ð
 ��B˜ÐÐr   c                 ó@   — d}| D ]  } ||«      }|�||k  sŒ||}}Œ |S )z;Picks the object obj where func(obj) has the highest value.Nr&   )ÚseqÚfuncÚmaxobjÚmaxscorerP   Úscores         r"   Úpickrr   ’   s<   € à€HØò .ˆÙ�S“	ˆØÐ˜x¨%Ó/Ø"'¨�v‰Xð.ð €Mr   c              #   ó|   K  — g }|D ]1  }|j                  |«       t        |«      | k(  sŒ#t        |«      –— g }Œ3 y­w)z$Groups every n elements of the list.N)r[   r   Útuple)Únrm   Úrr=   s       r"   Úchoplistrw   �   sC   è ø€ à
€AØò ˆØ	�‰�ŒÜˆq‹6�Q‹;Ü˜“(ŠNØ‰Að	ð
 ùs   ‚'<ª<c                 ó
  — t        | «      }|s|S |dk(  r| d   S |dk(  rt        j                  d| «      d   S |dk(  rt        j                  dd| z   «      d   S |dk(  rt        j                  d| «      d   S t        d	|z  «      ‚)
z*Unpacks 1 to 4 byte integers (big endian).r   r   r   z>Hé   z>Lr   é   zinvalid length: %d)r   ÚstructÚunpackÚ	TypeError)ÚsÚdefaultÚls      r"   Únunpackr�   ©   s�   € äˆA‹€AÙØˆØ	
ˆaŠØ�‰tˆØ	
ˆaŠÜ�}‰}˜T 1Ó% aÑ(Ð(Ø	
ˆaŠÜ�}‰}˜T 7¨1¡9Ó-¨aÑ0Ð0Ø	
ˆaŠÜ�}‰}˜T 1Ó% aÑ(Ð(äÐ,¨qÑ0Ó1Ð1r   Ú c              #   ó2   K  — | ]  }t        |«      –— Œ y ­wr%   )Úchr)Ú.0r=   s     r"   ú	<genexpr>r†   »   s   è ø€ ò ! Aœ˜QŸñ !ùs   ‚(   r   r   r   ry   rz   é   é   é   r   é	   é
   é   é   é   é   é   é   é   é   é   é   é   é   r—   iØ  iÇ  iÆ  iÙ  iÝ  iÛ  iÚ  iÜ  é    é!   é"   é#   é$   é%   é&   é'   é(   é)   é*   é+   é,   é-   é.   é/   é0   é1   é2   é3   é4   é5   é6   é7   é8   é9   é:   é;   é<   é=   é>   é?   é@   éA   éB   éC   éD   éE   éF   éG   éH   éI   éJ   éK   éL   éM   éN   éO   éP   éQ   éR   éS   éT   éU   éV   éW   éX   éY   éZ   é[   é\   é]   é^   é_   é`   éa   éb   éc   éd   ée   éf   ég   éh   éi   éj   ék   él   ém   én   éo   ép   éq   ér   és   ét   éu   év   éw   éx   éy   éz   é{   é|   é}   é~   r   i"   i    i!   i&   i   i   i’  iD   i9   i:   i"  i0   i   i   i   i   i   i   i"!  iû  iû  iA  iR  i`  ix  i}  i1  iB  iS  ia  i~  r   i¬   é¡   é¢   é£   é¤   é¥   é¦   é§   é¨   é©   éª   é«   é¬   r   é®   é¯   é°   é±   é²   é³   é´   éµ   é¶   é·   é¸   é¹   éº   é»   é¼   é½   é¾   é¿   éÀ   éÁ   éÂ   éÃ   éÄ   éÅ   éÆ   éÇ   éÈ   éÉ   éÊ   éË   éÌ   éÍ   éÎ   éÏ   éÐ   éÑ   éÒ   éÓ   éÔ   éÕ   éÖ   é×   éØ   éÙ   éÚ   éÛ   éÜ   éÝ   éÞ   éß   éà   éá   éâ   éã   éä   éå   éæ   éç   éè   éé   éê   éë   éì   éí   éî   éï   éð   éñ   éò   éó   éô   éõ   éö   é÷   éø   éù   éú   éû   éü   éý   éþ   r
   c                 ó~   — | j                  d«      r| dd j                  dd«      S dj                  d„ | D «       «      S )z*Decodes a PDFDocEncoding bytes to Unicode.s   þÿr   Nzutf-16beÚignorer‚   c              3   ó.   K  — | ]  }t         |   –— Œ y ­wr%   )ÚPDFDocEncoding)r…   r   s     r"   r†   zdecode_text.<locals>.<genexpr>ä   s   è ø€ Ò4¨Q”~ aÕ(Ñ4ùs   ‚)Ú
startswithÚdecodeÚjoin©r~   s    r"   Údecode_textr\  ß   s:   € à‡|�|�KÔ Ø��ˆu�|‰|˜J¨Ó1Ð1à�w‰wÑ4°!Ô4Ó4Ð4r   c                 ó†   — | j                  dd«      j                  dd«      j                  dd«      j                  dd«      S )	zQuotes html string.ú&z&amp;ú<z&lt;ú>z&gt;ú"z&quot;)Úreplacer[  s    r"   rD   rD   æ   s9   € à�I‰I�c˜'Ó"ß‰W�S˜Ó ß‰W�S˜Ó ß‰W�S˜Ó"ð$r   c                 ó"   — | \  }}}}d||||fz  S )Nz%.3f,%.3f,%.3f,%.3fr&   )Úbboxrg   rh   ri   rj   s        r"   Úbbox2strre  í   s$   € ØÑ€RˆˆR�Ø  B¨¨B°Ð#3Ñ3Ð3r   c                 ó*   — | \  }}}}}}d||||||fz  S )Nz"[%.2f,%.2f,%.2f,%.2f, (%.2f,%.2f)]r&   )r8   r!   r    r   r:   r;   r<   s          r"   Ú
matrix2strrg  ò   s,   € ØÑ€Qˆˆ1ˆa��AØ/°1°a¸¸A¸qÀ!Ð2DÑDÐDr   c                   óJ   — e Zd Zdd„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z	d„ Z
d	„ Zd
„ Zy)ÚPlanec                 ó‚   — g | _         t        «       | _        i | _        || _        |\  | _        | _        | _        | _        y r%   )	Ú_seqrL   Ú_objsÚ_gridÚgridsizerg   rh   ri   rj   )Úselfrd  rn  s      r"   Ú__init__zPlane.__init__   s9   € ØˆŒ	Ü“UˆŒ
ØˆŒ
Ø ˆŒØ/3Ñ,ˆŒ�$”'˜4œ7 D¤GØr   c                 ó   — dt        | «      z  S )Nz<Plane objs=%r>)Úlist©ro  s    r"   Ú__repr__zPlane.__repr__  s   € Ø!¤D¨£JÑ.Ð/r   c                 ó.   ‡ — ˆ fd„‰ j                   D «       S )Nc              3   ó@   •K  — | ]  }|‰j                   v sŒ|–— Œ y ­wr%   ©rl  )r…   rP   ro  s     €r"   r†   z!Plane.__iter__.<locals>.<genexpr>  s   øè ø€ Ò@˜¨S°D·J±JÒ->”Ñ@ùs   ƒ—)rk  rs  s   `r"   Ú__iter__zPlane.__iter__  s   ø€ Û@ §	¡	Ô@Ð@r   c                 ó,   — t        | j                  «      S r%   )r   rl  rs  s    r"   Ú__len__zPlane.__len__  s   € Ü�4—:‘:‹Ðr   c                 ó   — || j                   v S r%   rw  )ro  rP   s     r"   Ú__contains__zPlane.__contains__  s   € Ø�d—j‘jÐ Ð r   c              #   óÀ  K  — |\  }}}}|| j                   k  s-| j                  |k  s|| j                  k  s| j                  |k  ry t	        | j                   |«      }t	        | j                  |«      }t        | j                  |«      }t        | j                  |«      }t        ||| j                  «      D ]$  }t        ||| j                  «      D ]  }||f–— Œ
 Œ& y ­wr%   )rg   ri   rh   rj   re   rd   ra   rn  )ro  rd  rg   rh   ri   rj   r>   r=   s           r"   Ú	_getrangezPlane._getrange  sÆ   è ø€ ØÑˆˆR��RØ�$—'‘'ŠM˜TŸW™W¨š]Ø�$—'‘'ŠM˜TŸW™W¨š]¨VÜ�—‘˜"ÓˆÜ�—‘˜"ÓˆÜ�—‘˜"ÓˆÜ�—‘˜"ÓˆÜ˜˜B §¡Ó.ò 	ˆAÜ˜B  D§M¡MÓ2ò �Ø˜!�f“ñð	ð 	ùs   ‚CCc                 ó4   — |D ]  }| j                  |«       Œ y r%   )rM   )ro  rN   rP   s      r"   ÚextendzPlane.extend"  s   € Øò 	ˆCØ�H‰H�S�Mð	àr   c                 ót  — | j                  |j                  |j                  |j                  |j                  f«      D ]B  }|| j
                  vrg }|| j
                  |<   n| j
                  |   }|j                  |«       ŒD | j                  j                  |«       | j                  j                  |«       y r%   )
r~  rg   rh   ri   rj   rm  r[   rk  rl  rM   )ro  rP   Úkrv   s       r"   rM   z	Plane.add(  s�   € Ø—‘ §¡¨¯©°·±¸¿¹Ð @ÓAò 	ˆAØ˜Ÿ
™
Ñ"Ø�Ø !�—
‘
˜1’à—J‘J˜q‘M�Ø�H‰H�S�Mð	ð 	�	‰	×Ñ˜ÔØ�
‰
�‰�sÔØr   c                 ó&  — | j                  |j                  |j                  |j                  |j                  f«      D ]!  }	 | j
                  |   j                  |«       Œ# | j                  j                  |«       y # t        t        f$ r Y ŒQw xY wr%   )
r~  rg   rh   ri   rj   rm  ÚremoveÚKeyErrorr   rl  )ro  rP   r‚  s      r"   r„  zPlane.remove5  s~   € Ø—‘ §¡¨¯©°·±¸¿¹Ð @ÓAò 	ˆAðØ—
‘
˜1‘×$Ñ$ SÕ)ð	ð
 	�
‰
×Ñ˜#ÔØøô œjÐ)ò Ùðús   ÁA>Á>BÂBc              #   óN  K  — |\  }}}}t        «       }| j                  |«      D ]|  }|| j                  vrŒ| j                  |   D ]Y  }||v rŒ|j                  |«       |j                  |k  s-||j
                  k  s|j                  |k  s||j                  k  rŒV|–— Œ[ Œ~ y ­wr%   )rL   r~  rm  rM   ri   rg   rj   rh   )	ro  rd  rg   rh   ri   rj   rO   r‚  rP   s	            r"   Úfindz
Plane.find?  s¥   è ø€ ØÑˆˆR��RÜ‹uˆØ—‘ Ó%ò 
	ˆAØ˜Ÿ
™
Ñ"ØØ—z‘z !‘}ò �Ø˜$‘;ØØ—‘˜”Ø—F‘F˜b’L B¨#¯&©&¢LØ—F‘F˜b’L B¨#¯&©&¢LØØ“	ñð
	ð 	ùs   ‚B#B%N)rª   )Ú__name__Ú
__module__Ú__qualname__rp  rt  rx  rz  r|  r~  r€  rM   r„  r‡  r&   r   r"   ri  ri  þ   s5   „ óò0òAòò!òòò
òór   ri  r%   )r   )Ú__doc__r{   Úsysr   rc   r#   ÚMATRIX_IDENTITYr5   r?   rA   rE   rJ   rQ   rY   r]   ra   rk   rr   rw   r�   rZ  rW  r\  rD   re  rg  ri  r&   r   r"   ú<module>rŽ     s¡   ðñó Ý ò
&ðV %€ò,ò.ò"òò'òò?ò	ò+òóòó2ð$ —‘ñ !ð !*ô !ó !€òH5ò$ò4ò
E÷Oò Or   