Ë
    ×Õ°jM  ã                   ó*   — d Z ddlmZ  G d„ de«      Zy)z(WSGI response writer for HTTP/2 streams.é    )ÚResponsec                   ó@   ‡ — e Zd ZdZˆ fd„Zd„ Zd„ Zd„ Zd„ Zd„ Z	ˆ xZ
S )ÚHTTP2Responsea®  A WSGI Response that frames its output as HTTP/2 instead of HTTP/1.

    Only the wire framing is overridden. Everything the WSGI protocol needs
    (``start_response``, header processing, the no-body rules for HEAD, 1xx,
    204 and 304, the Content-Length accounting in ``write()``) is inherited,
    so HTTP/2 responses obey the same rules as HTTP/1 ones rather than a
    parallel set that has to be kept in step by hand.
    c                 óR   •— t         ‰| �  |||«       || _        || _        d| _        y ©NF)ÚsuperÚ__init__Úh2_connÚ	stream_idÚ_stream_ended)ÚselfÚreqÚsockÚcfgr
   r   Ú	__class__s         €úM/var/www/mission/venv/lib/python3.12/site-packages/gunicorn/http2/response.pyr	   zHTTP2Response.__init__   s,   ø€ ô 	‰Ñ˜˜d CÔ(ØˆŒØ"ˆŒØ"ˆÕó    c                  ó   — yr   © ©r   s    r   Ú
is_chunkedzHTTP2Response.is_chunked   s   € ð r   c                  ó   — yr   r   r   s    r   Úcan_sendfilezHTTP2Response.can_sendfile!   s   € ð r   c                 ó¦   — | j                   ry | j                  j                  | j                  | j                  | j
                  d¬«       d| _         y )NF©Ú
end_streamT)Úheaders_sentr
   Úsend_response_headersr   Ústatus_codeÚheadersr   s    r   Úsend_headerszHTTP2Response.send_headers'   sF   € Ø×ÒØØ�‰×*Ñ*Ø�N‰N˜D×,Ñ,¨d¯l©lÀuð 	+ô 	
ð !ˆÕr   c                 óZ   — |sy | j                   j                  | j                  |d¬«       y )NFr   )r
   Ú	send_datar   )r   Údatas     r   Ú
_emit_bodyzHTTP2Response._emit_body/   s%   € ÙØØ�‰×Ñ˜tŸ~™~¨tÀÐÕFr   c                 óÌ   — | j                   s| j                  «        | j                  ry d| _        t        | dd «      }| j                  j                  | j                  |¬«       y )NTÚtrailers)r'   )r   r!   r   Úgetattrr
   r   r   )r   r'   s     r   ÚclosezHTTP2Response.close4   sT   € Ø× Ò Ø×ÑÔØ×ÒØØ!ˆÔÜ˜4 ¨TÓ2ˆØ�‰×Ñ §¡¸ÐÕBr   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__r	   r   r   r!   r%   r)   Ú__classcell__)r   s   @r   r   r   
   s(   ø„ ñô#òò
ò!òGö
Cr   r   N)r-   Úgunicorn.http.wsgir   r   r   r   r   ú<module>r0      s   ðñ
 /å 'ô1C�Hõ 1Cr   