shell bypass 403
U
��.eWF � @ s d Z ddlZddlZddlZddlZddlZddlmZ ddlm Z m
Z
ddlmZ ddl
mZmZmZ ddlmZ ddlmZ dd lmZ dd
lmZ ddlmZ ddlmZ dd
lmZm Z ddl!m"Z"m#Z# e�rDddl$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z- ddl.Z/ddl0m1Z1 ddl2m3Z3 ddl4m5Z5 e/j6j7j8Z9e)e:e:f Z;e�<e=�Z>dd� Z?dd� Z@G dd� deA�ZBdd� ZCG dd� deA�ZDdd� ZEdd � ZFd!d"� ZGd#d$� ZHd%d&� ZId'd(� ZJd)d*� ZKG d+d,� d,eL�ZMd<d-d.�ZNd/d0� ZOd=d1d2�ZPd3d4� ZQd>d6d7�ZRG d8d9� d9eL�ZSG d:d;� d;eL�ZTdS )?zM
The main purpose of this module is to expose LinkCollector.collect_links().
� N)�OrderedDict)�html5lib�requests)�unescape)� HTTPError�
RetryError�SSLError)�parse)�request��Link)�ARCHIVE_EXTENSIONS)�redact_auth_from_url)�MYPY_CHECK_RUNNING)�path_to_url�url_to_path)�is_url�vcs) �Callable�Dict�Iterable�List�MutableMapping�Optional�Sequence�Tuple�Union)�Response)�SearchScope)�
PipSessionc C s6 t jD ]*}| �� �|�r| t|� dkr| S qdS )zgLook for VCS schemes in the URL.
Returns the matched VCS scheme, or None if there's no match.
z+:N)r Zschemes�lower�
startswith�len)�url�scheme� r% �;/usr/lib/python3.8/site-packages/pip/_internal/collector.py�_match_vcs_scheme/ s
r'