REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 64.77 KB
Close
/proc/self/root/lib/python3.6/site-packages/pip/_vendor/__pycache__/ipaddress.cpython-36.pyc
Text
Base64
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ZAZ8AGoCfAFmAhYAgwGCAXwAagN0BHwAagWDAXQEfABqBoMBfAE+AEAAfANmAoMBUwApB2HLAgAAVGhlIHN1cGVybmV0IGNvbnRhaW5pbmcgdGhlIGN1cnJlbnQgbmV0d29yay4KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgcHJlZml4bGVuX2RpZmY6IEFuIGludGVnZXIsIHRoZSBhbW91bnQgdGhlIHByZWZpeCBsZW5ndGggb2YKICAgICAgICAgICAgICB0aGUgbmV0d29yayBzaG91bGQgYmUgZGVjcmVhc2VkIGJ5LiAgRm9yIGV4YW1wbGUsIGdpdmVuIGEKICAgICAgICAgICAgICAvMjQgbmV0d29yayBhbmQgYSBwcmVmaXhsZW5fZGlmZiBvZiAzLCBhIHN1cGVybmV0IHdpdGggYQogICAgICAgICAgICAgIC8yMSBuZXRtYXNrIGlzIHJldHVybmVkLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBbiBJUHY0IG5ldHdvcmsgb2JqZWN0LgoKICAgICAgICBSYWlzZXM6CiAgICAgICAgICAgIFZhbHVlRXJyb3I6IElmIHNlbGYucHJlZml4bGVuIC0gcHJlZml4bGVuX2RpZmYgPCAwLiBJLmUuLCB5b3UgaGF2ZQogICAgICAgICAgICAgIGEgbmVnYXRpdmUgcHJlZml4IGxlbmd0aC4KICAgICAgICAgICAgICAgIE9SCiAgICAgICAgICAgIElmIHByZWZpeGxlbl9kaWZmIGFuZCBuZXdfcHJlZml4IGFyZSBib3RoIHNldCBvciBuZXdfcHJlZml4IGlzIGEKICAgICAgICAgICAgICBsYXJnZXIgbnVtYmVyIHRoYW4gdGhlIGN1cnJlbnQgcHJlZml4IChsYXJnZXIgbnVtYmVyIG1lYW5zIGEKICAgICAgICAgICAgICBzbWFsbGVyIG5ldHdvcmspCgogICAgICAgIHIBAAAATnoabmV3IHByZWZpeCBtdXN0IGJlIHNob3J0ZXJyJAAAAHooY2Fubm90IHNldCBwcmVmaXhsZW5fZGlmZiBhbmQgbmV3X3ByZWZpeHo7Y3VycmVudCBwcmVmaXhsZW4gaXMgJWQsIGNhbm5vdCBoYXZlIGEgcHJlZml4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LjAuMi4xJwogICAgICAgICAgICAgICcxOTIuMC4yLjEvMjU1LjI1NS4yNTUuMjU1JwogICAgICAgICAgICAgICcxOTIuMC4yLjEvMzInCiAgICAgICAgICAgICAgYXJlIGFsc28gZnVuY3Rpb25hbGx5IGVxdWl2YWxlbnQuIFRoYXQgaXMgdG8gc2F5LCBmYWlsaW5nIHRvCiAgICAgICAgICAgICAgcHJvdmlkZSBhIHN1Ym5ldG1hc2sgd2lsbCBjcmVhdGUgYW4gb2JqZWN0IHdpdGggYSBtYXNrIG9mIC8zMi4KCiAgICAgICAgICAgICAgSWYgdGhlIG1hc2sgKHBvcnRpb24gYWZ0ZXIgdGhlIC8gaW4gdGhlIGFyZ3VtZW50KSBpcyBnaXZlbiBpbgogICAgICAgICAgICAgIGRvdHRlZCBxdWFkIGZvcm0sIGl0IGlzIHRyZWF0ZWQgYXMgYSBuZXRtYXNrIGlmIGl0IHN0YXJ0cyB3aXRoIGEKICAgICAgICAgICAgICBub24temVybyBmaWVsZCAoZS5nLiAvMjU1LjAuMC4wID09IC84KSBhbmQgYXMgYSBob3N0bWFzayBpZiBpdAogICAgICAgICAgICAgIHN0YXJ0cyB3aXRoIGEgemVybyBmaWVsZCAoZS5nLiAwLjI1NS4yNTUuMjU1ID09IC84KSwgd2l0aCB0aGUKICAgICAgICAgICAgICBzaW5nbGUgZXhjZXB0aW9uIG9mIGFuIGFsbC16ZXJvIG1hc2sgd2hpY2ggaXMgdHJlYXRlZCBhcyBhCiAgICAgICAgICAgICAgbmV0bWFzayA9PSAvMC4gSWYgbm8gbWFzayBpcyBnaXZlbiwgYSBkZWZhdWx0IG9mIC8zMiBpcyB1c2VkLgoKICAgICAgICAgICAgICBBZGRpdGlvbmFsbHksIGFuIGludGVnZXIgY2FuIGJlIHBhc3NlZCwgc28KICAgICAgICAgICAgICBJUHY0TmV0d29yaygnMTkyLjAuMi4xJykgPT0gSVB2NE5ldHdvcmsoMzIyMTIyNTk4NSkKICAgICAgICAgICAgICBvciwgbW9yZSBnZW5lcmFsbHkKICAgICAgICAgICAgICBJUHY0SW50ZXJmYWNlKGludChJUHY0SW50ZXJmYWNlKCcxOTIuMC4yLjEnKSkpID09CiAgICAgICAgICAgICAgICBJUHY0SW50ZXJmYWNlKCcxOTIuMC4yLjEnKQoKICAgICAgICBSYWlzZXM6CiAgICAgICAgICAgIEFkZHJlc3NWYWx1ZUVycm9yOiBJZiBpcGFkZHJlc3MgaXNuJ3QgYSB2YWxpZCBJUHY0IGFkZHJlc3MuCiAgICAgICAgICAgIE5ldG1hc2tWYWx1ZUVycm9yOiBJZiB0aGUgbmV0bWFzayBpc24ndCB2YWxpZCBmb3IKICAgICAgICAgICAgICBhbiBJUHY0IGFkZHJlc3MuCiAgICAgICAgICAgIFZhbHVlRXJyb3I6IElmIHN0cmljdCBpcyBUcnVlIGFuZCBhIG5ldHdvcmsgYWRkcmVzcyBpcyBub3QKICAgICAgICAgICAgICBzdXBwbGllZC4KCiAgICAgICAgTnIkAAAAcgEAAAB6FCVzIGhhcyBob3N0IGJpdHMgc2V0chYAAAApE3J4AAAAcqMAAAByEAAAAHIRAAAAcj4AAAByPAAAAHJ0AAAActAAAAByYgAAAHKtAAAAcnIAAABy7gAAAHJPAAAAcpAAAAByPwAAAHJRAAAAcpIAAAByqQAAAHKoAAAAKQZyKgAAAHJAAAAAckQAAAByzwAAAHLkAAAAclAAAAByBAAAAHIEAAAAcgYAAAByowAAADAGAABzQgAAAAAlDAMOAQoBBAEQAgQCCgEMAQoDBgEOARIBCgESAQQBDgIEARABBAQIARQCDAEKAgYBEgIGARYBCgEMAQoBEAISAXoUSVB2NE5ldHdvcmsuX19pbml0X19jAQAAAAAAAAABAAAAAwAAAEMAAABzJgAAAHwAagB0AWQBgwFrBm8afABqAnQBZAGDAWsGDABvJHwAagMMAFMAKQJ6uVRlc3QgaWYgdGhpcyBhZGRyZXNzIGlzIGFsbG9jYXRlZCBmb3IgcHVibGljIG5ldHdvcmtzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIGFkZHJlc3MgaXMgbm90IHJlc2VydmVkIHBlcgogICAgICAgICAgICBpYW5hLWlwdjQtc3BlY2lhbC1yZWdpc3RyeS4KCiAgICAgICAgeg0xMDAuNjQuMC4wLzEwKQRydAAAAHJCAAAAcm0AAABywgAAACkBcioAAAByBAAAAHIEAAAAcgYAAABywwAAAIUGAABzBgAAAAAJDgEQAXoVSVB2NE5ldHdvcmsuaXNfZ2xvYmFsTikBVCkJcjUAAAByNgAAAHI3AAAAcjoAAAByPAAAAHKkAAAAcqMAAABylwAAAHLDAAAAcgQAAAByBAAAAHIEAAAAcgYAAAByQgAAACEGAABzCAAAAAgLBAIEAgpVckIAAABjAAAAAAAAAAAAAAAADwAAAEAAAABzlAAAAGUAWgFkAFoCZQNkAYMBWgRlA2QCgwFaBWUDZAODAVoGZQNkBIMBWgdlA2QFgwFlA2QGgwFlA2QCgwFlA2QBgwFlA2QHgwFlA2QIgwFlA2QJgwFlA2QKgwFlA2QLgwFlA2QMgwFlA2QNgwFlA2QOgwFlA2QPgwFlA2QQgwFnDloIZQNkD4MBWgllCmQRgwFaC2QSUwApE9oOX0lQdjRDb25zdGFudHN6DjE2OS4yNTQuMC4wLzE2egsxMjcuMC4wLjAvOHoLMjI0LjAuMC4wLzR6DTEwMC42NC4wLjAvMTB6CTAuMC4wLjAvOHoKMTAuMC4wLjAvOHoNMTcyLjE2LjAuMC8xMnoMMTkyLjAuMC4wLzI5eg4xOTIuMC4wLjE3MC8zMXoMMTkyLjAuMi4wLzI0eg4xOTIuMTY4LjAuMC8xNnoNMTk4LjE4LjAuMC8xNXoPMTk4LjUxLjEwMC4wLzI0eg4yMDMuMC4xMTMuMC8yNHoLMjQwLjAuMC4wLzR6EjI1NS4yNTUuMjU1LjI1NS8zMnoHMC4wLjAuME4pDHI1AAAAcjYAAAByNwAAAHJCAAAAcu0AAABy7AAAAHLqAAAAcukAAABy6AAAAHLmAAAAcjwAAABy6wAAAHIEAAAAcgQAAAByBAAAAHIGAAAAcvEAAACTBgAAcygAAAAIAggCCAIIAggDBgEGAQYBBgEGAQYBBgEGAQYBBgEGAQYBBgEKAwgCcvEAAABjAAAAAAAAAAAAAAAABAAAAEAAAABzngAAAGUAWgFkAFoCZAFaA2YAWgRkAloFZANlBhMAZAQYAFoHZAVaCGUJZAaDAVoKZQZaC2kAWgxlDWQHZAiEAIMBWg5lDWQJZAqEAIMBWg9lDWQLZAyEAIMBWhBlDWQNZA6EAIMBWhFlDWQaZBBkEYQBgwFaEmQSZBOEAFoTZBRkFYQAWhRlFWQWZBeEAIMBWhZlFWQYZBmEAIMBWhdkD1MAKRvaB19CYXNlVjZ6eUJhc2UgSVB2NiBvYmplY3QuCgogICAgVGhlIGZvbGxvd2luZyBtZXRob2RzIGFyZSB1c2VkIGJ5IElQdjYgb2JqZWN0cyBpbiBib3RoIHNpbmdsZSBJUAogICAgYWRkcmVzc2VzIGFuZCBuZXR3b3Jrcy4KCiAgICByXgAAAHIWAAAAciQAAAByDgAAAFoWMDEyMzQ1Njc4OUFCQ0RFRmFiY2RlZmMCAAAAAAAAAAQAAAADAAAAQwAAAHNKAAAAfAF8AGoAawdyQHQBfAF0AoMCchp8AX0Cbgp8AGoDfAGDAX0CdAR8AGoFfAKDAYMBfQN8A3wCZgJ8AGoAfAE8AHwAagB8ARkAUwApAWEPAQAATWFrZSBhIChuZXRtYXNrLCBwcmVmaXhfbGVuKSB0dXBsZSBmcm9tIHRoZSBnaXZlbiBhcmd1bWVudC4KCiAgICAgICAgQXJndW1lbnQgY2FuIGJlOgogICAgICAgIC0gYW4gaW50ZWdlciAodGhlIHByZWZpeCBsZW5ndGgpCiAgICAgICAgLSBhIHN0cmluZyByZXByZXNlbnRpbmcgdGhlIHByZWZpeCBsZW5ndGggKGUuZy4gIjI0IikKICAgICAgICAtIGEgc3RyaW5nIHJlcHJlc2VudGluZyB0aGUgcHJlZml4IG5ldG1hc2sgKGUuZy4gIjI1NS4yNTUuMjU1LjAiKQogICAgICAgICkGcs4AAAByEAAAAHIRAAAAcpEAAAByPQAAAHKJAAAAKQRyhwAAAHLPAAAAcogAAAByrQAAAHIEAAAAcgQAAAByBgAAAHLQAAAAygYAAHMOAAAAAAkKAQoBBgIKAQ4BDgF6FV9CYXNlVjYuX21ha2VfbmV0bWFza2MCAAAAAAAAAA4AAAAeAAAAQwAAAHPiAgAAfAFzDHQAZAGDAYIBfAFqAWQCgwF9AmQDfQN0AnwCgwF8A2sAcjpkBHwDfAFmAhYAfQR0AHwEgwGCAWQFfAJkExkAawZytHkSdAN8AmoEgwCDAWoFfQVXAG4yBAB0AGsKcooBAH0GAQB6FnQAZAd8BnwBZgIWAIMBggFXAFkAZAhkCH0GfgZYAG4CWAB8AmoGZAl8BWQKPwBkC0AAFgCDAQEAfAJqBmQJfAVkC0AAFgCDAQEAfABqB2QGFwB9B3QCfAKDAXwHawRy4mQMfAdkBhgAfAFmAhYAfQR0AHwEgwGCAWQIfQh4QHQIZAZ0AnwCgwFkBhgAgwJEAF0qfQl8AnwJGQBz+nwIZAhrCZABciBkDXwBFgB9BHQAfASDAYIBfAl9CHH6VwB8CGQIawmQAXLKfAh9CnQCfAKDAXwIGABkBhgAfQt8AmQOGQCQAXNufApkBjgAfQp8CpABcm5kD30EdAB8BHwBFgCDAYIBfAJkFBkAkAFzlnwLZAY4AH0LfAuQAXKWZBB9BHQAfAR8ARYAgwGCAXwAagd8CnwLFwAYAH0MfAxkBmsAkAJyNGQRfQR0AHwEfABqB2QGGAB8AWYCFgCDAYIBbmp0AnwCgwF8AGoHawOQAXLwZBJ9BHQAfAR8AGoHfAFmAhYAgwGCAXwCZA4ZAJACcwpkD30EdAB8BHwBFgCDAYIBfAJkFRkAkAJzJGQQfQR0AHwEfAEWAIMBggF0AnwCgwF9CmQOfQtkDn0MeXRkDn0NeCx0CXwKgwFEAF0gfQl8DWQKSwB9DXwNfABqCnwCfAkZAIMBTwB9DZACcURXAHwNZAp8DBQASwB9DXgwdAl8CwsAZA6DAkQAXSB9CXwNZApLAH0NfA18AGoKfAJ8CRkAgwFPAH0NkAJxglcAfA1TAAQAdAtrCpACctwBAH0GAQB6FnQAZAd8BnwBZgIWAIMBggFXAFkAZAhkCH0GfgZYAG4CWABkCFMAKRZ6+VR1cm4gYW4gSVB2NiBpcF9zdHIgaW50byBhbiBpbnRlZ2VyLgoKICAgICAgICBBcmdzOgogICAgICAgICAgICBpcF9zdHI6IEEgc3RyaW5nLCB0aGUgSVB2NiBpcF9zdHIuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIEFuIGludCwgdGhlIElQdjYgYWRkcmVzcwoKICAgICAgICBSYWlzZXM6CiAgICAgICAgICAgIEFkZHJlc3NWYWx1ZUVycm9yOiBpZiBpcF9zdHIgaXNuJ3QgYSB2YWxpZCBJUHY2IEFkZHJlc3MuCgogICAgICAgIHoXQWRkcmVzcyBjYW5ub3QgYmUgZW1wdHn6ATpy1QAAAHogQXQgbGVhc3QgJWQgcGFydHMgZXhwZWN0ZWQgaW4gJXJy0QAAAHIkAAAAegglcyBpbiAlck56AiV4chgAAABp//8AAHohQXQgbW9zdCAlZCBjb2xvbnMgcGVybWl0dGVkIGluICVyeiBBdCBtb3N0IG9uZSAnOjonIHBlcm1pdHRlZCBpbiAlcnIBAAAAejBMZWFkaW5nICc6JyBvbmx5IHBlcm1pdHRlZCBhcyBwYXJ0IG9mICc6OicgaW4gJXJ6MVRyYWlsaW5nICc6JyBvbmx5IHBlcm1pdHRlZCBhcyBwYXJ0IG9mICc6OicgaW4gJXJ6L0V4cGVjdGVkIGF0IG1vc3QgJWQgb3RoZXIgcGFydHMgd2l0aCAnOjonIGluICVyeixFeGFjdGx5ICVkIHBhcnRzIGV4cGVjdGVkIHdpdGhvdXQgJzo6JyBpbiAlcnJwAAAAcnAAAABycAAAACkMcjkAAAByTgAAAHJPAAAAcjwAAAByZwAAAHJUAAAAcmoAAADaDV9IRVhURVRfQ09VTlRyKAAAANoFcmFuZ2XaDV9wYXJzZV9oZXh0ZXRyPwAAACkOcocAAABykwAAAHLcAAAAWgpfbWluX3BhcnRzcoQAAABaCGlwdjRfaW50ctQAAABaCl9tYXhfcGFydHNaCnNraXBfaW5kZXhyIAAAAFoIcGFydHNfaGlaCHBhcnRzX2xvWg1wYXJ0c19za2lwcGVkcooAAAByBAAAAHIEAAAAcgYAAABykgAAANwGAABzhgAAAAAOBAEIAgoDBAEMAQwBCAMMAQIBEgEQASIBFgESBQoBDAECAQ4BCAQEARgBCAEKAggBCAEIBAoCBAEQAQoBCAEGAQQBDAEKAQgBBgEEAQwBDgEKAQQBGAUQAQQBEgEKAQQBDAEKAQQBDAEIAQQBBAICAgQBDgEIARgBDAESAQgBGAEEARIBehtfQmFzZVY2Ll9pcF9pbnRfZnJvbV9zdHJpbmdjAgAAAAAAAAADAAAAAwAAAEMAAABzPgAAAHwAagBqAXwBgwFzGHQCZAF8ARYAgwGCAXQDfAGDAWQCawRyNGQDfQJ0AnwCfAEWAIMBggF0BHwBZASDAlMAKQVhJgEAAENvbnZlcnQgYW4gSVB2NiBoZXh0ZXQgc3RyaW5nIGludG8gYW4gaW50ZWdlci4KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgaGV4dGV0X3N0cjogQSBzdHJpbmcsIHRoZSBudW1iZXIgdG8gcGFyc2UuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIFRoZSBoZXh0ZXQgYXMgYW4gaW50ZWdlci4KCiAgICAgICAgUmFpc2VzOgogICAgICAgICAgICBWYWx1ZUVycm9yOiBpZiB0aGUgaW5wdXQgaXNuJ3Qgc3RyaWN0bHkgYSBoZXggbnVtYmVyIGZyb20KICAgICAgICAgICAgICBbMC4uRkZGRl0uCgogICAgICAgIHofT25seSBoZXggZGlnaXRzIHBlcm1pdHRlZCBpbiAlcnIVAAAAeiRBdCBtb3N0IDQgY2hhcmFjdGVycyBwZXJtaXR0ZWQgaW4gJXJyGAAAACkF2gtfSEVYX0RJR0lUU3KPAAAAcj8AAAByTwAAAHKQAAAAKQNyhwAAAFoKaGV4dGV0X3N0cnKEAAAAcgQAAAByBAAAAHIGAAAAcvYAAABFBwAAcwwAAAAAEAwBDAMMAQQBDAJ6FV9CYXNlVjYuX3BhcnNlX2hleHRldGMCAAAAAAAAAAkAAAAEAAAAQwAAAHOmAAAAZAV9AmQCfQNkBn0EZAJ9BXhKdAB8AYMBRABdPlwCfQZ9B3wHZANrAnJQfAVkATcAfQV8BGQHawJyPnwGfQR8BXwDawRyWHwFfQN8BH0CcRpkAn0FZAh9BHEaVwB8A2QBawRyonwCfAMXAH0IfAh0AXwBgwFrAnKCfAFkBGcBNwB9AWQEZwF8AXwCfAiFAjwAfAJkAmsCcqJkBGcBfAEXAH0BfAFTACkJYeQBAABDb21wcmVzc2VzIGEgbGlzdCBvZiBoZXh0ZXRzLgoKICAgICAgICBDb21wcmVzc2VzIGEgbGlzdCBvZiBzdHJpbmdzLCByZXBsYWNpbmcgdGhlIGxvbmdlc3QgY29udGludW91cwogICAgICAgIHNlcXVlbmNlIG9mICIwIiBpbiB0aGUgbGlzdCB3aXRoICIiIGFuZCBhZGRpbmcgZW1wdHkgc3RyaW5ncyBhdAogICAgICAgIHRoZSBiZWdpbm5pbmcgb3IgYXQgdGhlIGVuZCBvZiB0aGUgc3RyaW5nIHN1Y2ggdGhhdCBzdWJzZXF1ZW50bHkKICAgICAgICBjYWxsaW5nICI6Ii5qb2luKGhleHRldHMpIHdpbGwgcHJvZHVjZSB0aGUgY29tcHJlc3NlZCB2ZXJzaW9uIG9mCiAgICAgICAgdGhlIElQdjYgYWRkcmVzcy4KCiAgICAgICAgQXJnczoKICAgICAgICAgICAgaGV4dGV0czogQSBsaXN0IG9mIHN0cmluZ3MsIHRoZSBoZXh0ZXRzIHRvIGNvbXByZXNzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBIGxpc3Qgb2Ygc3RyaW5ncy4KCiAgICAgICAgciQAAAByAQAAAHLYAAAA2gBycAAAAHJwAAAAcnAAAABycAAAACkC2gllbnVtZXJhdGVyTwAAACkJcocAAADaB2hleHRldHNaFmJlc3RfZG91YmxlY29sb25fc3RhcnRaFGJlc3RfZG91YmxlY29sb25fbGVuWhFkb3VibGVjb2xvbl9zdGFydFoPZG91YmxlY29sb25fbGVu2gVpbmRleFoGaGV4dGV0WhRiZXN0X2RvdWJsZWNvbG9uX2VuZHIEAAAAcgQAAAByBgAAANoRX2NvbXByZXNzX2hleHRldHNfBwAAcy4AAAAAEQQBBAEEAQQBEgEIAQgBCAIEAQgCBAEGAgQBCAIIAQIBBgIMAQoBDgIIAQoCehlfQmFzZVY2Ll9jb21wcmVzc19oZXh0ZXRzTmMCAAAAAAAAAAMAAAAFAAAAAwAAAHNaAAAAfAFkAWsIchJ0AHwAagGDAX0BfAF8AGoCawRyJHQDZAKDAYIBZAN8ARYAiQCHAGYBZARkBYQIdARkBmQHZAiDA0QAgwF9AnwAagV8AoMBfQJkCWoGfAKDAVMAKQphLAEAAFR1cm5zIGEgMTI4LWJpdCBpbnRlZ2VyIGludG8gaGV4YWRlY2ltYWwgbm90YXRpb24uCgogICAgICAgIEFyZ3M6CiAgICAgICAgICAgIGlwX2ludDogQW4gaW50ZWdlciwgdGhlIElQIGFkZHJlc3MuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIEEgc3RyaW5nLCB0aGUgaGV4YWRlY2ltYWwgcmVwcmVzZW50YXRpb24gb2YgdGhlIGFkZHJlc3MuCgogICAgICAgIFJhaXNlczoKICAgICAgICAgICAgVmFsdWVFcnJvcjogVGhlIGFkZHJlc3MgaXMgYmlnZ2VyIHRoYW4gMTI4IGJpdHMgb2YgYWxsIG9uZXMuCgogICAgICAgIE56GUlQdjYgYWRkcmVzcyBpcyB0b28gbGFyZ2V6BSUwMzJ4YwEAAAAAAAAAAgAAAAgAAAATAAAAcyYAAABnAHwAXR59AWQAdACIAHwBfAFkARcAhQIZAGQCgwIWAJECcQRTACkDegIleHIVAAAAchgAAAApAXKQAAAAKQJyCgAAAHKnAAAAKQHaB2hleF9zdHJyBAAAAHIGAAAAcgwAAACkBwAAcwIAAAAGAHovX0Jhc2VWNi5fc3RyaW5nX2Zyb21faXBfaW50Ljxsb2NhbHM+LjxsaXN0Y29tcD5yAQAAAHIXAAAAchUAAABy8wAAACkHcpAAAAByVAAAAHJjAAAAcj8AAABy9QAAAHL8AAAActoAAAApA3KHAAAAcooAAABy+gAAAHIEAAAAKQFy/QAAAHIGAAAAcp0AAACPBwAAcxAAAAAADggBCgIKAQgCCAEaAgoBehtfQmFzZVY2Ll9zdHJpbmdfZnJvbV9pcF9pbnRjAQAAAAAAAAAEAAAABQAAAAMAAABzjAAAAHQAfAB0AYMCchZ0AnwAagODAX0Bbh50AHwAdASDAnIsdAJ8AGoFgwF9AW4IdAJ8AIMBfQF8AGoGfAGDAX0CZAF8AhYAiQCHAGYBZAJkA4QIdAdkBGQFZAaDA0QAgwF9A3QAfAB0CHQEZgKDAnKCZAdkCGoJfAODAXwAagpmAhYAUwBkCGoJfAODAVMAKQl6rEV4cGFuZCBhIHNob3J0ZW5lZCBJUHY2IGFkZHJlc3MuCgogICAgICAgIEFyZ3M6CiAgICAgICAgICAgIGlwX3N0cjogQSBzdHJpbmcsIHRoZSBJUHY2IGFkZHJlc3MuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIEEgc3RyaW5nLCB0aGUgZXhwYW5kZWQgSVB2NiBhZGRyZXNzLgoKICAgICAgICB6BSUwMzJ4YwEAAAAAAAAAAgAAAAYAAAATAAAAcxwAAABnAHwAXRR9AYgAfAF8AWQAFwCFAhkAkQJxBFMAKQFyFQAAAHIEAAAAKQJyCgAAAHKnAAAAKQFy/QAAAHIEAAAAcgYAAAByDAAAALwHAABzAgAAAAYAejhfQmFzZVY2Ll9leHBsb2RlX3Nob3J0aGFuZF9pcF9zdHJpbmcuPGxvY2Fscz4uPGxpc3Rjb21wPnIBAAAAchcAAAByFQAAAHoFJXMvJWRy8wAAACkLchAAAAByQwAAAHJNAAAAcnQAAAByRwAAAHJZAAAAcpIAAABy9QAAAHJ4AAAActoAAABycgAAACkEcioAAABykwAAAHKKAAAActwAAAByBAAAACkBcv0AAAByBgAAAHJ+AAAAqQcAAHMWAAAAAAoKAQwBCgEMAggCCgEIARoBDgEUAXokX0Jhc2VWNi5fZXhwbG9kZV9zaG9ydGhhbmRfaXBfc3RyaW5nYwEAAAAAAAAAAgAAAAQAAABDAAAAcyYAAAB8AGoAZAFkAWQHhQMZAGoBZANkBIMCfQFkBWoCfAGDAWQGFwBTACkIeoFSZXR1cm4gdGhlIHJldmVyc2UgRE5TIHBvaW50ZXIgbmFtZSBmb3IgdGhlIElQdjYgYWRkcmVzcy4KCiAgICAgICAgVGhpcyBpbXBsZW1lbnRzIHRoZSBtZXRob2QgZGVzY3JpYmVkIGluIFJGQzM1OTYgMi41LgoKICAgICAgICBOciQAAABy8wAAAHL4AAAActEAAAB6CS5pcDYuYXJwYXJwAAAAKQNyfwAAANoHcmVwbGFjZXLaAAAAKQJyKgAAAFoNcmV2ZXJzZV9jaGFyc3IEAAAAcgQAAAByBgAAAHKBAAAAwQcAAHMEAAAAAAYYAXoYX0Jhc2VWNi5fcmV2ZXJzZV9wb2ludGVyYwEAAAAAAAAAAQAAAAEAAABDAAAAcwYAAAB8AGoAUwApAU4pAXJiAAAAKQFyKgAAAHIEAAAAcgQAAAByBgAAAHLeAAAAygcAAHMCAAAAAAJ6FV9CYXNlVjYubWF4X3ByZWZpeGxlbmMBAAAAAAAAAAEAAAABAAAAQwAAAHMGAAAAfABqAFMAKQFOKQFycQAAACkBcioAAAByBAAAAHIEAAAAcgYAAAByYQAAAM4HAABzAgAAAAACeg9fQmFzZVY2LnZlcnNpb24pAU4pGHI1AAAAcjYAAAByNwAAAHI6AAAAcjgAAABycQAAANoKSVBWNkxFTkdUSHJjAAAAcvQAAABy4AAAAHL3AAAAcmIAAAByzgAAAHKYAAAActAAAABykgAAAHL2AAAAcvwAAABynQAAAHJ+AAAAcoEAAABylwAAAHLeAAAAcmEAAAByBAAAAHIEAAAAcgQAAAByBgAAAHLyAAAAtgYAAHMkAAAACAcEAgQBBAEMAQQBCAEEBAQCDBIMaQwaDDACAQwZCBgICQwEcvIAAABjAAAAAAAAAAAAAAAAAwAAAEAAAABzrAAAAGUAWgFkAFoCZAFaA2QfWgRkBGQFhABaBWUGZAZkB4QAgwFaB2UGZAhkCYQAgwFaCGUGZApkC4QAgwFaCWUGZAxkDYQAgwFaCmUGZA5kD4QAgwFaC2UGZBBkEYQAgwFaDGUGZBJkE4QAgwFaDWUGZBRkFYQAgwFaDmUGZBZkF4QAgwFaD2UGZBhkGYQAgwFaEGUGZBpkG4QAgwFaEWUGZBxkHYQAgwFaEmQeUwApIHI9AAAAei9SZXByZXNlbnQgYW5kIG1hbmlwdWxhdGUgc2luZ2xlIElQdjYgQWRkcmVzc2VzLnJUAAAAcuEAAABjAgAAAAAAAAAEAAAAAwAAAEMAAABzeAAAAHQAfAF0AYMCch58AGoCfAGDAQEAfAF8AF8DZAFTAHQAfAF0BIMCckx8AGoFfAFkAoMCAQB0BnwBgwF9AnQHfAJkA4MCfABfA2QBUwB0CHwBgwF9A2QEfANrBnJodAlkBXwBFgCDAYIBfABqCnwDgwF8AF8DZAFTACkGYQQCAABJbnN0YW50aWF0ZSBhIG5ldyBJUHY2IGFkZHJlc3Mgb2JqZWN0LgoKICAgICAgICBBcmdzOgogICAgICAgICAgICBhZGRyZXNzOiBBIHN0cmluZyBvciBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgSVAKCiAgICAgICAgICAgICAgQWRkaXRpb25hbGx5LCBhbiBpbnRlZ2VyIGNhbiBiZSBwYXNzZWQsIHNvCiAgICAgICAgICAgICAgSVB2NkFkZHJlc3MoJzIwMDE6ZGI4OjonKSA9PQogICAgICAgICAgICAgICAgSVB2NkFkZHJlc3MoNDI1NDA3NjY0MTEyODI1OTI4NTY5MDM5ODQ5NTE2NTM4MjY1NjApCiAgICAgICAgICAgICAgb3IsIG1vcmUgZ2VuZXJhbGx5CiAgICAgICAgICAgICAgSVB2NkFkZHJlc3MoaW50KElQdjZBZGRyZXNzKCcyMDAxOmRiODo6JykpKSA9PQogICAgICAgICAgICAgICAgSVB2NkFkZHJlc3MoJzIwMDE6ZGI4OjonKQoKICAgICAgICBSYWlzZXM6CiAgICAgICAgICAgIEFkZHJlc3NWYWx1ZUVycm9yOiBJZiBhZGRyZXNzIGlzbid0IGEgdmFsaWQgSVB2NiBhZGRyZXNzLgoKICAgICAgICBOchgAAAByDQAAAHJMAAAAehRVbmV4cGVjdGVkICcvJyBpbiAlcikLchAAAAByEQAAAHKFAAAAclQAAAByPgAAAHKGAAAAcgcAAAByFAAAAHJNAAAAcjkAAABykgAAACkEcioAAAByQAAAAHLiAAAAcuMAAAByBAAAAHIEAAAAcgYAAAByowAAANkHAABzGgAAAAASCgEKAQYBBAMKAQwBCAEMAQQECAEIAQwBehRJUHY2QWRkcmVzcy5fX2luaXRfX2MBAAAAAAAAAAEAAAACAAAAQwAAAHMKAAAAdAB8AGoBgwFTACkBeipUaGUgYmluYXJ5IHJlcHJlc2VudGF0aW9uIG9mIHRoaXMgYWRkcmVzcy4pAnJLAAAAclQAAAApAXIqAAAAcgQAAAByBAAAAHIGAAAAcuQAAAD+BwAAcwIAAAAAA3oSSVB2NkFkZHJlc3MucGFja2VkYwEAAAAAAAAAAQAAAAIAAABDAAAAcwwAAAB8AHwAagBqAWsGUwApAXq7VGVzdCBpZiB0aGUgYWRkcmVzcyBpcyByZXNlcnZlZCBmb3IgbXVsdGljYXN0IHVzZS4KCiAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoZSBhZGRyZXNzIGlzIGEgbXVsdGljYXN0IGFkZHJlc3MuCiAgICAgICAgICAgIFNlZSBSRkMgMjM3MyAyLjcgZm9yIGRldGFpbHMuCgogICAgICAgICkCcuUAAABy6gAAACkBcioAAAByBAAAAHIEAAAAcgYAAAByvQAAAAMIAABzAgAAAAAJehhJUHY2QWRkcmVzcy5pc19tdWx0aWNhc3RjAQAAAAAAAAABAAAABAAAAAMAAABzGgAAAHQAhwBmAWQBZAKECIgAagFqAkQAgwGDAVMAKQN6tVRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgb3RoZXJ3aXNlIElFVEYgcmVzZXJ2ZWQuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIEEgYm9vbGVhbiwgVHJ1ZSBpZiB0aGUgYWRkcmVzcyBpcyB3aXRoaW4gb25lIG9mIHRoZQogICAgICAgICAgICByZXNlcnZlZCBJUHY2IE5ldHdvcmsgcmFuZ2VzLgoKICAgICAgICBjAQAAAAAAAAACAAAAAwAAADMAAABzFgAAAHwAXQ59AYgAfAFrBlYAAQBxAmQAUwApAU5yBAAAACkCcgoAAABypwAAACkBcioAAAByBAAAAHIGAAAActkAAAAXCAAAcwIAAAAEAHoqSVB2NkFkZHJlc3MuaXNfcmVzZXJ2ZWQuPGxvY2Fscz4uPGdlbmV4cHI+KQNy5wAAAHLlAAAA2hJfcmVzZXJ2ZWRfbmV0d29ya3MpAXIqAAAAcgQAAAApAXIqAAAAcgYAAABywAAAAA4IAABzAgAAAAAJehdJUHY2QWRkcmVzcy5pc19yZXNlcnZlZGMBAAAAAAAAAAEAAAACAAAAQwAAAHMMAAAAfAB8AGoAagFrBlMAKQF6kFRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgZm9yIGxpbmstbG9jYWwuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIEEgYm9vbGVhbiwgVHJ1ZSBpZiB0aGUgYWRkcmVzcyBpcyByZXNlcnZlZCBwZXIgUkZDIDQyOTEuCgogICAgICAgICkCcuUAAABy7QAAACkBcioAAAByBAAAAHIEAAAAcgYAAABywQAAABkIAABzAgAAAAAIehlJUHY2QWRkcmVzcy5pc19saW5rX2xvY2FsYwEAAAAAAAAAAQAAAAIAAABDAAAAcwwAAAB8AHwAagBqAWsGUwApAWFgAQAAVGVzdCBpZiB0aGUgYWRkcmVzcyBpcyByZXNlcnZlZCBmb3Igc2l0ZS1sb2NhbC4KCiAgICAgICAgTm90ZSB0aGF0IHRoZSBzaXRlLWxvY2FsIGFkZHJlc3Mgc3BhY2UgaGFzIGJlZW4gZGVwcmVjYXRlZCBieSBSRkMgMzg3OS4KICAgICAgICBVc2UgaXNfcHJpdmF0ZSB0byB0ZXN0IGlmIHRoaXMgYWRkcmVzcyBpcyBpbiB0aGUgc3BhY2Ugb2YgdW5pcXVlIGxvY2FsCiAgICAgICAgYWRkcmVzc2VzIGFzIGRlZmluZWQgYnkgUkZDIDQxOTMuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIEEgYm9vbGVhbiwgVHJ1ZSBpZiB0aGUgYWRkcmVzcyBpcyByZXNlcnZlZCBwZXIgUkZDIDM1MTMgMi41LjYuCgogICAgICAgICkCcuUAAADaEl9zaXRlbG9jYWxfbmV0d29yaykBcioAAAByBAAAAHIEAAAAcgYAAADaDWlzX3NpdGVfbG9jYWwjCAAAcwIAAAAADHoZSVB2NkFkZHJlc3MuaXNfc2l0ZV9sb2NhbGMBAAAAAAAAAAEAAAAEAAAAAwAAAHMaAAAAdACHAGYBZAFkAoQIiABqAWoCRACDAYMBUwApA3q2VGVzdCBpZiB0aGlzIGFkZHJlc3MgaXMgYWxsb2NhdGVkIGZvciBwcml2YXRlIG5ldHdvcmtzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgcGVyCiAgICAgICAgICAgIGlhbmEtaXB2Ni1zcGVjaWFsLXJlZ2lzdHJ5LgoKICAgICAgICBjAQAAAAAAAAACAAAAAwAAADMAAABzFgAAAHwAXQ59AYgAfAFrBlYAAQBxAmQAUwApAU5yBAAAACkCcgoAAAByZAAAACkBcioAAAByBAAAAHIGAAAActkAAAA6CAAAcwIAAAAEAHopSVB2NkFkZHJlc3MuaXNfcHJpdmF0ZS48bG9jYWxzPi48Z2VuZXhwcj4pA3LnAAAAcuUAAABy6AAAACkBcioAAAByBAAAACkBcioAAAByBgAAAHLCAAAAMQgAAHMCAAAAAAl6FklQdjZBZGRyZXNzLmlzX3ByaXZhdGVjAQAAAAAAAAABAAAAAQAAAEMAAABzCAAAAHwAagAMAFMAKQF6uVRlc3QgaWYgdGhpcyBhZGRyZXNzIGlzIGFsbG9jYXRlZCBmb3IgcHVibGljIG5ldHdvcmtzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBIGJvb2xlYW4sIHRydWUgaWYgdGhlIGFkZHJlc3MgaXMgbm90IHJlc2VydmVkIHBlcgogICAgICAgICAgICBpYW5hLWlwdjYtc3BlY2lhbC1yZWdpc3RyeS4KCiAgICAgICAgKQFywgAAACkBcioAAAByBAAAAHIEAAAAcgYAAABywwAAADwIAABzAgAAAAAJehVJUHY2QWRkcmVzcy5pc19nbG9iYWxjAQAAAAAAAAABAAAAAgAAAEMAAABzCgAAAHwAagBkAWsCUwApAnqoVGVzdCBpZiB0aGUgYWRkcmVzcyBpcyB1bnNwZWNpZmllZC4KCiAgICAgICAgUmV0dXJuczoKICAgICAgICAgICAgQSBib29sZWFuLCBUcnVlIGlmIHRoaXMgaXMgdGhlIHVuc3BlY2lmaWVkIGFkZHJlc3MgYXMgZGVmaW5lZCBpbgogICAgICAgICAgICBSRkMgMjM3MyAyLjUuMi4KCiAgICAgICAgcgEAAAApAXJUAAAAKQFyKgAAAHIEAAAAcgQAAAByBgAAAHLEAAAARwgAAHMCAAAAAAl6GklQdjZBZGRyZXNzLmlzX3Vuc3BlY2lmaWVkYwEAAAAAAAAAAQAAAAIAAABDAAAAcwoAAAB8AGoAZAFrAlMAKQJ6sVRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgYSBsb29wYmFjayBhZGRyZXNzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIGFkZHJlc3MgaXMgYSBsb29wYmFjayBhZGRyZXNzIGFzIGRlZmluZWQgaW4KICAgICAgICAgICAgUkZDIDIzNzMgMi41LjMuCgogICAgICAgIHIkAAAAKQFyVAAAACkBcioAAAByBAAAAHIEAAAAcgYAAAByxQAAAFIIAABzAgAAAAAJehdJUHY2QWRkcmVzcy5pc19sb29wYmFja2MBAAAAAAAAAAEAAAADAAAAQwAAAHMgAAAAfABqAGQBPwBkAmsDchJkA1MAdAF8AGoAZARAAIMBUwApBXq2UmV0dXJuIHRoZSBJUHY0IG1hcHBlZCBhZGRyZXNzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBJZiB0aGUgSVB2NiBhZGRyZXNzIGlzIGEgdjQgbWFwcGVkIGFkZHJlc3MsIHJldHVybiB0aGUKICAgICAgICAgICAgSVB2NCBtYXBwZWQgYWRkcmVzcy4gUmV0dXJuIE5vbmUgb3RoZXJ3aXNlLgoKICAgICAgICByFwAAAGn//wAATmwDAAAA/3//fwMAKQJyVAAAAHI8AAAAKQFyKgAAAHIEAAAAcgQAAAByBgAAANoLaXB2NF9tYXBwZWRdCAAAcwYAAAAACQ4BBAF6F0lQdjZBZGRyZXNzLmlwdjRfbWFwcGVkYwEAAAAAAAAAAQAAAAQAAABDAAAAczQAAAB8AGoAZAE/AGQCawNyEmQDUwB0AXwAagBkBD8AZAVAAIMBdAF8AGoADwBkBUAAgwFmAlMAKQZ621R1cGxlIG9mIGVtYmVkZGVkIHRlcmVkbyBJUHMuCgogICAgICAgIFJldHVybnM6CiAgICAgICAgICAgIFR1cGxlIG9mIHRoZSAoc2VydmVyLCBjbGllbnQpIElQcyBvciBOb25lIGlmIHRoZSBhZGRyZXNzCiAgICAgICAgICAgIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGEgdGVyZWRvIGFkZHJlc3MgKGRvZXNuJ3Qgc3RhcnQgd2l0aAogICAgICAgICAgICAyMDAxOjovMzIpCgogICAgICAgIOlgAAAAaQAAASBOchoAAABsAwAAAP9//38DACkCclQAAAByPAAAACkBcioAAAByBAAAAHIEAAAAcgYAAADaBnRlcmVkb2oIAABzCAAAAAAKDgEEARABehJJUHY2QWRkcmVzcy50ZXJlZG9jAQAAAAAAAAABAAAAAwAAAEMAAABzJAAAAHwAagBkAT8AZAJrA3ISZANTAHQBfABqAGQEPwBkBUAAgwFTACkGes5SZXR1cm4gdGhlIElQdjQgNnRvNCBlbWJlZGRlZCBhZGRyZXNzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBUaGUgSVB2NCA2dG80LWVtYmVkZGVkIGFkZHJlc3MgaWYgcHJlc2VudCBvciBOb25lIGlmIHRoZQogICAgICAgICAgICBhZGRyZXNzIGRvZXNuJ3QgYXBwZWFyIHRvIGNvbnRhaW4gYSA2dG80IGVtYmVkZGVkIGFkZHJlc3MuCgogICAgICAgIOlwAAAAaQIgAABO6VAAAABsAwAAAP9//38DACkCclQAAAByPAAAACkBcioAAAByBAAAAHIEAAAAcgYAAADaCXNpeHRvZm91cnkIAABzBgAAAAAJDgEEAXoVSVB2NkFkZHJlc3Muc2l4dG9mb3VyTikCclQAAABy4QAAACkTcjUAAAByNgAAAHI3AAAAcjoAAAByOAAAAHKjAAAAcpcAAABy5AAAAHK9AAAAcsAAAABywQAAAHICAQAAcsIAAABywwAAAHLEAAAAcsUAAAByAwEAAHIFAQAAcggBAAByBAAAAHIEAAAAcgQAAAByBgAAAHI9AAAA0wcAAHMeAAAACAIEAgQCCCUMBQwLDAsMCgwODAsMCwwLDAsMDQwPcj0AAABjAAAAAAAAAAAAAAAAAwAAAEAAAABzggAAAGUAWgFkAFoCZAFkAoQAWgNkA2QEhABaBGQFZAaEAFoFZAdkCIQAWgZkCWQKhABaB2UIaglaCWUKZAtkDIQAgwFaC2UKZA1kDoQAgwFaDGUKZA9kEIQAgwFaDWUKZBFkEoQAgwFaDmUKZBNkFIQAgwFaD2UKZBVkFoQAgwFaEGQXUwApGHJHAAAAYwIAAAAAAAAAAwAAAAQAAABDAAAAc94AAAB0AHwBdAF0AmYCgwJyMnQDagR8AHwBgwIBAHQFfABqBoMBfABfB3wAagh8AF8JZABTAHQAfAF0CoMCcpZ0A2oEfAB8AWQBGQCDAgEAdAt8AYMBZAJrBHJodAx8AWQCGQCDAXwAXwluCHwAagh8AF8JdAV8AWQDZASNAnwAXwd8AGoHag18AF8NfABqB2oOfABfDmQAUwB0D3wBgwF9AnQDagR8AHwCZAEZAIMCAQB0BXwBZANkBI0CfABfB3wAagdqDXwAXw18AGoHagl8AF8JfABqB2oOfABfDmQAUwApBU5yAQAAAHIkAAAARikBckQAAAApEHIQAAAAcj4AAAByEQAAAHI9AAAAcqMAAAByQwAAAHJUAAAAcqUAAAByYgAAAHJyAAAAcu4AAAByTwAAAHKQAAAAcq0AAABysAAAAHJRAAAAKQNyKgAAAHJAAAAAclAAAAByBAAAAHIEAAAAcgYAAAByowAAAIkIAABzKAAAAAABDgEMAQwBCAEEAQoBEAEMARACCAEOAQoBCgEEAggBEAEOAQoBCgF6FklQdjZJbnRlcmZhY2UuX19pbml0X19jAQAAAAAAAAABAAAAAwAAAEMAAABzGAAAAGQBfABqAHwAagGDAXwAagJqA2YCFgBTACkCTnoFJXMvJWQpBHKdAAAAclQAAABypQAAAHKIAAAAKQFyKgAAAHIEAAAAcgQAAAByBgAAAHKeAAAAoQgAAHMEAAAAAAEMAXoVSVB2NkludGVyZmFjZS5fX3N0cl9fYwIAAAAAAAAAAwAAAAsAAABDAAAAc0QAAAB0AGoBfAB8AYMCfQJ8AgwAcxp8AnQCawhyHnwCUwB5DHwAagN8AWoDawJTAAQAdARrCnI+AQABAAEAZAFTAFgAZABTACkCTkYpBXI9AAAAciwAAAByLQAAAHKlAAAAcnMAAAApA3IqAAAAcisAAABy7wAAAHIEAAAAcgQAAAByBgAAAHIsAAAApQgAAHMOAAAAAAEMAQ4BBAECAQwBDgR6FElQdjZJbnRlcmZhY2UuX19lcV9fYwIAAAAAAAAAAwAAAAsAAABDAAAAcz4AAAB0AGoBfAB8AYMCfQJ8AnQCawhyGHQCUwB5DHwAagN8AWoDawBTAAQAdARrCnI4AQABAAEAZAFTAFgAZABTACkCTkYpBXI9AAAAcjAAAAByLQAAAHKlAAAAcnMAAAApA3IqAAAAcisAAABy8AAAAHIEAAAAcgQAAAByBgAAAHIwAAAAsQgAAHMOAAAAAAEMAQgBBAECAQwBDgN6FElQdjZJbnRlcmZhY2UuX19sdF9fYwEAAAAAAAAAAQAAAAMAAABDAAAAcxgAAAB8AGoAfABqAUEAdAJ8AGoDagSDAUEAUwApAU4pBXJUAAAAcnIAAABykAAAAHKlAAAAcnQAAAApAXIqAAAAcgQAAAByBAAAAHIGAAAAcqEAAAC8CAAAcwIAAAAAAXoWSVB2NkludGVyZmFjZS5fX2hhc2hfX2MBAAAAAAAAAAEAAAACAAAAQwAAAHMKAAAAdAB8AGoBgwFTACkBTikCcj0AAAByVAAAACkBcioAAAByBAAAAHIEAAAAcgYAAAByWQAAAMEIAABzAgAAAAACehBJUHY2SW50ZXJmYWNlLmlwYwEAAAAAAAAAAQAAAAMAAABDAAAAcxYAAABkAXwAagB8AGoBgwF8AGoCZgIWAFMAKQJOegUlcy8lcykDcp0AAAByVAAAAHJyAAAAKQFyKgAAAHIEAAAAcgQAAAByBgAAAHKxAAAAxQgAAHMEAAAAAAIMAXocSVB2NkludGVyZmFjZS53aXRoX3ByZWZpeGxlbmMBAAAAAAAAAAEAAAADAAAAQwAAAHMWAAAAZAF8AGoAfABqAYMBfABqAmYCFgBTACkCTnoFJXMvJXMpA3KdAAAAclQAAAByrQAAACkBcioAAAByBAAAAHIEAAAAcgYAAABysgAAAMoIAABzBAAAAAACDAF6GklQdjZJbnRlcmZhY2Uud2l0aF9uZXRtYXNrYwEAAAAAAAAAAQAAAAMAAABDAAAAcxYAAABkAXwAagB8AGoBgwF8AGoCZgIWAFMAKQJOegUlcy8lcykDcp0AAAByVAAAAHKwAAAAKQFyKgAAAHIEAAAAcgQAAAByBgAAAHKzAAAAzwgAAHMEAAAAAAIMAXobSVB2NkludGVyZmFjZS53aXRoX2hvc3RtYXNrYwEAAAAAAAAAAQAAAAIAAABDAAAAcxIAAAB8AGoAZAFrAm8QfABqAWoCUwApAk5yAQAAACkDclQAAABypQAAAHLEAAAAKQFyKgAAAHIEAAAAcgQAAAByBgAAAHLEAAAA1AgAAHMCAAAAAAJ6HElQdjZJbnRlcmZhY2UuaXNfdW5zcGVjaWZpZWRjAQAAAAAAAAABAAAAAgAAAEMAAABzEgAAAHwAagBkAWsCbxB8AGoBagJTACkCTnIkAAAAKQNyVAAAAHKlAAAAcsUAAAApAXIqAAAAcgQAAAByBAAAAHIGAAAAcsUAAADYCAAAcwIAAAAAAnoZSVB2NkludGVyZmFjZS5pc19sb29wYmFja04pEXI1AAAAcjYAAAByNwAAAHKjAAAAcp4AAAByLAAAAHIwAAAAcqEAAAByfQAAAHKWAAAAcpcAAAByWQAAAHKxAAAAcrIAAAByswAAAHLEAAAAcsUAAAByBAAAAHIEAAAAcgQAAAByBgAAAHJHAAAAhwgAAHMYAAAACAIIGAgECAwICwgDBgIMBAwFDAUMBQwEckcAAABjAAAAAAAAAAAAAAAAAwAAAEAAAABzMgAAAGUAWgFkAFoCZAFaA2UEWgVkCmQDZASEAVoGZAVkBoQAWgdlCGQHZAiEAIMBWglkCVMAKQtyQwAAAGF2AQAAVGhpcyBjbGFzcyByZXByZXNlbnRzIGFuZCBtYW5pcHVsYXRlcyAxMjgtYml0IElQdjYgbmV0d29ya3MuCgogICAgQXR0cmlidXRlczogW2V4YW1wbGVzIGZvciBJUHY2KCcyMDAxOmRiODo6MTAwMC8xMjQnKV0KICAgICAgICAubmV0d29ya19hZGRyZXNzOiBJUHY2QWRkcmVzcygnMjAwMTpkYjg6OjEwMDAnKQogICAgICAgIC5ob3N0bWFzazogSVB2NkFkZHJlc3MoJzo6ZicpCiAgICAgICAgLmJyb2FkY2FzdF9hZGRyZXNzOiBJUHY2QWRkcmVzcygnMjAwMTpkYjg6OjEwMGYnKQogICAgICAgIC5uZXRtYXNrOiBJUHY2QWRkcmVzcygnZmZmZjpmZmZmOmZmZmY6ZmZmZjpmZmZmOmZmZmY6ZmZmZjpmZmYwJykKICAgICAgICAucHJlZml4bGVuOiAxMjQKCiAgICBUYwMAAAAAAAAABgAAAAQAAABDAAAAc3wBAAB0AGoBfAB8AYMCAQB0AnwBdAN0BGYCgwJyPHQFfAGDAXwAXwZ8AGoHfABqCIMBXAJ8AF8JfABfCmQBUwB0AnwBdAuDAnLIdAx8AYMBZAJrBHJcfAFkAhkAfQNuBnwAagh9A3wAagd8A4MBXAJ8AF8JfABfCnQFfAFkAxkAgwF8AF8GdA18AGoGgwF9BHwEdA18AGoJgwFAAHwEawNyxHwCcrB0DmQEfAAWAIMBggFuFHQFfAR0DXwAagmDAUAAgwF8AF8GZAFTAHQPfAGDAX0FdAV8AGoQfAVkAxkAgwGDAXwAXwZ0DHwFgwFkBWsCcvp8BWQCGQB9A24GfABqCH0DfABqB3wDgwFcAnwAXwl8AF8KfAKQAXJEdAV0DXwAagaDAXQNfABqCYMBQACDAXwAagZrA5ABckR0DmQEfAAWAIMBggF0BXQNfABqBoMBdA18AGoJgwFAAIMBfABfBnwAagp8AGoIZAIYAGsCkAFyeHwAahF8AF8SZAFTACkGYecEAABJbnN0YW50aWF0ZSBhIG5ldyBJUHY2IE5ldHdvcmsgb2JqZWN0LgoKICAgICAgICBBcmdzOgogICAgICAgICAgICBhZGRyZXNzOiBBIHN0cmluZyBvciBpbnRlZ2VyIHJlcHJlc2VudGluZyB0aGUgSVB2NiBuZXR3b3JrIG9yIHRoZQogICAgICAgICAgICAgIElQIGFuZCBwcmVmaXgvbmV0bWFzay4KICAgICAgICAgICAgICAnMjAwMTpkYjg6Oi8xMjgnCiAgICAgICAgICAgICAgJzIwMDE6ZGI4OjAwMDA6MDAwMDowMDAwOjAwMDA6MDAwMDowMDAwLzEyOCcKICAgICAgICAgICAgICAnMjAwMTpkYjg6OicKICAgICAgICAgICAgICBhcmUgYWxsIGZ1bmN0aW9uYWxseSB0aGUgc2FtZSBpbiBJUHY2LiAgVGhhdCBpcyB0byBzYXksCiAgICAgICAgICAgICAgZmFpbGluZyB0byBwcm92aWRlIGEgc3VibmV0bWFzayB3aWxsIGNyZWF0ZSBhbiBvYmplY3Qgd2l0aAogICAgICAgICAgICAgIGEgbWFzayBvZiAvMTI4LgoKICAgICAgICAgICAgICBBZGRpdGlvbmFsbHksIGFuIGludGVnZXIgY2FuIGJlIHBhc3NlZCwgc28KICAgICAgICAgICAgICBJUHY2TmV0d29yaygnMjAwMTpkYjg6OicpID09CiAgICAgICAgICAgICAgICBJUHY2TmV0d29yayg0MjU0MDc2NjQxMTI4MjU5Mjg1NjkwMzk4NDk1MTY1MzgyNjU2MCkKICAgICAgICAgICAgICBvciwgbW9yZSBnZW5lcmFsbHkKICAgICAgICAgICAgICBJUHY2TmV0d29yayhpbnQoSVB2Nk5ldHdvcmsoJzIwMDE6ZGI4OjonKSkpID09CiAgICAgICAgICAgICAgICBJUHY2TmV0d29yaygnMjAwMTpkYjg6OicpCgogICAgICAgICAgICBzdHJpY3Q6IEEgYm9vbGVhbi4gSWYgdHJ1ZSwgZW5zdXJlIHRoYXQgd2UgaGF2ZSBiZWVuIHBhc3NlZAogICAgICAgICAgICAgIEEgdHJ1ZSBuZXR3b3JrIGFkZHJlc3MsIGVnLCAyMDAxOmRiODo6MTAwMC8xMjQgYW5kIG5vdCBhbgogICAgICAgICAgICAgIElQIGFkZHJlc3Mgb24gYSBuZXR3b3JrLCBlZywgMjAwMTpkYjg6OjEvMTI0LgoKICAgICAgICBSYWlzZXM6CiAgICAgICAgICAgIEFkZHJlc3NWYWx1ZUVycm9yOiBJZiBhZGRyZXNzIGlzbid0IGEgdmFsaWQgSVB2NiBhZGRyZXNzLgogICAgICAgICAgICBOZXRtYXNrVmFsdWVFcnJvcjogSWYgdGhlIG5ldG1hc2sgaXNuJ3QgdmFsaWQgZm9yCiAgICAgICAgICAgICAgYW4gSVB2NiBhZGRyZXNzLgogICAgICAgICAgICBWYWx1ZUVycm9yOiBJZiBzdHJpY3Qgd2FzIFRydWUgYW5kIGEgbmV0d29yayBhZGRyZXNzIHdhcyBub3QKICAgICAgICAgICAgICBzdXBwbGllZC4KCiAgICAgICAgTnIkAAAAcgEAAAB6FCVzIGhhcyBob3N0IGJpdHMgc2V0chYAAAApE3J4AAAAcqMAAAByEAAAAHI+AAAAchEAAAByPQAAAHJ0AAAActAAAAByYgAAAHKtAAAAcnIAAABy7gAAAHJPAAAAcpAAAAByPwAAAHJRAAAAcpIAAAByqQAAAHKoAAAAKQZyKgAAAHJAAAAAckQAAAByzwAAAHLkAAAAclAAAAByBAAAAHIEAAAAcgYAAAByowAAAO0IAABzQgAAAAAgDAMOAQoBBAEQAQQCCgEMAQoCBgESAQ4BCgESAQQBDgIEARABBAQIAhQCDAEKAgYBEgIGARYBCgEMAQoBEAISAXoUSVB2Nk5ldHdvcmsuX19pbml0X19jAQAAAAAAAAAEAAAABAAAAGMAAABzQAAAAHQAfABqAYMBfQF0AHwAagKDAX0CeCZ0A3wBZAEXAHwCZAEXAIMCRABdEH0DfABqBHwDgwFWAAEAcShXAGQCUwApA3qiR2VuZXJhdGUgSXRlcmF0b3Igb3ZlciB1c2FibGUgaG9zdHMgaW4gYSBuZXR3b3JrLgoKICAgICAgICAgIFRoaXMgaXMgbGlrZSBfX2l0ZXJfXyBleGNlcHQgaXQgZG9lc24ndCByZXR1cm4gdGhlCiAgICAgICAgICBTdWJuZXQtUm91dGVyIGFueWNhc3QgYWRkcmVzcy4KCiAgICAgICAgciQAAABOKQVykAAAAHJ0AAAAcm0AAAByKAAAAHKkAAAAKQRyKgAAAHKlAAAAcqYAAABypwAAAHIEAAAAcgQAAAByBgAAAHKoAAAAPAkAAHMIAAAAAAcKAQoBGAF6EUlQdjZOZXR3b3JrLmhvc3RzYwEAAAAAAAAAAQAAAAEAAABDAAAAcxAAAAB8AGoAagFvDnwAagJqAVMAKQFhYAEAAFRlc3QgaWYgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgZm9yIHNpdGUtbG9jYWwuCgogICAgICAgIE5vdGUgdGhhdCB0aGUgc2l0ZS1sb2NhbCBhZGRyZXNzIHNwYWNlIGhhcyBiZWVuIGRlcHJlY2F0ZWQgYnkgUkZDIDM4NzkuCiAgICAgICAgVXNlIGlzX3ByaXZhdGUgdG8gdGVzdCBpZiB0aGlzIGFkZHJlc3MgaXMgaW4gdGhlIHNwYWNlIG9mIHVuaXF1ZSBsb2NhbAogICAgICAgIGFkZHJlc3NlcyBhcyBkZWZpbmVkIGJ5IFJGQyA0MTkzLgoKICAgICAgICBSZXR1cm5zOgogICAgICAgICAgICBBIGJvb2xlYW4sIFRydWUgaWYgdGhlIGFkZHJlc3MgaXMgcmVzZXJ2ZWQgcGVyIFJGQyAzNTEzIDIuNS42LgoKICAgICAgICApA3J0AAAAcgIBAABybQAAACkBcioAAAByBAAAAHIEAAAAcgYAAAByAgEAAEgJAABzBAAAAAAMCAF6GUlQdjZOZXR3b3JrLmlzX3NpdGVfbG9jYWxOKQFUKQpyNQAAAHI2AAAAcjcAAAByOgAAAHI9AAAAcqQAAAByowAAAHKoAAAAcpcAAAByAgEAAHIEAAAAcgQAAAByBAAAAHIGAAAAckMAAADdCAAAcwoAAAAICwQDBAIKTwgMckMAAABjAAAAAAAAAAAAAAAAEAAAAEAAAABzwgAAAGUAWgFkAFoCZQNkAYMBWgRlA2QCgwFaBWUDZAODAWUDZASDAWUDZAWDAWUDZAaDAWUDZAeDAWUDZAiDAWUDZAmDAWUDZAqDAWUDZAuDAWUDZAGDAWcKWgZlA2QMgwFlA2QNgwFlA2QOgwFlA2QPgwFlA2QQgwFlA2QRgwFlA2QSgwFlA2QTgwFlA2QUgwFlA2QVgwFlA2QWgwFlA2QXgwFlA2QYgwFlA2QZgwFlA2QagwFnD1oHZQNkG4MBWghkHFMAKR3aDl9JUHY2Q29uc3RhbnRzeglmZTgwOjovMTB6CGZmMDA6Oi84egc6OjEvMTI4egY6Oi8xMjh6DTo6ZmZmZjowOjAvOTZ6CDEwMDo6LzY0egkyMDAxOjovMjN6CzIwMDE6Mjo6LzQ4eg0yMDAxOmRiODo6LzMyegwyMDAxOjEwOjovMjh6CGZjMDA6Oi83egQ6Oi84egcxMDA6Oi84egcyMDA6Oi83egc0MDA6Oi82egc4MDA6Oi81eggxMDAwOjovNHoINDAwMDo6LzN6CDYwMDA6Oi8zegg4MDAwOjovM3oIQTAwMDo6LzN6CEMwMDA6Oi8zeghFMDAwOjovNHoIRjAwMDo6LzV6CEY4MDA6Oi82eghGRTAwOjovOXoJZmVjMDo6LzEwTikJcjUAAAByNgAAAHI3AAAAckMAAABy7QAAAHLqAAAAcugAAAByAAEAAHIBAQAAcgQAAAByBAAAAHIEAAAAcgYAAAByCQEAAFgJAABzKgAAAAgCCAIIAwYBBgEGAQYBBgEGAQYBBgEGAQoEDAEMAQwBDAEMAQwBDAEKA3IJAQAAcgEAAAApAXIkAAAAKQFUKThyOgAAAFoKX19mdXR1cmVfX3ICAAAAciIAAAByCAAAANoLX192ZXJzaW9uX19ykAAAAHIRAAAAWgRsb25n2glOYW1lRXJyb3JaB3VuaWNvZGVyTQAAANoDc3Rycj4AAAByDwAAAHIHAAAA2gpmcm9tX2J5dGVzchQAAABycwAAAHIeAAAAcr4AAAByIQAAAHIoAAAA2gZvYmplY3RyKQAAAHLfAAAAcv8AAAByPwAAAHI5AAAAcjsAAAByQQAAAHJFAAAAckgAAABySgAAAHJLAAAAclEAAAByWgAAAHJdAAAAcmUAAABybwAAAHJ3AAAAcnwAAAByfQAAAHJfAAAAcngAAAByjQAAAHI8AAAAckYAAAByQgAAAHLxAAAAcuUAAABy8gAAAHI9AAAAckcAAAByQwAAAHIJAQAAcgQAAAByBAAAAHIEAAAAcgYAAADaCDxtb2R1bGU+CQAAAHOEAAAABAIMAwgBCAIEAwYBAgEMAQ4BBgECAQgBDgEEARIBCAEKAwgCAgEKAQ4BDgkIDQoCCgMIBgoIECkEAQQDEAQQBAgkCiQIIwgUCBAICAgUCBAINwgxCDYIGRB/AB8QPRB/AH8AfwBhEH8AKhJ2EFISchAgBgMQfwB/AB8SfwA1EFYSexAh
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 16
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
appdirs.cpython-36.opt-1.pyc
18.10 KB
lrw-r--r--
2024-04-06 13:40:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
appdirs.cpython-36.pyc
18.10 KB
lrw-r--r--
2024-04-06 13:40:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
distro.cpython-36.opt-1.pyc
31.75 KB
lrw-r--r--
2024-04-06 13:40:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
distro.cpython-36.pyc
31.75 KB
lrw-r--r--
2024-04-06 13:40:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ipaddress.cpython-36.opt-1.pyc
64.64 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ipaddress.cpython-36.pyc
64.77 KB
lrw-r--r--
2024-04-06 13:40:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pyparsing.cpython-36.opt-1.pyc
196.32 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pyparsing.cpython-36.pyc
196.32 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
re-vendor.cpython-36.opt-1.pyc
1.01 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
re-vendor.cpython-36.pyc
1.01 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
retrying.cpython-36.opt-1.pyc
7.83 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
retrying.cpython-36.pyc
7.83 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
six.cpython-36.opt-1.pyc
23.84 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
six.cpython-36.pyc
23.84 KB
lrw-r--r--
2024-04-06 13:40:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.opt-1.pyc
2.66 KB
lrw-r--r--
2024-04-06 13:40:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-36.pyc
2.66 KB
lrw-r--r--
2024-04-06 13:40:46
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).