+
    ½¾jÀE  ã            
      ó–  a€ 0 t $ ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
Ht ^ RI
Ht ^RIHtHt ^RIHtHt RtRtRtRtR.t]]]]]]3,          tR. U Uu/ uF  w  rV ]! ]VR4      bK  	  upp tR	 R
 lt]P@                  '       d    ^ RI!H"t" ^ RIH#t# ^RI$Ht%  ! R R]#RR7      t&/ t'R](R&    ^ RI!t!^ RI!H)t)HtH*t*H+t+H,t,H-t-H.t.H/t/H0t0H1t1H2t2HtH3t3 ]-t4]'       d   ]! ],4      '       g   RtR/ F  t5 ]! ]3]54      ]']! ]!R]5 24      &   K  	  ^RI$Ht ]Pp                  R]9R3,          t:R R lt;R R lt<R R lt=R0R  R! llt>]P~                  R1R" R# ll4       t@]P~                  R1R$ R% ll4       t@R2R& R' llt@R( R) ltAR* R+ ltBR3R, R- lltCR# u upp i   ]6 d     K°  i ; i  ]7 d    Rt*Rt+Rt1Rt2^;t4t-^t.Rt/^ t0 L«i ; i)4é    )ÚannotationsN)ÚError)Ú	unhexlify)ÚProxySchemeUnsupportedÚSSLError)Ú_BRACELESS_IPV6_ADDRZ_REÚ_IPV4_REFzhttp/1.1c               ó    € V ^8„  d   QhRRRR/# )é   Úopenssl_versionÚstrÚreturnÚbool© )Úformats   "ÚP/home/ralf/ical-fahrzeuge/venv/lib/python3.14/site-packages/urllib3/util/ssl_.pyÚ__annotate__r      s   € ÷ ñ Øðà	ñó    c                ó(   € V P                  R 4      pV# )zOpenSSL )Ú
startswith)r   Ú
is_openssls   & r   Ú(_is_has_never_check_common_name_reliabler      s   € ð
 !×+Ñ+¨JÓ7€JàÐr   )Ú
VerifyMode)Ú	TypedDict)ÚSSLTransportc                  ó6   € ] tR t^/t$ R]R&   R]R&   R]R&   RtR# )	Ú_TYPE_PEER_CERT_RET_DICTztuple[tuple[str, str], ...]ÚsubjectAltNamez'tuple[tuple[tuple[str, str], ...], ...]Úsubjectr   ÚserialNumberr   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   r   r   r   r   /   s   ‡ Ø3Ó3Ø8Ó8Ø×r   r   )Útotalzdict[int, int]Ú_SSL_VERSION_TO_TLS_VERSION)ÚCERT_REQUIREDÚHAS_NEVER_CHECK_COMMON_NAMEÚOP_NO_COMPRESSIONÚOP_NO_TICKETÚOPENSSL_VERSIONÚPROTOCOL_TLSÚPROTOCOL_TLS_CLIENTÚVERIFY_X509_PARTIAL_CHAINÚVERIFY_X509_STRICTÚOP_NO_SSLv2ÚOP_NO_SSLv3Ú
SSLContextÚ
TLSVersionÚ	PROTOCOL_i   i @  i   i   i   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úcertzbytes | NoneÚfingerprintr   r   ÚNoner   )r   s   "r   r   r   l   s!   € ÷ "
ñ "
˜\ð "
¸ð "
Àñ "
r   c                ó  € V f   \        R4      hVP                  RR4      P                  4       p\        V4      pV\        9  d   \        RV 24      h\        P                  V4      pVf   \        RV 24      h \        VP                  4       4      pT! T 4      P                  4       p\        P                  ! Yd4      '       g!   \        RT RTP                  4        R	24      hR#   \         d   p\        T4      ThRp?ii ; i)
zÉ
Checks if given fingerprint matches the supplied certificate.

:param cert:
    Certificate as bytes object.
:param fingerprint:
    Fingerprint as string of hexdigits, can be interspersed by colons.
NzNo certificate for the peer.Ú:Ú zFingerprint of invalid length: zAHash function implementation unavailable for fingerprint length: z&Fingerprints did not match. Expected "z", got "Ú")r   ÚreplaceÚlowerÚlenÚHASHFUNC_MAPÚgetr   ÚencodeÚBinasciiErrorÚdigestÚhmacÚcompare_digestÚhex)r8   r9   Údigest_lengthÚhashfuncÚfingerprint_bytesÚeÚcert_digests   &&     r   Úassert_fingerprintrO   l   s  € ð ‚|ÜÐ5Ó6Ð6à×%Ñ% c¨2Ó.×4Ñ4Ó6€KÜ˜Ó$€MØœLÔ(ÜÐ8¸¸ÐFÓGÐGÜ×Ñ Ó.€HØÒÜØOÐP]ÈÐ_ó
ð 	
ð
!Ü% k×&8Ñ&8Ó&:Ó;Ðñ ˜4“.×'Ñ'Ó)€Kä×Ò˜{×>Ò>ÜØ4°[°MÀÈ+Ï/É/ÓJ[ÐI\Ð\]Ð^ó
ð 	
ñ ?øô ô !Ü�q‹k˜qÐ ûð!ús   Á<C) Ã)DÃ4D Ä Dc               ó    € V ^8„  d   QhRRRR/# )r   Ú	candidateúNone | int | strr   r   r   )r   s   "r   r   r   ‘   s   € ÷ ñ Ð!1ð °jñ r   c                ó¢   € V f   \         # \        V \        4      '       d/   \        \        V R4      pVf   \        \        RV ,           4      pV# V # )aÇ  
Resolves the argument to a numeric constant, which can be passed to
the wrap_socket function/method from the ssl module.
Defaults to :data:`ssl.CERT_REQUIRED`.
If given a string it is assumed to be the name of the constant in the
:mod:`ssl` module or its abbreviation.
(So you can specify `REQUIRED` instead of `CERT_REQUIRED`.
If it's neither `None` nor a string we assume it is already the numeric
constant which can directly be passed to wrap_socket.
NÚCERT_)r)   Ú
isinstancer   ÚgetattrÚssl©rQ   Úress   & r   Úresolve_cert_reqsrZ   ‘   sL   € ð ÒÜÐä�)œS×!Ò!Ü”c˜9 dÓ+ˆØŠ;Üœ#˜w¨Õ2Ó3ˆCØˆ
àÐr   c               ó    € V ^8„  d   QhRRRR/# )r   rQ   rR   r   Úintr   )r   s   "r   r   r   ¨   s   € ÷ ñ Ð#3ð ¸ñ r   c                óÔ   € V f   \         # \        V \        4      '       dH   \        \        V R4      pVf   \        \        RV ,           4      p\
        P                  ! \        V4      # V # )z
like resolve_cert_reqs
Nr6   )r.   rU   r   rV   rW   ÚtypingÚcastr\   rX   s   & r   Úresolve_ssl_versionr`   ¨   sX   € ð ÒÜÐä�)œS×!Ò!Ü”c˜9 dÓ+ˆØŠ;Üœ#˜{¨YÕ6Ó7ˆCÜ�{Š{œ3 Ó$Ð$àÐr   c               ó8   € V ^8„  d   QhRRRRRRRRRRRRR	RR
R/# )r   Ússl_versionú
int | NoneÚ	cert_reqsÚoptionsÚciphersú
str | NoneÚssl_minimum_versionÚssl_maximum_versionÚverify_flagsr   ússl.SSLContextr   )r   s   "r   r   r   ¸   sb   € ÷ Pñ PØðPàðPð ðPð ð	Pð
 $ðPð $ðPð ðPð ñPr   c                óÈ  € \         f   \        R4      hV R\        \        39  dy   Vf   Ve   \	        R4      h\
        P                  V \        P                  4      p\
        P                  V \        P                  4      p\        P                  ! R\        ^R7       \        \        4      pVe   WGn        M\        P                  Vn        Ve   WWn        V'       d   VP!                  V4       Vf   \"        P$                  MTpVf7   ^ pV\&        ,          pV\(        ,          pV\*        ,          pV\,        ,          pV;P.                  V,          un        Vf2   ^ p\0        P2                  R
8¼  d   V\4        ,          pV\6        ,          pV;P8                  V,          un        \;        VRR4      e   RVn        V\"        P$                  8X  d   \>        '       g   Wn         RVn!        MRVn!        Wn         RVn"        R	\F        PH                  9   d>   \F        PJ                  PM                  \F        PH                  P                  R	4      4      pMRpV'       d   W‡n'        V# )a·  Creates and configures an :class:`ssl.SSLContext` instance for use with urllib3.

:param ssl_version:
    The desired protocol version to use. This will default to
    PROTOCOL_SSLv23 which will negotiate the highest protocol that both
    the server and your installation of OpenSSL support.

    This parameter is deprecated instead use 'ssl_minimum_version'.
:param ssl_minimum_version:
    The minimum version of TLS to be used. Use the 'ssl.TLSVersion' enum for specifying the value.
:param ssl_maximum_version:
    The maximum version of TLS to be used. Use the 'ssl.TLSVersion' enum for specifying the value.
    Not recommended to set to anything other than 'ssl.TLSVersion.MAXIMUM_SUPPORTED' which is the
    default value.
:param cert_reqs:
    Whether to require the certificate verification. This defaults to
    ``ssl.CERT_REQUIRED``.
:param options:
    Specific OpenSSL options. These default to ``ssl.OP_NO_SSLv2``,
    ``ssl.OP_NO_SSLv3``, ``ssl.OP_NO_COMPRESSION``, and ``ssl.OP_NO_TICKET``.
:param ciphers:
    Which cipher suites to allow the server to select. Defaults to either system configured
    ciphers if OpenSSL 1.1.1+, otherwise uses a secure default set of ciphers.
:param verify_flags:
    The flags for certificate verification operations. These default to
    ``ssl.VERIFY_X509_PARTIAL_CHAIN`` and ``ssl.VERIFY_X509_STRICT`` for Python 3.13+.
:returns:
    Constructed SSLContext object with specified options
:rtype: SSLContext
Nz7Can't create an SSLContext object without an ssl modulezZCan't specify both 'ssl_version' and either 'ssl_minimum_version' or 'ssl_maximum_version'zi'ssl_version' option is deprecated and will be removed in urllib3 v3.0. Instead use 'ssl_minimum_version')ÚcategoryÚ
stacklevelÚpost_handshake_authTFÚSSLKEYLOGFILE)é   é   )(r4   Ú	TypeErrorr.   r/   Ú
ValueErrorr(   rC   r5   ÚMINIMUM_SUPPORTEDÚMAXIMUM_SUPPORTEDÚwarningsÚwarnÚFutureWarningÚminimum_versionÚTLSv1_2Úmaximum_versionÚset_ciphersrW   r)   r2   r3   r+   r,   re   ÚsysÚversion_infor0   r1   rj   rV   ro   ÚIS_PYOPENSSLÚverify_modeÚcheck_hostnameÚhostname_checks_common_nameÚosÚenvironÚpathÚ
expandvarsÚkeylog_filename)	rb   rd   re   rf   rh   ri   rj   ÚcontextÚsslkeylogfiles	   &&&&&&&  r   Úcreate_urllib3_contextr‹   ¸   s  € ôN ÒÜÐQÓRÐRð ˜4¤Ô/BÐCÔCð Ò*Ð.AÒ.MÜðAóð ô #>×"AÑ"AØœZ×9Ñ9ó#Ðô #>×"AÑ"AØœZ×9Ñ9ó#Ðô �MŠMðMä&Øõ	ô Ô,Ó-€GØÒ&Ø"5Õä",×"4Ñ"4ˆÔàÒ&Ø"5Ô÷ Ø×Ñ˜GÔ$ð &/Ò%6”×!Ò!¸I€Ià‚Øˆà”;Õˆà”;Õˆð 	Ô$Õ$ˆð
 	”<Õˆà‡O‚O�wÕ…OàÒØˆô ×Ñ˜wÔ&ØÔ5Õ5ˆLØÔ.Õ.ˆLà×Ò˜LÕ(Õô ˆwÐ-¨tÓ4Ò@Ø&*ˆÔ#ð ”C×%Ñ%Ô%¯l«lØ'ÔØ!%ˆÕà!&ˆÔØ'Ôà*/€GÔ'àœ"Ÿ*™*Ô$ÜŸ™×*Ñ*¬2¯:©:¯>©>¸/Ó+JÓK‰àˆßØ"/Ôà€Nr   c               óP   € 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RRRRR/# )r   Úsockúsocket.socketÚkeyfilerg   Úcertfilerd   rc   Úca_certsÚserver_hostnamerb   rf   Ússl_contextússl.SSLContext | NoneÚca_cert_dirÚkey_passwordÚca_cert_dataúNone | str | bytesÚ
tls_in_tlsztyping.Literal[False]r   zssl.SSLSocketr   )r   s   "r   r   r   L  s”   € ÷ ñ Ø
ðàðð ðð ð	ð
 ðð  ðð ðð ðð 'ðð ðð ðð %ðð &ðð ñr   c                ó   € R # ©Nr   ©r�   r�   r�   rd   r‘   r’   rb   rf   r“   r•   r–   r—   r™   s   &&&&&&&&&&&&&r   Ússl_wrap_socketr�   K  s   € ñ r   c               óP   € 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RRRRR/# ©r   r�   rŽ   r�   rg   r�   rd   rc   r‘   r’   rb   rf   r“   r”   r•   r–   r—   r˜   r™   r   r   ú ssl.SSLSocket | SSLTransportTyper   )r   s   "r   r   r   ^  s”   € ÷ +ñ +Ø
ð+àð+ð ð+ð ð	+ð
 ð+ð  ð+ð ð+ð ð+ð 'ð+ð ð+ð ð+ð %ð+ð ð+ð &ñ+r   c                ó   € R # r›   r   rœ   s   &&&&&&&&&&&&&r   r�   r�   ]  s   € ñ (+r   c               óP   € 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RRRRR/# rŸ   r   )r   s   "r   r   r   o  s¤   € ÷ Gñ GØ
ðGàðGð ðGð ð	Gð
 ðGð  ðGð ðGð ðGð 'ðGð ðGð ðGð %ðGð ðGð &ñGr   c                ó   € TpVf   \        WcVR7      pV'       g   V	'       g	   V'       d    VP                  WIV4       M&Vf#   \	        VR4      '       d   VP                  4        V'       d!   V
f   \        V4      '       d   \        R4      hV'       d)   V
f   VP                  W!4       MVP                  W!V
4       VP                  \        4       \        WWÅ4      pV#   \         d   p\        T4      ThRp?ii ; i)aX  
All arguments except for server_hostname, ssl_context, tls_in_tls, ca_cert_data and
ca_cert_dir have the same meaning as they do when using
:func:`ssl.create_default_context`, :meth:`ssl.SSLContext.load_cert_chain`,
:meth:`ssl.SSLContext.set_ciphers` and :meth:`ssl.SSLContext.wrap_socket`.

:param server_hostname:
    When SNI is supported, the expected hostname of the certificate
:param ssl_context:
    A pre-made :class:`SSLContext` object. If none is provided, one will
    be created using :func:`create_urllib3_context`.
:param ciphers:
    A string of ciphers we wish the client to support.
:param ca_cert_dir:
    A directory containing CA certificates in multiple separate files, as
    supported by OpenSSL's -CApath flag or the capath argument to
    SSLContext.load_verify_locations().
:param key_password:
    Optional password if the keyfile is encrypted.
:param ca_cert_data:
    Optional string containing CA certificates in PEM format suitable for
    passing as the cadata parameter to SSLContext.load_verify_locations()
:param tls_in_tls:
    Use SSLTransport to wrap the existing socket.
N)rf   Úload_default_certsz5Client private key is encrypted, password is required)r‹   Úload_verify_locationsÚOSErrorr   Úhasattrr¤   Ú_is_key_file_encryptedÚload_cert_chainÚset_alpn_protocolsÚALPN_PROTOCOLSÚ_ssl_wrap_socket_impl)r�   r�   r�   rd   r‘   r’   rb   rf   r“   r•   r–   r—   r™   r‰   rM   Ússl_socks   &&&&&&&&&&&&&   r   r�   r�   o  sß   € ðP €GØ‚ô )¨ÈÔQˆç—;§,ð	%Ø×)Ñ)¨(ÀÕNð 
Ò	¤¨Ð2F×!GÒ!Gà×"Ñ"Ô$÷
 �<Ò'Ô,BÀ7×,KÒ,KÜÐNÓOÐOçØÒØ×#Ñ# HÕ6à×#Ñ# H°|ÔDà×Ñœ~Ô.ä$ T°JÓP€HØ€Oøô- ô 	%Ü˜1“+ 1Ð$ûð	%ús   ­C! Ã!C=Ã,C8Ã8C=c               ó    € V ^8„  d   QhRRRR/# )r   Úhostnamezstr | bytesr   r   r   )r   s   "r   r   r   ¹  s   € ÷ 
Vñ 
V˜;ð 
V¨4ñ 
Vr   c                óÊ   € \        V \        4      '       d   V P                  R4      p \        \        P
                  ! V 4      ;'       g    \        P
                  ! V 4      4      # )zÖDetects whether the hostname given is an IPv4 or IPv6 address.
Also detects IPv6 addresses with Zone IDs.

:param str hostname: Hostname to examine.
:return: True if the hostname is an IP address, False otherwise.
Úascii)rU   ÚbytesÚdecoder   r	   Úmatchr   )r¯   s   &r   Úis_ipaddressrµ   ¹  sG   € ô �(œE×"Ò"à—?‘? 7Ó+ˆÜ”—’˜xÓ(×TÐTÔ,D×,JÒ,JÈ8Ó,TÓUÐUr   c               ó    € V ^8„  d   QhRRRR/# )r   Úkey_filer   r   r   r   )r   s   "r   r   r   Æ  s   € ÷ ñ  Sð ¨Tñ r   c                óœ   € \        V 4      ;_uu_ 4       pV F  pRV9   g   K   RRR4       R# 	  RRR4       R#   + '       g   i     R# ; i)z*Detects if a key file is encrypted or not.Ú	ENCRYPTEDNTF)Úopen)r·   ÚfÚlines   &  r   r¨   r¨   Æ  s>   € ä	ˆh�Œ˜1ÛˆDà˜dÖ"Ø÷	 
‰Ù÷ 
ñ ÷ 
Žñ ús   ”
:£:®:ºA	c          
     ó,   € V ^8„  d   QhRRRRRRRRR	R
/# )r   r�   rŽ   r“   rk   r™   r   r’   rg   r   r    r   )r   s   "r   r   r   Ñ  sA   € ÷ Jñ JØ
ðJàðJð ðJð  ð	Jð
 &ñJr   c                ó¨   € V'       d:   \         '       g   \        R 4      h\         P                  ! V4       \        WV4      # VP                  WR7      # )z0TLS in TLS requires support for the 'ssl' module)r’   )r   r   Ú$_validate_ssl_context_for_tls_in_tlsÚwrap_socket)r�   r“   r™   r’   s   &&&&r   r¬   r¬   Ñ  sM   € ÷ ß‹|ä(ØBóð ô 	×9Ò9¸+ÔFÜ˜D¨Ó?Ð?à×"Ñ" 4Ð"ÓIÐIr   ))é    Úmd5)é(   Úsha1)é@   Úsha256)ÚTLSv1ÚTLSv1_1r{   )NNNNNNN)............)NNNNNNNNNNNFr›   )DÚ__conditional_annotations__Ú
__future__r   ÚhashlibrG   r„   Úsocketr~   r^   rw   Úbinasciir   rE   r   Ú
exceptionsr   r   Úurlr   r	   r4   r   r*   r€   r«   Útupler\   r   Ú_TYPE_VERSION_INFOrV   rB   r   ÚTYPE_CHECKINGrW   r   r   ÚssltransportÚSSLTransportTyper   r(   r%   r)   r+   r,   r-   r.   r/   r0   r1   r2   r3   r5   ÚPROTOCOL_SSLv23ÚattrÚAttributeErrorÚImportErrorÚUnionr²   Ú_TYPE_PEER_CERT_RETrO   rZ   r`   r‹   Úoverloadr�   rµ   r¨   r¬   )ÚlengthÚ	algorithmrÉ   s   00@r   Ú<module>rÞ      s  øðß "Ð "ã Û Û 	Û Û 
Û Û Ý +Ý ç 9ß 3à€
Ø€Ø#Ð Ø€Ø�€à˜3  S¨#¨sÐ2Õ3Ð ñ
 IôáHÑˆð ‰G�G˜Y¨Ó-Ò-ÙHò€õð 
××ÐÝÝ å>ô 9°Eõ ð /1Ð ˜^Ó 0ð.Û÷÷ ÷ õ ð  #€O÷ #Ñ+SØ÷,ò ,ð ',Ð#ó 0ˆð	ÙLSØ˜DóMÐ'©°°yÀÀÐ5GÓ(HÓIñ 0õ +ð —l‘lÐ#=¸uÀdÐ#JÕKÐ õ"
õJõ.÷ Pðf ‡�öó ðð" ‡�ö+ó ð+÷"GõT
Võ÷Jñ JùóqøðB ô 	Úð	ûð ô ØÐØ€LØ€KØ€KØ%&Ð&€O�lØÐØ 'ÐØÒðúsH   Á!FÂ:+F, Ã&F, Ã4F, Ã<FÄ
F, ÆF)Æ%F, Æ(F)Æ)F, Æ,GÇG