# CVE-2021-30005-POC
PoC for [CVE-2021-30005](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-30005).
## Details
The vulnerability resides in the fact that PyCharm would automatically activate a virtual environment found in the project when opened for the first time. This allowed an attacker to create a repository containing a malicious virtual environment with arbitrary commands in the activation scripts (e.g. `venv/bin/activate`), that would get executed when downloaded and opened in PyCharm.
The injected command can be found [here](https://github.com/atorralba/CVE-2021-30005-POC/blob/2f5a4d99bac731200718883a8faa008b08788c88/venv/bin/activate#L4).
## To reproduce
Clone the repo:
```
git clone https://github.com/atorralba/CVE-2021-30005-POC
```
And open it in a vulnerable version of PyCharm (before 2020.3.4).
## More information about the fix
See **Trusted Projects** in https://blog.jetbrains.com/pycharm/2021/03/pycharm-2020-3-4-is-out/
## References
* Inspired by: https://blog.doyensec.com/2020/03/16/vscode_codeexec.html
* JetBrains security bulletin: https://blog.jetbrains.com/blog/2021/05/07/jetbrains-security-bulletin-q1-2021/
[4.0K] /data/pocs/aaf13538331e9b509b4ca37782eb4c6e747b9355
├── [1.1K] README.md
├── [ 29] test.py
└── [4.0K] venv
├── [4.0K] bin
│ ├── [2.2K] activate
│ ├── [1.4K] activate.csh
│ ├── [3.0K] activate.fish
│ ├── [1.7K] activate.ps1
│ ├── [1.2K] activate_this.py
│ ├── [ 257] easy_install
│ ├── [ 257] easy_install2
│ ├── [ 257] easy_install-2.7
│ ├── [ 248] pip
│ ├── [ 248] pip2
│ ├── [ 248] pip-2.7
│ ├── [ 248] pip2.7
│ ├── [3.5M] python
│ ├── [ 6] python2 -> python
│ ├── [ 6] python2.7 -> python
│ ├── [ 235] wheel
│ ├── [ 235] wheel2
│ └── [ 235] wheel-2.7
├── [4.0K] include
│ └── [ 22] python2.7 -> /usr/include/python2.7
├── [4.0K] lib
│ └── [4.0K] python2.7
│ ├── [ 30] lib-dynload -> /usr/lib/python2.7/lib-dynload
│ ├── [ 24] os.py -> /usr/lib/python2.7/os.py
│ ├── [ 25] os.pyc -> /usr/lib/python2.7/os.pyc
│ ├── [4.0K] site-packages
│ │ ├── [ 126] easy_install.py
│ │ ├── [4.0K] pip
│ │ │ ├── [ 455] __init__.py
│ │ │ ├── [4.0K] _internal
│ │ │ │ ├── [7.4K] build_env.py
│ │ │ │ ├── [ 11K] cache.py
│ │ │ │ ├── [4.0K] cli
│ │ │ │ │ ├── [6.4K] autocompletion.py
│ │ │ │ │ ├── [7.8K] base_command.py
│ │ │ │ │ ├── [ 27K] cmdoptions.py
│ │ │ │ │ ├── [ 975] command_context.py
│ │ │ │ │ ├── [ 132] __init__.py
│ │ │ │ │ ├── [2.8K] main_parser.py
│ │ │ │ │ ├── [2.5K] main.py
│ │ │ │ │ ├── [9.3K] parser.py
│ │ │ │ │ ├── [ 12K] req_command.py
│ │ │ │ │ └── [ 156] status_codes.py
│ │ │ │ ├── [4.0K] commands
│ │ │ │ │ ├── [1.5K] check.py
│ │ │ │ │ ├── [2.9K] completion.py
│ │ │ │ │ ├── [7.1K] configuration.py
│ │ │ │ │ ├── [4.1K] debug.py
│ │ │ │ │ ├── [4.9K] download.py
│ │ │ │ │ ├── [3.4K] freeze.py
│ │ │ │ │ ├── [1.7K] hash.py
│ │ │ │ │ ├── [1.2K] help.py
│ │ │ │ │ ├── [3.6K] __init__.py
│ │ │ │ │ ├── [ 26K] install.py
│ │ │ │ │ ├── [ 10K] list.py
│ │ │ │ │ ├── [5.0K] search.py
│ │ │ │ │ ├── [6.6K] show.py
│ │ │ │ │ ├── [2.9K] uninstall.py
│ │ │ │ │ └── [7.0K] wheel.py
│ │ │ │ ├── [ 14K] configuration.py
│ │ │ │ ├── [4.0K] distributions
│ │ │ │ │ ├── [1.4K] base.py
│ │ │ │ │ ├── [ 959] __init__.py
│ │ │ │ │ ├── [ 760] installed.py
│ │ │ │ │ ├── [4.0K] sdist.py
│ │ │ │ │ └── [1.3K] wheel.py
│ │ │ │ ├── [ 10K] exceptions.py
│ │ │ │ ├── [4.0K] index
│ │ │ │ │ ├── [ 17K] collector.py
│ │ │ │ │ ├── [ 30] __init__.py
│ │ │ │ │ └── [ 37K] package_finder.py
│ │ │ │ ├── [ 517] __init__.py
│ │ │ │ ├── [ 16K] legacy_resolve.py
│ │ │ │ ├── [6.6K] locations.py
│ │ │ │ ├── [ 437] main.py
│ │ │ │ ├── [4.0K] models
│ │ │ │ │ ├── [1.1K] candidate.py
│ │ │ │ │ ├── [2.6K] format_control.py
│ │ │ │ │ ├── [1.0K] index.py
│ │ │ │ │ ├── [ 63] __init__.py
│ │ │ │ │ ├── [6.7K] link.py
│ │ │ │ │ ├── [ 679] scheme.py
│ │ │ │ │ ├── [3.8K] search_scope.py
│ │ │ │ │ ├── [1.9K] selection_prefs.py
│ │ │ │ │ ├── [3.7K] target_python.py
│ │ │ │ │ └── [2.7K] wheel.py
│ │ │ │ ├── [4.0K] network
│ │ │ │ │ ├── [ 11K] auth.py
│ │ │ │ │ ├── [2.3K] cache.py
│ │ │ │ │ ├── [6.1K] download.py
│ │ │ │ │ ├── [ 50] __init__.py
│ │ │ │ │ ├── [ 14K] session.py
│ │ │ │ │ ├── [1.9K] utils.py
│ │ │ │ │ └── [1.6K] xmlrpc.py
│ │ │ │ ├── [4.0K] operations
│ │ │ │ │ ├── [4.0K] build
│ │ │ │ │ │ ├── [ 0] __init__.py
│ │ │ │ │ │ ├── [3.9K] metadata_legacy.py
│ │ │ │ │ │ ├── [1.3K] metadata.py
│ │ │ │ │ │ ├── [3.3K] wheel_legacy.py
│ │ │ │ │ │ └── [1.4K] wheel.py
│ │ │ │ │ ├── [5.2K] check.py
│ │ │ │ │ ├── [9.9K] freeze.py
│ │ │ │ │ ├── [ 0] __init__.py
│ │ │ │ │ ├── [4.0K] install
│ │ │ │ │ │ ├── [1.5K] editable_legacy.py
│ │ │ │ │ │ ├── [ 51] __init__.py
│ │ │ │ │ │ ├── [4.5K] legacy.py
│ │ │ │ │ │ └── [ 22K] wheel.py
│ │ │ │ │ └── [ 20K] prepare.py
│ │ │ │ ├── [5.4K] pep425tags.py
│ │ │ │ ├── [7.2K] pyproject.py
│ │ │ │ ├── [4.0K] req
│ │ │ │ │ ├── [ 14K] constructors.py
│ │ │ │ │ ├── [2.6K] __init__.py
│ │ │ │ │ ├── [ 18K] req_file.py
│ │ │ │ │ ├── [ 30K] req_install.py
│ │ │ │ │ ├── [7.9K] req_set.py
│ │ │ │ │ ├── [4.6K] req_tracker.py
│ │ │ │ │ └── [ 23K] req_uninstall.py
│ │ │ │ ├── [7.8K] self_outdated_check.py
│ │ │ │ ├── [4.0K] utils
│ │ │ │ │ ├── [1.1K] appdirs.py
│ │ │ │ │ ├── [8.7K] compat.py
│ │ │ │ │ ├── [3.2K] deprecation.py
│ │ │ │ │ ├── [1.3K] distutils_args.py
│ │ │ │ │ ├── [1.3K] encoding.py
│ │ │ │ │ ├── [1.1K] entrypoints.py
│ │ │ │ │ ├── [5.1K] filesystem.py
│ │ │ │ │ ├── [ 571] filetypes.py
│ │ │ │ │ ├── [3.2K] glibc.py
│ │ │ │ │ ├── [3.8K] hashes.py
│ │ │ │ │ ├── [ 0] __init__.py
│ │ │ │ │ ├── [ 810] inject_securetransport.py
│ │ │ │ │ ├── [ 13K] logging.py
│ │ │ │ │ ├── [ 741] marker_files.py
│ │ │ │ │ ├── [ 25K] misc.py
│ │ │ │ │ ├── [1.1K] models.py
│ │ │ │ │ ├── [3.0K] packaging.py
│ │ │ │ │ ├── [1.2K] pkg_resources.py
│ │ │ │ │ ├── [5.0K] setuptools_build.py
│ │ │ │ │ ├── [9.7K] subprocess.py
│ │ │ │ │ ├── [7.6K] temp_dir.py
│ │ │ │ │ ├── [1.4K] typing.py
│ │ │ │ │ ├── [ 14K] ui.py
│ │ │ │ │ ├── [9.2K] unpacking.py
│ │ │ │ │ ├── [1.4K] urls.py
│ │ │ │ │ ├── [3.3K] virtualenv.py
│ │ │ │ │ └── [7.1K] wheel.py
│ │ │ │ ├── [4.0K] vcs
│ │ │ │ │ ├── [3.9K] bazaar.py
│ │ │ │ │ ├── [ 14K] git.py
│ │ │ │ │ ├── [ 617] __init__.py
│ │ │ │ │ ├── [5.0K] mercurial.py
│ │ │ │ │ ├── [ 12K] subversion.py
│ │ │ │ │ └── [ 22K] versioncontrol.py
│ │ │ │ └── [9.2K] wheel_builder.py
│ │ │ ├── [ 632] __main__.py
│ │ │ └── [4.0K] _vendor
│ │ │ ├── [ 26K] appdirs.py
│ │ │ ├── [4.0K] cachecontrol
│ │ │ │ ├── [4.8K] adapter.py
│ │ │ │ ├── [ 805] cache.py
│ │ │ │ ├── [4.0K] caches
│ │ │ │ │ ├── [4.1K] file_cache.py
│ │ │ │ │ ├── [ 86] __init__.py
│ │ │ │ │ └── [ 856] redis_cache.py
│ │ │ │ ├── [1.3K] _cmd.py
│ │ │ │ ├── [ 695] compat.py
│ │ │ │ ├── [ 14K] controller.py
│ │ │ │ ├── [2.5K] filewrapper.py
│ │ │ │ ├── [4.0K] heuristics.py
│ │ │ │ ├── [ 302] __init__.py
│ │ │ │ ├── [6.9K] serialize.py
│ │ │ │ └── [ 690] wrapper.py
│ │ │ ├── [4.0K] certifi
│ │ │ │ ├── [275K] cacert.pem
│ │ │ │ ├── [ 218] core.py
│ │ │ │ ├── [ 52] __init__.py
│ │ │ │ └── [ 53] __main__.py
│ │ │ ├── [4.0K] chardet
│ │ │ │ ├── [ 31K] big5freq.py
│ │ │ │ ├── [1.7K] big5prober.py
│ │ │ │ ├── [9.2K] chardistribution.py
│ │ │ │ ├── [3.7K] charsetgroupprober.py
│ │ │ │ ├── [5.0K] charsetprober.py
│ │ │ │ ├── [4.0K] cli
│ │ │ │ │ ├── [2.7K] chardetect.py
│ │ │ │ │ └── [ 1] __init__.py
│ │ │ │ ├── [3.5K] codingstatemachine.py
│ │ │ │ ├── [1.1K] compat.py
│ │ │ │ ├── [1.8K] cp949prober.py
│ │ │ │ ├── [1.6K] enums.py
│ │ │ │ ├── [3.9K] escprober.py
│ │ │ │ ├── [ 10K] escsm.py
│ │ │ │ ├── [3.7K] eucjpprober.py
│ │ │ │ ├── [ 13K] euckrfreq.py
│ │ │ │ ├── [1.7K] euckrprober.py
│ │ │ │ ├── [ 31K] euctwfreq.py
│ │ │ │ ├── [1.7K] euctwprober.py
│ │ │ │ ├── [ 20K] gb2312freq.py
│ │ │ │ ├── [1.7K] gb2312prober.py
│ │ │ │ ├── [ 14K] hebrewprober.py
│ │ │ │ ├── [1.5K] __init__.py
│ │ │ │ ├── [ 25K] jisfreq.py
│ │ │ │ ├── [ 19K] jpcntx.py
│ │ │ │ ├── [ 13K] langbulgarianmodel.py
│ │ │ │ ├── [ 18K] langcyrillicmodel.py
│ │ │ │ ├── [ 12K] langgreekmodel.py
│ │ │ │ ├── [ 11K] langhebrewmodel.py
│ │ │ │ ├── [ 12K] langhungarianmodel.py
│ │ │ │ ├── [ 11K] langthaimodel.py
│ │ │ │ ├── [ 11K] langturkishmodel.py
│ │ │ │ ├── [5.2K] latin1prober.py
│ │ │ │ ├── [3.3K] mbcharsetprober.py
│ │ │ │ ├── [2.0K] mbcsgroupprober.py
│ │ │ │ ├── [ 25K] mbcssm.py
│ │ │ │ ├── [5.5K] sbcharsetprober.py
│ │ │ │ ├── [3.5K] sbcsgroupprober.py
│ │ │ │ ├── [3.7K] sjisprober.py
│ │ │ │ ├── [ 12K] universaldetector.py
│ │ │ │ ├── [2.7K] utf8prober.py
│ │ │ │ └── [ 242] version.py
│ │ │ ├── [4.0K] colorama
│ │ │ │ ├── [2.5K] ansi.py
│ │ │ │ ├── [ 10K] ansitowin32.py
│ │ │ │ ├── [1.9K] initialise.py
│ │ │ │ ├── [ 239] __init__.py
│ │ │ │ ├── [5.3K] win32.py
│ │ │ │ └── [6.3K] winterm.py
│ │ │ ├── [ 17K] contextlib2.py
│ │ │ ├── [4.0K] distlib
│ │ │ │ ├── [4.0K] _backport
│ │ │ │ │ ├── [ 274] __init__.py
│ │ │ │ │ ├── [ 971] misc.py
│ │ │ │ │ ├── [ 25K] shutil.py
│ │ │ │ │ ├── [2.6K] sysconfig.cfg
│ │ │ │ │ ├── [ 26K] sysconfig.py
│ │ │ │ │ └── [ 90K] tarfile.py
│ │ │ │ ├── [ 40K] compat.py
│ │ │ │ ├── [ 50K] database.py
│ │ │ │ ├── [ 21K] index.py
│ │ │ │ ├── [ 581] __init__.py
│ │ │ │ ├── [ 51K] locators.py
│ │ │ │ ├── [ 14K] manifest.py
│ │ │ │ ├── [4.3K] markers.py
│ │ │ │ ├── [ 39K] metadata.py
│ │ │ │ ├── [ 11K] resources.py
│ │ │ │ ├── [ 17K] scripts.py
│ │ │ │ ├── [ 94K] t32.exe
│ │ │ │ ├── [104K] t64.exe
│ │ │ │ ├── [ 58K] util.py
│ │ │ │ ├── [ 23K] version.py
│ │ │ │ ├── [ 88K] w32.exe
│ │ │ │ ├── [ 98K] w64.exe
│ │ │ │ └── [ 40K] wheel.py
│ │ │ ├── [ 42K] distro.py
│ │ │ ├── [4.0K] html5lib
│ │ │ │ ├── [ 82K] constants.py
│ │ │ │ ├── [4.0K] filters
│ │ │ │ │ ├── [ 919] alphabeticalattributes.py
│ │ │ │ │ ├── [ 286] base.py
│ │ │ │ │ ├── [ 0] __init__.py
│ │ │ │ │ ├── [2.9K] inject_meta_charset.py
│ │ │ │ │ ├── [3.6K] lint.py
│ │ │ │ │ ├── [ 10K] optionaltags.py
│ │ │ │ │ ├── [ 26K] sanitizer.py
│ │ │ │ │ └── [1.2K] whitespace.py
│ │ │ │ ├── [116K] html5parser.py
│ │ │ │ ├── [ 16K] _ihatexml.py
│ │ │ │ ├── [1.1K] __init__.py
│ │ │ │ ├── [ 32K] _inputstream.py
│ │ │ │ ├── [ 15K] serializer.py
│ │ │ │ ├── [ 75K] _tokenizer.py
│ │ │ │ ├── [4.0K] treeadapters
│ │ │ │ │ ├── [1.7K] genshi.py
│ │ │ │ │ ├── [ 679] __init__.py
│ │ │ │ │ └── [1.7K] sax.py
│ │ │ │ ├── [4.0K] treebuilders
│ │ │ │ │ ├── [ 14K] base.py
│ │ │ │ │ ├── [8.7K] dom.py
│ │ │ │ │ ├── [ 14K] etree_lxml.py
│ │ │ │ │ ├── [ 12K] etree.py
│ │ │ │ │ └── [3.5K] __init__.py
│ │ │ │ ├── [4.0K] treewalkers
│ │ │ │ │ ├── [7.3K] base.py
│ │ │ │ │ ├── [1.4K] dom.py
│ │ │ │ │ ├── [6.2K] etree_lxml.py
│ │ │ │ │ ├── [4.4K] etree.py
│ │ │ │ │ ├── [2.3K] genshi.py
│ │ │ │ │ └── [5.6K] __init__.py
│ │ │ │ ├── [4.0K] _trie
│ │ │ │ │ ├── [1013] _base.py
│ │ │ │ │ ├── [1.2K] datrie.py
│ │ │ │ │ ├── [ 289] __init__.py
│ │ │ │ │ └── [1.7K] py.py
│ │ │ │ └── [3.9K] _utils.py
│ │ │ ├── [4.0K] idna
│ │ │ │ ├── [3.2K] codec.py
│ │ │ │ ├── [ 232] compat.py
│ │ │ │ ├── [ 11K] core.py
│ │ │ │ ├── [ 40K] idnadata.py
│ │ │ │ ├── [ 58] __init__.py
│ │ │ │ ├── [1.7K] intranges.py
│ │ │ │ ├── [ 21] package_data.py
│ │ │ │ └── [194K] uts46data.py
│ │ │ ├── [4.5K] __init__.py
│ │ │ ├── [ 78K] ipaddress.py
│ │ │ ├── [4.0K] msgpack
│ │ │ │ ├── [1.1K] exceptions.py
│ │ │ │ ├── [ 37K] fallback.py
│ │ │ │ ├── [1.5K] __init__.py
│ │ │ │ └── [ 20] _version.py
│ │ │ ├── [4.0K] packaging
│ │ │ │ ├── [ 744] __about__.py
│ │ │ │ ├── [1.1K] _compat.py
│ │ │ │ ├── [ 562] __init__.py
│ │ │ │ ├── [9.3K] markers.py
│ │ │ │ ├── [4.8K] requirements.py
│ │ │ │ ├── [ 31K] specifiers.py
│ │ │ │ ├── [2.0K] _structures.py
│ │ │ │ ├── [ 23K] tags.py
│ │ │ │ ├── [1.4K] _typing.py
│ │ │ │ ├── [1.7K] utils.py
│ │ │ │ └── [ 15K] version.py
│ │ │ ├── [4.0K] pep517
│ │ │ │ ├── [3.2K] build.py
│ │ │ │ ├── [5.8K] check.py
│ │ │ │ ├── [4.0K] colorlog.py
│ │ │ │ ├── [ 780] compat.py
│ │ │ │ ├── [1.1K] dirtools.py
│ │ │ │ ├── [5.9K] envbuild.py
│ │ │ │ ├── [ 84] __init__.py
│ │ │ │ ├── [7.6K] _in_process.py
│ │ │ │ ├── [2.4K] meta.py
│ │ │ │ └── [ 10K] wrappers.py
│ │ │ ├── [4.0K] pkg_resources
│ │ │ │ ├── [106K] __init__.py
│ │ │ │ └── [ 562] py31compat.py
│ │ │ ├── [4.0K] progress
│ │ │ │ ├── [2.8K] bar.py
│ │ │ │ ├── [1.3K] counter.py
│ │ │ │ ├── [4.7K] __init__.py
│ │ │ │ └── [1.3K] spinner.py
│ │ │ ├── [266K] pyparsing.py
│ │ │ ├── [4.0K] pytoml
│ │ │ │ ├── [ 509] core.py
│ │ │ │ ├── [ 127] __init__.py
│ │ │ │ ├── [ 10K] parser.py
│ │ │ │ ├── [1021] test.py
│ │ │ │ ├── [1.6K] utils.py
│ │ │ │ └── [3.3K] writer.py
│ │ │ ├── [4.0K] requests
│ │ │ │ ├── [ 21K] adapters.py
│ │ │ │ ├── [6.1K] api.py
│ │ │ │ ├── [10.0K] auth.py
│ │ │ │ ├── [ 465] certs.py
│ │ │ │ ├── [1.9K] compat.py
│ │ │ │ ├── [ 18K] cookies.py
│ │ │ │ ├── [3.1K] exceptions.py
│ │ │ │ ├── [3.5K] help.py
│ │ │ │ ├── [ 757] hooks.py
│ │ │ │ ├── [4.0K] __init__.py
│ │ │ │ ├── [1.1K] _internal_utils.py
│ │ │ │ ├── [ 33K] models.py
│ │ │ │ ├── [ 695] packages.py
│ │ │ │ ├── [ 29K] sessions.py
│ │ │ │ ├── [4.0K] status_codes.py
│ │ │ │ ├── [2.9K] structures.py
│ │ │ │ ├── [ 29K] utils.py
│ │ │ │ └── [ 436] __version__.py
│ │ │ ├── [9.7K] retrying.py
│ │ │ ├── [ 33K] six.py
│ │ │ ├── [4.0K] urllib3
│ │ │ │ ├── [ 11K] _collections.py
│ │ │ │ ├── [ 36K] connectionpool.py
│ │ │ │ ├── [ 15K] connection.py
│ │ │ │ ├── [4.0K] contrib
│ │ │ │ │ ├── [ 909] _appengine_environ.py
│ │ │ │ │ ├── [ 11K] appengine.py
│ │ │ │ │ ├── [ 0] __init__.py
│ │ │ │ │ ├── [4.1K] ntlmpool.py
│ │ │ │ │ ├── [ 16K] pyopenssl.py
│ │ │ │ │ ├── [4.0K] _securetransport
│ │ │ │ │ │ ├── [ 16K] bindings.py
│ │ │ │ │ │ ├── [ 0] __init__.py
│ │ │ │ │ │ └── [ 12K] low_level.py
│ │ │ │ │ ├── [ 32K] securetransport.py
│ │ │ │ │ └── [6.9K] socks.py
│ │ │ │ ├── [6.5K] exceptions.py
│ │ │ │ ├── [8.4K] fields.py
│ │ │ │ ├── [2.4K] filepost.py
│ │ │ │ ├── [2.6K] __init__.py
│ │ │ │ ├── [4.0K] packages
│ │ │ │ │ ├── [4.0K] backports
│ │ │ │ │ │ ├── [ 0] __init__.py
│ │ │ │ │ │ └── [1.4K] makefile.py
│ │ │ │ │ ├── [ 108] __init__.py
│ │ │ │ │ ├── [ 32K] six.py
│ │ │ │ │ └── [4.0K] ssl_match_hostname
│ │ │ │ │ ├── [5.6K] _implementation.py
│ │ │ │ │ └── [ 688] __init__.py
│ │ │ │ ├── [ 17K] poolmanager.py
│ │ │ │ ├── [5.9K] request.py
│ │ │ │ ├── [ 27K] response.py
│ │ │ │ └── [4.0K] util
│ │ │ │ ├── [4.5K] connection.py
│ │ │ │ ├── [1.0K] __init__.py
│ │ │ │ ├── [ 497] queue.py
│ │ │ │ ├── [3.7K] request.py
│ │ │ │ ├── [2.5K] response.py
│ │ │ │ ├── [ 15K] retry.py
│ │ │ │ ├── [ 14K] ssl_.py
│ │ │ │ ├── [9.6K] timeout.py
│ │ │ │ ├── [ 14K] url.py
│ │ │ │ └── [5.3K] wait.py
│ │ │ └── [4.0K] webencodings
│ │ │ ├── [ 10K] __init__.py
│ │ │ ├── [8.8K] labels.py
│ │ │ ├── [1.3K] mklabels.py
│ │ │ ├── [6.4K] tests.py
│ │ │ └── [4.2K] x_user_defined.py
│ │ ├── [4.0K] pip-20.0.2.dist-info
│ │ │ ├── [ 125] entry_points.txt
│ │ │ ├── [ 4] INSTALLER
│ │ │ ├── [1.1K] LICENSE.txt
│ │ │ ├── [3.3K] METADATA
│ │ │ ├── [ 50K] RECORD
│ │ │ ├── [ 4] top_level.txt
│ │ │ └── [ 110] WHEEL
│ │ ├── [ 0] pip-20.0.2.virtualenv
│ │ ├── [4.0K] pkg_resources
│ │ │ ├── [4.0K] extern
│ │ │ │ └── [2.4K] __init__.py
│ │ │ ├── [106K] __init__.py
│ │ │ ├── [ 558] py31compat.py
│ │ │ └── [4.0K] _vendor
│ │ │ ├── [ 24K] appdirs.py
│ │ │ ├── [ 0] __init__.py
│ │ │ ├── [4.0K] packaging
│ │ │ │ ├── [ 720] __about__.py
│ │ │ │ ├── [ 860] _compat.py
│ │ │ │ ├── [ 513] __init__.py
│ │ │ │ ├── [8.1K] markers.py
│ │ │ │ ├── [4.3K] requirements.py
│ │ │ │ ├── [ 27K] specifiers.py
│ │ │ │ ├── [1.4K] _structures.py
│ │ │ │ ├── [ 421] utils.py
│ │ │ │ └── [ 11K] version.py
│ │ │ ├── [227K] pyparsing.py
│ │ │ └── [ 29K] six.py
│ │ ├── [4.0K] setuptools
│ │ │ ├── [6.4K] archive_util.py
│ │ │ ├── [9.7K] build_meta.py
│ │ │ ├── [ 64K] cli-32.exe
│ │ │ ├── [ 73K] cli-64.exe
│ │ │ ├── [ 64K] cli.exe
│ │ │ ├── [4.0K] command
│ │ │ │ ├── [2.4K] alias.py
│ │ │ │ ├── [ 18K] bdist_egg.py
│ │ │ │ ├── [1.5K] bdist_rpm.py
│ │ │ │ ├── [ 637] bdist_wininst.py
│ │ │ │ ├── [4.4K] build_clib.py
│ │ │ │ ├── [ 13K] build_ext.py
│ │ │ │ ├── [9.4K] build_py.py
│ │ │ │ ├── [8.0K] develop.py
│ │ │ │ ├── [ 960] dist_info.py
│ │ │ │ ├── [ 85K] easy_install.py
│ │ │ │ ├── [ 25K] egg_info.py
│ │ │ │ ├── [ 568] __init__.py
│ │ │ │ ├── [2.2K] install_egg_info.py
│ │ │ │ ├── [3.8K] install_lib.py
│ │ │ │ ├── [4.6K] install.py
│ │ │ │ ├── [2.4K] install_scripts.py
│ │ │ │ ├── [ 628] launcher manifest.xml
│ │ │ │ ├── [4.9K] py36compat.py
│ │ │ │ ├── [ 468] register.py
│ │ │ │ ├── [2.1K] rotate.py
│ │ │ │ ├── [ 658] saveopts.py
│ │ │ │ ├── [7.9K] sdist.py
│ │ │ │ ├── [5.0K] setopt.py
│ │ │ │ ├── [9.4K] test.py
│ │ │ │ ├── [7.1K] upload_docs.py
│ │ │ │ └── [ 462] upload.py
│ │ │ ├── [ 20K] config.py
│ │ │ ├── [5.4K] depends.py
│ │ │ ├── [ 218] _deprecation_warning.py
│ │ │ ├── [ 935] dep_util.py
│ │ │ ├── [ 49K] dist.py
│ │ │ ├── [ 524] errors.py
│ │ │ ├── [1.7K] extension.py
│ │ │ ├── [4.0K] extern
│ │ │ │ └── [2.5K] __init__.py
│ │ │ ├── [5.0K] glob.py
│ │ │ ├── [ 64K] gui-32.exe
│ │ │ ├── [ 74K] gui-64.exe
│ │ │ ├── [ 64K] gui.exe
│ │ │ ├── [2.2K] _imp.py
│ │ │ ├── [7.1K] __init__.py
│ │ │ ├── [5.2K] installer.py
│ │ │ ├── [ 787] launch.py
│ │ │ ├── [2.0K] lib2to3_ex.py
│ │ │ ├── [5.1K] monkey.py
│ │ │ ├── [ 46K] msvc.py
│ │ │ ├── [3.1K] namespaces.py
│ │ │ ├── [ 40K] package_index.py
│ │ │ ├── [1.5K] py27compat.py
│ │ │ ├── [ 838] py31compat.py
│ │ │ ├── [1.3K] py33compat.py
│ │ │ ├── [ 245] py34compat.py
│ │ │ ├── [ 14K] sandbox.py
│ │ │ ├── [ 218] script (dev).tmpl
│ │ │ ├── [ 138] script.tmpl
│ │ │ ├── [2.2K] site-patch.py
│ │ │ ├── [8.3K] ssl_support.py
│ │ │ ├── [ 996] unicode_utils.py
│ │ │ ├── [4.0K] _vendor
│ │ │ │ ├── [ 0] __init__.py
│ │ │ │ ├── [ 15K] ordered_set.py
│ │ │ │ ├── [4.0K] packaging
│ │ │ │ │ ├── [ 744] __about__.py
│ │ │ │ │ ├── [ 865] _compat.py
│ │ │ │ │ ├── [ 562] __init__.py
│ │ │ │ │ ├── [8.1K] markers.py
│ │ │ │ │ ├── [4.6K] requirements.py
│ │ │ │ │ ├── [ 27K] specifiers.py
│ │ │ │ │ ├── [1.4K] _structures.py
│ │ │ │ │ ├── [ 13K] tags.py
│ │ │ │ │ ├── [1.5K] utils.py
│ │ │ │ │ └── [ 12K] version.py
│ │ │ │ ├── [227K] pyparsing.py
│ │ │ │ └── [ 29K] six.py
│ │ │ ├── [ 144] version.py
│ │ │ ├── [8.3K] wheel.py
│ │ │ └── [ 714] windows_support.py
│ │ ├── [4.0K] setuptools-44.1.0.dist-info
│ │ │ ├── [ 239] dependency_links.txt
│ │ │ ├── [3.1K] entry_points.txt
│ │ │ ├── [ 4] INSTALLER
│ │ │ ├── [1.1K] LICENSE
│ │ │ ├── [3.6K] METADATA
│ │ │ ├── [ 13K] RECORD
│ │ │ ├── [ 38] top_level.txt
│ │ │ ├── [ 110] WHEEL
│ │ │ └── [ 1] zip-safe
│ │ ├── [ 0] setuptools-44.1.0.virtualenv
│ │ ├── [ 18] _virtualenv.pth
│ │ ├── [4.5K] _virtualenv.py
│ │ ├── [4.0K] wheel
│ │ │ ├── [ 15K] bdist_wheel.py
│ │ │ ├── [4.0K] cli
│ │ │ │ ├── [9.3K] convert.py
│ │ │ │ ├── [2.5K] __init__.py
│ │ │ │ ├── [ 0] install.py
│ │ │ │ ├── [3.1K] pack.py
│ │ │ │ └── [ 673] unpack.py
│ │ │ ├── [ 23] __init__.py
│ │ │ ├── [ 12K] macosx_libfile.py
│ │ │ ├── [ 417] __main__.py
│ │ │ ├── [4.4K] metadata.py
│ │ │ ├── [8.9K] pep425tags.py
│ │ │ ├── [1.2K] pkginfo.py
│ │ │ ├── [ 938] util.py
│ │ │ ├── [ 133] _version.py
│ │ │ └── [7.1K] wheelfile.py
│ │ ├── [4.0K] wheel-0.34.2.dist-info
│ │ │ ├── [ 108] entry_points.txt
│ │ │ ├── [ 4] INSTALLER
│ │ │ ├── [1.1K] LICENSE.txt
│ │ │ ├── [2.2K] METADATA
│ │ │ ├── [2.3K] RECORD
│ │ │ ├── [ 6] top_level.txt
│ │ │ └── [ 110] WHEEL
│ │ └── [ 0] wheel-0.34.2.virtualenv
│ └── [6.0K] site.py
└── [ 202] pyvenv.cfg
65 directories, 515 files