Ë
    ò%9jxf  ã                   óÀ  — d dl Z d dlZd dlZd dl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 d dlmZ d dlmZm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 d dlm Z  d dl!m"Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z( d dl)m*Z*  e*dejV                  «      Z, G d„ de «      Z- G d„ de.«      Z/ G d„ d«      Z0 G d„ de0«      Z1 G d„ de0«      Z2 G d„ de2«      Z3 G d„ de1«      Z4 G d „ d!e4«      Z5 G d"„ d#e4«      Z6 G d$„ d%e1«      Z7 G d&„ d'e1«      Z8 G d(„ d)e1«      Z9 G d*„ d+e1«      Z: G d,„ d-e1«      Z; G d.„ d/e1«      Z< G d0„ d1e1«      Z= G d2„ d3e>«      Z? G d4„ d5e1«      Z@y)6é    N)ÚHeader)Ú	responses)Úurlsplit)Úasync_to_syncÚsync_to_async)Úsettings)ÚsignalsÚsigning)ÚDisallowedRedirect)ÚDjangoJSONEncoder)ÚSimpleCookie)Útimezone)ÚCaseInsensitiveMapping)Ú
iri_to_uri)Úcached_property)ÚMAX_URL_REDIRECT_LENGTHÚcontent_disposition_headerÚ	http_date)Ú_lazy_re_compilez ;\s*charset=(?P<charset>[^\s;]+)c                   ó4   — e Zd Zd„ Zdd„Zd„ Zd„ Zd	d„Zd„ Zy)
ÚResponseHeadersc                 óT   — i | _         |r| j                  |«      D ]
  \  }}|| |<   Œ yy)zm
        Populate the initial data using __setitem__ to ensure values are
        correctly encoded.
        N)Ú_storeÚ_unpack_items)ÚselfÚdataÚheaderÚvalues       úP/var/www/html/truck-me/venv/lib/python3.12/site-packages/django/http/response.pyÚ__init__zResponseHeaders.__init__&   s:   € ð
 ˆŒÙØ!%×!3Ñ!3°DÓ!9ò %‘�˜Ø$��V’ñ%ð ó    c                 ó2  — 	 t        |t        «      r|j                  |«       n>t        |t        «      r|j	                  |«      }nt        |«      }|j                  |«       d|v sd|v rt        d|›d�«      ‚	 |S # t        $ r‘}t        |t        «      rd|v sd|v st        |t        «      rd|v sd|v rt        d|›d�«      |‚|r+t        |dt        j                  ¬«      j                  «       }n|xj                  d	|z  z  c_
        ‚ Y d
}~|S d
}~ww xY w)zé
        Convert headers key/value to ascii/latin-1 native strings.
        `charset` must be 'ascii' or 'latin-1'. If `mime_encode` is True and
        `value` can't be represented in the given charset, apply MIME-encoding.
        ú
úz*Header values can't contain newlines (got ú)ó   
ó   úutf-8)Ú
maxlinelenz,, HTTP response headers must be in %s formatN)Ú
isinstanceÚstrÚencodeÚbytesÚdecodeÚBadHeaderErrorÚUnicodeErrorr   ÚsysÚmaxsizeÚreason)r   r   ÚcharsetÚmime_encodeÚes        r   Ú_convert_to_charsetz#ResponseHeaders._convert_to_charset0   s  € ð	Ü˜%¤Ô%à—‘˜WÕ%Ü˜E¤5Ô)àŸ™ WÓ-‘ä˜E›
�à—‘˜WÔ%Ø�u‰} ¨¡Ü$Ø@ÀÀ	ÈÐKóð ð !.ð( ˆøô! ò 	ô
 ˜5¤%Ô(¨e°u©nÀÈÁÜ˜5¤#Ô&¨D°E©M¸TÀU¹]ä$Ø@ÀÀ	ÈÐKóàðñ Ü˜u g¼#¿+¹+ÔF×MÑMÓO‘à—’ÐJÈWÑTÑT•Øó ð ˆûð!	ús   ‚A7A< Á<	DÂBDÄDc                 ó&   — | j                  |«       y ©N)Úpop)r   Úkeys     r   Ú__delitem__zResponseHeaders.__delitem__W   s   € Ø�‰��r!   c                 óŽ   — | j                  |d«      }| j                  |dd¬«      }||f| j                  |j                  «       <   y )NÚasciiúlatin-1T)r5   )r7   r   Úlower©r   r;   r   s      r   Ú__setitem__zResponseHeaders.__setitem__Z   sC   € Ø×&Ñ& s¨GÓ4ˆØ×(Ñ(¨°	ÀtÐ(ÓLˆØ$'¨ <ˆ�‰�C—I‘I“KÒ r!   Nc                 óV   — | j                   j                  |j                  «       |«      S r9   )r   r:   r@   )r   r;   Údefaults      r   r:   zResponseHeaders.pop_   s   € Ø�{‰{�‰˜sŸy™y›{¨GÓ4Ð4r!   c                 ó   — || vr|| |<   y y r9   © rA   s      r   Ú
setdefaultzResponseHeaders.setdefaultb   s   € Ø�d‰?ØˆD�ŠIð r!   ©Fr9   )	Ú__name__Ú
__module__Ú__qualname__r    r7   r<   rB   r:   rG   rF   r!   r   r   r   %   s!   „ ò%ó%òNò0ó
5ór!   r   c                   ó   — e Zd Zy)r/   N©rI   rJ   rK   rF   r!   r   r/   r/   g   ó   „ Ør!   r/   c                   ó.  — e Zd ZdZdZ	 dd„Zed„ «       Zej                  d„ «       Zed„ «       Z	e	j                  d„ «       Z	d	„ Z
e
Zed
„ «       Zd„ Zd„ Zd„ Zd„ ZeZd„ Zdd„Z	 	 	 	 	 	 	 	 d d„Zd„ Zd!d„Zd"d„Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Zd„ Z y)#ÚHttpResponseBasezÖ
    An HTTP response base class with dictionary-accessed headers.

    This class doesn't handle content. It should not be used directly.
    Use the HttpResponse and StreamingHttpResponse subclasses instead.
    éÈ   Nc                 óº  — t        |«      | _        || _        d| j                  vr!|€d| j                  › �}|| j                  d<   n|rt	        d«      ‚g | _        d | _        t        «       | _        d| _	        |�=	 t        |«      | _        d| j                  cxk  rdk  st	        d«      ‚ t	        d«      ‚|| _        y # t        t        f$ r t        d«      ‚w xY w)	NúContent-Typeztext/html; charset=zX'headers' must not contain 'Content-Type' when the 'content_type' parameter is provided.Fz$HTTP status code must be an integer.éd   iW  z4HTTP status code must be an integer from 100 to 599.)r   ÚheadersÚ_charsetr4   Ú
ValueErrorÚ_resource_closersÚ_handler_classr   ÚcookiesÚclosedÚintÚstatus_codeÚ	TypeErrorÚ_reason_phrase)r   Úcontent_typeÚstatusr3   r4   rU   s         r   r    zHttpResponseBase.__init__u   sö   € ô ' wÓ/ˆŒØˆŒØ §¡Ñ-ØÐ#Ø!4°T·\±\°NÐC�Ø+7ˆD�L‰L˜Ò(ÙÜð8óð ð "$ˆÔð #ˆÔÜ#“~ˆŒØˆŒØÐðHÜ#& v£;�Ô ð ˜$×*Ñ*Ô1¨cÒ1Ü Ð!WÓXÐXð 2Ü Ð!WÓXÐXØ$ˆÕøô ¤	Ð*ò HÜÐ FÓGÐGðHús   Á;B? Â?Cc                 ór   — | j                   �| j                   S t        j                  | j                  d«      S )NzUnknown Status Code)r_   r   Úgetr]   ©r   s    r   Úreason_phrasezHttpResponseBase.reason_phrase“   s4   € à×ÑÐ*Ø×&Ñ&Ð&ô �}‰}˜T×-Ñ-Ð/DÓEÐEr!   c                 ó   — || _         y r9   )r_   ©r   r   s     r   re   zHttpResponseBase.reason_phrase›   s
   € à#ˆÕr!   c                 óä   — | j                   �| j                   S | j                  j                  d«      x}r,t        j	                  |«      x}r|d   j                  dd«      S t        j                  S )NrS   r4   ú"Ú )rV   rU   rc   Ú_charset_from_content_type_reÚsearchÚreplacer   ÚDEFAULT_CHARSET)r   r`   Úmatcheds      r   r4   zHttpResponseBase.charsetŸ   sn   € à�=‰=Ð$Ø—=‘=Ð ð  Ÿ<™<×+Ñ+¨NÓ;Ð;ˆ<Ð;Ü7×>Ñ>¸|ÓLÐLˆwÐLð
 ˜yÑ)×1Ñ1°#°rÓ:Ð:Ü×'Ñ'Ð'r!   c                 ó   — || _         y r9   )rV   rg   s     r   r4   zHttpResponseBase.charset®   s	   € àˆ�r!   c           
      óÎ   — dj                  | j                  j                  «       D ��cg c]+  \  }}|j                  d«      dz   |j                  d«      z   ‘Œ- c}}«      S c c}}w )zHTTP headers as a bytestring.s   
r>   s   : r?   )ÚjoinrU   Úitemsr,   rA   s      r   Úserialize_headersz"HttpResponseBase.serialize_headers²   s]   € à�|‰|ð #'§,¡,×"4Ñ"4Ó"6÷á�C˜ð —
‘
˜7Ó# eÑ+¨e¯l©l¸9Ó.EÓEóó
ð 	
ùós   ©0A!
c                 óF   — d| j                   v rd| j                   d   z  S dS )NrS   z, "%s"rj   ©rU   rd   s    r   Ú_content_type_for_reprz'HttpResponseBase._content_type_for_repr½   s2   € ð  §¡Ñ-ð �t—|‘| NÑ3Ñ3ð	
ð ð	
r!   c                 ó"   — || j                   |<   y r9   rv   )r   r   r   s      r   rB   zHttpResponseBase.__setitem__Å   s   € Ø$ˆ�‰�VÒr!   c                 ó   — | j                   |= y r9   rv   ©r   r   s     r   r<   zHttpResponseBase.__delitem__È   s   € Ø�L‰L˜Ñ r!   c                 ó    — | j                   |   S r9   rv   rz   s     r   Ú__getitem__zHttpResponseBase.__getitem__Ë   s   € Ø�|‰|˜FÑ#Ð#r!   c                 ó   — || j                   v S )z$Case-insensitive check for a header.rv   rz   s     r   Ú
has_headerzHttpResponseBase.has_headerÎ   s   € à˜Ÿ™Ð%Ð%r!   c                 ó6   — | j                   j                  «       S r9   )rU   rs   rd   s    r   rs   zHttpResponseBase.itemsÔ   s   € Ø�|‰|×!Ñ!Ó#Ð#r!   c                 ó:   — | j                   j                  ||«      S r9   )rU   rc   )r   r   Ú	alternates      r   rc   zHttpResponseBase.get×   s   € Ø�|‰|×Ñ ¨	Ó2Ð2r!   c
                 ó4  — || j                   |<   |�út        |t        j                  «      rÍt        j                  |«      r.t        j
                  |t        j                  j                  «      }|t        j                  j                  t        j                  j                  ¬«      z
  }
|
t        j                  d¬«      z  }
d}|�t        d«      ‚t        d|
j                  dz  |
j                  z   «      }n%|| j                   |   d<   nd	| j                   |   d<   |�wt        |t        j                  «      r|j                  «       }t        |«      | j                   |   d
<   |s0t        t!        j                   «       |z   «      | j                   |   d<   |�|| j                   |   d<   |�|| j                   |   d<   |rd| j                   |   d<   |rd| j                   |   d<   |	r0|	j#                  «       dvrt        d«      ‚|	| j                   |   d<   yy)a™  
        Set a cookie.

        ``expires`` can be:
        - a string in the correct format,
        - a naive ``datetime.datetime`` object in UTC,
        - an aware ``datetime.datetime`` object in any time zone.
        If it is a ``datetime.datetime`` object then calculate ``max_age``.

        ``max_age`` can be:
        - int/float specifying seconds,
        - ``datetime.timedelta`` object.
        N)Útzé   )Úsecondsz/'expires' and 'max_age' can't be used together.r   i€Q Úexpiresrj   zmax-ageÚpathÚdomainTÚsecureÚhttponly)ÚlaxÚnoneÚstrictz,samesite must be "lax", "none", or "strict".Úsamesite)rZ   r*   Údatetimer   Úis_naiveÚ
make_awareÚutcÚnowÚ	timedeltarW   ÚmaxÚdaysr…   Útotal_secondsr\   r   Útimer@   )r   r;   r   Úmax_ager†   r‡   rˆ   r‰   rŠ   rŽ   Údeltas              r   Ú
set_cookiezHttpResponseBase.set_cookieÚ   sæ  € ð2 "ˆ�‰�SÑØÐÜ˜'¤8×#4Ñ#4Ô5Ü×$Ñ$ WÔ-Ü&×1Ñ1°'¼8×;LÑ;L×;PÑ;PÓQ�GØ¤(×"3Ñ"3×"7Ñ"7¼8×;LÑ;L×;PÑ;PÐ"7Ó"QÑQ�ð œ×+Ñ+°AÔ6Ñ6�à�ØÐ&Ü$Ð%VÓWÐWÜ˜a §¡¨eÑ!3°e·m±mÑ!CÓD‘à/6�—‘˜SÑ! )Ò,à+-ˆD�L‰L˜Ñ˜iÑ(ØÐÜ˜'¤8×#5Ñ#5Ô6Ø!×/Ñ/Ó1�Ü+.¨w«<ˆD�L‰L˜Ñ˜iÑ(áÜ/8¼¿¹»ÀwÑ9NÓ/O�—‘˜SÑ! )Ñ,ØÐØ(,ˆD�L‰L˜Ñ˜fÑ%ØÐØ*0ˆD�L‰L˜Ñ˜hÑ'ÙØ*.ˆD�L‰L˜Ñ˜hÑ'ÙØ,0ˆD�L‰L˜Ñ˜jÑ)ÙØ�~‰~ÓÐ'@Ñ@Ü Ð!OÓPÐPØ,4ˆD�L‰L˜Ñ˜jÒ)ð r!   c                 ó<   — | j                   j                  ||«       y)z,Set a header unless it has already been set.N)rU   rG   rA   s      r   rG   zHttpResponseBase.setdefault  s   € à�‰×Ñ  UÕ+r!   c                 óz   — t        j                  ||z   ¬«      j                  |«      } | j                  ||fi |¤ŽS )N)Úsalt)r
   Úget_cookie_signerÚsignr›   )r   r;   r   rž   Úkwargss        r   Úset_signed_cookiez"HttpResponseBase.set_signed_cookie  s9   € Ü×)Ñ)¨s°T©zÔ:×?Ñ?ÀÓFˆØˆt�‰˜s EÑ4¨VÑ4Ð4r!   c           	      óˆ   — |j                  d«      xs |xr |j                  «       dk(  }| j                  |d|||d|¬«       y )N)z	__Secure-z__Host-rŒ   r   zThu, 01 Jan 1970 00:00:00 GMT)r™   r‡   rˆ   r‰   r†   rŽ   )Ú
startswithr@   r›   )r   r;   r‡   rˆ   rŽ   r‰   s         r   Údelete_cookiezHttpResponseBase.delete_cookie"  sW   € ð
 —‘Ð 8Ó9ò 
ØÒ3˜Ÿ™Ó)¨VÑ3ð 	ð 	�‰ØØØØØØ3Øð 	õ 	
r!   c                 óô   — t        |t        t        f«      rt        |«      S t        |t        «      r$t        |j	                  | j
                  «      «      S t        |«      j	                  | j
                  «      S )z=Turn a value into a bytestring encoded in the output charset.)r*   r-   Ú
memoryviewr+   r,   r4   rg   s     r   Ú
make_byteszHttpResponseBase.make_bytes6  sX   € ô �eœe¤ZÐ0Ô1Ü˜“<ÐÜ�eœSÔ!Ü˜Ÿ™ d§l¡lÓ3Ó4Ð4ä�5‹z× Ñ  §¡Ó.Ð.r!   c                 óê   — | j                   D ]
  }	  |«        Œ | j                   j                  «        d| _        t        j
                  j                  | j                  ¬«       y # t        $ r Y Œdw xY w)NT)Úsender)rX   Ú	ExceptionÚclearr[   r	   Úrequest_finishedÚsendrY   )r   Úclosers     r   ÚclosezHttpResponseBase.closeK  sm   € Ø×,Ñ,ò 	ˆFðÙ•ð	ð 	×Ñ×$Ñ$Ô&ØˆŒÜ× Ñ ×%Ñ%¨T×-@Ñ-@Ð%ÕAøô ò Ùðús   ‘A&Á&	A2Á1A2c                 óF   — t        d| j                  j                  z  «      ‚©Nz This %s instance is not writable©ÚOSErrorÚ	__class__rI   ©r   Úcontents     r   ÚwritezHttpResponseBase.writeV  ó   € ÜÐ8¸4¿>¹>×;RÑ;RÑRÓSÐSr!   c                  ó   — y r9   rF   rd   s    r   ÚflushzHttpResponseBase.flushY  s   € Ør!   c                 óF   — t        d| j                  j                  z  «      ‚)Nz)This %s instance cannot tell its positionr³   rd   s    r   ÚtellzHttpResponseBase.tell\  s!   € ÜØ7¸$¿.¹.×:QÑ:QÑQó
ð 	
r!   c                  ó   — y©NFrF   rd   s    r   ÚreadablezHttpResponseBase.readabled  ó   € Ør!   c                  ó   — yr¿   rF   rd   s    r   ÚseekablezHttpResponseBase.seekableg  rÁ   r!   c                  ó   — yr¿   rF   rd   s    r   ÚwritablezHttpResponseBase.writablej  rÁ   r!   c                 óF   — t        d| j                  j                  z  «      ‚r²   r³   )r   Úliness     r   Ú
writelineszHttpResponseBase.writelinesm  r¹   r!   )NNNNNr9   )rj   NNú/NFFN)rj   )rÉ   NN)!rI   rJ   rK   Ú__doc__r]   r    Úpropertyre   Úsetterr4   rt   Ú	__bytes__rw   rB   r<   r|   r~   Ú__contains__rs   rc   r›   rG   r¢   r¥   r¨   r°   r¸   r»   r½   rÀ   rÃ   rÅ   rÈ   rF   r!   r   rP   rP   k   s  „ ñð €Kð RVó%ð< ñFó ðFð ×Ññ$ó ð$ð ñ(ó ð(ð ‡^�^ñó ðò
ð "€Iàñ
ó ð
ò%ò!ò$ò&ð €Lò$ó3ð ØØØØØØØó>5ò@,ó5ó
ò(/ò*	BòTòò
òòòóTr!   rP   c                   ó    ‡ — e Zd ZdZdZdˆ fd„	Zd„ Zd„ ZeZe	d„ «       Z
e
j                  d„ «       Z
ed„ «       Zd	„ Zd
„ Zd„ Zd„ Zd„ Zd„ Zˆ xZS )ÚHttpResponsezs
    An HTTP response class with a string as content.

    This content can be read, appended to, or replaced.
    Fc                 ó2   •— t        ‰| �  |i |¤Ž || _        y r9   )Úsuperr    r·   )r   r·   Úargsr¡   rµ   s       €r   r    zHttpResponse.__init__z  s   ø€ Ü‰Ñ˜$Ð) &Ò)àˆ�r!   c                 ód   — d| j                   j                  | j                  | j                  dœz  S ©Nz5<%(cls)s status_code=%(status_code)d%(content_type)s>)Úclsr]   r`   ©rµ   rI   r]   rw   rd   s    r   Ú__repr__zHttpResponse.__repr__  s4   € ØFØ—>‘>×*Ñ*Ø×+Ñ+Ø ×7Ñ7ñJ
ñ 
ð 	
r!   c                 óB   — | j                  «       dz   | j                  z   S )z6Full HTTP message, including headers, as a bytestring.s   

)rt   r·   rd   s    r   Ú	serializezHttpResponse.serialize†  s   € à×%Ñ%Ó'¨+Ñ5¸¿¹ÑDÐDr!   c                 ó8   — dj                  | j                  «      S ©Nr!   )rr   Ú
_containerrd   s    r   r·   zHttpResponse.contentŒ  s   € à�x‰x˜Ÿ™Ó(Ð(r!   c                 óL  ‡ — t        |d«      rSt        |t        t        t        f«      s8dj                  ˆ fd„|D «       «      }t        |d«      r#	 |j                  «        n‰ j                  |«      }|g‰ _	        ‰ j                  j                  dd «       y # t        $ r Y Œ0w xY w)NÚ__iter__r!   c              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr9   ©r¨   )Ú.0Úchunkr   s     €r   ú	<genexpr>z'HttpResponse.content.<locals>.<genexpr>–  s   øè ø€ ÒI¸%˜tŸ™¨u×5ÑIùs   ƒr°   Útext)Úhasattrr*   r-   r§   r+   rr   r°   r«   r¨   rÝ   Ú__dict__r:   )r   r   r·   s   `  r   r·   zHttpResponse.content�  s‘   ø€ ô �5˜*Ô%¬jØ”Eœ:¤sÐ+ô/
ð —h‘hÓIÀ5ÔIÓIˆGÜ�u˜gÔ&ðØ—K‘K•Mð —o‘o eÓ,ˆGà"˜)ˆŒØ�‰×Ñ˜& $Õ'øô !ò Ùðús   ÁB Â	B#Â"B#c                 óT   — | j                   j                  | j                  xs d«      S )Nr(   )r·   r.   r4   rd   s    r   rå   zHttpResponse.text¢  s    € à�|‰|×"Ñ" 4§<¡<Ò#:°7Ó;Ð;r!   c                 ó,   — t        | j                  «      S r9   )ÚiterrÝ   rd   s    r   rß   zHttpResponse.__iter__¦  s   € Ü�D—O‘OÓ$Ð$r!   c                 óX   — | j                   j                  | j                  |«      «       y r9   )rÝ   Úappendr¨   r¶   s     r   r¸   zHttpResponse.write©  s   € Ø�‰×Ñ˜tŸ™¨wÓ7Õ8r!   c                 ó,   — t        | j                  «      S r9   )Úlenr·   rd   s    r   r½   zHttpResponse.tell¬  s   € Ü�4—<‘<Ó Ð r!   c                 ó   — | j                   S r9   )r·   rd   s    r   ÚgetvaluezHttpResponse.getvalue¯  s   € Ø�|‰|Ðr!   c                  ó   — y)NTrF   rd   s    r   rÅ   zHttpResponse.writable²  s   € Ør!   c                 ó4   — |D ]  }| j                  |«       Œ y r9   )r¸   )r   rÇ   Úlines      r   rÈ   zHttpResponse.writelinesµ  s   € Øò 	ˆDØ�J‰J�tÕñ	r!   )r!   )rI   rJ   rK   rÊ   Ú	streamingr    rØ   rÚ   rÍ   rË   r·   rÌ   r   rå   rß   r¸   r½   rð   rÅ   rÈ   Ú__classcell__©rµ   s   @r   rÐ   rÐ   q  s‚   ø„ ñð €Iõò

òEð €Iàñ)ó ð)ð ‡^�^ñ(ó ð(ð" ñ<ó ð<ò%ò9ò!òòör!   rÐ   c                   óš   ‡ — e Zd ZdZdZdˆ fd„	Zd„ Zed„ «       Zed„ «       Z	ed„ «       Z
e
j                  d„ «       Z
d	„ Zd
„ Zd„ Zd„ Zˆ xZS )ÚStreamingHttpResponsea$  
    A streaming HTTP response class with an iterator as content.

    This should only be iterated once, when the response is streamed to the
    client. However, it can be appended to or replaced with a new iterator
    that wraps the original content (or yields entirely new content).
    Tc                 ó2   •— t        ‰| �  |i |¤Ž || _        y r9   )rÒ   r    Ústreaming_content)r   rú   rÓ   r¡   rµ   s       €r   r    zStreamingHttpResponse.__init__Å  s   ø€ Ü‰Ñ˜$Ð) &Ò)ð "3ˆÕr!   c                 ód   — d| j                   j                  | j                  | j                  dœz  S rÕ   )rµ   rK   r]   rw   rd   s    r   rØ   zStreamingHttpResponse.__repr__Ë  s4   € ØFØ—>‘>×.Ñ.Ø×+Ñ+Ø ×7Ñ7ñJ
ñ 
ð 	
r!   c                 óF   — t        d| j                  j                  z  «      ‚)NzMThis %s instance has no `content` attribute. Use `streaming_content` instead.©ÚAttributeErrorrµ   rI   rd   s    r   r·   zStreamingHttpResponse.contentÒ  s'   € äð+Ø-1¯^©^×-DÑ-DñEó
ð 	
r!   c                 óF   — t        d| j                  j                  z  «      ‚)Nz)This %s instance has no `text` attribute.rý   rd   s    r   rå   zStreamingHttpResponse.textÙ  s!   € äØ7¸$¿.¹.×:QÑ:QÑQó
ð 	
r!   c                 ó�   ‡ ‡— ‰ j                   r‰ j                  Šˆˆ fd„} |«       S t        ‰ j                  ‰ j                  «      S )Nc                 óT   •K  — ‰2 3 d {  –—† } ‰j                  | «      ­–— Œ7 Œ6 y ­wr9   rá   )ÚpartÚ	_iteratorr   s    €€r   Úawrapperz9StreamingHttpResponse.streaming_content.<locals>.awrapperæ  s-   øè ø€ Ø"+÷ 0ð 0˜$ØŸ/™/¨$Ó/Ô/ð0ø¡)ùs   ƒ(†&Š$‹&Ž(¤&¦()Úis_asyncr  Úmapr¨   )r   r  r  s   ` @r   rú   z'StreamingHttpResponse.streaming_contentß  s9   ù€ à�=Š=ð Ÿ™ˆIõ0ñ “:Ðä�t—‘¨¯©Ó7Ð7r!   c                 ó&   — | j                  |«       y r9   )Ú_set_streaming_contentrg   s     r   rú   z'StreamingHttpResponse.streaming_contentî  s   € à×#Ñ# EÕ*r!   c                 óä   — 	 t        |«      | _        d| _        t        |d«      r&| j                  j                  |j                  «       y y # t        $ r t	        |«      | _        d| _        Y ŒUw xY w)NFTr°   )	rê   r  r  r^   Úaiterræ   rX   rì   r°   rg   s     r   r  z,StreamingHttpResponse._set_streaming_contentò  se   € ð	!Ü! %›[ˆDŒNØ!ˆDŒMô �5˜'Ô"Ø×"Ñ"×)Ñ)¨%¯+©+Õ6ð #øô ò 	!Ü" 5›\ˆDŒNØ ˆDŽMð	!ús   ‚A Á A/Á.A/c           
      óú   — 	 t        | j                  «      S # t        $ rZ t        j                  dt
        d¬«       d„ }t        | j                  t         t        |«      | j                  «      «      «      cY S w xY w)NzƒStreamingHttpResponse must consume asynchronous iterators in order to serve them synchronously. Use a synchronous iterator instead.é   ©Ú
stacklevelc              “   óR   K  — g }| 2 3 d {  –—† }|j                  |«       Œ7 Œ6 |S ­wr9   )rì   )r  Úas_listrã   s      r   Úto_listz/StreamingHttpResponse.__iter__.<locals>.to_list	  s3   è ø€ Ø�Ø#,÷ *ð *˜%Ø—N‘N 5Õ)ð*ø 9à�ùs   ‚'‡$‹"Œ$�'¢$¤')
rê   rú   r^   ÚwarningsÚwarnÚWarningr  r¨   r   r  )r   r  s     r   rß   zStreamingHttpResponse.__iter__ý  sp   € ð	VÜ˜×.Ñ.Ó/Ð/øÜò 	VÜ�M‰MðPäØõ	òô �t—‘¬Ð-C¬]¸7Ó-CÀDÇNÁNÓ-SÓ(TÓUÒUð	Vús   ‚ —A A:Á9A:c                ó  K  — 	 | j                   2 3 d {  –—† }|­–— Œ7 Œ
6 y # t        $ rQ t        j                  dt        d¬«        t        t        «      | j                   «      ƒ d {  –—†7  D ]  }|­–— Œ	 Y y w xY w­w)Nz…StreamingHttpResponse must consume synchronous iterators in order to serve them asynchronously. Use an asynchronous iterator instead.r  r  )rú   r^   r  r  r  r   Úlist)r   r  s     r   Ú	__aiter__zStreamingHttpResponse.__aiter__  s‚   è ø€ ð	Ø"×4Ñ4÷ ð �dØ”
ðøÑ4øäò 
	Ü�M‰MðSäØõ	ð 2œm¬DÓ1°$×2HÑ2HÓI×IÐIò �Ø”
òð
	üsJ   ‚B „# �!”•!˜# Ÿ!¡# ¢B £AA=Á*A-Á+A=Á:B Á<A=Á=B c                 ó8   — dj                  | j                  «      S rÜ   )rr   rú   rd   s    r   rð   zStreamingHttpResponse.getvalue!  s   € Ø�x‰x˜×.Ñ.Ó/Ð/r!   )rF   )rI   rJ   rK   rÊ   rô   r    rØ   rË   r·   rå   rú   rÌ   r  rß   r  rð   rõ   rö   s   @r   rø   rø   º  s„   ø„ ñð €Iõ3ò
ð ñ
ó ð
ð ñ
ó ð
ð
 ñ8ó ð8ð ×Ññ+ó ð+ò	7òVò(ö 0r!   rø   c                   ó>   ‡ — e Zd ZdZdZdddœˆ fd„
Zˆ fd„Zd„ Zˆ xZS )	ÚFileResponsez>
    A streaming HTTP response class optimized for files.
    i   Frj   )Úas_attachmentÚfilenamec                ód   •— || _         || _        d|vxs |d   d u | _        t        ‰| �  |i |¤Ž y )Nr`   )r  r  Ú_no_explicit_content_typerÒ   r    )r   r  r  rÓ   r¡   rµ   s        €r   r    zFileResponse.__init__,  sE   ø€ Ø*ˆÔØ ˆŒà &Ð(ÒJ¨F°>Ñ,BÀdÐ,Jð 	Ô&ô 	‰Ñ˜$Ð) &Ó)r!   c                 ó"  •‡ ‡— t        |d«      sd ‰ _        t        ‰‰ �  |«      S |x‰ _        Št        ‰d«      r%‰ j                  j                  ‰j                  «       t        ˆˆ fd„d«      }‰ j                  ‰«       t        ‰‰ �  |«       y )NÚreadr°   c                  ó:   •— ‰ j                  ‰j                  «      S r9   )r   Ú
block_size©Úfileliker   s   €€r   ú<lambda>z5FileResponse._set_streaming_content.<locals>.<lambda><  s   ø€ ˜XŸ]™]¨4¯?©?Ó;€ r!   r!   )	ræ   Úfile_to_streamrÒ   r  rX   rì   r°   rê   Úset_headers)r   r   r$  rµ   s   ` @€r   r  z#FileResponse._set_streaming_content4  s|   ú€ Ü�u˜fÔ%Ø"&ˆDÔÜ‘7Ñ1°%Ó8Ð8à).Ð.ˆÔ˜hÜ�8˜WÔ%Ø×"Ñ"×)Ñ)¨(¯.©.Ô9ÜÔ;¸SÓAˆØ×Ñ˜Ô"Ü‰Ñ& uÕ-r!   c                 óö  ‡ ‡— t        ‰dd«      }t        |t        «      r|nd}t        ‰d«      xr t        ‰d«       xs ‰j	                  «       }t        ‰d«      �r|rc‰j                  «       }‰j                  dt        j                  «       ‰j                  «       |z
  ‰ j                  d<   ‰j                  |«       �nt        ‰d«      r9‰j                  «       j                  ‰j                  «       z
  ‰ j                  d<   n¼t        j                  j                  |«      r�t        j                  j                  |«      ‰j                  «       z
  ‰ j                  d<   n_|r]t!        t#        ˆˆ fd	„d«      «      ‰ j                  d<   ‰j                  t%        ‰ j                  d   «       t        j                  «       t        j                  j'                  ‰ j(                  xs |«      }‰ j*                  rU|rDt-        j.                  |«      \  }}d
dddddœj1                  ||«      }|xs d‰ j                  d<   nd‰ j                  d<   t3        ‰ j4                  |«      x}r|‰ j                  d<   yy)zœ
        Set some common response headers (Content-Length, Content-Type, and
        Content-Disposition) based on the `filelike` response content.
        Únamerj   ÚseekrÃ   r½   r   zContent-LengthÚ	getbufferc                  óL   •— t        ‰ j                  ‰j                  «      «      S r9   )rî   r   r"  r#  s   €€r   r%  z*FileResponse.set_headers.<locals>.<lambda>Z  s   ø€ œS §¡¨t¯©Ó!?Ó@€ r!   zapplication/x-brotlizapplication/x-bzipzapplication/x-compresszapplication/gzipzapplication/x-xz)ÚbrÚbzip2ÚcompressÚgzipÚxzzapplication/octet-streamrS   zContent-DispositionN)Úgetattrr*   r+   ræ   rÃ   r½   r*  ÚioÚSEEK_ENDrU   r+  ÚnbytesÚosr‡   ÚexistsÚgetsizeÚsumrê   r\   Úbasenamer  r  Ú	mimetypesÚ
guess_typerc   r   r  )r   r$  r  rÃ   Úinitial_positionr`   ÚencodingÚcontent_dispositions   ``      r   r'  zFileResponse.set_headers@  s+  ù€ ô
 ˜8 V¨RÓ0ˆÜ)¨(´CÔ8‘8¸bˆÜ˜8 VÓ,ò 
Ü˜ *Ó-Ð-ÒD°×1BÑ1BÓ1Dð 	ô �8˜VÕ$ÙØ#+§=¡=£?Ð Ø—‘˜a¤§¡Ô-Ø19·±³ÐCSÑ1S�—‘Ð-Ñ.Ø—‘Ð.Ö/Ü˜ ;Ô/à×&Ñ&Ó(×/Ñ/°(·-±-³/ÑAð —‘Ð-Ò.ô —‘—‘ Ô)ä—G‘G—O‘O HÓ-°·±³Ñ?ð —‘Ð-Ò.ñ Ü-0ÜÔ@À!ÓDó.ˆD�L‰LÐ)Ñ*ð �M‰Mœ3˜tŸ|™|Ð,<Ñ=Ó>Ð>ÄÇÁÔLä—7‘7×#Ñ# D§M¡MÒ$=°XÓ>ˆØ×)Ò)ÙÜ)2×)=Ñ)=¸hÓ)GÑ&�˜hð 1Ø1Ø 8Ø.Ø,ñ ÷ ‘#�h Ó-ð ð !Ò>Ð$>ð —‘˜^Ò,ð 0J�—‘˜^Ñ,ä"<Ø×Ñ ó#
ð 
Ðð 
ð 3FˆD�L‰LÐ.Ò/ð
r!   )	rI   rJ   rK   rÊ   r"  r    r  r'  rõ   rö   s   @r   r  r  %  s$   ø„ ñð €Jà,1¸Bö *ô
.ö4Fr!   r  c                   ó@   ‡ — e Zd Zg d¢Zdˆ fd„	Z ed„ «      Zd„ Zˆ xZS )ÚHttpResponseRedirectBase)ÚhttpÚhttpsÚftpc                 óV  •— t        ‰| �  |i |¤Ž t        |«      | d<   t        |«      }t	        |«      t
        kD  rt        dt
        › d�«      ‚t        |«      }|r| j                  | _	        |j                  r1|j                  | j                  vrt        d|j                  z  «      ‚y y )NÚLocationzUnsafe redirect exceeding z charactersz)Unsafe redirect to URL with protocol '%s')rÒ   r    r   r+   rî   r   r   r   Ústatus_code_preserve_requestr]   ÚschemeÚallowed_schemes)r   Úredirect_toÚpreserve_requestrÓ   r¡   Úredirect_to_strÚparsedrµ   s          €r   r    z!HttpResponseRedirectBase.__init__z  s­   ø€ Ü‰Ñ˜$Ð) &Ò)Ü% kÓ2ˆˆZÑÜ˜kÓ*ˆÜˆÓÔ"9Ò9Ü$Ø,Ô-DÐ,EÀ[ÐQóð ô ˜/Ó*ˆÙØ#×@Ñ@ˆDÔØ�=Š=˜VŸ]™]°$×2FÑ2FÑFÜ$Ø;¸f¿m¹mÑKóð ð Gˆ=r!   c                 ó   — | d   S )NrF  rF   rd   s    r   r%  z!HttpResponseRedirectBase.<lambda>Š  s   €   ZÑ 0€ r!   c                 óz   — d| j                   j                  | j                  | j                  | j                  dœz  S )NzD<%(cls)s status_code=%(status_code)d%(content_type)s, url="%(url)s">)rÖ   r]   r`   Úurl)rµ   rI   r]   rw   rP  rd   s    r   rØ   z!HttpResponseRedirectBase.__repr__Œ  s:   € àRà—~‘~×.Ñ.Ø#×/Ñ/Ø $× ;Ñ ;Ø—x‘xñ	ñð	
r!   rH   )	rI   rJ   rK   rI  r    rË   rP  rØ   rõ   rö   s   @r   rA  rA  w  s   ø„ Ú.€Oõñ  Ñ0Ó
1€Cö	
r!   rA  c                   ó   — e Zd ZdZdZy)ÚHttpResponseRedirecti.  i3  N©rI   rJ   rK   r]   rG  rF   r!   r   rR  rR  ˜  ó   „ Ø€KØ#&Ñ r!   rR  c                   ó   — e Zd ZdZdZy)ÚHttpResponsePermanentRedirecti-  i4  NrS  rF   r!   r   rV  rV  �  rT  r!   rV  c                   óZ   ‡ — e Zd ZdZˆ fd„Zej                  j                  d„ «       Zˆ xZS )ÚHttpResponseNotModifiedi0  c                 ó*   •— t        ‰| �  |i |¤Ž | d= y )Nzcontent-type)rÒ   r    )r   rÓ   r¡   rµ   s      €r   r    z HttpResponseNotModified.__init__¥  s   ø€ Ü‰Ñ˜$Ð) &Ò)Ø�Ñ r!   c                 ó,   — |rt        d«      ‚g | _        y )Nz7You cannot set content to a 304 (Not Modified) response)rþ   rÝ   rg   s     r   r·   zHttpResponseNotModified.content©  s   € áÜ ØIóð ð ˆ�r!   )	rI   rJ   rK   r]   r    rÐ   r·   rÌ   rõ   rö   s   @r   rX  rX  ¢  s-   ø„ Ø€Kô!ð ×Ñ× Ñ ñó !ôr!   rX  c                   ó   — e Zd ZdZy)ÚHttpResponseBadRequesti�  N©rI   rJ   rK   r]   rF   r!   r   r\  r\  ²  ó   „ Ø�Kr!   r\  c                   ó   — e Zd ZdZy)ÚHttpResponseNotFoundi”  Nr]  rF   r!   r   r`  r`  ¶  r^  r!   r`  c                   ó   — e Zd ZdZy)ÚHttpResponseForbiddeni“  Nr]  rF   r!   r   rb  rb  º  r^  r!   rb  c                   ó(   ‡ — e Zd ZdZˆ fd„Zd„ Zˆ xZS )ÚHttpResponseNotAllowedi•  c                 óL   •— t        ‰| �  |i |¤Ž dj                  |«      | d<   y )Nz, ÚAllow)rÒ   r    rr   )r   Úpermitted_methodsrÓ   r¡   rµ   s       €r   r    zHttpResponseNotAllowed.__init__Á  s(   ø€ Ü‰Ñ˜$Ð) &Ò)ØŸ	™	Ð"3Ó4ˆˆWŠr!   c                 ól   — d| j                   j                  | j                  | j                  | d   dœz  S )NzC<%(cls)s [%(methods)s] status_code=%(status_code)d%(content_type)s>rf  )rÖ   r]   r`   Úmethodsr×   rd   s    r   rØ   zHttpResponseNotAllowed.__repr__Å  s;   € ØTØ—>‘>×*Ñ*Ø×+Ñ+Ø ×7Ñ7Ø˜G‘}ñ	X
ñ 
ð 	
r!   )rI   rJ   rK   r]   r    rØ   rõ   rö   s   @r   rd  rd  ¾  s   ø„ Ø€Kô5ö
r!   rd  c                   ó   — e Zd ZdZy)ÚHttpResponseGoneiš  Nr]  rF   r!   r   rk  rk  Î  r^  r!   rk  c                   ó   — e Zd ZdZy)ÚHttpResponseServerErroriô  Nr]  rF   r!   r   rm  rm  Ò  r^  r!   rm  c                   ó   — e Zd Zy)ÚHttp404NrM   rF   r!   r   ro  ro  Ö  rN   r!   ro  c                   ó*   ‡ — e Zd ZdZeddfˆ fd„	Zˆ xZS )ÚJsonResponseaH  
    An HTTP response class that consumes data to be serialized to JSON.

    :param data: Data to be dumped into json. By default only ``dict`` objects
      are allowed to be passed due to a security flaw before ECMAScript 5. See
      the ``safe`` parameter for more information.
    :param encoder: Should be a json encoder class. Defaults to
      ``django.core.serializers.json.DjangoJSONEncoder``.
    :param safe: Controls if only ``dict`` objects may be serialized. Defaults
      to ``True``.
    :param json_dumps_params: A dictionary of kwargs passed to json.dumps().
    TNc                 ó¾   •— |rt        |t        «      st        d«      ‚|€i }|j                  dd«       t	        j
                  |fd|i|¤Ž}t        ‰| �  dd|i|¤Ž y )NzTIn order to allow non-dict objects to be serialized set the safe parameter to False.r`   zapplication/jsonrÖ   r·   rF   )r*   Údictr^   rG   ÚjsonÚdumpsrÒ   r    )r   r   ÚencoderÚsafeÚjson_dumps_paramsr¡   rµ   s         €r   r    zJsonResponse.__init__è  sp   ø€ ñ œ
 4¬Ô.Üð+óð ð Ð$Ø "ÐØ×Ñ˜.Ð*<Ô=Ü�z‰z˜$ÑA GÐAÐ/@ÑAˆÜ‰ÑÑ0 Ð0¨Ó0r!   )rI   rJ   rK   rÊ   r   r    rõ   rö   s   @r   rq  rq  Ú  s   ø„ ñð  "ØØ÷1ñ 1r!   rq  )Ar�   r3  rt  r;  r6  Úrer1   r˜   r  Úemail.headerr   Úhttp.clientr   Úurllib.parser   Úasgiref.syncr   r   Údjango.confr   Údjango.corer	   r
   Údjango.core.exceptionsr   Údjango.core.serializers.jsonr   Údjango.http.cookier   Údjango.utilsr   Údjango.utils.datastructuresr   Údjango.utils.encodingr   Údjango.utils.functionalr   Údjango.utils.httpr   r   r   Údjango.utils.regex_helperr   ÚIrk   r   rW   r/   rP   rÐ   rø   r  rA  rR  rV  rX  r\  r`  rb  rd  rk  rm  r«   ro  rq  rF   r!   r   ú<module>rŠ     sX  ðÛ Û 	Û Û Û 	Û 	Û 
Û Û Ý Ý !Ý !ç 5å  ß (Ý 5Ý :Ý +Ý !Ý >Ý ,Ý 3÷ñ õ
 7á 0Ø'¨¯©ó!Ð ô
?Ð,ô ?ôD	�Zô 	÷CTñ CTôLFÐ#ô FôRh0Ð,ô h0ôVOFÐ(ô OFôd
˜|ô 
ôB'Ð3ô 'ô
'Ð$<ô 'ô
˜lô ô ˜\ô ô˜<ô ô˜Lô ô
˜\ô 
ô �|ô ô˜lô ô	ˆiô 	ô1�<õ 1r!   