REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 65.02 KB
Close
/opt/alt/python36/lib/python3.6/site-packages/pip/_vendor/__pycache__/ipaddress.cpython-36.pyc
Text
Base64
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ICAgICAgICBbaXBfbmV0d29yaygnMjAwMTpkYjg6OjEvMTI4JyksCiAgICAgICAgICAgICAgICAgaXBfbmV0d29yaygnMjAwMTpkYjg6OjIvMTI3JyksCiAgICAgICAgICAgICAgICAgaXBfbmV0d29yaygnMjAwMTpkYjg6OjQvMTI2JyksCiAgICAgICAgICAgICAgICAgaXBfbmV0d29yaygnMjAwMTpkYjg6OjgvMTI1JyksCiAgICAgICAgICAgICAgICAgLi4uCiAgICAgICAgICAgICAgICAgaXBfbmV0d29yaygnMjAwMTpkYjg6ODAwMDo6LzMzJyldCgogICAgICAgIEFyZ3M6CiAgICAgICAgICAgIG90aGVyOiBBbiBJUHY0TmV0d29yayBvciBJUHY2TmV0d29yayBvYmplY3Qgb2YgdGhlIHNhbWUgdHlwZS4KCiAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAgQW4gaXRlcmF0b3Igb2YgdGhlIElQdig0fDYpTmV0d29yayBvYmplY3RzIHdoaWNoIGlzIHNlbGYKICAgICAgICAgICAgbWludXMgb3RoZXIuCgogICAgICAgIFJhaXNlczoKICAgICAgICAgICAgVHlwZUVycm9yOiBJZiBzZWxmIGFuZCBvdGhlciBhcmUgb2YgZGlmZmVyaW5nIGFkZHJlc3MKICAgICAgICAgICAgICB2ZXJzaW9ucywgb3IgaWYgb3RoZXIgaXMgbm90IGEgbmV0d29yayBvYmplY3QuCiAgICAgICAgICAgIFZhbHVlRXJyb3I6IElmIG90aGVyIGlzIG5vdCBjb21wbGV0ZWx5IGNvbnRhaW5lZCBieSBzZWxmLgoKICAgICAgICB6JSVzIGFuZCAlcyBhcmUgbm90IG9mIHRoZSBzYW1lIHZlcnNpb256GiVzIGlzIG5vdCBhIG5ldHdvcmsgb2JqZWN0ehYlcyBub3QgY29udGFpbmVkIGluICVzTnoFJXMvJXN6M0Vycm9yIHBlcmZvcm1pbmcgZXhjbHVzaW9uOiBzMTogJXMgczI6ICVzIG90aGVyOiAlcykLcnkAAAByYgAAAHIQAAAAcoMAAADaCXN1Ym5ldF9vZnJAAAAAcqkAAAByfAAAAHKVAAAAcnUAAAByDwAAACkEcisA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ZyBvciBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgSVAgWyYgbmV0d29ya10uCiAgICAgICAgICAgICAgJzE5Mi4wLjIuMC8yNCcKICAgICAgICAgICAgICAnMTkyLjAuMi4wLzI1NS4yNTUuMjU1LjAnCiAgICAgICAgICAgICAgJzE5Mi4wLjAuMi8wLjAuMC4yNTUnCiAgICAgICAgICAgICAgYXJlIGFsbCBmdW5jdGlvbmFsbHkgdGhlIHNhbWUgaW4gSVB2NC4gU2ltaWxhcmx5LAogICAgICAgICAgICAgICcxOTIuMC4yLjEnCiAgICAgICAgICAgICAgJzE5Mi4wLjIuMS8yNTUuMjU1LjI1NS4yNTUnCiAgICAgICAgICAgICAgJzE5Mi4wLjIuMS8zMicKICAgICAgICAgICAgICBhcmUgYWxzbyBmdW5jdGlvbmFsbHkgZXF1aXZhbGVudC4gVGhhdCBpcyB0byBzYXksIGZhaWxpbmcgdG8KICAgICAgICAgICAgICBwcm92aWRlIGEgc3VibmV0bWFzayB3aWxsIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aCBhIG1hc2sgb2YgLzMyLgoKICAgICAgICAgICAgICBJZiB0aGUgbWFzayAocG9ydGlvbiBhZnRlciB0aGUgLyBpbiB0aGUgYXJndW1lbnQpIGlzIGdpdmVuIGluCiAgICAgICAgICAgICAgZG90dGVkIHF1YWQgZm9ybSwgaXQgaXMgdHJlYXRlZCBhcyBhIG5ldG1hc2sgaWYgaXQgc3RhcnRzIHdpdGggYQogICAgICAgICAgICAgIG5vbi16ZXJvIGZpZWxkIChlLmcuIC8yNTUuMC4wLjAgPT0gLzgpIGFuZCBhcyBhIGhvc3RtYXNrIGlmIGl0CiAgICAgICAgICAgICAgc3RhcnRzIHdpdGggYSB6ZXJvIGZpZWxkIChlLmcuIDAuMjU1LjI1NS4yNTUgPT0gLzgpLCB3aXRoIHRoZQogICAgICAgICAgICAgIHNpbmdsZSBleGNlcHRpb24gb2YgYW4gYWxsLXplcm8gbWFzayB3aGljaCBpcyB0cmVhdGVkIGFzIGEKICAgICAgICAgICAgICBuZXRtYXNrID09IC8wLiBJZiBubyBtYXNrIGlzIGdpdmVuLCBhIGRl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ZHJlc3M6IEEgc3RyaW5nIG9yIGludGVnZXIgcmVwcmVzZW50aW5nIHRoZSBJUHY2IG5ldHdvcmsgb3IgdGhlCiAgICAgICAgICAgICAgSVAgYW5kIHByZWZpeC9uZXRtYXNrLgogICAgICAgICAgICAgICcyMDAxOmRiODo6LzEyOCcKICAgICAgICAgICAgICAnMjAwMTpkYjg6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwOjAwMDAvMTI4JwogICAgICAgICAgICAgICcyMDAxOmRiODo6JwogICAgICAgICAgICAgIGFyZSBhbGwgZnVuY3Rpb25hbGx5IHRoZSBzYW1lIGluIElQdjYuICBUaGF0IGlzIHRvIHNheSwKICAgICAgICAgICAgICBmYWlsaW5nIHRvIHByb3ZpZGUgYSBzdWJuZXRtYXNrIHdpbGwgY3JlYXRlIGFuIG9iamVjdCB3aXRoCiAgICAgICAgICAgICAgYSBtYXNrIG9mIC8xMjguCgogICAgICAgICAgICAgIEFkZGl0aW9uYWxseSwgYW4gaW50ZWdlciBjYW4gYmUgcGFzc2VkLCBzbwogICAgICAgICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6JykgPT0KICAgICAgICAgICAgICAgIElQdjZOZXR3b3JrKDQyNTQwNzY2NDExMjgyNTkyODU2OTAzOTg0OTUxNjUzODI2NTYwKQogICAgICAgICAgICAgIG9yLCBtb3JlIGdlbmVyYWxseQogICAgICAgICAgICAgIElQdjZOZXR3b3JrKGludChJUHY2TmV0d29yaygnMjAwMTpkYjg6OicpKSkgPT0KICAgICAgICAgICAgICAgIElQdjZOZXR3b3JrKCcyMDAxOmRiODo6JykKCiAgICAgICAgICAgIHN0cmljdDogQSBib29sZWFuLiBJZiB0cnVlLCBlbnN1cmUgdGhhdCB3ZSBoYXZlIGJlZW4gcGFzc2VkCiAgICAgICAgICAgICAgQSB0cnVlIG5ldHdvcmsgYWRkcmVzcywgZWcsIDIwMDE6ZGI4OjoxMDAwLzEyNCBhbmQgbm90IGFuCiAgICAgICAgICAgICAgSVAgYWRkcmVzcyBvbiBhIG5ldHdvcmssIGVnLCAyMDAxOmRiODo6MS8xMjQu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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 8
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
appdirs.cpython-36.pyc
21.10 KB
lrw-r--r--
2023-11-13 21:24:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
contextlib2.cpython-36.pyc
15.03 KB
lrw-r--r--
2023-11-13 21:24:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
distro.cpython-36.pyc
35.84 KB
lrw-r--r--
2023-11-13 21:24:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ipaddress.cpython-36.pyc
65.02 KB
lrw-r--r--
2023-11-13 21:24:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pyparsing.cpython-36.pyc
237.48 KB
lrw-r--r--
2023-11-13 21:24:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
retrying.cpython-36.pyc
7.93 KB
lrw-r--r--
2023-11-13 21:24:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
six.cpython-36.pyc
26.42 KB
lrw-r--r--
2023-11-13 21:24:39
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.pyc
2.93 KB
lrw-r--r--
2023-11-13 21:24:39
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).