REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 43.40 KB
Close
/opt/alt/python36/lib64/python3.6/xml/etree/__pycache__/ElementTree.cpython-36.opt-1.pyc
Text
Base64
Mw0NCqsEIGbF3gAA4wAAAAAAAAAAAAAAABcAAABAAAAAc0gCAABkAFoAZAFkAmQDZARkBWQGZAdkCGQJZApkC2QMZA1kDmQPZBBkEWQSZBNkFGQVZBZkF2cXWgFkGFoCZBlkGmwDWgNkGWQabARaBGQZZBpsBVoFZBlkGmwGWgZkGWQabAdaB2QZZBpsCFoIZBtkHGwJbQpaCgEARwBkHWQKhABkCmULgwNaDGQeZAeEAFoNRwBkH2QDhABkA4MCWg5pAGYBZCBkDoQBWg9kXmQhZAGEAVoQZF9kImQMhAFaEWURWhJHAGQjZA2EAGQNgwJaE0cAZCRkBIQAZASDAloUZQhqFWQlZCaEAIMBWhZkYGQnZCiEAVoXZClkKoQAWhhkYVoZeQxlGmUZgwFaGVcAbhYEAGUbawqQAXIiAQABAAEAWQBuAlgAZDhkOYQAWhxkOmQ7hABaHWUYZRxlHWQ8nANaHmQ9ZBeEAFofZD5kP2RAZEFkQmRDZERkRZwHWiBlIGUfXyBkRmRHhABaIWRIZEmEAFoiZEpkS4QAWiNkTGRNhABaJGRiZE5kT5wBZFBkD4QDWiVHAGRRZFKEAGRSZQZqJoMDWidkY2ROZE+cAWRTZBCEA1ooZFRkAoQAWilkZGRVZAmEAVoqZGVkVmQIhAFaK0cAZFdkFoQAZBaDAlosZGZkWGQThAFaLWRnZFlkFIQBWi5lLVovZGhkWmQGhAFaMEcAZFtkEYQAZBGDAloxRwBkXGQVhABkFYMCWjJ5EGUOWjNkGWRdbDRUAFcAbhYEAGU1awqQAnJCAQABAAEAWQBuAlgAZBpTAClpYQYFAABMaWdodHdlaWdodCBYTUwgc3VwcG9ydCBmb3IgUHl0aG9uLgoKIFhNTCBpcyBhbiBpbmhlcmVudGx5IGhpZXJhcmNoaWNhbCBkYXRhIGZvcm1hdCwgYW5kIHRoZSBtb3N0IG5hdHVyYWwgd2F5IHRvCiByZXByZXNlbnQgaXQgaXMgd2l0aCBhIHRyZWUuICBUaGlzIG1vZHVsZSBoYXMgdHdvIGNsYXNzZXMgZm9yIHRoaXMgcHVycG9zZToKCiAgICAxLiBFbGVtZW50VHJlZSByZXByZXNlbnRzIHRoZSB3aG9sZSBYTUwgZG9jdW1lbnQgYXMgYSB0cmVlIGFuZAoKICAgIDIuIEVsZW1lbnQgcmVwcmVzZW50cyBhIHNpbmdsZSBub2RlIGluIHRoaXMgdHJlZS4KCiBJbnRlcmFjdGlvbnMgd2l0aCB0aGUgd2hvbGUgZG9jdW1lbnQgKHJlYWRpbmcgYW5kIHdyaXRpbmcgdG8vZnJvbSBmaWxlcykgYXJlCiB1c3VhbGx5IGRvbmUgb24gdGhlIEVsZW1lbnRUcmVlIGxldmVsLiAgSW50ZXJhY3Rpb25zIHdpdGggYSBzaW5nbGUgWE1MIGVsZW1lbnQKIGFuZCBpdHMgc3ViLWVsZW1lbnRzIGFyZSBkb25lIG9uIHRoZSBFbGVtZW50IGxldmVsLgoKIEVsZW1lbnQgaXMgYSBmbGV4aWJsZSBjb250YWluZXIgb2JqZWN0IGRlc2lnbmVkIHRvIHN0b3JlIGhpZXJhcmNoaWNhbCBkYXRhCiBzdHJ1Y3R1cmVzIGluIG1lbW9yeS4gSXQgY2FuIGJlIGRlc2NyaWJlZCBhcyBhIGNyb3NzIGJldHdlZW4gYSBsaXN0IGFuZCBhCiBkaWN0aW9uYXJ5LiAgRWFjaCBFbGVtZW50IGhhcyBhIG51bWJlciBvZiBwcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCBpdDoKCiAgICAndGFnJyAtIGEgc3RyaW5nIGNvbnRhaW5pbmcgdGhlIGVsZW1lbnQncyBuYW1lLgoKICAgICdhdHRyaWJ1dGVzJyAtIGEgUHl0aG9uIGRpY3Rpb25hcnkgc3RvcmluZyB0aGUgZWxlbWVudCdzIGF0dHJpYnV0ZXMuCgogICAgJ3RleHQnIC0gYSBzdHJpbmcgY29udGFpbmluZyB0aGUgZWxlbWVudCdzIHRleHQgY29udGVudC4KCiAgICAndGFpbCcgLSBhbiBvcHRpb25hbCBzdHJpbmcgY29udGFpbmluZyB0ZXh0IGFmdGVyIHRoZSBlbGVtZW50J3MgZW5kIHRhZy4KCiAgICBBbmQgYSBudW1iZXIgb2YgY2hpbGQgZWxlbWVudHMgc3RvcmVkIGluIGEgUHl0aG9uIHNlcXVlbmNlLgoKIFRvIGNyZWF0ZSBhbiBlbGVtZW50IGluc3RhbmNlLCB1c2UgdGhlIEVsZW1lbnQgY29uc3RydWN0b3IsCiBvciB0aGUgU3ViRWxlbWVudCBmYWN0b3J5IGZ1bmN0aW9uLgoKIFlvdSBjYW4gYWxzbyB1c2UgdGhlIEVsZW1lbnRUcmVlIGNsYXNzIHRvIHdyYXAgYW4gZWxlbWVudCBzdHJ1Y3R1cmUKIGFuZCBjb252ZXJ0IGl0IHRvIGFuZCBmcm9tIFhNTC4KCtoHQ29tbWVudNoEZHVtcNoHRWxlbWVudNoLRWxlbWVudFRyZWXaCmZyb21zdHJpbmfaDmZyb21zdHJpbmdsaXN02glpc2VsZW1lbnTaCWl0ZXJwYXJzZdoFcGFyc2XaClBhcnNlRXJyb3LaAlBJ2hVQcm9jZXNzaW5nSW5zdHJ1Y3Rpb27aBVFOYW1l2gpTdWJFbGVtZW502gh0b3N0cmluZ9oMdG9zdHJpbmdsaXN02gtUcmVlQnVpbGRlctoHVkVSU0lPTtoDWE1M2gVYTUxJRNoJWE1MUGFyc2Vy2g1YTUxQdWxsUGFyc2Vy2hJyZWdpc3Rlcl9uYW1lc3BhY2V6BTEuMy4w6QAAAABO6QEAAAApAdoLRWxlbWVudFBhdGhjAAAAAAAAAAAAAAAAAQAAAEAAAABzEAAAAGUAWgFkAFoCZAFaA2QCUwApA3IKAAAAeuxBbiBlcnJvciB3aGVuIHBhcnNpbmcgYW4gWE1MIGRvY3VtZW50LgoKICAgIEluIGFkZGl0aW9uIHRvIGl0cyBleGNlcHRpb24gdmFsdWUsIGEgUGFyc2VFcnJvciBjb250YWlucwogICAgdHdvIGV4dHJhIGF0dHJpYnV0ZXM6CiAgICAgICAgJ2NvZGUnICAgICAtIHRoZSBzcGVjaWZpYyBleGNlcHRpb24gY29kZQogICAgICAgICdwb3NpdGlvbicgLSB0aGUgbGluZSBhbmQgY29sdW1uIG9mIHRoZSBlcnJvcgoKICAgIE4pBNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oHX19kb2NfX6kAch8AAAByHwAAAPo6L29wdC9hbHQvcHl0aG9uMzYvbGliNjQvcHl0aG9uMy42L3htbC9ldHJlZS9FbGVtZW50VHJlZS5weXIKAAAAaAAAAHMEAAAACAgEAWMBAAAAAAAAAAEAAAADAAAAQwAAAHMKAAAAdAB8AGQBgwJTACkCejJSZXR1cm4gVHJ1ZSBpZiAqZWxlbWVudCogYXBwZWFy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5AEAAEZpbmQgdGV4dCBmb3IgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCBieSB0YWcgbmFtZSBvciBwYXRoLgoKICAgICAgICAqcGF0aCogaXMgYSBzdHJpbmcgaGF2aW5nIGVpdGhlciBhbiBlbGVtZW50IHRhZyBvciBhbiBYUGF0aCwKICAgICAgICAqZGVmYXVsdCogaXMgdGhlIHZhbHVlIHRvIHJldHVybiBpZiB0aGUgZWxlbWVudCB3YXMgbm90IGZvdW5kLAogICAgICAgICpuYW1lc3BhY2VzKiBpcyBhbiBvcHRpb25hbCBtYXBwaW5nIGZyb20gbmFtZXNwYWNlIHByZWZpeCB0byBmdWxsIG5hbWUuCgogICAgICAgIFJldHVybiB0ZXh0IGNvbnRlbnQgb2YgZmlyc3QgbWF0Y2hpbmcgZWxlbWVudCwgb3IgZGVmYXVsdCB2YWx1ZSBpZgogICAgICAgIG5vbmUgd2FzIGZvdW5kLiAgTm90ZSB0aGF0IGlmIGFuIGVsZW1lbnQgaXMgZm91bmQgaGF2aW5nIG5vIHRleHQKICAgICAgICBjb250ZW50LCB0aGUgZW1wdHkgc3RyaW5nIGlzIHJldHVybmVkLgoKICAgICAgICApAnIaAAAA2ghmaW5kdGV4dCkEciwAAAByTgAAANoHZGVmYXVsdHJPAAAAch8AAAByHwAAAHIgAAAAclAAAAAsAQAAcwIAAAAADHoQRWxlbWVudC5maW5kdGV4dGMDAAAAAAAAAAMAAAAEAAAAQwAAAHMOAAAAdABqAXwAfAF8AoMDUwApAWEcAQAARmluZCBhbGwgbWF0Y2hpbmcgc3ViZWxlbWVudHMgYnkgdGFnIG5hbWUgb3IgcGF0aC4KCiAgICAgICAgKnBhdGgqIGlzIGEgc3RyaW5nIGhhdmluZyBlaXRoZXIgYW4gZWxlbWVudCB0YWcgb3IgYW4gWFBhdGgsCiAgICAgICAgKm5hbWVzcGFjZXMqIGlzIGFuIG9wdGlvbmFsIG1hcHBpbmcgZnJvbSBuYW1lc3BhY2UgcHJlZml4IHRvIGZ1bGwgbmFtZS4KCiAgICAgICAgUmV0dXJucyBsaXN0IGNvbnRhaW5pbmcgYWxsIG1hdGNoaW5nIGVsZW1lbnRzIGluIGRvY3VtZW50IG9yZGVy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BH0KfApqBYMAfQl8CGQJfAlmARYAgwEBAHwFZAprAnKkdAZ8CHwAageDAgEAbix0CHwAagd8BIMCXAJ9C30MdAB8BRkAfQ18DXwIfABqB3wLfAx8BmQLjQUBAFcAZAZRAFIAWABkBlMAKQ1h8gMAAFdyaXRlIGVsZW1lbnQgdHJlZSB0byBhIGZpbGUgYXMgWE1MLgoKICAgICAgICBBcmd1bWVudHM6CiAgICAgICAgICAqZmlsZV9vcl9maWxlbmFtZSogLS0gZmlsZSBuYW1lIG9yIGEgZmlsZSBvYmplY3Qgb3BlbmVkIGZvciB3cml0aW5nCgogICAgICAgICAgKmVuY29kaW5nKiAtLSB0aGUgb3V0cHV0IGVuY29kaW5nIChkZWZhdWx0OiBVUy1BU0NJSSkKCiAgICAgICAgICAqeG1sX2RlY2xhcmF0aW9uKiAtLSBib29sIGluZGljYXRpbmcgaWYgYW4gWE1MIGRlY2xhcmF0aW9uIHNob3VsZCBiZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWRkZWQgdG8gdGhlIG91dHB1dC4gSWYgTm9uZSwgYW4gWE1MIGRlY2xhcmF0aW9uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcyBhZGRlZCBpZiBlbmNvZGluZyBJUyBOT1QgZWl0aGVyIG9mOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVVMtQVNDSUksIFVURi04LCBvciBVbmljb2RlCgogICAgICAgICAgKmRlZmF1bHRfbmFtZXNwYWNlKiAtLSBzZXRzIHRoZSBkZWZhdWx0IFhNTCBuYW1lc3BhY2UgKGZvciAieG1sbnMiKQoKICAgICAgICAgICptZXRob2QqIC0tIGVpdGhlciAieG1sIiAoZGVmYXVsdCksICJodG1sLCAidGV4dCIsIG9yICJjMTRuIgoKICAgICAgICAgICpzaG9ydF9lbXB0eV9lbGVtZW50cyogLS0gY29udHJvbHMgdGhlIGZvcm1hdHRpbmcgb2YgZWxlbWVudHMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhhdCBjb250YWluIG5vIGNvbnRlbnQuIElmIFRydWUgKGRlZmF1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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 15
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
cElementTree.cpython-36.opt-1.pyc
180 B
lrw-r--r--
2024-04-17 17:19:44
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-36.opt-2.pyc
170 B
lrw-r--r--
2024-04-17 17:19:30
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cElementTree.cpython-36.pyc
180 B
lrw-r--r--
2024-04-17 17:19:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-36.opt-1.pyc
1.54 KB
lrw-r--r--
2024-04-17 17:19:44
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-36.opt-2.pyc
1.53 KB
lrw-r--r--
2024-04-17 17:19:30
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementInclude.cpython-36.pyc
1.54 KB
lrw-r--r--
2024-04-17 17:19:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-36.opt-1.pyc
6.01 KB
lrw-r--r--
2024-04-17 17:19:44
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-36.opt-2.pyc
6.00 KB
lrw-r--r--
2024-04-17 17:19:30
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementPath.cpython-36.pyc
6.01 KB
lrw-r--r--
2024-04-17 17:19:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-36.opt-1.pyc
43.40 KB
lrw-r--r--
2024-04-17 17:19:44
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-36.opt-2.pyc
27.49 KB
lrw-r--r--
2024-04-17 17:19:30
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ElementTree.cpython-36.pyc
43.69 KB
lrw-r--r--
2024-04-17 17:19:48
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.opt-1.pyc
138 B
lrw-r--r--
2024-04-17 17:19:44
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.opt-2.pyc
128 B
lrw-r--r--
2024-04-17 17:19:30
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.pyc
138 B
lrw-r--r--
2024-04-17 17:19:48
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).