REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 43.73 KB
Close
//opt/alt/python34/lib/python3.4/site-packages/pip/_vendor/distlib/__pycache__/database.cpython-34.pyc
Text
Base64
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ZS4gYW55IGBgJy0nYGAgY2hhcmFjdGVycyBhcmUgcmVwbGFjZWQKICAgICAgICB3aXRoIGBgJ18nYGAgb3RoZXIgdGhhbiB0aGUgb25lIGluIGBgJ2Rpc3QtaW5mbydgYCBhbmQgdGhlIG9uZQogICAgICAgIHNlcGFyYXRpbmcgdGhlIG5hbWUgZnJvbSB0aGUgdmVyc2lvbiBudW1iZXIuCgogICAgICAgIDpwYXJhbWV0ZXIgbmFtZTogaXMgY29udmVydGVkIHRvIGEgc3RhbmRhcmQgZGlzdHJpYnV0aW9uIG5hbWUgYnkgcmVwbGFjaW5nCiAgICAgICAgICAgICAgICAgICAgICAgICBhbnkgcnVucyBvZiBub24tIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIHdpdGggYSBzaW5nbGUKICAgICAgICAgICAgICAgICAgICAgICAgIGBgJy0nYGAuCiAgICAgICAgOnR5cGUgbmFtZTogc3RyaW5nCiAgICAgICAgOnBhcmFtZXRlciB2ZXJzaW9uOiBpcyBjb252ZXJ0ZWQgdG8gYSBzdGFuZGFyZCB2ZXJzaW9uIHN0cmluZy4gU3BhY2VzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBiZWNvbWUgZG90cywgYW5kIGFsbCBvdGhlciBub24tYWxwaGFudW1lcmljIGNoYXJhY3RlcnMKICAgICAgICAgICAgICAgICAgICAgICAgICAgIChleGNlcHQgZG90cykgYmVjb21lIGRhc2hlcywgd2l0aCBydW5zIG9mIG11bHRpcGxlCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkYXNoZXMgY29uZGVuc2VkIHRvIGEgc2luZ2xlIGRhc2guCiAgICAgICAgOnR5cGUgdmVyc2lvbjogc3RyaW5nCiAgICAgICAgOnJldHVybnM6IGRpcmVjdG9yeSBuYW1lCiAgICAgICAgOnJ0eXBlOiBzdHJpbmf6AS3aAV8pA9oHcmVwbGFjZXJJAAAAckcAAAApA9oDY2xzchwAAADaB3ZlcnNpb25yIAAAAHIgAAAAciEAAADaEGRpc3RpbmZvX2Rpcm5hbWWrAAAAcwQAAAAAExIBeiFEaXN0cmlidXRpb25QYXRoLmRpc3RpbmZvX2Rp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bnMuCgogICAgVGhlIGRlcGVuZGVuY3kgcmVsYXRpb25zaGlwcyBhcmUgc3RvcmVkIGluIGFuIGBgYWRqYWNlbmN5X2xpc3RgYCB0aGF0IG1hcHMKICAgIGRpc3RyaWJ1dGlvbnMgdG8gYSBsaXN0IG9mIGBgKG90aGVyLCBsYWJlbClgYCB0dXBsZXMgd2hlcmUgIGBgb3RoZXJgYAogICAgaXMgYSBkaXN0cmlidXRpb24gYW5kIHRoZSBlZGdlIGlzIGxhYmVsZWQgd2l0aCBgYGxhYmVsYGAgKGkuZS4gdGhlIHZlcnNpb24KICAgIHNwZWNpZmllciwgaWYgc3VjaCB3YXMgcHJvdmlkZWQpLiBBbHNvLCBmb3IgbW9yZSBlZmZpY2llbnQgdHJhdmVyc2FsLCBmb3IKICAgIGV2ZXJ5IGRpc3RyaWJ1dGlvbiBgYHhgYCwgYSBsaXN0IG9mIHByZWRlY2Vzc29ycyBpcyBrZXB0IGluCiAgICBgYHJldmVyc2VfbGlzdFt4XWBgLiBBbiBlZGdlIGZyb20gZGlzdHJpYnV0aW9uIGBgYWBgIHRvCiAgICBkaXN0cmlidXRpb24gYGBiYGAgbWVhbnMgdGhhdCBgYGFgYCBkZXBlbmRzIG9uIGBgYmBgLiBJZiBhbnkgbWlzc2luZwogICAgZGVwZW5kZW5jaWVzIGFyZSBmb3VuZCwgdGhleSBhcmUgc3RvcmVkIGluIGBgbWlzc2luZ2BgLCB3aGljaCBpcyBhCiAgICBkaWN0aW9uYXJ5IHRoYXQgbWFwcyBkaXN0cmlidXRpb25zIHRvIGEgbGlzdCBvZiByZXF1aXJlbWVudHMgdGhhdCB3ZXJlIG5vdAogICAgcHJvdmlkZWQgYnkgYW55IG90aGVyIGRpc3RyaWJ1dGlvbnMuCiAgICBjAQAAAAAAAAABAAAAAgAAAEMAAABzHwAAAGkAAHwAAF8AAGkAAHwAAF8BAGkAAHwAAF8CAGQAAFMpAU4pA9oOYWRqYWNlbmN5X2xpc3TaDHJldmVyc2VfbGlzdHKyAAAAKQFyHwAAAHIgAAAAciAAAAByIQAAAHIiAAAAIwQAAHMGAAAAAAEJAQkBehhEZXBlbmRlbmN5R3JhcGguX19pbml0X19jAgAAAAAAAAACAAAAAwAAAEMAAABzHgAAAGcA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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 13
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
compat.cpython-34.pyc
33.14 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
database.cpython-34.pyc
43.73 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
index.cpython-34.pyc
16.89 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
locators.cpython-34.pyc
38.52 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
manifest.cpython-34.pyc
10.62 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
markers.cpython-34.pyc
6.44 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
metadata.cpython-34.pyc
28.33 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
resources.cpython-34.pyc
10.84 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
scripts.cpython-34.pyc
9.22 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-34.pyc
47.17 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
version.cpython-34.pyc
22.19 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
wheel.cpython-34.pyc
26.91 KB
lrw-r--r--
2023-11-13 21:20:26
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-34.pyc
1.02 KB
lrw-r--r--
2023-11-13 21:20:25
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).