REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 42.96 KB
Close
/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/engine/__pycache__/result.cpython-37.pyc
Text
Base64
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YnkKICAgICAgICBjdXJzb3IuZGVzY3JpcHRpb24uICBJbiB0aGlzIGNhc2UsIHdlIGFzc3VtZSBhIDEtMSBwb3NpdGlvbmFsIG1hcHBpbmcKICAgICAgICBiZXR3ZWVuIHRoZSBlbnRyaWVzIGluIGN1cnNvci5kZXNjcmlwdGlvbiBhbmQgdGhlIGNvbXBpbGVkIG9iamVjdC4KICAgICAgICBUaGlzIGlzIGFsc28gdGhlIG1vc3QgcGVyZm9ybWFudCBjYXNlIGFzIHdlIGRpc3JlZ2FyZCBleHRyYWN0aW5nIC8KICAgICAgICBkZWNvZGluZyB0aGUgY29sdW1uIG5hbWVzIHByZXNlbnQgaW4gY3Vyc29yLmRlc2NyaXB0aW9uIHNpbmNlIHdlCiAgICAgICAgYWxyZWFkeSBoYXZlIHRoZSBkZXNpcmVkIG5hbWUgd2UgZ2VuZXJhdGVkIGluIHRoZSBjb21waWxlZCBTUUwKICAgICAgICBjb25zdHJ1Y3QuCgogICAgICAgIFRoZSBuZXh0IGNvbW1vbiBjYXNlIGlzIHRoYXQgb2YgdGhlIGNvbXBsZXRlbHkgcmF3IHN0cmluZyBTUUwsCiAgICAgICAgc3VjaCBhcyBwYXNzZWQgdG8gY29ubmVjdGlvbi5leGVjdXRlKCkuICBJbiB0aGlzIGNhc2Ugd2UgaGF2ZSBubwogICAgICAgIGNvbXBpbGVkIGNvbnN0cnVjdCB0byB3b3JrIHdpdGgsIHNvIHdlIGV4dHJhY3QgYW5kIGRlY29kZSB0aGUKICAgICAgICBuYW1lcyBmcm9tIGN1cnNvci5kZXNjcmlwdGlvbiBhbmQgaW5kZXggdGhvc2UgYXMgdGhlIHByaW1hcnkKICAgICAgICByZXN1bHQgcm93IHRhcmdldCBrZXlzLgoKICAgICAgICBUaGUgcmVtYWluaW5nIGZhaXJseSBjb21tb24gY2FzZSBpcyB0aGF0IG9mIHRoZSB0ZXh0dWFsIFNRTAogICAgICAgIHRoYXQgaW5jbHVkZXMgYXQgbGVhc3QgcGFydGlhbCBjb2x1bW4gaW5mb3JtYXRpb247IHRoaXMgaXMgd2hlbgogICAgICAgIHdlIHVzZSBhIDpjbGFzczpgLlRleHRBc0Zyb21gIGNvbnN0cnVjdC4gICBUaGlzIGNvbnN0cnVjdCBtYXkgaGF2ZQogICAgICAgIHVub3JkZXJlZCBvciBvcmRlcmVkIGNvbHVtbiBpbmZvcm1hdGlvbi4gIEluIHRoZSBvcmRlcmVkIGNhc2UsIHdlCiAgICAgICAgbWVyZ2UgdGhlIGN1cnNvci5kZXNjcmlwdGlvbiBhbmQgdGhlIGNvbXBpbGVkIGNvbnN0cnVjdCdzIGluZm9ybWF0aW9uCiAgICAgICAgcG9zaXRpb25hbGx5LCBhbmQgd2FybiBpZiB0aGVyZSBhcmUgYWRkaXRpb25hbCBkZXNjcmlwdGlvbiBuYW1lcwogICAgICAgIHByZXNlbnQsIGhvd2V2ZXIgd2Ugc3RpbGwgZGVjb2RlIHRoZSBuYW1lcyBpbiBjdXJzb3IuZGVzY3JpcHRpb24KICAgICAgICBhcyB3ZSBkb24ndCBoYXZlIGEgZ3VhcmFudGVlIHRoYXQgdGhlIG5hbWVzIGluIHRoZSBjb2x1bW5zIG1hdGNoCiAgICAgICAgb24gdGhlc2UuICAgSW4gdGhlIHVub3JkZXJlZCBjYXNlLCB3ZSBtYXRjaCBuYW1lcyBpbiBjdXJzb3IuZGVzY3JpcHRpb24KICAgICAgICB0byB0aGF0IG9mIHRoZSBjb21waWxlZCBjb25zdHJ1Y3QgYmFzZWQgb24gbmFtZSBtYXRjaGluZy4KICAgICAgICBJbiBib3RoIG9mIHRoZXNlIGNhc2VzLCB0aGUgY3Vyc29yLmRlc2NyaXB0aW9uIG5hbWVzIGFuZCB0aGUgY29sdW1uCiAgICAgICAgZXhwcmVzc2lvbiBvYmplY3RzIGFuZCBuYW1lcyBhcmUgaW5kZXhlZCBhcyByZXN1bHQgcm93IHRhcmdldCBrZXlzLgoKICAgICAgICBUaGUgZmluYWwgY2FzZSBpcyBtdWNoIGxlc3MgY29tbW9uLCB3aGVyZSB3ZSBoYXZlIGEgY29tcGlsZWQKICAgICAgICBub24tdGV4dHVhbCBTUUwgZXhwcmVzc2lvbiBjb25zdHJ1Y3QsIGJ1dCB0aGUgbnVtYmVyIG9mIGNvbHVtbnMKICAgICAgICBpbiBjdXJzb3IuZGVzY3JpcHRpb24gZG9lc24ndCBtYXRjaCB3aGF0J3MgaW4gdGhlIGNvbXBpbGVkCiAgICAgICAgY29uc3RydWN0LiAgV2UgbWFrZSB0aGUgZ3Vlc3MgaGVyZSB0aGF0IHRoZXJlIG1pZ2h0IGJlIHRleHR1YWwKICAgICAgICBjb2x1bW4gZXhwcmVzc2lvbnMgaW4gdGhlIGNvbXBpbGVkIGNvbnN0cnVjdCB0aGF0IHRoZW1zZWx2ZXMgaW5jbHVkZQogICAgICAgIGEgY29tbWEgaW4gdGhlbSBjYXVzaW5nIHRoZW0gdG8gc3BsaXQuICBXZSBkbyB0aGUgc2FtZSBuYW1lLW1hdGNoaW5nCiAgICAgICAgYXMgd2l0aCB0ZXh0dWFsIG5vbi1vcmRlcmVkIGNvbHVtbnMuCgogICAgICAgIFRoZSBuYW1lLW1hdGNoZWQgc3lzdGVtIG9mIG1lcmdpbmcgaXMgdGhlIHNhbWUgYXMgdGhhdCB1c2VkIGJ5CiAgICAgICAgU1FMQWxjaGVteSBmb3IgYWxsIGNhc2VzIHVwIHRocm91Z2ggdGUgMC45IHNlcmllcy4gICBQb3NpdGlvbmFsCiAgICAgICAgbWF0Y2hpbmcgZm9yIGNvbXBpbGVkIFNRTCBleHByZXNzaW9ucyB3YXMgaW50cm9kdWNlZCBpbiAxLjAgYXMgYQogICAgICAgIG1ham9yIHBlcmZvcm1hbmNlIGZlYXR1cmUsIGFuZCBwb3NpdGlvbmFsIG1hdGNoaW5nIGZvciB0ZXh0dWFsCiAgICAgICAgOmNsYXNzOmAuVGV4dEFzRnJvbWAgb2JqZWN0cyBpbiAxLjEuICBBcyBuYW1lIG1hdGNoaW5nIGlzIG5vIGxvbmdlcgogICAgICAgIGEgY29tbW9uIGNhc2UsIGl0IHdhcyBhY2NlcHRhYmxlIHRvIGZhY3RvciBpdCBpbnRvIHNtYWxsZXIgZ2VuZXJhdG9yLQogICAgICAgIG9yaWVudGVkIG1ldGhvZHMgdGhhdCBhcmUgZWFzaWVyIHRvIHVuZGVyc3RhbmQsIGJ1dCBpbmN1ciBzbGlnaHRseQogICAgICAgIG1vcmUgcGVyZm9ybWFuY2Ugb3ZlcmhlYWQuCgogICAgICAgIGMBAAAAAAAAAAIAAAAEAAAAUwAAAHMUAAAAZwB8AF0MfQF8AWQAGQCRAnEEUwApAXIBAAAAcgoAAAApAnJTAAAA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A2UEWgVkAloGZANaB2QCWghkA1oJZANaCmQEZAWEAFoLZEdkB2QIhAFaDGQJZAqEAFoNZAtkDIQAWg5kDWQOhABaD2UQahFkD2QQhACDAVoSZRNkEWQShACDAVoUZRNkE2QUhACDAVoVZRNkFWQWhACDAVoWZBdkGIQAWhdkGWQahABaGGQbZByEAFoZZB1kHoQAWhpkH2QghABaG2UbWhxlEGoRZCFkIoQAgwFaHWQjZCSEAFoeZCVkJoQAWh9lE2QnZCiEAIMBWiBkKWQqhABaIWQrZCyEAFoiZC1kLoQAWiNkL2QwhABaJGQxZDKEAFolZDNkNIQAWiZkSGQ1ZDaEAVonZDdkOIQAWihkOWQ6hABaKWQ7ZDyEAFoqZD1kPoQAWitkSWQ/ZECEAVosZEFkQoQAWi1kQ2REhABaLmRFZEaEAFovZAJTAClK2gtSZXN1bHRQcm94eWFbAgAAV3JhcHMgYSBEQi1BUEkgY3Vyc29yIG9iamVjdCB0byBwcm92aWRlIGVhc2llciBhY2Nlc3MgdG8gcm93IGNvbHVtbnMuCgogICAgSW5kaXZpZHVhbCBjb2x1bW5zIG1heSBiZSBhY2Nlc3NlZCBieSB0aGVpciBpbnRlZ2VyIHBvc2l0aW9uLAogICAgY2FzZS1pbnNlbnNpdGl2ZSBjb2x1bW4gbmFtZSwgb3IgYnkgYGBzY2hlbWEuQ29sdW1uYGAKICAgIG9iamVjdC4gZS5nLjo6CgogICAgICByb3cgPSBmZXRjaG9uZSgpCgogICAgICBjb2wxID0gcm93WzBdICAgICMgYWNjZXNzIHZpYSBpbnRlZ2VyIHBvc2l0aW9uCgogICAgICBjb2wyID0gcm93Wydjb2wyJ10gICAjIGFjY2VzcyB2aWEgbmFtZQoKICAgICAgY29sMyA9IHJvd1tteXRhYmxlLmMubXljb2xdICMgYWNjZXNzIHZpYSBDb2x1bW4gb2JqZWN0LgoKICAgIGBgUmVzdWx0UHJveHlgYCBhbHNvIGhhbmRsZXMgcG9zdC1wcm9jZXNzaW5nIG9mIHJlc3VsdCBjb2x1bW4KICAgIGRhdGEgdXNpbmcgYGBUeXBlRW5naW5lYGAgb2JqZWN0cywgd2hpY2ggYXJlIHJlZmVyZW5jZWQgZnJvbQogICAgdGhlIG9yaWdpbmF0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ICAgICAgICogVGhpcyBhdHRyaWJ1dGUgcmV0dXJucyB0aGUgbnVtYmVyIG9mIHJvd3MgKm1hdGNoZWQqLAogICAgICAgICAgICAgd2hpY2ggaXMgbm90IG5lY2Vzc2FyaWx5IHRoZSBzYW1lIGFzIHRoZSBudW1iZXIgb2Ygcm93cwogICAgICAgICAgICAgdGhhdCB3ZXJlIGFjdHVhbGx5ICptb2RpZmllZCogLSBhbiBVUERBVEUgc3RhdGVtZW50LCBmb3IgZXhhbXBsZSwKICAgICAgICAgICAgIG1heSBoYXZlIG5vIG5ldCBjaGFuZ2Ugb24gYSBnaXZlbiByb3cgaWYgdGhlIFNFVCB2YWx1ZXMKICAgICAgICAgICAgIGdpdmVuIGFyZSB0aGUgc2FtZSBhcyB0aG9zZSBwcmVzZW50IGluIHRoZSByb3cgYWxyZWFkeS4KICAgICAgICAgICAgIFN1Y2ggYSByb3cgd291bGQgYmUgbWF0Y2hlZCBidXQgbm90IG1vZGlmaWVkLgogICAgICAgICAgICAgT24gYmFja2VuZHMgdGhhdCBmZWF0dXJlIGJvdGggc3R5bGVzLCBzdWNoIGFzIE15U1FMLAogICAgICAgICAgICAgcm93Y291bnQgaXMgY29uZmlndXJlZCBieSBkZWZhdWx0IHRvIHJldHVybiB0aGUgbWF0Y2gKICAgICAgICAgICAgIGNvdW50IGluIGFsbCBjYXNlcy4KCiAgICAgICAgICAgKiA6YXR0cjpgLlJlc3VsdFByb3h5LnJvd2NvdW50YCBpcyAqb25seSogdXNlZnVsIGluIGNvbmp1bmN0aW9uCiAgICAgICAgICAgICB3aXRoIGFuIFVQREFURSBvciBERUxFVEUgc3RhdGVtZW50LiAgQ29udHJhcnkgdG8gd2hhdCB0aGUgUHl0aG9uCiAgICAgICAgICAgICBEQkFQSSBzYXlzLCBpdCBkb2VzICpub3QqIHJldHVybiB0aGUKICAgICAgICAgICAgIG51bWJlciBvZiByb3dzIGF2YWlsYWJsZSBmcm9tIHRoZSByZXN1bHRzIG9mIGEgU0VMRUNUIHN0YXRlbWVudAogICAgICAgICAgICAgYXMgREJBUElzIGNhbm5vdCBzdXBwb3J0IHRoaXMgZnVuY3Rpb25hbGl0eSB3aGVuIHJvd3MgYXJlCiAgICAgICAgICAgICB1bmJ1ZmZlcmVkLgoKICAgICAgICAgICAqIDphdHRyOmAuUmVzdWx0UHJveHkucm93Y291bnRgIG1heSBub3QgYmUgZnVsbHkgaW1wbGVtZW50ZWQgYnkKICAgICAgICAgICAgIGFsbCBkaWFsZWN0cy4gIEluIHBhcnRpY3VsYXIsIG1vc3QgREJBUElzIGRvIG5vdCBzdXBwb3J0IGFuCiAgICAgICAgICAgICBhZ2dyZWdhdGUgcm93Y291bnQgcmVzdWx0IGZyb20gYW4gZXhlY3V0ZW1hbnkgY2FsbC4KICAgICAgICAgICAgIFRoZSA6bWV0aDpgLlJlc3VsdFByb3h5LnN1cHBvcnRzX3NhbmVfcm93Y291bnRgIGFuZAogICAgICAgICAgICAgOm1ldGg6YC5SZXN1bHRQcm94eS5zdXBwb3J0c19zYW5lX211bHRpX3Jvd2NvdW50YCBtZXRob2RzCiAgICAgICAgICAgICB3aWxsIHJlcG9ydCBmcm9tIHRoZSBkaWFsZWN0IGlmIGVhY2ggdXNhZ2UgaXMga25vd24gdG8gYmUKICAgICAgICAgICAgIHN1cHBvcnRlZC4KCiAgICAgICAgICAgKiBTdGF0ZW1lbnRzIHRoYXQgdXNlIFJFVFVSTklORyBtYXkgbm90IHJldHVybiBhIGNvcnJlY3QKICAgICAgICAgICAgIHJvd2NvdW50LgoKICAgICAgICBOKQZyaAAAANoIcm93Y291bnTaDUJhc2VFeGNlcHRpb25ynAAAANoXX2hhbmRsZV9kYmFwaV9leGNlcHRpb25ymgAAACkCchUAAAByNQAAAHIKAAAAcgoAAAByCwAAAHKpAAAA/QIAAHMKAAAAACkCAQgBEAEGAXoUUmVzdWx0UHJveHkucm93Y291bnRjAQAAAAAAAAACAAAACgAAAEMAAABzSAAAAHkIfABqAGoBUwAEAHQCawpyQgEAfQEBAHocfABqA6AEfAFkAWQBfABqAHwAagWhBQEAVwBkAWQBfQF+AVgAWQBuAlgAZAFTACkCYS8CAAByZXR1cm4gdGhlICdsYXN0cm93aWQnIGFjY2Vzc29yIG9uIHRoZSBEQkFQSSBjdXJzb3IuCgogICAgICAgIFRoaXMgaXMgYSBEQkFQSSBzcGVjaWZpYyBtZXRob2QgYW5kIGlzIG9ubHkgZnVuY3Rpb25hbAogICAgICAgIGZvciB0aG9zZSBiYWNrZW5kcyB3aGljaCBzdXBwb3J0IGl0LCBmb3Igc3RhdGVtZW50cwogICAgICAgIHdoZXJlIGl0IGlzIGFwcHJvcHJpYXRlLiAgSXQncyBiZWhhdmlvciBpcyBub3QKICAgICAgICBjb25zaXN0ZW50IGFjcm9zcyBiYWNrZW5kcy4KCiAgICAgICAgVXNhZ2Ugb2YgdGhpcyBtZXRob2QgaXMgbm9ybWFsbHkgdW5uZWNlc3Nhcnkgd2hlbgogICAgICAgIHVzaW5nIGluc2VydCgpIGV4cHJlc3Npb24gY29uc3RydWN0czsgdGhlCiAgICAgICAgOmF0dHI6YH5SZXN1bHRQcm94eS5pbnNlcnRlZF9wcmltYXJ5X2tleWAgYXR0cmlidXRlIHByb3ZpZGVzIGEKICAgICAgICB0dXBsZSBvZiBwcmltYXJ5IGtleSB2YWx1ZXMgZm9yIGEgbmV3bHkgaW5zZXJ0ZWQgcm93LAogICAgICAgIHJlZ2FyZGxlc3Mgb2YgZGF0YWJhc2UgYmFja2VuZC4KCiAgICAgICAgTikGcpsAAADaCWxhc3Ryb3dpZHKqAAAAcpwAAAByqwAAAHJoAAAAKQJyFQAAAHI1AAAAcgoAAAByCgAAAHILAAAAcqwAAAAtAwAAcwoAAAAAEAIBCAEQAQYBehVSZXN1bHRQcm94eS5sYXN0cm93aWRjAQAAAAAAAAABAAAAAgAAAEMAAABzCgAAAHwAagBkAWsJUwApAnrjVHJ1ZSBpZiB0aGlzIDpjbGFzczpgLlJlc3VsdFByb3h5YCByZXR1cm5zIHJvd3MuCgogICAgICAgIEkuZS4gaWYgaXQgaXMgbGVnYWwgdG8gY2FsbCB0aGUgbWV0aG9kcwogICAgICAgIDptZXRoOmB+LlJlc3VsdFByb3h5LmZldGNob25lYCwKICAgICAgICA6bWV0aDpgfi5SZXN1bHRQcm94eS5mZXRjaG1hbnlgCiAgICAgICAgOm1ldGg6YH4uUmVzdWx0UHJveHkuZmV0Y2hhbGxgLgoKICAgICAgICBOKQFyoAAAACkBchUAAAByCgAAAHIKAAAAcgsAAADaDHJldHVybnNfcm93c0QDAABzAgAAAAAKehhSZXN1bHRQcm94eS5yZXR1cm5zX3Jvd3NjAQAAAAAAAAABAAAAAQAAAEMAAABzCAAAAHwAagBqAVMAKQFhZAEAAFRydWUgaWYgdGhpcyA6Y2xhc3M6YC5SZXN1bHRQcm94eWAgaXMgdGhlIHJlc3VsdAogICAgICAgIG9mIGEgZXhlY3V0aW5nIGFuIGV4cHJlc3Npb24gbGFuZ3VhZ2UgY29tcGlsZWQKICAgICAgICA6ZnVuYzpgLmV4cHJlc3Npb24uaW5zZXJ0YCBjb25zdHJ1Y3QuCgogICAgICAgIFdoZW4gVHJ1ZSwgdGhpcyBpbXBsaWVzIHRoYXQgdGhlCiAgICAgICAgOmF0dHI6YGluc2VydGVkX3ByaW1hcnlfa2V5YCBhdHRyaWJ1dGUgaXMgYWNjZXNzaWJsZSwKICAgICAgICBhc3N1bWluZyB0aGUgc3RhdGVtZW50IGRpZCBub3QgaW5jbHVkZQogICAgICAgIGEgdXNlciBkZWZpbmVkICJyZXR1cm5pbmciIGNvbnN0cnVjdC4KCiAgICAgICAgKQJyaAAAANoIaXNpbnNlcnQpAXIVAAAAcgoAAAByCgAAAHILAAAA2glpc19pbnNlcnRQAwAAcwIAAAAADHoVUmVzdWx0UHJveHkuaXNfaW5zZXJ0YwEAAAAAAAAAAQAAAAEAAABDAAAAcwgAAAB8AGoAagFTACkBeiBNYXkgYmUgb3ZlcnJpZGRlbiBieSBzdWJjbGFzc2VzLikCcpsAAADaC2Rlc2NyaXB0aW9uKQFyFQAAAHIKAAAAcgoAAAByCwAAAHKkAAAAXgMAAHMCAAAAAAN6H1Jlc3VsdFByb3h5Ll9jdXJzb3JfZGVzY3JpcHRpb25jAQAAAAAAAAACAAAAAwAAAEMAAABzPAAAAHwAagByCmQBUwBkAnwAXwB8AGoBfQF8AGoCoAN8AaEBAQB8AGoEcjJ8AGoCoAWhAAEAZAF8AF8BZAFTACkDYWwCAABTb2Z0IGNsb3NlIHRoaXMgOmNsYXNzOmAuUmVzdWx0UHJveHlgLgoKICAgICAgICBUaGlzIHJlbGVhc2VzIGFsbCBEQkFQSSBjdXJzb3IgcmVzb3VyY2VzLCBidXQgbGVhdmVzIHRoZQogICAgICAgIFJlc3VsdFByb3h5ICJvcGVuIiBmcm9tIGEgc2VtYW50aWMgcGVyc3BlY3RpdmUsIG1lYW5pbmcgdGhlCiAgICAgICAgZmV0Y2hYWFgoKSBtZXRob2RzIHdpbGwgY29udGludWUgdG8gcmV0dXJuIGVtcHR5IHJlc3VsdHMuCgogICAgICAgIFRoaXMgbWV0aG9kIGlzIGNhbGxlZCBhdXRvbWF0aWNhbGx5IHdoZW46CgogICAgICAgICogYWxsIHJlc3VsdCByb3dzIGFyZSBleGhhdXN0ZWQgdXNpbmcgdGhlIGZldGNoWFhYKCkgbWV0aG9kcy4KICAgICAgICAqIGN1cnNvci5kZXNjcmlwdGlvbiBpcyBOb25lLgoKICAgICAgICBUaGlzIG1ldGhvZCBpcyAqKm5vdCBwdWJsaWMqKiwgYnV0IGlzIGRvY3VtZW50ZWQgaW4gb3JkZXIgdG8gY2xhcmlmeQogICAgICAgIHRoZSAiYXV0b2Nsb3NlIiBwcm9jZXNzIHVzZWQuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMC4wCgogICAgICAgIC4uIHNlZWFsc286OgoKICAgICAgICAgICAgOm1ldGg6YC5SZXN1bHRQcm94eS5jbG9zZWAKCgogICAgICAgIE5UKQbaDF9zb2Z0X2Nsb3NlZHKaAAAAcpwAAABaEl9zYWZlX2Nsb3NlX2N1cnNvctoVX2F1dG9jbG9zZV9jb25uZWN0aW9u2gVjbG9zZSkCchUAAABymgAAAHIKAAAAcgoAAAByCwAAANoLX3NvZnRfY2xvc2VjAwAAcxAAAAAAFwYBBAEGAQYBDAEGAQoBehdSZXN1bHRQcm94eS5fc29mdF9jbG9zZWMBAAAAAAAAAAEAAAACAAAAQwAAAHMYAAAAfABqAHMUfACgAaEAAQBkAXwAXwBkAlMAKQNhfwYAAENsb3NlIHRoaXMgUmVzdWx0UHJveHkuCgogICAgICAgIFRoaXMgY2xvc2VzIG91dCB0aGUgdW5kZXJseWluZyBEQkFQSSBjdXJzb3IgY29ycmVzcG9uZGluZwogICAgICAgIHRvIHRoZSBzdGF0ZW1lbnQgZXhlY3V0aW9uLCBpZiBvbmUgaXMgc3RpbGwgcHJlc2VudC4gIE5vdGUgdGhhdCB0aGUKICAgICAgICBEQkFQSSBjdXJzb3IgaXMgYXV0b21hdGljYWxseSByZWxlYXNlZCB3aGVuIHRoZSA6Y2xhc3M6YC5SZXN1bHRQcm94eWAKICAgICAgICBleGhhdXN0cyBhbGwgYXZhaWxhYmxlIHJvd3MuICA6bWV0aDpgLlJlc3VsdFByb3h5LmNsb3NlYCBpcyBnZW5lcmFsbHkKICAgICAgICBhbiBvcHRpb25hbCBtZXRob2QgZXhjZXB0IGluIHRoZSBjYXNlIHdoZW4gZGlzY2FyZGluZyBhCiAgICAgICAgOmNsYXNzOmAuUmVzdWx0UHJveHlgIHRoYXQgc3RpbGwgaGFzIGFkZGl0aW9uYWwgcm93cyBwZW5kaW5nIGZvciBmZXRjaC4KCiAgICAgICAgSW4gdGhlIGNhc2Ugb2YgYSByZXN1bHQgdGhhdCBpcyB0aGUgcHJvZHVjdCBvZgogICAgICAgIDpyZWY6YGNvbm5lY3Rpb25sZXNzIGV4ZWN1dGlvbiA8ZGJlbmdpbmVfaW1wbGljaXQ+YCwKICAgICAgICB0aGUgdW5kZXJseWluZyA6Y2xhc3M6YC5Db25uZWN0aW9uYCBvYmplY3QgaXMgYWxzbyBjbG9zZWQsIHdoaWNoCiAgICAgICAgOnRlcm06YHJlbGVhc2VzYCBEQkFQSSBjb25uZWN0aW9uIHJlc291cmNlcy4KCiAgICAgICAgQWZ0ZXIgdGhpcyBtZXRob2QgaXMgY2FsbGVkLCBpdCBpcyBubyBsb25nZXIgdmFsaWQgdG8gY2FsbCB1cG9uCiAgICAgICAgdGhlIGZldGNoIG1ldGhvZHMsIHdoaWNoIHdpbGwgcmFpc2UgYSA6Y2xhc3M6YC5SZXNvdXJjZUNsb3NlZEVycm9yYAogICAgICAgIG9uIHN1YnNlcXVlbnQgdXNlLgoKICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMC4wIC0gdGhlIDptZXRoOmAuUmVzdWx0UHJveHkuY2xvc2VgIG1ldGhvZAogICAgICAgICAgIGhhcyBiZWVuIHNlcGFyYXRlZCBvdXQgZnJvbSB0aGUgcHJvY2VzcyB0aGF0IHJlbGVhc2VzIHRoZSB1bmRlcmx5aW5nCiAgICAgICAgICAgREJBUEkg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ciBpbiB0aGlzIGxpc3QgYXMgYGBOb25lYGAgdW5sZXNzIHRoZSBiYWNrZW5kCiAgICAgICAgc3VwcG9ydHMgInJldHVybmluZyIgYW5kIHRoZSBpbnNlcnQgc3RhdGVtZW50IGV4ZWN1dGVkCiAgICAgICAgd2l0aCB0aGUgImltcGxpY2l0IHJldHVybmluZyIgZW5hYmxlZC4KCiAgICAgICAgUmFpc2VzIDpjbGFzczpgfnNxbGFsY2hlbXkuZXhjLkludmFsaWRSZXF1ZXN0RXJyb3JgIGlmIHRoZSBleGVjdXRlZAogICAgICAgIHN0YXRlbWVudCBpcyBub3QgYSBjb21waWxlZCBleHByZXNzaW9uIGNvbnN0cnVjdAogICAgICAgIG9yIGlzIG5vdCBhbiBpbnNlcnQoKSBjb25zdHJ1Y3QuCgogICAgICAgIHoxU3RhdGVtZW50IGlzIG5vdCBhIGNvbXBpbGVkIGV4cHJlc3Npb24gY29uc3RydWN0LnoyU3RhdGVtZW50IGlzIG5vdCBhbiBpbnNlcnQoKSBleHByZXNzaW9uIGNvbnN0cnVjdC56OUNhbid0IGNhbGwgaW5zZXJ0ZWRfcHJpbWFyeV9rZXkgd2hlbiByZXR1cm5pbmcoKSBpcyB1c2VkLikHcmgAAABypQAAAHIDAAAAci0AAAByrgAAAFoWX2lzX2V4cGxpY2l0X3JldHVybmluZ9oUaW5zZXJ0ZWRfcHJpbWFyeV9rZXkpAXIVAAAAcgoAAAByCgAAAHILAAAAcrkAAADEAwAAcxQAAAAAGwgBBAEIAggBBAEIAggBBAEGBXogUmVzdWx0UHJveHkuaW5zZXJ0ZWRfcHJpbWFyeV9rZXljAQAAAAAAAAABAAAAAwAAAEMAAABzSAAAAHwAagBqAXMUdAKgA2QBoQGCAW4wfABqAGoEcyh0AqADZAKhAYIBbhx8AGoAagVyOHwAagBqBlMAfABqAGoGZAMZAFMAZARTACkFYQEBAABSZXR1cm4gdGhlIGNvbGxlY3Rpb24gb2YgdXBkYXRlZCBwYXJhbWV0ZXJzIGZyb20gdGhpcwogICAgICAgIGV4ZWN1dGlvbi4KCiAgICAgICAgUmFpc2VzIDpjbGFzczpgfnNxbGFsY2hlbXkuZXhjLkludmFsaWRSZXF1ZXN0RXJyb3JgIGlmIHRoZSBleGVjdXRlZAogICAgICAgIHN0YXRlbWVudCBpcyBub3QgYSBjb21waWxlZCBleHByZXNzaW9uIGNvbnN0cnVjdAogICAgICAgIG9yIGlzIG5vdCBhbiB1cGRhdGUoKSBjb25zdHJ1Y3QuCgogICAgICAgIHoxU3RhdGVtZW50IGlzIG5vdCBhIGNvbXBpbGVkIGV4cHJlc3Npb24gY29uc3RydWN0LnoyU3RhdGVtZW50IGlzIG5vdCBhbiB1cGRhdGUoKSBleHByZXNzaW9uIGNvbnN0cnVjdC5yAQAAAE4pB3JoAAAAcqUAAAByAwAAAHItAAAA2ghpc3VwZGF0ZdoLZXhlY3V0ZW1hbnnaE2NvbXBpbGVkX3BhcmFtZXRlcnMpAXIVAAAAcgoAAAByCgAAAHILAAAA2hNsYXN0X3VwZGF0ZWRfcGFyYW1z8AMAAHMSAAAAAAkIAQQBCAIIAQQBCAIIAQgCeh9SZXN1bHRQcm94eS5sYXN0X3VwZGF0ZWRfcGFyYW1zYwEAAAAAAAAAAQAAAAMAAABDAAAAc0gAAAB8AGoAagFzFHQCoANkAaEBggFuMHwAagBqBHModAKgA2QCoQGCAW4cfABqAGoFcjh8AGoAagZTAHwAagBqBmQDGQBTAGQEUwApBWECAQAAUmV0dXJuIHRoZSBjb2xsZWN0aW9uIG9mIGluc2VydGVkIHBhcmFtZXRlcnMgZnJvbSB0aGlzCiAgICAgICAgZXhlY3V0aW9uLgoKICAgICAgICBSYWlzZXMgOmNsYXNzOmB+c3FsYWxjaGVteS5leGMuSW52YWxpZFJlcXVlc3RFcnJvcmAgaWYgdGhlIGV4ZWN1dGVkCiAgICAgICAgc3RhdGVtZW50IGlzIG5vdCBhIGNvbXBpbGVkIGV4cHJlc3Npb24gY29uc3RydWN0CiAgICAgICAgb3IgaXMgbm90IGFuIGluc2VydCgpIGNvbnN0cnVjdC4KCiAgICAgICAgejFTdGF0ZW1lbnQgaXMgbm90IGEgY29tcGlsZWQgZXhwcmVzc2lvbiBjb25zdHJ1Y3QuejJTdGF0ZW1lbnQgaXMgbm90IGFuIGluc2VydCgpIGV4cHJlc3Npb24gY29uc3RydWN0LnIBAAAATikHcmgAAABypQAAAHIDAAAAci0AAAByrgAAAHK7AAAAcrwAAAApAXIVAAAAcgoAAAByCgAAAHILAAAA2hRsYXN0X2luc2VydGVkX3BhcmFtcwYEAABzEgAAAAAJCAEEAQgCCAEEAQgCCAEIAnogUmVzdWx0UHJveHkubGFzdF9pbnNlcnRlZF9wYXJhbXNjAQAAAAAAAAABAAAAAQAAAEMAAABzCAAAAHwAagBqAVMAKQFhngEAAFJldHVybiB0aGUgdmFsdWVzIG9mIGRlZmF1bHQgY29sdW1ucyB0aGF0IHdlcmUgZmV0Y2hlZCB1c2luZwogICAgICAgIHRoZSA6bWV0aDpgLlZhbHVlc0Jhc2UucmV0dXJuX2RlZmF1bHRzYCBmZWF0dXJlLgoKICAgICAgICBUaGUgdmFsdWUgaXMgYW4gaW5zdGFuY2Ugb2YgOmNsYXNzOmAuUm93UHJveHlgLCBvciBgYE5vbmVgYAogICAgICAgIGlmIDptZXRoOmAuVmFsdWVzQmFzZS5yZXR1cm5fZGVmYXVsdHNgIHdhcyBub3QgdXNlZCBvciBpZiB0aGUKICAgICAgICBiYWNrZW5kIGRvZXMgbm90IHN1cHBvcnQgUkVUVVJOSU5HLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAwLjkuMAoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDptZXRoOmAuVmFsdWVzQmFzZS5yZXR1cm5fZGVmYXVsdHNgCgogICAgICAgICkCcmgAAADaEXJldHVybmVkX2RlZmF1bHRzKQFyFQAAAHIKAAAAcgoAAAByCwAAAHK/AAAAHAQAAHMCAAAAABB6HVJlc3VsdFByb3h5LnJldHVybmVkX2RlZmF1bHRzYwEAAAAAAAAAAQAAAAIAAABDAAAAcwoAAAB8AGoAoAGhAFMAKQF6mFJldHVybiBgYGxhc3Ryb3dfaGFzX2RlZmF1bHRzKClgYCBmcm9tIHRoZSB1bmRlcmx5aW5nCiAgICAgICAgOmNsYXNzOmAuRXhlY3V0aW9uQ29udGV4dGAuCgogICAgICAgIFNlZSA6Y2xhc3M6YC5FeGVjdXRpb25Db250ZXh0YCBmb3IgZGV0YWlscy4KCiAgICAgICAgKQJyaAAAANoUbGFzdHJvd19oYXNfZGVmYXVsdHMpAXIVAAAAcgoAAAByCgAAAHILAAAAcsAAAAAuBAAAcwIAAAAACHogUmVzdWx0UHJveHkubGFzdHJvd19oYXNfZGVmYXVsdHNjAQAAAAAAAAABAAAAAwAAAEMAAABzNgAAAHwAagBqAXMUdAKgA2QBoQGCAW4afABqAGoEcy58AGoAagVzLnQCoANkAqEBggF8AGoAagZTACkDYU0BAABSZXR1cm4gYGBwb3N0ZmV0Y2hfY29scygpYGAgZnJvbSB0aGUgdW5kZXJseWluZwogICAgICAgIDpjbGFzczpgLkV4ZWN1dGlvbkNvbnRleHRgLgoKICAgICAgICBTZWUgOmNsYXNzOmAuRXhlY3V0aW9uQ29udGV4dGAgZm9yIGRldGFpbHMuCgogICAgICAgIFJhaXNlcyA6Y2xhc3M6YH5zcWxhbGNoZW15LmV4Yy5JbnZhbGlkUmVxdWVzdEVycm9yYCBpZiB0aGUgZXhlY3V0ZWQKICAgICAgICBzdGF0ZW1lbnQgaXMgbm90IGEgY29tcGlsZWQgZXhwcmVzc2lvbiBjb25zdHJ1Y3QKICAgICAgICBvciBpcyBub3QgYW4gaW5zZXJ0KCkgb3IgdXBkYXRlKCkgY29uc3RydWN0LgoKICAgICAgICB6MVN0YXRlbWVudCBpcyBub3QgYSBjb21waWxlZCBleHByZXNzaW9uIGNvbnN0cnVjdC56PlN0YXRlbWVudCBpcyBub3QgYW4gaW5zZXJ0KCkgb3IgdXBkYXRlKCkgZXhwcmVzc2lvbiBjb25zdHJ1Y3QuKQdyaAAAAHKlAAAAcgMAAAByLQAAAHKuAAAAcroAAADaDnBvc3RmZXRjaF9jb2xzKQFyFQAAAHIKAAAAcgoAAAByCwAAAHLBAAAAOAQAAHMOAAAAAAwIAQQBCAIQAQQBBgN6GlJlc3VsdFByb3h5LnBvc3RmZXRjaF9jb2xzYwEAAAAAAAAAAQAAAAMAAABDAAAAczYAAAB8AGoAagFzFHQCoANkAaEBggFuGnwAagBqBHMufABqAGoFcy50AqADZAKhAYIBfABqAGoGUwApA2FMAQAAUmV0dXJuIGBgcHJlZmV0Y2hfY29scygpYGAgZnJvbSB0aGUgdW5kZXJseWluZwogICAgICAgIDpjbGFzczpgLkV4ZWN1dGlvbkNvbnRleHRgLgoKICAgICAgICBTZWUgOmNsYXNzOmAuRXhlY3V0aW9uQ29udGV4dGAgZm9yIGRldGFpbHMuCgogICAgICAgIFJhaXNlcyA6Y2xhc3M6YH5zcWxhbGNoZW15LmV4Yy5JbnZhbGlkUmVxdWVzdEVycm9yYCBpZiB0aGUgZXhlY3V0ZWQKICAgICAgICBzdGF0ZW1lbnQgaXMgbm90IGEgY29tcGlsZWQgZXhwcmVzc2lvbiBjb25zdHJ1Y3QKICAgICAgICBvciBpcyBub3QgYW4gaW5zZXJ0KCkgb3IgdXBkYXRlKCkgY29uc3RydWN0LgoKICAgICAgICB6MVN0YXRlbWVudCBpcyBub3QgYSBjb21waWxlZCBleHByZXNzaW9uIGNvbnN0cnVjdC56PlN0YXRlbWVudCBpcyBub3QgYW4gaW5zZXJ0KCkgb3IgdXBkYXRlKCkgZXhwcmVzc2lvbiBjb25zdHJ1Y3QuKQdyaAAAAHKlAAAAcgMAAAByLQAAAHKuAAAAcroAAADaDXByZWZldGNoX2NvbHMpAXIVAAAAcgoAAAByCgAAAHILAAAAcsIAAABPBAAAcw4AAAAADAgBBAEIAhABBAEGA3oZUmVzdWx0UHJveHkucHJlZmV0Y2hfY29sc2MBAAAAAAAAAAEAAAABAAAAQwAAAHMIAAAAfABqAGoBUwApAXp4UmV0dXJuIGBgc3VwcG9ydHNfc2FuZV9yb3djb3VudGBgIGZyb20gdGhlIGRpYWxlY3QuCgogICAgICAgIFNlZSA6YXR0cjpgLlJlc3VsdFByb3h5LnJvd2NvdW50YCBmb3IgYmFja2dyb3VuZC4KCiAgICAgICAgKQJyaQAAANoWc3VwcG9ydHNfc2FuZV9yb3djb3VudCkBchUAAAByCgAAAHIKAAAAcgsAAABywwAAAGYEAABzAgAAAAAHeiJSZXN1bHRQcm94eS5zdXBwb3J0c19zYW5lX3Jvd2NvdW50YwEAAAAAAAAAAQAAAAEAAABDAAAAcwgAAAB8AGoAagFTACkBen5SZXR1cm4gYGBzdXBwb3J0c19zYW5lX211bHRpX3Jvd2NvdW50YGAgZnJvbSB0aGUgZGlhbGVjdC4KCiAgICAgICAgU2VlIDphdHRyOmAuUmVzdWx0UHJveHkucm93Y291bnRgIGZvciBiYWNrZ3JvdW5kLgoKICAgICAgICApAnJpAAAA2hxzdXBwb3J0c19zYW5lX211bHRpX3Jvd2NvdW50KQFyFQAAAHIKAAAAcgoAAAByCwAAAHLEAAAAbwQAAHMCAAAAAAd6KFJlc3VsdFByb3h5LnN1cHBvcnRzX3NhbmVfbXVsdGlfcm93Y291bnRjAQAAAAAAAAABAAAACAAAAEMAAABzKgAAAHkKfABqAKABoQBTAAQAdAJrCnIkAQABAAEAfACgA2QAoQFTAFgAZABTACkBTikEcpoAAABytgAAAHIyAAAAcqEAAAApAXIVAAAAcgoAAAByCgAAAHILAAAA2g5fZmV0Y2hvbmVfaW1wbHgEAABzCAAAAAABAgEKAQ4BehpSZXN1bHRQcm94eS5fZmV0Y2hvbmVfaW1wbGMCAAAAAAAAAAIAAAAIAAAAQwAAAHNCAAAAeSJ8AWQAawhyFHwAagCgAaEAUwB8AGoAoAF8AaEBUwBXAG4aBAB0AmsKcjwBAAEAAQB8AKADZwChAVMAWABkAFMAKQFOKQRymgAAANoJZmV0Y2htYW55cjIAAAByoQAAACkCchUAAADaBHNpemVyCgAAAHIKAAAAcgsAAADaD19mZXRjaG1hbnlfaW1wbH4EAABzDAAAAAABAgEIAQoCEAEOAXobUmVzdWx0UHJveHkuX2ZldGNobWFueV9pbXBsYwEAAAAAAAAAAQAAAAgAAABDAAAAcyoAAAB5CnwAagCgAaEAUwAEAHQCawpyJAEAAQABAHwAoANnAKEBUwBYAGQAUwApAU4pBHKaAAAA2ghmZXRjaGFsbHIyAAAAcqEAAAApAXIVAAAAcgoAAAByCgAAAHILAAAA2g5fZmV0Y2hhbGxfaW1wbIcEAABzCAAAAAABAgEKAQ4BehpSZXN1bHRQcm94eS5fZmV0Y2hhbGxfaW1wbGMCAAAAAAAAAAIAAAADAAAAQwAAAHMwAAAAfABqAGQAawhyFnQBoAJkAaEBggFuFnwAagNyKHQBoAJkAqEBggFuBHwBUwBkAFMAKQNOekpUaGlzIHJlc3VsdCBvYmplY3QgZG9lcyBub3QgcmV0dXJuIHJvd3MuIEl0IGhhcyBiZWVuIGNsb3NlZCBhdXRvbWF0aWNhbGx5LnodVGhpcyByZXN1bHQgb2JqZWN0IGlzIGNsb3NlZC4pBHKgAAAAcgMAAABaE1Jlc291cmNlQ2xvc2VkRXJyb3JytQAAACkCchUAAADaB2RlZmF1bHRyCgAAAHIKAAAAcgsAAAByoQAAAI0EAABzDAAAAAABCgEEAQgDBgEMAnoXUmVzdWx0UHJveHkuX25vbl9yZXN1bHRjAgAAAAAAAAAFAAAACAAAAAMAAABzgAAAAHwAagCJAnwAagGJAYgBagKJAIgBagOJA3wAagRyZHwAagVqBmoHagh9AmcAfQN4MHwBRABdKH0EfAJkAXQJoAp8BKEBgwIBAHwDoAuIAogBfASIA4gAgwShAQEAcTRXAHwDUwCHAIcBhwKHA2YEZAJkA4QIfAFEAIMBUwBkAFMAKQROegZSb3cgJXJjAQAAAAAAAAACAAAABwAAABMAAABzGgAAAGcAfABdEn0BiAKIAXwBiAOIAIMEkQJxBFMAcgoAAAByCgAAACkCclMAAAByFwAAACkEchkAAADaCG1ldGFkYXRh2gtwcm9jZXNzX3Jvd3IYAAAAcgoAAAByCwAAAHJUAAAApgQAAHMCAAAABgB6LFJlc3VsdFByb3h5LnByb2Nlc3Nfcm93cy48bG9jYWxzPi48bGlzdGNvbXA+KQzaDF9wcm9jZXNzX3Jvd3KgAAAAchQAAAByEwAAAHKdAAAAcmgAAAByngAAAHKnAAAAcqgAAAByTwAAAHJQAAAAcisAAAApBXIVAAAAWgRyb3dz2gNsb2dyMAAAAHIXAAAAcgoAAAApBHIZAAAAcswAAAByzQAAAHIYAAAAcgsAAADaDHByb2Nlc3Nfcm93c5gEAABzGAAAAAABBgEGAQYBBgEGAQwBBAEKARABGAEEA3oYUmVzdWx0UHJveHkucHJvY2Vzc19yb3dzYwEAAAAAAAAAAwAAAAoAAABDAAAAc1oAAAB5GnwAoAB8AKABoQChAX0BfACgAqEAAQB8AVMABAB0A2sKclQBAH0CAQB6HHwAagSgBXwCZAFkAXwAagZ8AGoHoQUBAFcAZAFkAX0CfgJYAFkAbgJYAGQBUwApAmF2AgAARmV0Y2ggYWxsIHJvd3MsIGp1c3QgbGlrZSBEQi1BUEkgYGBjdXJzb3IuZmV0Y2hhbGwoKWBgLgoKICAgICAgICBBZnRlciBhbGwgcm93cyBoYXZlIGJlZW4gZXhoYXVzdGVkLCB0aGUgdW5kZXJseWluZyBEQkFQSQogICAgICAgIGN1cnNvciByZXNvdXJjZSBpcyByZWxlYXNlZCwgYW5kIHRoZSBvYmplY3QgbWF5IGJlIHNhZmVseQogICAgICAgIGRpc2NhcmRlZC4KCiAgICAgICAgU3Vic2VxdWVudCBjYWxscyB0byA6bWV0aDpgLlJlc3VsdFByb3h5LmZldGNoYWxsYCB3aWxsIHJldHVybgogICAgICAgIGFuIGVtcHR5IGxpc3QuICAgQWZ0ZXIgdGhlIDptZXRoOmAuUmVzdWx0UHJveHkuY2xvc2VgIG1ldGhvZCBpcwogICAgICAgIGNhbGxlZCwgdGhlIG1ldGhvZCB3aWxsIHJhaXNlIDpjbGFzczpgLlJlc291cmNlQ2xvc2VkRXJyb3JgLgoKICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMC4wIC0gQWRkZWQgInNvZnQgY2xvc2UiIGJlaGF2aW9yIHdoaWNoCiAgICAgICAgICAgYWxsb3dzIHRoZSByZXN1bHQgdG8gYmUgdXNlZCBpbiBhbiAiZXhoYXVzdGVkIiBzdGF0ZSBwcmlvciB0bwogICAgICAgICAgIGNhbGxpbmcgdGhlIDptZXRoOmAuUmVzdWx0UHJveHkuY2xvc2VgIG1ldGhvZC4KCiAgICAgICAgTikIctAAAAByygAAAHK0AAAAcqoAAABynAAAAHKrAAAAcpoAAAByaAAAACkDchUAAAByMAAAAHI1AAAAcgoAAAByCgAAAHILAAAAcskAAACpBAAAcw4AAAAAEQIBDgEIAQQBEAEGAXoUUmVzdWx0UHJveHkuZmV0Y2hhbGxjAgAAAAAAAAAEAAAACgAAAEMAAABzaAAAAHkofACgAHwAoAF8AaEBoQF9AnQCfAKDAWQBawJyJnwAoAOhAAEAfAJTAAQAdARrCnJiAQB9AwEAehx8AGoFoAZ8A2QCZAJ8AGoHfABqCKEFAQBXAGQCZAJ9A34DWABZAG4CWABkAlMAKQNhtgIAAEZldGNoIG1hbnkgcm93cywganVzdCBsaWtlIERCLUFQSQogICAgICAgIGBgY3Vyc29yLmZldGNobWFueShzaXplPWN1cnNvci5hcnJheXNpemUpYGAuCgogICAgICAgIEFmdGVyIGFsbCByb3dzIGhhdmUgYmVlbiBleGhhdXN0ZWQsIHRoZSB1bmRlcmx5aW5nIERCQVBJCiAgICAgICAgY3Vyc29yIHJlc291cmNlIGlzIHJlbGVhc2VkLCBhbmQgdGhlIG9iamVjdCBtYXkgYmUgc2FmZWx5CiAgICAgICAgZGlzY2FyZGVkLgoKICAgICAgICBDYWxscyB0byA6bWV0aDpgLlJlc3VsdFByb3h5LmZldGNobWFueWAgYWZ0ZXIgYWxsIHJvd3MgaGF2ZSBiZWVuCiAgICAgICAgZXhoYXVzdGVkIHdpbGwgcmV0dXJuCiAgICAgICAgYW4gZW1wdHkgbGlzdC4gICBBZnRlciB0aGUgOm1ldGg6YC5SZXN1bHRQcm94eS5jbG9zZWAgbWV0aG9kIGlzCiAgICAgICAgY2FsbGVkLCB0aGUgbWV0aG9kIHdpbGwgcmFpc2UgOmNsYXNzOmAuUmVzb3VyY2VDbG9zZWRFcnJvcmAuCgogICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMS4wLjAgLSBBZGRlZCAic29mdCBjbG9zZSIgYmVoYXZpb3Igd2hpY2gKICAgICAgICAgICBhbGxvd3MgdGhlIHJlc3VsdCB0byBiZSB1c2VkIGluIGFuICJleGhhdXN0ZWQiIHN0YXRlIHByaW9yIHRvCiAgICAgICAgICAgY2FsbGluZyB0aGUgOm1ldGg6YC5SZXN1bHRQcm94eS5jbG9zZWAgbWV0aG9kLgoKICAgICAgICByAQAAAE4pCXLQAAAAcsgAAAByJAAAAHK0AAAAcqoAAABynAAAAHKrAAAAcpoAAAByaAAAACkEchUAAAByxwAAAHIwAAAAcjUAAAByCgAAAHIKAAAAcgsAAAByxgAAAMMEAABzEAAAAAATAgEQAQwBCAEEARABBgF6FVJlc3VsdFByb3h5LmZldGNobWFueWMBAAAAAAAAAAMAAAAKAAAAQwAAAHNwAAAAeTB8AKAAoQB9AXwBZAFrCXIifACgAXwBZwGhAWQCGQBTAHwAoAKhAAEAZAFTAFcAbjoEAHQDawpyagEAfQIBAHocfABqBKAFfAJkAWQBfABqBnwAagehBQEAVwBkAWQBfQJ+AlgAWQBuAlgAZAFTACkDYY4CAABGZXRjaCBvbmUgcm93LCBqdXN0IGxpa2UgREItQVBJIGBgY3Vyc29yLmZldGNob25lKClgYC4KCiAgICAgICAgQWZ0ZXIgYWxsIHJvd3MgaGF2ZSBiZWVuIGV4aGF1c3RlZCwgdGhlIHVuZGVybHlpbmcgREJBUEkKICAgICAgICBjdXJzb3IgcmVzb3VyY2UgaXMgcmVsZWFzZWQsIGFuZCB0aGUgb2JqZWN0IG1heSBiZSBzYWZlbHkKICAgICAgICBkaXNjYXJkZWQuCgogICAgICAgIENhbGxzIHRvIDptZXRoOmAuUmVzdWx0UHJveHkuZmV0Y2hvbmVgIGFmdGVyIGFsbCByb3dzIGhhdmUKICAgICAgICBiZWVuIGV4aGF1c3RlZCB3aWxsIHJldHVybiBgYE5vbmVgYC4KICAgICAgICBBZnRlciB0aGUgOm1ldGg6YC5SZXN1bHRQcm94eS5jbG9zZWAgbWV0aG9kIGlzCiAgICAgICAgY2FsbGVkLCB0aGUgbWV0aG9kIHdpbGwgcmFpc2UgOmNsYXNzOmAuUmVzb3VyY2VDbG9zZWRFcnJvcmAuCgogICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMS4wLjAgLSBBZGRlZCAic29mdCBjbG9zZSIgYmVoYXZpb3Igd2hpY2gKICAgICAgICAgICBhbGxvd3MgdGhlIHJlc3VsdCB0byBiZSB1c2VkIGluIGFuICJleGhhdXN0ZWQiIHN0YXRlIHByaW9yIHRvCiAgICAgICAgICAgY2FsbGluZyB0aGUgOm1ldGg6YC5SZXN1bHRQcm94eS5jbG9zZWAgbWV0aG9kLgoKICAgICAgICBOcgEAAAApCHLFAAAActAAAABytAAAAHKqAAAAcpwAAAByqwAAAHKaAAAAcmgAAAApA3IVAAAAchcAAAByNQAAAHIKAAAAcgoAAAByCwAAAHK2AAAA4AQAAHMSAAAAABECAQgBCAEQAggBCAEQAQYBehRSZXN1bHRQcm94eS5mZXRjaG9uZWMBAAAAAAAAAAMAAAAKAAAAQwAAAHOMAAAAfABqAGQBawhyFHwAoAFkAaEBUwB5DHwAoAKhAH0BVwBuOgQAdANrCnJaAQB9AgEAehx8AGoEoAV8AmQBZAF8AGoGfABqB6EFAQBXAGQBZAF9An4CWABZAG4CWAB6IHwBZAFrCXJ2fACgCHwBZwGhAWQCGQBTAGQBUwBXAGQBfACgCaEAAQBYAGQBUwApA2ECAQAARmV0Y2ggdGhlIGZpcnN0IHJvdyBhbmQgdGhlbiBjbG9zZSB0aGUgcmVzdWx0IHNldCB1bmNvbmRpdGlvbmFsbHkuCgogICAgICAgIFJldHVybnMgTm9uZSBpZiBubyByb3cgaXMgcHJlc2VudC4KCiAgICAgICAgQWZ0ZXIgY2FsbGluZyB0aGlzIG1ldGhvZCwgdGhlIG9iamVjdCBpcyBmdWxseSBjbG9zZWQsCiAgICAgICAgZS5nLiB0aGUgOm1ldGg6YC5SZXN1bHRQcm94eS5jbG9zZWAgbWV0aG9kIHdpbGwgaGF2ZSBiZWVuIGNhbGxlZC4KCiAgICAgICAgTnIBAAAAKQpyoAAAAHKhAAAAcsUAAAByqgAAAHKcAAAAcqsAAABymgAAAHJoAAAActAAAAByswAAACkDchUAAAByFwAAAHI1AAAAcgoAAAByCgAAAHILAAAA2gVmaXJzdP0EAABzGAAAAAAJCgEKAgIBDAEQAQYBJAMCAQgBEAIIAnoRUmVzdWx0UHJveHkuZmlyc3RjAQAAAAAAAAACAAAAAgAAAEMAAABzIAAAAHwAoAChAH0BfAFkAWsJchh8AWQCGQBTAGQBUwBkAVMAKQNhAgEAAEZldGNoIHRoZSBmaXJzdCBjb2x1bW4gb2YgdGhlIGZpcnN0IHJvdywgYW5kIGNsb3NlIHRoZSByZXN1bHQgc2V0LgoKICAgICAgICBSZXR1cm5zIE5vbmUgaWYgbm8gcm93IGlzIHByZXNlbnQuCgogICAgICAgIEFmdGVyIGNhbGxpbmcgdGhpcyBtZXRob2QsIHRoZSBvYmplY3QgaXMgZnVsbHkgY2xvc2VkLAogICAgICAgIGUuZy4gdGhlIDptZXRoOmAuUmVzdWx0UHJveHkuY2xvc2VgIG1ldGhvZCB3aWxsIGhhdmUgYmVlbiBjYWxsZWQuCgogICAgICAgIE5yAQAAACkBctEAAAApAnIVAAAAchcAAAByCgAAAHIKAAAAcgsAAADaBnNjYWxhchgFAABzCAAAAAAJCAEIAQgCehJSZXN1bHRQcm94eS5zY2FsYXIpAVQpAU4pAU4pMHI3AAAAcjgAAAByOQAAAHJaAAAAcjsAAAByzgAAAFoOb3V0X3BhcmFtZXRlcnNysgAAAHKgAAAAcrEAAABytQAAAHIaAAAAcpMAAAByPAAAAHKfAAAAclUAAAByBAAAAFoRbWVtb2l6ZWRfcHJvcGVydHlyqQAAANoIcHJvcGVydHlyrAAAAHKtAAAAcq8AAABypAAAAHK0AAAAcrMAAAByIwAAAHK4AAAA2gRuZXh0crkAAAByvQAAAHK+AAAAcr8AAABywAAAAHLBAAAAcsIAAABywwAAAHLEAAAAcsUAAAByyAAAAHLKAAAAcqEAAABy0AAAAHLJAAAAcsYAAABytgAAAHLRAAAActIAAAByCgAAAHIKAAAAcgoAAAByCwAAAHKZAAAArAIAAHNSAAAACBMEAgQBBAEEAQQBBAEEAggKCggICAgUCAcOMAwXDAwMDggFCCAIKQgKCAwEAg4sCBYIFgwSCAoIFwgXCAkICQgGCgkIBggLCBEIGgodCB0IG3KZAAAAYwAAAAAAAAAAAAAAAAkAAAAAAAAAc2QAAABlAFoBZABaAmQBWgOHAGYBZAJkA4QIWgRkBGQFZAZkB2QIZAlkCmQLZAycCFoFZA1kDoQAWgaHAGYBZA9kEIQIWgdkEWQShABaCGQYZBRkFYQBWglkFmQXhABaCocABABaC1MAKRnaFkJ1ZmZlcmVkUm93UmVzdWx0UHJveHlh/AMAAEEgUmVzdWx0UHJveHkgd2l0aCByb3cgYnVmZmVyaW5nIGJlaGF2aW9yLgoKICAgIGBgUmVzdWx0UHJveHlgYCB0aGF0IGJ1ZmZlcnMgdGhlIGNvbnRlbnRzIG9mIGEgc2VsZWN0aW9uIG9mIHJvd3MKICAgIGJlZm9yZSBgYGZldGNob25lKClgYCBpcyBjYWxsZWQuICBUaGlzIGlzIHRvIGFsbG93IHRoZSByZXN1bHRzIG9mCiAgICBgYGN1cnNvci5kZXNjcmlwdGlvbmBgIHRvIGJlIGF2YWlsYWJsZSBpbW1lZGlhdGVseSwgd2hlbgogICAgaW50ZXJmYWNpbmcgd2l0aCBhIERCLUFQSSB0aGF0IHJlcXVpcmVzIHJvd3MgdG8gYmUgY29uc3VtZWQgYmVmb3JlCiAgICB0aGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSAoY3VycmVudGx5IHBzeWNvcGcyLCB3aGVuIHVzZWQgd2l0aAogICAgc2VydmVyLXNpZGUgY3Vyc29ycykuCgogICAgVGhlIHByZS1mZXRjaGluZyBiZWhhdmlvciBmZXRjaGVzIG9ubHkgb25lIHJvdyBpbml0aWFsbHksIGFuZCB0aGVuCiAgICBncm93cyBpdHMgYnVmZmVyIHNpemUgYnkgYSBmaXhlZCBhbW91bnQgd2l0aCBlYWNoIHN1Y2Nlc3NpdmUgbmVlZAogICAgZm9yIGFkZGl0aW9uYWwgcm93cyB1cCB0byBhIHNpemUgb2YgMTAwMC4KCiAgICBUaGUgc2l6ZSBhcmd1bWVudCBpcyBjb25maWd1cmFibGUgdXNpbmcgdGhlIGBgbWF4X3Jvd19idWZmZXJgYAogICAgZXhlY3V0aW9uIG9wdGlvbjo6CgogICAgICAgIHdpdGggcHN5Y29wZzJfZW5naW5lLmNvbm5lY3QoKSBhcyBjb25uOgoKICAgICAgICAgICAgcmVzdWx0ID0gY29ubi5leGVjdXRpb25fb3B0aW9ucygKICAgICAgICAgICAgICAgIHN0cmVhbV9yZXN1bHRzPVRydWUsIG1heF9yb3dfYnVmZmVyPTUwCiAgICAgICAgICAgICAgICApLmV4ZWN1dGUoInNlbGVjdCAqIGZyb20gdGFibGUiKQoKICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMC42IEFkZGVkIHRoZSBgYG1heF9yb3dfYnVmZmVyYGAgb3B0aW9uLgoKICAgIC4uIHNlZWFsc286OgoKICAgICAgICA6cmVmOmBwc3ljb3BnMl9leGVjdXRpb25fb3B0aW9uc2AKICAgIGMBAAAAAAAAAAEAAAAEAAAAAwAAAHMsAAAAfABqAGoBoAJkAWQAoQJ8AF8DfACgBKEAAQB0BXQGfACDAqAHoQABAGQAUwApAk5aDm1heF9yb3dfYnVmZmVyKQhyaAAAAHKmAAAAco0AAADaD19tYXhfcm93X2J1ZmZlctokX0J1ZmZlcmVkUm93UmVzdWx0UHJveHlfX2J1ZmZlcl9yb3dz2gVzdXBlcnLVAAAAcp8AAAApAXIVAAAAKQFyGwAAAHIKAAAAcgsAAABynwAAAEYFAABzCAAAAAABCAEKAggBeiVCdWZmZXJlZFJvd1Jlc3VsdFByb3h5Ll9pbml0X21ldGFkYXRhcmcAAADpCgAAAOkUAAAA6TIAAADpZAAAAOn6AAAA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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 10
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
base.cpython-37.pyc
67.31 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
default.cpython-37.pyc
35.73 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
interfaces.cpython-37.pyc
40.83 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
reflection.cpython-37.pyc
25.44 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
result.cpython-37.pyc
42.96 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
strategies.cpython-37.pyc
8.48 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
threadlocal.cpython-37.pyc
4.90 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
url.cpython-37.pyc
8.43 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-37.pyc
1.69 KB
lrw-r--r--
2023-11-14 14:32:36
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-37.pyc
21.08 KB
lrw-r--r--
2023-11-14 14:32:36
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).