REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 28.46 KB
Close
/opt/alt/python38/lib/python3.8/site-packages/pip/_vendor/pygments/formatters/__pycache__/html.cpython-38.pyc
Text
Base64
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biBhIGBgPHByZT5gYCB0YWcsIHdyYXBwZWQKICAgIGluIGEgYGA8ZGl2PmBgIHRhZy4gVGhlIGBgPGRpdj5gYCdzIENTUyBjbGFzcyBjYW4gYmUgc2V0IGJ5IHRoZSBgY3NzY2xhc3NgCiAgICBvcHRpb24uCgogICAgSWYgdGhlIGBsaW5lbm9zYCBvcHRpb24gaXMgc2V0IHRvIGBgInRhYmxlImBgLCB0aGUgYGA8cHJlPmBgIGlzCiAgICBhZGRpdGlvbmFsbHkgd3JhcHBlZCBpbnNpZGUgYSBgYDx0YWJsZT5gYCB3aGljaCBoYXMgb25lIHJvdyBhbmQgdHdvCiAgICBjZWxsczogb25lIGNvbnRhaW5pbmcgdGhlIGxpbmUgbnVtYmVycyBhbmQgb25lIGNvbnRhaW5pbmcgdGhlIGNvZGUuCiAgICBFeGFtcGxlOgoKICAgIC4uIHNvdXJjZWNvZGU6OiBodG1sCgogICAgICAgIDxkaXYgY2xhc3M9ImhpZ2hsaWdodCIgPgogICAgICAgIDx0YWJsZT48dHI+CiAgICAgICAgICA8dGQgY2xhc3M9ImxpbmVub3MiIHRpdGxlPSJjbGljayB0byB0b2dnbGUiCiAgICAgICAgICAgIG9uY2xpY2s9IndpdGggKHRoaXMuZmlyc3RDaGlsZC5zdHlsZSkKICAgICAgICAgICAgICAgICAgICAgeyBkaXNwbGF5ID0gKGRpc3BsYXkgPT0gJycpID8gJ25vbmUnIDogJycgfSI+CiAgICAgICAgICAgIDxwcmU+MQogICAgICAgICAgICAyPC9wcmU+CiAgICAgICAgICA8L3RkPgogICAgICAgICAgPHRkIGNsYXNzPSJjb2RlIj4KICAgICAgICAgICAgPHByZT48c3BhbiBjbGFzcz0iS2UiPmRlZiA8L3NwYW4+PHNwYW4gY2xhc3M9Ik5hRnUiPmZvbzwvc3Bhbj4oYmFyKToKICAgICAgICAgICAgICA8c3BhbiBjbGFzcz0iS2UiPnBhc3M8L3NwYW4+CiAgICAgICAgICAgIDwvcHJlPgogICAgICAgICAgPC90ZD4KICAgICAgICA8L3RyPjwvdGFibGU+PC9kaXY+CgogICAgKHdoaXRlc3BhY2UgYWRkZWQgdG8gaW1wcm92ZSBjbGFyaXR5KS4KCiAgICBXcmFwcGluZyBjYW4gYmUgZGlzYWJsZWQgdXNpbmcgdGhlIGBub3dyYXBgIG9wdGlvbi4KCiAgICBBIGxpc3Qgb2YgbGluZXMgY2FuIGJlIHNwZWNpZmllZCB1c2luZyB0aGUgYGhsX2xpbmVzYCBvcHRpb24gdG8gbWFrZSB0aGVzZQogICAgbGluZXMgaGlnaGxpZ2h0ZWQgKGFzIG9mIFB5Z21lbnRzIDAuMTEpLgoKICAgIFdpdGggdGhlIGBmdWxsYCBvcHRpb24sIGEgY29tcGxldGUgSFRNTCA0IGRvY3VtZW50IGlzIG91dHB1dCwgaW5jbHVkaW5nCiAgICB0aGUgc3R5bGUgZGVmaW5pdGlvbnMgaW5zaWRlIGEgYGA8c3R5bGU+YGAgdGFnLCBvciBpbiBhIHNlcGFyYXRlIGZpbGUgaWYKICAgIHRoZSBgY3NzZmlsZWAgb3B0aW9uIGlzIGdpdmVuLgoKICAgIFdoZW4gYHRhZ3NmaWxlYCBpcyBzZXQgdG8gdGhlIHBhdGggb2YgYSBjdGFncyBpbmRleCBmaWxlLCBpdCBpcyB1c2VkIHRvCiAgICBnZW5lcmF0ZSBoeXBlcmxpbmtzIGZyb20gbmFtZXMgdG8gdGhlaXIgZGVmaW5pdGlvbi4gIFlvdSBtdXN0IGVuYWJsZQogICAgYGxpbmVhbmNob3JzYCBhbmQgcnVuIGN0YWdzIHdpdGggdGhlIGAtbmAgb3B0aW9uIGZvciB0aGlzIHRvIHdvcmsuICBUaGUKICAgIGBweXRob24tY3RhZ3NgIG1vZHVsZSBmcm9tIFB5UEkgbXVzdCBiZSBpbnN0YWxsZWQgdG8gdXNlIHRoaXMgZmVhdHVyZTsKICAgIG90aGVyd2lzZSBhIGBSdW50aW1lRXJyb3JgIHdpbGwgYmUgcmFpc2VkLgoKICAgIFRoZSBgZ2V0X3N0eWxlX2RlZnMoYXJnPScnKWAgbWV0aG9kIG9mIGEgYEh0bWxGb3JtYXR0ZXJgIHJldHVybnMgYSBzdHJpbmcKICAgIGNvbnRhaW5pbmcgQ1NTIHJ1bGVzIGZvciB0aGUgQ1NTIGNsYXNzZXMgdXNlZCBieSB0aGUgZm9ybWF0dGVyLiBUaGUKICAgIGFyZ3VtZW50IGBhcmdgIGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgYWRkaXRpb25hbCBDU1Mgc2VsZWN0b3JzIHRoYXQKICAgIGFyZSBwcmVwZW5kZWQgdG8gdGhlIGNsYXNzZXMuIEEgY2FsbCBgZm10ZXIuZ2V0X3N0eWxlX2RlZnMoJ3RkIC5jb2RlJylgCiAgICB3b3VsZCByZXN1bHQgaW4gdGhlIGZvbGxvd2luZyBDU1MgY2xhc3NlczoKCiAgICAuLiBzb3VyY2Vjb2RlOjogY3NzCgogICAgICAgIHRkIC5jb2RlIC5rdyB7IGZvbnQtd2VpZ2h0OiBib2xkOyBjb2xvcjogIzAwRkYwMCB9CiAgICAgICAgdGQgLmNvZGUgLmNtIHsgY29sb3I6ICM5OTk5OTkgfQogICAgICAgIC4uLgoKICAgIElmIHlvdSBoYXZlIFB5Z21lbnRzIDAuNiBvciBoaWdoZXIsIHlvdSBjYW4gYWxzbyBwYXNzIGEgbGlzdCBvciB0dXBsZSB0byB0aGUKICAgIGBnZXRfc3R5bGVfZGVmcygpYCBtZXRob2QgdG8gcmVxdWVzdCBtdWx0aXBsZSBwcmVmaXhlcyBmb3IgdGhlIHRva2VuczoKCiAgICAuLiBzb3VyY2Vjb2RlOjogcHl0aG9uCgogICAgICAgIGZvcm1hdHRlci5nZXRfc3R5bGVfZGVmcyhbJ2Rpdi5zeW50YXggcHJlJywgJ3ByZS5zeW50YXgnXSkKCiAgICBUaGUgb3V0cHV0IHdvdWxkIHRoZW4gbG9vayBsaWtlIHRoaXM6CgogICAgLi4gc291cmNlY29kZTo6IGNzcwoKICAgICAgICBkaXYuc3ludGF4IHByZSAua3csCiAgICAgICAgcHJlLnN5bnRheCAua3cgeyBmb250LXdlaWdodDogYm9sZDsgY29sb3I6ICMwMEZGMDAgfQogICAgICAgIGRpdi5zeW50YXggcHJlIC5jbSwKICAgICAgICBwcmUuc3ludGF4IC5jbSB7IGNvbG9yOiAjOTk5OTk5IH0KICAgICAgICAuLi4KCiAgICBBZGRpdGlvbmFsIG9wdGlvbnMgYWNjZXB0ZWQ6CgogICAgYG5vd3JhcGAKICAgICAgICBJZiBzZXQgdG8gYGBUcnVlYGAsIGRvbid0IHdyYXAgdGhlIHRva2VucyBhdCBhbGwsIG5vdCBldmVuIGluc2lkZSBhIGBgPHByZT5gYAogICAgICAgIHRhZy4gVGhpcyBkaXNhYmxlcyBtb3N0IG90aGVyIG9wdGlvbnMgKGRlZmF1bHQ6IGBgRmFsc2VgYCkuCgogICAgYGZ1bGxgCiAgICAgICAgVGVsbHMgdGhlIGZvcm1hdHRlciB0byBvdXRwdXQgYSAiZnVsbCIgZG9jdW1lbnQsIGkuZS4gYSBjb21wbGV0ZQogICAgICAgIHNlbGYtY29udGFpbmVkIGRvY3VtZW50IChkZWZhdWx0OiBgYEZhbHNlYGApLgoKICAgIGB0aXRsZWAKICAgICAgICBJZiBgZnVsbGAgaXMgdHJ1ZSwgdGhlIHRpdGxlIHRoYXQgc2hvdWxkIGJlIHVzZWQgdG8gY2FwdGlvbiB0aGUKICAgICAgICBkb2N1bWVudCAoZGVmYXVsdDogYGAnJ2BgKS4KCiAgICBgc3R5bGVgCiAgICAgICAgVGhlIHN0eWxlIHRvIHVzZSwgY2FuIGJlIGEgc3RyaW5nIG9yIGEgU3R5bGUgc3ViY2xhc3MgKGRlZmF1bHQ6CiAgICAgICAgYGAnZGVmYXVsdCdgYCkuIFRoaXMgb3B0aW9uIGhhcyBubyBlZmZlY3QgaWYgdGhlIGBjc3NmaWxlYAogICAgICAgIGFuZCBgbm9jbG9iYmVyX2Nzc2ZpbGVgIG9wdGlvbiBhcmUgZ2l2ZW4gYW5kIHRoZSBmaWxlIHNwZWNpZmllZCBpbgogICAgICAgIGBjc3NmaWxlYCBleGlzdHMuCgogICAgYG5vY2xhc3Nlc2AKICAgICAgICBJZiBzZXQgdG8gdHJ1ZSwgdG9rZW4gYGA8c3Bhbj5gYCB0YWdzIChhcyB3ZWxsIGFzIGxpbmUgbnVtYmVyIGVsZW1lbnRzKQogICAgICAgIHdpbGwgbm90IHVzZSBDU1MgY2xhc3NlcywgYnV0IGlubGluZSBzdHlsZXMuIFRoaXMgaXMgbm90IHJlY29tbWVuZGVkCiAgICAgICAgZm9yIGxhcmdlciBwaWVjZXMgb2YgY29kZSBzaW5jZSBpdCBpbmNyZWFzZXMgb3V0cHV0IHNpemUgYnkgcXVpdGUgYSBiaXQKICAgICAgICAoZGVmYXVsdDogYGBGYWxzZWBgKS4KCiAgICBgY2xhc3NwcmVmaXhgCiAgICAgICAgU2luY2UgdGhlIHRva2VuIHR5cGVzIHVzZSByZWxhdGl2ZWx5IHNob3J0IGNsYXNzIG5hbWVzLCB0aGV5IG1heSBjbGFzaAogICAgICAgIHdpdGggc29tZSBvZiB5b3VyIG93biBjbGFzcyBuYW1lcy4gSW4gdGhpcyBjYXNlIHlvdSBjYW4gdXNlIHRoZQogICAgICAgIGBjbGFzc3ByZWZpeGAgb3B0aW9uIHRvIGdpdmUgYSBzdHJpbmcgdG8gcHJlcGVuZCB0byBhbGwgUHlnbWVudHMtZ2VuZXJhdGVkCiAgICAgICAgQ1NTIGNsYXNzIG5hbWVzIGZvciB0b2tlbiB0eXBlcy4KICAgICAgICBOb3RlIHRoYXQgdGhpcyBvcHRpb24gYWxzbyBhZmZlY3RzIHRoZSBvdXRwdXQgb2YgYGdldF9zdHlsZV9kZWZzKClgLgoKICAgIGBjc3NjbGFzc2AKICAgICAgICBDU1MgY2xhc3MgZm9yIHRoZSB3cmFwcGluZyBgYDxkaXY+YGAgdGFnIChkZWZhdWx0OiBgYCdoaWdobGlnaHQnYGApLgogICAgICAgIElmIHlvdSBzZXQgdGhpcyBvcHRpb24sIHRoZSBkZWZhdWx0IHNlbGVjdG9yIGZvciBgZ2V0X3N0eWxlX2RlZnMoKWAKICAgICAgICB3aWxsIGJlIHRoaXMgY2xhc3MuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuOQogICAgICAgICAgIElmIHlvdSBzZWxlY3QgdGhlIGBgJ3RhYmxlJ2BgIGxpbmUgbnVtYmVycywgdGhlIHdyYXBwaW5nIHRhYmxlIHdpbGwKICAgICAgICAgICBoYXZlIGEgQ1NTIGNsYXNzIG9mIHRoaXMgc3RyaW5nIHBsdXMgYGAndGFibGUnYGAsIHRoZSBkZWZhdWx0IGlzCiAgICAgICAgICAgYWNjb3JkaW5nbHkgYGAnaGlnaGxpZ2h0dGFibGUnYGAuCgogICAgYGNzc3N0eWxlc2AKICAgICAgICBJbmxpbmUgQ1NTIHN0eWxlcyBmb3IgdGhlIHdyYXBwaW5nIGBgPGRpdj5gYCB0YWcgKGRlZmF1bHQ6IGBgJydgYCkuCgogICAgYHByZXN0eWxlc2AKICAgICAgICBJbmxpbmUgQ1NTIHN0eWxlcyBmb3IgdGhlIGBgPHByZT5gYCB0YWcgKGRlZmF1bHQ6IGBgJydgYCkuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuMTEKCiAgICBgY3NzZmlsZWAKICAgICAgICBJZiB0aGUgYGZ1bGxgIG9wdGlvbiBpcyB0cnVlIGFuZCB0aGlzIG9wdGlvbiBpcyBnaXZlbiwgaXQgbXVzdCBiZSB0aGUKICAgICAgICBuYW1lIG9mIGFuIGV4dGVybmFsIGZpbGUuIElmIHRoZSBmaWxlbmFtZSBkb2VzIG5vdCBpbmNsdWRlIGFuIGFic29sdXRlCiAgICAgICAgcGF0aCwgdGhlIGZpbGUncyBwYXRoIHdpbGwgYmUgYXNzdW1lZCB0byBiZSByZWxhdGl2ZSB0byB0aGUgbWFpbiBvdXRwdXQKICAgICAgICBmaWxlJ3MgcGF0aCwgaWYgdGhlIGxhdHRlciBjYW4gYmUgZm91bmQuIFRoZSBzdHlsZXNoZWV0IGlzIHRoZW4gd3JpdHRlbgogICAgICAgIHRvIHRoaXMgZmlsZSBpbnN0ZWFkIG9mIHRoZSBIVE1MIGZpbGUuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuNgoKICAgIGBub2Nsb2JiZXJfY3NzZmlsZWAKICAgICAgICBJZiBgY3NzZmlsZWAgaXMgZ2l2ZW4gYW5kIHRoZSBzcGVjaWZpZWQgZmlsZSBleGlzdHMsIHRoZSBjc3MgZmlsZSB3aWxsCiAgICAgICAgbm90IGJlIG92ZXJ3cml0dGVuLiBUaGlzIGFsbG93cyB0aGUgdXNlIG9mIHRoZSBgZnVsbGAgb3B0aW9uIGluCiAgICAgICAgY29tYmluYXRpb24gd2l0aCBhIHVzZXIgc3BlY2lmaWVkIGNzcyBmaWxlLiBEZWZhdWx0IGlzIGBgRmFsc2VgYC4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMS4xCgogICAgYGxpbmVub3NgCiAgICAgICAgSWYgc2V0IHRvIGBgJ3RhYmxlJ2BgLCBvdXRwdXQgbGluZSBudW1iZXJzIGFzIGEgdGFibGUgd2l0aCB0d28gY2VsbHMsCiAgICAgICAgb25lIGNvbnRhaW5pbmcgdGhlIGxpbmUgbnVtYmVycywgdGhlIG90aGVyIHRoZSB3aG9sZSBjb2RlLiAgVGhpcyBpcwogICAgICAgIGNvcHktYW5kLXBhc3RlLWZyaWVuZGx5LCBidXQgbWF5IGNhdXNlIGFsaWdubWVudCBwcm9ibGVtcyB3aXRoIHNvbWUKICAgICAgICBicm93c2VycyBvciBmb250cy4gIElmIHNldCB0byBgYCdpbmxpbmUnYGAsIHRoZSBsaW5lIG51bWJlcnMgd2lsbCBiZQogICAgICAgIGludGVncmF0ZWQgaW4gdGhlIGBgPHByZT5gYCB0YWcgdGhhdCBjb250YWlucyB0aGUgY29kZSAodGhhdCBzZXR0aW5nCiAgICAgICAgaXMgKm5ldyBpbiBQeWdtZW50cyAwLjgqKS4KCiAgICAgICAgRm9yIGNvbXBhdGliaWxpdHkgd2l0aCBQeWdtZW50cyAwLjcgYW5kIGVhcmxpZXIsIGV2ZXJ5IHRydWUgdmFsdWUKICAgICAgICBleGNlcHQgYGAnaW5saW5lJ2BgIG1lYW5zIHRoZSBzYW1lIGFzIGBgJ3RhYmxlJ2BgIChpbiBwYXJ0aWN1bGFyLCB0aGF0CiAgICAgICAgbWVhbnMgYWxzbyBgYFRydWVgYCkuCgogICAgICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGBgRmFsc2VgYCwgd2hpY2ggbWVhbnMgbm8gbGluZSBudW1iZXJzIGF0IGFsbC4KCiAgICAgICAgKipOb3RlOioqIHdpdGggdGhlIGRlZmF1bHQgKCJ0YWJsZSIpIGxpbmUgbnVtYmVyIG1lY2hhbmlzbSwgdGhlIGxpbmUKICAgICAgICBudW1iZXJzIGFuZCBjb2RlIGNhbiBoYXZlIGRpZmZlcmVudCBsaW5lIGhlaWdodHMgaW4gSW50ZXJuZXQgRXhwbG9yZXIKICAgICAgICB1bmxlc3MgeW91IGdpdmUgdGhlIGVuY2xvc2luZyBgYDxwcmU+YGAgdGFncyBhbiBleHBsaWNpdCBgYGxpbmUtaGVpZ2h0YGAKICAgICAgICBDU1MgcHJvcGVydHkgKHlvdSBnZXQgdGhlIGRlZmF1bHQgbGluZSBzcGFjaW5nIHdpdGggYGBsaW5lLWhlaWdodDoKICAgICAgICAxMjUlYGApLgoKICAgIGBobF9saW5lc2AKICAgICAgICBTcGVjaWZ5IGEgbGlzdCBvZiBsaW5lcyB0byBiZSBoaWdobGlnaHRlZC4gVGhlIGxpbmUgbnVtYmVycyBhcmUgYWx3YXlzCiAgICAgICAgcmVsYXRpdmUgdG8gdGhlIGlucHV0IChpLmUuIHRoZSBmaXJzdCBsaW5lIGlzIGxpbmUgMSkgYW5kIGFyZQogICAgICAgIGluZGVwZW5kZW50IG9mIGBsaW5lbm9zdGFydGAuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDAuMTEKCiAgICBgbGluZW5vc3RhcnRgCiAgICAgICAgVGhlIGxpbmUgbnVtYmVyIGZvciB0aGUgZmlyc3QgbGluZSAoZGVmYXVsdDogYGAxYGApLgoKICAgIGBsaW5lbm9zdGVwYAogICAgICAgIElmIHNldCB0byBhIG51bWJlciBuID4gMSwgb25seSBldmVyeSBudGggbGluZSBudW1iZXIgaXMgcHJpbnRlZC4KCiAgICBgbGluZW5vc3BlY2lhbGAKICAgICAgICBJZiBzZXQgdG8gYSBudW1iZXIgbiA+IDAsIGV2ZXJ5IG50aCBsaW5lIG51bWJlciBpcyBnaXZlbiB0aGUgQ1NTCiAgICAgICAgY2xhc3MgYGAic3BlY2lhbCJgYCAoZGVmYXVsdDogYGAwYGApLgoKICAgIGBub2JhY2tncm91bmRgCiAgICAgICAgSWYgc2V0IHRvIGBgVHJ1ZWBgLCB0aGUgZm9ybWF0dGVyIHdvbid0IG91dHB1dCB0aGUgYmFja2dyb3VuZCBjb2xvcgogICAgICAgIGZvciB0aGUgd3JhcHBpbmcgZWxlbWVudCAodGhpcyBhdXRvbWF0aWNhbGx5IGRlZmF1bHRzIHRvIGBgRmFsc2VgYAogICAgICAgIHdoZW4gdGhlcmUgaXMgbm8gd3JhcHBpbmcgZWxlbWVudCBbZWc6IG5vIGFyZ3VtZW50IGZvciB0aGUKICAgICAgICBgZ2V0X3N5bnRheF9kZWZzYCBtZXRob2QgZ2l2ZW5dKSAoZGVmYXVsdDogYGBGYWxzZWBgKS4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMC42CgogICAgYGxpbmVzZXBhcmF0b3JgCiAgICAgICAgVGhpcyBzdHJpbmcgaXMgb3V0cHV0IGJldHdlZW4gbGluZXMgb2YgY29kZS4gSXQgZGVmYXVsdHMgdG8gYGAiXG4iYGAsCiAgICAgICAgd2hpY2ggaXMgZW5vdWdoIHRvIGJyZWFrIGEgbGluZSBpbnNpZGUgYGA8cHJlPmBgIHRhZ3MsIGJ1dCB5b3UgY2FuCiAgICAgICAgZS5nLiBzZXQgaXQgdG8gYGAiPGJyPiJgYCB0byBnZXQgSFRNTCBsaW5lIGJyZWFrcy4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMC43CgogICAgYGxpbmVhbmNob3JzYAogICAgICAgIElmIHNldCB0byBhIG5vbmVtcHR5IHN0cmluZywgZS5nLiBgYGZvb2BgLCB0aGUgZm9ybWF0dGVyIHdpbGwgd3JhcCBlYWNoCiAgICAgICAgb3V0cHV0IGxpbmUgaW4gYW4gYW5jaG9yIHRhZyB3aXRoIGFuIGBgaWRgYCAoYW5kIGBuYW1lYCkgb2YgYGBmb28tbGluZW51bWJlcmBgLgogICAgICAgIFRoaXMgYWxsb3dzIGVhc3kgbGlua2luZyB0byBjZXJ0YWluIGxpbmVzLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjkKCiAgICBgbGluZXNwYW5zYAogICAgICAgIElmIHNldCB0byBhIG5vbmVtcHR5IHN0cmluZywgZS5nLiBgYGZvb2BgLCB0aGUgZm9ybWF0dGVyIHdpbGwgd3JhcCBlYWNoCiAgICAgICAgb3V0cHV0IGxpbmUgaW4gYSBzcGFuIHRhZyB3aXRoIGFuIGBgaWRgYCBvZiBgYGZvby1saW5lbnVtYmVyYGAuCiAgICAgICAgVGhpcyBhbGxvd3MgZWFzeSBhY2Nlc3MgdG8gbGluZXMgdmlhIGphdmFzY3JpcHQuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuNgoKICAgIGBhbmNob3JsaW5lbm9zYAogICAgICAgIElmIHNldCB0byBgVHJ1ZWAsIHdpbGwgd3JhcCBsaW5lIG51bWJlcnMgaW4gPGE+IHRhZ3MuIFVzZWQgaW4KICAgICAgICBjb21iaW5hdGlvbiB3aXRoIGBsaW5lbm9zYCBhbmQgYGxpbmVhbmNob3JzYC4KCiAgICBgdGFnc2ZpbGVgCiAgICAgICAgSWYgc2V0IHRvIHRoZSBwYXRoIG9mIGEgY3RhZ3MgZmlsZSwgd3JhcCBuYW1lcyBpbiBhbmNob3IgdGFncyB0aGF0CiAgICAgICAgbGluayB0byB0aGVpciBkZWZpbml0aW9ucy4gYGxpbmVhbmNob3JzYCBzaG91bGQgYmUgdXNlZCwgYW5kIHRoZQogICAgICAgIHRhZ3MgZmlsZSBzaG91bGQgc3BlY2lmeSBsaW5lIG51bWJlcnMgKHNlZSB0aGUgYC1uYCBvcHRpb24gdG8gY3RhZ3MpLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjYKCiAgICBgdGFndXJsZm9ybWF0YAogICAgICAgIEEgc3RyaW5nIGZvcm1hdHRpbmcgcGF0dGVybiB1c2VkIHRvIGdlbmVyYXRlIGxpbmtzIHRvIGN0YWdzIGRlZmluaXRpb25zLgogICAgICAgIEF2YWlsYWJsZSB2YXJpYWJsZXMgYXJlIGAlKHBhdGgpc2AsIGAlKGZuYW1lKXNgIGFuZCBgJShmZXh0KXNgLgogICAgICAgIERlZmF1bHRzIHRvIGFuIGVtcHR5IHN0cmluZywgcmVzdWx0aW5nIGluIGp1c3QgYCNwcmVmaXgtbnVtYmVyYCBsaW5rcy4KCiAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMS42CgogICAgYGZpbGVuYW1lYAogICAgICAgIEEgc3RyaW5nIHVzZWQgdG8gZ2VuZXJhdGUgYSBmaWxlbmFtZSB3aGVuIHJlbmRlcmluZyBgYDxwcmU+YGAgYmxvY2tzLAogICAgICAgIGZvciBleGFtcGxlIGlmIGRpc3BsYXlpbmcgc291cmNlIGNvZGUuIElmIGBsaW5lbm9zYCBpcyBzZXQgdG8KICAgICAgICBgYCd0YWJsZSdgYCB0aGVuIHRoZSBmaWxlbmFtZSB3aWxsIGJlIHJlbmRlcmVkIGluIGFuIGluaXRpYWwgcm93CiAgICAgICAgY29udGFpbmluZyBhIHNpbmdsZSBgPHRoPmAgd2hpY2ggc3BhbnMgYm90aCBjb2x1bW5zLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAyLjEKCiAgICBgd3JhcGNvZGVgCiAgICAgICAgV3JhcCB0aGUgY29kZSBpbnNpZGUgYGA8cHJlPmBgIGJsb2NrcyB1c2luZyBgYDxjb2RlPmBgLCBhcyByZWNvbW1lbmRlZAogICAgICAgIGJ5IHRoZSBIVE1MNSBzcGVjaWZpY2F0aW9uLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAyLjQKCiAgICBgZGVidWdfdG9rZW5fdHlwZXNgCiAgICAgICAgQWRkIGBgdGl0bGVgYCBhdHRyaWJ1dGVzIHRvIGFsbCB0b2tlbiBgYDxzcGFuPmBgIHRhZ3MgdGhhdCBzaG93IHRoZQogICAgICAgIG5hbWUgb2YgdGhlIHRva2VuLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAyLjEwCgoKICAgICoqU3ViY2xhc3NpbmcgdGhlIEhUTUwgZm9ybWF0dGVyKioKCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjcKCiAgICBUaGUgSFRNTCBmb3JtYXR0ZXIgaXMgbm93IGJ1aWx0IGluIGEgd2F5IHRoYXQgYWxsb3dzIGVhc3kgc3ViY2xhc3NpbmcsIHRodXMKICAgIGN1c3RvbWl6aW5nIHRoZSBvdXRwdXQgSFRNTCBjb2RlLiBUaGUgYGZvcm1hdCgpYCBtZXRob2QgY2FsbHMKICAgIGBzZWxmLl9mb3JtYXRfbGluZXMoKWAgd2hpY2ggcmV0dXJucyBhIGdlbmVyYXRvciB0aGF0IHlpZWxkcyB0dXBsZXMgb2YgYGAoMSwKICAgIGxpbmUpYGAsIHdoZXJlIHRoZSBgYDFgYCBpbmRpY2F0ZXMgdGhhdCB0aGUgYGBsaW5lYGAgaXMgYSBsaW5lIG9mIHRoZQogICAgZm9ybWF0dGVkIHNvdXJjZSBjb2RlLgoKICAgIElmIHRoZSBgbm93cmFwYCBvcHRpb24gaXMgc2V0LCB0aGUgZ2VuZXJhdG9yIGlzIHRoZSBpdGVyYXRlZCBvdmVyIGFuZCB0aGUKICAgIHJlc3VsdGluZyBIVE1MIGlzIG91dHB1dC4KCiAgICBPdGhlcndpc2UsIGBmb3JtYXQoKWAgY2FsbHMgYHNlbGYud3JhcCgpYCwgd2hpY2ggd3JhcHMgdGhlIGdlbmVyYXRvciB3aXRoCiAgICBvdGhlciBnZW5lcmF0b3JzLiBUaGVzZSBtYXkgYWRkIHNvbWUgSFRNTCBjb2RlIHRvIHRoZSBvbmUgZ2VuZXJhdGVkIGJ5CiAgICBgX2Zvcm1hdF9saW5lcygpYCwgZWl0aGVyIGJ5IG1vZGlmeWluZyB0aGUgbGluZXMgZ2VuZXJhdGVkIGJ5IHRoZSBsYXR0ZXIsCiAgICB0aGVuIHlpZWxkaW5nIHRoZW0gYWdhaW4gd2l0aCBgYCgxLCBsaW5lKWBgLCBhbmQvb3IgYnkgeWllbGRpbmcgb3RoZXIgSFRNTAogICAgY29kZSBiZWZvcmUgb3IgYWZ0ZXIgdGhlIGxpbmVzLCB3aXRoIGBgKDAsIGh0bWwpYGAuIFRoZSBkaXN0aW5jdGlvbiBiZXR3ZWVuCiAgICBzb3VyY2UgbGluZXMgYW5kIG90aGVyIGNvZGUgbWFrZXMgaXQgcG9zc2libGUgdG8gd3JhcCB0aGUgZ2VuZXJhdG9yIG11bHRpcGxlCiAgICB0aW1lcy4KCiAgICBUaGUgZGVmYXVsdCBgd3JhcCgpYCBpbXBsZW1lbnRhdGlvbiBhZGRzIGEgYGA8ZGl2PmBgIGFuZCBhIGBgPHByZT5gYCB0YWcuCgogICAgQSBjdXN0b20gYEh0bWxGb3JtYXR0ZXJgIHN1YmNsYXNzIGNvdWxkIGxvb2sgbGlrZSB0aGlzOgoKICAgIC4uIHNvdXJjZWNvZGU6OiBweXRob24KCiAgICAgICAgY2xhc3MgQ29kZUh0bWxGb3JtYXR0ZXIoSHRtbEZvcm1hdHRlcik6CgogICAgICAgICAgICBkZWYgd3JhcChzZWxmLCBzb3VyY2UsICosIGluY2x1ZGVfZGl2KToKICAgICAgICAgICAgICAgIHJldHVybiBzZWxmLl93cmFwX2NvZGUoc291cmNlKQoKICAgICAgICAgICAgZGVmIF93cmFwX2NvZGUoc2VsZiwgc291cmNlKToKICAgICAgICAgICAgICAgIHlpZWxkIDAsICc8Y29kZT4nCiAgICAgICAgICAgICAgICBmb3IgaSwgdCBpbiBzb3VyY2U6CiAgICAgICAgICAgICAgICAgICAgaWYgaSA9PSAxOgogICAg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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 14
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
bbcode.cpython-38.pyc
3.03 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
groff.cpython-38.pyc
4.30 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
html.cpython-38.pyc
28.46 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
img.cpython-38.pyc
17.11 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
irc.cpython-38.pyc
4.39 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
latex.cpython-38.pyc
13.53 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
other.cpython-38.pyc
4.69 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pangomarkup.cpython-38.pyc
2.08 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
rtf.cpython-38.pyc
4.07 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
svg.cpython-38.pyc
6.23 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
terminal.cpython-38.pyc
3.90 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
terminal256.cpython-38.pyc
9.04 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_mapping.cpython-38.pyc
5.29 KB
lrw-r--r--
2023-11-13 21:40:27
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-38.pyc
4.54 KB
lrw-r--r--
2023-11-13 21:40:27
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).