REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 38.97 KB
Close
/opt/hc_python/lib/python3.12/site-packages/sqlalchemy/engine/__pycache__/events.cpython-312.pyc
Text
Base64
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dGhhdCBhcmUgcGFzc2VkIHRvIGxpc3RlbmVyIGZ1bmN0aW9ucy4KCiAgICBBbiBldmVudCBsaXN0ZW5lciBjYW4gYmUgYXNzb2NpYXRlZCB3aXRoIGFueQogICAgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIG9yIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgCiAgICBjbGFzcyBvciBpbnN0YW5jZSwgc3VjaCBhcyBhbiA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCwgZS5nLjo6CgogICAgICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgZXZlbnQsIGNyZWF0ZV9lbmdpbmUKCgogICAgICAgIGRlZiBiZWZvcmVfY3Vyc29yX2V4ZWN1dGUoCiAgICAgICAgICAgIGNvbm4sIGN1cnNvciwgc3RhdGVtZW50LCBwYXJhbWV0ZXJzLCBjb250ZXh0LCBleGVjdXRlbWFueQogICAgICAgICk6CiAgICAgICAgICAgIGxvZy5pbmZvKCJSZWNlaXZlZCBzdGF0ZW1lbnQ6ICVzIiwgc3RhdGVtZW50KQoKCiAgICAgICAgZW5naW5lID0gY3JlYXRlX2VuZ2luZSgicG9zdGdyZXNxbCtwc3ljb3BnMjovL3Njb3R0OnRpZ2VyQGxvY2FsaG9zdC90ZXN0IikKICAgICAgICBldmVudC5saXN0ZW4oZW5naW5lLCAiYmVmb3JlX2N1cnNvcl9leGVjdXRlIiwgYmVmb3JlX2N1cnNvcl9leGVjdXRlKQoKICAgIG9yIHdpdGggYSBzcGVjaWZpYyA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmA6OgoKICAgICAgICB3aXRoIGVuZ2luZS5iZWdpbigpIGFzIGNvbm46CgogICAgICAgICAgICBAZXZlbnQubGlzdGVuc19mb3IoY29ubiwgImJlZm9yZV9jdXJzb3JfZXhlY3V0ZSIpCiAgICAgICAgICAgIGRlZiBiZWZvcmVfY3Vyc29yX2V4ZWN1dGUoCiAgICAgICAgICAgICAgICBjb25uLCBjdXJzb3IsIHN0YXRlbWVudCwgcGFyYW1ldGVycywgY29udGV4dCwgZXhlY3V0ZW1hbnkKICAgICAgICAgICAgKToKICAgICAgICAgICAgICAgIGxvZy5pbmZvKCJSZWNlaXZlZCBzdGF0ZW1lbnQ6ICVzIiwgc3RhdGVtZW50KQoKICAgIFdoZW4gdGhlIG1ldGhvZHMgYXJlIGNhbGxlZCB3aXRoIGEgYHN0YXRlbWVudGAgcGFyYW1ldGVyLCBzdWNoIGFzIGluCiAgICA6bWV0aDpgLmFmdGVyX2N1cnNvcl9leGVjdXRlYCBvciA6bWV0aDpgLmJlZm9yZV9jdXJzb3JfZXhlY3V0ZWAsCiAgICB0aGUgc3RhdGVtZW50IGlzIHRoZSBleGFjdCBTUUwgc3RyaW5nIHRoYXQgd2FzIHByZXBhcmVkIGZvciB0cmFuc21pc3Npb24KICAgIHRvIHRoZSBEQkFQSSBgYGN1cnNvcmBgIGluIHRoZSBjb25uZWN0aW9uJ3MgOmNsYXNzOmAuRGlhbGVjdGAuCgogICAgVGhlIDptZXRoOmAuYmVmb3JlX2V4ZWN1dGVgIGFuZCA6bWV0aDpgLmJlZm9yZV9jdXJzb3JfZXhlY3V0ZWAKICAgIGV2ZW50cyBjYW4gYWxzbyBiZSBlc3RhYmxpc2hlZCB3aXRoIHRoZSBgYHJldHZhbD1UcnVlYGAgZmxhZywgd2hpY2gKICAgIGFsbG93cyBtb2RpZmljYXRpb24gb2YgdGhlIHN0YXRlbWVudCBhbmQgcGFyYW1ldGVycyB0byBiZSBzZW50CiAgICB0byB0aGUgZGF0YWJhc2UuICBUaGUgOm1ldGg6YC5iZWZvcmVfY3Vyc29yX2V4ZWN1dGVgIGV2ZW50IGlzCiAgICBwYXJ0aWN1bGFybHkgdXNlZnVsIGhlcmUgdG8gYWRkIGFkLWhvYyBzdHJpbmcgdHJhbnNmb3JtYXRpb25zLCBzdWNoCiAgICBhcyBjb21tZW50cywgdG8gYWxsIGV4ZWN1dGlvbnM6OgoKICAgICAgICBmcm9tIHNxbGFsY2hlbXkuZW5naW5lIGltcG9ydCBFbmdpbmUKICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IGV2ZW50CgoKICAgICAgICBAZXZlbnQubGlzdGVuc19mb3IoRW5naW5lLCAiYmVmb3JlX2N1cnNvcl9leGVjdXRlIiwgcmV0dmFsPVRydWUpCiAgICAgICAgZGVmIGNvbW1lbnRfc3FsX2NhbGxzKAogICAgICAgICAgICBjb25uLCBjdXJzb3IsIHN0YXRlbWVudCwgcGFyYW1ldGVycywgY29udGV4dCwgZXhlY3V0ZW1hbnkKICAgICAgICApOgogICAgICAgICAgICBzdGF0ZW1lbnQgPSBzdGF0ZW1lbnQgKyAiIC0tIHNvbWUgY29tbWVudCIKICAgICAgICAgICAgcmV0dXJuIHN0YXRlbWVudCwgcGFyYW1ldGVycwoKICAgIC4uIG5vdGU6OiA6Y2xhc3M6YF9ldmVudHMuQ29ubmVjdGlvbkV2ZW50c2AgY2FuIGJlIGVzdGFibGlzaGVkIG9uIGFueQogICAgICAgY29tYmluYXRpb24gb2YgOmNsYXNzOmBfZW5naW5lLkVuZ2luZWAsIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCwKICAgICAgIGFzIHdlbGwKICAgICAgIGFzIGluc3RhbmNlcyBvZiBlYWNoIG9mIHRob3NlIGNsYXNzZXMuICBFdmVudHMgYWNyb3NzIGFsbAogICAgICAgZm91ciBzY29wZXMgd2lsbCBmaXJlIG9mZiBmb3IgYSBnaXZlbiBpbnN0YW5jZSBvZgogICAgICAgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gLiAgSG93ZXZlciwgZm9yIHBlcmZvcm1hbmNlIHJlYXNvbnMsIHRoZQogICAgICAgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIG9iamVjdCBkZXRlcm1pbmVzIGF0IGluc3RhbnRpYXRpb24gdGltZQogICAgICAgd2hldGhlciBvciBub3QgaXRzIHBhcmVudCA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBoYXMgZXZlbnQgbGlzdGVuZXJzCiAgICAgICBlc3RhYmxpc2hlZC4gICBFdmVudCBsaXN0ZW5lcnMgYWRkZWQgdG8gdGhlIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgCiAgICAgICBjbGFzcyBvciB0byBhbiBpbnN0YW5jZSBvZiA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYAogICAgICAgKmFmdGVyKiB0aGUgaW5zdGFudGlhdGlvbgogICAgICAgb2YgYSBkZXBlbmRlbnQgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIGluc3RhbmNlIHdpbGwgdXN1YWxseQogICAgICAgKm5vdCogYmUgYXZhaWxhYmxlIG9uIHRoYXQgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIGluc3RhbmNlLgogICAgICAgVGhlIG5ld2x5CiAgICAgICBhZGRlZCBsaXN0ZW5lcnMgd2lsbCBpbnN0ZWFkIHRha2UgZWZmZWN0IGZvcgogICAgICAgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gCiAgICAgICBpbnN0YW5jZXMgY3JlYXRlZCBzdWJzZXF1ZW50IHRvIHRob3NlIGV2ZW50IGxpc3RlbmVycyBiZWluZwogICAgICAgZXN0YWJsaXNoZWQgb24gdGhlIHBhcmVudCA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBjbGFzcyBvciBpbnN0YW5jZS4KCiAgICA6cGFyYW0gcmV0dmFsPUZhbHNlOiBBcHBsaWVzIHRvIHRoZSA6bWV0aDpgLmJlZm9yZV9leGVjdXRlYCBhbmQKICAgICAgOm1ldGg6YC5iZWZvcmVfY3Vyc29yX2V4ZWN1dGVgIGV2ZW50cyBvbmx5LiAgV2hlbiBUcnVlLCB0aGUKICAgICAgdXNlci1kZWZpbmVkIGV2ZW50IGZ1bmN0aW9uIG11c3QgaGF2ZSBhIHJldHVybiB2YWx1ZSwgd2hpY2gKICAgICAgaXMgYSB0dXBsZSBvZiBwYXJhbWV0ZXJzIHRoYXQgcmVwbGFjZSB0aGUgZ2l2ZW4gc3RhdGVtZW50CiAgICAgIGFuZCBwYXJhbWV0ZXJzLiAgU2VlIHRob3NlIG1ldGhvZHMgZm9yIGEgZGVzY3JpcHRpb24gb2YKICAgICAgc3BlY2lmaWMgcmV0dXJuIGFyZ3VtZW50cy4KCiAgICDaClNvbWVFbmdpbmVjAwAAAAAAAAAAAAAABAAAAAMAAAHzZAAAAJUBlwB0AAAAAAAAAAAAiQR8AI0FAAB8AXwCqwIAAAAAAAB9A3wDgBx0BQAAAAAAAAAAfAFkAasCAAAAAAAAchB8AWoHAAAAAAAAAAAAAAAAAAAAAAAAqwAAAAAAAAABAHwDUwApAk7aF19ub19hc3luY19lbmdpbmVfZXZlbnRzKQTaBXN1cGVy2gxf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AAADAAAB8w4AAACXAHwAfAF8AnwDZgRTAHI1AAAAcjYAAAApBXI3AAAAcjgAAAByOQAAAHI6AAAAcjsAAABzBQAAACAgICAgci4AAADaCDxsYW1iZGE+ehlDb25uZWN0aW9uRXZlbnRzLjxsYW1iZGE+0QAAAHMUAAAAgADYDBDYDBnYDBfYDBLxCQVNAQpyLwAAAHI3AAAAYwYAAAAAAAAAAAAAAAAAAAADAAAB8wQAAACXAHkBKQJhWwYAAEludGVyY2VwdCBoaWdoIGxldmVsIGV4ZWN1dGUoKSBldmVudHMsIHJlY2VpdmluZyB1bmNvbXBpbGVkCiAgICAgICAgU1FMIGNvbnN0cnVjdHMgYW5kIG90aGVyIG9iamVjdHMgcHJpb3IgdG8gcmVuZGVyaW5nIGludG8gU1FMLgoKICAgICAgICBUaGlzIGV2ZW50IGlzIGdvb2QgZm9yIGRlYnVnZ2luZyBTUUwgY29tcGlsYXRpb24gaXNzdWVzIGFzIHdlbGwKICAgICAgICBhcyBlYXJseSBtYW5pcHVsYXRpb24gb2YgdGhlIHBhcmFtZXRlcnMgYmVpbmcgc2VudCB0byB0aGUgZGF0YWJhc2UsCiAgICAgICAgYXMgdGhlIHBhcmFtZXRlciBsaXN0cyB3aWxsIGJlIGluIGEgY29uc2lzdGVudCBmb3JtYXQgaGVyZS4KCiAgICAgICAgVGhpcyBldmVudCBjYW4gYmUgb3B0aW9uYWxseSBlc3RhYmxpc2hlZCB3aXRoIHRoZSBgYHJldHZhbD1UcnVlYGAKICAgICAgICBmbGFnLiAgVGhlIGBgY2xhdXNlZWxlbWVudGBgLCBgYG11bHRpcGFyYW1zYGAsIGFuZCBgYHBhcmFtc2BgCiAgICAgICAgYXJndW1lbnRzIHNob3VsZCBiZSByZXR1cm5lZCBhcyBhIHRocmVlLXR1cGxlIGluIHRoaXMgY2FzZTo6CgogICAgICAgICAgICBAZXZlbnQubGlzdGVuc19mb3IoRW5naW5lLCAiYmVmb3JlX2V4ZWN1dGUiLCByZXR2YWw9VHJ1ZSkKICAgICAgICAgICAgZGVmIGJlZm9yZV9leGVjdXRlKGNvbm4sIGNsYXVzZWVsZW1lbnQsIG11bHRpcGFyYW1zLCBwYXJhbXMpOgogICAgICAgICAgICAgICAgIyBkbyBzb21ldGhpbmcgd2l0aCBjbGF1c2VlbGVtZW50LCBtdWx0aXBhcmFtcywgcGFyYW1zCiAgICAgICAgICAgICAgICByZXR1cm4gY2xhdXNlZWxlbWVudCwgbXVsdGlwYXJhbXMsIHBhcmFtcwoKICAgICAgICA6cGFyYW0gY29ubjogOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIG9iamVjdAogICAgICAgIDpwYXJhbSBjbGF1c2VlbGVtZW50OiBTUUwgZXhwcmVzc2lvbiBjb25zdHJ1Y3QsIDpjbGFzczpgLkNvbXBpbGVkYAogICAgICAgICBpbnN0YW5jZSwgb3Igc3RyaW5nIHN0YXRlbWVudCBwYXNzZWQgdG8KICAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5leGVjdXRlYC4KICAgICAgICA6cGFyYW0gbXVsdGlwYXJhbXM6IE11bHRpcGxlIHBhcmFtZXRlciBzZXRzLCBhIGxpc3Qgb2YgZGljdGlvbmFyaWVzLgogICAgICAgIDpwYXJhbSBwYXJhbXM6IFNpbmdsZSBwYXJhbWV0ZXIgc2V0LCBhIHNpbmdsZSBkaWN0aW9uYXJ5LgogICAgICAgIDpwYXJhbSBleGVjdXRpb25fb3B0aW9uczogZGljdGlvbmFyeSBvZiBleGVjdXRpb24KICAgICAgICAgb3B0aW9ucyBwYXNzZWQgYWxvbmcgd2l0aCB0aGUgc3RhdGVtZW50LCBpZiBhbnkuICBUaGlzIGlzIGEgbWVyZ2UKICAgICAgICAgb2YgYWxsIG9wdGlvbnMgdGhhdCB3aWxsIGJlIHVzZWQsIGluY2x1ZGluZyB0aG9zZSBvZiB0aGUgc3RhdGVtZW50LAogICAgICAgICB0aGUgY29ubmVjdGlvbiwgYW5kIHRob3NlIHBhc3NlZCBpbiB0byB0aGUgbWV0aG9kIGl0c2VsZiBmb3IKICAgICAgICAgdGhlIDIuMCBzdHlsZSBvZiBleGVjdXRpb24uCgogICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6IDEuNAoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDptZXRoOmAuYmVmb3JlX2N1cnNvcl9leGVjdXRlYAoKICAgICAgICBOcjYAAAApBtoEc2VsZnI3AAAAcjgAAAByOQAAAHI6AAAAcjsAAABzBgAAACAgICAgIHIuAAAAcjMAAAB6H0Nvbm5lY3Rpb25FdmVudHMuYmVmb3JlX2V4ZWN1dGXOAAAA8wIAAACBAHIvAAAAKQVyNwAAAHI4AAAAcjkAAAByOgAAANoGcmVzdWx0YwYAAAAAAAAAAAAAAAUAAAADAAAB8xAAAACXAHwAfAF8AnwDfAVmBVMAcjUAAAByNgAAACkGcjcAAAByOAAAAHI5AAAAcjoAAAByOwAAAHJVAAAAcwYAAAAgICAgICByLgAAAHJRAAAAehlDb25uZWN0aW9uRXZlbnRzLjxsYW1iZGE+CQEAAHMXAAAAgADYDBDYDBnYDBfYDBLYDBLxCwZVAQpyLwAAAGMHAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCYWcDAABJbnRlcmNlcHQgaGlnaCBsZXZlbCBleGVjdXRlKCkgZXZlbnRzIGFmdGVyIGV4ZWN1dGUuCgoKICAgICAgICA6cGFyYW0gY29ubjogOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIG9iamVjdAogICAgICAgIDpwYXJhbSBjbGF1c2VlbGVtZW50OiBTUUwgZXhwcmVzc2lvbiBjb25zdHJ1Y3QsIDpjbGFzczpgLkNvbXBpbGVkYAogICAgICAgICBpbnN0YW5jZSwgb3Igc3RyaW5nIHN0YXRlbWVudCBwYXNzZWQgdG8KICAgICAgICAgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5leGVjdXRlYC4KICAgICAgICA6cGFyYW0gbXVsdGlwYXJhbXM6IE11bHRpcGxlIHBhcmFtZXRlciBzZXRzLCBhIGxpc3Qgb2YgZGljdGlvbmFyaWVzLgogICAgICAgIDpwYXJhbSBwYXJhbXM6IFNpbmdsZSBwYXJhbWV0ZXIgc2V0LCBhIHNpbmdsZSBkaWN0aW9uYXJ5LgogICAgICAgIDpwYXJhbSBleGVjdXRpb25fb3B0aW9uczogZGljdGlvbmFyeSBvZiBleGVjdXRpb24KICAgICAgICAgb3B0aW9ucyBwYXNzZWQgYWxvbmcgd2l0aCB0aGUgc3RhdGVtZW50LCBpZiBhbnkuICBUaGlzIGlzIGEgbWVyZ2UKICAgICAgICAgb2YgYWxsIG9wdGlvbnMgdGhhdCB3aWxsIGJlIHVzZWQsIGluY2x1ZGluZyB0aG9zZSBvZiB0aGUgc3RhdGVtZW50LAogICAgICAgICB0aGUgY29ubmVjdGlvbiwgYW5kIHRob3NlIHBhc3NlZCBpbiB0byB0aGUgbWV0aG9kIGl0c2VsZiBmb3IKICAgICAgICAgdGhlIDIuMCBzdHlsZSBvZiBleGVjdXRpb24uCgogICAgICAgICAuLiB2ZXJzaW9uYWRkZWQ6IDEuNAoKICAgICAgICA6cGFyYW0gcmVzdWx0OiA6Y2xhc3M6YF9lbmdpbmUuQ3Vyc29yUmVzdWx0YCBnZW5lcmF0ZWQgYnkgdGhlCiAgICAgICAgIGV4ZWN1dGlvbi4KCiAgICAgICAgTnI2AAAAKQdyUwAAAHI3AAAAcjgAAAByOQAAAHI6AAAAcjsAAAByVQAAAHMHAAAAICAgICAgIHIuAAAA2g1hZnRlcl9leGVjdXRleh5Db25uZWN0aW9uRXZlbnRzLmFmdGVyX2V4ZWN1dGUGAQAAclQAAAByLwAAAGMHAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCYZYGAABJbnRlcmNlcHQgbG93LWxldmVsIGN1cnNvciBleGVjdXRlKCkgZXZlbnRzIGJlZm9yZSBleGVjdXRpb24sCiAgICAgICAgcmVjZWl2aW5nIHRoZSBzdHJpbmcgU1FMIHN0YXRlbWVudCBhbmQgREJBUEktc3BlY2lmaWMgcGFyYW1ldGVyIGxpc3QgdG8KICAgICAgICBiZSBpbnZva2VkIGFnYWluc3QgYSBjdXJzb3IuCgogICAgICAgIFRoaXMgZXZlbnQgaXMgYSBnb29kIGNob2ljZSBmb3IgbG9nZ2luZyBhcyB3ZWxsIGFzIGxhdGUgbW9kaWZpY2F0aW9ucwogICAgICAgIHRvIHRoZSBTUUwgc3RyaW5nLiAgSXQncyBsZXNzIGlkZWFsIGZvciBwYXJhbWV0ZXIgbW9kaWZpY2F0aW9ucyBleGNlcHQKICAgICAgICBmb3IgdGhvc2Ugd2hpY2ggYXJlIHNwZWNpZmljIHRvIGEgdGFyZ2V0IGJhY2tlbmQuCgogICAgICAgIFRoaXMgZXZlbnQgY2FuIGJlIG9wdGlvbmFsbHkgZXN0YWJsaXNoZWQgd2l0aCB0aGUgYGByZXR2YWw9VHJ1ZWBgCiAgICAgICAgZmxhZy4gIFRoZSBgYHN0YXRlbWVudGBgIGFuZCBgYHBhcmFtZXRlcnNgYCBhcmd1bWVudHMgc2hvdWxkIGJlCiAgICAgICAgcmV0dXJuZWQgYXMgYSB0d28tdHVwbGUgaW4gdGhpcyBjYXNlOjoKCiAgICAgICAgICAgIEBldmVudC5saXN0ZW5zX2ZvcihFbmdpbmUsICJiZWZvcmVfY3Vyc29yX2V4ZWN1dGUiLCByZXR2YWw9VHJ1ZSkKICAgICAgICAgICAgZGVmIGJlZm9yZV9jdXJzb3JfZXhlY3V0ZSgKICAgICAgICAgICAgICAgIGNvbm4sIGN1cnNvciwgc3RhdGVtZW50LCBwYXJhbWV0ZXJzLCBjb250ZXh0LCBleGVjdXRlbWFueQogICAgICAgICAgICApOgogICAgICAgICAgICAgICAgIyBkbyBzb21ldGhpbmcgd2l0aCBzdGF0ZW1lbnQsIHBhcmFtZXRlcnMKICAgICAgICAgICAgICAgIHJldHVybiBzdGF0ZW1lbnQsIHBhcmFtZXRlcnMKCiAgICAgICAgU2VlIHRoZSBleGFtcGxlIGF0IDpjbGFzczpgX2V2ZW50cy5Db25uZWN0aW9uRXZlbnRzYC4KCiAgICAgICAgOnBhcmFtIGNvbm46IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKICAgICAgICA6cGFyYW0gY3Vyc29yOiBEQkFQSSBjdXJzb3Igb2JqZWN0CiAgICAgICAgOnBhcmFtIHN0YXRlbWVudDogc3RyaW5nIFNRTCBzdGF0ZW1lbnQsIGFzIHRvIGJlIHBhc3NlZCB0byB0aGUgREJBUEkKICAgICAgICA6cGFyYW0gcGFyYW1ldGVyczogRGljdGlvbmFyeSwgdHVwbGUsIG9yIGxpc3Qgb2YgcGFyYW1ldGVycyBiZWluZwogICAgICAgICBwYXNzZWQgdG8gdGhlIGBgZXhlY3V0ZSgpYGAgb3IgYGBleGVjdXRlbWFueSgpYGAgbWV0aG9kIG9mIHRoZQogICAgICAgICBEQkFQSSBgYGN1cnNvcmBg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ICAgICAgdGhlIDptZXRoOmBfZW5naW5lLkVuZ2luZS5jb25uZWN0YCBtZXRob2QuCgogICAgICAgIEl0IGRpZmZlcnMgZnJvbSB0aGUgOm1ldGg6YF9ldmVudHMuUG9vbEV2ZW50cy5jb25uZWN0YCBtZXRob2QsIHdoaWNoCiAgICAgICAgcmVmZXJzIHRvIHRoZSBhY3R1YWwgY29ubmVjdGlvbiB0byBhIGRhdGFiYXNlIGF0IHRoZSBEQkFQSSBsZXZlbDsKICAgICAgICBhIERCQVBJIGNvbm5lY3Rpb24gbWF5IGJlIHBvb2xlZCBhbmQgcmV1c2VkIGZvciBtYW55IG9wZXJhdGlvbnMuCiAgICAgICAgSW4gY29udHJhc3QsIHRoaXMgZXZlbnQgcmVmZXJzIG9ubHkgdG8gdGhlIHByb2R1Y3Rpb24gb2YgYSBoaWdoZXIgbGV2ZWwKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgd3JhcHBlciBhcm91bmQgc3VjaCBhIERCQVBJIGNvbm5lY3Rpb24uCgogICAgICAgIEl0IGFsc28gZGlmZmVycyBmcm9tIHRoZSA6bWV0aDpgX2V2ZW50cy5Qb29sRXZlbnRzLmNoZWNrb3V0YCBldmVudAogICAgICAgIGluIHRoYXQgaXQgaXMgc3BlY2lmaWMgdG8gdGhlIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QsCiAgICAgICAgbm90IHRoZQogICAgICAgIERCQVBJIGNvbm5lY3Rpb24gdGhhdCA6bWV0aDpgX2V2ZW50cy5Qb29sRXZlbnRzLmNoZWNrb3V0YCBkZWFscyB3aXRoLAogICAgICAgIGFsdGhvdWdoCiAgICAgICAgdGhpcyBEQkFQSSBjb25uZWN0aW9uIGlzIGF2YWlsYWJsZSBoZXJlIHZpYSB0aGUKICAgICAgICA6YXR0cjpgX2VuZ2luZS5Db25uZWN0aW9uLmNvbm5lY3Rpb25gIGF0dHJpYnV0ZS4KICAgICAgICBCdXQgbm90ZSB0aGVyZSBjYW4gaW4gZmFjdAogICAgICAgIGJlIG11bHRpcGxlIDptZXRoOmBfZXZlbnRzLlBvb2xFdmVudHMuY2hlY2tvdXRgCiAgICAgICAgZXZlbnRzIHdpdGhpbiB0aGUgbGlmZXNwYW4KICAgICAgICBvZiBhIHNpbmdsZSA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgb2JqZWN0LCBpZiB0aGF0CiAgICAgICAgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gCiAgICAgICAgaXMgaW52YWxpZGF0ZWQgYW5kIHJlLWVzdGFibGlzaGVkLgoKICAgICAgICA6cGFyYW0gY29ubjogOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIG9iamVjdC4KCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6bWV0aDpgX2V2ZW50cy5Qb29sRXZlbnRzLmNoZWNrb3V0YAogICAgICAgICAgICB0aGUgbG93ZXItbGV2ZWwgcG9vbCBjaGVja291dCBldmVudAogICAgICAgICAgICBmb3IgYW4gaW5kaXZpZHVhbCBEQkFQSSBjb25uZWN0aW9uCgogICAgICAgIE5yNgAAAKkCclMAAAByNwAAAHMCAAAAICByLgAAANoOZW5naW5lX2Nvbm5lY3R6H0Nvbm5lY3Rpb25FdmVudHMuZW5naW5lX2Nvbm5lY3R7AQAAclQAAAByLwAAAGMDAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCYfAEAABJbnRlcmNlcHQgd2hlbiB0aGUgOm1ldGg6YF9lbmdpbmUuQ29ubmVjdGlvbi5leGVjdXRpb25fb3B0aW9uc2AKICAgICAgICBtZXRob2QgaXMgY2FsbGVkLgoKICAgICAgICBUaGlzIG1ldGhvZCBpcyBjYWxsZWQgYWZ0ZXIgdGhlIG5ldyA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAKICAgICAgICBoYXMgYmVlbgogICAgICAgIHByb2R1Y2VkLCB3aXRoIHRoZSBuZXdseSB1cGRhdGVkIGV4ZWN1dGlvbiBvcHRpb25zIGNvbGxlY3Rpb24sIGJ1dAogICAgICAgIGJlZm9yZSB0aGUgOmNsYXNzOmAuRGlhbGVjdGAgaGFzIGFjdGVkIHVwb24gYW55IG9mIHRob3NlIG5ldyBvcHRpb25zLgoKICAgICAgICBOb3RlIHRoYXQgdGhpcyBtZXRob2QgaXMgbm90IGNhbGxlZCB3aGVuIGEgbmV3CiAgICAgICAgOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gCiAgICAgICAgaXMgcHJvZHVjZWQgd2hpY2ggaXMgaW5oZXJpdGluZyBleGVjdXRpb24gb3B0aW9ucyBmcm9tIGl0cyBwYXJlbnQKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYDsgdG8gaW50ZXJjZXB0IHRoaXMgY29uZGl0aW9uLCB1c2UgdGhlCiAgICAgICAgOm1ldGg6YF9ldmVudHMuQ29ubmVjdGlvbkV2ZW50cy5lbmdpbmVfY29ubmVjdGAgZXZlbnQuCgogICAgICAgIDpwYXJhbSBjb25uOiBUaGUgbmV3bHkgY29waWVkIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKCiAgICAgICAgOnBhcmFtIG9wdHM6IGRpY3Rpb25hcnkgb2Ygb3B0aW9ucyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoZQogICAgICAgICA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmV4ZWN1dGlvbl9vcHRpb25zYCBtZXRob2QuCiAgICAgICAgIFRoaXMgZGljdGlvbmFyeSBtYXkgYmUgbW9kaWZpZWQgaW4gcGxhY2UgdG8gYWZmZWN0IHRoZSB1bHRpbWF0ZQogICAgICAgICBvcHRpb25zIHdoaWNoIHRha2UgZWZmZWN0LgoKICAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMi4wIHRoZSBgYG9wdHNgYCBkaWN0aW9uYXJ5IG1heSBiZSBtb2RpZmllZAogICAgICAgICAgICBpbiBwbGFjZS4KCgogICAgICAgIC4uIHNlZWFsc286OgoKICAgICAgICAgICAgOm1ldGg6YF9ldmVudHMuQ29ubmVjdGlvbkV2ZW50cy5zZXRfZW5naW5lX2V4ZWN1dGlvbl9vcHRpb25zYAogICAgICAgICAgICAtIGV2ZW50CiAgICAgICAgICAgIHdoaWNoIGlzIGNhbGxlZCB3aGVuIDptZXRoOmBfZW5naW5lLkVuZ2luZS5leGVjdXRpb25fb3B0aW9uc2AKICAgICAgICAgICAgaXMgY2FsbGVkLgoKCiAgICAgICAgTnI2AAAAKQNyUwAAAHI3AAAA2gRvcHRzcwMAAAAgICByLgAAANogc2V0X2Nvbm5lY3Rpb25fZXhlY3V0aW9uX29wdGlvbnN6MUNvbm5lY3Rpb25FdmVudHMuc2V0X2Nvbm5lY3Rpb25fZXhlY3V0aW9uX29wdGlvbnOiAQAAclQAAAByLwAAAGMDAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCYeEEAABJbnRlcmNlcHQgd2hlbiB0aGUgOm1ldGg6YF9lbmdpbmUuRW5naW5lLmV4ZWN1dGlvbl9vcHRpb25zYAogICAgICAgIG1ldGhvZCBpcyBjYWxsZWQuCgogICAgICAgIFRoZSA6bWV0aDpgX2VuZ2luZS5FbmdpbmUuZXhlY3V0aW9uX29wdGlvbnNgIG1ldGhvZCBwcm9kdWNlcyBhIHNoYWxsb3cKICAgICAgICBjb3B5IG9mIHRoZSA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCB3aGljaCBzdG9yZXMgdGhlIG5ldyBvcHRpb25zLgogICAgICAgIFRoYXQgbmV3CiAgICAgICAgOmNsYXNzOmBfZW5naW5lLkVuZ2luZWAgaXMgcGFzc2VkIGhlcmUuCiAgICAgICAgQSBwYXJ0aWN1bGFyIGFwcGxpY2F0aW9uIG9mIHRoaXMKICAgICAgICBtZXRob2QgaXMgdG8gYWRkIGEgOm1ldGg6YF9ldmVudHMuQ29ubmVjdGlvbkV2ZW50cy5lbmdpbmVfY29ubmVjdGAKICAgICAgICBldmVudAogICAgICAgIGhhbmRsZXIgdG8gdGhlIGdpdmVuIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgCiAgICAgICAgd2hpY2ggd2lsbCBwZXJmb3JtIHNvbWUgcGVyLQogICAgICAgIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCB0YXNrIHNwZWNpZmljIHRvIHRoZXNlIGV4ZWN1dGlvbiBvcHRpb25zLgoKICAgICAgICA6cGFyYW0gY29ubjogVGhlIG5ld2x5IGNvcGllZCA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBvYmplY3QKCiAgICAgICAgOnBhcmFtIG9wdHM6IGRpY3Rpb25hcnkgb2Ygb3B0aW9ucyB0aGF0IHdlcmUgcGFzc2VkIHRvIHRoZQogICAgICAgICA6bWV0aDpgX2VuZ2luZS5Db25uZWN0aW9uLmV4ZWN1dGlvbl9vcHRpb25zYCBtZXRob2QuCiAgICAgICAgIFRoaXMgZGljdGlvbmFyeSBtYXkgYmUgbW9kaWZpZWQgaW4gcGxhY2UgdG8gYWZmZWN0IHRoZSB1bHRpbWF0ZQogICAgICAgICBvcHRpb25zIHdoaWNoIHRha2UgZWZmZWN0LgoKICAgICAgICAgLi4gdmVyc2lvbmFkZGVkOjogMi4wIHRoZSBgYG9wdHNgYCBkaWN0aW9uYXJ5IG1heSBiZSBtb2RpZmllZAogICAgICAgICAgICBpbiBwbGFjZS4KCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6bWV0aDpgX2V2ZW50cy5Db25uZWN0aW9uRXZlbnRzLnNldF9jb25uZWN0aW9uX2V4ZWN1dGlvbl9vcHRpb25zYAogICAgICAgICAgICAtIGV2ZW50CiAgICAgICAgICAgIHdoaWNoIGlzIGNhbGxlZCB3aGVuIDptZXRoOmBfZW5naW5lLkNvbm5lY3Rpb24uZXhlY3V0aW9uX29wdGlvbnNgCiAgICAgICAgICAgIGlzCiAgICAgICAgICAgIGNhbGxlZC4KCiAgICAgICAgTnI2AAAAKQNyUwAAANoGZW5naW5lcmQAAABzAwAAACAgIHIuAAAA2hxzZXRfZW5naW5lX2V4ZWN1dGlvbl9vcHRpb25zei1Db25uZWN0aW9uRXZlbnRzLnNldF9lbmdpbmVfZXhlY3V0aW9uX29wdGlvbnPIAQAAclQAAAByLwAAAGMCAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCYeoCAABJbnRlcmNlcHQgd2hlbiB0aGUgOm1ldGg6YF9lbmdpbmUuRW5naW5lLmRpc3Bvc2VgIG1ldGhvZCBpcyBjYWxsZWQuCgogICAgICAgIFRoZSA6bWV0aDpgX2VuZ2luZS5FbmdpbmUuZGlzcG9zZWAgbWV0aG9kIGluc3RydWN0cyB0aGUgZW5naW5lIHRvCiAgICAgICAgImRpc3Bvc2UiIG9mIGl0J3MgY29ubmVjdGlvbiBwb29sIChlLmcuIDpjbGFzczpgX3Bvb2wuUG9vbGApLCBhbmQKICAgICAgICByZXBsYWNlcyBpdCB3aXRoIGEgbmV3IG9uZS4gIERpc3Bvc2luZyBvZiB0aGUgb2xkIHBvb2wgaGFzIHRoZQogICAgICAgIGVmZmVjdCB0aGF0IGV4aXN0aW5nIGNoZWNrZWQtaW4gY29ubmVjdGlvbnMgYXJlIGNsb3NlZC4gIFRoZSBuZXcKICAgICAgICBwb29sIGRvZXMgbm90IGVzdGFibGlzaCBhbnkgbmV3IGNvbm5lY3Rpb25zIHVudGlsIGl0IGlzIGZpcnN0IHVzZWQuCgogICAgICAgIFRoaXMgZXZlbnQgY2FuIGJlIHVzZWQgdG8gaW5kaWNhdGUgdGhhdCByZXNvdXJjZXMgcmVsYXRlZCB0byB0aGUKICAgICAgICA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBzaG91bGQgYWxzbyBiZSBjbGVhbmVkIHVwLAogICAgICAgIGtlZXBpbmcgaW4gbWluZCB0aGF0IHRoZQogICAgICAgIDpjbGFzczpgX2VuZ2luZS5FbmdpbmVgCiAgICAgICAgY2FuIHN0aWxsIGJlIHVzZWQgZm9yIG5ldyByZXF1ZXN0cyBpbiB3aGljaCBjYXNlCiAgICAgICAgaXQgcmUtYWNxdWlyZXMgY29ubmVjdGlvbiByZXNvdXJjZXMuCgogICAgICAgIE5yNgAAACkCclMAAAByZwAAAHMCAAAAICByLgAAANoPZW5naW5lX2Rpc3Bvc2VkeiBDb25uZWN0aW9uRXZlbnRzLmVuZ2luZV9kaXNwb3NlZO0BAAByVAAAAHIvAAAAYwIAAAAAAAAAAAAAAAAAAAADAAAB8wQAAACXAHkBKQJ6XEludGVyY2VwdCBiZWdpbigpIGV2ZW50cy4KCiAgICAgICAgOnBhcmFtIGNvbm46IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKCiAgICAgICAgTnI2AAAAcmEAAABzAgAAACAgci4AAADaBWJlZ2luehZDb25uZWN0aW9uRXZlbnRzLmJlZ2lu/wEAAHJUAAAAci8AAABjAgAAAAAAAAAAAAAAAAAAAAMAAAHzBAAAAJcAeQEpAmHxAQAASW50ZXJjZXB0IHJvbGxiYWNrKCkgZXZlbnRzLCBhcyBpbml0aWF0ZWQgYnkgYQogICAgICAgIDpjbGFzczpgLlRyYW5zYWN0aW9uYC4KCiAgICAgICAgTm90ZSB0aGF0IHRoZSA6Y2xhc3M6YF9wb29sLlBvb2xgIGFsc28gImF1dG8tcm9sbHMgYmFjayIKICAgICAgICBhIERCQVBJIGNvbm5lY3Rpb24gdXBvbiBjaGVja2luLCBpZiB0aGUgYGByZXNldF9vbl9yZXR1cm5gYAogICAgICAgIGZsYWcgaXMgc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlIG9mIGBgJ3JvbGxiYWNrJ2BgLgogICAgICAgIFRvIGludGVyY2VwdCB0aGlzCiAgICAgICAgcm9sbGJhY2ssIHVzZSB0aGUgOm1ldGg6YF9ldmVudHMuUG9vbEV2ZW50cy5yZXNldGAgaG9vay4KCiAgICAgICAgOnBhcmFtIGNvbm46IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6bWV0aDpgX2V2ZW50cy5Qb29sRXZlbnRzLnJlc2V0YAoKICAgICAgICBOcjYAAAByYQAAAHMCAAAAICByLgAAANoIcm9sbGJhY2t6GUNvbm5lY3Rpb25FdmVudHMucm9sbGJhY2sGAgAAclQAAAByLwAAAGMCAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCYZQBAABJbnRlcmNlcHQgY29tbWl0KCkgZXZlbnRzLCBhcyBpbml0aWF0ZWQgYnkgYQogICAgICAgIDpjbGFzczpgLlRyYW5zYWN0aW9uYC4KCiAgICAgICAgTm90ZSB0aGF0IHRoZSA6Y2xhc3M6YF9wb29sLlBvb2xgIG1heSBhbHNvICJhdXRvLWNvbW1pdCIKICAgICAgICBhIERCQVBJIGNvbm5lY3Rpb24gdXBvbiBjaGVja2luLCBpZiB0aGUgYGByZXNldF9vbl9yZXR1cm5gYAogICAgICAgIGZsYWcgaXMgc2V0IHRvIHRoZSB2YWx1ZSBgYCdjb21taXQnYGAuICBUbyBpbnRlcmNlcHQgdGhpcwogICAgICAgIGNvbW1pdCwgdXNlIHRoZSA6bWV0aDpgX2V2ZW50cy5Qb29sRXZlbnRzLnJlc2V0YCBob29rLgoKICAgICAgICA6cGFyYW0gY29ubjogOmNsYXNzOmBfZW5naW5lLkNvbm5lY3Rpb25gIG9iamVjdAogICAgICAgIE5yNgAAAHJhAAAAcwIAAAAgIHIuAAAA2gZjb21taXR6F0Nvbm5lY3Rpb25FdmVudHMuY29tbWl0GAIAAHJUAAAAci8AAABjAwAAAAAAAAAAAAAAAAAAAAMAAAHzBAAAAJcAeQEpAnqcSW50ZXJjZXB0IHNhdmVwb2ludCgpIGV2ZW50cy4KCiAgICAgICAgOnBhcmFtIGNvbm46IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKICAgICAgICA6cGFyYW0gbmFtZTogc3BlY2lmaWVkIG5hbWUgdXNlZCBmb3IgdGhlIHNhdmVwb2ludC4KCiAgICAgICAgTnI2AAAAKQNyUwAAAHI3AAAA2gRuYW1lcwMAAAAgICByLgAAANoJc2F2ZXBvaW50ehpDb25uZWN0aW9uRXZlbnRzLnNhdmVwb2ludCQCAAByVAAAAHIvAAAAYwQAAAAAAAAAAAAAAAAAAAADAAAB8wQAAACXAHkBKQJ6xkludGVyY2VwdCByb2xsYmFja19zYXZlcG9pbnQoKSBldmVudHMuCgogICAgICAgIDpwYXJhbSBjb25uOiA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgb2JqZWN0CiAgICAgICAgOnBhcmFtIG5hbWU6IHNwZWNpZmllZCBuYW1lIHVzZWQgZm9yIHRoZSBzYXZlcG9pbnQuCiAgICAgICAgOnBhcmFtIGNvbnRleHQ6IG5vdCB1c2VkCgogICAgICAgIE5yNgAAAKkEclMAAAByNwAAAHJyAAAAckMAAABzBAAAACAgICByLgAAANoScm9sbGJhY2tfc2F2ZXBvaW50eiNDb25uZWN0aW9uRXZlbnRzLnJvbGxiYWNrX3NhdmVwb2ludCwCAAByVAAAAHIvAAAAYwQAAAAAAAAAAAAAAAAAAAADAAAB8wQAAACXAHkBKQJ6xUludGVyY2VwdCByZWxlYXNlX3NhdmVwb2ludCgpIGV2ZW50cy4KCiAgICAgICAgOnBhcmFtIGNvbm46IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKICAgICAgICA6cGFyYW0gbmFtZTogc3BlY2lmaWVkIG5hbWUgdXNlZCBmb3IgdGhlIHNhdmVwb2ludC4KICAgICAgICA6cGFyYW0gY29udGV4dDogbm90IHVzZWQKCiAgICAgICAgTnI2AAAAcnUAAABzBAAAACAgICByLgAAANoRcmVsZWFzZV9zYXZlcG9pbnR6IkNvbm5lY3Rpb25FdmVudHMucmVsZWFzZV9zYXZlcG9pbnQ4AgAAclQAAAByLwAAAGMDAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCepJJbnRlcmNlcHQgYmVnaW5fdHdvcGhhc2UoKSBldmVudHMuCgogICAgICAgIDpwYXJhbSBjb25uOiA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgb2JqZWN0CiAgICAgICAgOnBhcmFtIHhpZDogdHdvLXBoYXNlIFhJRCBpZGVudGlmaWVyCgogICAgICAgIE5yNgAAAKkDclMAAAByNwAAANoDeGlkcwMAAAAgICByLgAAANoOYmVnaW5fdHdvcGhhc2V6H0Nvbm5lY3Rpb25FdmVudHMuYmVnaW5fdHdvcGhhc2VEAgAAclQAAAByLwAAAGMDAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCepNJbnRlcmNlcHQgcHJlcGFyZV90d29waGFzZSgpIGV2ZW50cy4KCiAgICAgICAgOnBhcmFtIGNvbm46IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKICAgICAgICA6cGFyYW0geGlkOiB0d28tcGhhc2UgWElEIGlkZW50aWZpZXIKICAgICAgICBOcjYAAAByegAAAHMDAAAAICAgci4AAADaEHByZXBhcmVfdHdvcGhhc2V6IUNvbm5lY3Rpb25FdmVudHMucHJlcGFyZV90d29waGFzZUwCAAByVAAAAHIvAAAAYwQAAAAAAAAAAAAAAAAAAAADAAAB8wQAAACXAHkBKQJhAQEAAEludGVyY2VwdCByb2xsYmFja190d29waGFzZSgpIGV2ZW50cy4KCiAgICAgICAgOnBhcmFtIGNvbm46IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKICAgICAgICA6cGFyYW0geGlkOiB0d28tcGhhc2UgWElEIGlkZW50aWZpZXIKICAgICAgICA6cGFyYW0gaXNfcHJlcGFyZWQ6IGJvb2xlYW4sIGluZGljYXRlcyBpZgogICAgICAgICA6bWV0aDpgLlR3b1BoYXNlVHJhbnNhY3Rpb24ucHJlcGFyZWAgd2FzIGNhbGxlZC4KCiAgICAgICAgTnI2AAAAqQRyUwAAAHI3AAAAcnsAAADaC2lzX3ByZXBhcmVkcwQAAAAgICAgci4AAADaEXJvbGxiYWNrX3R3b3BoYXNleiJDb25uZWN0aW9uRXZlbnRzLnJvbGxiYWNrX3R3b3BoYXNlUwIAAHJUAAAAci8AAABjBAAAAAAAAAAAAAAAAAAAAAMAAAHzBAAAAJcAeQEpAnr/SW50ZXJjZXB0IGNvbW1pdF90d29waGFzZSgpIGV2ZW50cy4KCiAgICAgICAgOnBhcmFtIGNvbm46IDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYCBvYmplY3QKICAgICAgICA6cGFyYW0geGlkOiB0d28tcGhhc2UgWElEIGlkZW50aWZpZXIKICAgICAgICA6cGFyYW0gaXNfcHJlcGFyZWQ6IGJvb2xlYW4sIGluZGljYXRlcyBpZgogICAgICAgICA6bWV0aDpgLlR3b1BoYXNlVHJhbnNhY3Rpb24ucHJlcGFyZWAgd2FzIGNhbGxlZC4KCiAgICAgICAgTnI2AAAAcoAAAABzBAAAACAgICByLgAAANoPY29tbWl0X3R3b3BoYXNleiBDb25uZWN0aW9uRXZlbnRzLmNvbW1pdF90d29waGFzZV8CAAByVAAAAHIvAAAAKQZyKgAAAHo7VW5pb25bQ29ubmVjdGlvbkV2ZW50c1RhcmdldCwgVHlwZVtDb25uZWN0aW9uRXZlbnRzVGFyZ2V0XV1yKwAAANoDc3Ry2gZyZXR1cm56RU9wdGlvbmFsW1VuaW9uW0Nvbm5lY3Rpb25FdmVudHNUYXJnZXQsIFR5cGVbQ29ubmVjdGlvbkV2ZW50c1RhcmdldF1dXSkIckwAAAB6J2V2ZW50Ll9FdmVudEtleVtDb25uZWN0aW9uRXZlbnRzVGFyZ2V0XXIxAAAA2gRib29sck0AAAByBAAAAHKGAAAA2gROb25lKQxyNwAAAHILAAAAcjgAAAByHwAAAHI5AAAA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CQAJAAkACQAJAGQOZAWEBqsAAAAAAAAAWghlBwkACQAJAAkACQAJAGQPZAaEBKsAAAAAAAAAWgkJAAkACQAJAGQQZAeEBFoKCQAJAAkACQAJAAkACQAJAAkACQBkEWQIhARaCwkACQAJAAkACQAJAAkACQAJAAkAZBJkCYQEWgwJAAkACQAJAAkACQAJAAkAZBNkCoQEWg0JAAkACQAJAAkACQAJAAkACQAJAGQUZAuEBFoOCQAJAAkACQAJAAkACQAJAAkACQAJAAkAZBVkDIQEWg95DSkW2g1EaWFsZWN0RXZlbnRzYVkDAABldmVudCBpbnRlcmZhY2UgZm9yIGV4ZWN1dGlvbi1yZXBsYWNlbWVudCBmdW5jdGlvbnMuCgogICAgVGhlc2UgZXZlbnRzIGFsbG93IGRpcmVjdCBpbnN0cnVtZW50YXRpb24gYW5kIHJlcGxhY2VtZW50CiAgICBvZiBrZXkgZGlhbGVjdCBmdW5jdGlvbnMgd2hpY2ggaW50ZXJhY3Qgd2l0aCB0aGUgREJBUEkuCgogICAgLi4gbm90ZTo6CgogICAgICAgIDpjbGFzczpgLkRpYWxlY3RFdmVudHNgIGhvb2tzIHNob3VsZCBiZSBjb25zaWRlcmVkICoqc2VtaS1wdWJsaWMqKgogICAgICAgIGFuZCBleHBlcmltZW50YWwuCiAgICAgICAgVGhlc2UgaG9va3MgYXJlIG5vdCBmb3IgZ2VuZXJhbCB1c2UgYW5kIGFyZSBvbmx5IGZvciB0aG9zZSBzaXR1YXRpb25zCiAgICAgICAgd2hlcmUgaW50cmljYXRlIHJlLXN0YXRlbWVudCBvZiBEQkFQSSBtZWNoYW5pY3MgbXVzdCBiZSBpbmplY3RlZCBvbnRvCiAgICAgICAgYW4gZXhpc3RpbmcgZGlhbGVjdC4gIEZvciBnZW5lcmFsLXVzZSBzdGF0ZW1lbnQtaW50ZXJjZXB0aW9uIGV2ZW50cywKICAgICAgICBwbGVhc2UgdXNlIHRoZSA6Y2xhc3M6YF9ldmVudHMuQ29ubmVjdGlvbkV2ZW50c2AgaW50ZXJmYWNlLgoKICAgIC4uIHNlZWFsc286OgoKICAgICAgICA6bWV0aDpgX2V2ZW50cy5Db25uZWN0aW9uRXZlbnRzLmJlZm9yZV9jdXJz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cnRpY2lwYXRlIGluCiAgICAgICAgICAgdGhlICJwcmUgcGluZyIgb3BlcmF0aW9uIGNvbmZpZ3VyZWQgd2l0aCB0aGUKICAgICAgICAgICA6cGFyYW1yZWY6YF9zYS5jcmVhdGVfZW5naW5lLnBvb2xfcHJlX3BpbmdgIHBhcmFtZXRlci4gVGhlIGV2ZW50CiAgICAgICAgICAgcmVtYWlucyByZWdpc3RlcmVkIGJ5IHVzaW5nIHRoZSA6Y2xhc3M6YF9lbmdpbmUuRW5naW5lYCBhcyB0aGUgZXZlbnQKICAgICAgICAgICB0YXJnZXQsIGhvd2V2ZXIgbm90ZSB0aGF0IHVzaW5nIHRoZSA6Y2xhc3M6YF9lbmdpbmUuQ29ubmVjdGlvbmAgYXMKICAgICAgICAgICBhbiBldmVudCB0YXJnZXQgZm9yIDptZXRoOmAuRGlhbGVjdEV2ZW50cy5oYW5kbGVfZXJyb3JgIGlzIG5vIGxvbmdlcgogICAgICAgICAgIHN1cHBvcnRlZC4KCiAgICAgICAgVGhpcyBpbmNsdWRlcyBhbGwgZXhjZXB0aW9ucyBlbWl0dGVkIGJ5IHRoZSBEQkFQSSBhcyB3ZWxsIGFzCiAgICAgICAgd2l0aGluIFNRTEFsY2hlbXkncyBzdGF0ZW1lbnQgaW52b2NhdGlvbiBwcm9jZXNzLCBpbmNsdWRpbmcKICAgICAgICBlbmNvZGluZyBlcnJvcnMgYW5kIG90aGVyIHN0YXRlbWVudCB2YWxpZGF0aW9uIGVycm9ycy4gIE90aGVyIGFyZWFzCiAgICAgICAgaW4gd2hpY2ggdGhlIGV2ZW50IGlzIGludm9rZWQgaW5jbHVkZSB0cmFuc2FjdGlvbiBiZWdpbiBhbmQgZW5kLAogICAgICAgIHJlc3VsdCByb3cgZmV0Y2hpbmcsIGN1cnNvciBjcmVhdGlvbi4KCiAgICAgICAgTm90ZSB0aGF0IDptZXRoOmAuaGFuZGxlX2Vycm9yYCBtYXkgc3VwcG9ydCBuZXcga2luZHMgb2YgZXhjZXB0aW9ucwogICAgICAgIGFuZCBuZXcgY2FsbGluZyBzY2VuYXJpb3MgYXQgKmFueSB0aW1lKi4gIENvZGUgd2hpY2ggdXNlcyB0aGlzCiAgICAgICAgZXZlbnQgbXVzdCBleHBlY3QgbmV3IGNhbGxpbmcgcGF0dGVybnMgdG8gYmUgcHJlc2VudCBpbiBtaW5vcgogICAgICAgIHJlbGVhc2VzLgoKICAgICAgICBUbyBzdXBwb3J0IHRoZSB3aWRlIHZhcmlldHkgb2YgbWVtYmVycyB0aGF0IGNvcnJlc3BvbmQgdG8gYW4gZXhjZXB0aW9uLAogICAgICAgIGFzIHdlbGwgYXMgdG8gYWxsb3cgZXh0ZW5zaWJpbGl0eSBvZiB0aGUgZXZlbnQgd2l0aG91dCBiYWNrd2FyZHMKICAgICAgICBpbmNvbXBhdGliaWxpdHksIHRoZSBzb2xlIGFyZ3VtZW50IHJlY2VpdmVkIGlzIGFuIGluc3RhbmNlIG9mCiAgICAgICAgOmNsYXNzOmAuRXhjZXB0aW9uQ29udGV4dGAuICAgVGhpcyBvYmplY3QgY29udGFpbnMgZGF0YSBtZW1iZXJzCiAgICAgICAgcmVwcmVzZW50aW5nIGRldGFpbCBhYm91dCB0aGUgZXhjZXB0aW9uLgoKICAgICAgICBVc2UgY2FzZXMgc3VwcG9ydGVkIGJ5IHRoaXMgaG9vayBpbmNsdWRlOgoKICAgICAgICAqIHJlYWQtb25seSwgbG93LWxldmVsIGV4Y2VwdGlvbiBoYW5kbGluZyBmb3IgbG9nZ2luZyBhbmQKICAgICAgICAgIGRlYnVnZ2luZyBwdXJwb3NlcwogICAgICAgICogRXN0YWJsaXNoaW5nIHdoZXRoZXIgYSBEQkFQSSBjb25uZWN0aW9uIGVycm9yIG1lc3NhZ2UgaW5kaWNhdGVzCiAgICAgICAgICB0aGF0IHRoZSBkYXRhYmFzZSBjb25uZWN0aW9uIG5lZWRzIHRvIGJlIHJlY29ubmVjdGVkLCBpbmNsdWRpbmcKICAgICAgICAgIGZvciB0aGUgInByZV9waW5nIiBoYW5kbGVyIHVzZWQgYnkgKipzb21lKiogZGlhbGVjdHMKICAgICAgICAqIEVzdGFibGlzaGluZyBvciBkaXNhYmxpbmcgd2hldGhlciBhIGNvbm5lY3Rpb24gb3IgdGhlIG93bmluZwogICAgICAgICAgY29ubmVjdGlvbiBwb29sIGlzIGludmFsaWRhdGVkIG9yIGV4cGlyZWQgaW4gcmVzcG9uc2UgdG8gYQogICAgICAgICAgc3BlY2lmaWMgZXhjZXB0aW9uCiAgICAgICAgKiBleGNlcHRpb24gcmUtd3JpdGluZwoKICAgICAgICBUaGUgaG9vayBpcyBjYWxsZWQgd2hpbGUgdGhlIGN1cnNvciBmcm9tIHRoZSBmYWlsZWQgb3BlcmF0aW9uCiAgICAgICAgKGlmIGFueSkgaXMgc3RpbGwgb3BlbiBhbmQgYWNjZXNzaWJsZS4gICBTcGVjaWFsIGNsZWFudXAgb3BlcmF0aW9ucwogICAgICAgIGNhbiBiZSBjYWxsZWQgb24gdGhpcyBjdXJzb3I7IFNRTEFsY2hlbXkgd2lsbCBhdHRlbXB0IHRvIGNsb3NlCiAgICAgICAgdGhpcyBjdXJzb3Igc3Vic2VxdWVudCB0byB0aGlzIGhvb2sgYmVpbmcgaW52b2tlZC4KCiAgICAgICAgQXMgb2YgU1FMQWxjaGVteSAyLjAsIHRoZSAicHJlX3BpbmciIGhhbmRsZXIgZW5hYmxlZCB1c2luZyB0aGUKICAgICAgICA6cGFyYW1yZWY6YF9zYS5jcmVhdGVfZW5naW5lLnBvb2xfcHJlX3BpbmdgIHBhcmFtZXRlciB3aWxsIGFsc28KICAgICAgICBwYXJ0aWNpcGF0ZSBpbiB0aGUgOm1ldGg6YC5oYW5kbGVfZXJyb3JgIHByb2Nlc3MsICoqZm9yIHRob3NlIGRpYWxlY3RzCiAgICAgICAgdGhhdCByZWx5IHVwb24gZGlzY29ubmVjdCBjb2RlcyB0byBkZXRlY3QgZGF0YWJhc2UgbGl2ZW5lc3MqKi4gTm90ZQogICAgICAgIHRoYXQgc29tZSBkaWFsZWN0cyBzdWNoIGFzIHBzeWNvcGcsIHBzeWNvcGcyLCBhbmQgbW9zdCBNeVNRTCBkaWFsZWN0cwogICAgICAgIG1ha2UgdXNlIG9mIGEgbmF0aXZlIGBgcGluZygpYGAgbWV0aG9kIHN1cHBsaWVkIGJ5IHRoZSBEQkFQSSB3aGljaCBkb2VzCiAgICAgICAgbm90IG1ha2UgdXNlIG9mIGRpc2Nvbm5lY3QgY29kZXMuCgogICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMi4wLjAgVGhlIDptZXRoOmAuRGlhbGVjdEV2ZW50cy5oYW5kbGVfZXJyb3JgCiAgICAgICAgICAgZXZlbnQgaG9vayBwYXJ0aWNpcGF0ZXMgaW4gY29ubmVjdGlvbiBwb29sICJwcmUtcGluZyIgb3BlcmF0aW9ucy4KICAgICAgICAgICBXaXRoaW4gdGhpcyB1c2FnZSwgdGhlIDphdHRyOmAuRXhjZXB0aW9uQ29udGV4dC5lbmdpbmVgIGF0dHJpYnV0ZQogICAgICAgICAgIHdpbGwgYmUgYGBOb25lYGAsIGhvd2V2ZXIgdGhlIDpjbGFzczpgLkRpYWxlY3RgIGluIHVzZSBpcyBhbHdheXMKICAgICAgICAgICBhdmFpbGFibGUgdmlhIHRoZSA6YXR0cjpgLkV4Y2VwdGlvbkNvbnRleHQuZGlhbGVjdGAgYXR0cmlidXRlLgoKICAgICAgICAuLiB2ZXJzaW9uY2hhbmdlZDo6IDIuMC41IEFkZGVkIDphdHRyOmAuRXhjZXB0aW9uQ29udGV4dC5pc19wcmVfcGluZ2AKICAgICAgICAgICBhdHRyaWJ1dGUgd2hpY2ggd2lsbCBiZSBzZXQgdG8gYGBUcnVlYGAgd2hlbiB0aGUKICAgICAgICAgICA6bWV0aDpgLkRpYWxlY3RFdmVudHMuaGFuZGxlX2Vycm9yYCBldmVudCBob29rIGlzIHRyaWdnZXJlZCB3aXRoaW4KICAgICAgICAgICBhIGNvbm5lY3Rpb24gcG9vbCBwcmUtcGluZyBvcGVyYXRpb24uCgogICAgICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMi4wLjUgQW4gaXNzdWUgd2FzIHJlcGFpcmVkIHRoYXQgYWxsb3dzIGZvciB0aGUKICAgICAgICAgICBQb3N0Z3JlU1FMIGBgcHN5Y29wZ2BgIGFuZCBgYHBzeWNvcGcyYGAgZHJpdmVycywgYXMgd2VsbCBhcyBhbGwKICAgICAgICAgICBNeVNRTCBkcml2ZXJzLCB0byBwcm9wZXJseSBwYXJ0aWNpcGF0ZSBpbiB0aGUKICAgICAgICAgICA6bWV0aDpgLkRpYWxlY3RFdmVudHMuaGFuZGxlX2Vycm9yYCBldmVudCBob29rIGR1cmluZwogICAgICAgICAgIGNvbm5lY3Rpb24gcG9vbCAicHJlLXBpbmciIG9wZXJhdGlvbnM7IHByZXZpb3VzbHksIHRoZQogICAgICAgICAgIGltcGxlbWVudGF0aW9uIHdhcyBub24td29ya2luZyBmb3IgdGhlc2UgZHJpdmVycy4KCgogICAgICAgIEEgaGFuZGxlciBmdW5jdGlvbiBoYXMgdHdvIG9wdGlvbnMgZm9yIHJlcGxhY2luZwogICAgICAgIHRoZSBTUUxBbGNoZW15LWNvbnN0cnVjdGVkIGV4Y2VwdGlvbiBpbnRvIG9uZSB0aGF0IGlzIHVzZXIKICAgICAgICBkZWZpbmVkLiAgIEl0IGNhbiBlaXRoZXIgcmFpc2UgdGhpcyBuZXcgZXhjZXB0aW9uIGRpcmVjdGx5LCBpbgogICAgICAgIHdoaWNoIGNhc2UgYWxsIGZ1cnRoZXIgZXZlbnQgbGlzdGVuZXJzIGFyZSBieXBhc3NlZCBhbmQgdGhlCiAgICAgICAgZXhjZXB0aW9uIHdpbGwgYmUgcmFpc2VkLCBhZnRlciBhcHByb3ByaWF0ZSBjbGVhbnVwIGFzIHRha2VuCiAgICAgICAgcGxhY2U6OgoKICAgICAgICAgICAgQGV2ZW50Lmxpc3RlbnNfZm9yKEVuZ2luZSwgImhhbmRsZV9lcnJvciIpCiAgICAgICAgICAgIGRlZiBoYW5kbGVfZXhjZXB0aW9uKGNvbnRleHQpOgogICAgICAgICAgICAgICAgaWYgaXNpbnN0YW5jZSgKICAgICAgICAgICAgICAgICAgICBjb250ZXh0Lm9yaWdpbmFsX2V4Y2VwdGlvbiwgcHN5Y29wZzIuT3BlcmF0aW9uYWxFcnJvcgogICAgICAgICAgICAgICAgKSBhbmQgImZhaWxlZCIgaW4gc3RyKGNvbnRleHQub3JpZ2luYWxfZXhjZXB0aW9uKToKICAgICAgICAgICAgICAgICAgICByYWlzZSBNeVNwZWNpYWxFeGNlcHRpb24oImZhaWxlZCBvcGVyYXRpb24iKQoKICAgICAgICAuLiB3YXJuaW5nOjogIEJlY2F1c2UgdGhlCiAgICAgICAgICAgOm1ldGg6YF9ldmVudHMuRGlhbGVjdEV2ZW50cy5oYW5kbGVfZXJyb3JgCiAgICAgICAgICAgZXZlbnQgc3BlY2lmaWNhbGx5IHByb3ZpZGVzIGZvciBleGNlcHRpb25zIHRvIGJlIHJlLXRocm93biBhcwogICAgICAgICAgIHRoZSB1bHRpbWF0ZSBleGNlcHRpb24gcmFpc2VkIGJ5IHRoZSBmYWlsZWQgc3RhdGVtZW50LAogICAgICAgICAgICoqc3RhY2sgdHJhY2VzIHdpbGwgYmUgbWlzbGVhZGluZyoqIGlmIHRoZSB1c2VyLWRlZmluZWQgZXZlbnQKICAgICAgICAgICBoYW5kbGVyIGl0c2VsZiBmYWlscyBhbmQgdGhyb3dzIGFuIHVuZXhwZWN0ZWQgZXhjZXB0aW9uOwogICAgICAgICAgIHRoZSBzdGFjayB0cmFjZSBtYXkgbm90IGlsbHVzdHJhdGUgdGhlIGFjdHVhbCBjb2RlIGxpbmUgdGhhdAogICAgICAgICAgIGZhaWxlZCEgIEl0IGlzIGFkdmlzZWQgdG8gY29kZSBjYXJlZnVsbHkgaGVyZSBhbmQgdXNlCiAgICAgICAgICAgbG9nZ2luZyBhbmQvb3IgaW5saW5lIGRlYnVnZ2luZyBpZiB1bmV4cGVjdGVkIGV4Y2VwdGlvbnMgYXJlCiAgICAgICAgICAgb2NjdXJyaW5nLgoKICAgICAgICBBbHRlcm5hdGl2ZWx5LCBhICJjaGFpbmVkIiBzdHlsZSBvZiBldmVudCBoYW5kbGluZyBjYW4gYmUKICAgICAgICB1c2VkLCBieSBjb25maWd1cmluZyB0aGUgaGFuZGxlciB3aXRoIHRoZSBgYHJldHZhbD1UcnVlYGAKICAgICAgICBtb2RpZmllciBhbmQgcmV0dXJuaW5nIHRoZSBuZXcgZXhjZXB0aW9uIGluc3RhbmNlIGZyb20gdGhlCiAgICAgICAgZnVuY3Rpb24uICBJbiB0aGlzIGNhc2UsIGV2ZW50IGhhbmRsaW5nIHdpbGwgY29udGludWUgb250byB0aGUKICAgICAgICBuZXh0IGhhbmRsZXIuICAgVGhlICJjaGFpbmVkIiBleGNlcHRpb24gaXMgYXZhaWxhYmxlIHVzaW5nCiAgICAgICAgOmF0dHI6YC5FeGNlcHRpb25Db250ZXh0LmNoYWluZWRfZXhjZXB0aW9uYDo6CgogICAgICAgICAgICBAZXZlbnQubGlzdGVuc19mb3IoRW5naW5lLCAiaGFuZGxlX2Vycm9yIiwgcmV0dmFsPVRydWUpCiAgICAgICAgICAgIGRlZiBoYW5kbGVfZXhjZXB0aW9uKGNvbnRleHQpOgogICAgICAgICAgICAgICAgaWYgKAogICAgICAgICAgICAgICAgICAgIGNvbnRleHQuY2hhaW5lZF9leGNlcHRpb24gaXMgbm90IE5vbmUKICAgICAgICAgICAgICAgICAgICBhbmQgInNwZWNpYWwiIGluIGNvbnRleHQuY2hhaW5lZF9leGNlcHRpb24ubWVzc2FnZQogICAgICAgICAgICAgICAgKToKICAgICAgICAgICAgICAgICAgICByZXR1cm4gTXlTcGVjaWFsRXhjZXB0aW9uKAogICAgICAgICAgICAgICAgICAgICAgICAiZmFpbGVkIiwgY2F1c2U9Y29udGV4dC5jaGFpbmVkX2V4Y2VwdGlvbgogICAgICAgICAgICAgICAgICAgICkKCiAgICAgICAgSGFuZGxlcnMgdGhhdCByZXR1cm4gYGBOb25lYGAgbWF5IGJlIHVzZWQgd2l0aGluIHRoZSBjaGFpbjsgd2hlbgogICAgICAgIGEgaGFuZGxlciByZXR1cm5zIGBgTm9uZWBgLCB0aGUgcHJldmlvdXMgZXhjZXB0aW9uIGluc3RhbmNlLAogICAgICAgIGlmIGFueSwgaXMgbWFpbnRhaW5lZCBhcyB0aGUgY3VycmVudCBleGNlcHRpb24gdGhhdCBpcyBwYXNzZWQgb250byB0aGUKICAgICAgICBuZXh0IGhhbmRsZXIuCgogICAgICAgIFdoZW4gYSBjdXN0b20gZXhjZXB0aW9uIGlzIHJhaXNlZCBvciByZXR1cm5lZCwgU1FMQWxjaGVteSByYWlzZXMKICAgICAgICB0aGlzIG5ldyBleGNlcHRpb24gYXMtaXMsIGl0IGlzIG5vdCB3cmFwcGVkIGJ5IGFueSBTUUxBbGNoZW15CiAgICAgICAgb2JqZWN0LiAgSWYgdGhlIGV4Y2VwdGlvbiBpcyBub3QgYSBzdWJjbGFzcyBvZgogICAgICAgIDpjbGFzczpgc3FsYWxjaGVteS5leGMuU3RhdGVtZW50RXJyb3JgLAogICAgICAgIGNlcnRhaW4gZmVhdHVyZXMgbWF5IG5vdCBiZSBhdmFpbGFibGU7IGN1cnJlbnRseSB0aGlzIGluY2x1ZGVzCiAgICAgICAgdGhlIE9STSdzIGZlYXR1cmUgb2YgYWRkaW5nIGEgZGV0YWlsIGhpbnQgYWJvdXQgImF1dG9mbHVzaCIgdG8KICAgICAgICBleGNlcHRpb25zIHJhaXNlZCB3aXRoaW4gdGhlIGF1dG9mbHVzaCBwcm9jZXNzLgoKICAgICAgICA6cGFyYW0gY29udGV4dDogYW4gOmNsYXNzOmAuRXhjZXB0aW9uQ29udGV4dGAgb2JqZWN0LiAgU2VlIHRoaXMKICAgICAgICAgY2xhc3MgZm9yIGRldGFpbHMgb24gYWxsIGF2YWlsYWJsZSBtZW1iZXJzLgoKCiAgICAgICAgLi4gc2VlYWxzbzo6CgogICAgICAgICAgICA6cmVmOmBwb29sX25ld19kaXNjb25uZWN0X2NvZGVzYAoKICAgICAgICBOcjYAAAApAnJTAAAA2hFleGNlcHRpb25fY29udGV4dHMCAAAAICByLgAAAHKYAAAAehpEaWFsZWN0RXZlbnRzLmhhbmRsZV9lcnJvcrICAAByVAAAAHIvAAAAYwUAAAAAAAAAAAAAAAAAAAADAAAB8wQAAACXAHkBKQJhYAQAAFJlY2VpdmUgY29ubmVjdGlvbiBhcmd1bWVudHMgYmVmb3JlIGEgY29ubmVjdGlvbiBpcyBtYWRlLgoKICAgICAgICBUaGlzIGV2ZW50IGlzIHVzZWZ1bCBpbiB0aGF0IGl0IGFsbG93cyB0aGUgaGFuZGxlciB0byBtYW5pcHVsYXRlIHRoZQogICAgICAgIGNhcmdzIGFuZC9vciBjcGFyYW1zIGNvbGxlY3Rpb25zIHRoYXQgY29udHJvbCBob3cgdGhlIERCQVBJCiAgICAgICAgYGBjb25uZWN0KClgYCBmdW5jdGlvbiB3aWxsIGJlIGNhbGxlZC4gYGBjYXJnc2BgIHdpbGwgYWx3YXlzIGJlIGEKICAgICAgICBQeXRob24gbGlzdCB0aGF0IGNhbiBiZSBtdXRhdGVkIGluLXBsYWNlLCBhbmQgYGBjcGFyYW1zYGAgYSBQeXRob24KICAgICAgICBkaWN0aW9uYXJ5IHRoYXQgbWF5IGFsc28gYmUgbXV0YXRlZDo6CgogICAgICAgICAgICBlID0gY3JlYXRlX2VuZ2luZSgicG9zdGdyZXNxbCtwc3ljb3BnMjovL3VzZXJAaG9zdC9kYm5hbWUiKQoKCiAgICAgICAgICAgIEBldmVudC5saXN0ZW5zX2ZvcihlLCAiZG9fY29ubmVjdCIpCiAgICAgICAgICAgIGRlZiByZWNlaXZlX2RvX2Nvbm5lY3QoZGlhbGVjdCwgY29ubl9yZWMsIGNhcmdzLCBjcGFyYW1zKToKICAgICAgICAgICAgICAgIGNwYXJhbXNbInBhc3N3b3JkIl0gPSAic29tZV9wYXNzd29yZCIKCiAgICAgICAgVGhlIGV2ZW50IGhvb2sgbWF5IGFsc28gYmUgdXNlZCB0byBvdmVycmlkZSB0aGUgY2FsbCB0byBgYGNvbm5lY3QoKWBgCiAgICAgICAgZW50aXJlbHksIGJ5IHJldHVybmluZyBhIG5vbi1gYE5vbmVgYCBEQkFQSSBjb25uZWN0aW9uIG9iamVjdDo6CgogICAgICAgICAgICBlID0gY3JlYXRlX2VuZ2luZSgicG9zdGdyZXNxbCtwc3ljb3BnMjovL3VzZXJAaG9zdC9kYm5hbWUiKQoKCiAgICAgICAgICAgIEBldmVudC5saXN0ZW5zX2ZvcihlLCAiZG9fY29ubmVjdCIpCiAgICAgICAgICAgIGRlZiByZWNlaXZlX2RvX2Nvbm5lY3QoZGlhbGVjdCwgY29ubl9yZWMsIGNhcmdzLCBjcGFyYW1zKToKICAgICAgICAgICAgICAgIHJldHVybiBwc3ljb3BnMi5jb25uZWN0KCpjYXJncywgKipjcGFyYW1zKQoKICAgICAgICAuLiBzZWVhbHNvOjoKCiAgICAgICAgICAgIDpyZWY6YGN1c3RvbV9kYmFwaV9hcmdzYAoKICAgICAgICBOcjYAAAApBXJTAAAAcpwAAADaCGNvbm5fcmVj2gVjYXJnc9oHY3BhcmFtc3MFAAAAICAgICByLgAAANoKZG9fY29ubmVjdHoYRGlhbGVjdEV2ZW50cy5kb19jb25uZWN0QQMAAHJUAAAAci8AAABjBQAAAAAAAAAAAAAAAAAAAAMAAAHzBAAAAJcAeQEpAnrpUmVjZWl2ZSBhIGN1cnNvciB0byBoYXZlIGV4ZWN1dGVtYW55KCkgY2FsbGVkLgoKICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIFRydWUgdG8gaGFsdCBmdXJ0aGVyIGV2ZW50cyBmcm9tIGludm9raW5nLAogICAgICAgIGFuZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjdXJzb3IgZXhlY3V0aW9uIGhhcyBhbHJlYWR5IHRha2VuCiAgICAgICAgcGxhY2Ugd2l0aGluIHRoZSBldmVudCBoYW5kbGVyLgoKICAgICAgICBOcjYAAACpBXJTAAAAckAAAAByQQAAAHJCAAAAckMAAABzBQAAACAgICAgci4AAADaDmRvX2V4ZWN1dGVtYW55ehxEaWFsZWN0RXZlbnRzLmRvX2V4ZWN1dGVtYW55ZwMAAHJUAAAAci8AAABjBAAAAAAAAAAAAAAAAAAAAAMAAAHzBAAAAJcAeQEpAnr4UmVjZWl2ZSBhIGN1cnNvciB0byBoYXZlIGV4ZWN1dGUoKSB3aXRoIG5vIHBhcmFtZXRlcnMgY2FsbGVkLgoKICAgICAgICBSZXR1cm4gdGhlIHZhbHVlIFRydWUgdG8gaGFsdCBmdXJ0aGVyIGV2ZW50cyBmcm9tIGludm9raW5nLAogICAgICAgIGFuZCB0byBpbmRpY2F0ZSB0aGF0IHRoZSBjdXJzb3IgZXhlY3V0aW9uIGhhcyBhbHJlYWR5IHRha2VuCiAgICAgICAgcGxhY2Ugd2l0aGluIHRoZSBldmVudCBoYW5kbGVyLgoKICAgICAgICBOcjYAAAApBHJTAAAAckAAAAByQQAAAHJDAAAAcwQAAAAgICAgci4AAADaFGRvX2V4ZWN1dGVfbm9fcGFyYW1zeiJEaWFsZWN0RXZlbnRzLmRvX2V4ZWN1dGVfbm9fcGFyYW1zdgMAAHJUAAAAci8AAABjBQAAAAAAAAAAAAAAAAAAAAMAAAHzBAAAAJcAeQEpAnrlUmVjZWl2ZSBhIGN1cnNvciB0byBoYXZlIGV4ZWN1dGUoKSBjYWxsZWQuCgogICAgICAgIFJldHVybiB0aGUgdmFsdWUgVHJ1ZSB0byBoYWx0IGZ1cnRoZXIgZXZlbnRzIGZyb20gaW52b2tpbmcsCiAgICAgICAgYW5kIHRvIGluZGljYXRlIHRoYXQgdGhlIGN1cnNvciBleGVjdXRpb24gaGFzIGFscmVhZHkgdGFrZW4KICAgICAgICBwbGFjZSB3aXRoaW4gdGhlIGV2ZW50IGhhbmRsZXIuCgogICAgICAgIE5yNgAAAHKmAAAAcwUAAAAgICAgIHIuAAAA2gpkb19leGVjdXRlehhEaWFsZWN0RXZlbnRzLmRvX2V4ZWN1dGWBAwAAclQAAAByLwAAAGMGAAAAAAAAAAAAAAAAAAAAAwAAAfMEAAAAlwB5ASkCYeMHAABSZWNlaXZlIHRoZSBzZXRpbnB1dHNpemVzIGRpY3Rpb25hcnkgZm9yIHBvc3NpYmxlIG1vZGlmaWNhdGlvbi4KCiAgICAgICAgVGhpcyBldmVudCBpcyBlbWl0dGVkIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBkaWFsZWN0IG1ha2VzIHVzZSBvZiB0aGUKICAgICAgICBEQkFQSSBgYGN1cnNvci5zZXRpbnB1dHNpemVzKClgYCBtZXRob2Qgd2hpY2ggcGFzc2VzIGluZm9ybWF0aW9uIGFib3V0CiAgICAgICAgcGFyYW1ldGVyIGJpbmRpbmcgZm9yIGEgcGFydGljdWxhciBzdGF0ZW1lbnQuICAgVGhlIGdpdmVuCiAgICAgICAgYGBpbnB1dHNpemVzYGAgZGljdGlvbmFyeSB3aWxsIGNvbnRhaW4gOmNsYXNzOmAuQmluZFBhcmFtZXRlcmAgb2JqZWN0cwogICAgICAgIGFzIGtleXMsIGxpbmtlZCB0byBEQkFQSS1zcGVjaWZpYyB0eXBlIG9iamVjdHMgYXMgdmFsdWVzOyBmb3IKICAgICAgICBwYXJhbWV0ZXJzIHRoYXQgYXJlIG5vdCBib3VuZCwgdGhleSBhcmUgYWRkZWQgdG8gdGhlIGRpY3Rpb25hcnkgd2l0aAogICAgICAgIGBgTm9uZWBgIGFzIHRoZSB2YWx1ZSwgd2hpY2ggbWVhbnMgdGhlIHBhcmFtZXRlciB3aWxsIG5vdCBiZSBpbmNsdWRlZAogICAgICAgIGluIHRoZSB1bHRpbWF0ZSBzZXRpbnB1dHNpemVzIGNhbGwuICAgVGhlIGV2ZW50IG1heSBiZSB1c2VkIHRvIGluc3BlY3QKICAgICAgICBhbmQvb3IgbG9nIHRoZSBkYXRhdHlwZXMgdGhhdCBhcmUgYmVpbmcgYm91bmQsIGFzIHdlbGwgYXMgdG8gbW9kaWZ5IHRoZQogICAgICAgIGRpY3Rpb25hcnkgaW4gcGxhY2UuICBQYXJhbWV0ZXJzIGNhbiBiZSBhZGRlZCwgbW9kaWZpZWQsIG9yIHJlbW92ZWQKICAgICAgICBmcm9tIHRoaXMgZGljdGlvbmFyeS4gICBDYWxsZXJzIHdpbGwgdHlwaWNhbGx5IHdhbnQgdG8gaW5zcGVjdCB0aGUKICAgICAgICA6YXR0cjpgLkJpbmRQYXJhbWV0ZXIudHlwZWAgYXR0cmlidXRlIG9mIHRoZSBnaXZlbiBiaW5kIG9iamVjdHMgaW4KICAgICAgICBvcmRlciB0byBtYWtlIGRlY2lzaW9ucyBhYm91dCB0aGUgREJBUEkgb2JqZWN0LgoKICAgICAgICBBZnRlciB0aGUgZXZlbnQsIHRoZSBgYGlucHV0c2l6ZXNgYCBkaWN0aW9uYXJ5IGlzIGNvbnZlcnRlZCBpbnRvCiAgICAgICAgYW4gYXBwcm9wcmlhdGUgZGF0YXN0cnVjdHVyZSB0byBiZSBwYXNzZWQgdG8gYGBjdXJzb3Iuc2V0aW5wdXRzaXplc2BgOwogICAgICAgIGVpdGhlciBhIGxpc3QgZm9yIGEgcG9zaXRpb25hbCBib3VuZCBwYXJhbWV0ZXIgZXhlY3V0aW9uIHN0eWxlLAogICAgICAgIG9yIGEgZGljdGlvbmFyeSBvZiBzdHJpbmcgcGFyYW1ldGVyIGtleXMgdG8gREJBUEkgdHlwZSBvYmplY3RzIGZvcgogICAgICAgIGEgbmFtZWQgYm91bmQgcGFyYW1ldGVyIGV4ZWN1dGlvbiBzdHlsZS4KCiAgICAgICAgVGhlIHNldGlucHV0c2l6ZXMgaG9vayBvdmVyYWxsIGlzIG9ubHkgdXNlZCBmb3IgZGlhbGVjdHMgd2hpY2ggaW5jbHVkZQogICAgICAgIHRoZSBmbGFnIGBgdXNlX3NldGlucHV0c2l6ZXM9VHJ1ZWBgLiAgRGlhbGVjdHMgd2hpY2ggdXNlIHRoaXMKICAgICAgICBpbmNsdWRlIHB5dGhvbi1vcmFjbGVkYiwgY3hfT3JhY2xlLCBwZzgwMDAsIGFzeW5jcGcsIGFuZCBweW9kYmMKICAg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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
base.cpython-312.pyc
126.90 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
characteristics.cpython-312.pyc
6.66 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
create.cpython-312.pyc
33.50 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
cursor.cpython-312.pyc
77.50 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
default.cpython-312.pyc
86.01 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
events.cpython-312.pyc
38.97 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
interfaces.cpython-312.pyc
97.25 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
mock.cpython-312.pyc
5.54 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
processors.cpython-312.pyc
1.24 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
reflection.cpython-312.pyc
78.40 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
result.cpython-312.pyc
89.07 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
row.cpython-312.pyc
17.01 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
strategies.cpython-312.pyc
539 B
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
url.cpython-312.pyc
33.58 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
util.cpython-312.pyc
6.46 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_py_processors.cpython-312.pyc
4.37 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_py_row.cpython-312.pyc
5.61 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
_py_util.cpython-312.pyc
2.11 KB
lrw-r--r--
2025-04-04 08:02:02
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-312.pyc
2.20 KB
lrw-r--r--
2025-04-04 08:02:02
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).