
    (g                     H   % S SK Jr  S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	r	S SK
r
S SKJr  S SKrS SKJr  S SKJr  S SKJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJ r   S SK!J"r"J#r#J$r$J%r%J&r&   S SK'J(r)  S SK*J+r,   S SK.r. S SK/r/S SK0r0S S	K/J1r2  S S
K/J3r4   S SK5r5S SK5J6r7  S SK5J8r9   S SK:r:S SK:J;r<   \=\>S'   \:R~                  r@\A\>S'   \A\>S'   \A\>S'   \@R                  S5       V s/ s H  n \A" U 5      PM     sn u  rCrDrE\C\D\E4S:  a"  \R                  R                  S\@< S35        Sr: S SKIJJrJ  S SKKJLrLJMrM  S rNS\S\SS4S jrOS\S\SS4S jrP " S S\Q5      rR " S  S!\R5      rS " S" S#\R5      rT " S$ S%\$5      rU " S& S'\R5      rV " S( S)\R5      rW " S* S+\R5      rX " S, S-\R5      rY " S. S/\R5      rZg! \- a     GNCf = f! \- a    Sr. GNMf = f! \- a    Sr/Sr0 GNIf = f! \- a    Sr5 GNGf = fs  sn f ! \H a     Nf = f! \- a    Sr: Nf = f! \- a    SrJ Nf = f)0    )BytesION)HTTPResponse)_util)RequestMetrics)APIConnectionError)AnyDictIterableListMappingMutableMappingOptionalTupleClassVarUnioncastoverloadAsyncIterable)LiteralNoReturn	TypedDict	AwaitableNever)Timeout)Client)ClientTimeout)StreamReader)Sessionversionmajorminorpatch.)r      r$   zWarning: the Stripe library requires that your Python "requests" library be newer than version 0.8.8, but your "requests" library is version a#  . Stripe will fall back to an alternate HTTP library so everything should work. We recommend upgrading your "requests" library. If you have any questions, please contact support@stripe.com. (HINT: running "pip install -U requests" should upgrade your requests library to the latest version.))urlfetch)urlparseParseResultc                  V    [        [        [        R                  " 5       S-  5      5      $ )Ni  )introundtime     XC:\Suresh\moveshuttle\MDcreated\moveengine\venv\Lib\site-packages\stripe/_http_client.py_now_msr/   t   s    uTYY[4'())r-   argskwargsreturn
HTTPClientc                      [         (       a  [        nO*[        (       a  [        nO[        (       a  [
        nO[        nU" U 0 UD6$ N)r%   UrlFetchClientrequestsRequestsClientpycurlPycurlClientUrllib2Clientr0   r1   impls      r.   new_default_http_clientr>   x   s5    x		   r-   c                  f    [         (       a  [        nO[        (       a  [        nO[        nU" U 0 UD6$ r5   )httpxHTTPXClientaiohttpAIOHTTPClientNoImportFoundAsyncClientr<   s      r.   new_http_client_async_fallbackrE      s+    u	'   r-   c                      \ rS rSr% \\   \S'    " S S\5      rSr	Sr
Sr\\   \S'   \\S	'      S5S\S\\\\4      S\S    4S jjrS\\\\\\\\4      4      S\\   S\S\\   4S jr S6S\\\\\\\4   4      4S jjr S6S\S\\\\\\\4   4      S\4S jjrS\S\4S jrS\\\4   S\\\4   4S jrS r  S7SS.S\S\S\\\4   S \S\\   S!\\\      S\\\\\\4   4   4S" jjjr  S7SS.S\S\S\\\4   S!\\\      S\\\\\\4   4   4
S# jjjrSS.S\S\S\\\4   S \S$\S\\   S!\\\      S\\\\\\4   4   4S% jjr S6SS.S\S\S\\\\4      S \S!\\\      S\\\\\\4   4   4S& jjjr  S6SS.S\S\S\\\\4      S \S!\\\      S\\\\\\4   4   4S' jjjr!S( r"  S7SS.S\S\S\\\4   S\\   S!\\\      S\\\\4   4S) jjjr#  S7SS.S\S\S\\\4   S!\\\      S\\$\%   \\4   4
S* jjjr&\'SS.S\S\S\\\4   S$\(S+   S\\   S!\\\      S\\\\\\4   4   4S, jj5       r)\'SS.S\S\S\\\4   S$\(S
   S\\   S!\\\      S\\$\%   \\\\4   4   4S- jj5       r)SS.S\S\S\\\4   S$\S\\   S!\\\      S\\\\\\4   4   4S. jjr) S6S\S\S\\\4   S\\%\\\\4   4   4S/ jjr* S6S\S\S\\\4   S\\$\%   \\\\4   4   4S0 jjr+S1 r,S2\S\-S   4S3 jr.S4r/g)8r3      namec                   6    \ rS rSr% \\   \S'   \\   \S'   Srg)HTTPClient._Proxy   httphttpsr,   N)__name__
__module____qualname____firstlineno__r   str__annotations____static_attributes__r,   r-   r.   _ProxyrJ      s    sm}r-   rU            ?<   _proxy_verify_ssl_certsTNverify_ssl_certsproxyasync_fallback_clientc                    Xl         U(       a9  [        U[        5      (       a  X"S.n[        U[        5      (       d  [	        S5      eU(       a  UR                  5       OS U l        X0l        [        R                  " 5       U l
        g )N)rL   rM   zqProxy(ies) must be specified as either a string URL or a dict() with string URL under the https and/or http keys.)rZ   
isinstancerR   dict
ValueErrorcopyrY   _async_fallback_client	threadinglocal_thread_local)selfr[   r\   r]   s       r.   __init__HTTPClient.__init__   si     "2%%%!&7eT**   ',ejjl&;#&__.r-   responseapi_connection_errornum_retriesmax_network_retriesc                     Ub  UOSnX4:  a  gUc  Uc   eUR                   $ Uu  pVnUb  SU;   a  US   S:X  a  gUS   S:X  a  gUS:X  a  gUS:  a  gg)	Nr   Fzstripe-should-retryfalsetrueTi  i  should_retry)rg   rj   rk   rl   rm   _status_coderheaderss           r.   _should_retryHTTPClient._should_retry   s     $7#B 	 -
 (333'444#+  $9X$E-.'9-.&8 # #r-   c                 ^    Uc  g Uu    p# [        US   5      $ ! [        [        4 a     g f = f)Nzretry-after)r)   KeyErrorra   )rg   rj   rs   ru   s       r.   _retry_after_headerHTTPClient._retry_after_header   sB     !1	x.//*% 		s    ,,r2   c                 0   [        [        R                  SUS-
  -  -  [        R                  5      nU R	                  U5      n[        [        R                  U5      nU R                  U5      =(       d    SnU[        R                  ::  a  [        XC5      nU$ )z
Apply exponential backoff with initial_network_retry_delay on the number of num_retries so far as inputs.
Do not allow the number to exceed `max_network_retry_delay`.
      r   )minr3   INITIAL_DELAY	MAX_DELAY_add_jitter_timemaxrz   MAX_RETRY_AFTER)rg   rl   rj   sleep_secondsretry_afters        r.   _sleep_time_secondsHTTPClient._sleep_time_seconds   s     $$kAo(>?  

 --m< J44mD ..x8=A*444;Mr-   r   c                 F    USS[         R                  " SS5      -   -  -  nU$ )z~
Randomize the value in `[(sleep_seconds/ 2) to (sleep_seconds)]`.
Also separated method here to isolate randomness for tests
rW   r~   r   )randomuniform)rg   r   s     r.   r   HTTPClient._add_jitter_time  s)    
 	FNN1a$8 899r-   headersc                     [        U R                  SS 5      n[        R                  (       a?  U(       a8  SUR	                  5       0n[        U5      n[        R                  " U5      US'   U$ U$ )Nlast_request_metricszX-Stripe-Client-Telemetry)getattrrf   stripeenable_telemetrypayloadr`   jsondumps)rg   r   r   	telemetryrets        r.   _add_telemetry_header HTTPClient._add_telemetry_header  sj      ' 6 
 ""';&(<(D(D(FI w-C/3zz)/DC+,Jr-   c                     Uu    pESU;   aB  [         R                  (       a,  US   n[        5       U-
  n[        XgUS9U R                  l        g g g )Nz
Request-Idusage)r   r   r/   r   rf   r   )rg   rj   request_startr   rs   ru   
request_idrequest_duration_mss           r.   _record_request_metrics"HTTPClient._record_request_metrics"  sS    !18#(?(?!,/J"))m";6Du7D3 )@#r-   )_usagemethodurl	post_datar   c          
      ,    U R                  UUUUSUUS9$ NFis_streamingrm   r   _request_with_retries_internalrg   r   r   r   r   rm   r   s          r.   request_with_retriesHTTPClient.request_with_retries+  s1     22 3 3 
 	
r-   c          
      ,    U R                  UUUUSUUS9$ NTr   r   r   s          r.   request_stream_with_retries&HTTPClient.request_stream_with_retries?  s1     22 3 3 
 	
r-   r   c                    U R                  U5      nSn [        5       n	 U(       a  U R                  XX45      n
OU R                  XX45      n
S nU R                  XX5      (       ar  U(       a#  [        R                  " SUR                  -  5        US-  nU R                  X5      n[        R                  " SXX-4-  5        [        R                  " U5        OU
b  U R                  XUS9  U
$ Uc   eUeM  ! [         a  nUnS n
 S nANS nAff = fNr   z Encountered a retryable error %sr~   zBInitiating retry %i for request %s %s after sleeping %.2f seconds.r   )r   r/   request_streamrequestr   rv   r   log_infouser_messager   r+   sleepr   rg   r   r   r   r   r   rm   r   rl   r   rj   connection_errore
sleep_times                 r.   r   )HTTPClient._request_with_retries_internalS  s7    ,,W5#IM
 #22W H  $||FLH#' 
 !!K  $NN:*778 q !55kL
1&@A 

:&'00 v 1  $O+777**U  &  #$  s   .C5 5
D?DDc                    [        S5      e)Nz.HTTPClient subclasses must implement `request`NotImplementedErrorrg   r   r   r   r   r   s         r.   r   HTTPClient.request  s     "<
 	
r-   c                    [        S5      e)Nz5HTTPClient subclasses must implement `request_stream`r   r   s         r.   r   HTTPClient.request_stream  s     "C
 	
r-   c                     [        S5      e)Nz,HTTPClient subclasses must implement `close`r   rg   s    r.   closeHTTPClient.close  s    !:
 	
r-   c          
      H   #    U R                  UUUUSUUS9I S h  vN $  N7fr   $_request_with_retries_internal_asyncr   s          r.   request_with_retries_async%HTTPClient.request_with_retries_async  s>      >> 3 ? 
 
 	
 
   " "c          
      H   #    U R                  UUUUSUUS9I S h  vN $  N7fr   r   r   s          r.   !request_stream_with_retries_async,HTTPClient.request_stream_with_retries_async  s>      >> 3 ? 
 
 	
 
r   Fc                   #    g 7fr5   r,   rg   r   r   r   r   r   rm   r   s           r.   r   /HTTPClient._request_with_retries_internal_async  s
      .1   c                   #    g 7fr5   r,   r   s           r.   r   r     s      ?Br   c                Z  #    U R                  U5      nSn [        5       n	 U(       a  U R                  XX45      I S h  vN n
OU R                  XX45      I S h  vN n
S nU R                  XX5      (       au  U(       a#  [        R                  " SUR                  -  5        US-  nU R                  X5      n[        R                  " SXX-4-  5        U R                  U5      I S h  vN   OU
b  U R                  XUS9  U
$ Uc   eUeM   N N! [         a  nUnS n
 S nANS nAff = f NB7fr   )r   r/   request_stream_asyncrequest_asyncr   rv   r   r   r   r   sleep_asyncr   r   s                 r.   r   r     sb     ,,W5#IM %)%>%>W&  H &*%7%7W&  H $( 
 !!K  $NN:*778 q !55kL
1&@A &&z222'00 v 1  $O+777**Y 
   &  #$  * 3s]   D+D D
D DD  BD+&D)'#D+
D D 
D&D!D+!D&&D+c                    #    U R                   b$  U R                   R                  XX45      I S h  vN $ [        S5      e N7f)Nz4HTTPClient subclasses must implement `request_async`)rc   r   r   rg   r   r   r   r   s        r.   r   HTTPClient.request_async,  sM      &&244BBW   "B
 	
   -A?Ac                    #    U R                   b$  U R                   R                  XX45      I S h  vN $ [        S5      e N7f)Nz;HTTPClient subclasses must implement `request_stream_async`)rc   r   r   r   s        r.   r   HTTPClient.request_stream_async7  sM      &&244IIW   "I
 	
r   c                    #    U R                   b"  U R                   R                  5       I S h  vN $ [        S5      e N7f)Nz2HTTPClient subclasses must implement `close_async`)rc   close_asyncr   r   s    r.   r   HTTPClient.close_asyncB  s?     &&244@@BBB!@
 	
 Cs   +?=?secsc                 h    U R                   b  U R                   R                  U5      $ [        S5      e)Nz,HTTPClient subclasses must implement `sleep`)rc   r   r   rg   r   s     r.   r   HTTPClient.sleep_asyncI  s5    &&2..::4@@!:
 	
r-   )rc   rY   rf   rZ   TNNr5   )NN)0rN   rO   rP   rQ   r   rR   rS   r   rU   r   r   r   r   boolr   rh   r   r   r)   r   r   rv   rz   floatr   r   r   r   r   r   r   r   r   r   r   r   r   bytesr   r   r   r   r   r   r   r   r   rT   r,   r-   r.   r3   r3      s   
3-  IMOV "&.28<	// c6k*+/  (5	/2-5c8GCH4E+F!FGH- ''9:- 	-
 &c]-` HL
 sCc1B'B!CD
 BF 5c738+<!<=> 
	4e  sCx(	c	 -1
 '+

 
 c"	

 
 &c]
 c#
 
sCc**	+
2  
 '+

 
 c"	
 c#
 
sCc**	+
: '+9+9+ 9+ c"	9+
 9+ 9+ &c]9+ c#9+ 
sCc**	+9+@ 
 '+

 
 '#s(+,	

 
 c#
 
sCc**	+
$ 
 '+

 
 '#s(+,	

 
 c#
 
sCc**	+

 -1
 '+

 
 c"	
 &c]
 c#
 
sC}	
2  
 '+

 
 c"	
 c#
 
}U#S#-	.
(  '+
1
1 
1 c"	
1 en
1 &c]
1 c#
1 
sCc**	+
1 
1  '+
B
B 
B c"	
B dm
B &c]
B c#
B 
}U#S'#s(*;;	<
B 
B* '+;+;+ ;+ c"	;+ ;+ &c];+ c#;+ 
sCc**	+;+| LP	
	
 #	
.5c3h.?	
	uc738,,	-	
 LP	
	
 #	
.5c3h.?	
	}U#S'#s(*;;	<	


 
)D/ 
r-   c                     ^  \ rS rSrSr     SS\S\S   S\S\\\	\
R                  4      S	\\
   4
U 4S
 jjjr SS\	S\	S\\\	\	4      S\\\\\	\	4   4   4S jjr SS\	S\	S\\\	\	4      S\\\\\	\	4   4   4S jjr\S\	S\	S\\\	\	4      S\S   S\\\\\	\	4   4   4
S j5       r\S\	S\	S\\\	\	4      S\S   S\\\\\	\	4   4   4
S j5       rS\	S\	S\\\	\	4      S\S\\\\4   \\\	\	4   4   4
S jrS\S\4S jrS rSrU =r$ )r8   iQ  r7   TtimeoutsessionRequestsSessionr[   r\   r]   c                 l   > [         [        U ]  UUUS9  X l        Xl        [
        c   e[
        U l        g Nr[   r\   r]   )superr8   rh   _session_timeoutr7   )rg   r   r   r[   r\   r]   r1   	__class__s          r.   rh   RequestsClient.__init__T  sA     	nd,-"7 	- 	

  ### r-   r   r   r   r2   c                 $    U R                  XX4SS9$ NFr   _request_internalr   s        r.   r   RequestsClient.requesth  s#     %%% & 
 	
r-   c                 $    U R                  XX4SS9$ NTr   r   r   s        r.   r   RequestsClient.request_streams  s#     %%$ & 
 	
r-   r   c                     g r5   r,   rg   r   r   r   r   r   s         r.   r    RequestsClient._request_internal~       .1r-   Fc                     g r5   r,   r  s         r.   r   r    s     03r-   c                    0 nU R                   (       a  [        R                  US'   OSUS'   U R                  (       a  U R                  US'   U(       a  SUS'   [	        U R
                  SS 5      c<  U R                  =(       d    U R                  R                  5       U R
                  l	          [        SU R
                  R                  5      R                  " UU4UUU R                  S.UD6nU(       a  UR                  n	OUR                  n	UR                   n
W	W
WR&                  4$ ! [         a  n[        S	U< 35      eS nAff = f! ["         a  nU R%                  U5         S nANPS nAff = f)
NverifyFproxiesTstreamr   r   )r   datar   a  Warning: It looks like your installed version of the "requests" library is not compatible with Stripe's usage thereof. (HINT: The most likely cause is that your "requests" library is out of date. You can fix that by running "pip install -U requests".) The underlying error was: )rZ   r   ca_bundle_pathrY   r   rf   r   r7   r   r   r   r   r   	TypeErrorrawcontentrt   	Exception_handle_request_errorr   )rg   r   r   r   r   r   r1   resultr   r  rt   s              r.   r   r    sh    !!%44F8$F8;; $F9#F84%%y$7?8!6!6!8 &"	*%t'9'9'A'A' 		
 $" MM	 	(  **
 !.. ,,K V^^331   346 &  	* &&q))	*s7   /A D* /,E *
E4EEE 
E0E++E0r   c                 2   [        XR                  R                  R                  5      (       a+  Sn[	        U5      R
                  < S[        U5      < 3nSnGO[        UU R                  R                  R                  U R                  R                  R                  45      (       a*  Sn[	        U5      R
                  < S[        U5      < 3nSnO[        XR                  R                  R                  5      (       a*  Sn[	        U5      R
                  < S[        U5      < 3nSnOFSnS[	        U5      R
                  < S3n[        U5      (       a  US	[        U5      < 3-  nOUS
-  nSn[        R                  " U5      SU< S3-   n[        X$S9Ue)NCould not verify Stripe's SSL certificate.  Please make sure that your network is not intercepting certificates.  If this problem persists, let us know at support@stripe.com.: FziUnexpected error communicating with Stripe.  If this problem persists, let us know at support@stripe.com.TzUnexpected error communicating with Stripe. It looks like there's probably a configuration issue locally.  If this problem persists, let us know at support@stripe.com.A  was raisedz with error message z with no error message

(Network error: )rq   )r_   r7   
exceptionsSSLErrortyperN   rR   r   ConnectionErrorRequestExceptiontextwrapfillr   rg   r   msgerrrr   s        r.   r  $RequestsClient._handle_request_error  s[    a11::;;&  #1g..A7C L((00((88
 
& 
 #1g..A7CL==33DDEE& 
 #1g..A7C L.  (,Aw'7'79C1vv3q6;;// LmmC #EE @aGr-   c                 ~    [        U R                  SS 5      b%  U R                  R                  R                  5         g g )Nr   )r   rf   r   r   r   s    r.   r   RequestsClient.close  s5    4%%y$7C&&,,. Dr-   )r   r   r7   )P   NTNNr5   )rN   rO   rP   rQ   rH   r)   r   r   r   rR   r3   rU   rh   r   r   r   r   r   r   r   r   r   r  r   r  r   rT   __classcell__r   s   @r.   r8   r8   Q  sr   D /3!%9=6:!! +,! 	!
 c:#4#4456!  (
3! !2 	
	
 	
 '#s(+,		
 
uc738,,	-	
  	
	
 	
 '#s(+,		
 
sCc**	+	
 11 1 '#s(+,	1 dm1 
sCc**	+1 1 33 3 '#s(+,	3 en3 
uc738,,	-3 3=4=4 =4 '#s(+,	=4 =4 
uUCZ #wsCx'88	9=4~3Hy 3HX 3Hj/ /r-   r8   c                     ^  \ rS rSrSr    SS\S\\R                     S\	S\\   4U 4S jjjr
 SS	\S
\S\\\4   S\\\	\\\4   4   4S jjr SS	\S
\S\\\4   S\\\	\\\4   4   4S jjr\S	\S
\S\\\4   S\S   S\\\	\4   4
S j5       r\S	\S
\S\\\4   S\S   S\\\	\4   4
S j5       rS	\S
\S\\\4   4S jrS\S
\S\4S jrS rSrU =r$ )r6   i  r%   Tr[   r\   deadliner]   c                    > [         [        U ]  UUUS9  U(       a  [        S5      eXl        X0l        [        c   e[        U l        g )Nr   zNo proxy support in urlfetch library. Set stripe.default_http_client to either RequestsClient, PycurlClient, or Urllib2Client instance to use a proxy.)r   r6   rh   ra   rZ   	_deadliner%   )rg   r[   r\   r+  r]   r   s        r.   rh   UrlFetchClient.__init__  s\     	nd,-"7 	- 	
 J  "2 "### r-   r   r   r   r2   c                 $    U R                  XX4SS9$ r   r   r   s        r.   r   UrlFetchClient.request,  #     %%% & 
 	
r-   c                 $    U R                  XX4SS9$ r   r   r   s        r.   r   UrlFetchClient.request_stream3  #     %%$ & 
 	
r-   r   c                     g r5   r,   r  s         r.   r    UrlFetchClient._request_internal:       $'r-   Fc                     g r5   r,   r  s         r.   r   r6  D        #r-   c           	          U R                   R                  UUUU R                  U R                  US9nU(       a=  [        R                  R                  [        R                  WR                  5      5      nOWR                  nXR                  UR                  4$ ! U R                   R                   a  nU R                  Xr5         S nANS nAff = f)N)r   r   r   validate_certificater+  r   )r%   fetchrZ   r-  Errorr  r   ior   rR   encoder  rt   r   )	rg   r   r   r   r   r   r  r   r  s	            r.   r   r6  N  s    	/]](( &*%;%;! ) 
F hh&&szz&..'ABGnnG**FNN:: }}"" 	/&&q..	/s   2B C6CCr   c                 b   [        XR                  R                  5      (       a  SU< S3nOP[        XR                  R                  5      (       a  SnO)[        XR                  R                  5      (       a  SnOSn[
        R                  " U5      S-   [        U5      -   S-   n[        U5      Ue)Nz6The Stripe library attempted to fetch an invalid URL (zg). This is likely due to a bug in the Stripe Python bindings. Please let us know at support@stripe.com.z0There was a problem retrieving data from Stripe.zThere was a problem receiving all of your data from Stripe.  This is likely due to a bug in Stripe. Please let us know at support@stripe.com.hUnexpected error communicating with Stripe. If this problem persists, let us know at support@stripe.com.r  r  )	r_   r%   InvalidURLErrorDownloadErrorResponseTooLargeErrorr  r   rR   r   )rg   r   r   r"  s       r.   r  $UrlFetchClient._handle_request_errorm  s    a6677
 -02  ==6677DC==>>??< G 
 mmC #99CFBSH %1,r-   c                     g r5   r,   r   s    r.   r   UrlFetchClient.close      r-   )r-  rZ   r%   )TN7   Nr5   )rN   rO   rP   rQ   rH   r   r   r3   rU   r)   rh   rR   r   r   r   r   r   r   r   r   r   r  r   r  r   rT   r(  r)  s   @r.   r6   r6     s   D "&-16:!! 
))*! 	!
  (
3! !> LP

 #
.5c3h.?
	sCc**	+
 LP

 #
.5c3h.?
	wWS#X..	/
 '' ' c"	' dm' 
wS 	!' ' ## # c"	# en# 
sC}	# #;; ; c"	;>-y -s -x -2 r-   r6   c                   6    \ rS rSr% \\   \S'   \\   \S'   Srg)rU   i  rL   rM   r,   NrN   rO   rP   rQ   r   r'   rS   rT   r,   r-   r.   rU   rU     s    
;
K  r-   rU   c                     ^  \ rS rSr%  " S S\SS9rSr\\   \S'      SS	\	S
\\
R                     S\\
   4U 4S jjjrS r SS\\\4   S\\\\\\4   4   4S jjr SS\\\4   S\\\\\\4   4   4S jjr\S\S\S\\\4   S\S   S\\\\4   4
S j5       r\S\S\S\\\4   S\S   S\\\\\\4   4   4
S j5       rS\S\S\\\4   S\\\\4   \\\\4   4   4S jrS\S\4S jrS\\   4S jrS rSr U =r!$ )r:   i  c                   6    \ rS rSr% \\   \S'   \\   \S'   Srg)PycurlClient._ParsedProxyi  rL   rM   r,   NrK  r,   r-   r.   _ParsedProxyrN    s    {##$$r-   rO  F)totalr9   _parsed_proxyTr[   r\   r]   c                 P  > [         [        U ]  UUUS9  [        c   e[        U l        [        R                  " 5       U l        0 U l        U R                  (       aL  U R                  nUR                  5        H+  u  pV[        [        [        U5      5      U R                  U'   M-     g g r   )r   r:   rh   r9   Curl_curlrQ  rY   itemsr&   r   rR   )rg   r[   r\   r]   proxy_schemevaluer   s          r.   rh   PycurlClient.__init__  s     	lD*-"7 	+ 	
 !!![[]
 ;;[[F!' .6d36F-G""6* "0 r-   c                     SU;  a  0 $ UR                  SS5      S   n[        R                  " U5      n[        S [        U5      R	                  5        5       5      $ )Nz
r~   c              3   J   #    U  H  u  pUR                  5       U4v   M     g 7fr5   lower.0kvs      r.   	<genexpr>-PycurlClient.parse_headers.<locals>.<genexpr>  s     E/DtqQWWYN/D   !#)splitemailmessage_from_stringr`   rU  )rg   r  raw_headersr   s       r.   parse_headersPycurlClient.parse_headers  sR    Ijj+A.++K8EtG}/B/B/DEEEr-   r   r2   c                 $    U R                  XX4SS9$ r   r   r   s        r.   r   PycurlClient.request  r1  r-   c                 $    U R                  XX4SS9$ r   r   r   s        r.   r   PycurlClient.request_stream  r4  r-   r   r   r   c                     g r5   r,   r  s         r.   r   PycurlClient._request_internal  r7  r-   c                     g r5   r,   r  s         r.   r   rp    r  r-   c           
      
   [         R                  R                  5       n[         R                  R                  5       nU R                  R	                  5         U R                  U5      nU(       Ga  UR                  (       a:  U R                  R                  U R                  R                  UR                  5        UR                  (       a:  U R                  R                  U R                  R                  UR                  5        UR                  (       d  UR                  (       aK  U R                  R                  U R                  R                  UR                  < SUR                  < 35        US:X  a1  U R                  R                  U R                  R                  S5        OUS:X  aa  U R                  R                  U R                  R                   S5        U R                  R                  U R                  R"                  U5        O>U R                  R                  U R                  R$                  UR'                  5       5        U R                  R                  U R                  R(                  U5        U R                  R                  U R                  R*                  UR,                  5        U R                  R                  U R                  R.                  UR,                  5        U R                  R                  U R                  R0                  S5        U R                  R                  U R                  R2                  S5        U R                  R                  U R                  R4                  S5        U R                  R                  U R                  R6                  [9        U5      R;                  5        V	V
s/ s H  u  pU	< SU
< 3PM     sn
n	5        U R<                  (       a?  U R                  R                  U R                  R>                  [@        RB                  5        O0U R                  R                  U R                  RD                  S5         U R                  RG                  5         U(       a  URM                  S	5        UnOURO                  5       RQ                  S
5      nU R                  RS                  U R                  RT                  5      nU RW                  URO                  5       RQ                  S
5      5      nXU4$ s  sn
n	f ! U R                  RH                   a  nU RK                  U5         S nANS nAff = f)N:getr~   post   r'  r  Fr   utf-8),r   r>  r   rT  reset
_get_proxyhostnamesetoptr9   PROXYport	PROXYPORTusernamepasswordPROXYUSERPWDHTTPGETPOST
POSTFIELDSCUSTOMREQUESTupperURLWRITEFUNCTIONwriteHEADERFUNCTIONNOSIGNALCONNECTTIMEOUTTIMEOUT
HTTPHEADERr`   rU  rZ   CAINFOr   r  SSL_VERIFYHOSTperformerrorr  seekgetvaluedecodegetinfoRESPONSE_CODEri  )rg   r   r   r   r   r   bru   r\   r`  ra  r   rcontentrcodes                 r.   r   rp    sx    HH88##% 	

$~~

!!$++"3"3U^^Dzz

!!$++"7"7D~~

!!KK,,$~~u~~>
 U?JJdkk1115vJJdkk..2JJdkk44i@JJdkk77H 	

$++//3/

$++33QWW=

$++44hnnE

$++..2

$++44b9

$++--r2

KK""+/=+>+>+@A+@41A+@A	
 !!JJdkk00&2G2GHJJdkk88%@	*JJ  FF1IHzz|**73H

""4;;#<#<=$$X%6%6%8%?%?%HI''+ B {{   	*&&q))	*s   	T'T" "U<UUr   c                    UR                   S   U R                  R                  U R                  R                  U R                  R                  4;   a  SnSnOFUR                   S   U R                  R
                  U R                  R                  4;   a  SnSnOSnSn[        R                  " U5      S-   UR                   S   -   S	-   n[        X#S
9Ue)Nr   zCould not connect to Stripe.  Please check your internet connection and try again.  If this problem persists, you should check Stripe's service status at https://twitter.com/stripestatus, or let us know at support@stripe.com.Tr  FrA  r  r~   r  rq   )
r0   r9   E_COULDNT_CONNECTE_COULDNT_RESOLVE_HOSTE_OPERATION_TIMEOUTEDE_SSL_CACERTE_SSL_PEER_CERTIFICATEr  r   r   )rg   r   r"  rr   s       r.   r  "PycurlClient._handle_request_error#  s    66!9KK))KK..KK--
 
&   LVVAYKK$$KK..
 

&  !LG  !LmmC #99AFF1IEK @aGr-   c                     U R                   (       aS  U R                   nU(       a  UR                  S5      S   OS nU(       a#  UR                  X2R                  USS 5      5      $ g )Nrs  r   )rQ  re  rt  )rg   r   r\   rW  s       r.   ry  PycurlClient._get_proxyF  sP    &&E*-SYYs^A&4Fyy6!B<)@AAr-   c                     g r5   r,   r   s    r.   r   PycurlClient.closeN  rH  r-   )rT  rQ  r9   r   r5   )"rN   rO   rP   rQ   r   rO  rH   r   rS   r   r3   rU   rh   ri  r   rR   r   r)   r   r   r   r   r   r   r   r   r  r   r  r'   ry  r   rT   r(  r)  s   @r.   r:   r:     s0   %y % DL)) "&-16:	HH 
))*H  (
3	H H6F BF
$+CH$5
	sCc**	+
 BF
$+CH$5
	wWS#X..	/
 '' ' c"	' dm' 
wS 	!' ' 11 1 c"	1 en1 
sCc**	+1 1F(F( F( c"	F( 
uS'\"Cc)::	;F(P!Hy !HX !HF+!6  r-   r:   c                     ^  \ rS rSrSr   SS\S\\R                     S\\   4U 4S jjjr	 SS\
S	\
S
\\
\
4   S\\
\\\
\
4   4   4S jjr SS\
S	\
S
\\
\
4   S\\\\\
\
4   4   4S jjr\S\
S	\
S
\\
\
4   S\S   S\\
\\4   4
S j5       r\S\
S	\
S
\\
\
4   S\S   S\\\\4   4
S j5       rS\
S	\
S
\\
\
4   4S jrS\S\4S jrS rSrU =r$ )r;   iR  zurllib.requestTr[   r\   r]   c                 
  > [         [        U ]  UUUS9  S U l        U R                  (       aW  [
        R                  " [        [        [        [        4   U R                  5      5      n[
        R                  " U5      U l        g g r   )r   r;   rh   _openerrY   urllibrequestProxyHandlerr   r	   rR   build_opener)rg   r[   r\   r]   proxy_handlerr   s        r.   rh   Urllib2Client.__init__U  ss     	mT+-"7 	, 	
 ;; *66T#s(^T[[1M )55mDDL r-   r   r   r   r2   c                 $    U R                  XX4SS9$ r   r   r   s        r.   r   Urllib2Client.requestj  r1  r-   c                 $    U R                  XX4SS9$ r   r   r   s        r.   r   Urllib2Client.request_streamq  r4  r-   r   Fc                     g r5   r,   r  s         r.   r   Urllib2Client._request_internalx  r9  r-   c                     g r5   r,   r  s         r.   r   r    s     ),r-   c           	      Z  ^ [        U[        5      (       a  UR                  S5      n[        R                  " X$[        [        [        [        4   U5      5      nTS;  a  U4S jUl         U R                  (       a  U R                  R                  U5      O[        R                  " U5      nU(       a  UnOUR                  5       nUR                  n	[        UR                  5       5      n[        S [)        [        U5      R+                  5       5       5       5      nWW	U4$ ! [        R                    a?  n
U
R                  n	U
R                  5       n[        U
R                  5       5      n S n
A
NS n
A
f[        R"                  [$        4 a  n
U R'                  U
5         S n
A
NS n
A
ff = f)Nrw  )rt  ru  c                  $   > T R                  5       $ r5   )r  )r   s   r.   <lambda>1Urllib2Client._request_internal.<locals>.<lambda>  s    V\\^r-   c              3   J   #    U  H  u  pUR                  5       U4v   M     g 7fr5   r\  r^  s      r.   rb  2Urllib2Client._request_internal.<locals>.<genexpr>  s     I-HTQ1779a.-Hrd  )r_   rR   r?  r  Requestr   r   
get_methodr  openurlopenreadcoder`   infourlliberror	HTTPErrorURLErrorra   r  iterrU  )rg   r   r   r   r   r   reqrj   r  r  r   lhs    `          r.   r   r    sL    i%%!((1I##DS!97C
 (3CN	*
 << !!#&"**3/  ##==?MME8==?+G IT$w-2E2E2G-HII"" $$ 	%FFEvvxH1668nG$$j1 	*&&q))	*s%   ,BD$ $F*85E22F*F%%F*r   c                 n    Sn[         R                  " U5      S-   [        U5      -   S-   n[        U5      Ue)NrA  r  r  )r  r   rR   r   )rg   r   r"  s      r.   r  #Urllib2Client._handle_request_error  s>    K 	 mmC #99CFBSH %1,r-   c                     g r5   r,   r   s    r.   r   Urllib2Client.close  rH  r-   )r  r   r5   )rN   rO   rP   rQ   rH   r   r   r3   rU   rh   rR   r   r   r)   r   r   r   r   r   r   r   r  r   r  r   rT   r(  r)  s   @r.   r;   r;   R  s   D "&-16:	EE 
))*E  (
3	E E, LP

 #
.5c3h.?
	sCc**	+
 LP

 #
.5c3h.?
	|S'#s("33	4
 ## # c"	# en# 
sC}	# # ,, , c"	, dm, 
|S#%	&, ,)#)# )# c"	)#V-y -X - r-   r;   c                     ^  \ rS rSr% Sr\S   \S'     SS\\\S4      4U 4S jjjr	S r
S	\S
\S\\\4   4S jr SS	\S
\S\\\4   S\\\\\\4   4   4S jjr SS	\S
\S\\\4   S\\\\\\4   4   4S jjrS\S\4S jr SS	\S
\S\\\4   S\\\   \\\\4   4   4S jjr SS	\S
\S\\\4   S\\\   \\\\4   4   4S jjrS rS rSrU =r$ )rA   i  r@   HTTPXClientType_clientr   HTTPXTimeoutc                   > [         [        U ]
  " S0 UD6  [        c  [	        S5      e[
        c  [	        S5      e[        U l        [
        U l        0 nU R                  (       a&  [        R                  " [        R                  S9US'   OSUS'   [        R                  " S0 UD6U l        S U l        U(       a  [        R                  " S0 UD6U l        Xl        g )NzPUnexpected: tried to initialize HTTPXClient but the httpx module is not present.zPUnexpected: tried to initialize HTTPXClient but the anyio module is not present.cafiler  Fr,   )r   rA   rh   r@   ImportErroranyiorZ   sslcreate_default_contextr   r  AsyncClient_client_asyncr  r   r   )rg   r   allow_sync_methodsr1   r   s       r.   rh   HTTPXClient.__init__  s     	k4)3F3=b  =b  

!!"99,, F8  %F8"..88 <<1&1DLr-   c                 8    U R                   R                  U5      $ r5   )r  r   r   s     r.   r   HTTPXClient.sleep_async  s    zz%%r-   r   r   r   c                     0 nU R                   (       a  U R                   US'   U R                  (       a  U R                  US'   X4X4=(       d    0 S.UE/$ )Nr	  r   )r   r  )rY   r   )rg   r   r   r   r   r1   s         r.   _get_request_args_kwargs$HTTPXClient._get_request_args_kwargs  sQ     ;; $F9== $F9MbCFC
 	
r-   r2   c                 4   U R                   c  [        S5      eU R                  XX45      u  pV U R                   R                  " U0 UD6nWR                  n	UR                  n
UR                  nXU4$ ! [         a  nU R                  U5         S nANHS nAff = f)NzqStripe: HTTPXClient was initialized with allow_sync_methods=False, so it cannot be used for synchronous requests.)	r  RuntimeErrorr  r   r  r  r  rt   r   rg   r   r   r   r   r0   r1   rj   r   r  rt   response_headerss               r.   r   HTTPXClient.request  s     <<A  44
	*||++T<V<H ""**#++%555  	*&&q))	*s   A2 2
B<BBc                    #    U R                  XX45      u  pV U R                  R                  " U0 UD6I S h  vN nWR
                  n	UR                  n
UR                  nXU4$  N,! [         a  nU R	                  U5         S nANJS nAff = f7fr5   )r  r  r   r  r  r  rt   r   r  s               r.   r   HTTPXClient.request_async  s      44
	*!//77HHHH ""**#++%555 I 	*&&q))	*=   BA& A$A& (B$A& &
B0BBBBr   c                     SnS[        U5      R                  < S3nSn[        R                  " U5      SU< S3-   n[	        X$S9UeNrA  r  r  Tr  r  rq   r  rN   r  r   r   r!  s        r.   r  !HTTPXClient._handle_request_error*  I    C 	 $(7#3#35mmC #EE @aGr-   c                 l   U R                   c  [        S5      eU R                  XX45      u  pV U R                   R                  U R                  R
                  " U0 UD6SS9nWR                  5       n	UR                  n
UR                  nXU4$ ! [         a  nU R                  U5         S nANLS nAff = f)NztStripe: HTTPXClient was not initialized with allow_sync_methods=True, so it cannot be used for synchronous requests.Tr   r
  )r  r  r  sendr  build_requestr  r  
iter_bytesrt   r   rg   r   r   r   r   r0   r1   rj   r   r  rt   s              r.   r   HTTPXClient.request_stream5  s     <<A  44
	*||((**88$I&I ) H %%'**""W,,  	*&&q))	*s   4B 
B3B..B3c                 X  #    U R                  XX45      u  pV U R                  R                  U R                  R                  " U0 UD6SS9I S h  vN nWR                  5       n	UR                  n
UR                  nXU4$  N0! [         a  nU R                  U5         S nANNS nAff = f7f)NTr  )	r  r  r  r  r  r  aiter_bytesrt   r   r  s              r.   r    HTTPXClient.request_stream_asyncM  s      44
	*!//44**88$I&I 5  H &&(**""W,,  	*&&q))	*s@   B*7B B B ,B* B 
B'B"B*"B''B*c                 T    U R                   b  U R                   R                  5         g g r5   )r  r   r   s    r.   r   HTTPXClient.close`  s!    <<#LL  $r-   c                 T   #    U R                   R                  5       I S h  vN   g  N7fr5   )r  acloser   s    r.   r   HTTPXClient.close_asyncd  s       '')))   (&()r  r  r   r  r@   )r'  Fr5   )rN   rO   rP   rQ   rH   r   rS   r   r   rh   r   rR   r   r  r   r   r)   r   r   r  r   r  r
   r   r   r   r   r   rT   r(  r)  s   @r.   rA   rA     s   D'(( ;= ! %~ 567!  ! F&

 #
.5c3h.?
( 66 6 c"	6 
uc738,,	-6< 66 6 c"	6 
uc738,,	-6(	Hy 	HX 	H LP-- #-.5c3h.?-	xWS#X%66	7-2 LP-- #-.5c3h.?-	}U#S'#s(*;;	<-&!* *r-   rA   c                   l  ^  \ rS rSrSr SS\\\S4      4U 4S jjjr\	S 5       r
S rS\\\\\\4   4   4S	 jrS
\S\S\\\4   4S jr SS
\S\S\\\4   S\\\\\\4   4   4S jjrS\S\4S jrS\\\   \\\\4   4   4S jr SS
\S\S\\\4   S\S\\\\4   4   4S jjrS rS rSrU =r$ )rC   ih  rB   r   AIOHTTPTimeoutc                 l   > [         [        U ]
  " S0 UD6  [        c  [	        S5      eXl        S U l        g )NzTUnexpected: tried to initialize AIOHTTPClient but the aiohttp module is not present.r,   )r   rC   rh   rB   r  r   _cached_session)rg   r   r1   r   s      r.   rh   AIOHTTPClient.__init__k  s;     	mT+5f5?f   #r-   c                 D   [         c   eU R                  c  0 nU R                  (       a:  [        R                  " [
        R                  S9n[         R                  " US9US'   O[         R                  " SS9US'   [         R                  " S0 UD6U l        U R                  $ )Nr  )r  	connectorF)
verify_sslr,   )	rB   r  rZ   r  r  r   r  TCPConnectorClientSession)rg   r1   ssl_contexts      r.   r   AIOHTTPClient._sessionx  s    """'F%%!88!00 '.&:&:{&K{#&-&:&:e&L{##*#8#8#B6#BD ###r-   c                 .    [         R                  " U5      $ r5   )asyncior   r   s     r.   r   AIOHTTPClient.sleep_async  s    }}T""r-   r2   c                     [        S5      eNz4AIOHTTPClient does not support synchronous requests.r   r   s    r.   r   AIOHTTPClient.request      !B
 	
r-   r   r   r   c                     X4n0 nU R                   (       a=  U R                   S   U R                   S   :w  a  [        S5      eU R                   S   US'   U R                  (       a  U R                  US'   X6S'   XFS'   XV4$ )NrL   rM   zDAIOHTTPClient does not support different proxies for HTTP and HTTPS.r\   r   r   r  )rY   ra   r   )rg   r   r   r   r   r0   r1   s          r.   r  &AIOHTTPClient._get_request_args_kwargs  s     };;{{6"dkk'&:: Z  #kk'2F7O== $F9#y"v|r-   c                 ~   #    U R                  XX4S9I S h  vN u  nnnUR                  5       I S h  vN Xg4$  N" N7f)N)r   )r   r  )rg   r   r   r   r   r  rt   r  s           r.   r   AIOHTTPClient.request_async  sR      ++ , 
 
		

 lln${DD	
 %s   =9=;==r   c                     SnS[        U5      R                  < S3nSn[        R                  " U5      SU< S3-   n[	        X$S9Uer  r  r!  s        r.   r  #AIOHTTPClient._handle_request_error  r  r-   c                     [        S5      er  r   r   s    r.   r   AIOHTTPClient.request_stream  r  r-   AIOHTTPStreamReaderc                    #    U R                  XX45      u  pV U R                  R                  " U0 UD6I S h  vN nWR
                  n	UR                  n
UR                  nXU4$  N,! [         a  nU R	                  U5         S nANJS nAff = f7fr5   )r  r   r   r  r  r  statusr   r  s               r.   r   "AIOHTTPClient.request_stream_async  s      44
	*!]]22DCFCCH ""oo#++%555 D 	*&&q))	*r  c                     g r5   r,   r   s    r.   r   AIOHTTPClient.close  rH  r-   c                 T   #    U R                   R                  5       I S h  vN   g  N7fr5   )r   r   r   s    r.   r   AIOHTTPClient.close_async  s     mm!!###r  )r  r   )r'  r5   )rN   rO   rP   rQ   rH   r   r   r   rh   propertyr   r   r   r   r)   r   rR   r   r  r   r  r   r  r
   r   r   r   r   rT   r(  r)  s   @r.   rC   rC   h  sy   D CE$e-=&= >?$ $ $ $"#
uc738+<<= 

 #.5c3h.?. EE E c"	E 
uc738,,	-E"	Hy 	HX 	H
huosGCH<M&M N 
 LP66 #6.5c3h.?6	$c738+<<	=6 $ $r-   rC   c                      ^  \ rS rSrU 4S jr\S\4S j5       r SS\S\S\	\\4   S\
\\\	\\4   4   4S jjr SS\S\S\	\\4   4S	 jjrS
 rSrU =r$ )rD   i  c                 .   > [         [        U ]
  " S0 UD6  g )Nr,   )r   rD   rh   )rg   r1   r   s     r.   rh   !NoImportFoundAsyncClient.__init__  s    &6@@r-   r2   c                      [        S5      e)NzImport httpx not found. To make async http requests,You must either install httpx or define your ownasync http client by subclassing stripe.HTTPClientand setting stripe.default_http_client to an instance of it.)r  r,   r-   r.   raise_async_client_import_error8NoImportFoundAsyncClient.raise_async_client_import_error  s    O
 	
r-   r   r   r   c                 ,   #    U R                  5         g 7fr5   r&  r   s        r.   r   &NoImportFoundAsyncClient.request_async        	,,.   c                 ,   #    U R                  5         g 7fr5   r)  r   s        r.   r   -NoImportFoundAsyncClient.request_stream_async  r+  r,  c                 ,   #    U R                  5         g 7fr5   r)  r   s    r.   r   $NoImportFoundAsyncClient.close_async  s     ,,.r,  r,   r5   )rN   rO   rP   rQ   rh   staticmethodr   r&  rR   r   r   r   r)   r   r   r   rT   r(  r)  s   @r.   rD   rD     s    A 
U 
 
 LP// #/.5c3h.?/	uc738,,	-/ LP// #/.5c3h.?/
/ /r-   rD   )[r>  r   sysr  rf  r+   r   rd   r   r  r  http.clientr   r   r   stripe._request_metricsr   stripe._errorr   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   typing_extensionsr   r   r   r   r   urllib.requestr   r  urllib.errorr  r  r  r9   r@   r  r   r  r   r  rB   r   r  r   r  r7   r   r   rR   rS   __version__r   r)   re  r    r!   r"   stderrr  r  google.appengine.apir%   urllib.parser&   r'   r/   r>   rE   objectr3   r8   r6   rU   r:   r;   rA   rC   rD   )is   0r.   <module>r@     sr    
        
 $   2 ,    	*&
-/
7;3&&


/6}}S/AB/A!s1v/ABue
 5% 9,JJ 6=?	 H-
 /*
!3 
!# 
!, 
!!# ! ! !~
 ~
Bw/Z w/t|Z |~!Y !
@: @FnJ nbb** b*Jq$J q$h/z /S-  		  F  EE  G  C   H<  Hs   5F; G G G( -
H 83G< +G7=G< 0H ;GGGG
G%$G%(G43G47G< <HHHHH! H!