Ë
    ¨ŒjâN  ã                   óŒ  — U d Z dZdZddlZddlZddlZddlZddlZddlm	Z	 ddl
m
Z
mZ ddlmZ ddlmZ dd	lmZ dd
lmZmZmZmZmZ ej.                  dd dk\  rddlmZ nddlmZ ej.                  dk\  rddlmZ nddlmZ ddlmZmZmZ eee e e f   ee e e f   ee e e f   f   Z!ee"d<   ee e e e e e f   Z#ee"d<   ee   Z$ee%e$f   Z&dee%   dee
   fd„Z'de
de%fd„Z(de%de%de%fd„Z)dZ*djW                  e*«      Z,de,z   dz   Z-dQd e$d!ee.   de/fd"„Z0d e$de/fd#„Z1d e$de2fd$„Z3d%e/de2fd&„Z4d e$ddfd'„Z5d e$d(ee/   de/fd)„Z6d e$d*e.de/fd+„Z7d e$de/fd,„Z8d-e!d.e!de!fd/„Z9d e$ddfd0„Z:ed.e%de.fd1„«       Z;ed.e/de/fd2„«       Z;ed.e.de.fd3„«       Z;d.ee.e%e/f   dee.e/f   fd4„Z;dRd5e%d6e.ddfd7„Z<d5e%ddfd8„Z=d9e%d:e%d;e%ddfd<„Z>d9e%d:e%d;e%ddfd=„Z?d>e%d;e%ddfd?„Z@d>e%d;e%ddfd@„ZAd5e%dAe%ddfdB„ZBd5e%dAe%ddfdC„ZC	 dSdDe%dEeDe%ef   dFeDe%e%f   dGe2ddf
dH„ZEdIe.de%fdJ„ZF G dK„ dL«      ZGe	 G dM„ dN«      «       ZHej’                   G dO„ dP«      «       ZJy)Tz"Utility functions for PDF library.zMathieu Fenniakzbiziqe@mathieu.fenniak.neté    N)Ú	dataclass)ÚdatetimeÚtimezone)ÚDEFAULT_BUFFER_SIZE)ÚSEEK_CUR)ÚPattern)ÚIOÚAnyÚOptionalÚUnionÚoverloadé   )é   é
   )Ú	TypeAlias)r   é   )ÚSelfé   )ÚSTREAM_TRUNCATED_PREMATURELYÚDeprecationErrorÚPdfStreamErrorÚTransformationMatrixTypeÚCompressedTransformationMatrixÚtextÚreturnc                 ó4  — | }| sy | d   j                  «       rd| z   } | j                  d«      r| dz  } | j                  dd«      j                  dd«      j                  dd	«      } t        | j	                  d«      | j	                  d
«      «      }|dkD  r|t        | «      dz
  k7  r| dz  } dD ]M  }	 t        j                  | |«      }| j                  d«      r |j                  t        j                  ¬«      }|c S  t        d|› �«      ‚# t        $ r Y Œiw xY w)Nr   zD:)ÚZÚzÚ0000r   Ú+r   Ú'Ú Ú-é   Ú00)zD:%YzD:%Y%mzD:%Y%m%dz
D:%Y%m%d%HzD:%Y%m%d%H%MúD:%Y%m%d%H%M%SzD:%Y%m%d%H%M%S%zz+0000)ÚtzinfozCan not convert date: )ÚisdigitÚendswithÚreplaceÚmaxÚfindÚlenr   Ústrptimer   ÚutcÚ
ValueError)r   ÚorgtextÚiÚfÚds        úV/var/www/html/Fitness-lenito-AI-main/venv/lib/python3.12/site-packages/pypdf/_utils.pyÚparse_iso8824_dater6   N   s  € Ø€GÙØØˆA�w‡�ÔØ�d‰{ˆØ‡}�}�ZÔ Ø�‰ˆØ�<‰<˜˜SÓ!×)Ñ)¨#¨sÓ3×;Ñ;¸CÀÓD€DÜˆD�I‰I�c‹N˜DŸI™I c›NÓ+€AØˆ1‚u�”c˜$“i !‘mÒ#Ø�‰ˆóˆð	Ü×!Ñ! $¨Ó*ˆAð �}‰}˜WÔ%Ø—I‘I¤X§\¡\�IÓ2�ØŠHð!ô" Ð-¨g¨YÐ7Ó
8Ð8øô ò 	Ùð	ús   Â1DÄ	DÄDÚdtc                 ó  — | j                  d«      }| j                  �b| j                  «       }|€J ‚t        |j	                  «       «      }t        t        |«      d«      \  }}|dz  }|dk\  rdnd}||› |d›d|d›d�z  }|S )	a  
    Convert a datetime object to PDF date string format.

    Converts datetime to the PDF date format D:YYYYMMDDHHmmSSOHH'mm
    as specified in the PDF Reference.

    Args:
        dt: A datetime object to convert.

    Returns:
        A date string in PDF format.
    r&   i  é<   r   r    r#   Ú02dr!   )Ústrftimer'   Ú	utcoffsetÚintÚtotal_secondsÚdivmodÚabs)r7   Údate_strÚoffsetr>   ÚhoursÚ	remainderÚminutesÚsigns           r5   Úformat_iso8824_daterG   n   s˜   € ð �{‰{Ð+Ó,€HØ	‡y�yÐØ—‘“ˆØÐ!Ð!Ð!Ü˜F×0Ñ0Ó2Ó3ˆÜ!¤# mÓ"4°dÓ;ÑˆˆyØ˜r‘/ˆØ# qÒ(‰s¨cˆØ�t�f˜U 3˜K q¨°¨°QÐ7Ñ7ˆØ€Oó    Úheader1Úheader2c                 óö   — d}g }| |v r |j                  |j                  | «      «       ||v r |j                  |j                  |«      «       t        |«      dk(  rt        d| ›d|›d�«      ‚|t	        |«         S )N)z%PDF-1.3z%PDF-1.4z%PDF-1.5z%PDF-1.6z%PDF-1.7z%PDF-2.0r   zNeither z nor z are proper headers)ÚappendÚindexr-   r0   r+   )rI   rJ   ÚversionsÚpdf_header_indicess       r5   Ú_get_max_pdf_version_headerrP   ‡   s‰   € ð€Hð ÐØ�(ÑØ×!Ñ! (§.¡.°Ó"9Ô:Ø�(ÑØ×!Ñ! (§.¡.°Ó"9Ô:Ü
ÐÓ !Ò#Ü˜8 G ;¨e°G°;Ð>QÐRÓSÐSØ”CÐ*Ó+Ñ,Ð,rH   )ó    ó   	ó   
ó   ó   ó    rH   ó   [ó   ]ÚstreamÚmaxcharsc                 ó‚   — d}	 | j                  d«      }|j                  «       s|s	 |S ||z  }t        |«      |k(  r	 |S Œ=)a<  
    Read non-whitespace characters and return them.

    Stops upon encountering whitespace or when maxchars is reached.

    Args:
        stream: The data stream from which was read.
        maxchars: The maximum number of bytes returned; by default unlimited.

    Returns:
        The data which was read.

    rH   r   )ÚreadÚisspacer-   )rY   rZ   ÚtxtÚtoks       r5   Úread_until_whitespacer`   Ÿ   sR   € ð €CØ
Ø�k‰k˜!‹nˆØ�;‰;Œ=¡Øð €Jð 	ˆs‰
ˆÜˆs‹8�xÒØØ€Jð rH   c                 ól   — | j                  d«      }|t        v r| j                  d«      }|t        v rŒ|S )z¿
    Find and read the next non-whitespace character (ignores whitespace).

    Args:
        stream: The data stream from which was read.

    Returns:
        The data which was read.

    r   ©r\   ÚWHITESPACES©rY   r_   s     r5   Úread_non_whitespacere   ¸   s5   € ð �+‰+�a‹.€CØ
”Ñ
Ø�k‰k˜!‹nˆð ”Ò
à€JrH   c                 ó€   — | j                  d«      }d}|t        v r|dz  }| j                  d«      }|t        v rŒ|dkD  S )a  
    Similar to read_non_whitespace, but return a boolean if at least one
    whitespace character was read.

    Args:
        stream: The data stream from which was read.

    Returns:
        True if one or more whitespace was skipped, otherwise return False.

    r   r   rb   )rY   r_   Úcnts      r5   Úskip_over_whitespacerh   É   sI   € ð �+‰+�a‹.€CØ
€CØ
”Ñ
Øˆq‰ˆØ�k‰k˜!‹nˆð ”Ò
ð �‰7€NrH   Úvaluec                 ó&   — t        d„ | D «       «      S )zÙ
    Check if the given value consists of whitespace characters only.

    Args:
        value: The bytes to check.

    Returns:
        True if the value only has whitespace characters, otherwise return False.

    c              3   ó,   K  — | ]  }|t         v –— Œ y ­w©N)ÚWHITESPACES_AS_BYTES)Ú.0Úbs     r5   Ú	<genexpr>z+check_if_whitespace_only.<locals>.<genexpr>è   s   è ø€ Ð8±%¨QˆqÔ(Ô(±%ùs   ‚)Úall)ri   s    r5   Úcheck_if_whitespace_onlyrr   Ý   s   € ô Ñ8±%Ó8Ó8Ð8rH   c                 ó¬   — | j                  d«      }| j                  dd«       |dk(  r,|dvr'| j                  d«      }|dk(  rt        d«      ‚|dvrŒ&y y y )Nr   éÿÿÿÿó   %)rS   rU   rH   zFile ended unexpectedly.)r\   Úseekr   rd   s     r5   Úskip_over_commentrw   ë   s[   € Ø
�+‰+�a‹.€CØ
‡K�K��AÔØ
ˆd‚{Ø˜Ñ'Ø—+‘+˜a“.ˆCØ�cŠzÜ$Ð%?Ó@Ð@ð ˜Ô'ð rH   Úregexc                 ó  — d}	 | j                  d«      }|s|S |j                  ||z   «      }|�Q| j                  |j                  «       t	        |«      t	        |«      z   z
  d«       ||z   d|j                  «        }	 |S ||z  }Œ‚)zê
    Read until the regular expression pattern matched (ignore the match).
    Treats EOF on the underlying stream as the end of the token to be matched.

    Args:
        regex: re.Pattern

    Returns:
        The read bytes.

    rH   é   Nr   )r\   Úsearchrv   Ústartr-   )rY   rx   Únamer_   Úms        r5   Úread_until_regexr   õ   sŒ   € ð €DØ
Ø�k‰k˜"‹oˆÙØˆKØ�L‰L˜ ™Ó$ˆØˆ=Ø�K‰K˜Ÿ™›	¤S¨£Y´°S³Ñ%9Ñ:¸AÔ>Ø˜3‘J  !§'¡'£)Ð,ˆDØà€Kð 	�‰ˆð rH   Úto_readc                 óÀ   — | j                  «       |k  rt        d«      ‚| j                  | t        «       | j	                  |«      }| j                  | t        «       |S )a  
    Given a stream at position X, read a block of size to_read ending at position X.

    This changes the stream's position to the beginning of where the block was
    read.

    Args:
        stream:
        to_read:

    Returns:
        The data which was read.

    z!Could not read malformed PDF file)Útellr   rv   r   r\   )rY   r€   r\   s      r5   Úread_block_backwardsrƒ     sQ   € ð ‡{�{ƒ}�wÒÜÐ@ÓAÐAà
‡K�K��œ(Ô#Ø�;‰;�wÓ€Dà
‡K�K��œ(Ô#Ø€KrH   c                 ó  — g }d}| j                  «       dk(  rt        t        «      ‚	 t        t        | j                  «       «      }|dk(  rnªt        | |«      }t        |«      dz
  }|s%|dk\  r||   dvr|dz  }|dk\  r||   dvrŒ|dk\  rd}|r6|j                  ||dz   d «       |dk\  r+||   dv r$|dz  }|dk\  r||   dv rŒn|j                  |«       |dk\  r| j                  |dz   t        «       nŒÎdj                  |ddd…   «      S )	a  
    Given a byte stream with current position X, return the previous line.

    All characters between the first CR/LF byte found before X
    (or, the start of the file, if no such byte is found) and position X
    After this call, the stream will be positioned one byte after the
    first non-CRLF character found beyond the first CR/LF byte before X,
    or, if no such byte is found, at the beginning of the stream.

    Args:
        stream: StreamType:

    Returns:
        The data which was read.

    Fr   Tr   s   
NrH   rt   )r‚   r   r   Úminr   rƒ   r-   rL   rv   r   Újoin)rY   Úline_contentÚ
found_crlfr€   ÚblockÚidxs         r5   Úread_previous_liner‹   (  s?  € ð" €LØ€JØ‡{�{ƒ}˜ÒÜÔ9Ó:Ð:Ø
ÜÔ)¨6¯;©;«=Ó9ˆØ�aŠ<Øô % V¨WÓ5ˆÜ�%‹j˜1‰nˆÙð ˜’(˜u S™z°Ñ8Ø�q‘�ð ˜’(˜u S™z°Ò8à�aŠxØ!�
Ùð
 ×Ñ  c¨A¡g iÐ 0Ô1à˜’(˜u S™z¨WÑ4Ø�q‘�ð ˜’(˜u S™z¨WÓ4ð
 ×Ñ Ô&Ø�!Š8ð �K‰K˜˜a™¤Ô*ØðA ðD �8‰8�L¡ 2 Ñ&Ó'Ð'rH   Úaro   c                 ó,   ‡— t        ˆfd„| D «       «      S )Nc              3   óT   •‡K  — | ]  Št        ˆfd „t        ‰Ž D «       «      –— Œ  y­w)c              3   óV   •K  — | ]   }t        d „ t        ‰|«      D «       «      –— Œ" y­w)c              3   óP   K  — | ]  \  }}t        |«      t        |«      z  –— Œ  y ­wrl   )Úfloat)rn   r2   Újs      r5   rp   z6matrix_multiply.<locals>.<genexpr>.<genexpr>.<genexpr>f  s"   è ø€ Ð@±-©$¨!¨Q”%˜“(œU 1›XÕ%±-ùs   ‚$&N)ÚsumÚzip)rn   ÚcolÚrows     €r5   rp   z,matrix_multiply.<locals>.<genexpr>.<genexpr>f  s#   øè ø€ ÐTÉGÀSŒcÑ@´#°c¸3´-Ó@×@ÉGùs   ƒ&)N)Útupler”   )rn   r–   ro   s    @€r5   rp   z"matrix_multiply.<locals>.<genexpr>e  s)   ùè ø€ ð áˆCô 	ÓTÌCÐQRÉGÓT×TÙùs   „$()r—   )rŒ   ro   s    `r5   Úmatrix_multiplyr˜   b  s   ø€ ô ó áóó ð rH   c                 ó8  — d}| j                  | d«       t        dd«      5 }|j                  | j                  |«      «       |j                  d«       |j                  | j                  |«      «       ddd«       | j                  | d«       y# 1 sw Y   ŒxY w)z5Create text file showing current location in context.iˆ  r   zpypdf_pdfLocation.txtÚwbs   HEREN)rv   ÚopenÚwriter\   )rY   ÚradiusÚ	output_fhs      r5   Úmark_locationrŸ   k  s|   € ð €FØ
‡K�K��˜ÔÜ	Ð% tÔ	,°	Ø�‰˜Ÿ™ FÓ+Ô,Ø�‰˜Ô Ø�‰˜Ÿ™ FÓ+Ô,÷ 
-ð ‡K�K��˜Õ÷	 
-Ð	,ús   ¢ABÂBc                  ó   — y rl   © ©ro   s    r5   Úord_r£   w  ó   € àrH   c                  ó   — y rl   r¡   r¢   s    r5   r£   r£   |  r¤   rH   c                  ó   — y rl   r¡   r¢   s    r5   r£   r£   �  r¤   rH   c                 ó<   — t        | t        «      rt        | «      S | S rl   )Ú
isinstanceÚstrÚordr¢   s    r5   r£   r£   †  s   € Ü�!”SÔÜ�1‹vˆØ€HrH   ÚmsgÚ
stacklevelc                 ó<   — t        j                  | t        |¬«       y )N)r¬   )ÚwarningsÚwarnÚDeprecationWarning)r«   r¬   s     r5   Ú	deprecater±   Œ  s   € Ü‡M�M�#Ô)°jÖArH   c                 ó   — t        | «      ‚rl   )r   )r«   s    r5   Údeprecationr³   �  s   € Ü
˜3Ó
ÐrH   Úold_nameÚnew_nameÚ
removed_inc                 ó.   — t        | › d|› d|› d�d«       y)zFIssue a warning that a feature will be removed, but has a replacement.ú, is deprecated and will be removed in pypdf ú. Use ú	 instead.é   N©r±   ©r´   rµ   r¶   s      r5   Údeprecate_with_replacementr¾   ”  s'   € äØˆ*Ð@ÀÀÈFÐS[ÐR\Ð\eÐfØ	õrH   c                 ó,   — t        | › d|› d|› d�«       y)zMRaise an exception that a feature was already removed, but has a replacement.ú( is deprecated and was removed in pypdf r¹   rº   N©r³   r½   s      r5   Údeprecation_with_replacementrÂ   œ  s"   € äØˆ*Ð<¸Z¸LÈÈxÈjÐXaÐbõrH   r}   c                 ó(   — t        | › d|› d�d«       y)zCIssue a warning that a feature will be removed without replacement.r¸   Ú.r»   Nr¼   ©r}   r¶   s     r5   Údeprecate_no_replacementrÆ   £  s   € ä��ÐBÀ:À,ÈaÐPÐRSÕTrH   c                 ó&   — t        | › d|› d�«       y)zJRaise an exception that a feature was already removed without replacement.rÀ   rÄ   NrÁ   rÅ   s     r5   Údeprecation_no_replacementrÈ   ¨  s   € ä�4�&Ð@ÀÀÈAÐNÕOrH   Úsrcc                 óL   — t        j                  |«      j                  | «       y)zØ
    Use this instead of logger.error directly.

    That allows people to overwrite it more easily.

    See the docs on when to use which:
    https://pypdf.readthedocs.io/en/latest/user/suppress-warnings.html
    N)ÚloggingÚ	getLoggerÚerror©r«   rÉ   s     r5   Úlogger_errorrÏ   ­  s   € ô ×Ñ�cÓ× Ñ  Õ%rH   c                 óL   — t        j                  |«      j                  | «       y)a‘  
    Use this instead of logger.warning directly.

    That allows people to overwrite it more easily.

    ## Exception, warnings.warn, logger_warning
    - Exceptions should be used if the user should write code that deals with
      an error case, e.g. the PDF being completely broken.
    - warnings.warn should be used if the user needs to fix their code, e.g.
      DeprecationWarnings
    - logger_warning should be used if the user needs to know that an issue was
      handled by pypdf, e.g. a non-compliant PDF being read in a way that
      pypdf could apply a robustness fix to still read it. This applies mainly
      to strict=False mode.
    N)rË   rÌ   ÚwarningrÎ   s     r5   Úlogger_warningrÒ   ¹  s   € ô  ×Ñ�cÓ×"Ñ" 3Õ'rH   Ú	func_nameÚkwargsÚaliasesÚfailc                 ó  — |j                  «       D ]q  \  }}||v sŒ|rt        |› d|› d�«      ‚||v rt        | › d|› d|› d|› d|› d�
«      ‚|j                  |«      ||<   t	        j
                  |› d|› d�t        d¬	«       Œs y
)z¥
    Helper function to deprecate arguments.

    Args:
        func_name: Name of the function to be deprecated
        kwargs:
        aliases:
        fail:

    z# is deprecated as an argument. Use z insteadz received both z and z as an argument. z is deprecated. Use rº   r   )ÚmessageÚcategoryr¬   N)Úitemsr   Ú	TypeErrorÚpopr®   r¯   r°   )rÓ   rÔ   rÕ   rÖ   Úold_termÚnew_terms         r5   Úrename_kwargsrß   Ì  s¾   € ð &Ÿm™mžoÑˆ�(Ø�vÒÙÜ&Ø�jÐ CÀHÀ:ÈXÐVóð ð ˜6Ñ!ÜØ �k °°
¸%À¸zð J$Ø$, :ð .Ø#˜* Ið/óð ð
  &Ÿz™z¨(Ó3ˆF�8ÑÜ�M‰Mà�jÐ CÀHÀ:ÈXÐVä+Øöñ .rH   Úbytesc                 ó`   — | dk  r| › d�S | dk  r	| dz  d›d�S | dk  r	| dz  d›d�S | dz  d›d�S )	Niè  z Bytei@B z.1fz kBi Êš;z MBz GBr¡   )rà   s    r5   Ú_human_readable_bytesrâ   ï  s_   € Øˆu‚}Ø�˜ˆÐØˆu‚}Ø˜%‘- Ð$ CÐ(Ð(Øˆu‚}Ø˜%‘- Ð$ CÐ(Ð(Ø�e‰m˜CÐ  Ð$Ð$rH   c                   ó4   — e Zd ZdZddd„Zddefd„Zdefd„Zy)	Úclasspropertyz‡
    Decorator that converts a method with a single cls argument into a property
    that can be accessed directly from the class.
    Nr   c                 ó   — || _         y rl   ©Úfget©ÚselfÚmethods     r5   Ú__init__zclassproperty.__init__"  s	   € Øˆ�	rH   c                 ó$   — | j                  |«      S rl   ræ   )ré   ÚinstanceÚclss      r5   Ú__get__zclassproperty.__get__%  s   € Ø�y‰y˜‹~ÐrH   c                 ó   — || _         | S rl   ræ   rè   s     r5   Úgetterzclassproperty.getter(  s   € ØˆŒ	ØˆrH   rl   )r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__rë   r
   rï   r   rñ   r¡   rH   r5   rä   rä     s$   „ ñô
ñ¨Só ð ô rH   rä   c                   óh   — e Zd ZU ddlmZ dZeed<   	 dZe	ed<   	 dZ
ee   ed<   	 d	efd
„Zd	efd„Zy)ÚFiler   )ÚIndirectObjectr"   r}   rH   ÚdataNÚindirect_referencer   c           	      óŒ   — | j                   j                  › d| j                  › dt        t	        | j
                  «      «      › d�S )Nz(name=z, data: Ú))Ú	__class__rò   r}   râ   r-   rù   ©ré   s    r5   Ú__str__zFile.__str__>  s?   € Ø—.‘.×)Ñ)Ð*¨&°·±°¸8ÔDYÔZ]Ð^b×^gÑ^gÓZhÓDiÐCjÐjkÐlÐlrH   c                 ó\   — | j                  «       d d dt        | j                  «      › d�z   S )Nrt   z, hash: rü   )rÿ   Úhashrù   rþ   s    r5   Ú__repr__zFile.__repr__A  s,   € Ø�|‰|‹~˜c˜rÐ" x´°T·Y±Y³Ð/@ÀÐ%BÑBÐBrH   )rò   ró   rô   Úgenericrø   r}   r©   Ú__annotations__rù   rà   rú   r   rÿ   r  r¡   rH   r5   r÷   r÷   -  sW   … å'à€Dˆ#ƒNðð €Dˆ%Óðð 48Ð˜ Ñ0Ó7ððm˜ó mðC˜#ô CrH   r÷   c                   óŒ   — e Zd Z ej                  d«      Zdeddfd„Zdedee	e
ef      fd„Zdedefd„Zde
fd	„Zdedefd
„Zy)ÚVersionz^(\d+)(.*)$Úversion_strr   Nc                 ó>   — || _         | j                  |«      | _        y rl   )r  Ú_parse_versionÚ
components)ré   r  s     r5   rë   zVersion.__init__I  s   € Ø&ˆÔØ×-Ñ-¨kÓ:ˆ�rH   c                 ó(  — |j                  d«      }g }|D ]y  }t        j                  j                  |«      }|s|j	                  d|f«       Œ8|j                  d«      }|j                  d«      }|€d}|j	                  t        |«      |f«       Œ{ |S )NrÄ   r   r   r   )Úsplitr  ÚCOMPONENT_PATTERNÚmatchrL   Úgroupr=   )ré   r  r
  Úparsed_componentsÚ	componentr  Úinteger_prefixÚsuffixs           r5   r	  zVersion._parse_versionM  s•   € Ø ×&Ñ& sÓ+ˆ
ØÐÛ#ˆIÜ×-Ñ-×3Ñ3°IÓ>ˆEÙØ!×(Ñ(¨!¨Y¨Ô8ØØ"Ÿ[™[¨›^ˆNØ—[‘[ “^ˆFØÐ%Ø!"�Ø×$Ñ$¤c¨.Ó&9¸6Ð%BÕCð $ð !Ð rH   Úotherc                 óV   — t        |t        «      sy| j                  |j                  k(  S )NF)r¨   r  r
  )ré   r  s     r5   Ú__eq__zVersion.__eq__\  s$   € Ü˜%¤Ô)ØØ�‰ %×"2Ñ"2Ñ2Ð2rH   c                 óV   — t        | j                  t        | j                  «      f«      S rl   )r  rý   r—   r
  rþ   s    r5   Ú__hash__zVersion.__hash__a  s   € ä�T—^‘^¤U¨4¯?©?Ó%;Ð<Ó=Ð=rH   c                 óB  — t        |t        «      st        dt        |«      › �«      ‚t	        | j
                  |j
                  «      D ]+  \  }}|\  }}|\  }}||k  r y||kD  r y||k  r y||kD  sŒ+ y t        | j
                  «      t        |j
                  «      k  S )Nz#Version cannot be compared against TF)r¨   r  r0   Útyper”   r
  r-   )ré   r  Úself_componentÚother_componentÚ
self_valueÚself_suffixÚother_valueÚother_suffixs           r5   Ú__lt__zVersion.__lt__e  s¥   € Ü˜%¤Ô)ÜÐBÄ4ÈÃ;À-ÐPÓQÐQä/2°4·?±?ÀE×DTÑDTÖ/UÑ+ˆN˜OØ&4Ñ#ˆJ˜Ø(7Ñ%ˆK˜à˜KÒ'ÙØ˜KÒ'Ùà˜\Ò)ÙØ˜\Ó)Ùð 0Vô �4—?‘?Ó#¤c¨%×*:Ñ*:Ó&;Ñ;Ð;rH   )rò   ró   rô   ÚreÚcompiler  r©   rë   Úlistr—   r=   r	  ÚobjectÚboolr  r  r
   r!  r¡   rH   r5   r  r  E  sx   „ à"˜Ÿ
™
 >Ó2Ðð; Cð ;¨Dó ;ð!¨#ð !°$°u¸SÀ#¸X±Ñ2Gó !ð3˜Fð 3 tó 3ð
>˜#ó >ð<˜Cð < Dô <rH   r  rl   )r   )F)Krõ   Ú
__author__Ú__author_email__Ú	functoolsrË   r"  Úsysr®   Údataclassesr   r   r   Úior   Úosr   r   Útypingr	   r
   r   r   r   Úversion_infor   Útyping_extensionsr   Úerrorsr   r   r   r—   r‘   r   r  r   Ú
StreamTyper©   ÚStrByteTyper6   rG   rP   rc   r†   rm   ÚWHITESPACES_AS_REGEXPr=   rà   r`   re   r&  rh   rr   rw   r   rƒ   r‹   r˜   rŸ   r£   r±   r³   r¾   rÂ   rÆ   rÈ   rÏ   rÒ   Údictrß   râ   rä   r÷   Útotal_orderingr  r¡   rH   r5   Ú<module>r7     sc  ðò8 )Ø€
Ø/Ð ã Û Û 	Û 
Û Ý !ß 'Ý "Ý Ý ÷õ ð ×Ñ�B�QÐ˜7Ò"æ å+à×Ñ�wÒÞå&÷ñ ð ',Ø	ˆ%�˜Ð
Ñ  e¨U°EÐ&9Ñ :¸EÀ%ÈÐPUÐBUÑ<VÐVñ'Ð ˜)ó ð -2Ø	ˆ5�%˜  uÐ,ñ-Ð  	ó ð �‰W€
Ø�C˜�OÑ$€ð9˜X c™]ð 9¨x¸Ñ/Aó 9ð@˜Hð ¨ó ð2-¨ð -°sð -¸só -ð& :€Ø—x‘x Ó,Ð ØÐ3Ñ3°dÑ:Ð ñ *ð ¸À¹ð ÐQVó ð2 
ð ¨uó ð" ð °ó ð(9 Eð 9¨dó 9ðA˜jð A¨Tó Að˜Zð °¸±ð À5ó ð4 ð °cð ¸eó ð27(˜zð 7(¨eó 7(ðtØðØ$<ðàóð	˜*ð 	¨ó 	ð 
ðˆCð �Cò ó 
ðð 
ðˆEð �eò ó 
ðð 
ðˆCð �Cò ó 
ððˆE�#�s˜E�/Ñ"ð  u¨S°%¨ZÑ'8ó ñB�3ð B Cð B°ó Bð �Sð  ˜Tó  ð¨ð ¸ð Èð ÐQUó ð¨3ð ¸#ð È3ð ÐSWó ðU 3ð U°Cð U¸Dó Uð
P Sð P°cð P¸dó Pð
	&�cð 	& ð 	&¨ó 	&ð(˜ð ( #ð (¨$ó (ð( SXñ Øð Ø   c ™Nð Ø59¸#¸s¸(±^ð ØKOð à	ó ðF% ð %¨ó %÷Zñ ð" ÷Cð Có ðCð. ×Ñ÷1<ð 1<ó ñ1<rH   