REDROOM
PHP 8.0.30
Path:
Logout
Edit File
Size: 21.08 KB
Close
/opt/alt/python37/lib64/python3.7/site-packages/sqlalchemy/engine/__pycache__/__init__.cpython-37.pyc
Text
Base64
Qg0NCgAAAADDzDRdp1QAAOMAAAAAAAAAAAAAAAADAAAAQAAAAHNCAQAAZABaAGQBZAJsAW0CWgIBAGQBZANsAW0DWgMBAGQBZARsBG0FWgUBAGQBZAVsBG0GWgYBAGQBZAZsBG0HWgcBAGQBZAdsBG0IWggBAGQBZAhsBG0JWgkBAGQBZAlsBG0KWgoBAGQBZApsC20MWgwBAGQBZAtsC20NWg0BAGQBZAxsC20OWg4BAGQBZA1sC20PWg8BAGQBZA5sC20QWhABAGQBZA9sC20RWhEBAGQBZBBsC20SWhIBAGQBZBFsE20UWhQBAGQBZBJsE20VWhUBAGQBZBNsE20WWhYBAGQBZBRsE20XWhcBAGQBZBVsE20YWhgBAGQBZBZsE20ZWhkBAGQBZBdsE20aWhoBAGQBZBhsA20bWhsBAGQZZBpsHG0dWh0BAGQbWh5kHGQdhABaH2QjZB9kIIQBWiBkIVohZCJTACkkYXQHAABTUUwgY29ubmVjdGlvbnMsIFNRTCBleGVjdXRpb24gYW5kIGhpZ2gtbGV2ZWwgREItQVBJIGludGVyZmFjZS4KClRoZSBlbmdpbmUgcGFja2FnZSBkZWZpbmVzIHRoZSBiYXNpYyBjb21wb25lbnRzIHVzZWQgdG8gaW50ZXJmYWNlCkRCLUFQSSBtb2R1bGVzIHdpdGggaGlnaGVyLWxldmVsIHN0YXRlbWVudCBjb25zdHJ1Y3Rpb24sCmNvbm5lY3Rpb24tbWFuYWdlbWVudCwgZXhlY3V0aW9uIGFuZCByZXN1bHQgY29udGV4dHMuICBUaGUgcHJpbWFyeQoiZW50cnkgcG9pbnQiIGNsYXNzIGludG8gdGhpcyBwYWNrYWdlIGlzIHRoZSBFbmdpbmUgYW5kIGl0cyBwdWJsaWMKY29uc3RydWN0b3IgYGBjcmVhdGVfZW5naW5lKClgYC4KClRoaXMgcGFja2FnZSBpbmNsdWRlczoKCmJhc2UucHkKICAgIERlZmluZXMgaW50ZXJmYWNlIGNsYXNzZXMgYW5kIHNvbWUgaW1wbGVtZW50YXRpb24gY2xhc3NlcyB3aGljaAogICAgY29tcHJpc2UgdGhlIGJhc2ljIGNvbXBvbmVudHMgdXNlZCB0byBpbnRlcmZhY2UgYmV0d2VlbiBhIERCLUFQSSwKICAgIGNvbnN0cnVjdGVkIGFuZCBwbGFpbi10ZXh0IHN0YXRlbWVudHMsIGNvbm5lY3Rpb25zLCB0cmFuc2FjdGlvbnMsCiAgICBhbmQgcmVzdWx0cy4KCmRlZmF1bHQucHkKICAgIENvbnRhaW5zIGRlZmF1bHQgaW1wbGVtZW50YXRpb25zIG9mIHNvbWUgb2YgdGhlIGNvbXBvbmVudHMgZGVmaW5lZAogICAgaW4gYmFzZS5weS4gIEFsbCBjdXJyZW50IGRhdGFiYXNlIGRpYWxlY3RzIHVzZSB0aGUgY2xhc3NlcyBpbgogICAgZGVmYXVsdC5weSBhcyBiYXNlIGNsYXNzZXMgZm9yIHRoZWlyIG93biBkYXRhYmFzZS1zcGVjaWZpYwogICAgaW1wbGVtZW50YXRpb25zLgoKc3RyYXRlZ2llcy5weQogICAgVGhlIG1lY2hhbmljcyBvZiBjb25zdHJ1Y3RpbmcgYGBFbmdpbmVgYCBvYmplY3RzIGFyZSByZXByZXNlbnRlZAogICAgaGVyZS4gIERlZmluZXMgdGhlIGBgRW5naW5lU3RyYXRlZ3lgYCBjbGFzcyB3aGljaCByZXByZXNlbnRzIGhvdwogICAgdG8gZ28gZnJvbSBhcmd1bWVudHMgc3BlY2lmaWVkIHRvIHRoZSBgYGNyZWF0ZV9lbmdpbmUoKWBgCiAgICBmdW5jdGlvbiwgdG8gYSBmdWxseSBjb25zdHJ1Y3RlZCBgYEVuZ2luZWBgLCBpbmNsdWRpbmcKICAgIGluaXRpYWxpemF0aW9uIG9mIGNvbm5lY3Rpb24gcG9vbGluZywgZGlhbGVjdHMsIGFuZCBzcGVjaWZpYwogICAgc3ViY2xhc3NlcyBvZiBgYEVuZ2luZWBgLgoKdGhyZWFkbG9jYWwucHkKICAgIFRoZSBgYFRMRW5naW5lYGAgY2xhc3MgaXMgZGVmaW5lZCBoZXJlLCB3aGljaCBpcyBhIHN1YmNsYXNzIG9mCiAgICB0aGUgZ2VuZXJpYyBgYEVuZ2luZWBgIGFuZCB0cmFja3MgYGBDb25uZWN0aW9uYGAgYW5kCiAgICBgYFRyYW5zYWN0aW9uYGAgb2JqZWN0cyBhZ2FpbnN0IHRoZSBpZGVudGl0eSBvZiB0aGUgY3VycmVudAogICAgdGhyZWFkLiAgVGhpcyBhbGxvd3MgY2VydGFpbiBwcm9ncmFtbWluZyBwYXR0ZXJucyBiYXNlZCBhcm91bmQKICAgIHRoZSBjb25jZXB0IG9mIGEgInRocmVhZC1sb2NhbCBjb25uZWN0aW9uIiB0byBiZSBwb3NzaWJsZS4KICAgIFRoZSBgYFRMRW5naW5lYGAgaXMgY3JlYXRlZCBieSB1c2luZyB0aGUgInRocmVhZGxvY2FsIiBlbmdpbmUKICAgIHN0cmF0ZWd5IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIGBgY3JlYXRlX2VuZ2luZSgpYGAgZnVuY3Rpb24uCgp1cmwucHkKICAgIERlZmluZXMgdGhlIGBgVVJMYGAgY2xhc3Mgd2hpY2ggcmVwcmVzZW50cyB0aGUgaW5kaXZpZHVhbAogICAgY29tcG9uZW50cyBvZiBhIHN0cmluZyBVUkwgcGFzc2VkIHRvIGBgY3JlYXRlX2VuZ2luZSgpYGAuICBBbHNvCiAgICBkZWZpbmVzIGEgYmFzaWMgbW9kdWxlLWxvYWRpbmcgc3RyYXRlZ3kgZm9yIHRoZSBkaWFsZWN0IHNwZWNpZmllcgogICAgd2l0aGluIGEgVVJMLgrpAQAAACkB2gpzdHJhdGVnaWVzKQHaBHV0aWwpAdoKQ29ubmVjdGlvbikB2gZFbmdpbmUpAdoRTmVzdGVkVHJhbnNhY3Rpb24pAdoPUm9vdFRyYW5zYWN0aW9uKQHaC1RyYW5zYWN0aW9uKQHaE1R3b1BoYXNlVHJhbnNhY3Rpb24pAdoIQ29tcGlsZWQpAdoLQ29ubmVjdGFibGUpAdoSQ3JlYXRlRW5naW5lUGx1Z2luKQHaB0RpYWxlY3QpAdoQRXhjZXB0aW9uQ29udGV4dCkB2hBFeGVjdXRpb25Db250ZXh0KQHaDFR5cGVDb21waWxlcikB2gxCYXNlUm93UHJveHkpAdoZQnVmZmVyZWRDb2x1bW5SZXN1bHRQcm94eSkB2hFCdWZmZXJlZENvbHVtblJvdykB2hZCdWZmZXJlZFJvd1Jlc3VsdFByb3h5KQHaGEZ1bGx5QnVmZmVyZWRSZXN1bHRQcm94eSkB2gtSZXN1bHRQcm94eSkB2ghSb3dQcm94eSkB2hJjb25uZWN0aW9uX21lbW9pemXpAgAAACkB2gNkZGzaBXBsYWluYwAAAAAAAAAAAwAAAAQAAABPAAAAcyIAAAB8AaAAZAF0AaECfQJ0AmoCfAIZAH0CfAJqA3wAfAGOAVMAKQJhOUAAAENyZWF0ZSBhIG5ldyA6Y2xhc3M6YC5FbmdpbmVgIGluc3RhbmNlLgoKICAgIFRoZSBzdGFuZGFyZCBjYWxsaW5nIGZvcm0gaXMgdG8gc2VuZCB0aGUgVVJMIGFzIHRoZQogICAgZmlyc3QgcG9zaXRpb25hbCBhcmd1bWVudCwgdXN1YWxseSBhIHN0cmluZwogICAgdGhhdCBpbmRpY2F0ZXMgZGF0YWJhc2UgZGlhbGVjdCBhbmQgY29ubmVjdGlvbiBhcmd1bWVudHM6OgoKCiAgICAgICAgZW5naW5lID0gY3JlYXRlX2VuZ2luZSgicG9zdGdyZXNxbDovL3Njb3R0OnRpZ2VyQGxvY2FsaG9zdC90ZXN0IikKCiAgICBBZGRpdGlvbmFsIGtleXdvcmQgYXJndW1lbnRzIG1heSB0aGVuIGZvbGxvdyBpdCB3aGljaAogICAgZXN0YWJsaXNoIHZhcmlvdXMgb3B0aW9ucyBvbiB0aGUgcmVzdWx0aW5nIDpjbGFzczpgLkVuZ2luZWAKICAgIGFuZCBpdHMgdW5kZXJseWluZyA6Y2xhc3M6YC5EaWFsZWN0YCBhbmQgOmNsYXNzOmAuUG9vbGAKICAgIGNvbnN0cnVjdHM6OgoKICAgICAgICBlbmdpbmUgPSBjcmVhdGVfZW5naW5lKCJteXNxbDovL3Njb3R0OnRpZ2VyQGhvc3RuYW1lL2RibmFtZSIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuY29kaW5nPSdsYXRpbjEnLCBlY2hvPVRydWUpCgogICAgVGhlIHN0cmluZyBmb3JtIG9mIHRoZSBVUkwgaXMKICAgIGBgZGlhbGVjdFsrZHJpdmVyXTovL3VzZXI6cGFzc3dvcmRAaG9zdC9kYm5hbWVbP2tleT12YWx1ZS4uXWBgLCB3aGVyZQogICAgYGBkaWFsZWN0YGAgaXMgYSBkYXRhYmFzZSBuYW1lIHN1Y2ggYXMgYGBteXNxbGBgLCBgYG9yYWNsZWBgLAogICAgYGBwb3N0Z3Jlc3FsYGAsIGV0Yy4sIGFuZCBgYGRyaXZlcmBgIHRoZSBuYW1lIG9mIGEgREJBUEksIHN1Y2ggYXMKICAgIGBgcHN5Y29wZzJgYCwgYGBweW9kYmNgYCwgYGBjeF9vcmFjbGVgYCwgZXRjLiAgQWx0ZXJuYXRpdmVseSwKICAgIHRoZSBVUkwgY2FuIGJlIGFuIGluc3RhbmNlIG9mIDpjbGFzczpgfnNxbGFsY2hlbXkuZW5naW5lLnVybC5VUkxgLgoKICAgIGBgKiprd2FyZ3NgYCB0YWtlcyBhIHdpZGUgdmFyaWV0eSBvZiBvcHRpb25zIHdoaWNoIGFyZSByb3V0ZWQKICAgIHRvd2FyZHMgdGhlaXIgYXBwcm9wcmlhdGUgY29tcG9uZW50cy4gIEFyZ3VtZW50cyBtYXkgYmUgc3BlY2lmaWMgdG8KICAgIHRoZSA6Y2xhc3M6YC5FbmdpbmVgLCB0aGUgdW5kZXJseWluZyA6Y2xhc3M6YC5EaWFsZWN0YCwgYXMgd2VsbCBhcyB0aGUKICAgIDpjbGFzczpgLlBvb2xgLiAgU3BlY2lmaWMgZGlhbGVjdHMgYWxzbyBhY2NlcHQga2V5d29yZCBhcmd1bWVudHMgdGhhdAogICAgYXJlIHVuaXF1ZSB0byB0aGF0IGRpYWxlY3QuICAgSGVyZSwgd2UgZGVzY3JpYmUgdGhlIHBhcmFtZXRlcnMKICAgIHRoYXQgYXJlIGNvbW1vbiB0byBtb3N0IDpmdW5jOmAuY3JlYXRlX2VuZ2luZSgpYCB1c2FnZS4KCiAgICBPbmNlIGVzdGFibGlzaGVkLCB0aGUgbmV3bHkgcmVzdWx0aW5nIDpjbGFzczpgLkVuZ2luZWAgd2lsbAogICAgcmVxdWVzdCBhIGNvbm5lY3Rpb24gZnJvbSB0aGUgdW5kZXJseWluZyA6Y2xhc3M6YC5Qb29sYCBvbmNlCiAgICA6bWV0aDpgLkVuZ2luZS5jb25uZWN0YCBpcyBjYWxsZWQsIG9yIGEgbWV0aG9kIHdoaWNoIGRlcGVuZHMgb24gaXQKICAgIHN1Y2ggYXMgOm1ldGg6YC5FbmdpbmUuZXhlY3V0ZWAgaXMgaW52b2tlZC4gICBUaGUgOmNsYXNzOmAuUG9vbGAgaW4gdHVybgogICAgd2lsbCBlc3RhYmxpc2ggdGhlIGZpcnN0IGFjdHVhbCBEQkFQSSBjb25uZWN0aW9uIHdoZW4gdGhpcyByZXF1ZXN0CiAgICBpcyByZWNlaXZlZC4gICBUaGUgOmZ1bmM6YC5jcmVhdGVfZW5naW5lYCBjYWxsIGl0c2VsZiBkb2VzICoqbm90KioKICAgIGVzdGFibGlzaCBhbnkgYWN0dWFsIERCQVBJIGNvbm5lY3Rpb25zIGRpcmVjdGx5LgoKICAgIC4uIHNlZWFsc286OgoKICAgICAgICA6ZG9jOmAvY29yZS9lbmdpbmVzYAoKICAgICAgICA6ZG9jOmAvZGlhbGVjdHMvaW5kZXhgCgogICAgICAgIDpyZWY6YGNvbm5lY3Rpb25zX3RvcGxldmVsYAoKICAgIDpwYXJhbSBjYXNlX3NlbnNpdGl2ZT1UcnVlOiBpZiBGYWxzZSwgcmVzdWx0IGNvbHVtbiBuYW1lcwogICAgICAgd2lsbCBtYXRjaCBpbiBhIGNhc2UtaW5zZW5zaXRpdmUgZmFzaGlvbiwgdGhhdCBpcywKICAgICAgIGBgcm93WydTb21lQ29sdW1uJ11gYC4KCiAgICA6cGFyYW0gY29ubmVjdF9hcmdzOiBhIGRpY3Rpb25hcnkgb2Ygb3B0aW9ucyB3aGljaCB3aWxsIGJlCiAgICAgICAgcGFzc2VkIGRpcmVjdGx5IHRvIHRoZSBEQkFQSSdzIGBgY29ubmVjdCgpYGAgbWV0aG9kIGFzCiAgICAgICAgYWRkaXRpb25hbCBrZXl3b3JkIGFyZ3VtZW50cy4gIFNlZSB0aGUgZXhhbXBsZQogICAgICAgIGF0IDpyZWY6YGN1c3RvbV9kYmFwaV9hcmdzYC4KCiAgICA6cGFyYW0gY29udmVydF91bmljb2RlPUZhbHNlOiBpZiBzZXQgdG8gVHJ1ZSwgY2F1c2VzCiAgICAgICAgYWxsIDpjbGFzczpgLlN0cmluZ2AgZGF0YXR5cGVzIHRvIGFjdCBhcyB0aG91Z2ggdGhlCiAgICAgICAgOnBhcmFtcmVmOmAuU3RyaW5nLmNvbnZlcnRfdW5pY29kZWAgZmxhZyBoYXMgYmVlbiBzZXQgdG8gYGBUcnVlYGAsCiAgICAgICAgcmVnYXJkbGVzcyBvZiBhIHNldHRpbmcgb2YgYGBGYWxzZWBgIG9uIGFuIGluZGl2aWR1YWwgOmNsYXNzOmAuU3RyaW5nYAogICAgICAgIHR5cGUuICBUaGlzIGhhcyB0aGUgZWZmZWN0IG9mIGNhdXNpbmcgYWxsIDpjbGFzczpgLlN0cmluZ2AgLWJhc2VkCiAgICAgICAgY29sdW1ucyB0byBhY2NvbW1vZGF0ZSBQeXRob24gVW5pY29kZSBvYmplY3RzIGRpcmVjdGx5IGFzIHRob3VnaCB0aGUKICAgICAgICBkYXRhdHlwZSB3ZXJlIHRoZSA6Y2xhc3M6YC5Vbmljb2RlYCB0eXBlLgoKICAgICAgICAuLiBkZXByZWNhdGVkOjogMS4zCgogICAgICAgICAgICBUaGUgOnBhcmFtcmVmOmAuY3JlYXRlX2VuZ2luZS5jb252ZXJ0X3VuaWNvZGVgIHBhcmFtZXRlcgogICAgICAgICAgICBpcyBkZXByZWNhdGVkIGFuZCB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgcmVsZWFzZS4KICAgICAgICAgICAgQWxsIG1vZGVybiBEQkFQSXMgbm93IHN1cHBvcnQgUHl0aG9uIFVuaWNvZGUgZGlyZWN0bHkgYW5kIHRoaXMKICAgICAgICAgICAgcGFyYW1ldGVyIGlzIHVubmVjZXNzYXJ5LgoKICAgIDpwYXJhbSBjcmVhdG9yOiBhIGNhbGxhYmxlIHdoaWNoIHJldHVybnMgYSBEQkFQSSBjb25uZWN0aW9uLgogICAgICAgIFRoaXMgY3JlYXRpb24gZnVuY3Rpb24gd2lsbCBiZSBwYXNzZWQgdG8gdGhlIHVuZGVybHlpbmcKICAgICAgICBjb25uZWN0aW9uIHBvb2wgYW5kIHdpbGwgYmUgdXNlZCB0byBjcmVhdGUgYWxsIG5ldyBkYXRhYmFzZQogICAgICAgIGNvbm5lY3Rpb25zLiBVc2FnZSBvZiB0aGlzIGZ1bmN0aW9uIGNhdXNlcyBjb25uZWN0aW9uCiAgICAgICAgcGFyYW1ldGVycyBzcGVjaWZpZWQgaW4gdGhlIFVSTCBhcmd1bWVudCB0byBiZSBieXBhc3NlZC4KCiAgICA6cGFyYW0gZWNobz1GYWxzZTogaWYgVHJ1ZSwgdGhlIEVuZ2luZSB3aWxsIGxvZyBhbGwgc3RhdGVtZW50cwogICAgICAgIGFzIHdlbGwgYXMgYSBgYHJlcHIoKWBgIG9mIHRoZWlyIHBhcmFtZXRlciBsaXN0cyB0byB0aGUgZGVmYXVsdCBsb2cKICAgICAgICBoYW5kbGVyLCB3aGljaCBkZWZhdWx0cyB0byBgYHN5cy5zdGRvdXRgYCBmb3Igb3V0cHV0LiAgIElmIHNldCB0byB0aGUKICAgICAgICBzdHJpbmcgYGAiZGVidWciYGAsIHJlc3VsdCByb3dzIHdpbGwgYmUgcHJpbnRlZCB0byB0aGUgc3RhbmRhcmQgb3V0cHV0CiAgICAgICAgYXMgd2VsbC4gVGhlIGBgZWNob2BgIGF0dHJpYnV0ZSBvZiBgYEVuZ2luZWBgIGNhbiBiZSBtb2RpZmllZCBhdCBhbnkKICAgICAgICB0aW1lIHRvIHR1cm4gbG9nZ2luZyBvbiBhbmQgb2ZmOyBkaXJlY3QgY29udHJvbCBvZiBsb2dnaW5nIGlzIGFsc28KICAgICAgICBhdmFpbGFibGUgdXNpbmcgdGhlIHN0YW5kYXJkIFB5dGhvbiBgYGxvZ2dpbmdgYCBtb2R1bGUuCgogICAgICAgIC4uIHNlZWFsc286OgoKICAgICAgICAgICAgOnJlZjpgZGJlbmdpbmVfbG9nZ2luZ2AgLSBmdXJ0aGVyIGRldGFpbCBvbiBob3cgdG8gY29uZmlndXJlCiAgICAgICAgICAgIGxvZ2dpbmcuCgogICAgOnBhcmFtIGVjaG9fcG9vbD1GYWxzZTogaWYgVHJ1ZSwgdGhlIGNvbm5lY3Rpb24gcG9vbCB3aWxsIGxvZwogICAgICAgIGluZm9ybWF0aW9uYWwgb3V0cHV0IHN1Y2ggYXMgd2hlbiBjb25uZWN0aW9ucyBhcmUgaW52YWxpZGF0ZWQKICAgICAgICBhcyB3ZWxsIGFzIHdoZW4gY29ubmVjdGlvbnMgYXJlIHJlY3ljbGVkIHRvIHRoZSBkZWZhdWx0IGxvZyBoYW5kbGVyLAogICAgICAgIHdoaWNoIGRlZmF1bHRzIHRvIGBgc3lzLnN0ZG91dGBgIGZvciBvdXRwdXQuICAgSWYgc2V0IHRvIHRoZSBzdHJpbmcKICAgICAgICBgYCJkZWJ1ZyJgYCwgdGhlIGxvZ2dpbmcgd2lsbCBpbmNsdWRlIHBvb2wgY2hlY2tvdXRzIGFuZCBjaGVja2lucy4KICAgICAgICBEaXJlY3QgY29udHJvbCBvZiBsb2dnaW5nIGlzIGFsc28gYXZhaWxhYmxlIHVzaW5nIHRoZSBzdGFuZGFyZCBQeXRob24KICAgICAgICBgYGxvZ2dpbmdgYCBtb2R1bGUuCgogICAgICAgIC4uIHNlZWFsc286OgoKICAgICAgICAgICAgOnJlZjpgZGJlbmdpbmVfbG9nZ2luZ2AgLSBmdXJ0aGVyIGRldGFpbCBvbiBob3cgdG8gY29uZmlndXJlCiAgICAgICAgICAgIGxvZ2dpbmcuCgoKICAgIDpwYXJhbSBlbXB0eV9pbl9zdHJhdGVneTogIFRoZSBTUUwgY29tcGlsYXRpb24gc3RyYXRlZ3kgdG8gdXNlIHdoZW4KICAgICAgICByZW5kZXJpbmcgYW4gSU4gb3IgTk9UIElOIGV4cHJlc3Npb24gZm9yIDptZXRoOmAuQ29sdW1uT3BlcmF0b3JzLmluX2AKICAgICAgICB3aGVyZSB0aGUgcmlnaHQtaGFuZCBzaWRlCiAgICAgICAgaXMgYW4gZW1wdHkgc2V0LiAgIFRoaXMgaXMgYSBzdHJpbmcgdmFsdWUgdGhhdCBtYXkgYmUgb25lIG9mCiAgICAgICAgYGBzdGF0aWNgYCwgYGBkeW5hbWljYGAsIG9yIGBgZHluYW1pY193YXJuYGAuICAgVGhlIGBgc3RhdGljYGAKICAgICAgICBzdHJhdGVneSBpcyB0aGUgZGVmYXVsdCwgYW5kIGFuIElOIGNvbXBhcmlzb24gdG8gYW4gZW1wdHkgc2V0CiAgICAgICAgd2lsbCBnZW5lcmF0ZSBhIHNpbXBsZSBmYWxzZSBleHByZXNzaW9uICIxICE9IDEiLiAgIFRoZSBgYGR5bmFtaWNgYAogICAgICAgIHN0cmF0ZWd5IGJlaGF2ZXMgbGlrZSB0aGF0IG9mIFNRTEFsY2hlbXkgMS4xIGFuZCBlYXJsaWVyLCBlbWl0dGluZwogICAgICAgIGEgZmFsc2UgZXhwcmVzc2lvbiBvZiB0aGUgZm9ybSAiZXhwciAhPSBleHByIiwgd2hpY2ggaGFzIHRoZSBlZmZlY3QKICAgICAgICBvZiBldmFsdXRpbmcgdG8gTlVMTCBpbiB0aGUgY2FzZSBvZiBhIG51bGwgZXhwcmVzc2lvbi4KICAgICAgICBgYGR5bmFtaWNfd2FybmBgIGlzIHRoZSBzYW1lIGFzIGBgZHluYW1pY2BgLCBob3dldmVyIGFsc28gZW1pdHMgYQogICAgICAgIHdhcm5pbmcgd2hlbiBhbiBlbXB0eSBzZXQgaXMgZW5jb3VudGVyZWQ7IHRoaXMgYmVjYXVzZSB0aGUgImR5bmFtaWMiCiAgICAgICAgY29tcGFyaXNvbiBpcyB0eXBpY2FsbHkgcG9vcmx5IHBlcmZvcm1pbmcgb24gbW9zdCBkYXRhYmFzZXMuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMiAgQWRkZWQgdGhlIGBgZW1wdHlfaW5fc3RyYXRlZ3lgYCBzZXR0aW5nIGFuZAogICAgICAgICAgIGFkZGl0aW9uYWxseSBkZWZhdWx0ZWQgdGhlIGJlaGF2aW9yIGZvciBlbXB0eS1zZXQgSU4gY29tcGFyaXNvbnMKICAgICAgICAgICB0byBhIHN0YXRpYyBib29sZWFuIGV4cHJlc3Npb24uCgogICAgOnBhcmFtIGVuY29kaW5nOiBEZWZhdWx0cyB0byBgYHV0Zi04YGAuICBUaGlzIGlzIHRoZSBzdHJpbmcKICAgICAgICBlbmNvZGluZyB1c2VkIGJ5IFNRTEFsY2hlbXkgZm9yIHN0cmluZyBlbmNvZGUvZGVjb2RlCiAgICAgICAgb3BlcmF0aW9ucyB3aGljaCBvY2N1ciB3aXRoaW4gU1FMQWxjaGVteSwgKipvdXRzaWRlIG9mCiAgICAgICAgdGhlIERCQVBJLioqICBNb3N0IG1vZGVybiBEQkFQSXMgZmVhdHVyZSBzb21lIGRlZ3JlZSBvZgogICAgICAgIGRpcmVjdCBzdXBwb3J0IGZvciBQeXRob24gYGB1bmljb2RlYGAgb2JqZWN0cywKICAgICAgICB3aGF0IHlvdSBzZWUgaW4gUHl0aG9uIDIgYXMgYSBzdHJpbmcgb2YgdGhlIGZvcm0KICAgICAgICBgYHUnc29tZSBzdHJpbmcnYGAuICBGb3IgdGhvc2Ugc2NlbmFyaW9zIHdoZXJlIHRoZQogICAgICAgIERCQVBJIGlzIGRldGVjdGVkIGFzIG5vdCBzdXBwb3J0aW5nIGEgUHl0aG9uIGBgdW5pY29kZWBgCiAgICAgICAgb2JqZWN0LCB0aGlzIGVuY29kaW5nIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHRoZQogICAgICAgIHNvdXJjZS9kZXN0aW5hdGlvbiBlbmNvZGluZy4gIEl0IGlzICoqbm90IHVzZWQqKgogICAgICAgIGZvciB0aG9zZSBjYXNlcyB3aGVyZSB0aGUgREJBUEkgaGFuZGxlcyB1bmljb2RlCiAgICAgICAgZGlyZWN0bHkuCgogICAgICAgIFRvIHByb3Blcmx5IGNvbmZpZ3VyZSBhIHN5c3RlbSB0byBhY2NvbW1vZGF0ZSBQeXRob24KICAgICAgICBgYHVuaWNvZGVgYCBvYmplY3RzLCB0aGUgREJBUEkgc2hvdWxkIGJlCiAgICAgICAgY29uZmlndXJlZCB0byBoYW5kbGUgdW5pY29kZSB0byB0aGUgZ3JlYXRlc3QKICAgICAgICBkZWdyZWUgYXMgaXMgYXBwcm9wcmlhdGUgLSBzZWUKICAgICAgICB0aGUgbm90ZXMgb24gdW5pY29kZSBwZXJ0YWluaW5nIHRvIHRoZSBzcGVjaWZpYwogICAgICAgIHRhcmdldCBkYXRhYmFzZSBpbiB1c2UgYXQgOnJlZjpgZGlhbGVjdF90b3BsZXZlbGAuCgogICAgICAgIEFyZWFzIHdoZXJlIHN0cmluZyBlbmNvZGluZyBtYXkgbmVlZCB0byBiZSBhY2NvbW1vZGF0ZWQKICAgICAgICBvdXRzaWRlIG9mIHRoZSBEQkFQSSBpbmNsdWRlIHplcm8gb3IgbW9yZSBvZjoKCiAgICAgICAgKiB0aGUgdmFsdWVzIHBhc3NlZCB0byBib3VuZCBwYXJhbWV0ZXJzLCBjb3JyZXNwb25kaW5nIHRvCiAgICAgICAgICB0aGUgOmNsYXNzOmAuVW5pY29kZWAgdHlwZSBvciB0aGUgOmNsYXNzOmAuU3RyaW5nYCB0eXBlCiAgICAgICAgICB3aGVuIGBgY29udmVydF91bmljb2RlYGAgaXMgYGBUcnVlYGA7CiAgICAgICAgKiB0aGUgdmFsdWVzIHJldHVybmVkIGluIHJlc3VsdCBzZXQgY29sdW1ucyBjb3JyZXNwb25kaW5nCiAgICAgICAgICB0byB0aGUgOmNsYXNzOmAuVW5pY29kZWAgdHlwZSBvciB0aGUgOmNsYXNzOmAuU3RyaW5nYAogICAgICAgICAgdHlwZSB3aGVuIGBgY29udmVydF91bmljb2RlYGAgaXMgYGBUcnVlYGA7CiAgICAgICAgKiB0aGUgc3RyaW5nIFNRTCBzdGF0ZW1lbnQgcGFzc2VkIHRvIHRoZSBEQkFQSSdzCiAgICAgICAgICBgYGN1cnNvci5leGVjdXRlKClgYCBtZXRob2Q7CiAgICAgICAgKiB0aGUgc3RyaW5nIG5hbWVzIG9mIHRoZSBrZXlzIGluIHRoZSBib3VuZCBwYXJhbWV0ZXIKICAgICAgICAgIGRpY3Rpb25hcnkgcGFzc2VkIHRvIHRoZSBEQkFQSSdzIGBgY3Vyc29yLmV4ZWN1dGUoKWBgCiAgICAgICAgICBhcyB3ZWxsIGFzIGBgY3Vyc29yLnNldGlucHV0c2l6ZXMoKWBgIG1ldGhvZHM7CiAgICAgICAgKiB0aGUgc3RyaW5nIGNvbHVtbiBuYW1lcyByZXRyaWV2ZWQgZnJvbSB0aGUgREJBUEkncwogICAgICAgICAgYGBjdXJzb3IuZGVzY3JpcHRpb25gYCBhdHRyaWJ1dGUuCgogICAgICAgIFdoZW4gdXNpbmcgUHl0aG9uIDMsIHRoZSBEQkFQSSBpcyByZXF1aXJlZCB0byBzdXBwb3J0CiAgICAgICAgKmFsbCogb2YgdGhlIGFib3ZlIHZhbHVlcyBhcyBQeXRob24gYGB1bmljb2RlYGAgb2JqZWN0cywKICAgICAgICB3aGljaCBpbiBQeXRob24gMyBhcmUganVzdCBrbm93biBhcyBgYHN0cmBgLiAgSW4gUHl0aG9uIDIsCiAgICAgICAgdGhlIERCQVBJIGRvZXMgbm90IHNwZWNpZnkgdW5pY29kZSBiZWhhdmlvciBhdCBhbGwsCiAgICAgICAgc28gU1FMQWxjaGVteSBtdXN0IG1ha2UgZGVjaXNpb25zIGZvciBlYWNoIG9mIHRoZSBhYm92ZQogICAgICAgIHZhbHVlcyBvbiBhIHBlci1EQkFQSSBiYXNpcyAtIGltcGxlbWVudGF0aW9ucyBhcmUKICAgICAgICBjb21wbGV0ZWx5IGluY29uc2lzdGVudCBpbiB0aGVpciBiZWhhdmlvci4KCiAgICA6cGFyYW0gZXhlY3V0aW9uX29wdGlvbnM6IERpY3Rpb25hcnkgZXhlY3V0aW9uIG9wdGlvbnMgd2hpY2ggd2lsbAogICAgICAgIGJlIGFwcGxpZWQgdG8gYWxsIGNvbm5lY3Rpb25zLiAgU2VlCiAgICAgICAgOm1ldGg6YH5zcWxhbGNoZW15LmVuZ2luZS5Db25uZWN0aW9uLmV4ZWN1dGlvbl9vcHRpb25zYAoKICAgIDpwYXJhbSBpbXBsaWNpdF9yZXR1cm5pbmc9VHJ1ZTogV2hlbiBgYFRydWVgYCwgYSBSRVRVUk5JTkctCiAgICAgICAgY29tcGF0aWJsZSBjb25zdHJ1Y3QsIGlmIGF2YWlsYWJsZSwgd2lsbCBiZSB1c2VkIHRvCiAgICAgICAgZmV0Y2ggbmV3bHkgZ2VuZXJhdGVkIHByaW1hcnkga2V5IHZhbHVlcyB3aGVuIGEgc2luZ2xlIHJvdwogICAgICAgIElOU0VSVCBzdGF0ZW1lbnQgaXMgZW1pdHRlZCB3aXRoIG5vIGV4aXN0aW5nIHJldHVybmluZygpCiAgICAgICAgY2xhdXNlLiAgVGhpcyBhcHBsaWVzIHRvIHRob3NlIGJhY2tlbmRzIHdoaWNoIHN1cHBvcnQgUkVUVVJOSU5HCiAgICAgICAgb3IgYSBjb21wYXRpYmxlIGNvbnN0cnVjdCwgaW5jbHVkaW5nIFBvc3RncmVTUUwsIEZpcmViaXJkLCBPcmFjbGUsCiAgICAgICAgTWljcm9zb2Z0IFNRTCBTZXJ2ZXIuICAgU2V0IHRoaXMgdG8gYGBGYWxzZWBgIHRvIGRpc2FibGUKICAgICAgICB0aGUgYXV0b21hdGljIHVzYWdlIG9mIFJFVFVSTklORy4KCiAgICA6cGFyYW0gaXNvbGF0aW9uX2xldmVsOiB0aGlzIHN0cmluZyBwYXJhbWV0ZXIgaXMgaW50ZXJwcmV0ZWQgYnkgdmFyaW91cwogICAgICAgIGRpYWxlY3RzIGluIG9yZGVyIHRvIGFmZmVjdCB0aGUgdHJhbnNhY3Rpb24gaXNvbGF0aW9uIGxldmVsIG9mIHRoZQogICAgICAgIGRhdGFiYXNlIGNvbm5lY3Rpb24uICAgVGhlIHBhcmFtZXRlciBlc3NlbnRpYWxseSBhY2NlcHRzIHNvbWUgc3Vic2V0IG9mCiAgICAgICAgdGhlc2Ugc3RyaW5nIGFyZ3VtZW50czogYGAiU0VSSUFMSVpBQkxFImBgLCBgYCJSRVBFQVRBQkxFX1JFQUQiYGAsCiAgICAgICAgYGAiUkVBRF9DT01NSVRURUQiYGAsIGBgIlJFQURfVU5DT01NSVRURUQiYGAgYW5kIGBgIkFVVE9DT01NSVQiYGAuCiAgICAgICAgQmVoYXZpb3IgaGVyZSB2YXJpZXMgcGVyIGJhY2tlbmQsIGFuZAogICAgICAgIGluZGl2aWR1YWwgZGlhbGVjdHMgc2hvdWxkIGJlIGNvbnN1bHRlZCBkaXJlY3RseS4KCiAgICAgICAgTm90ZSB0aGF0IHRoZSBpc29sYXRpb24gbGV2ZWwgY2FuIGFsc28gYmUgc2V0IG9uIGEKICAgICAgICBwZXItOmNsYXNzOmAuQ29ubmVjdGlvbmAgYmFzaXMgYXMgd2VsbCwgdXNpbmcgdGhlCiAgICAgICAgOnBhcmFtcmVmOmAuQ29ubmVjdGlvbi5leGVjdXRpb25fb3B0aW9ucy5pc29sYXRpb25fbGV2ZWxgCiAgICAgICAgZmVhdHVyZS4KCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6YXR0cjpgLkNvbm5lY3Rpb24uZGVmYXVsdF9pc29sYXRpb25fbGV2ZWxgIC0gdmlldyBkZWZhdWx0IGxldmVsCgogICAgICAgICAgICA6cGFyYW1yZWY6YC5Db25uZWN0aW9uLmV4ZWN1dGlvbl9vcHRpb25zLmlzb2xhdGlvbl9sZXZlbGAKICAgICAgICAgICAgLSBzZXQgcGVyIDpjbGFzczpgLkNvbm5lY3Rpb25gIGlzb2xhdGlvbiBsZXZlbAoKICAgICAgICAgICAgOnJlZjpgU1FMaXRlIFRyYW5zYWN0aW9uIElzb2xhdGlvbiA8c3FsaXRlX2lzb2xhdGlvbl9sZXZlbD5gCgogICAgICAgICAgICA6cmVmOmBQb3N0Z3JlU1FMIFRyYW5zYWN0aW9uIElzb2xhdGlvbiA8cG9zdGdyZXNxbF9pc29sYXRpb25fbGV2ZWw+YAoKICAgICAgICAgICAgOnJlZjpgTXlTUUwgVHJhbnNhY3Rpb24gSXNvbGF0aW9uIDxteXNxbF9pc29sYXRpb25fbGV2ZWw+YAoKICAgICAgICAgICAgOnJlZjpgc2Vzc2lvbl90cmFuc2FjdGlvbl9pc29sYXRpb25gIC0gZm9yIHRoZSBPUk0KCiAgICA6cGFyYW0gbGFiZWxfbGVuZ3RoPU5vbmU6IG9wdGlvbmFsIGludGVnZXIgdmFsdWUgd2hpY2ggbGltaXRzCiAgICAgICAgdGhlIHNpemUgb2YgZHluYW1pY2FsbHkgZ2VuZXJhdGVkIGNvbHVtbiBsYWJlbHMgdG8gdGhhdCBtYW55CiAgICAgICAgY2hhcmFjdGVycy4gSWYgbGVzcyB0aGFuIDYsIGxhYmVscyBhcmUgZ2VuZXJhdGVkIGFzCiAgICAgICAgIl8oY291bnRlcikiLiBJZiBgYE5vbmVgYCwgdGhlIHZhbHVlIG9mCiAgICAgICAgYGBkaWFsZWN0Lm1heF9pZGVudGlmaWVyX2xlbmd0aGBgIGlzIHVzZWQgaW5zdGVhZC4KCiAgICA6cGFyYW0gbGlzdGVuZXJzOiBBIGxpc3Qgb2Ygb25lIG9yIG1vcmUKICAgICAgICA6Y2xhc3M6YH5zcWxhbGNoZW15LmludGVyZmFjZXMuUG9vbExpc3RlbmVyYCBvYmplY3RzIHdoaWNoIHdpbGwKICAgICAgICByZWNlaXZlIGNvbm5lY3Rpb24gcG9vbCBldmVudHMuCgogICAgOnBhcmFtIGxvZ2dpbmdfbmFtZTogIFN0cmluZyBpZGVudGlmaWVyIHdoaWNoIHdpbGwgYmUgdXNlZCB3aXRoaW4KICAgICAgICB0aGUgIm5hbWUiIGZpZWxkIG9mIGxvZ2dpbmcgcmVjb3JkcyBnZW5lcmF0ZWQgd2l0aGluIHRoZQogICAgICAgICJzcWxhbGNoZW15LmVuZ2luZSIgbG9nZ2VyLiBEZWZhdWx0cyB0byBhIGhleHN0cmluZyBvZiB0aGUKICAgICAgICBvYmplY3QncyBpZC4KCiAgICA6cGFyYW0gbWF4X292ZXJmbG93PTEwOiB0aGUgbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHRvIGFsbG93IGluCiAgICAgICAgY29ubmVjdGlvbiBwb29sICJvdmVyZmxvdyIsIHRoYXQgaXMgY29ubmVjdGlvbnMgdGhhdCBjYW4gYmUKICAgICAgICBvcGVuZWQgYWJvdmUgYW5kIGJleW9uZCB0aGUgcG9vbF9zaXplIHNldHRpbmcsIHdoaWNoIGRlZmF1bHRzCiAgICAgICAgdG8gZml2ZS4gdGhpcyBpcyBvbmx5IHVzZWQgd2l0aCA6Y2xhc3M6YH5zcWxhbGNoZW15LnBvb2wuUXVldWVQb29sYC4KCiAgICA6cGFyYW0gbW9kdWxlPU5vbmU6IHJlZmVyZW5jZSB0byBhIFB5dGhvbiBtb2R1bGUgb2JqZWN0ICh0aGUgbW9kdWxlCiAgICAgICAgaXRzZWxmLCBub3QgaXRzIHN0cmluZyBuYW1lKS4gIFNwZWNpZmllcyBhbiBhbHRlcm5hdGUgREJBUEkgbW9kdWxlIHRvCiAgICAgICAgYmUgdXNlZCBieSB0aGUgZW5naW5lJ3MgZGlhbGVjdC4gIEVhY2ggc3ViLWRpYWxlY3QgcmVmZXJlbmNlcyBhCiAgICAgICAgc3BlY2lmaWMgREJBUEkgd2hpY2ggd2lsbCBiZSBpbXBvcnRlZCBiZWZvcmUgZmlyc3QgY29ubmVjdC4gIFRoaXMKICAgICAgICBwYXJhbWV0ZXIgY2F1c2VzIHRoZSBpbXBvcnQgdG8gYmUgYnlwYXNzZWQsIGFuZCB0aGUgZ2l2ZW4gbW9kdWxlIHRvCiAgICAgICAgYmUgdXNlZCBpbnN0ZWFkLiBDYW4gYmUgdXNlZCBmb3IgdGVzdGluZyBvZiBEQkFQSXMgYXMgd2VsbCBhcyB0bwogICAgICAgIGluamVjdCAibW9jayIgREJBUEkgaW1wbGVtZW50YXRpb25zIGludG8gdGhlIDpjbGFzczpgLkVuZ2luZWAuCgogICAgOnBhcmFtIHBhcmFtc3R5bGU9Tm9uZTogVGhlIGBwYXJhbXN0eWxlIDxodHRwOi8vbGVnYWN5LnB5dGhvbi5vcmcvZGV2L3BlcHMvcGVwLTAyNDkvI3BhcmFtc3R5bGU+YF8KICAgICAgICB0byB1c2Ugd2hlbiByZW5kZXJpbmcgYm91bmQgcGFyYW1ldGVycy4gIFRoaXMgc3R5bGUgZGVmYXVsdHMgdG8gdGhlCiAgICAgICAgb25lIHJlY29tbWVuZGVkIGJ5IHRoZSBEQkFQSSBpdHNlbGYsIHdoaWNoIGlzIHJldHJpZXZlZCBmcm9tIHRoZQogICAgICAgIGBgLnBhcmFtc3R5bGVgYCBhdHRyaWJ1dGUgb2YgdGhlIERCQVBJLiAgSG93ZXZlciwgbW9zdCBEQkFQSXMgYWNjZXB0CiAgICAgICAgbW9yZSB0aGFuIG9uZSBwYXJhbXN0eWxlLCBhbmQgaW4gcGFydGljdWxhciBpdCBtYXkgYmUgZGVzaXJhYmxlCiAgICAgICAgdG8gY2hhbmdlIGEgIm5hbWVkIiBwYXJhbXN0eWxlIGludG8gYSAicG9zaXRpb25hbCIgb25lLCBvciB2aWNlIHZlcnNhLgogICAgICAgIFdoZW4gdGhpcyBhdHRyaWJ1dGUgaXMgcGFzc2VkLCBpdCBzaG91bGQgYmUgb25lIG9mIHRoZSB2YWx1ZXMKICAgICAgICBgYCJxbWFyayJgYCwgYGAibnVtZXJpYyJgYCwgYGAibmFtZWQiYGAsIGBgImZvcm1hdCJgYCBvcgogICAgICAgIGBgInB5Zm9ybWF0ImBgLCBhbmQgc2hvdWxkIGNvcnJlc3BvbmQgdG8gYSBwYXJhbWV0ZXIgc3R5bGUga25vd24KICAgICAgICB0byBiZSBzdXBwb3J0ZWQgYnkgdGhlIERCQVBJIGluIHVzZS4KCiAgICA6cGFyYW0gcG9vbD1Ob25lOiBhbiBhbHJlYWR5LWNvbnN0cnVjdGVkIGluc3RhbmNlIG9mCiAgICAgICAgOmNsYXNzOmB+c3FsYWxjaGVteS5wb29sLlBvb2xgLCBzdWNoIGFzIGEKICAgICAgICA6Y2xhc3M6YH5zcWxhbGNoZW15LnBvb2wuUXVldWVQb29sYCBpbnN0YW5jZS4gSWYgbm9uLU5vbmUsIHRoaXMKICAgICAgICBwb29sIHdpbGwgYmUgdXNlZCBkaXJlY3RseSBhcyB0aGUgdW5kZXJseWluZyBjb25uZWN0aW9uIHBvb2wKICAgICAgICBmb3IgdGhlIGVuZ2luZSwgYnlwYXNzaW5nIHdoYXRldmVyIGNvbm5lY3Rpb24gcGFyYW1ldGVycyBhcmUKICAgICAgICBwcmVzZW50IGluIHRoZSBVUkwgYXJndW1lbnQuIEZvciBpbmZvcm1hdGlvbiBvbiBjb25zdHJ1Y3RpbmcKICAgICAgICBjb25uZWN0aW9uIHBvb2xzIG1hbnVhbGx5LCBzZWUgOnJlZjpgcG9vbGluZ190b3BsZXZlbGAuCgogICAgOnBhcmFtIHBvb2xjbGFzcz1Ob25lOiBhIDpjbGFzczpgfnNxbGFsY2hlbXkucG9vbC5Qb29sYAogICAgICAgIHN1YmNsYXNzLCB3aGljaCB3aWxsIGJlIHVzZWQgdG8gY3JlYXRlIGEgY29ubmVjdGlvbiBwb29sCiAgICAgICAgaW5zdGFuY2UgdXNpbmcgdGhlIGNvbm5lY3Rpb24gcGFyYW1ldGVycyBnaXZlbiBpbiB0aGUgVVJMLiBOb3RlCiAgICAgICAgdGhpcyBkaWZmZXJzIGZyb20gYGBwb29sYGAgaW4gdGhhdCB5b3UgZG9uJ3QgYWN0dWFsbHkKICAgICAgICBpbnN0YW50aWF0ZSB0aGUgcG9vbCBpbiB0aGlzIGNhc2UsIHlvdSBqdXN0IGluZGljYXRlIHdoYXQgdHlwZQogICAgICAgIG9mIHBvb2wgdG8gYmUgdXNlZC4KCiAgICA6cGFyYW0gcG9vbF9sb2dnaW5nX25hbWU6ICBTdHJpbmcgaWRlbnRpZmllciB3aGljaCB3aWxsIGJlIHVzZWQgd2l0aGluCiAgICAgICB0aGUgIm5hbWUiIGZpZWxkIG9mIGxvZ2dpbmcgcmVjb3JkcyBnZW5lcmF0ZWQgd2l0aGluIHRoZQogICAgICAgInNxbGFsY2hlbXkucG9vbCIgbG9nZ2VyLiBEZWZhdWx0cyB0byBhIGhleHN0cmluZyBvZiB0aGUgb2JqZWN0J3MKICAgICAgIGlkLgoKICAgIDpwYXJhbSBwb29sX3ByZV9waW5nOiBib29sZWFuLCBpZiBUcnVlIHdpbGwgZW5hYmxlIHRoZSBjb25uZWN0aW9uIHBvb2wKICAgICAgICAicHJlLXBpbmciIGZlYXR1cmUgdGhhdCB0ZXN0cyBjb25uZWN0aW9ucyBmb3IgbGl2ZW5lc3MgdXBvbgogICAgICAgIGVhY2ggY2hlY2tvdXQuCgogICAgICAgIC4uIHZlcnNpb25hZGRlZDo6IDEuMgoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDpyZWY6YHBvb2xfZGlzY29ubmVjdHNfcGVzc2ltaXN0aWNgCgogICAgOnBhcmFtIHBvb2xfc2l6ZT01OiB0aGUgbnVtYmVyIG9mIGNvbm5lY3Rpb25zIHRvIGtlZXAgb3BlbgogICAgICAgIGluc2lkZSB0aGUgY29ubmVjdGlvbiBwb29sLiBUaGlzIHVzZWQgd2l0aAogICAgICAgIDpjbGFzczpgfnNxbGFsY2hlbXkucG9vbC5RdWV1ZVBvb2xgIGFzCiAgICAgICAgd2VsbCBhcyA6Y2xhc3M6YH5zcWxhbGNoZW15LnBvb2wuU2luZ2xldG9uVGhyZWFkUG9vbGAuICBXaXRoCiAgICAgICAgOmNsYXNzOmB+c3FsYWxjaGVteS5wb29sLlF1ZXVlUG9vbGAsIGEgYGBwb29sX3NpemVgYCBzZXR0aW5nCiAgICAgICAgb2YgMCBpbmRpY2F0ZXMgbm8gbGltaXQ7IHRvIGRpc2FibGUgcG9vbGluZywgc2V0IGBgcG9vbGNsYXNzYGAgdG8KICAgICAgICA6Y2xhc3M6YH5zcWxhbGNoZW15LnBvb2wuTnVsbFBvb2xgIGluc3RlYWQuCgogICAgOnBhcmFtIHBvb2xfcmVjeWNsZT0tMTogdGhpcyBzZXR0aW5nIGNhdXNlcyB0aGUgcG9vbCB0byByZWN5Y2xlCiAgICAgICAgY29ubmVjdGlvbnMgYWZ0ZXIgdGhlIGdpdmVuIG51bWJlciBvZiBzZWNvbmRzIGhhcyBwYXNzZWQuIEl0CiAgICAgICAgZGVmYXVsdHMgdG8gLTEsIG9yIG5vIHRpbWVvdXQuIEZvciBleGFtcGxlLCBzZXR0aW5nIHRvIDM2MDAKICAgICAgICBtZWFucyBjb25uZWN0aW9ucyB3aWxsIGJlIHJlY3ljbGVkIGFmdGVyIG9uZSBob3VyLiBOb3RlIHRoYXQKICAgICAgICBNeVNRTCBpbiBwYXJ0aWN1bGFyIHdpbGwgZGlzY29ubmVjdCBhdXRvbWF0aWNhbGx5IGlmIG5vCiAgICAgICAgYWN0aXZpdHkgaXMgZGV0ZWN0ZWQgb24gYSBjb25uZWN0aW9uIGZvciBlaWdodCBob3VycyAoYWx0aG91Z2gKICAgICAgICB0aGlzIGlzIGNvbmZpZ3VyYWJsZSB3aXRoIHRoZSBNeVNRTERCIGNvbm5lY3Rpb24gaXRzZWxmIGFuZCB0aGUKICAgICAgICBzZXJ2ZXIgY29uZmlndXJhdGlvbiBhcyB3ZWxsKS4KCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6cmVmOmBwb29sX3NldHRpbmdfcmVjeWNsZWAKCiAgICA6cGFyYW0gcG9vbF9yZXNldF9vbl9yZXR1cm49J3JvbGxiYWNrJzogc2V0IHRoZQogICAgICAgIDpwYXJhbXJlZjpgLlBvb2wucmVzZXRfb25fcmV0dXJuYCBwYXJhbWV0ZXIgb2YgdGhlIHVuZGVybHlpbmcKICAgICAgICA6Y2xhc3M6YC5Qb29sYCBvYmplY3QsIHdoaWNoIGNhbiBiZSBzZXQgdG8gdGhlIHZhbHVlcwogICAgICAgIGBgInJvbGxiYWNrImBgLCBgYCJjb21taXQiYGAsIG9yIGBgTm9uZWBgLgoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDpwYXJhbXJlZjpgLlBvb2wucmVzZXRfb25fcmV0dXJuYAoKICAgIDpwYXJhbSBwb29sX3RpbWVvdXQ9MzA6IG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgYmVmb3JlIGdpdmluZwogICAgICAgIHVwIG9uIGdldHRpbmcgYSBjb25uZWN0aW9uIGZyb20gdGhlIHBvb2wuIFRoaXMgaXMgb25seSB1c2VkCiAgICAgICAgd2l0aCA6Y2xhc3M6YH5zcWxhbGNoZW15LnBvb2wuUXVldWVQb29sYC4KCiAgICA6cGFyYW0gcG9vbF91c2VfbGlmbz1GYWxzZTogdXNlIExJRk8gKGxhc3QtaW4tZmlyc3Qtb3V0KSB3aGVuIHJldHJpZXZpbmcKICAgICAgICBjb25uZWN0aW9ucyBmcm9tIDpjbGFzczpgLlF1ZXVlUG9vbGAgaW5zdGVhZCBvZiBGSUZPCiAgICAgICAgKGZpcnN0LWluLWZpcnN0LW91dCkuIFVzaW5nIExJRk8sIGEgc2VydmVyLXNpZGUgdGltZW91dCBzY2hlbWUgY2FuCiAgICAgICAgcmVkdWNlIHRoZSBudW1iZXIgb2YgY29ubmVjdGlvbnMgdXNlZCBkdXJpbmcgbm9uLSBwZWFrICAgcGVyaW9kcyBvZgogICAgICAgIHVzZS4gICBXaGVuIHBsYW5uaW5nIGZvciBzZXJ2ZXItc2lkZSB0aW1lb3V0cywgZW5zdXJlIHRoYXQgYSByZWN5Y2xlIG9yCiAgICAgICAgcHJlLXBpbmcgc3RyYXRlZ3kgaXMgaW4gdXNlIHRvIGdyYWNlZnVsbHkgICBoYW5kbGUgc3RhbGUgY29ubmVjdGlvbnMuCgogICAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMS4zCgogICAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6cmVmOmBwb29sX3VzZV9saWZvYAoKICAgICAgICAgICAgOnJlZjpgcG9vbF9kaXNjb25uZWN0c2AKCiAgICA6cGFyYW0gcGx1Z2luczogc3RyaW5nIGxpc3Qgb2YgcGx1Z2luIG5hbWVzIHRvIGxvYWQuICBTZWUKICAgICAgICA6Y2xhc3M6YC5DcmVhdGVFbmdpbmVQbHVnaW5gIGZvciBiYWNrZ3JvdW5kLgoKICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjIuMwoKICAgIDpwYXJhbSBzdHJhdGVneT0ncGxhaW4nOiBzZWxlY3RzIGFsdGVybmF0ZSBlbmdpbmUgaW1wbGVtZW50YXRpb25zLgogICAgICAgIEN1cnJlbnRseSBhdmFpbGFibGUgYXJlOgoKICAgICAgICAqIHRoZSBgYHRocmVhZGxvY2FsYGAgc3RyYXRlZ3ksIHdoaWNoIGlzIGRlc2NyaWJlZCBpbgogICAgICAgICAgOnJlZjpgdGhyZWFkbG9jYWxfc3RyYXRlZ3lgOwogICAgICAgICogdGhlIGBgbW9ja2BgIHN0cmF0ZWd5LCB3aGljaCBkaXNwYXRjaGVzIGFsbCBzdGF0ZW1lbnQKICAgICAgICAgIGV4ZWN1dGlvbiB0byBhIGZ1bmN0aW9uIHBhc3NlZCBhcyB0aGUgYXJndW1lbnQgYGBleGVjdXRvcmBgLgogICAgICAgICAgU2VlIGBleGFtcGxlIGluIHRoZSBGQVEKICAgICAgICAgIDxodHRwOi8vZG9jcy5zcWxhbGNoZW15Lm9yZy9lbi9sYXRlc3QvZmFxL21ldGFkYXRhX3NjaGVtYS5odG1sI2hvdy1jYW4taS1nZXQtdGhlLWNyZWF0ZS10YWJsZS1kcm9wLXRhYmxlLW91dHB1dC1hcy1hLXN0cmluZz5gXy4KCiAgICA6cGFyYW0gZXhlY3V0b3I9Tm9uZTogYSBmdW5jdGlvbiB0YWtpbmcgYXJndW1lbnRzCiAgICAgICAgYGAoc3FsLCAqbXVsdGlwYXJhbXMsICoqcGFyYW1zKWBgLCB0byB3aGljaCB0aGUgYGBtb2NrYGAgc3RyYXRlZ3kgd2lsbAogICAgICAgIGRpc3BhdGNoIGFsbCBzdGF0ZW1lbnQgZXhlY3V0aW9uLiBVc2VkIG9ubHkgYnkgYGBzdHJhdGVneT0nbW9jaydgYC4KCiAgICDaCHN0cmF0ZWd5KQTaA3BvcNoQZGVmYXVsdF9zdHJhdGVneXICAAAA2gZjcmVhdGUpA9oEYXJnc9oGa3dhcmdzchwAAACpAHIiAAAA+k0vb3B0L2FsdC9weXRob24zNy9saWI2NC9weXRob24zLjcvc2l0ZS1wYWNrYWdlcy9zcWxhbGNoZW15L2VuZ2luZS9fX2luaXRfXy5wedoNY3JlYXRlX2VuZ2luZVUAAABzCgAAAAB/AH8AXgwBCgFyJAAAAPoLc3FsYWxjaGVteS5jAgAAAAAAAAAFAAAABAAAAAsAAABzQAAAAHQAhwCHAWYCZAFkAoQIiABEAIMBgwF9A2QDfANkBDwAfAOgAXwCoQEBAHwDoAJkBaEBfQR0A3wEZgF8A44BUwApBmF4BQAAQ3JlYXRlIGEgbmV3IEVuZ2luZSBpbnN0YW5jZSB1c2luZyBhIGNvbmZpZ3VyYXRpb24gZGljdGlvbmFyeS4KCiAgICBUaGUgZGljdGlvbmFyeSBpcyB0eXBpY2FsbHkgcHJvZHVjZWQgZnJvbSBhIGNvbmZpZyBmaWxlLgoKICAgIFRoZSBrZXlzIG9mIGludGVyZXN0IHRvIGBgZW5naW5lX2Zyb21fY29uZmlnKClgYCBzaG91bGQgYmUgcHJlZml4ZWQsIGUuZy4KICAgIGBgc3FsYWxjaGVteS51cmxgYCwgYGBzcWxhbGNoZW15LmVjaG9gYCwgZXRjLiAgVGhlICdwcmVmaXgnIGFyZ3VtZW50CiAgICBpbmRpY2F0ZXMgdGhlIHByZWZpeCB0byBiZSBzZWFyY2hlZCBmb3IuICBFYWNoIG1hdGNoaW5nIGtleSAoYWZ0ZXIgdGhlCiAgICBwcmVmaXggaXMgc3RyaXBwZWQpIGlzIHRyZWF0ZWQgYXMgdGhvdWdoIGl0IHdlcmUgdGhlIGNvcnJlc3BvbmRpbmcga2V5d29yZAogICAgYXJndW1lbnQgdG8gYSA6ZnVuYzpgLmNyZWF0ZV9lbmdpbmVgIGNhbGwuCgogICAgVGhlIG9ubHkgcmVxdWlyZWQga2V5IGlzIChhc3N1bWluZyB0aGUgZGVmYXVsdCBwcmVmaXgpIGBgc3FsYWxjaGVteS51cmxgYCwKICAgIHdoaWNoIHByb3ZpZGVzIHRoZSA6cmVmOmBkYXRhYmFzZSBVUkwgPGRhdGFiYXNlX3VybHM+YC4KCiAgICBBIHNlbGVjdCBzZXQgb2Yga2V5d29yZCBhcmd1bWVudHMgd2lsbCBiZSAiY29lcmNlZCIgdG8gdGhlaXIKICAgIGV4cGVjdGVkIHR5cGUgYmFzZWQgb24gc3RyaW5nIHZhbHVlcy4gICAgVGhlIHNldCBvZiBhcmd1bWVudHMKICAgIGlzIGV4dGVuc2libGUgcGVyLWRpYWxlY3QgdXNpbmcgdGhlIGBgZW5naW5lX2NvbmZpZ190eXBlc2BgIGFjY2Vzc29yLgoKICAgIDpwYXJhbSBjb25maWd1cmF0aW9uOiBBIGRpY3Rpb25hcnkgKHR5cGljYWxseSBwcm9kdWNlZCBmcm9tIGEgY29uZmlnIGZpbGUsCiAgICAgICAgYnV0IHRoaXMgaXMgbm90IGEgcmVxdWlyZW1lbnQpLiAgSXRlbXMgd2hvc2Uga2V5cyBzdGFydCB3aXRoIHRoZSB2YWx1ZQogICAgICAgIG9mICdwcmVmaXgnIHdpbGwgaGF2ZSB0aGF0IHByZWZpeCBzdHJpcHBlZCwgYW5kIHdpbGwgdGhlbiBiZSBwYXNzZWQgdG8KICAgICAgICA6cmVmOmBjcmVhdGVfZW5naW5lYC4KCiAgICA6cGFyYW0gcHJlZml4OiBQcmVmaXggdG8gbWF0Y2ggYW5kIHRoZW4gc3RyaXAgZnJvbSBrZXlzCiAgICAgICAgaW4gJ2NvbmZpZ3VyYXRpb24nLgoKICAgIDpwYXJhbSBrd2FyZ3M6IEVhY2gga2V5d29yZCBhcmd1bWVudCB0byBgYGVuZ2luZV9mcm9tX2NvbmZpZygpYGAgaXRzZWxmCiAgICAgICAgb3ZlcnJpZGVzIHRoZSBjb3JyZXNwb25kaW5nIGl0ZW0gdGFrZW4gZnJvbSB0aGUgJ2NvbmZpZ3VyYXRpb24nCiAgICAgICAgZGljdGlvbmFyeS4gIEtleXdvcmQgYXJndW1lbnRzIHNob3VsZCAqbm90KiBiZSBwcmVmaXhlZC4KCiAgICBjAQAAAAAAAAACAAAABAAAADMAAABzMAAAAHwAXSh9AXwBoACIAaEBcgJ8AXQBiAGDAWQAhQIZAIgAfAEZAGYCVgABAHECZABTACkBTikC2gpzdGFydHN3aXRo2gNsZW4pAtoCLjDaA2tleSkC2g1jb25maWd1cmF0aW9u2gZwcmVmaXhyIgAAAHIjAAAA+gk8Z2VuZXhwcj7XAQAAcwQAAAAEAQIBeiVlbmdpbmVfZnJvbV9jb25maWcuPGxvY2Fscz4uPGdlbmV4cHI+VFoOX2NvZXJjZV9jb25maWfaA3VybCkE2gRkaWN02gZ1cGRhdGVyHQAAAHIkAAAAKQVyKgAAAHIrAAAAciEAAADaB29wdGlvbnNyLQAAAHIiAAAAKQJyKgAAAHIrAAAAciMAAADaEmVuZ2luZV9mcm9tX2NvbmZpZ7YBAABzDgAAAAAgAgEMAQoDCAEKAQoBcjEAAAApAnIkAAAAcjEAAABOKQFyJQAAACki2gdfX2RvY19f2gByAgAAAHIDAAAA2gRiYXNlcgQAAAByBQAAAHIGAAAAcgcAAAByCAAAAHIJAAAAWgppbnRlcmZhY2VzcgoAAAByCwAAAHIMAAAAcg0AAAByDgAAAHIPAAAAchAAAADaBnJlc3VsdHIRAAAAchIAAAByEwAAAHIUAAAAchUAAAByFgAAAHIXAAAAchgAAABaA3NxbHIaAAAAch4AAAByJAAAAHIxAAAA2gdfX2FsbF9fciIAAAByIgAAAHIiAAAAciMAAADaCDxtb2R1bGU+NAAAAHM8AAAABAIMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAEMAQwBDAUEAwh/AH8AYwor
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).