REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 55.27 KB
Close
/opt/cloudlinux/venv/lib64/python3.11/site-packages/sqlalchemy/sql/__pycache__/operators.cpython-311.pyc
Text
Base64
pw0NCgAAAAC7fG9pQKYAAOMAAAAAAAAAAAAAAAAIAAAAAAAAAPOuBgAAlwBkAFoAZAFkAmwBbQJaAgEAZAFkA2wBbQNaAwEAZAFkBGwBbQRaBAEAZAFkBWwBbQVaBQEAZAFkBmwBbQZaBgEAZAFkB2wBbQdaBwEAZAFkCGwBbQhaCAEAZAFkCWwBbQlaCQEAZAFkCmwBbQpaCgEAZAFkC2wBbQtaCwEAZAFkDGwBbQxaDAEAZAFkDWwBbQ1aDQEAZAFkDmwBbQ5aDgEAZAFkD2wBbQ9aDwEAZAFkEGwBbRBaEAEAZAFkEWwBbRFaEQEAZAFkEmwBbRJaEgEAZAFkE2wBbRNaEwEAZAFkFGwBbRRaFAEAZBVkFmwVbRZaFgEAZRZqFwAAAAAAAAAAcgdkAWQXbAFtGFoYAQBuAmUUWhgCAEcAZBiEAGQZZRmmAwAAqwMAAAAAAAAAAFoaAgBHAGQahABkG2UZpgMAAKsDAAAAAAAAAABaGwIARwBkHIQAZB1lGqYDAACrAwAAAAAAAAAAWhxlBWUPZQJlDmgEWh1lBWUPZQxlCGUGZQpoBloeZB6EAFofZB+EAFogZCCEAFohZSBkIYQApgAAAKsAAAAAAAAAAABaImQihABaI2QjhABaJGQkhABaJWQlhABaJmUgZCaEAKYAAACrAAAAAAAAAAAAWidlIGQnhACmAAAAqwAAAAAAAAAAAFooZSBkKIQApgAAAKsAAAAAAAAAAABaKWUgZCmEAKYAAACrAAAAAAAAAAAAWipkKoQAWitkK4QAWixlIGRjZC2EAaYAAACrAAAAAAAAAAAAWi1lIGRjZC6EAaYAAACrAAAAAAAAAAAAWi5lIGRjZC+EAaYAAACrAAAAAAAAAAAAWi9lIGRjZDCEAaYAAACrAAAAAAAAAAAAWjBlIGRkZDKEAaYAAACrAAAAAAAAAAAAWjFlIGRkZDOEAaYAAACrAAAAAAAAAAAAWjJlIGQ0hACmAAAAqwAAAAAAAAAAAFozZSBkNYQApgAAAKsAAAAAAAAAAABaNGQ2hABaNWQ3hABaNmQ4hABaN2Q5hABaOGUgZGVkOoQBpgAAAKsAAAAAAAAAAABaOWUgZGVkO4QBpgAAAKsAAAAAAAAAAABaOmUgZGVkPIQBpgAAAKsAAAAAAAAAAABaO2UgZGVkPYQBpgAAAKsAAAAAAAAAAABaPGUgZGVkPoQBpgAAAKsAAAAAAAAAAABaPWUgZGVkP4QBpgAAAKsAAAAAAAAAAABaPmUgZECEAKYAAACrAAAAAAAAAAAAWj9lIGRBhACmAAAAqwAAAAAAAAAAAFpAZEKEAFpBZSBkQ4QApgAAAKsAAAAAAAAAAABaQmUgZESEAKYAAACrAAAAAAAAAAAAWkNkRYQAWkRkRoQAWkVkR4QAWkZkSIQAWkdkSYQAWkhkSoQAWklkS4QAWkpkTIQAWktkTYQAWkxkToQAWk1kT4QAWk5kUIQAWk9lCWUlZSZlA2URZgVaUGRRhABaUWUIZQxlBmUKZQxlCGUKZQZpBFpSZFKEAFpTZR2gVAAAAAAAAAAAAAAAAAAAAAAAAAAAZUVlA2URZwOmAQAAqwEAAAAAAAAAAKBVAAAAAAAAAAAAAAAAAAAAAAAAAABlBWUPZwKmAQAAqwEAAAAAAAAAAFpWZVagVAAAAAAAAAAAAAAAAAAAAAAAAAAAZQdlSmVLZwOmAQAAqwEAAAAAAAAAAFpXCQACAGUWalgAAAAAAAAAAGRTZFSsVaYCAACrAgAAAAAAAAAAWlkCAGUWalgAAAAAAAAAAGRWZFesVaYCAACrAgAAAAAAAAAAWloCAGUWalgAAAAAAAAAAGRYZFmsVaYCAACrAgAAAAAAAAAAWltpAGUhZFqTAWUiZFqTAWU2ZFqTAWU3ZFqTAWUHZFqTAWVKZFqTAWVLZFqTAWUOZFuTAWUUZFuTAWUYZFuTAWUNZFuTAWUQZFuTAWUCZFyTAWUTZFyTAWVFZF2TAWVEZF2TAWU/ZF6TAWkAZUBkXpMBZS9kXpMBZTBkXpMBZS1kXpMBZS5kXpMBZTNkXpMBZTRkXpMBZSlkXpMBZSpkXpMBZQVkXpMBZQ9kXpMBZSdkXpMBZShkXpMBZUJkXpMBZUNkXpMBZQhkXpMBZQxkXpMBpQFpAGUGZF6TAWUKZF6TAWUxZF6TAWUyZF6TAWU1ZF6TAWUJZF6TAWUlZF6TAWUmZF6TAWUDZF+TAWURZBWTAWVBZGCTAWVGZF+TAWVHZF+TAWUrZGGTAWUjZGCTAWUkZAGTAWVZZFSTAaUBZVplWmVbZVtpAqUBWlxkYoQAWl1kLFMAKWZ6KkRlZmluZXMgb3BlcmF0b3JzIHVzZWQgaW4gU1FMIGV4cHJlc3Npb25zLukAAAAAKQHaA2FkZCkB2gRhbmRfKQHaCGNvbnRhaW5zKQHaAmVxKQHaAmdlKQHaB2dldGl0ZW0pAdoCZ3QpAdoDaW52KQHaAmxlKQHaBmxzaGlmdCkB2gJsdCkB2gNtb2QpAdoDbXVsKQHaAm5lKQHaA25lZykB2gNvcl8pAdoGcnNoaWZ0KQHaA3N1YikB2gd0cnVlZGl26QIAAAApAdoEdXRpbCkB2gNkaXZjAAAAAAAAAAAAAAAAAgAAAAAAAADzRgAAAJcAZQBaAWQAWgJkAVoDZAJaBGQDhABaBWQEhABaBmQFhABaBwkAZA1kCYQBWghkDmQKhAFaCWQLhABaCmQMhABaC2QIUwApD9oJT3BlcmF0b3JzYdIBAABCYXNlIG9mIGNvbXBhcmlzb24gYW5kIGxvZ2ljYWwgb3BlcmF0b3JzLgoKICAgIEltcGxlbWVudHMgYmFzZSBtZXRob2RzCiAgICA6bWV0aDpgfnNxbGFsY2hlbXkuc3FsLm9wZXJhdG9ycy5PcGVyYXRvcnMub3BlcmF0ZWAgYW5kCiAgICA6bWV0aDpgfnNxbGFsY2hlbXkuc3FsLm9wZXJhdG9ycy5PcGVyYXRvcnMucmV2ZXJzZV9vcGVyYXRlYCwgYXMgd2VsbCBhcwogICAgOm1ldGg6YH5zcWxhbGNoZW15LnNxbC5vcGVyYXRvcnMuT3BlcmF0b3JzLl9fYW5kX19gLAogICAgOm1ldGg6YH5zcWxhbGNoZW15LnNxbC5vcGVyYXRvcnMuT3BlcmF0b3JzLl9fb3JfX2AsCiAgICA6bWV0aDpgfnNxbGFsY2hlbXkuc3FsLm9wZXJhdG9ycy5PcGVyYXRvcnMuX19pbnZlcnRfX2AuCgogICAgVXN1YWxseSBpcyB1c2VkIHZpYSBpdHMgbW9zdCBjb21tb24gc3ViY2xhc3MKICAgIDpjbGFzczpgLkNvbHVtbk9wZXJhdG9yc2AuCgogICAgqQBjAgAAAAAAAAAAAAAABAAAAAMAAADzOAAAAJcAfACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAIAAAAAAAAAAAAAfAGmAgAAqwIAAAAAAAAAAFMAKQFhLQIAAEltcGxlbWVudCB0aGUgYGAmYGAgb3BlcmF0b3IuCgogICAgICAgIFdoZW4gdXNlZCB3aXRoIFNRTCBleHByZXNzaW9ucywgcmVzdWx0cyBpbiBhbgogICAgICAgIEFORCBvcGVyYXRpb24sIGVxdWl2YWxlbnQgdG8KICAgICAgICA6ZnVuYzpgX2V4cHJlc3Npb24uYW5kX2AsIHRoYXQgaXM6OgoKICAgICAgICAgICAgYSAmIGIKCiAgICAgICAgaXMgZXF1aXZhbGVudCB0bzo6CgogICAgICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IGFuZF8KICAgICAgICAgICAgYW5kXyhhLCBiKQoKICAgICAgICBDYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHVzaW5nIGBgJmBgIHJlZ2FyZGluZwogICAgICAgIG9wZXJhdG9yIHByZWNlZGVuY2U7IHRoZSBgYCZgYCBvcGVyYXRvciBoYXMgdGhlIGhpZ2hlc3QgcHJlY2VkZW5jZS4KICAgICAgICBUaGUgb3BlcmFuZHMgc2hvdWxkIGJlIGVuY2xvc2VkIGluIHBhcmVudGhlc2lzIGlmIHRoZXkgY29udGFpbgogICAgICAgIGZ1cnRoZXIgc3ViIGV4cHJlc3Npb25zOjoKCiAgICAgICAgICAgIChhID09IDIpICYgKGIgPT0gNCkKCiAgICAgICAgKQLaB29wZXJhdGVyBAAAAKkC2gRzZWxm2gVvdGhlcnMCAAAAICD6Ty9vcHQvY2xvdWRsaW51eC92ZW52L2xpYjY0L3B5dGhvbjMuMTEvc2l0ZS1wYWNrYWdlcy9zcWxhbGNoZW15L3NxbC9vcGVyYXRvcnMucHnaB19fYW5kX196EU9wZXJhdG9ycy5fX2FuZF9fOwAAAHMYAAAAgADwLAAQFI98inydRKAl0Q8o1A8o0Ago8wAAAABjAgAAAAAAAAAAAAAABAAAAAMAAADzOAAAAJcAfACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAIAAAAAAAAAAAAAfAGmAgAAqwIAAAAAAAAAAFMAKQFhKQIAAEltcGxlbWVudCB0aGUgYGB8YGAgb3BlcmF0b3IuCgogICAgICAgIFdoZW4gdXNlZCB3aXRoIFNRTCBleHByZXNzaW9ucywgcmVzdWx0cyBpbiBhbgogICAgICAgIE9SIG9wZXJhdGlvbiwgZXF1aXZhbGVudCB0bwogICAgICAgIDpmdW5jOmBfZXhwcmVzc2lvbi5vcl9gLCB0aGF0IGlzOjoKCiAgICAgICAgICAgIGEgfCBiCgogICAgICAgIGlzIGVxdWl2YWxlbnQgdG86OgoKICAgICAgICAgICAgZnJvbSBzcWxhbGNoZW15IGltcG9ydCBvcl8KICAgICAgICAgICAgb3JfKGEsIGIpCgogICAgICAgIENhcmUgc2hvdWxkIGJlIHRha2VuIHdoZW4gdXNpbmcgYGB8YGAgcmVnYXJkaW5nCiAgICAgICAgb3BlcmF0b3IgcHJlY2VkZW5jZTsgdGhlIGBgfGBgIG9wZXJhdG9yIGhhcyB0aGUgaGlnaGVzdCBwcmVjZWRlbmNlLgogICAgICAgIFRoZSBvcGVyYW5kcyBzaG91bGQgYmUgZW5jbG9zZWQgaW4gcGFyZW50aGVzaXMgaWYgdGhleSBjb250YWluCiAgICAgICAgZnVydGhlciBzdWIgZXhwcmVzc2lvbnM6OgoKICAgICAgICAgICAgKGEgPT0gMikgfCAoYiA9PSA0KQoKICAgICAgICApAnIdAAAAchIAAAByHgAAAHMCAAAAICByIQAAANoGX19vcl9fehBPcGVyYXRvcnMuX19vcl9fUwAAAHMYAAAAgADwLAAQFI98inydQ6AV0Q8n1A8n0AgnciMAAABjAQAAAAAAAAAAAAAAAwAAAAMAAADzNgAAAJcAfACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAdAIAAAAAAAAAAAAApgEAAKsBAAAAAAAAAABTACkBYRcBAABJbXBsZW1lbnQgdGhlIGBgfmBgIG9wZXJhdG9yLgoKICAgICAgICBXaGVuIHVzZWQgd2l0aCBTUUwgZXhwcmVzc2lvbnMsIHJlc3VsdHMgaW4gYQogICAgICAgIE5PVCBvcGVyYXRpb24sIGVxdWl2YWxlbnQgdG8KICAgICAgICA6ZnVuYzpgX2V4cHJlc3Npb24ubm90X2AsIHRoYXQgaXM6OgoKICAgICAgICAgICAgfmEKCiAgICAgICAgaXMgZXF1aXZhbGVudCB0bzo6CgogICAgICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IG5vdF8KICAgICAgICAgICAgbm90XyhhKQoKICAgICAgICApAnIdAAAAcgoAAACpAXIfAAAAcwEAAAAgciEAAADaCl9faW52ZXJ0X196FE9wZXJhdG9ycy5fX2ludmVydF9fawAAAHMWAAAAgADwHgAQFI98inydQ9EPINQPINAIIHIjAAAAcgIAAABGTmMFAAAAAAAAAAAAAAAGAAAAAwAAAPM6AAAAhwCHBpcAdAEAAAAAAAAAAAAAfAF8AnwDfASmBAAAqwQAAAAAAAAAAIoGiAaIAGYCZAGECH0FfAVTACkCYSEIAABQcm9kdWNlIGEgZ2VuZXJpYyBvcGVyYXRvciBmdW5jdGlvbi4KCiAgICAgICAgZS5nLjo6CgogICAgICAgICAgc29tZWNvbHVtbi5vcCgiKiIpKDUpCgogICAgICAgIHByb2R1Y2VzOjoKCiAgICAgICAgICBzb21lY29sdW1uICogNQoKICAgICAgICBUaGlzIGZ1bmN0aW9uIGNhbiBhbHNvIGJlIHVzZWQgdG8gbWFrZSBiaXR3aXNlIG9wZXJhdG9ycyBleHBsaWNpdC4gRm9yCiAgICAgICAgZXhhbXBsZTo6CgogICAgICAgICAgc29tZWNvbHVtbi5vcCgnJicpKDB4ZmYpCgogICAgICAgIGlzIGEgYml0d2lzZSBBTkQgb2YgdGhlIHZhbHVlIGluIGBgc29tZWNvbHVtbmBgLgoKICAgICAgICA6cGFyYW0gb3BlcmF0b3I6IGEgc3RyaW5nIHdoaWNoIHdpbGwgYmUgb3V0cHV0IGFzIHRoZSBpbmZpeCBvcGVyYXRvcgogICAgICAgICAgYmV0d2VlbiB0aGlzIGVsZW1lbnQgYW5kIHRoZSBleHByZXNzaW9uIHBhc3NlZCB0byB0aGUKICAgICAgICAgIGdlbmVyYXRlZCBmdW5jdGlvbi4KCiAgICAgICAgOnBhcmFtIHByZWNlZGVuY2U6IHByZWNlZGVuY2UgdG8gYXBwbHkgdG8gdGhlIG9wZXJhdG9yLCB3aGVuCiAgICAgICAgIHBhcmVudGhlc2l6aW5nIGV4cHJlc3Npb25zLiAgQSBsb3dlciBudW1iZXIgd2lsbCBjYXVzZSB0aGUgZXhwcmVzc2lvbgogICAgICAgICB0byBiZSBwYXJlbnRoZXNpemVkIHdoZW4gYXBwbGllZCBhZ2FpbnN0IGFub3RoZXIgb3BlcmF0b3Igd2l0aAogICAgICAgICBoaWdoZXIgcHJlY2VkZW5jZS4gIFRoZSBkZWZhdWx0IHZhbHVlIG9mIGBgMGBgIGlzIGxvd2VyIHRoYW4gYWxsCiAgICAgICAgIG9wZXJhdG9ycyBleGNlcHQgZm9yIHRoZSBjb21tYSAoYGAsYGApIGFuZCBgYEFTYGAgb3BlcmF0b3JzLgogICAgICAgICBBIHZhbHVlIG9mIDEwMCB3aWxsIGJlIGhpZ2hlciBvciBlcXVhbCB0byBhbGwgb3BlcmF0b3JzLCBhbmQgLTEwMAogICAgICAgICB3aWxsIGJlIGxvd2VyIHRoYW4gb3IgZXF1YWwgdG8gYWxsIG9wZXJhdG9ycy4KCiAgICAgICAgOnBhcmFtIGlzX2NvbXBhcmlzb246IGlmIFRydWUsIHRoZSBvcGVyYXRvciB3aWxsIGJlIGNvbnNpZGVyZWQgYXMgYQogICAgICAgICAiY29tcGFyaXNvbiIgb3BlcmF0b3IsIHRoYXQgaXMgd2hpY2ggZXZhbHVhdGVzIHRvIGEgYm9vbGVhbgogICAgICAgICB0cnVlL2ZhbHNlIHZhbHVlLCBsaWtlIGBgPT1gYCwgYGA+YGAsIGV0Yy4gIFRoaXMgZmxhZyBzaG91bGQgYmUgc2V0CiAgICAgICAgIHNvIHRoYXQgT1JNIHJlbGF0aW9uc2hpcHMgY2FuIGVzdGFibGlzaCB0aGF0IHRoZSBvcGVyYXRvciBpcyBhCiAgICAgICAgIGNvbXBhcmlzb24gb3BlcmF0b3Igd2hlbiB1c2VkIGluIGEgY3VzdG9tIGpvaW4gY29uZGl0aW9uLgoKICAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMC45LjIgLSBhZGRlZCB0aGUKICAgICAgICAgICAgOnBhcmFtcmVmOmAuT3BlcmF0b3JzLm9wLmlzX2NvbXBhcmlzb25gIGZsYWcuCgogICAgICAgIDpwYXJhbSByZXR1cm5fdHlwZTogYSA6Y2xhc3M6YC5UeXBlRW5naW5lYCBjbGFzcyBvciBvYmplY3QgdGhhdCB3aWxsCiAgICAgICAgICBmb3JjZSB0aGUgcmV0dXJuIHR5cGUgb2YgYW4gZXhwcmVzc2lvbiBwcm9kdWNlZCBieSB0aGlzIG9wZXJhdG9yCiAgICAgICAg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cgogICAgOmNsYXNzOmBfZXhwcmVzc2lvbi5Db2x1bW5FbGVtZW50YCBleHByZXNzaW9ucy4KCiAgICBCeSBkZWZhdWx0LCBhbGwgbWV0aG9kcyBjYWxsIGRvd24gdG8KICAgIDptZXRoOmAub3BlcmF0ZWAgb3IgOm1ldGg6YC5yZXZlcnNlX29wZXJhdGVgLAogICAgcGFzc2luZyBpbiB0aGUgYXBwcm9wcmlhdGUgb3BlcmF0b3IgZnVuY3Rpb24gZnJvbSB0aGUKICAgIFB5dGhvbiBidWlsdGluIGBgb3BlcmF0b3JgYCBtb2R1bGUgb3IKICAgIGEgU1FMQWxjaGVteS1zcGVjaWZpYyBvcGVyYXRvciBmdW5jdGlvbiBmcm9tCiAgICA6bW9kOmBzcWxhbGNoZW15LmV4cHJlc3Npb24ub3BlcmF0b3JzYC4gICBGb3IgZXhhbXBsZQogICAgdGhlIGBgX19lcV9fYGAgZnVuY3Rpb246OgoKICAgICAgICBkZWYgX19lcV9fKHNlbGYsIG90aGVyKToKICAgICAgICAgICAgcmV0dXJuIHNlbGYub3BlcmF0ZShvcGVyYXRvcnMuZXEsIG90aGVyKQoKICAgIFdoZXJlIGBgb3BlcmF0b3JzLmVxYGAgaXMgZXNzZW50aWFsbHk6OgoKICAgICAgICBkZWYgZXEoYSwgYik6CiAgICAgICAgICAgIHJldHVybiBhID09IGIKCiAgICBUaGUgY29yZSBjb2x1bW4gZXhwcmVzc2lvbiB1bml0IDpjbGFzczpgX2V4cHJlc3Npb24uQ29sdW1uRWxlbWVudGAKICAgIG92ZXJyaWRlcyA6bWV0aDpgLk9wZXJhdG9ycy5vcGVyYXRlYCBhbmQgb3RoZXJzCiAgICB0byByZXR1cm4gZnVydGhlciA6Y2xhc3M6YF9leHByZXNzaW9uLkNvbHVtbkVsZW1lbnRgIGNvbnN0cnVjdHMsCiAgICBzbyB0aGF0IHRoZSBgYD09YGAgb3BlcmF0aW9uIGFib3ZlIGlzIHJlcGxhY2VkIGJ5IGEgY2xhdXNlCiAgICBjb25zdHJ1Y3QuCgogICAgLi4gc2VlYWxzbzo6CgogICAgICAgIDpyZWY6YHR5cGVzX29wZXJhdG9yc2AKCiAgICAgICAgOmF0dHI6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Y2VzIHRoZSBjbGF1c2UgYGBjb2x1bW4gSU4gPG90aGVyPmBgLgoKICAgICAgICBUaGUgZ2l2ZW4gcGFyYW1ldGVyIGBgb3RoZXJgYCBtYXkgYmU6CgogICAgICAgICogQSBsaXN0IG9mIGxpdGVyYWwgdmFsdWVzLCBlLmcuOjoKCiAgICAgICAgICAgIHN0bXQud2hlcmUoY29sdW1uLmluXyhbMSwgMiwgM10pKQoKICAgICAgICAgIEluIHRoaXMgY2FsbGluZyBmb3JtLCB0aGUgbGlzdCBvZiBpdGVtcyBpcyBjb252ZXJ0ZWQgdG8gYSBzZXQgb2YKICAgICAgICAgIGJvdW5kIHBhcmFtZXRlcnMgdGhlIHNhbWUgbGVuZ3RoIGFzIHRoZSBsaXN0IGdpdmVuOjoKCiAgICAgICAgICAgIFdIRVJFIENPTCBJTiAoPywgPywgPykKCiAgICAgICAgKiBBIGxpc3Qgb2YgdHVwbGVzIG1heSBiZSBwcm92aWRlZCBpZiB0aGUgY29tcGFyaXNvbiBpcyBhZ2FpbnN0IGEKICAgICAgICAgIDpmdW5jOmAudHVwbGVfYCBjb250YWluaW5nIG11bHRpcGxlIGV4cHJlc3Npb25zOjoKCiAgICAgICAgICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgdHVwbGVfCiAgICAgICAgICAgIHN0bXQud2hlcmUodHVwbGVfKGNvbDEsIGNvbDIpLmluXyhbKDEsIDEwKSwgKDIsIDIwKSwgKDMsIDMwKV0pKQoKICAgICAgICAqIEFuIGVtcHR5IGxpc3QsIGUuZy46OgoKICAgICAgICAgICAgc3RtdC53aGVyZShjb2x1bW4uaW5fKFtdKSkKCiAgICAgICAgICBJbiB0aGlzIGNhbGxpbmcgZm9ybSwgdGhlIGV4cHJlc3Npb24gcmVuZGVycyBhICJmYWxzZSIgZXhwcmVzc2lvbiwKICAgICAgICAgIGUuZy46OgoKICAgICAgICAgICAgV0hFUkUgMSAhPSAxCgogICAgICAgICAgVGhpcyAiZmFsc2UiIGV4cHJlc3Npb24gaGFzIGhpc3RvcmljYWxseSBoYWQgZGlmZmVyZW50IGJlaGF2aW9ycwogICAgICAgICAgaW4gb2xkZXIgU1FMQWxjaGVteSB2ZXJzaW9ucywgc2VlCiAgICAgICAgICA6cGFyYW1yZWY6YF9zYS5jcmVhdGVfZW5naW5lLmVtcHR5X2luX3N0cmF0ZWd5YAogICAgICAgICAgZm9yIGJlaGF2aW9yYWwgb3B0aW9ucy4KCiAgICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMiBzaW1wbGlmaWVkIHRoZSBiZWhhdmlvciBvZiAiZW1wdHkgaW4iCiAgICAgICAgICAgICBleHByZXNzaW9ucwoKICAgICAgICAqIEEgYm91bmQgcGFyYW1ldGVyLCBlLmcuIDpmdW5jOmAuYmluZHBhcmFtYCwgbWF5IGJlIHVzZWQgaWYgaXQKICAgICAgICAgIGluY2x1ZGVzIHRoZSA6cGFyYW1yZWY6YC5iaW5kcGFyYW0uZXhwYW5kaW5nYCBmbGFnOjoKCiAgICAgICAgICAgIHN0bXQud2hlcmUoY29sdW1uLmluXyhiaW5kcGFyYW0oJ3ZhbHVlJywgZXhwYW5kaW5nPVRydWUpKSkKCiAgICAgICAgICBJbiB0aGlzIGNhbGxpbmcgZm9ybSwgdGhlIGV4cHJlc3Npb24gcmVuZGVycyBhIHNwZWNpYWwgbm9uLVNRTAogICAgICAgICAgcGxhY2Vob2xkZXIgZXhwcmVzc2lvbiB0aGF0IGxvb2tzIGxpa2U6OgoKICAgICAgICAgICAgV0hFUkUgQ09MIElOIChbRVhQQU5ESU5HX3ZhbHVlXSkKCiAgICAgICAgICBUaGlzIHBsYWNlaG9sZGVyIGV4cHJlc3Npb24gaXMgaW50ZXJjZXB0ZWQgYXQgc3RhdGVtZW50IGV4ZWN1dGlvbgogICAgICAgICAgdGltZSB0byBiZSBjb252ZXJ0ZWQgaW50byB0aGUgdmFyaWFibGUgbnVtYmVyIG9mIGJvdW5kIHBhcmFtZXRlcgogICAgICAgICAgZm9ybSBpbGx1c3RyYXRlZCBlYXJsaWVyLiAgIElmIHRoZSBzdGF0ZW1lbnQgd2VyZSBleGVjdXRlZCBhczo6CgogICAgICAgICAgICBjb25uZWN0aW9uLmV4ZWN1dGUoc3RtdCwgeyJ2YWx1ZSI6IFsxLCAyLCAzXX0pCgogICAgICAgICAgVGhlIGRhdGFiYXNlIHdvdWxkIGJlIHBhc3NlZCBhIGJvdW5kIHBhcmFtZXRlciBmb3IgZWFjaCB2YWx1ZTo6CgogICAgICAgICAgICBXSEVSRSBDT0wgSU4gKD8sID8sID8pCgogICAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMS4yIGFkZGVkICJleHBhbmRpbmciIGJvdW5kIHBhcmFtZXRlcnMKCiAgICAgICAgICBJZiBhbiBlbXB0eSBsaXN0IGlzIHBhc3NlZCwgYSBzcGVjaWFsICJlbXB0eSBsaXN0IiBleHByZXNzaW9uLAogICAgICAgICAgd2hpY2ggaXMgc3BlY2lmaWMgdG8gdGhlIGRhdGFiYXNlIGluIHVzZSwgaXMgcmVuZGVyZWQuICBPbgogICAgICAgICAgU1FMaXRlIHRoaXMgd291bGQgYmU6OgoKICAgICAgICAgICAgV0hFUkUgQ09MIElOIChTRUxFQ1QgMSBGUk9NIChTRUxFQ1QgMSkgV0hFUkUgMSE9MSkKCiAgICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjMgImV4cGFuZGluZyIgYm91bmQgcGFyYW1ldGVycyBub3cgc3VwcG9ydAogICAgICAgICAgICAgZW1wdHkgbGlzdHMKCiAgICAgICAgKiBhIDpmdW5jOmBfZXhwcmVzc2lvbi5zZWxlY3RgIGNvbnN0cnVjdCwKICAgICAgICAgIHdoaWNoIGlzIHVzdWFsbHkgYSBjb3JyZWxhdGVkCiAgICAgICAgICBzY2FsYXIgc2VsZWN0OjoKCiAgICAgICAgICAgIHN0bXQud2hlcmUoCiAgICAgICAgICAgICAgICBjb2x1bW4uaW5fKAogICAgICAgICAgICAgICAgICAgIHNlbGVjdChbb3RoZXJ0YWJsZS5jLnldKS4KICAgICAgICAgICAgICAgICAgICB3aGVyZSh0YWJsZS5jLnggPT0gb3RoZXJ0YWJsZS5jLngpCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICkKCiAgICAgICAgICBJbiB0aGlzIGNhbGxpbmcgZm9ybSwgOm1ldGg6YC5Db2x1bW5PcGVyYXRvcnMuaW5fYCByZW5kZXJzIGFzIGdpdmVuOjoKCiAgICAgICAgICAgIFdIRVJFIENPTCBJ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ZXRhYmxlLmMuY29sdW1uLnN0YXJ0c3dpdGgoImZvb2JhciIpKQoKICAgICAgICBTaW5jZSB0aGUgb3BlcmF0b3IgdXNlcyBgYExJS0VgYCwgd2lsZGNhcmQgY2hhcmFjdGVycwogICAgICAgIGBgIiUiYGAgYW5kIGBgIl8iYGAgdGhhdCBhcmUgcHJlc2VudCBpbnNpZGUgdGhlIDxvdGhlcj4gZXhwcmVzc2lvbgogICAgICAgIHdpbGwgYmVoYXZlIGxpa2Ugd2lsZGNhcmRzIGFzIHdlbGwuICAgRm9yIGxpdGVyYWwgc3RyaW5nCiAgICAgICAgdmFsdWVzLCB0aGUgOnBhcmFtcmVmOmAuQ29sdW1uT3BlcmF0b3JzLnN0YXJ0c3dpdGguYXV0b2VzY2FwZWAgZmxhZwogICAgICAgIG1heSBiZSBzZXQgdG8gYGBUcnVlYGAgdG8gYXBwbHkgZXNjYXBpbmcgdG8gb2NjdXJyZW5jZXMgb2YgdGhlc2UKICAgICAgICBjaGFyYWN0ZXJzIHdpdGhpbiB0aGUgc3RyaW5nIHZhbHVlIHNvIHRoYXQgdGhleSBtYXRjaCBhcyB0aGVtc2VsdmVzCiAgICAgICAgYW5kIG5vdCBhcyB3aWxkY2FyZCBjaGFyYWN0ZXJzLiAgQWx0ZXJuYXRpdmVseSwgdGhlCiAgICAgICAgOnBhcmFtcmVmOmAuQ29sdW1uT3BlcmF0b3JzLnN0YXJ0c3dpdGguZXNjYXBlYCBwYXJhbWV0ZXIgd2lsbCBlc3RhYmxpc2gKICAgICAgICBhIGdpdmVuIGNoYXJhY3RlciBhcyBhbiBlc2NhcGUgY2hhcmFjdGVyIHdoaWNoIGNhbiBiZSBvZiB1c2Ugd2hlbgogICAgICAgIHRoZSB0YXJnZXQgZXhwcmVzc2lvbiBpcyBub3QgYSBsaXRlcmFsIHN0cmluZy4KCiAgICAgICAgOnBhcmFtIG90aGVyOiBleHByZXNzaW9uIHRvIGJlIGNvbXBhcmVkLiAgIFRoaXMgaXMgdXN1YWxseSBhIHBsYWluCiAgICAgICAgICBzdHJpbmcgdmFsdWUsIGJ1dCBjYW4gYWxzbyBiZSBhbiBhcmJpdHJhcnkgU1FMIGV4cHJlc3Npb24uICBMSUtFCiAgICAgICAgICB3aWxkY2FyZCBjaGFyYWN0ZXJzIGBgJWBgIGFuZCBgYF9gYCBhcmUgbm90IGVzY2FwZWQgYnkgZGVmYXVsdCB1bmxlc3MKICAgICAgICAgIHRoZSA6cGFyYW1yZWY6YC5Db2x1bW5PcGVyYXRvcnMuc3RhcnRzd2l0aC5hdXRvZXNjYXBlYCBmbGFnIGlzCiAgICAgICAgICBzZXQgdG8gVHJ1ZS4KCiAgICAgICAgOnBhcmFtIGF1dG9lc2NhcGU6IGJvb2xlYW47IHdoZW4gVHJ1ZSwgZXN0YWJsaXNoZXMgYW4gZXNjYXBlIGNoYXJhY3RlcgogICAgICAgICAgd2l0aGluIHRoZSBMSUtFIGV4cHJlc3Npb24sIHRoZW4gYXBwbGllcyBpdCB0byBhbGwgb2NjdXJyZW5jZXMgb2YKICAgICAgICAgIGBgIiUiYGAsIGBgIl8iYGAgYW5kIHRoZSBlc2NhcGUgY2hhcmFjdGVyIGl0c2VsZiB3aXRoaW4gdGhlCiAgICAgICAgICBjb21wYXJpc29uIHZhbHVlLCB3aGljaCBpcyBhc3N1bWVkIHRvIGJlIGEgbGl0ZXJhbCBzdHJpbmcgYW5kIG5vdCBhCiAgICAgICAgICBTUUwgZXhwcmVzc2lvbi4KCiAgICAgICAgICBBbiBleHByZXNzaW9uIHN1Y2ggYXM6OgoKICAgICAgICAgICAgc29tZWNvbHVtbi5zdGFydHN3aXRoKCJmb28lYmFyIiwgYXV0b2VzY2FwZT1UcnVlKQoKICAgICAgICAgIFdpbGwgcmVuZGVyIGFzOjoKCiAgICAgICAgICAgIHNvbWVjb2x1bW4gTElLRSA6cGFyYW0gfHwgJyUnIEVTQ0FQRSAnLycKCiAgICAgICAgICBXaXRoIHRoZSB2YWx1ZSBvZiBgYDpwYXJhbWBgIGFzIGBgImZvby8lYmFyImBgLgoKICAgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMgoKICAgICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMS4yLjAgVGhlCiAgICAgICAgICAgIDpwYXJhbXJlZjpgLkNvbHVtbk9wZXJhdG9ycy5zdGFydHN3aXRoLmF1dG9lc2NhcGVgIHBhcmFtZXRlciBpcwogICAgICAgICAgICAgbm93IGEgc2ltcGxlIGJvb2xlYW4gcmF0aGVyIHRoYW4gYSBjaGFyYWN0ZXI7IHRoZSBlc2NhcGUKICAgICAgICAgICAgIGNoYXJhY3RlciBpdHNlbGYgaXMgYWxzbyBlc2NhcGVkLCBhbmQgZGVmYXVsdHMgdG8gYSBmb3J3YXJkcwogICAgICAgICAgICAgc2xhc2gsIHdoaWNoIGl0c2VsZiBjYW4gYmUgY3VzdG9taXplZCB1c2luZyB0aGUKICAgICAgICAgICAgIDpwYXJhbXJlZjpgLkNvbHVtbk9wZXJhdG9ycy5zdGFydHN3aXRoLmVzY2FwZWAgcGFyYW1ldGVyLgoKICAgICAgICA6cGFyYW0gZXNjYXBlOiBhIGNoYXJhY3RlciB3aGljaCB3aGVuIGdpdmVuIHdpbGwgcmVuZGVyIHdpdGggdGhlCiAgICAgICAgICBgYEVTQ0FQRWBgIGtleXdvcmQgdG8gZXN0YWJsaXNoIHRoYXQgY2hhcmFjdGVyIGFzIHRoZSBlc2NhcGUKICAgICAgICAgIGNoYXJhY3Rlci4gIFRoaXMgY2hhcmFjdGVyIGNhbiB0aGVuIGJlIHBsYWNlZCBwcmVjZWRpbmcgb2NjdXJyZW5jZXMKICAgICAgICAgIG9mIGBgJWBgIGFuZCBgYF9gYCB0byBhbGxvdyB0aGVtIHRvIGFjdCBhcyB0aGVtc2VsdmVzIGFuZCBub3QKICAgICAgICAgIHdpbGRjYXJkIGNoYXJhY3RlcnMuCgogICAgICAgICAgQW4gZXhwcmVzc2lvbiBzdWNoIGFzOjoKCiAgICAgICAgICAgIHNvbWVjb2x1bW4uc3RhcnRzd2l0aCgiZm9vLyViYXIiLCBlc2NhcGU9Il4iKQoKICAgICAgICAgIFdpbGwgcmVuZGVyIGFzOjoKCiAgICAgICAgICAgIHNvbWVjb2x1bW4gTElLRSA6cGFyYW0gfHwgJyUnIEVTQ0FQRSAnXicKCiAgICAgICAgICBUaGUgcGFyYW1ldGVyIG1heSBhbHNvIGJlIGNvbWJpbmVkIHdpdGgKICAgICAgICAgIDpwYXJhbXJlZjpgLkNvbHVtbk9wZXJhdG9ycy5zdGFydHN3aXRoLmF1dG9lc2NhcGVgOjoKCiAgICAgICAgICAgIHNvbWVjb2x1bW4uc3RhcnRzd2l0aCgiZm9vJWJhcl5iYXQiLCBlc2NhcGU9Il4iLCBhdXRvZXNjYXBlPVRydWUpCgogICAgICAgICAgV2hlcmUgYWJvdmUsIHRoZSBnaXZlbiBsaXRlcmFsIHBhcmFtZXRlciB3aWxsIGJlIGNvbnZlcnRlZCB0bwogICAgICAgICAgYGAiZm9vXiViYXJeXmJhdCJgYCBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHRoZSBkYXRhYmFzZS4KCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6bWV0aDpgLkNvbHVtbk9wZXJhdG9ycy5lbmRzd2l0aGAKCiAgICAgICAgICAgIDptZXRoOmAuQ29sdW1uT3BlcmF0b3JzLmNvbnRhaW5zYAoKICAgICAgICAgICAgOm1ldGg6YC5Db2x1bW5PcGVyYXRvcnMubGlrZWAKCiAgICAgICAgKQJyHQAAANoNc3RhcnRzd2l0aF9vcKkDch8AAAByIAAAAHI8AAAAcwMAAAAgICByIQAAANoKc3RhcnRzd2l0aHoaQ29sdW1uT3BlcmF0b3JzLnN0YXJ0c3dpdGitAgAAcyEAAACAAPBsAgAQHIh0jHydTag10A870A87sEbQDzvQDzvQCDtyIwAAAGMCAAAAAAAAAAAAAAAFAAAACwAAAPMqAAAAlwACAHwAagAAAAAAAAAAAHQCAAAAAAAAAAAAAHwBZgJpAHwCpAGOAVMAKQFh5wwAAEltcGxlbWVudCB0aGUgJ2VuZHN3aXRoJyBvcGVyYXRvci4KCiAgICAgICAgUHJvZHVjZXMgYSBMSUtFIGV4cHJlc3Npb24gdGhhdCB0ZXN0cyBhZ2FpbnN0IGEgbWF0Y2ggZm9yIHRoZSBlbmQKICAgICAgICBvZiBhIHN0cmluZyB2YWx1ZTo6CgogICAgICAgICAgICBjb2x1bW4gTElLRSAnJScgfHwgPG90aGVyPgoKICAgICAgICBFLmcuOjoKCiAgICAgICAgICAgIHN0bXQgPSBzZWxlY3QoW3NvbWV0YWJsZV0pLlwKICAgICAgICAgICAgICAgIHdoZXJlKHNvbWV0YWJsZS5jLmNvbHVtbi5lbmRzd2l0aCgiZm9vYmFyIikpCgogICAgICAgIFNpbmNlIHRoZSBvcGVyYXRvciB1c2VzIGBgTElLRWBgLCB3aWxkY2FyZCBjaGFyYWN0ZXJzCiAgICAgICAgYGAiJSJgYCBhbmQgYGAiXyJgYCB0aGF0IGFyZSBwcmVzZW50IGluc2lkZSB0aGUgPG90aGVyPiBleHByZXNzaW9uCiAgICAgICAgd2lsbCBiZWhhdmUgbGlrZSB3aWxkY2FyZHMgYXMgd2VsbC4gICBGb3IgbGl0ZXJhbCBzdHJpbmcKICAgICAgICB2YWx1ZXMsIHRoZSA6cGFyYW1yZWY6YC5Db2x1bW5PcGVyYXRvcnMuZW5kc3dpdGguYXV0b2VzY2FwZWAgZmxhZwogICAgICAgIG1heSBiZSBzZXQgdG8gYGBUcnVlYGAgdG8gYXBwbHkgZXNjYXBpbmcgdG8gb2NjdXJyZW5jZXMgb2YgdGhlc2UKICAgICAgICBjaGFyYWN0ZXJzIHdpdGhpbiB0aGUgc3RyaW5nIHZhbHVlIHNvIHRoYXQgdGhleSBtYXRjaCBhcyB0aGVtc2VsdmVzCiAgICAgICAgYW5kIG5vdCBhcyB3aWxkY2FyZCBjaGFyYWN0ZXJzLiAgQWx0ZXJuYXRpdmVseSwgdGhlCiAgICAgICAgOnBhcmFtcmVmOmAuQ29sdW1uT3BlcmF0b3JzLmVuZHN3aXRoLmVzY2FwZWAgcGFyYW1ldGVyIHdpbGwgZXN0YWJsaXNoCiAgICAgICAgYSBnaXZlbiBjaGFyYWN0ZXIgYXMgYW4gZXNjYXBlIGNoYXJhY3RlciB3aGljaCBjYW4gYmUgb2YgdXNlIHdoZW4KICAgICAgICB0aGUgdGFyZ2V0IGV4cHJlc3Npb24gaXMgbm90IGEgbGl0ZXJhbCBzdHJpbmcuCgogICAgICAgIDpwYXJhbSBvdGhlcjogZXhwcmVzc2lvbiB0byBiZSBjb21wYXJlZC4gICBUaGlzIGlzIHVzdWFsbHkgYSBwbGFpbgogICAgICAgICAgc3RyaW5nIHZhbHVlLCBidXQgY2FuIGFsc28gYmUgYW4gYXJiaXRyYXJ5IFNRTCBleHByZXNzaW9uLiAgTElLRQogICAgICAgICAgd2lsZGNhcmQgY2hhcmFjdGVycyBgYCVgYCBhbmQgYGBfYGAgYXJlIG5vdCBlc2NhcGVkIGJ5IGRlZmF1bHQgdW5sZXNzCiAgICAgICAgICB0aGUgOnBhcmFtcmVmOmAuQ29sdW1uT3BlcmF0b3JzLmVuZHN3aXRoLmF1dG9lc2NhcGVgIGZsYWcgaXMKICAgICAgICAgIHNldCB0byBUcnVlLgoKICAgICAgICA6cGFyYW0gYXV0b2VzY2FwZTogYm9vbGVhbjsgd2hlbiBUcnVlLCBlc3RhYmxpc2hlcyBhbiBlc2NhcGUgY2hhcmFjdGVyCiAgICAgICAgICB3aXRoaW4gdGhlIExJS0UgZXhwcmVzc2lvbiwgdGhlbiBhcHBsaWVzIGl0IHRvIGFsbCBvY2N1cnJlbmNlcyBvZgogICAgICAgICAgYGAiJSJgYCwgYGAiXyJgYCBhbmQgdGhlIGVzY2FwZSBjaGFyYWN0ZXIgaXRzZWxmIHdpdGhpbiB0aGUKICAgICAgICAgIGNvbXBhcmlzb24gdmFsdWUsIHdoaWNoIGlzIGFzc3VtZWQgdG8gYmUgYSBsaXRlcmFsIHN0cmluZyBhbmQgbm90IGEKICAgICAgICAgIFNRTCBleHByZXNzaW9uLgoKICAgICAgICAgIEFuIGV4cHJlc3Npb24gc3VjaCBhczo6CgogICAgICAgICAgICBzb21lY29sdW1uLmVuZHN3aXRoKCJmb28lYmFyIiwgYXV0b2VzY2FwZT1UcnVlKQoKICAgICAgICAgIFdpbGwgcmVuZGVyIGFzOjoKCiAgICAgICAgICAgIHNvbWVjb2x1bW4gTElLRSAnJScgfHwgOnBhcmFtIEVTQ0FQRSAnLycKCiAgICAgICAgICBXaXRoIHRoZSB2YWx1ZSBvZiBgYDpwYXJhbWBgIGFzIGBgImZvby8lYmFyImBgLgoKICAgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMgoKICAgICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMS4yLjAgVGhlCiAgICAgICAgICAgIDpwYXJhbXJlZjpgLkNvbHVtbk9wZXJhdG9ycy5lbmRzd2l0aC5hdXRvZXNjYXBlYCBwYXJhbWV0ZXIgaXMKICAgICAgICAgICAgIG5vdyBhIHNpbXBsZSBib29sZWFuIHJhdGhlciB0aGFuIGEgY2hhcmFjdGVyOyB0aGUgZXNjYXBlCiAgICAgICAgICAgICBjaGFyYWN0ZXIgaXRzZWxmIGlzIGFsc28gZXNjYXBlZCwgYW5kIGRlZmF1bHRzIHRvIGEgZm9yd2FyZHMKICAgICAgICAgICAgIHNsYXNoLCB3aGljaCBpdHNlbGYgY2FuIGJlIGN1c3RvbWl6ZWQgdXNpbmcgdGhlCiAgICAgICAgICAgICA6cGFyYW1yZWY6YC5Db2x1bW5PcGVyYXRvcnMuZW5kc3dpdGguZXNjYXBlYCBwYXJhbWV0ZXIuCgogICAgICAgIDpwYXJhbSBlc2NhcGU6IGEgY2hhcmFjdGVyIHdoaWNoIHdoZW4gZ2l2ZW4gd2lsbCByZW5kZXIgd2l0aCB0aGUKICAgICAgICAgIGBgRVNDQVBFYGAga2V5d29yZCB0byBlc3RhYmxpc2ggdGhhdCBjaGFyYWN0ZXIgYXMgdGhlIGVzY2FwZQogICAgICAgICAgY2hhcmFjdGVyLiAgVGhpcyBjaGFyYWN0ZXIgY2FuIHRoZW4gYmUgcGxhY2VkIHByZWNlZGluZyBvY2N1cnJlbmNlcwogICAgICAgICAgb2YgYGAlYGAgYW5kIGBgX2BgIHRvIGFsbG93IHRoZW0gdG8gYWN0IGFzIHRoZW1zZWx2ZXMgYW5kIG5vdAogICAgICAgICAgd2lsZGNhcmQgY2hhcmFjdGVycy4KCiAgICAgICAgICBBbiBleHByZXNzaW9uIHN1Y2ggYXM6OgoKICAgICAgICAgICAgc29tZWNvbHVtbi5lbmRzd2l0aCgiZm9vLyViYXIiLCBlc2NhcGU9Il4iKQoKICAgICAgICAgIFdpbGwgcmVuZGVyIGFzOjoKCiAgICAgICAgICAgIHNvbWVjb2x1bW4gTElLRSAnJScgfHwgOnBhcmFtIEVTQ0FQRSAnXicKCiAgICAgICAgICBUaGUgcGFyYW1ldGVyIG1heSBhbHNvIGJlIGNvbWJpbmVkIHdpdGgKICAgICAgICAgIDpwYXJhbXJlZjpgLkNvbHVtbk9wZXJhdG9ycy5lbmRzd2l0aC5hdXRvZXNjYXBlYDo6CgogICAgICAgICAgICBzb21lY29sdW1uLmVuZHN3aXRoKCJmb28lYmFyXmJhdCIsIGVzY2FwZT0iXiIsIGF1dG9lc2NhcGU9VHJ1ZSkKCiAgICAgICAgICBXaGVyZSBhYm92ZSwgdGhlIGdpdmVuIGxpdGVyYWwgcGFyYW1ldGVyIHdpbGwgYmUgY29udmVydGVkIHRvCiAgICAgICAgICBgYCJmb29eJWJhcl5eYmF0ImBgIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gdGhlIGRhdGFiYXNlLgoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDptZXRoOmAuQ29sdW1uT3BlcmF0b3JzLnN0YXJ0c3dpdGhgCgogICAgICAgICAgICA6bWV0aDpgLkNvbHVtbk9wZXJhdG9ycy5jb250YWluc2AKCiAgICAgICAgICAgIDptZXRoOmAuQ29sdW1uT3BlcmF0b3JzLmxpa2VgCgogICAgICAgICkCch0AAADaC2VuZHN3aXRoX29wcpIAAABzAwAAACAgIHIhAAAA2ghlbmRzd2l0aHoYQ29sdW1uT3BlcmF0b3JzLmVuZHN3aXRoBQMAAHMhAAAAgADwbAIAEByIdIx8nUuoFdAPOdAPObAm0A850A850Ag5ciMAAABjAgAAAAAAAAAAAAAABQAAAAsAAADzKgAAAJcAAgB8AGoAAAAAAAAAAAB0AgAAAAAAAAAAAAB8AWYCaQB8AqQBjgFTACkBYQANAABJbXBsZW1lbnQgdGhlICdjb250YWlucycgb3BlcmF0b3IuCgogICAgICAgIFByb2R1Y2VzIGEgTElLRSBleHByZXNzaW9uIHRoYXQgdGVzdHMgYWdhaW5zdCBhIG1hdGNoIGZvciB0aGUgbWlkZGxlCiAgICAgICAgb2YgYSBzdHJpbmcgdmFsdWU6OgoKICAgICAgICAgICAgY29sdW1uIExJS0UgJyUnIHx8IDxvdGhlcj4gfHwgJyUnCgogICAgICAgIEUuZy46OgoKICAgICAgICAgICAgc3RtdCA9IHNlbGVjdChbc29tZXRhYmxlXSkuXAogICAgICAgICAgICAgICAgd2hlcmUoc29tZXRhYmxlLmMuY29sdW1uLmNvbnRhaW5zKCJmb29iYXIiKSkKCiAgICAgICAgU2luY2UgdGhlIG9wZXJhdG9yIHVzZXMgYGBMSUtFYGAsIHdpbGRjYXJkIGNoYXJhY3RlcnMKICAgICAgICBgYCIlImBgIGFuZCBgYCJfImBgIHRoYXQgYXJlIHByZXNlbnQgaW5zaWRlIHRoZSA8b3RoZXI+IGV4cHJlc3Npb24KICAgICAgICB3aWxsIGJlaGF2ZSBsaWtlIHdpbGRjYXJkcyBhcyB3ZWxsLiAgIEZvciBsaXRlcmFsIHN0cmluZwogICAgICAgIHZhbHVlcywgdGhlIDpwYXJhbXJlZjpgLkNvbHVtbk9wZXJhdG9ycy5jb250YWlucy5hdXRvZXNjYXBlYCBmbGFnCiAgICAgICAgbWF5IGJlIHNldCB0byBgYFRydWVgYCB0byBhcHBseSBlc2NhcGluZyB0byBvY2N1cnJlbmNlcyBvZiB0aGVzZQogICAgICAgIGNoYXJhY3RlcnMgd2l0aGluIHRoZSBzdHJpbmcgdmFsdWUgc28gdGhhdCB0aGV5IG1hdGNoIGFzIHRoZW1zZWx2ZXMKICAgICAgICBhbmQgbm90IGFzIHdpbGRjYXJkIGNoYXJhY3RlcnMuICBBbHRlcm5hdGl2ZWx5LCB0aGUKICAgICAgICA6cGFyYW1yZWY6YC5Db2x1bW5PcGVyYXRvcnMuY29udGFpbnMuZXNjYXBlYCBwYXJhbWV0ZXIgd2lsbCBlc3RhYmxpc2gKICAgICAgICBhIGdpdmVuIGNoYXJhY3RlciBhcyBhbiBlc2NhcGUgY2hhcmFjdGVyIHdoaWNoIGNhbiBiZSBvZiB1c2Ugd2hlbgogICAgICAgIHRoZSB0YXJnZXQgZXhwcmVzc2lvbiBpcyBub3QgYSBsaXRlcmFsIHN0cmluZy4KCiAgICAgICAgOnBhcmFtIG90aGVyOiBleHByZXNzaW9uIHRvIGJlIGNvbXBhcmVkLiAgIFRoaXMgaXMgdXN1YWxseSBhIHBsYWluCiAgICAgICAgICBzdHJpbmcgdmFsdWUsIGJ1dCBjYW4gYWxzbyBiZSBhbiBhcmJpdHJhcnkgU1FMIGV4cHJlc3Npb24uICBMSUtFCiAgICAgICAgICB3aWxkY2FyZCBjaGFyYWN0ZXJzIGBgJWBgIGFuZCBgYF9gYCBhcmUgbm90IGVzY2FwZWQgYnkgZGVmYXVsdCB1bmxlc3MKICAgICAgICAgIHRoZSA6cGFyYW1yZWY6YC5Db2x1bW5PcGVyYXRvcnMuY29udGFpbnMuYXV0b2VzY2FwZWAgZmxhZyBpcwogICAgICAgICAgc2V0IHRvIFRydWUuCgogICAgICAgIDpwYXJhbSBhdXRvZXNjYXBlOiBib29sZWFuOyB3aGVuIFRydWUsIGVzdGFibGlzaGVzIGFuIGVzY2FwZSBjaGFyYWN0ZXIKICAgICAgICAgIHdpdGhpbiB0aGUgTElLRSBleHByZXNzaW9uLCB0aGVuIGFwcGxpZXMgaXQgdG8gYWxsIG9jY3VycmVuY2VzIG9mCiAgICAgICAgICBgYCIlImBgLCBgYCJfImBgIGFuZCB0aGUgZXNjYXBlIGNoYXJhY3RlciBpdHNlbGYgd2l0aGluIHRoZQogICAgICAgICAgY29tcGFyaXNvbiB2YWx1ZSwgd2hpY2ggaXMgYXNzdW1lZCB0byBiZSBhIGxpdGVyYWwgc3RyaW5nIGFuZCBub3QgYQogICAgICAgICAgU1FMIGV4cHJlc3Npb24uCgogICAgICAgICAgQW4gZXhwcmVzc2lvbiBzdWNoIGFzOjoKCiAgICAgICAgICAgIHNvbWVjb2x1bW4uY29udGFpbnMoImZvbyViYXIiLCBhdXRvZXNjYXBlPVRydWUpCgogICAgICAgICAgV2lsbCByZW5kZXIgYXM6OgoKICAgICAgICAgICAgc29tZWNvbHVtbiBMSUtFICclJyB8fCA6cGFyYW0gfHwgJyUnIEVTQ0FQRSAnLycKCiAgICAgICAgICBXaXRoIHRoZSB2YWx1ZSBvZiBgYDpwYXJhbWBgIGFzIGBgImZvby8lYmFyImBgLgoKICAgICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMgoKICAgICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMS4yLjAgVGhlCiAgICAgICAgICAgIDpwYXJhbXJlZjpgLkNvbHVtbk9wZXJhdG9ycy5jb250YWlucy5hdXRvZXNjYXBlYCBwYXJhbWV0ZXIgaXMKICAgICAgICAgICAgIG5vdyBhIHNpbXBsZSBib29sZWFuIHJhdGhlciB0aGFuIGEgY2hhcmFjdGVyOyB0aGUgZXNjYXBlCiAgICAgICAgICAgICBjaGFyYWN0ZXIgaXRzZWxmIGlzIGFsc28gZXNjYXBlZCwgYW5kIGRlZmF1bHRzIHRvIGEgZm9yd2FyZHMKICAgICAgICAgICAgIHNsYXNoLCB3aGljaCBpdHNlbGYgY2FuIGJlIGN1c3RvbWl6ZWQgdXNpbmcgdGhlCiAgICAgICAgICAgICA6cGFyYW1yZWY6YC5Db2x1bW5PcGVyYXRvcnMuY29udGFpbnMuZXNjYXBlYCBwYXJhbWV0ZXIuCgogICAgICAgIDpwYXJhbSBlc2NhcGU6IGEgY2hhcmFjdGVyIHdoaWNoIHdoZW4gZ2l2ZW4gd2lsbCByZW5kZXIgd2l0aCB0aGUKICAgICAgICAgIGBgRVNDQVBFYGAga2V5d29yZCB0byBlc3RhYmxpc2ggdGhhdCBjaGFyYWN0ZXIgYXMgdGhlIGVzY2FwZQogICAgICAgICAgY2hhcmFjdGVyLiAgVGhpcyBjaGFyYWN0ZXIgY2FuIHRoZW4gYmUgcGxhY2VkIHByZWNlZGluZyBvY2N1cnJlbmNlcwogICAgICAgICAgb2YgYGAlYGAgYW5kIGBgX2BgIHRvIGFsbG93IHRoZW0gdG8gYWN0IGFzIHRoZW1zZWx2ZXMgYW5kIG5vdAogICAgICAgICAgd2lsZGNhcmQgY2hhcmFjdGVycy4KCiAgICAgICAgICBBbiBleHByZXNzaW9uIHN1Y2ggYXM6OgoKICAgICAgICAgICAgc29tZWNvbHVtbi5jb250YWlucygiZm9vLyViYXIiLCBlc2NhcGU9Il4iKQoKICAgICAgICAgIFdpbGwgcmVuZGVyIGFzOjoKCiAgICAgICAgICAgIHNvbWVjb2x1bW4gTElLRSAnJScgfHwgOnBhcmFtIHx8ICclJyBFU0NBUEUgJ14nCgogICAgICAgICAgVGhlIHBhcmFtZXRlciBtYXkgYWxzbyBiZSBjb21iaW5lZCB3aXRoCiAgICAgICAgICA6cGFyYW1yZWY6YC5Db2x1bW5PcGVyYXRvcnMuY29udGFpbnMuYXV0b2VzY2FwZWA6OgoKICAgICAgICAgICAgc29tZWNvbHVtbi5jb250YWlucygiZm9vJWJhcl5iYXQiLCBlc2NhcGU9Il4iLCBhdXRvZXNjYXBlPVRydWUpCgogICAgICAgICAgV2hlcmUgYWJvdmUsIHRoZSBnaXZlbiBsaXRlcmFsIHBhcmFtZXRlciB3aWxsIGJlIGNvbnZlcnRlZCB0bwogICAgICAgICAgYGAiZm9vXiViYXJeXmJhdCJgYCBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHRoZSBkYXRhYmFzZS4KCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6bWV0aDpgLkNvbHVtbk9wZXJhdG9ycy5zdGFydHN3aXRoYAoKICAgICAgICAgICAgOm1ldGg6YC5Db2x1bW5PcGVyYXRvcnMuZW5kc3dpdGhgCgogICAgICAgICAgICA6bWV0aDpgLkNvbHVtbk9wZXJhdG9ycy5saWtlYAoKCiAgICAgICAgKQJyHQAAANoLY29udGFpbnNfb3BykgAAAHMDAAAAICAgciEAAAByBQAAAHoYQ29sdW1uT3BlcmF0b3JzLmNvbnRhaW5zXQMAAHMhAAAAgADwbgIAEByIdIx8nUuoFdAPOdAPObAm0A850A850Ag5ciMAAABjAgAAAAAAAAAAAAAABQAAAAsAAADzKgAAAJcAAgB8AGoAAAAAAAAAAAB0AgAAAAAAAAAAAAB8AWYCaQB8AqQBjgFTACkBYVkCAABJbXBsZW1lbnRzIGEgZGF0YWJhc2Utc3BlY2lmaWMgJ21hdGNoJyBvcGVyYXRvci4KCiAgICAgICAgOm1ldGg6YH4uQ29sdW1uT3BlcmF0b3JzLm1hdGNoYCBhdHRlbXB0cyB0byByZXNvbHZlIHRvCiAgICAgICAgYSBNQVRDSC1saWtlIGZ1bmN0aW9uIG9yIG9wZXJhdG9yIHByb3ZpZGVkIGJ5IHRoZSBiYWNrZW5kLgogICAgICAgIEV4YW1wbGVzIGluY2x1ZGU6CgogICAgICAgICogUG9zdGdyZVNRTCAtIHJlbmRlcnMgYGB4IEBAIHRvX3RzcXVlcnkoeSlgYAogICAgICAgICogTXlTUUwgLSByZW5kZXJzIGBgTUFUQ0ggKHgpIEFHQUlOU1QgKHkgSU4gQk9PTEVBTiBNT0RFKWBgCiAgICAgICAgKiBPcmFjbGUgLSByZW5kZXJzIGBgQ09OVEFJTlMoeCwgeSlgYAogICAgICAgICogb3RoZXIgYmFja2VuZHMgbWF5IHByb3ZpZGUgc3BlY2lhbCBpbXBsZW1lbnRhdGlvbnMuCiAgICAgICAgKiBCYWNrZW5kcyB3aXRob3V0IGFueSBzcGVjaWFsIGltcGxlbWVudGF0aW9uIHdpbGwgZW1pdAogICAgICAg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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 19
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
annotation.cpython-311.pyc
8.78 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
base.cpython-311.pyc
33.95 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
compiler.cpython-311.pyc
156.80 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
crud.cpython-311.pyc
28.82 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ddl.cpython-311.pyc
53.22 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
default_comparator.cpython-311.pyc
13.43 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dml.cpython-311.pyc
39.22 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
elements.cpython-311.pyc
197.28 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
expression.cpython-311.pyc
9.42 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
functions.cpython-311.pyc
48.73 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
naming.cpython-311.pyc
8.92 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
operators.cpython-311.pyc
55.27 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
schema.cpython-311.pyc
210.17 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
selectable.cpython-311.pyc
171.80 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
sqltypes.cpython-311.pyc
124.29 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
type_api.cpython-311.pyc
59.47 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-311.pyc
41.21 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
visitors.cpython-311.pyc
20.17 KB
lrw-r--r--
2026-02-06 08:01:45
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
4.79 KB
lrw-r--r--
2026-02-06 08:01:45
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).