Ë
    ö-ªi7  ã                   ó€   — d dl Z d dlZd dlmZmZmZ  G d„ de«      Z G d„ de«      Z G d„ de«      Z	 G d	„ d
e«      Z
y)é    N)Ú
NoMoreDataÚChunkMissingTerminatorÚInvalidChunkSizec                   ó2   — e Zd Zd„ Zd„ Zd„ Zd„ Zdd„Zd„ Zy)	ÚChunkedReaderc                 óp   — || _         | j                  |«      | _        t        j                  «       | _        y ©N)ÚreqÚparse_chunkedÚparserÚioÚBytesIOÚbuf)Úselfr
   Úunreaders      úJ/var/www/timesheet/venv/lib/python3.12/site-packages/gunicorn/http/body.pyÚ__init__zChunkedReader.__init__   s(   € ØˆŒØ×(Ñ(¨Ó2ˆŒÜ—:‘:“<ˆ�ó    c                 ó0  — t        |t        «      st        d«      ‚|dk  rt        d«      ‚|dk(  ry| j                  rj| j
                  j                  «       |k  rM	 | j
                  j                  t        | j                  «      «       | j
                  j                  «       |k  rŒM| j
                  j                  «       }|d | ||d  }}t        j                  «       | _        | j
                  j                  |«       |S # t        $ r
 d | _        Y Œlw xY w)Nzsize must be an integer typer   úSize must be positive.r   )Ú
isinstanceÚintÚ	TypeErrorÚ
ValueErrorr   r   ÚtellÚwriteÚnextÚStopIterationÚgetvaluer   r   ©r   ÚsizeÚdataÚretÚrests        r   ÚreadzChunkedReader.read   sæ   € Ü˜$¤Ô$ÜÐ:Ó;Ð;Ø�!Š8ÜÐ5Ó6Ð6Ø�1Š9Øà�;Š;Ø—(‘(—-‘-“/ DÒ(ðØ—H‘H—N‘N¤4¨¯©Ó#4Ô5ð —(‘(—-‘-“/ DÓ(ð �x‰x× Ñ Ó"ˆØ˜˜$�K  d e ˆTˆÜ—:‘:“<ˆŒØ�‰�‰�tÔØˆ
øô %ò Ø"&�D”KÙðús   Á.D ÄDÄDc                 ór  — t        j                  «       }|j                  |«       |j                  «       j	                  d«      }|j                  «       d d dk(  }|dk  rQ|sO| j                  ||«       |j                  «       j	                  d«      }|j                  «       d d dk(  }|dk  r|sŒO|r#|j                  |j                  «       dd  «       y| j                  j                  |j                  «       d | d¬«      | j                  _	        |j                  |j                  «       |dz   d  «       y )	Ns   

é   ó   
r   r   T)Úfrom_traileré   )
r   r   r   r   ÚfindÚget_dataÚunreadr
   Úparse_headersÚtrailers)r   r   r"   r   ÚidxÚdones         r   Úparse_trailerszChunkedReader.parse_trailers)   s   € Ü�j‰j‹lˆØ�	‰	�$Œà�l‰l‹n×!Ñ! +Ó.ˆØ�|‰|‹~˜b˜qÐ! WÑ,ˆØ�AŠg™dØ�M‰M˜( CÔ(Ø—,‘,“.×%Ñ% kÓ2ˆCØ—<‘<“> " 1Ð%¨Ñ0ˆDð �AŠgšdñ Ø�O‰O˜CŸL™L›N¨1¨2Ð.Ô/ØØ ŸH™H×2Ñ2°3·<±<³>À$À3Ð3GÐVZÐ2Ó[ˆ�‰ÔØ�‰˜Ÿ™› s¨Q¡w xÐ0Õ1r   c              #   ó¸  K  — | j                  |«      \  }}|dkD  r½|t        |«      kD  r=|t        |«      z  }|–— |j                  «       }|s
t        «       ‚|t        |«      kD  rŒ=|d | –— ||d  }t        |«      dk  r"||j                  «       z  }t        |«      dk  rŒ"|d d dk7  rt	        |d d «      ‚| j                  ||dd  ¬«      \  }}|dkD  rŒ¼y y ­w)Nr   r'   r(   )r"   )Úparse_chunk_sizeÚlenr%   r   r   )r   r   r!   r$   s       r   r   zChunkedReader.parse_chunked9   sì   è ø€ Ø×,Ñ,¨XÓ6‰ˆˆtØ�QŠhØœ˜T›Ò"Øœ˜D›	Ñ!�Ø’
Ø—}‘}“�ÙÜ$›,Ð&ð œ˜T›Ó"ð �u˜�+Òà˜˜�;ˆDÜ�d“)˜a’-Ø˜Ÿ™›Ñ'�ô �d“)˜a“-à�B�Qˆx˜7Ò"Ü,¨T°"°1¨XÓ6Ð6Ø×0Ñ0°ÀÀQÀRÀÐ0ÓI‰LˆT�4ð �Q�hùs   ‚A$CÁ';CÂ#4CÃCNc                 ó8  — t        j                  «       }|�|j                  |«       |j                  «       j	                  d«      }|dk  r7| j                  ||«       |j                  «       j	                  d«      }|dk  rŒ7|j                  «       }|d | ||dz   d  }}|j                  dd«      ^}}|r|j                  d«      }t        d„ |D «       «      rt        |«      ‚t        |d«      }|dk(  r	 | j                  ||«       y	||fS # t        $ r Y y	w xY w)
Nr(   r   r'   ó   ;é   s    	c              3   ó$   K  — | ]  }|d v–— Œ
 y­w)s   0123456789abcdefABCDEFN© )Ú.0Úns     r   ú	<genexpr>z1ChunkedReader.parse_chunk_size.<locals>.<genexpr>\   s   è ø€ ÒF°aˆqÐ1Ô1ÑFùs   ‚é   )r   N)r   r   r   r   r+   r,   ÚsplitÚrstripÚanyr   r   r2   r   )	r   r   r"   r   r0   ÚlineÚ
rest_chunkÚ
chunk_sizeÚ	chunk_exts	            r   r4   zChunkedReader.parse_chunk_sizeK   s   € Ü�j‰j‹lˆØÐØ�I‰I�dŒOà�l‰l‹n×!Ñ! 'Ó*ˆØ�AŠgØ�M‰M˜( CÔ(Ø—,‘,“.×%Ñ% gÓ.ˆCð �A‹gð �|‰|‹~ˆØ  ˜: t¨C°!©G¨H ~ˆjˆð "&§¡¨D°!Ó!4Ðˆ
�YÙØ#×*Ñ*¨6Ó2ˆJÜÑF¸:ÔFÔFÜ" :Ó.Ð.Ü˜ RÓ(ˆ
à˜Š?ðØ×#Ñ# H¨jÔ9ð Ø˜JÐ'Ð'øô ò ØØðús   Ã6D Ä	DÄDc                 ó^   — |j                  «       }|s
t        «       ‚|j                  |«       y r	   )r%   r   r   )r   r   r   r"   s       r   r,   zChunkedReader.get_datah   s#   € Ø�}‰}‹ˆÙÜ“,ÐØ�	‰	�$�r   r	   )	Ú__name__Ú
__module__Ú__qualname__r   r%   r2   r   r4   r,   r:   r   r   r   r      s!   „ ò ò
ò,2ò Jó$(ó:r   r   c                   ó   — e Zd Zd„ Zd„ Zy)ÚLengthReaderc                 ó    — || _         || _        y r	   )r   Úlength)r   r   rM   s      r   r   zLengthReader.__init__p   s   € Ø ˆŒØˆ�r   c                 ó  — t        |t        «      st        d«      ‚t        | j                  |«      }|dk  rt        d«      ‚|dk(  ryt        j                  «       }| j                  j                  «       }|rB|j                  |«       |j                  «       |k\  rn| j                  j                  «       }|rŒB|j                  «       }|d | ||d  }}| j                  j                  |«       | xj                  |z  c_        |S )Núsize must be an integral typer   r   r   )r   r   r   ÚminrM   r   r   r   r   r%   r   r   r   r-   )r   r!   r   r"   r#   r$   s         r   r%   zLengthReader.readt   sß   € Ü˜$¤Ô$ÜÐ;Ó<Ð<ä�4—;‘; Ó%ˆØ�!Š8ÜÐ5Ó6Ð6Ø�1Š9Øä�j‰j‹lˆØ�}‰}×!Ñ!Ó#ˆÙØ�I‰I�dŒOØ�x‰x‹z˜TÒ!ØØ—=‘=×%Ñ%Ó'ˆDò	 ð �l‰l‹nˆØ˜˜�J  D E 
ˆTˆØ�‰×Ñ˜TÔ"Ø�Š�tÑ�Øˆ
r   N©rG   rH   rI   r   r%   r:   r   r   rK   rK   o   s   „ òór   rK   c                   ó   — e Zd Zd„ Zd„ Zy)Ú	EOFReaderc                 óR   — || _         t        j                  «       | _        d| _        y )NF)r   r   r   r   Úfinished)r   r   s     r   r   zEOFReader.__init__Ž   s   € Ø ˆŒÜ—:‘:“<ˆŒØˆ�r   c                 óÚ  — t        |t        «      st        d«      ‚|dk  rt        d«      ‚|dk(  ry| j                  rZ| j
                  j                  «       }|d | ||d  }}t        j                  «       | _        | j
                  j                  |«       |S | j                  j                  «       }|rV| j
                  j                  |«       | j
                  j                  «       |kD  rn| j                  j                  «       }|rŒV|sd| _        | j
                  j                  «       }|d | ||d  }}t        j                  «       | _        | j
                  j                  |«       |S )NrO   r   r   r   T)r   r   r   r   rU   r   r   r   r   r   r   r%   r   r    s        r   r%   zEOFReader.read“   s+  € Ü˜$¤Ô$ÜÐ;Ó<Ð<Ø�!Š8ÜÐ5Ó6Ð6Ø�1Š9Øà�=Š=Ø—8‘8×$Ñ$Ó&ˆDØ˜U˜d˜ T¨$¨% [�ˆCÜ—z‘z“|ˆDŒHØ�H‰H�N‰N˜4Ô ØˆJà�}‰}×!Ñ!Ó#ˆÙØ�H‰H�N‰N˜4Ô Ø�x‰x�}‰}‹ Ò%ØØ—=‘=×%Ñ%Ó'ˆDò	 ñ Ø ˆDŒMà�x‰x× Ñ Ó"ˆØ˜˜$�K  d e ˆTˆÜ—:‘:“<ˆŒØ�‰�‰�tÔØˆ
r   NrQ   r:   r   r   rS   rS   �   s   „ òó
r   rS   c                   ó@   — e Zd Zd„ Zd„ Zd„ ZeZd„ Zd	d„Zd	d„Z	d	d„Z
y)
ÚBodyc                 óD   — || _         t        j                  «       | _        y r	   )Úreaderr   r   r   )r   rZ   s     r   r   zBody.__init__´   s   € ØˆŒÜ—:‘:“<ˆ�r   c                 ó   — | S r	   r:   )r   s    r   Ú__iter__zBody.__iter__¸   s   € Øˆr   c                 ó>   — | j                  «       }|s
t        «       ‚|S r	   )Úreadliner   )r   r#   s     r   Ú__next__zBody.__next__»   s   € Ø�m‰m‹oˆÙÜ“/Ð!Øˆ
r   c                 óŠ   — |€t         j                  S t        |t        «      st	        d«      ‚|dk  rt         j                  S |S )NrO   r   )ÚsysÚmaxsizer   r   r   )r   r!   s     r   ÚgetsizezBody.getsizeÃ   s=   € Øˆ<Ü—;‘;ÐÜ˜D¤#Ô&ÜÐ;Ó<Ð<Ø�AŠXÜ—;‘;ÐØˆr   Nc                 óº  — | j                  |«      }|dk(  ry|| j                  j                  «       k  rZ| j                  j                  «       }|d | ||d  }}t	        j
                  «       | _        | j                  j                  |«       |S || j                  j                  «       kD  rW| j                  j                  d«      }|sn9| j                  j                  |«       || j                  j                  «       kD  rŒW| j                  j                  «       }|d | ||d  }}t	        j
                  «       | _        | j                  j                  |«       |S )Nr   r   é   )	rc   r   r   r   r   r   r   rZ   r%   r    s        r   r%   z	Body.readÌ   s  € Ø�|‰|˜DÓ!ˆØ�1Š9Øà�$—(‘(—-‘-“/Ò!Ø—8‘8×$Ñ$Ó&ˆDØ˜U˜d˜ T¨$¨% [�ˆCÜ—z‘z“|ˆDŒHØ�H‰H�N‰N˜4Ô ØˆJà�T—X‘X—]‘]“_Ò$Ø—;‘;×#Ñ# DÓ)ˆDÙØØ�H‰H�N‰N˜4Ô ð	 �T—X‘X—]‘]“_Ó$ð �x‰x× Ñ Ó"ˆØ˜˜$�K  d e ˆTˆÜ—:‘:“<ˆŒØ�‰�‰�tÔØˆ
r   c                 ó  — | j                  |«      }|dk(  ry| j                  j                  «       }t        j                  «       | _        g }	 |j                  dd|«      }|dk\  r|dz   nt        |«      |k\  r|nd}|r3|j                  |d | «       | j                  j                  ||d  «       nH|j                  |«       |t        |«      z  }| j                  j                  t        d|«      «      }|snŒ¬dj                  |«      S )Nr   r   r8   ó   
re   )rc   r   r   r   r   r+   r5   Úappendr   rZ   r%   rP   Újoin)r   r!   r"   r#   r0   s        r   r^   zBody.readlineä   sî   € Ø�|‰|˜DÓ!ˆØ�1Š9Øà�x‰x× Ñ Ó"ˆÜ—:‘:“<ˆŒàˆØØ—)‘)˜E 1 dÓ+ˆCØ  AšX�#˜’'´3°t³9ÀÒ3D©4È!ˆCÙØ—
‘
˜4  ˜:Ô&Ø—‘—‘˜t C D˜zÔ*Øà�J‰J�tÔØ”C˜“IÑˆDØ—;‘;×#Ñ#¤C¨¨d£OÓ4ˆDÙØð ð �x‰x˜‹}Ðr   c                 óÊ   — g }| j                  «       }|rN|j                  d«      }|dk  r|j                  |«       d}n!|d |dz    ||dz   d  }}|j                  |«       |rŒN|S )Nrg   r   r   r8   )r%   r+   rh   )r   r!   r#   r"   ÚposrB   s         r   Ú	readlineszBody.readlinesý   sp   € ØˆØ�y‰y‹{ˆÙØ—)‘)˜EÓ"ˆCØ�QŠwØ—
‘
˜4Ô Ø‘à! ( 3¨¡7˜^¨T°#¸±'°(¨^�d�Ø—
‘
˜4Ô ò ð ˆ
r   r	   )rG   rH   rI   r   r\   r_   r   rc   r%   r^   rl   r:   r   r   rX   rX   ³   s,   „ ò òòð €Dòóó0ô2r   rX   )r   ra   Úgunicorn.http.errorsr   r   r   Úobjectr   rK   rS   rX   r:   r   r   ú<module>ro      sM   ðó 
Û 
÷4ñ 4ô_�Fô _ôD�6ô ô<#�ô #ôLUˆ6õ Ur   