+
    @iT                    D   ^ RI Ht ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
HtHtHtHtHt ^ RIHt ^ RIHtHt ^ RIHt ^ RIHt ^ RIHt ^ R	IHtHt ^ R
IHt ^ RIt^ RI t^ RI!H"t" ^ RI#H$t$ ^ RI%H&t& ^ RI'H(t(H)t)H*t* ^ RI+H,t, ^ RI-H.t.H/t/H0t0H1t1  ! R R4      t2 ! R R]24      t3 ! R R]24      t4 ! R R]24      t5 ! R R]24      t6]7]8,          ]9,          t:]]:,          t;]
]:,          t<]<];,          t= ! R R]24      t> ! R R]?4      t@ ! R R ]?4      tA ! R! R"]24      tBR# )#    )annotationsN)AsyncIterable	AwaitableCallableIterableMappingSequence)datetime)format_datetime
formatdate)partial)
guess_type)	token_hex)AnyLiteral)quote)collapse_excgroups)BackgroundTask)iterate_in_threadpool)URLHeadersMutableHeaders)ClientDisconnect)MessageReceiveScopeSendc                      ] tR t^tRtRtRR R lltR R ltRR R llt]	R	 R
 l4       t
RR R lltRR R lltR R ltR R ltRtR# )ResponseNutf-8c               0    V ^8  d   QhRRRRRRRRR	R
RR/#    contentr   status_codeintheadersMapping[str, str] | None
media_type
str | None
backgroundBackgroundTask | NonereturnNone )formats   "Q/var/www/html/photoedit/myenv/lib/python3.14/site-packages/starlette/responses.py__annotate__Response.__annotate__!   sF     # ## # *	#
 # *# 
#    c                	    W n         Ve   W@n        WPn        V P                  V4      V n        V P                  V4       R # N)r%   r)   r+   renderbodyinit_headersselfr$   r%   r'   r)   r+   s   &&&&&&r1   __init__Response.__init__!   s8     '!(O$KK(	'"r4   c                    V ^8  d   QhRRRR/# )r#   r$   r   r-   zbytes | memoryviewr/   )r0   s   "r1   r2   r3   0   s     , ,c ,&8 ,r4   c                	    Vf   R# \        V\        \        ,          4      '       d   V# VP                  V P                  4      # )Nr4   )
isinstancebytes
memoryviewencodecharsetr;   r$   s   &&r1   r7   Response.render0   s4    ?guz122N~~dll++r4   c                    V ^8  d   QhRRRR/# )r#   r'   r(   r-   r.   r/   )r0   s   "r1   r2   r3   7   s     ' '$< ' 'r4   c                	   Vf   . pRpRpMrVP                  4        UUu. uF5  w  rVVP                  4       P                  R4      VP                  R4      3NK7  	  pppV Uu. uF  qw^ ,          NK  	  ppRV9  pRV9  p\        V RR 4      p	V	ea   V'       dY   V P                  ^8  gH   V P                  R	9   g7   \        \        V	4      4      p
VP                  RV
P                  R4      34       V P                  pVeq   V'       di   VP                  R4      '       d0   RVP                  4       9  d   VRV P                  ,           ,          pVP                  RVP                  R4      34       W n        R # u uppi u upi )
NTlatin-1s   content-lengths   content-typer8   ztext/zcharset=z
; charset=)   i0  )itemslowerrC   getattrr%   strlenappendr)   
startswithrD   raw_headers)r;   r'   rR   populate_content_lengthpopulate_content_typekvhkeysr8   content_lengthcontent_types   &&          r1   r9   Response.init_headers7   sY   ?57K&*#$(!ZaZgZgZijZiRVRSAGGI,,Y7)9LMZiKj"-.+QaDD+D.&7t&C#$34$?!tVT*'%%+t/?/?:/M T^N 1>3H3H3STU#(=&&w//JlFXFXFZ4Zt|| ;;1D1DY1OPQ&) k.s   ;E7!E=c                   V ^8  d   QhRR/# )r#   r-   r   r/   )r0   s   "r1   r2   r3   T   s       r4   c                	t    \        V R 4      '       g   \        V P                  R7      V n        V P                  # )_headersraw)hasattrr   rR   r^   )r;   s   &r1   r'   Response.headersS   s+    tZ((*t/?/?@DM}}r4   c               D    V ^8  d   QhRRRRRRRRRR	R
R	RRRRRRRRRR/# )r#   keyrN   valuemax_agez
int | Noneexpireszdatetime | str | int | Nonepathr*   domainsecureboolhttponlysamesite'Literal['lax', 'strict', 'none'] | Nonepartitionedr-   r.   r/   )r0   s   "r1   r2   r3   Y   s     +O +O+O +O 	+O
 -+O +O +O +O +O :+O +O 
+Or4   c                	   \         P                  P                  4       pW+V&   Ve   W;V,          R&   Ve9   \        V\        4      '       d   \        VRR7      W,          R&   MWKV,          R&   Ve   W[V,          R&   Ve   WkV,          R&   V'       d   RW,          R&   V'       d   RW,          R&   V	e(   V	P                  4       R9   g   Q R	4       hWV,          R
&   V
'       d,   \        P                  R8  d   \        R4      hRW,          R&   VP                  RR7      P                  4       pV P                  P                  RVP                  R4      34       R # )Nzmax-ageTusegmtrg   rh   ri   rj   rl   z1samesite must be either 'strict', 'lax' or 'none'rm   z@Partitioned cookies are only supported in Python 3.14 and above.ro    )headers
   set-cookierI   )strictlaxnone)      )httpcookiesSimpleCookier@   r
   r   rL   sysversion_info
ValueErroroutputstriprR   rP   rC   )r;   rd   re   rf   rg   rh   ri   rj   rl   rm   ro   cookie
cookie_vals   &&&&&&&&&&&  r1   
set_cookieResponse.set_cookieY   sH    04||/H/H/Js%,3K	"'8,,)8)NI&)0sI&"&3K$*3K!$(FK!&*FK
#>># (  C C	C 
 '/3K
#') !cdd)-FK&]]"]-335

0A0A)0L MNr4   c               4    V ^8  d   QhRRRRRRRRRRR	R
RR/# )r#   rd   rN   rh   ri   r*   rj   rk   rl   rm   rn   r-   r.   r/   )r0   s   "r1   r2   r3      sP     
 

 
 	

 
 
 :
 

r4   c                	8    V P                  V^ ^ VVVVVR7       R# )r   )rf   rg   rh   ri   rj   rl   rm   N)r   )r;   rd   rh   ri   rj   rl   rm   s   &&&&&&&r1   delete_cookieResponse.delete_cookie   s-     	 	 		
r4   c                    V ^8  d   QhRRRR/# )r#   sendr   r-   r/   )r0   s   "r1   r2   r3      s        r4   c                	   a R  V3R llpV# )c                    V ^8  d   QhRRRR/# )r#   messager   r-   r.   r/   )r0   s   "r1   r2   :Response._wrap_websocket_denial_send.<locals>.__annotate__   s     	  	 7 	 t 	 r4   c                r   <"   V R ,          pVR9   d   / V CR RV,           /Cp S! V 4      G Rj  xL
  R#  L5i)typez
websocket.N>   http.response.bodyhttp.response.startr/   )r   message_typer   s   & r1   wrapped5Response._wrap_websocket_denial_send.<locals>.wrapped   s;     "6?LLLJWJfl\.IJw-s   +757r/   )r;   r   r   s   &f r1   _wrap_websocket_denial_send$Response._wrap_websocket_denial_send   s    	  	  r4   c               (    V ^8  d   QhRRRRRRRR/# 	r#   scoper   receiver   r   r   r-   r.   r/   )r0   s   "r1   r2   r3      s(     $ $E $G $4 $D $r4   c                	8  "   VR ,          R8X  d   V P                  V4      pV! R RRV P                  RV P                  /4      G Rj  xL
  V! R RRV P                  /4      G Rj  xL
  V P                  e   V P	                  4       G Rj  xL
  R# R#  LL L0 L5i)r   	websocketr   statusr'   Nr   r8   )r   r%   rR   r8   r+   )r;   r   r   r   s   &&&&r1   __call__Response.__call__   s     =K'33D9DF18T=M=MyZ^ZjZjklllF0&$))DEEE??&//### ' 	mE $s6   ABBB%B&%BB	BBB)r^   r+   r8   r)   rR   r%   )N   NNNr6   )	rs   NN/NFFrv   F)r   NFFrv   )__name__
__module____qualname____firstlineno__r)   rD   r<   r7   r9   propertyr'   r   r   r   r   __static_attributes__r/   r4   r1   r   r      sJ    JG#,'8  
+OZ
($ $r4   r   c                      ] tR t^tRtRtR# )HTMLResponsez	text/htmlr/   Nr   r   r   r   r)   r   r/   r4   r1   r   r      s    Jr4   r   c                      ] tR t^tRtRtR# )PlainTextResponse
text/plainr/   Nr   r/   r4   r1   r   r      s    Jr4   r   c                  B   a  ] tR t^tRtRR V 3R llltR R ltRtV ;t# )JSONResponsezapplication/jsonc               0    V ^8  d   QhRRRRRRRRR	R
RR/# r"   r/   )r0   s   "r1   r2   JSONResponse.__annotate__   sN     P PP P *	P
 P *P 
Pr4   c                	*   < \         SV `  WW4V4       R # r6   )superr<   )r;   r$   r%   r'   r)   r+   	__class__s   &&&&&&r1   r<   JSONResponse.__init__   s     	wJOr4   c                    V ^8  d   QhRRRR/# )r#   r$   r   r-   rA   r/   )r0   s   "r1   r2   r      s      c e r4   c                	V    \         P                  ! VR R RRR7      P                  R4      # )FN)ensure_ascii	allow_nanindent
separatorsr    ),:)jsondumpsrC   rE   s   &&r1   r7   JSONResponse.render   s-    zz!
 &/	r4   r/   r   NNN)	r   r   r   r   r)   r<   r7   r   __classcell__r   s   @r1   r   r      s    #JP P r4   r   c                  2   a  ] tR t^tRR V 3R llltRtV ;t# )RedirectResponsec          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r#   urlz	str | URLr%   r&   r'   r(   r+   r,   r-   r.   r/   )r0   s   "r1   r2   RedirectResponse.__annotate__   sC     O OO O *	O
 *O 
Or4   c                	r   < \         SV `  R W#VR7       \        \        V4      RR7      V P                  R&   R# )r4   )r$   r%   r'   r+   z:/%#?=@[]!$&'()*+,;)safelocationN)r   r<   r   rN   r'   )r;   r   r%   r'   r+   r   s   &&&&&r1   r<   RedirectResponse.__init__   s4     	+[ef#(S8M#NZ r4   r/   )i3  NN)r   r   r   r   r<   r   r   r   s   @r1   r   r      s    O O Or4   r   c                  V    ] tR t^t$ R]R&   RR R lltR R ltR R	 ltR
 R ltRt	R# )StreamingResponseAsyncContentStreambody_iteratorNc               0    V ^8  d   QhRRRRRRRRR	R
RR/# )r#   r$   ContentStreamr%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   )r0   s   "r1   r2   StreamingResponse.__annotate__   sF     # ## # *	#
 # *# 
#r4   c                	    \        V\        4      '       d   Wn        M\        V4      V n        W n        Vf   V P
                  MTV n        WPn        V P                  V4       R # r6   )r@   r   r   r   r%   r)   r+   r9   r:   s   &&&&&&r1   r<   StreamingResponse.__init__   sO     g}--!(!6w!?D&-7-?$//Z$'"r4   c                    V ^8  d   QhRRRR/# )r#   r   r   r-   r.   r/   )r0   s   "r1   r2   r      s      7 t r4   c                	R   "    V! 4       G Rj  xL
 pVR,          R8X  g   K   R#  L5i)TNr   zhttp.disconnectr/   )r;   r   r   s   && r1   listen_for_disconnect'StreamingResponse.listen_for_disconnect   s&     #IoGv"33 &s   '%''c                    V ^8  d   QhRRRR/# )r#   r   r   r-   r.   r/   )r0   s   "r1   r2   r      s     T T$ T4 Tr4   c           	     	r  "   V! R RRV P                   RV P                  /4      G Rj  xL
  V P                    Rj  xL
  p\        V\        \
        ,          4      '       g   VP                  V P                  4      pV! R RRVRR/4      G Rj  xL
  K^   Ln L[ L
D^T! R RRR	RR
/4      G Rj  xL 
  R# 5i)r   r   r   r'   Nr   r8   	more_bodyTr4   F)r%   rR   r   r@   rA   rB   rC   rD   )r;   r   chunks   && r1   stream_response!StreamingResponse.stream_response   s     F18T=M=MyZ^ZjZjklll-- 	Y 	Y%eUZ%788T\\2 4fe[RVWXXX	 	m	Y Y .
 F0&#{ERSSSsO   &B7BB7BBBAB7BB7BB7B7/B20B7c               (    V ^8  d   QhRRRRRRRR/# r   r/   )r0   s   "r1   r2   r     s(     $ $E $G $4 $D $r4   c                	  a"   VR ,          R8X  dS   V P                  V4      pV P                  V4      G Rj  xL
  V P                  e   V P                  4       G Rj  xL
  R# \        \	        \
        VP                  R/ 4      P                  RR4      P                  R4      4      4      pVR	8  d    V P                  V4      G Rj  xL
  M\        4       ;_uu_ 4        \        P                  ! 4       ;_uu_4       GRj  xL
 oR V3R llpSP                  V\        V P                  V4      4       V! \        V P                  V4      4      G Rj  xL
  RRR4      GRj  xL
  RRR4       V P                  e   V P                  4       G Rj  xL
  R# R#  ELe ELB L  \         d    \        4       hi ; i L Li L[  + GRj  xL 
 '       g   i     Lr; i  + '       g   i     L}; i L^5i)
r   r   Nasgispec_versionz2.0.c                    V ^8  d   QhRRRR/# )r#   funczCallable[[], Awaitable[None]]r-   r.   r/   )r0   s   "r1   r2   0StreamingResponse.__call__.<locals>.__annotate__  s     9 9)F 94 9r4   c                f   <"   V ! 4       G R j  xL
  SP                   P                  4        R #  L 5ir6   )cancel_scopecancel)r   
task_groups   &r1   wrap(StreamingResponse.__call__.<locals>.wrap  s&     "f"//668 %s   1/!1)r#      )r   r   r+   tuplemapr&   getsplitOSErrorr   r   anyiocreate_task_group
start_soonr   r   )r;   r   r   r   r   r   r   s   &&&&  @r1   r   StreamingResponse.__call__  s    =K'33D9D&&t,,,*oo'''Seii&;&?&?PU&V&\&\]`&abc6!)**4000 $%% 22444
9 9 ))$8L8Ld0STwt'A'A7KLLL 54 & ??&//### '/ -' 1 )&(() 5 M 5444 &% $s   4G4F%G4FAG44F$ F"	F$ G4 "GF=GAG	F?G	G%G&G*)G4G2	G4G4"F$ $F::G4=G?G	GG	G

GGGG/	*	G4)r+   r   r)   r%   r   )
r   r   r   r   __annotations__r<   r   r   r   r   r/   r4   r1   r   r      s"    %%#"T$ $r4   r   c                  &    ] tR tRtRR R lltRtR# )MalformedRangeHeaderi  c                    V ^8  d   QhRRRR/# )r#   r$   rN   r-   r.   r/   )r0   s   "r1   r2   !MalformedRangeHeader.__annotate__   s       D r4   c                	    Wn         R # r6   r$   rE   s   &&r1   r<   MalformedRangeHeader.__init__   s    r4   r   N)zMalformed range header.r   r   r   r   r<   r   r/   r4   r1   r   r     s     r4   r   c                  "    ] tR tRtR R ltRtR# )RangeNotSatisfiablei$  c                    V ^8  d   QhRRRR/# )r#   max_sizer&   r-   r.   r/   )r0   s   "r1   r2    RangeNotSatisfiable.__annotate__%  s     ! ! ! !r4   c                	    Wn         R # r6   r  )r;   r  s   &&r1   r<   RangeNotSatisfiable.__init__%  s     r4   r	  Nr  r/   r4   r1   r  r  $  s    ! !r4   r  c                      ] tR tRtRtRR R lltR R ltR R ltR	 R
 ltR R lt	R R lt
R R lt]R R l4       t]R R l4       tR R ltRtR# )FileResponsei)  Nc               <    V ^8  d   QhRRRRRRRRR	R
RRRRRRRR/	# )r#   rh   zstr | os.PathLike[str]r%   r&   r'   r(   r)   r*   r+   r,   filenamestat_resultzos.stat_result | Nonecontent_disposition_typerN   r-   r.   r/   )r0   s   "r1   r2   FileResponse.__annotate__,  sd     / /$/ / *	/
 / */ / +/ #&/ 
/r4   c	                	   Wn         W n        W`n        Vf'   \        T;'       g    T4      ^ ,          ;'       g    RpW@n        WPn        V P                  V4       V P                  P                  RR4       V P                  e\   \        V P                  4      p	WP                  8w  d	   V RV	 2p
MV RV P                   R2p
V P                  P                  RV
4       Wpn
        Ve   V P                  V4       R # R # )Nr   zaccept-rangesrA   z; filename*=utf-8''z; filename=""zcontent-disposition)rh   r%   r  r   r)   r+   r9   r'   
setdefaultr   r  set_stat_headers)r;   rh   r%   r'   r)   r+   r  r  r  content_disposition_filenamecontent_dispositions   &&&&&&&&&  r1   r<   FileResponse.__init__,  s     	& #H$4$45a8HHLJ$$'"9==$+0+?(+}}<)A(BBUVrUs&t#)A(B,t}}o]^&_#LL##$9;NO&"!!+. #r4   c                    V ^8  d   QhRRRR/# )r#   r  zos.stat_resultr-   r.   r/   )r0   s   "r1   r2   r  K  s     . .N .t .r4   c                	   \        VP                  4      p\        VP                  R R7      p\        VP                  4      R,           \        VP                  4      ,           pR\        P
                  ! VP                  4       RR7      P                  4        R2pV P                  P                  RV4       V P                  P                  RV4       V P                  P                  RV4       R	# )
Trq   -r  F)usedforsecuritycontent-lengthlast-modifiedetagN)
rN   st_sizer   st_mtimehashlibmd5rC   	hexdigestr'   r  )r;   r  rY   last_modified	etag_baser  s   &&    r1   r  FileResponse.set_stat_headersK  s    [001";#7#7E,,-3c+:M:M6NN	7;;y//15ISSUVVWX 0.A?-r4   c               (    V ^8  d   QhRRRRRRRR/# r   r/   )r0   s   "r1   r2   r  U  s(     *$ *$E *$G *$4 *$D *$r4   c                	  "   VR ,          pVR8H  ;'       d    VR,          P                  4       R8H  pVR8H  ;'       d    RVP                  R/ 4      9   pVR8X  d   V P                  V4      pV P                  f    \        P
                  P                  \        P                  V P                  4      G Rj  xL
 pV P                  V4       VP                  p\        P                  ! V4      '       g   \        RV P                   R	24      hMV P                  p\        VR7      p	V	P                  R4      p
V	P                  R4      pV
e   Ve3   V P!                  V4      '       g   V P#                  W5V4      G Rj  xL
  M V P%                  WP&                  4      p\3        T4      ^8X  d4   T^ ,          w  ppT P5                  Y?TTP&                  T4      G Rj  xL
  M%T P7                  Y<TP&                  T4      G Rj  xL
  V P8                  e   V P9                  4       G Rj  xL
  R# R#  ELz  \         d    \        RT P                   R
24      hi ; i L  \(         d2   p\+        TP,                  RR7      ! YT4      G Rj  xL 
 u Rp?# Rp?i\.         d9   p\+        RRRTP0                   2/R7      pT! YT4      G Rj  xL 
 u Rp?# Rp?ii ; i EL L L5i)r   rz   methodHEADhttp.response.pathsend
extensionsr   NzFile at path z is not a file.z does not exist.)r   rangezif-rangei  )r%   i  zContent-Rangezbytes */)r%   r'   )upperr   r   r  r   	to_threadrun_syncosstatrh   r  st_modeS_ISREGRuntimeErrorFileNotFoundErrorr   _should_use_range_handle_simple_parse_range_headerr   r   r   r$   r  r  rO   _handle_single_range_handle_multiple_rangesr+   )r;   r   r   r   
scope_typesend_header_onlysend_pathsendr  moder'   
http_rangehttp_if_rangerangesexcresponsestartends   &&&&             r1   r   FileResponse.__call__U  s    6]
%/UUE(O4I4I4Kv4U"f,hh1IUYYWcegMh1h$33D9D#S$)OO$<$<RWWdii$PP%%k2 #**||D))&tyyk'QRR * **K&[[)
J/-";DDZDZ[hDiDi%%dmLLL<11*>Q>QR 6{a#AY
s//S+BUBUWghhh224ATATVfggg??&//### 'A Q$ P"]499+=M#NOOP M ( c.s{{LU]abbbb& <,ZbcfcocobpXqFrs%ed;;;;< ig $s   <K%<K%<;H4 7H18H4 BK%(K%=I>K%I =K%K%K%K!%K%(K#)K%1H4 4%IK%K)!J
JJKK%K"K#(KKKKK%KK%!K%#K%c               (    V ^8  d   QhRRRRRRRR/# )r#   r   r   r>  rk   r?  r-   r.   r/   )r0   s   "r1   r2   r    s0     f f f fVZ f_c fr4   c           
     	  "   V! R RRV P                   RV P                  /4      G Rj  xL
  V'       d   V! R RRRRR	/4      G Rj  xL
  R# V'       d*   V! R R
R\        V P                  4      /4      G Rj  xL
  R# \        P
                  ! V P                  RR7      G Rj  xL
 ;_uu_4       GRj  xL
 pRpV'       dT   VP                  V P                  4      G Rj  xL
 p\        V4      V P                  8H  pV! R RRVRV/4      G Rj  xL
  K[  RRR4      GRj  xL
  R#  L L L L L{ LP L$ L  + GRj  xL 
 '       g   i     R# ; i5i)r   r   r   r'   Nr   r8   r4   r   Fr,  rh   rbr@  T)	r%   rR   rN   rh   r   	open_fileread
chunk_sizerO   )r;   r   r>  r?  filer   r   s   &&&&   r1   r9  FileResponse._handle_simple  s    F18T=M=MyZ^ZjZjklll 4fc;PUVWWW 8&#dii.QRRR"__TYYTBBBBBd 	"&))DOO"<<E #E
doo =I(<fe[Zcdeee CBB 	mWRB =e CBBBs   &ED(EED*E"E7D,8+E#D.$E4D05E8
D8D8!D2"-D8D4D8E!D6"E*E,E.E0E2D84D86E8E	>E?
E	
E		Ec               0    V ^8  d   QhRRRRRRRRRRR	R
/# )r#   r   r   rF  r&   rG  	file_sizer>  rk   r-   r.   r/   )r0   s   "r1   r2   r    sD     f ff!$f+.f;>fRVf	fr4   c           
     	X  "   \        \        V P                  4      R 7      pRV RV^,
           RV 2VR&   \        W2,
          4      VR&   V! RRR^R	VP                  /4      G R
j  xL
  V'       d   V! RRRRRR/4      G R
j  xL
  R
# \
        P                  ! V P                  RR7      G R
j  xL
 ;_uu_4       GR
j  xL
 pVP                  V4      G R
j  xL
  RpV'       d   VP                  \        V P                  W2,
          4      4      G R
j  xL
 p	V\        V	4      ,          p\        V	4      V P                  8H  ;'       d    W#8  pV! RRRV	RV/4      G R
j  xL
  K  R
R
R
4      GR
j  xL
  R
#  EL L L L L Lo L% L  + GR
j  xL 
 '       g   i     R
# ; i5i)r_   zbytes r  r   zcontent-ranger  r   r   r   r'   Nr   r8   r4   r   FrK  rL  T)r   listrR   rN   r`   r   rM  rh   seekrN  minrO  rO   )
r;   r   rF  rG  rS  r>  r'   rP  r   r   s
   &&&&&&    r1   r;  !FileResponse._handle_single_range  sd     !T$*:*:%;<%+E7!C!G9Ai[#I $'$4 !F18S)W[[YZZZ 4fc;PUVWWW"__TYYTBBBBBdii&&& 	"&))C,M"NNESZ'E #E
doo = M M%+I(<fe[Zcdeee CBB	 	[WB& O f CBBBs   A$F*&E<'F*3F*E?+F*0F1F*FF*FFF).FF4FF#F	$F*F*5F6F*?F*F*F*FF	FF*F'	F
F'	F'	!	F*c          
     ,    V ^8  d   QhRRRRRRRRR	R
/# )r#   r   r   rC  list[tuple[int, int]]rS  r&   r>  rk   r-   r.   r/   )r0   s   "r1   r2   r    s<     " "" &" 	"
 " 
"r4   c                	   "   \        ^4      pV P                  W%W0P                  R,          4      w  rg\        \	        V P
                  4      R7      pRV 2VR&   \        V4      VR&   V! RRR^RVP                  /4      G R	j  xL
  V'       d   V! RR
RRRR/4      G R	j  xL
  R	# \        P                  ! V P                  RR7      G R	j  xL
 ;_uu_4       GR	j  xL
 p	V F  w  rV! RR
RV! W4      RR/4      G R	j  xL
  V	P                  V
4      G R	j  xL
  W8  d^   V	P                  \        V P                  W,
          4      4      G R	j  xL
 pV
\        V4      ,          p
V! RR
RVRR/4      G R	j  xL
  Kc  V! RR
RRRR/4      G R	j  xL
  K  	  V! RR
RRV R2P!                  R4      RR/4      G R	j  xL
  R	R	R	4      GR	j  xL
  R	#  ELT EL9 EL EL L L L Lm LW L, L  + GR	j  xL 
 '       g   i     R	# ; i5i)   zcontent-typer_   zmultipart/byteranges; boundary=r  r   r   r   r'   Nr   r8   r4   r   FrK  rL  Ts   
--rI   )r   generate_multipartr'   r   rU  rR   rN   r`   r   rM  rh   rV  rN  rW  rO  rO   rC   )r;   r   rC  rS  r>  boundaryrY   header_generatorr'   rP  rF  rG  r   s   &&&&&        r1   r<  $FileResponse._handle_multiple_ranges  s     R=+/+B+Bin)E,
( !T$*:*:%;<$CH:"N$'$7 !F18S)W[[YZZZ 4fc;PUVWWW"__TYYTBBBBBd"(JE(<fFVW\Fbdoquvwww))E***+&*iiDOOS[0Q&R RU+"F,@&%Q\^b#cddd(<fg{\`abbb #)  4"XJb 1 8 8 C#U   CBB	 	[WBw* Rdb CBBBs   BHGHH!G"+HGHG H"G1G#
G1G%
8G1G'
'G1;G)
<G1G+
,G1 G-G1HG/HHH H#G1%G1'G1)G1+G1-G1/H1H	7G:8
H	H		Hc                    V ^8  d   QhRRRR/# )r#   rB  rN   r-   rk   r/   )r0   s   "r1   r2   r    s     g gs gt gr4   c                	f    WP                   R ,          8H  ;'       g    WP                   R,          8H  # )r  r  )r'   )r;   rB  s   &&r1   r8  FileResponse._should_use_range  s+    _ ==ffR^R^_eRfAffr4   c               $    V ^8  d   QhRRRRRR/# )r#   rA  rN   rS  r&   r-   rZ  r/   )r0   s   "r1   r2   r    s"     $ $S $S $EZ $r4   c                	(  a . p VP                  R ^4      w  rETP                  4       P	                  4       pTR8w  d   \        R4      hT P                  TS4      p\        T4      ^ 8X  d   \        R4      h\        ;QJ d    T3R lT 4       F  '       g   K   RM	  RM! T3R lT 4       4      '       d   \        S4      h\        ;QJ d    R T 4       F  '       g   K   RM	  RM! R T 4       4      '       d   \        R4      h\        T4      ^8X  d   T# TP                  4        T^ ,          .pTR	,           F:  w  rxTR
,          w  rYz8:  d   T	\        Y4      3TR
&   K(  TP                  Yx34       K<  	  T#   \         d    \        4       hi ; i)=rA   zOnly support bytes rangez%Range header: range must be requestedc              3  ^   <"   T F"  w  r^ Tu;8*  ;'       d    S8  Mu '       * x  K$  	  R# 5i)r   Nr/   ).0rF  _rS  s   &  r1   	<genexpr>3FileResponse._parse_range_header.<locals>.<genexpr>  s&     CFA***++Fs   *-TFc              3  .   "   T F  w  rW8  x  K  	  R # 5ir6   r/   )ri  rF  rG  s   &  r1   rk  rl    s     4Vzuu{Vs   z)Range header: start must be less than end:   NN)r   r   r   r   rL   _parse_rangesrO   anyr  sortmaxrP   )clsrA  rS  rC  unitsrange_resultrF  rG  
last_startlast_ends   &&f        r1   r:   FileResponse._parse_range_header  s\   (*	)&,,S!4ME ##%G&'ABB""695v;!&'NOO3CFC333CFCCC%i0034V43334V444&'RSSv;!M 	)/ **JE#)": J (#h*<=r
ul+ % A  	)&((	)s   E; ;Fc               $    V ^8  d   QhRRRRRR/# )r#   rv  rN   rS  r&   r-   rZ  r/   )r0   s   "r1   r2   r    s"      3 3 ;P r4   c                	   . pVP                  R 4       F  pVP                  4       pV'       d   VR8X  d   K$  RV9  d   K-  VP                  R^4      w  rVVP                  4       pVP                  4       p V'       d   \        V4      MV\        V4      ,
          pV'       d+   V'       d#   \        V4      V8  d   \        V4      ^,           MTpVP                  Wx34       K  	  V#   \         d     K  i ; i)r   r  )r   r   r&   rP   r   )	rt  rv  rS  rC  part	start_strend_strrF  rG  s	   &&&      r1   rp  FileResponse._parse_ranges  s    (*LL%D::<D 43; $!%C!3I!)ImmoG*3IS\9Q*3CLS\D\c'lQ&bkul+% &. 	  s   6,C'#C'+6C''C65C6c          
     ,    V ^8  d   QhRRRRRRRRRR	/# )
r#   rC  zSequence[tuple[int, int]]r_  rN   r  r&   rZ   r-   z'tuple[int, Callable[[int, int], bytes]]r/   )r0   s   "r1   r2   r    s<     +
 +
)+
 +
 	+

 +
 
1+
r4   c                   aaaa \        S4      p^1V,           \        S4      ,           \        \        S4      4      ,           o\        V3R lV 4       4      ^V,           ,           pVVVV3R l3# )aW  
Multipart response headers generator.

```
--{boundary}\r\n
Content-Type: {content_type}\r\n
Content-Range: bytes {start}-{end-1}/{max_size}\r\n
\r\n
..........content...........\r\n
--{boundary}\r\n
Content-Type: {content_type}\r\n
Content-Range: bytes {start}-{end-1}/{max_size}\r\n
\r\n
..........content...........\r\n
--{boundary}--
```
c              3     <"   T FO  w  r\        \        V4      4      \        \        V^,
          4      4      ,           S,           W!,
          ,           x  KQ  	  R# 5i)rn  N)rO   rN   )ri  rF  rG  static_header_part_lens   &  r1   rk  2FileResponse.generate_multipart.<locals>.<genexpr>'  sK      
 %
 U_s3sQw<003II{ $s   AAc                T   < R S RS RV  RV^,
           RS R2P                  R4      # )r]  z
Content-Type: z
Content-Range: bytes r  r   z

rI   )rC   )rF  rG  r_  rZ   r  s   &&r1   <lambda>1FileResponse.generate_multipart.<locals>.<lambda>0  sL    * n WAcAgYaz 2 fY  r4   )rO   rN   sum)r;   rC  r_  r  rZ   boundary_lenrY   r  s   &&fff  @r1   r^  FileResponse.generate_multipart  sn    0 8}!#l!2S5F!FSQY]I[![ 
 %
 

 
  

 
	
r4   )r+   r  r)   rh   r  r%   i   )r   NNNNN
attachment)r   r   r   r   rO  r<   r  r   r9  r;  r<  r8  classmethodr:  rp  r^  r   r/   r4   r1   r  r  )  sb    J/>.*$Xff&"Hg $ $L  8+
 +
r4   r  )C
__future__r   r"  http.cookiesrz   r   r2  r3  r}   collections.abcr   r   r   r   r   r	   r
   email.utilsr   r   	functoolsr   	mimetypesr   secretsr   typingr   r   urllib.parser   r   anyio.to_threadstarlette._utilsr   starlette.backgroundr   starlette.concurrencyr   starlette.datastructuresr   r   r   starlette.requestsr   starlette.typesr   r   r   r   r   r   r   r   r   rN   rA   rB   ContentSyncContentStreamr   r   r   	Exceptionr   r  r  r/   r4   r1   <module>r     s    "    	  
 [ [  3         / / 7 A A / 9 9M$ M$`8  8 .	Ox 	O +

"W% "7+ "%66>$ >$B9 
!) !
O
8 O
r4   