U âQab-! ã @ s¼ d dl Z d dlZd dlZd dlZd dlZd dlmZmZmZm Z d dl mZmZ zd dl Z W n ek rt dZ Y nX dddddgZd ¡ ¡ ZzejjZejZW n ek r¾ e ZZY nX e dk oÒeeefkZzd d l mZmZ W nR ek �r: zd dlmZ d dlmZ W n ek �r4 dZdZY nX Y nX e�sRG d d„ deƒZe�sjddd„Zdd„ ZG dd„ deƒZG dd„ deƒZd dd„Z dd„ Z!e!dd„ ƒZ"dd„ Z#dd„ Z$dS )!é N)ÚurllibÚhttp_clientÚmapÚfilter)ÚResolutionErrorÚExtractionErrorÚVerifyingHTTPSHandlerÚfind_ca_bundleÚis_availableÚ cert_pathsÚ opener_fora /etc/pki/tls/certs/ca-bundle.crt /etc/ssl/certs/ca-certificates.crt /usr/share/ssl/certs/ca-bundle.crt /usr/local/share/certs/ca-root.crt /etc/ssl/cert.pem /System/Library/OpenSSL/certs/cert.pem /usr/local/share/certs/ca-root-nss.crt /etc/ssl/ca-bundle.pem )ÚCertificateErrorÚmatch_hostname)r )r c @ s e Zd ZdS )r N)Ú__name__Ú __module__Ú__qualname__© r r ú:/usr/lib/python3.8/site-packages/setuptools/ssl_support.pyr 5 s r é c C sò g }| sdS | d¡}|d }|dd… }| d¡}||krLtdt| ƒ ƒ‚|s`| ¡ | ¡ kS |dkrt| d¡ n>| d ¡sˆ| d ¡rš| t |¡¡ n| t |¡ d d¡¡ |D ]}| t |¡¡ q¶t dd |¡ d tj¡} | |¡S )zqMatching according to RFC 6125, section 6.4.3 https://tools.ietf.org/html/rfc6125#section-6.4.3 FÚ.r r NÚ*z,too many wildcards in certificate DNS name: z[^.]+zxn--z\*z[^.]*z\Az\.z\Z)ÚsplitÚcountr ÚreprÚlowerÚappendÚ startswithÚreÚescapeÚreplaceÚcompileÚjoinÚ IGNORECASEÚmatch) ZdnÚhostnameZ max_wildcardsZpatsÚpartsZleftmostZ remainderZ wildcardsZfragZpatr r r Ú_dnsname_match; s, ÿr&