REDROOM
PHP 8.2.30
Path:
Logout
Edit File
Size: 150.52 KB
Close
//opt/cloudlinux/venv/lib/python3.11/site-packages/sqlalchemy/dialects/postgresql/__pycache__/base.cpython-311.pyc
Text
Base64
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AAAAAAAApgMAAKsDAAAAAAAAAABaZwIARwBkcIQAZHFlFWpoAAAAAAAAAACmAwAAqwMAAAAAAAAAAFppAgBHAGRyhABkc2UQamoAAAAAAAAAAKYDAACrAwAAAAAAAAAAWmsCAEcAZHSEAGR1ZRBqagAAAAAAAAAApgMAAKsDAAAAAAAAAABabAIARwBkdoQAZHdlFGptAAAAAAAAAACmAwAAqwMAAAAAAAAAAFpuAgBHAGR4hABkeWUUam8AAAAAAAAAAKYDAACrAwAAAAAAAAAAWnBkA1MAKXphs4kAAAouLiBkaWFsZWN0OjogcG9zdGdyZXNxbAogICAgOm5hbWU6IFBvc3RncmVTUUwKCi4uIF9wb3N0Z3Jlc3FsX3NlcXVlbmNlczoKClNlcXVlbmNlcy9TRVJJQUwvSURFTlRJVFkKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKUG9zdGdyZVNRTCBzdXBwb3J0cyBzZXF1ZW5jZXMsIGFuZCBTUUxBbGNoZW15IHVzZXMgdGhlc2UgYXMgdGhlIGRlZmF1bHQgbWVhbnMKb2YgY3JlYXRpbmcgbmV3IHByaW1hcnkga2V5IHZhbHVlcyBmb3IgaW50ZWdlci1iYXNlZCBwcmltYXJ5IGtleSBjb2x1bW5zLiBXaGVuCmNyZWF0aW5nIHRhYmxlcywgU1FMQWxjaGVteSB3aWxsIGlzc3VlIHRoZSBgYFNFUklBTGBgIGRhdGF0eXBlIGZvcgppbnRlZ2VyLWJhc2VkIHByaW1hcnkga2V5IGNvbHVtbnMsIHdoaWNoIGdlbmVyYXRlcyBhIHNlcXVlbmNlIGFuZCBzZXJ2ZXIgc2lkZQpkZWZhdWx0IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGNvbHVtbi4KClRvIHNwZWNpZnkgYSBzcGVjaWZpYyBuYW1lZCBzZXF1ZW5jZSB0byBiZSB1c2VkIGZvciBwcmltYXJ5IGtleSBnZW5lcmF0aW9uLAp1c2UgdGhlIDpmdW5jOmB+c3FsYWxjaGVteS5zY2hlbWEuU2VxdWVuY2VgIGNvbnN0cnVjdDo6CgogICAgVGFibGUoJ3NvbWV0YWJsZScsIG1ldGFkYXRhLAogICAgICAgICAgICBDb2x1bW4oJ2lkJywgSW50ZWdlciwgU2VxdWVuY2UoJ3NvbWVfaWRfc2VxJyksIHByaW1hcnlfa2V5PVRydWUpCiAgICAgICAgKQoKV2hlbiBTUUxBbGNoZW15IGlzc3VlcyBhIHNpbmdsZSBJTlNFUlQgc3RhdGVtZW50LCB0byBmdWxmaWxsIHRoZSBjb250cmFjdCBvZgpoYXZpbmcgdGhlICJsYXN0IGluc2VydCBpZGVudGlmaWVyIiBhdmFpbGFibGUsIGEgUkVUVVJOSU5HIGNsYXVzZSBpcyBhZGRlZCB0bwp0aGUgSU5TRVJUIHN0YXRlbWVudCB3aGljaCBzcGVjaWZpZXMgdGhlIHByaW1hcnkga2V5IGNvbHVtbnMgc2hvdWxkIGJlCnJldHVybmVkIGFmdGVyIHRoZSBzdGF0ZW1lbnQgY29tcGxldGVzLiBUaGUgUkVUVVJOSU5HIGZ1bmN0aW9uYWxpdHkgb25seSB0YWtlcwpwbGFjZSBpZiBQb3N0Z3JlU1FMIDguMiBvciBsYXRlciBpcyBpbiB1c2UuIEFzIGEgZmFsbGJhY2sgYXBwcm9hY2gsIHRoZQpzZXF1ZW5jZSwgd2hldGhlciBzcGVjaWZpZWQgZXhwbGljaXRseSBvciBpbXBsaWNpdGx5IHZpYSBgYFNFUklBTGBgLCBpcwpleGVjdXRlZCBpbmRlcGVuZGVudGx5IGJlZm9yZWhhbmQsIHRoZSByZXR1cm5lZCB2YWx1ZSB0byBiZSB1c2VkIGluIHRoZQpzdWJzZXF1ZW50IGluc2VydC4gTm90ZSB0aGF0IHdoZW4gYW4KOmZ1bmM6YH5zcWxhbGNoZW15LnNxbC5leHByZXNzaW9uLmluc2VydCgpYCBjb25zdHJ1Y3QgaXMgZXhlY3V0ZWQgdXNpbmcKImV4ZWN1dGVtYW55IiBzZW1hbnRpY3MsIHRoZSAibGFzdCBpbnNlcnRlZCBpZGVudGlmaWVyIiBmdW5jdGlvbmFsaXR5IGRvZXMgbm90CmFwcGx5OyBubyBSRVRVUk5JTkcgY2xhdXNlIGlzIGVtaXR0ZWQgbm9yIGlzIHRoZSBzZXF1ZW5jZSBwcmUtZXhlY3V0ZWQgaW4gdGhpcwpjYXNlLgoKVG8gZm9yY2UgdGhlIHVzYWdlIG9mIFJFVFVSTklORyBieSBkZWZhdWx0IG9mZiwgc3BlY2lmeSB0aGUgZmxhZwpgYGltcGxpY2l0X3JldHVybmluZz1GYWxzZWBgIHRvIDpmdW5jOmBfc2EuY3JlYXRlX2VuZ2luZWAuCgpQb3N0Z3JlU1FMIDEwIElERU5USVRZIGNvbHVtbnMKXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eCgpQb3N0Z3JlU1FMIDEwIGhhcyBhIG5ldyBJREVOVElUWSBmZWF0dXJlIHRoYXQgc3VwZXJzZWRlcyB0aGUgdXNlIG9mIFNFUklBTC4KQnVpbHQtaW4gc3VwcG9ydCBmb3IgcmVuZGVyaW5nIG9mIElERU5USVRZIGlzIG5vdCBhdmFpbGFibGUgeWV0LCBob3dldmVyIHRoZQpmb2xsb3dpbmcgY29tcGlsYXRpb24gaG9vayBtYXkgYmUgdXNlZCB0byByZXBsYWNlIG9jY3VycmVuY2VzIG9mIFNFUklBTCB3aXRoCklERU5USVRZOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuc2NoZW1hIGltcG9ydCBDcmVhdGVDb2x1bW4KICAgIGZyb20gc3FsYWxjaGVteS5leHQuY29tcGlsZXIgaW1wb3J0IGNvbXBpbGVzCgoKICAgIEBjb21waWxlcyhDcmVhdGVDb2x1bW4sICdwb3N0Z3Jlc3FsJykKICAgIGRlZiB1c2VfaWRlbnRpdHkoZWxlbWVudCwgY29tcGlsZXIsICoqa3cpOgogICAgICAgIHRleHQgPSBjb21waWxlci52aXNpdF9jcmVhdGVfY29sdW1uKGVsZW1lbnQsICoqa3cpCiAgICAgICAgdGV4dCA9IHRleHQucmVwbGFjZSgiU0VSSUFMIiwgIklOVCBHRU5FUkFURUQgQlkgREVGQVVMVCBBUyBJREVOVElUWSIpCiAgICAgICAgcmV0dXJuIHRleHQKClVzaW5nIHRoZSBhYm92ZSwgYSB0YWJsZSBzdWNoIGFzOjoKCiAgICB0ID0gVGFibGUoCiAgICAgICAgJ3QnLCBtLAogICAgICAgIENvbHVtbignaWQnLCBJbnRlZ2VyLCBwcmltYXJ5X2tleT1UcnVlKSwKICAgICAgICBDb2x1bW4oJ2RhdGEnLCBTdHJpbmcpCiAgICApCgpXaWxsIGdlbmVyYXRlIG9uIHRoZSBiYWNraW5nIGRhdGFiYXNlIGFzOjoKCiAgICBDUkVBVEUgVEFCTEUgdCAoCiAgICAgICAgaWQgSU5UIEdFTkVSQVRFRCBCWSBERUZBVUxUIEFTIElERU5USVRZIE5PVCBOVUxMLAogICAgICAgIGRhdGEgVkFSQ0hBUiwKICAgICAgICBQUklNQVJZIEtFWSAoaWQpCiAgICApCgouLiBfcG9zdGdyZXNxbF9pc29sYXRpb25fbGV2ZWw6CgpUcmFuc2FjdGlvbiBJc29sYXRpb24gTGV2ZWwKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpNb3N0IFNRTEFsY2hlbXkgZGlhbGVjdHMgc3VwcG9ydCBzZXR0aW5nIG9mIHRyYW5zYWN0aW9uIGlzb2xhdGlvbiBsZXZlbAp1c2luZyB0aGUgOnBhcmFtcmVmOmBfc2EuY3JlYXRlX2VuZ2luZS5leGVjdXRpb25fb3B0aW9uc2AgcGFyYW1ldGVyCmF0IHRoZSA6ZnVuYzpgX3NhLmNyZWF0ZV9lbmdpbmVgIGxldmVsLCBhbmQgYXQgdGhlIDpjbGFzczpgX2VuZ2luZS5Db25uZWN0aW9uYApsZXZlbCB2aWEgdGhlIDpwYXJhbXJlZjpgLkNvbm5lY3Rpb24uZXhlY3V0aW9uX29wdGlvbnMuaXNvbGF0aW9uX2xldmVsYApwYXJhbWV0ZXIuCgpGb3IgUG9zdGdyZVNRTCBkaWFsZWN0cywgdGhpcyBmZWF0dXJlIHdvcmtzIGVpdGhlciBieSBtYWtpbmcgdXNlIG9mIHRoZQpEQkFQSS1zcGVjaWZpYyBmZWF0dXJlcywgc3VjaCBhcyBwc3ljb3BnMidzIGlzb2xhdGlvbiBsZXZlbCBmbGFncyB3aGljaCB3aWxsCmVtYmVkIHRoZSBpc29sYXRpb24gbGV2ZWwgc2V0dGluZyBpbmxpbmUgd2l0aCB0aGUgYGAiQkVHSU4iYGAgc3RhdGVtZW50LCBvciBmb3IKREJBUElzIHdpdGggbm8gZGlyZWN0IHN1cHBvcnQgYnkgZW1pdHRpbmcgYGBTRVQgU0VTU0lPTiBDSEFSQUNURVJJU1RJQ1MgQVMKVFJBTlNBQ1RJT04gSVNPTEFUSU9OIExFVkVMIDxsZXZlbD5gYCBhaGVhZCBvZiB0aGUgYGAiQkVHSU4iYGAgc3RhdGVtZW50CmVtaXR0ZWQgYnkgdGhlIERCQVBJLiAgIEZvciB0aGUgc3BlY2lhbCBBVVRPQ09NTUlUIGlzb2xhdGlvbiBsZXZlbCwKREJBUEktc3BlY2lmaWMgdGVjaG5pcXVlcyBhcmUgdXNlZCB3aGljaCBpcyB0eXBpY2FsbHkgYW4gYGAuYXV0b2NvbW1pdGBgCmZsYWcgb24gdGhlIERCQVBJIGNvbm5lY3Rpb24gb2JqZWN0LgoKVG8gc2V0IGlzb2xhdGlvbiBsZXZlbCB1c2luZyA6ZnVuYzpgX3NhLmNyZWF0ZV9lbmdpbmVgOjoKCiAgICBlbmdpbmUgPSBjcmVhdGVfZW5naW5lKAogICAgICAgICJwb3N0Z3Jlc3FsK3BnODAwMDovL3Njb3R0OnRpZ2VyQGxvY2FsaG9zdC90ZXN0IiwKICAgICAgICBleGVjdXRpb25fb3B0aW9ucz17CiAgICAgICAgICAgICJpc29sYXRpb25fbGV2ZWwiOiAiUkVQRUFUQUJMRSBSRUFEIgogICAgICAgIH0KICAgICkKClRvIHNldCB1c2luZyBwZXItY29ubmVjdGlvbiBleGVjdXRpb24gb3B0aW9uczo6CgogICAgd2l0aCBlbmdpbmUuY29ubmVjdCgpIGFzIGNvbm46CiAgICAgICAgY29ubiA9IGNvbm4uZXhlY3V0aW9uX29wdGlvbnMoCiAgICAgICAgICAgIGlzb2xhdGlvbl9sZXZlbD0iUkVQRUFUQUJMRSBSRUFEIgogICAgICAgICkKICAgICAgICB3aXRoIGNvbm4uYmVnaW4oKToKICAgICAgICAgICAgIyAuLi4gd29yayB3aXRoIHRyYW5zYWN0aW9uCgpWYWxpZCB2YWx1ZXMgZm9yIGBgaXNvbGF0aW9uX2xldmVsYGAgb24gbW9zdCBQb3N0Z3JlU1FMIGRpYWxlY3RzIGluY2x1ZGU6CgoqIGBgUkVBRCBDT01NSVRURURgYAoqIGBgUkVBRCBVTkNPTU1JVFRFRGBgCiogYGBSRVBFQVRBQkxFIFJFQURgYAoqIGBgU0VSSUFMSVpBQkxFYGAKKiBgYEFVVE9DT01NSVRgYAoKLi4gc2VlYWxzbzo6CgogICAgOnJlZjpgZGJhcGlfYXV0b2NvbW1pdGAKCiAgICA6cmVmOmBwc3ljb3BnMl9pc29sYXRpb25fbGV2ZWxgCgogICAgOnJlZjpgcGc4MDAwX2lzb2xhdGlvbl9sZXZlbGAKCi4uIF9wb3N0Z3Jlc3FsX3NjaGVtYV9yZWZsZWN0aW9uOgoKUmVtb3RlLVNjaGVtYSBUYWJsZSBJbnRyb3NwZWN0aW9uIGFuZCBQb3N0Z3JlU1FMIHNlYXJjaF9wYXRoCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKKipUTDtEUjsqKjoga2VlcCB0aGUgYGBzZWFyY2hfcGF0aGBgIHZhcmlhYmxlIHNldCB0byBpdHMgZGVmYXVsdCBvZiBgYHB1YmxpY2BgLApuYW1lIHNjaGVtYXMgKipvdGhlcioqIHRoYW4gYGBwdWJsaWNgYCBleHBsaWNpdGx5IHdpdGhpbiBgYFRhYmxlYGAgZGVmaW5pdGlvbnMuCgpUaGUgUG9zdGdyZVNRTCBkaWFsZWN0IGNhbiByZWZsZWN0IHRhYmxlcyBmcm9tIGFueSBzY2hlbWEuICBUaGUKOnBhcmFtcmVmOmBfc2NoZW1hLlRhYmxlLnNjaGVtYWAgYXJndW1lbnQsIG9yIGFsdGVybmF0aXZlbHkgdGhlCjpwYXJhbXJlZjpgLk1ldGFEYXRhLnJlZmxlY3Quc2NoZW1hYCBhcmd1bWVudCBkZXRlcm1pbmVzIHdoaWNoIHNjaGVtYSB3aWxsCmJlIHNlYXJjaGVkIGZvciB0aGUgdGFibGUgb3IgdGFibGVzLiAgIFRoZSByZWZsZWN0ZWQgOmNsYXNzOmBfc2NoZW1hLlRhYmxlYApvYmplY3RzCndpbGwgaW4gYWxsIGNhc2VzIHJldGFpbiB0aGlzIGBgLnNjaGVtYWBgIGF0dHJpYnV0ZSBhcyB3YXMgc3BlY2lmaWVkLgpIb3dldmVyLCB3aXRoIHJlZ2FyZHMgdG8gdGFibGVzIHdoaWNoIHRoZXNlIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAKb2JqZWN0cyByZWZlciB0bwp2aWEgZm9yZWlnbiBrZXkgY29uc3RyYWludCwgYSBkZWNpc2lvbiBtdXN0IGJlIG1hZGUgYXMgdG8gaG93IHRoZSBgYC5zY2hlbWFgYAppcyByZXByZXNlbnRlZCBpbiB0aG9zZSByZW1vdGUgdGFibGVzLCBpbiB0aGUgY2FzZSB3aGVyZSB0aGF0IHJlbW90ZQpzY2hlbWEgbmFtZSBpcyBhbHNvIGEgbWVtYmVyIG9mIHRoZSBjdXJyZW50CmBQb3N0Z3JlU1FMIHNlYXJjaCBwYXRoCjxodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zdGF0aWMvZGRsLXNjaGVtYXMuaHRtbCNEREwtU0NIRU1BUy1QQVRIPmBfLgoKQnkgZGVmYXVsdCwgdGhlIFBvc3RncmVTUUwgZGlhbGVjdCBtaW1pY3MgdGhlIGJlaGF2aW9yIGVuY291cmFnZWQgYnkKUG9zdGdyZVNRTCdzIG93biBgYHBnX2dldF9jb25zdHJhaW50ZGVmKClgYCBidWlsdGluIHByb2NlZHVyZS4gIFRoaXMgZnVuY3Rpb24KcmV0dXJucyBhIHNhbXBsZSBkZWZpbml0aW9uIGZvciBhIHBhcnRpY3VsYXIgZm9yZWlnbiBrZXkgY29uc3RyYWludCwKb21pdHRpbmcgdGhlIHJlZmVyZW5jZWQgc2NoZW1hIG5hbWUgZnJvbSB0aGF0IGRlZmluaXRpb24gd2hlbiB0aGUgbmFtZSBpcwphbHNvIGluIHRoZSBQb3N0Z3JlU1FMIHNjaGVtYSBzZWFyY2ggcGF0aC4gIFRoZSBpbnRlcmFjdGlvbiBiZWxvdwppbGx1c3RyYXRlcyB0aGlzIGJlaGF2aW9yOjoKCiAgICB0ZXN0PT4gQ1JFQVRFIFRBQkxFIHRlc3Rfc2NoZW1hLnJlZmVycmVkKGlkIElOVEVHRVIgUFJJTUFSWSBLRVkpOwogICAgQ1JFQVRFIFRBQkxFCiAgICB0ZXN0PT4gQ1JFQVRFIFRBQkxFIHJlZmVycmluZygKICAgIHRlc3QoPiAgICAgICAgIGlkIElOVEVHRVIgUFJJTUFSWSBLRVksCiAgICB0ZXN0KD4gICAgICAgICByZWZlcnJlZF9pZCBJTlRFR0VSIFJFRkVSRU5DRVMgdGVzdF9zY2hlbWEucmVmZXJyZWQoaWQpKTsKICAgIENSRUFURSBUQUJMRQogICAgdGVzdD0+IFNFVCBzZWFyY2hfcGF0aCBUTyBwdWJsaWMsIHRlc3Rfc2NoZW1hOwogICAgdGVzdD0+IFNFTEVDVCBwZ19jYXRhbG9nLnBnX2dldF9jb25zdHJhaW50ZGVmKHIub2lkLCB0cnVlKSBGUk9NCiAgICB0ZXN0LT4gcGdfY2F0YWxvZy5wZ19jbGFzcyBjIEpPSU4gcGdfY2F0YWxvZy5wZ19uYW1lc3BhY2UgbgogICAgdGVzdC0+IE9OIG4ub2lkID0gYy5yZWxuYW1lc3BhY2UKICAgIHRlc3QtPiBKT0lOIHBnX2NhdGFsb2cucGdfY29uc3RyYWludCByICBPTiBjLm9pZCA9IHIuY29ucmVsaWQKICAgIHRlc3QtPiBXSEVSRSBjLnJlbG5hbWU9J3JlZmVycmluZycgQU5EIHIuY29udHlwZSA9ICdmJwogICAgdGVzdC0+IDsKICAgICAgICAgICAgICAgICAgIHBnX2dldF9jb25zdHJhaW50ZGVmCiAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KICAgICBGT1JFSUdOIEtFWSAocmVmZXJyZWRfaWQpIFJFRkVSRU5DRVMgcmVmZXJyZWQoaWQpCiAgICAoMSByb3cpCgpBYm92ZSwgd2UgY3JlYXRlZCBhIHRhYmxlIGBgcmVmZXJyZWRgYCBhcyBhIG1lbWJlciBvZiB0aGUgcmVtb3RlIHNjaGVtYQpgYHRlc3Rfc2NoZW1hYGAsIGhvd2V2ZXIgd2hlbiB3ZSBhZGRlZCBgYHRlc3Rfc2NoZW1hYGAgdG8gdGhlClBHIGBgc2VhcmNoX3BhdGhgYCBhbmQgdGhlbiBhc2tlZCBgYHBnX2dldF9jb25zdHJhaW50ZGVmKClgYCBmb3IgdGhlCmBgRk9SRUlHTiBLRVlgYCBzeW50YXgsIGBgdGVzdF9zY2hlbWFgYCB3YXMgbm90IGluY2x1ZGVkIGluIHRoZSBvdXRwdXQgb2YKdGhlIGZ1bmN0aW9uLgoKT24gdGhlIG90aGVyIGhhbmQsIGlmIHdlIHNldCB0aGUgc2VhcmNoIHBhdGggYmFjayB0byB0aGUgdHlwaWNhbCBkZWZhdWx0Cm9mIGBgcHVibGljYGA6OgoKICAgIHRlc3Q9PiBTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOwogICAgU0VUCgpUaGUgc2FtZSBxdWVyeSBhZ2FpbnN0IGBgcGdfZ2V0X2NvbnN0cmFpbnRkZWYoKWBgIG5vdyByZXR1cm5zIHRoZSBmdWxseQpzY2hlbWEtcXVhbGlmaWVkIG5hbWUgZm9yIHVzOjoKCiAgICB0ZXN0PT4gU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X2NvbnN0cmFpbnRkZWYoci5vaWQsIHRydWUpIEZST00KICAgIHRlc3QtPiBwZ19jYXRhbG9nLnBnX2NsYXNzIGMgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuCiAgICB0ZXN0LT4gT04gbi5vaWQgPSBjLnJlbG5hbWVzcGFjZQogICAgdGVzdC0+IEpPSU4gcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IHIgIE9OIGMub2lkID0gci5jb25yZWxpZAogICAgdGVzdC0+IFdIRVJFIGMucmVsbmFtZT0ncmVmZXJyaW5nJyBBTkQgci5jb250eXBlID0gJ2YnOwogICAgICAgICAgICAgICAgICAgICAgICAgcGdfZ2V0X2NvbnN0cmFpbnRkZWYKICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgIEZPUkVJR04gS0VZIChyZWZlcnJlZF9pZCkgUkVGRVJFTkNFUyB0ZXN0X3NjaGVtYS5yZWZlcnJlZChpZCkKICAgICgxIHJvdykKClNRTEFsY2hlbXkgd2lsbCBieSBkZWZhdWx0IHVzZSB0aGUgcmV0dXJuIHZhbHVlIG9mIGBgcGdfZ2V0X2NvbnN0cmFpbnRkZWYoKWBgCmluIG9yZGVyIHRvIGRldGVybWluZSB0aGUgcmVtb3RlIHNjaGVtYSBuYW1lLiAgVGhhdCBpcywgaWYgb3VyIGBgc2VhcmNoX3BhdGhgYAp3ZXJlIHNldCB0byBpbmNsdWRlIGBgdGVzdF9zY2hlbWFgYCwgYW5kIHdlIGludm9rZWQgYSB0YWJsZQpyZWZsZWN0aW9uIHByb2Nlc3MgYXMgZm9sbG93czo6CgogICAgPj4+IGZyb20gc3FsYWxjaGVteSBpbXBvcnQgVGFibGUsIE1ldGFEYXRhLCBjcmVhdGVfZW5naW5lCiAgICA+Pj4gZW5naW5lID0gY3JlYXRlX2VuZ2luZSgicG9zdGdyZXNxbDovL3Njb3R0OnRpZ2VyQGxvY2FsaG9zdC90ZXN0IikKICAgID4+PiB3aXRoIGVuZ2luZS5jb25uZWN0KCkgYXMgY29ubjoKICAgIC4uLiAgICAgY29ubi5leGVjdXRlKCJTRVQgc2VhcmNoX3BhdGggVE8gdGVzdF9zY2hlbWEsIHB1YmxpYyIpCiAgICAuLi4gICAgIG1ldGEgPSBNZXRhRGF0YSgpCiAgICAuLi4gICAgIHJlZmVycmluZyA9IFRhYmxlKCdyZWZlcnJpbmcnLCBtZXRhLAogICAgLi4uICAgICAgICAgICAgICAgICAgICAgICBhdXRvbG9hZD1UcnVlLCBhdXRvbG9hZF93aXRoPWNvbm4pCiAgICAuLi4KICAgIDxzcWxhbGNoZW15LmVuZ2luZS5yZXN1bHQuUmVzdWx0UHJveHkgb2JqZWN0IGF0IDB4MTAxNjEyZWQwPgoKVGhlIGFib3ZlIHByb2Nlc3Mgd291bGQgZGVsaXZlciB0byB0aGUgOmF0dHI6YF9zY2hlbWEuTWV0YURhdGEudGFibGVzYApjb2xsZWN0aW9uCmBgcmVmZXJyZWRgYCB0YWJsZSBuYW1lZCAqKndpdGhvdXQqKiB0aGUgc2NoZW1hOjoKCiAgICA+Pj4gbWV0YS50YWJsZXNbJ3JlZmVycmVkJ10uc2NoZW1hIGlzIE5vbmUKICAgIFRydWUKClRvIGFsdGVyIHRoZSBiZWhhdmlvciBvZiByZWZsZWN0aW9uIHN1Y2ggdGhhdCB0aGUgcmVmZXJyZWQgc2NoZW1hIGlzCm1haW50YWluZWQgcmVnYXJkbGVzcyBvZiB0aGUgYGBzZWFyY2hfcGF0aGBgIHNldHRpbmcsIHVzZSB0aGUKYGBwb3N0Z3Jlc3FsX2lnbm9yZV9zZWFyY2hfcGF0aGBgIG9wdGlvbiwgd2hpY2ggY2FuIGJlIHNwZWNpZmllZCBhcyBhCmRpYWxlY3Qtc3BlY2lmaWMgYXJndW1lbnQgdG8gYm90aCA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgIGFzIHdlbGwgYXMKOm1ldGg6YF9zY2hlbWEuTWV0YURhdGEucmVmbGVjdGA6OgoKICAgID4+PiB3aXRoIGVuZ2luZS5jb25uZWN0KCkgYXMgY29ubjoKICAgIC4uLiAgICAgY29ubi5leGVjdXRlKCJTRVQgc2VhcmNoX3BhdGggVE8gdGVzdF9zY2hlbWEsIHB1YmxpYyIpCiAgICAuLi4gICAgIG1ldGEgPSBNZXRhRGF0YSgpCiAgICAuLi4gICAgIHJlZmVycmluZyA9IFRhYmxlKCdyZWZlcnJpbmcnLCBtZXRhLCBhdXRvbG9hZD1UcnVlLAogICAgLi4uICAgICAgICAgICAgICAgICAgICAgICBhdXRvbG9hZF93aXRoPWNvbm4sCiAgICAuLi4gICAgICAgICAgICAgICAgICAgICAgIHBvc3RncmVzcWxfaWdub3JlX3NlYXJjaF9wYXRoPVRydWUpCiAgICAuLi4KICAgIDxzcWxhbGNoZW15LmVuZ2luZS5yZXN1bHQuUmVzdWx0UHJveHkgb2JqZWN0IGF0IDB4MTAxNjEyNmQwPgoKV2Ugd2lsbCBub3cgaGF2ZSBgYHRlc3Rfc2NoZW1hLnJlZmVycmVkYGAgc3RvcmVkIGFzIHNjaGVtYS1xdWFsaWZpZWQ6OgoKICAgID4+PiBtZXRhLnRhYmxlc1sndGVzdF9zY2hlbWEucmVmZXJyZWQnXS5zY2hlbWEKICAgICd0ZXN0X3NjaGVtYScKCi4uIHNpZGViYXI6OiBCZXN0IFByYWN0aWNlcyBmb3IgUG9zdGdyZVNRTCBTY2hlbWEgcmVmbGVjdGlvbgoKICAgIFRoZSBkZXNjcmlwdGlvbiBvZiBQb3N0Z3JlU1FMIHNjaGVtYSByZWZsZWN0aW9uIGJlaGF2aW9yIGlzIGNvbXBsZXgsIGFuZAogICAgaXMgdGhlIHByb2R1Y3Qgb2YgbWFueSB5ZWFycyBvZiBkZWFsaW5nIHdpdGggd2lkZWx5IHZhcmllZCB1c2UgY2FzZXMgYW5kCiAgICB1c2VyIHByZWZlcmVuY2VzLiBCdXQgaW4gZmFjdCwgdGhlcmUncyBubyBuZWVkIHRvIHVuZGVyc3RhbmQgYW55IG9mIGl0IGlmCiAgICB5b3UganVzdCBzdGljayB0byB0aGUgc2ltcGxlc3QgdXNlIHBhdHRlcm46IGxlYXZlIHRoZSBgYHNlYXJjaF9wYXRoYGAgc2V0CiAgICB0byBpdHMgZGVmYXVsdCBvZiBgYHB1YmxpY2BgIG9ubHksIG5ldmVyIHJlZmVyIHRvIHRoZSBuYW1lIGBgcHVibGljYGAgYXMKICAgIGFuIGV4cGxpY2l0IHNjaGVtYSBuYW1lIG90aGVyd2lzZSwgYW5kIHJlZmVyIHRvIGFsbCBvdGhlciBzY2hlbWEgbmFtZXMKICAgIGV4cGxpY2l0bHkgd2hlbiBidWlsZGluZyB1cCBhIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAgb2JqZWN0LiAgVGhlIG9wdGlvbnMKICAgIGRlc2NyaWJlZCBoZXJlIGFyZSBvbmx5IGZvciB0aG9zZSB1c2VycyB3aG8gY2FuJ3QsIG9yIHByZWZlciBub3QgdG8sIHN0YXkKICAgIHdpdGhpbiB0aGVzZSBndWlkZWxpbmVzLgoKTm90ZSB0aGF0ICoqaW4gYWxsIGNhc2VzKiosIHRoZSAiZGVmYXVsdCIgc2NoZW1hIGlzIGFsd2F5cyByZWZsZWN0ZWQgYXMKYGBOb25lYGAuIFRoZSAiZGVmYXVsdCIgc2NoZW1hIG9uIFBvc3RncmVTUUwgaXMgdGhhdCB3aGljaCBpcyByZXR1cm5lZCBieSB0aGUKUG9zdGdyZVNRTCBgYGN1cnJlbnRfc2NoZW1hKClgYCBmdW5jdGlvbi4gIE9uIGEgdHlwaWNhbCBQb3N0Z3JlU1FMCmluc3RhbGxhdGlvbiwgdGhpcyBpcyB0aGUgbmFtZSBgYHB1YmxpY2BgLiAgU28gYSB0YWJsZSB0aGF0IHJlZmVycyB0byBhbm90aGVyCndoaWNoIGlzIGluIHRoZSBgYHB1YmxpY2BgIChpLmUuIGRlZmF1bHQpIHNjaGVtYSB3aWxsIGFsd2F5cyBoYXZlIHRoZQpgYC5zY2hlbWFgYCBhdHRyaWJ1dGUgc2V0IHRvIGBgTm9uZWBgLgoKLi4gdmVyc2lvbmFkZGVkOjogMC45LjIgQWRkZWQgdGhlIGBgcG9zdGdyZXNxbF9pZ25vcmVfc2VhcmNoX3BhdGhgYAogICBkaWFsZWN0LWxldmVsIG9wdGlvbiBhY2NlcHRlZCBieSA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgIGFuZAogICA6bWV0aDpgX3NjaGVtYS5NZXRhRGF0YS5yZWZsZWN0YC4KCgouLiBzZWVhbHNvOjoKCiAgICBgVGhlIFNjaGVtYSBTZWFyY2ggUGF0aAogICAgPGh0dHA6Ly93d3cucG9zdGdyZXNxbC5vcmcvZG9jcy85LjAvc3RhdGljL2RkbC1zY2hlbWFzLmh0bWwjRERMLVNDSEVNQVMtUEFUSD5gXwogICAgLSBvbiB0aGUgUG9zdGdyZVNRTCB3ZWJzaXRlLgoKSU5TRVJUL1VQREFURS4uLlJFVFVSTklORwotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgZGlhbGVjdCBzdXBwb3J0cyBQRyA4LjIncyBgYElOU0VSVC4uUkVUVVJOSU5HYGAsIGBgVVBEQVRFLi5SRVRVUk5JTkdgYCBhbmQKYGBERUxFVEUuLlJFVFVSTklOR2BgIHN5bnRheGVzLiAgIGBgSU5TRVJULi5SRVRVUk5JTkdgYCBpcyB1c2VkIGJ5IGRlZmF1bHQKZm9yIHNpbmdsZS1yb3cgSU5TRVJUIHN0YXRlbWVudHMgaW4gb3JkZXIgdG8gZmV0Y2ggbmV3bHkgZ2VuZXJhdGVkCnByaW1hcnkga2V5IGlkZW50aWZpZXJzLiAgIFRvIHNwZWNpZnkgYW4gZXhwbGljaXQgYGBSRVRVUk5JTkdgYCBjbGF1c2UsCnVzZSB0aGUgOm1ldGg6YC5fVXBkYXRlQmFzZS5yZXR1cm5pbmdgIG1ldGhvZCBvbiBhIHBlci1zdGF0ZW1lbnQgYmFzaXM6OgoKICAgICMgSU5TRVJULi5SRVRVUk5JTkcKICAgIHJlc3VsdCA9IHRhYmxlLmluc2VydCgpLnJldHVybmluZyh0YWJsZS5jLmNvbDEsIHRhYmxlLmMuY29sMikuXAogICAgICAgIHZhbHVlcyhuYW1lPSdmb28nKQogICAgcHJpbnQocmVzdWx0LmZldGNoYWxsKCkpCgogICAgIyBVUERBVEUuLlJFVFVSTklORwogICAgcmVzdWx0ID0gdGFibGUudXBkYXRlKCkucmV0dXJuaW5nKHRhYmxlLmMuY29sMSwgdGFibGUuYy5jb2wyKS5cCiAgICAgICAgd2hlcmUodGFibGUuYy5uYW1lPT0nZm9vJykudmFsdWVzKG5hbWU9J2JhcicpCiAgICBwcmludChyZXN1bHQuZmV0Y2hhbGwoKSkKCiAgICAjIERFTEVURS4uUkVUVVJOSU5HCiAgICByZXN1bHQgPSB0YWJsZS5kZWxldGUoKS5yZXR1cm5pbmcodGFibGUuYy5jb2wxLCB0YWJsZS5jLmNvbDIpLlwKICAgICAgICB3aGVyZSh0YWJsZS5jLm5hbWU9PSdmb28nKQogICAgcHJpbnQocmVzdWx0LmZldGNoYWxsKCkpCgouLiBfcG9zdGdyZXNxbF9pbnNlcnRfb25fY29uZmxpY3Q6CgpJTlNFUlQuLi5PTiBDT05GTElDVCAoVXBzZXJ0KQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClN0YXJ0aW5nIHdpdGggdmVyc2lvbiA5LjUsIFBvc3RncmVTUUwgYWxsb3dzICJ1cHNlcnRzIiAodXBkYXRlIG9yIGluc2VydCkgb2YKcm93cyBpbnRvIGEgdGFibGUgdmlhIHRoZSBgYE9OIENPTkZMSUNUYGAgY2xhdXNlIG9mIHRoZSBgYElOU0VSVGBgIHN0YXRlbWVudC4gQQpjYW5kaWRhdGUgcm93IHdpbGwgb25seSBiZSBpbnNlcnRlZCBpZiB0aGF0IHJvdyBkb2VzIG5vdCB2aW9sYXRlIGFueSB1bmlxdWUKY29uc3RyYWludHMuICBJbiB0aGUgY2FzZSBvZiBhIHVuaXF1ZSBjb25zdHJhaW50IHZpb2xhdGlvbiwgYSBzZWNvbmRhcnkgYWN0aW9uCmNhbiBvY2N1ciB3aGljaCBjYW4gYmUgZWl0aGVyICJETyBVUERBVEUiLCBpbmRpY2F0aW5nIHRoYXQgdGhlIGRhdGEgaW4gdGhlCnRhcmdldCByb3cgc2hvdWxkIGJlIHVwZGF0ZWQsIG9yICJETyBOT1RISU5HIiwgd2hpY2ggaW5kaWNhdGVzIHRvIHNpbGVudGx5IHNraXAKdGhpcyByb3cuCgpDb25mbGljdHMgYXJlIGRldGVybWluZWQgdXNpbmcgZXhpc3RpbmcgdW5pcXVlIGNvbnN0cmFpbnRzIGFuZCBpbmRleGVzLiAgVGhlc2UKY29uc3RyYWludHMgbWF5IGJlIGlkZW50aWZpZWQgZWl0aGVyIHVzaW5nIHRoZWlyIG5hbWUgYXMgc3RhdGVkIGluIERETCwKb3IgdGhleSBtYXkgYmUgKmluZmVycmVkKiBieSBzdGF0aW5nIHRoZSBjb2x1bW5zIGFuZCBjb25kaXRpb25zIHRoYXQgY29tcHJpc2UKdGhlIGluZGV4ZXMuCgpTUUxBbGNoZW15IHByb3ZpZGVzIGBgT04gQ09ORkxJQ1RgYCBzdXBwb3J0IHZpYSB0aGUgUG9zdGdyZVNRTC1zcGVjaWZpYwo6ZnVuYzpgX3Bvc3RncmVzcWwuaW5zZXJ0KClgIGZ1bmN0aW9uLCB3aGljaCBwcm92aWRlcwp0aGUgZ2VuZXJhdGl2ZSBtZXRob2RzIDptZXRoOmB+LnBvc3RncmVzcWwuSW5zZXJ0Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZWAKYW5kIDptZXRoOmB+LnBvc3RncmVzcWwuSW5zZXJ0Lm9uX2NvbmZsaWN0X2RvX25vdGhpbmdgOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZGlhbGVjdHMucG9zdGdyZXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgaW5zZXJ0X3N0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcygKICAgICAgICBpZD0nc29tZV9leGlzdGluZ19pZCcsCiAgICAgICAgZGF0YT0naW5zZXJ0ZWQgdmFsdWUnKQoKICAgIGRvX25vdGhpbmdfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX25vdGhpbmcoCiAgICAgICAgaW5kZXhfZWxlbWVudHM9WydpZCddCiAgICApCgogICAgY29ubi5leGVjdXRlKGRvX25vdGhpbmdfc3RtdCkKCiAgICBkb191cGRhdGVfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBjb25zdHJhaW50PSdwa19teV90YWJsZScsCiAgICAgICAgc2V0Xz1kaWN0KGRhdGE9J3VwZGF0ZWQgdmFsdWUnKQogICAgKQoKICAgIGNvbm4uZXhlY3V0ZShkb191cGRhdGVfc3RtdCkKCkJvdGggbWV0aG9kcyBzdXBwbHkgdGhlICJ0YXJnZXQiIG9mIHRoZSBjb25mbGljdCB1c2luZyBlaXRoZXIgdGhlCm5hbWVkIGNvbnN0cmFpbnQgb3IgYnkgY29sdW1uIGluZmVyZW5jZToKCiogVGhlIDpwYXJhbXJlZjpgLkluc2VydC5vbl9jb25mbGljdF9kb191cGRhdGUuaW5kZXhfZWxlbWVudHNgIGFyZ3VtZW50CiAgc3BlY2lmaWVzIGEgc2VxdWVuY2UgY29udGFpbmluZyBzdHJpbmcgY29sdW1uIG5hbWVzLCA6Y2xhc3M6YF9zY2hlbWEuQ29sdW1uYAogIG9iamVjdHMsIGFuZC9vciBTUUwgZXhwcmVzc2lvbiBlbGVtZW50cywgd2hpY2ggd291bGQgaWRlbnRpZnkgYSB1bmlxdWUKICBpbmRleDo6CgogICAgZG9fdXBkYXRlX3N0bXQgPSBpbnNlcnRfc3RtdC5vbl9jb25mbGljdF9kb191cGRhdGUoCiAgICAgICAgaW5kZXhfZWxlbWVudHM9WydpZCddLAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJykKICAgICkKCiAgICBkb191cGRhdGVfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBpbmRleF9lbGVtZW50cz1bbXlfdGFibGUuYy5pZF0sCiAgICAgICAgc2V0Xz1kaWN0KGRhdGE9J3VwZGF0ZWQgdmFsdWUnKQogICAgKQoKKiBXaGVuIHVzaW5nIDpwYXJhbXJlZjpgLkluc2VydC5vbl9jb25mbGljdF9kb191cGRhdGUuaW5kZXhfZWxlbWVudHNgIHRvCiAgaW5mZXIgYW4gaW5kZXgsIGEgcGFydGlhbCBpbmRleCBjYW4gYmUgaW5mZXJyZWQgYnkgYWxzbyBzcGVjaWZ5aW5nIHRoZQogIHVzZSB0aGUgOnBhcmFtcmVmOmAuSW5zZXJ0Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZS5pbmRleF93aGVyZWAgcGFyYW1ldGVyOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZGlhbGVjdHMucG9zdGdyZXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgc3RtdCA9IGluc2VydChteV90YWJsZSkudmFsdWVzKHVzZXJfZW1haWw9J2FAYi5jb20nLCBkYXRhPSdpbnNlcnRlZCBkYXRhJykKICAgIHN0bXQgPSBzdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBpbmRleF9lbGVtZW50cz1bbXlfdGFibGUuYy51c2VyX2VtYWlsXSwKICAgICAgICBpbmRleF93aGVyZT1teV90YWJsZS5jLnVzZXJfZW1haWwubGlrZSgnJUBnbWFpbC5jb20nKSwKICAgICAgICBzZXRfPWRpY3QoZGF0YT1zdG10LmV4Y2x1ZGVkLmRhdGEpCiAgICAgICAgKQogICAgY29ubi5leGVjdXRlKHN0bXQpCgoqIFRoZSA6cGFyYW1yZWY6YC5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlLmNvbnN0cmFpbnRgIGFyZ3VtZW50IGlzCiAgdXNlZCB0byBzcGVjaWZ5IGFuIGluZGV4IGRpcmVjdGx5IHJhdGhlciB0aGFuIGluZmVycmluZyBpdC4gIFRoaXMgY2FuIGJlCiAgdGhlIG5hbWUgb2YgYSBVTklRVUUgY29uc3RyYWludCwgYSBQUklNQVJZIEtFWSBjb25zdHJhaW50LCBvciBhbiBJTkRFWDo6CgogICAgZG9fdXBkYXRlX3N0bXQgPSBpbnNlcnRfc3RtdC5vbl9jb25mbGljdF9kb191cGRhdGUoCiAgICAgICAgY29uc3RyYWludD0nbXlfdGFibGVfaWR4XzEnLAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJykKICAgICkKCiAgICBkb191cGRhdGVfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBjb25zdHJhaW50PSdteV90YWJsZV9waycsCiAgICAgICAgc2V0Xz1kaWN0KGRhdGE9J3VwZGF0ZWQgdmFsdWUnKQogICAgKQoKKiBUaGUgOnBhcmFtcmVmOmAuSW5zZXJ0Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZS5jb25zdHJhaW50YCBhcmd1bWVudCBtYXkKICBhbHNvIHJlZmVyIHRvIGEgU1FMQWxjaGVteSBjb25zdHJ1Y3QgcmVwcmVzZW50aW5nIGEgY29uc3RyYWludCwKICBlLmcuIDpjbGFzczpgLlVuaXF1ZUNvbnN0cmFpbnRgLCA6Y2xhc3M6YC5QcmltYXJ5S2V5Q29uc3RyYWludGAsCiAgOmNsYXNzOmAuSW5kZXhgLCBvciA6Y2xhc3M6YC5FeGNsdWRlQ29uc3RyYWludGAuICAgSW4gdGhpcyB1c2UsCiAgaWYgdGhlIGNvbnN0cmFpbnQgaGFzIGEgbmFtZSwgaXQgaXMgdXNlZCBkaXJlY3RseS4gIE90aGVyd2lzZSwgaWYgdGhlCiAgY29uc3RyYWludCBpcyB1bm5hbWVkLCB0aGVuIGluZmVyZW5jZSB3aWxsIGJlIHVzZWQsIHdoZXJlIHRoZSBleHByZXNzaW9ucwogIGFuZCBvcHRpb25hbCBXSEVSRSBjbGF1c2Ugb2YgdGhlIGNvbnN0cmFpbnQgd2lsbCBiZSBzcGVsbGVkIG91dCBpbiB0aGUKICBjb25zdHJ1Y3QuICBUaGlzIHVzZSBpcyBlc3BlY2lhbGx5IGNvbnZlbmllbnQKICB0byByZWZlciB0byB0aGUgbmFtZWQgb3IgdW5uYW1lZCBwcmltYXJ5IGtleSBvZiBhIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAKICB1c2luZyB0aGUKICA6YXR0cjpgX3NjaGVtYS5UYWJsZS5wcmltYXJ5X2tleWAgYXR0cmlidXRlOjoKCiAgICBkb191cGRhdGVfc3RtdCA9IGluc2VydF9zdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBjb25zdHJhaW50PW15X3RhYmxlLnByaW1hcnlfa2V5LAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJykKICAgICkKCmBgT04gQ09ORkxJQ1QuLi5ETyBVUERBVEVgYCBpcyB1c2VkIHRvIHBlcmZvcm0gYW4gdXBkYXRlIG9mIHRoZSBhbHJlYWR5CmV4aXN0aW5nIHJvdywgdXNpbmcgYW55IGNvbWJpbmF0aW9uIG9mIG5ldyB2YWx1ZXMgYXMgd2VsbCBhcyB2YWx1ZXMKZnJvbSB0aGUgcHJvcG9zZWQgaW5zZXJ0aW9uLiAgIFRoZXNlIHZhbHVlcyBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZQo6cGFyYW1yZWY6YC5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlLnNldF9gIHBhcmFtZXRlci4gIFRoaXMKcGFyYW1ldGVyIGFjY2VwdHMgYSBkaWN0aW9uYXJ5IHdoaWNoIGNvbnNpc3RzIG9mIGRpcmVjdCB2YWx1ZXMKZm9yIFVQREFURTo6CgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IGluc2VydAoKICAgIHN0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcyhpZD0nc29tZV9pZCcsIGRhdGE9J2luc2VydGVkIHZhbHVlJykKICAgIGRvX3VwZGF0ZV9zdG10ID0gc3RtdC5vbl9jb25mbGljdF9kb191cGRhdGUoCiAgICAgICAgaW5kZXhfZWxlbWVudHM9WydpZCddLAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJykKICAgICAgICApCiAgICBjb25uLmV4ZWN1dGUoZG9fdXBkYXRlX3N0bXQpCgouLiB3YXJuaW5nOjoKCiAgICBUaGUgOm1ldGg6YF9leHByZXNzaW9uLkluc2VydC5vbl9jb25mbGljdF9kb191cGRhdGVgCiAgICBtZXRob2QgZG9lcyAqKm5vdCoqIHRha2UgaW50bwogICAgYWNjb3VudCBQeXRob24tc2lkZSBkZWZhdWx0IFVQREFURSB2YWx1ZXMgb3IgZ2VuZXJhdGlvbiBmdW5jdGlvbnMsIGUuZy4KICAgIHRob3NlIHNwZWNpZmllZCB1c2luZyA6cGFyYW1yZWY6YF9zY2hlbWEuQ29sdW1uLm9udXBkYXRlYC4KICAgIFRoZXNlIHZhbHVlcyB3aWxsIG5vdCBiZSBleGVyY2lzZWQgZm9yIGFuIE9OIENPTkZMSUNUIHN0eWxlIG9mIFVQREFURSwKICAgIHVubGVzcyB0aGV5IGFyZSBtYW51YWxseSBzcGVjaWZpZWQgaW4gdGhlCiAgICA6cGFyYW1yZWY6YC5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlLnNldF9gIGRpY3Rpb25hcnkuCgpJbiBvcmRlciB0byByZWZlciB0byB0aGUgcHJvcG9zZWQgaW5zZXJ0aW9uIHJvdywgdGhlIHNwZWNpYWwgYWxpYXMKOmF0dHI6YH4ucG9zdGdyZXNxbC5JbnNlcnQuZXhjbHVkZWRgIGlzIGF2YWlsYWJsZSBhcyBhbiBhdHRyaWJ1dGUgb24KdGhlIDpjbGFzczpgX3Bvc3RncmVzcWwuSW5zZXJ0YCBvYmplY3Q7IHRoaXMgb2JqZWN0IGlzIGEKOmNsYXNzOmBfZXhwcmVzc2lvbi5Db2x1bW5Db2xsZWN0aW9uYAp3aGljaCBhbGlhcyBjb250YWlucyBhbGwgY29sdW1ucyBvZiB0aGUgdGFyZ2V0CnRhYmxlOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZGlhbGVjdHMucG9zdGdyZXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgc3RtdCA9IGluc2VydChteV90YWJsZSkudmFsdWVzKAogICAgICAgIGlkPSdzb21lX2lkJywKICAgICAgICBkYXRhPSdpbnNlcnRlZCB2YWx1ZScsCiAgICAgICAgYXV0aG9yPSdqbGgnKQogICAgZG9fdXBkYXRlX3N0bXQgPSBzdG10Lm9uX2NvbmZsaWN0X2RvX3VwZGF0ZSgKICAgICAgICBpbmRleF9lbGVtZW50cz1bJ2lkJ10sCiAgICAgICAgc2V0Xz1kaWN0KGRhdGE9J3VwZGF0ZWQgdmFsdWUnLCBhdXRob3I9c3RtdC5leGNsdWRlZC5hdXRob3IpCiAgICAgICAgKQogICAgY29ubi5leGVjdXRlKGRvX3VwZGF0ZV9zdG10KQoKVGhlIDptZXRoOmBfZXhwcmVzc2lvbi5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlYCBtZXRob2QgYWxzbyBhY2NlcHRzCmEgV0hFUkUgY2xhdXNlIHVzaW5nIHRoZSA6cGFyYW1yZWY6YC5JbnNlcnQub25fY29uZmxpY3RfZG9fdXBkYXRlLndoZXJlYApwYXJhbWV0ZXIsIHdoaWNoIHdpbGwgbGltaXQgdGhvc2Ugcm93cyB3aGljaCByZWNlaXZlIGFuIFVQREFURTo6CgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IGluc2VydAoKICAgIHN0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcygKICAgICAgICBpZD0nc29tZV9pZCcsCiAgICAgICAgZGF0YT0naW5zZXJ0ZWQgdmFsdWUnLAogICAgICAgIGF1dGhvcj0namxoJykKICAgIG9uX3VwZGF0ZV9zdG10ID0gc3RtdC5vbl9jb25mbGljdF9kb191cGRhdGUoCiAgICAgICAgaW5kZXhfZWxlbWVudHM9WydpZCddLAogICAgICAgIHNldF89ZGljdChkYXRhPSd1cGRhdGVkIHZhbHVlJywgYXV0aG9yPXN0bXQuZXhjbHVkZWQuYXV0aG9yKQogICAgICAgIHdoZXJlPShteV90YWJsZS5jLnN0YXR1cyA9PSAyKQogICAgICAgICkKICAgIGNvbm4uZXhlY3V0ZShvbl91cGRhdGVfc3RtdCkKCmBgT04gQ09ORkxJQ1RgYCBtYXkgYWxzbyBiZSB1c2VkIHRvIHNraXAgaW5zZXJ0aW5nIGEgcm93IGVudGlyZWx5CmlmIGFueSBjb25mbGljdCB3aXRoIGEgdW5pcXVlIG9yIGV4Y2x1c2lvbiBjb25zdHJhaW50IG9jY3VyczsgYmVsb3cKdGhpcyBpcyBpbGx1c3RyYXRlZCB1c2luZyB0aGUKOm1ldGg6YH4ucG9zdGdyZXNxbC5JbnNlcnQub25fY29uZmxpY3RfZG9fbm90aGluZ2AgbWV0aG9kOjoKCiAgICBmcm9tIHNxbGFsY2hlbXkuZGlhbGVjdHMucG9zdGdyZXNxbCBpbXBvcnQgaW5zZXJ0CgogICAgc3RtdCA9IGluc2VydChteV90YWJsZSkudmFsdWVzKGlkPSdzb21lX2lkJywgZGF0YT0naW5zZXJ0ZWQgdmFsdWUnKQogICAgc3RtdCA9IHN0bXQub25fY29uZmxpY3RfZG9fbm90aGluZyhpbmRleF9lbGVtZW50cz1bJ2lkJ10pCiAgICBjb25uLmV4ZWN1dGUoc3RtdCkKCklmIGBgRE8gTk9USElOR2BgIGlzIHVzZWQgd2l0aG91dCBzcGVjaWZ5aW5nIGFueSBjb2x1bW5zIG9yIGNvbnN0cmFpbnQsCml0IGhhcyB0aGUgZWZmZWN0IG9mIHNraXBwaW5nIHRoZSBJTlNFUlQgZm9yIGFueSB1bmlxdWUgb3IgZXhjbHVzaW9uCmNvbnN0cmFpbnQgdmlvbGF0aW9uIHdoaWNoIG9jY3Vyczo6CgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IGluc2VydAoKICAgIHN0bXQgPSBpbnNlcnQobXlfdGFibGUpLnZhbHVlcyhpZD0nc29tZV9pZCcsIGRhdGE9J2luc2VydGVkIHZhbHVlJykKICAgIHN0bXQgPSBzdG10Lm9uX2NvbmZsaWN0X2RvX25vdGhpbmcoKQogICAgY29ubi5leGVjdXRlKHN0bXQpCgouLiB2ZXJzaW9uYWRkZWQ6OiAxLjEgQWRkZWQgc3VwcG9ydCBmb3IgUG9zdGdyZVNRTCBPTiBDT05GTElDVCBjbGF1c2VzCgouLiBzZWVhbHNvOjoKCiAgICBgSU5TRVJUIC4uIE9OIENPTkZMSUNUCiAgICA8aHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzL2N1cnJlbnQvc3RhdGljL3NxbC1pbnNlcnQuaHRtbCNTUUwtT04tQ09ORkxJQ1Q+YF8KICAgIC0gaW4gdGhlIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbi4KCi4uIF9wb3N0Z3Jlc3FsX21hdGNoOgoKRnVsbCBUZXh0IFNlYXJjaAotLS0tLS0tLS0tLS0tLS0tCgpTUUxBbGNoZW15IG1ha2VzIGF2YWlsYWJsZSB0aGUgUG9zdGdyZVNRTCBgYEBAYGAgb3BlcmF0b3IgdmlhIHRoZQo6bWV0aDpgX2V4cHJlc3Npb24uQ29sdW1uRWxlbWVudC5tYXRjaGAKbWV0aG9kIG9uIGFueSB0ZXh0dWFsIGNvbHVtbiBleHByZXNzaW9uLgpPbiBhIFBvc3RncmVTUUwgZGlhbGVjdCwgYW4gZXhwcmVzc2lvbiBsaWtlIHRoZSBmb2xsb3dpbmc6OgoKICAgIHNlbGVjdChbc29tZXRhYmxlLmMudGV4dC5tYXRjaCgic2VhcmNoIHN0cmluZyIpXSkKCndpbGwgZW1pdCB0byB0aGUgZGF0YWJhc2U6OgoKICAgIFNFTEVDVCB0ZXh0IEBAIHRvX3RzcXVlcnkoJ3NlYXJjaCBzdHJpbmcnKSBGUk9NIHRhYmxlCgpUaGUgUG9zdGdyZVNRTCB0ZXh0IHNlYXJjaCBmdW5jdGlvbnMgc3VjaCBhcyBgYHRvX3RzcXVlcnkoKWBgCmFuZCBgYHRvX3RzdmVjdG9yKClgYCBhcmUgYXZhaWxhYmxlCmV4cGxpY2l0bHkgdXNpbmcgdGhlIHN0YW5kYXJkIDpkYXRhOmAuZnVuY2AgY29uc3RydWN0LiAgRm9yIGV4YW1wbGU6OgoKICAgIHNlbGVjdChbCiAgICAgICAgZnVuYy50b190c3ZlY3RvcignZmF0IGNhdHMgYXRlIHJhdHMnKS5tYXRjaCgnY2F0ICYgcmF0JykKICAgIF0pCgpFbWl0cyB0aGUgZXF1aXZhbGVudCBvZjo6CgogICAgU0VMRUNUIHRvX3RzdmVjdG9yKCdmYXQgY2F0cyBhdGUgcmF0cycpIEBAIHRvX3RzcXVlcnkoJ2NhdCAmIHJhdCcpCgpUaGUgOmNsYXNzOmBfcG9zdGdyZXNxbC5UU1ZFQ1RPUmAgdHlwZSBjYW4gcHJvdmlkZSBmb3IgZXhwbGljaXQgQ0FTVDo6CgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IFRTVkVDVE9SCiAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IHNlbGVjdCwgY2FzdAogICAgc2VsZWN0KFtjYXN0KCJzb21lIHRleHQiLCBUU1ZFQ1RPUildKQoKcHJvZHVjZXMgYSBzdGF0ZW1lbnQgZXF1aXZhbGVudCB0bzo6CgogICAgU0VMRUNUIENBU1QoJ3NvbWUgdGV4dCcgQVMgVFNWRUNUT1IpIEFTIGFub25fMQoKRnVsbCBUZXh0IFNlYXJjaGVzIGluIFBvc3RncmVTUUwgYXJlIGluZmx1ZW5jZWQgYnkgYSBjb21iaW5hdGlvbiBvZjogdGhlClBvc3RncmVTUUwgc2V0dGluZyBvZiBgYGRlZmF1bHRfdGV4dF9zZWFyY2hfY29uZmlnYGAsIHRoZSBgYHJlZ2NvbmZpZ2BgIHVzZWQKdG8gYnVpbGQgdGhlIEdJTi9HaVNUIGluZGV4ZXMsIGFuZCB0aGUgYGByZWdjb25maWdgYCBvcHRpb25hbGx5IHBhc3NlZCBpbgpkdXJpbmcgYSBxdWVyeS4KCldoZW4gcGVyZm9ybWluZyBhIEZ1bGwgVGV4dCBTZWFyY2ggYWdhaW5zdCBhIGNvbHVtbiB0aGF0IGhhcyBhIEdJTiBvcgpHaVNUIGluZGV4IHRoYXQgaXMgYWxyZWFkeSBwcmUtY29tcHV0ZWQgKHdoaWNoIGlzIGNvbW1vbiBvbiBmdWxsIHRleHQKc2VhcmNoZXMpIG9uZSBtYXkgbmVlZCB0byBleHBsaWNpdGx5IHBhc3MgaW4gYSBwYXJ0aWN1bGFyIFBvc3RncmVTUUwKYGByZWdjb25maWdgYCB2YWx1ZSB0byBlbnN1cmUgdGhlIHF1ZXJ5LXBsYW5uZXIgdXRpbGl6ZXMgdGhlIGluZGV4IGFuZCBkb2VzCm5vdCByZS1jb21wdXRlIHRoZSBjb2x1bW4gb24gZGVtYW5kLgoKSW4gb3JkZXIgdG8gcHJvdmlkZSBmb3IgdGhpcyBleHBsaWNpdCBxdWVyeSBwbGFubmluZywgb3IgdG8gdXNlIGRpZmZlcmVudApzZWFyY2ggc3RyYXRlZ2llcywgdGhlIGBgbWF0Y2hgYCBtZXRob2QgYWNjZXB0cyBhIGBgcG9zdGdyZXNxbF9yZWdjb25maWdgYAprZXl3b3JkIGFyZ3VtZW50OjoKCiAgICBzZWxlY3QoW215dGFibGUuYy5pZF0pLndoZXJlKAogICAgICAgIG15dGFibGUuYy50aXRsZS5tYXRjaCgnc29tZXN0cmluZycsIHBvc3RncmVzcWxfcmVnY29uZmlnPSdlbmdsaXNoJykKICAgICkKCkVtaXRzIHRoZSBlcXVpdmFsZW50IG9mOjoKCiAgICBTRUxFQ1QgbXl0YWJsZS5pZCBGUk9NIG15dGFibGUKICAgIFdIRVJFIG15dGFibGUudGl0bGUgQEAgdG9fdHNxdWVyeSgnZW5nbGlzaCcsICdzb21lc3RyaW5nJykKCk9uZSBjYW4gYWxzbyBzcGVjaWZpY2FsbHkgcGFzcyBpbiBhIGAncmVnY29uZmlnJ2AgdmFsdWUgdG8gdGhlCmBgdG9fdHN2ZWN0b3IoKWBgIGNvbW1hbmQgYXMgdGhlIGluaXRpYWwgYXJndW1lbnQ6OgoKICAgIHNlbGVjdChbbXl0YWJsZS5jLmlkXSkud2hlcmUoCiAgICAgICAgICAgIGZ1bmMudG9fdHN2ZWN0b3IoJ2VuZ2xpc2gnLCBteXRhYmxlLmMudGl0bGUgKVwKICAgICAgICAgICAgLm1hdGNoKCdzb21lc3RyaW5nJywgcG9zdGdyZXNxbF9yZWdjb25maWc9J2VuZ2xpc2gnKQogICAgICAgICkKCnByb2R1Y2VzIGEgc3RhdGVtZW50IGVxdWl2YWxlbnQgdG86OgoKICAgIFNFTEVDVCBteXRhYmxlLmlkIEZST00gbXl0YWJsZQogICAgV0hFUkUgdG9fdHN2ZWN0b3IoJ2VuZ2xpc2gnLCBteXRhYmxlLnRpdGxlKSBAQAogICAgICAgIHRvX3RzcXVlcnkoJ2VuZ2xpc2gnLCAnc29tZXN0cmluZycpCgpJdCBpcyByZWNvbW1lbmRlZCB0aGF0IHlvdSB1c2UgdGhlIGBgRVhQTEFJTiBBTkFMWVpFLi4uYGAgdG9vbCBmcm9tClBvc3RncmVTUUwgdG8gZW5zdXJlIHRoYXQgeW91IGFyZSBnZW5lcmF0aW5nIHF1ZXJpZXMgd2l0aCBTUUxBbGNoZW15IHRoYXQKdGFrZSBmdWxsIGFkdmFudGFnZSBvZiBhbnkgaW5kZXhlcyB5b3UgbWF5IGhhdmUgY3JlYXRlZCBmb3IgZnVsbCB0ZXh0IHNlYXJjaC4KCkZST00gT05MWSAuLi4KLS0tLS0tLS0tLS0tLQoKVGhlIGRpYWxlY3Qgc3VwcG9ydHMgUG9zdGdyZVNRTCdzIE9OTFkga2V5d29yZCBmb3IgdGFyZ2V0aW5nIG9ubHkgYSBwYXJ0aWN1bGFyCnRhYmxlIGluIGFuIGluaGVyaXRhbmNlIGhpZXJhcmNoeS4gVGhpcyBjYW4gYmUgdXNlZCB0byBwcm9kdWNlIHRoZQpgYFNFTEVDVCAuLi4gRlJPTSBPTkxZYGAsIGBgVVBEQVRFIE9OTFkgLi4uYGAsIGFuZCBgYERFTEVURSBGUk9NIE9OTFkgLi4uYGAKc3ludGF4ZXMuIEl0IHVzZXMgU1FMQWxjaGVteSdzIGhpbnRzIG1lY2hhbmlzbTo6CgogICAgIyBTRUxFQ1QgLi4uIEZST00gT05MWSAuLi4KICAgIHJlc3VsdCA9IHRhYmxlLnNlbGVjdCgpLndpdGhfaGludCh0YWJsZSwgJ09OTFknLCAncG9zdGdyZXNxbCcpCiAgICBwcmludChyZXN1bHQuZmV0Y2hhbGwoKSkKCiAgICAjIFVQREFURSBPTkxZIC4uLgogICAgdGFibGUudXBkYXRlKHZhbHVlcz1kaWN0KGZvbz0nYmFyJykpLndpdGhfaGludCgnT05MWScsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxlY3RfbmFtZT0ncG9zdGdyZXNxbCcpCgogICAgIyBERUxFVEUgRlJPTSBPTkxZIC4uLgogICAgdGFibGUuZGVsZXRlKCkud2l0aF9oaW50KCdPTkxZJywgZGlhbGVjdF9uYW1lPSdwb3N0Z3Jlc3FsJykKCgouLiBfcG9zdGdyZXNxbF9pbmRleGVzOgoKUG9zdGdyZVNRTC1TcGVjaWZpYyBJbmRleCBPcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU2V2ZXJhbCBleHRlbnNpb25zIHRvIHRoZSA6Y2xhc3M6YC5JbmRleGAgY29uc3RydWN0IGFyZSBhdmFpbGFibGUsIHNwZWNpZmljCnRvIHRoZSBQb3N0Z3JlU1FMIGRpYWxlY3QuCgouLiBfcG9zdGdyZXNxbF9wYXJ0aWFsX2luZGV4ZXM6CgpQYXJ0aWFsIEluZGV4ZXMKXl5eXl5eXl5eXl5eXl5eCgpQYXJ0aWFsIGluZGV4ZXMgYWRkIGNyaXRlcmlvbiB0byB0aGUgaW5kZXggZGVmaW5pdGlvbiBzbyB0aGF0IHRoZSBpbmRleCBpcwphcHBsaWVkIHRvIGEgc3Vic2V0IG9mIHJvd3MuICAgVGhlc2UgY2FuIGJlIHNwZWNpZmllZCBvbiA6Y2xhc3M6YC5JbmRleGAKdXNpbmcgdGhlIGBgcG9zdGdyZXNxbF93aGVyZWBgIGtleXdvcmQgYXJndW1lbnQ6OgoKICBJbmRleCgnbXlfaW5kZXgnLCBteV90YWJsZS5jLmlkLCBwb3N0Z3Jlc3FsX3doZXJlPW15X3RhYmxlLmMudmFsdWUgPiAxMCkKCi4uIF9wb3N0Z3Jlc3FsX29wZXJhdG9yX2NsYXNzZXM6CgpPcGVyYXRvciBDbGFzc2VzCl5eXl5eXl5eXl5eXl5eXl4KClBvc3RncmVTUUwgYWxsb3dzIHRoZSBzcGVjaWZpY2F0aW9uIG9mIGFuICpvcGVyYXRvciBjbGFzcyogZm9yIGVhY2ggY29sdW1uIG9mCmFuIGluZGV4IChzZWUKaHR0cDovL3d3dy5wb3N0Z3Jlc3FsLm9yZy9kb2NzLzguMy9pbnRlcmFjdGl2ZS9pbmRleGVzLW9wY2xhc3MuaHRtbCkuClRoZSA6Y2xhc3M6YC5JbmRleGAgY29uc3RydWN0IGFsbG93cyB0aGVzZSB0byBiZSBzcGVjaWZpZWQgdmlhIHRoZQpgYHBvc3RncmVzcWxfb3BzYGAga2V5d29yZCBhcmd1bWVudDo6CgogICAgSW5kZXgoCiAgICAgICAgJ215X2luZGV4JywgbXlfdGFibGUuYy5pZCwgbXlfdGFibGUuYy5kYXRhLAogICAgICAgIHBvc3RncmVzcWxfb3BzPXsKICAgICAgICAgICAgJ2RhdGEnOiAndGV4dF9wYXR0ZXJuX29wcycsCiAgICAgICAgICAgICdpZCc6ICdpbnQ0X29wcycKICAgICAgICB9KQoKTm90ZSB0aGF0IHRoZSBrZXlzIGluIHRoZSBgYHBvc3RncmVzcWxfb3BzYGAgZGljdGlvbmFyaWVzIGFyZSB0aGUKImtleSIgbmFtZSBvZiB0aGUgOmNsYXNzOmBfc2NoZW1hLkNvbHVtbmAsIGkuZS4gdGhlIG5hbWUgdXNlZCB0byBhY2Nlc3MgaXQgZnJvbQp0aGUgYGAuY2BgIGNvbGxlY3Rpb24gb2YgOmNsYXNzOmBfc2NoZW1hLlRhYmxlYCwgd2hpY2ggY2FuIGJlIGNvbmZpZ3VyZWQgdG8gYmUKZGlmZmVyZW50IHRoYW4gdGhlIGFjdHVhbCBuYW1lIG9mIHRoZSBjb2x1bW4gYXMgZXhwcmVzc2VkIGluIHRoZSBkYXRhYmFzZS4KCklmIGBgcG9zdGdyZXNxbF9vcHNgYCBpcyB0byBiZSB1c2VkIGFnYWluc3QgYSBjb21wbGV4IFNRTCBleHByZXNzaW9uIHN1Y2gKYXMgYSBmdW5jdGlvbiBjYWxsLCB0aGVuIHRvIGFwcGx5IHRvIHRoZSBjb2x1bW4gaXQgbXVzdCBiZSBnaXZlbiBhIGxhYmVsCnRoYXQgaXMgaWRlbnRpZmllZCBpbiB0aGUgZGljdGlvbmFyeSBieSBuYW1lLCBlLmcuOjoKCiAgICBJbmRleCgKICAgICAgICAnbXlfaW5kZXgnLCBteV90YWJsZS5jLmlkLAogICAgICAgIGZ1bmMubG93ZXIobXlfdGFibGUuYy5kYXRhKS5sYWJlbCgnZGF0YV9sb3dlcicpLAogICAgICAgIHBvc3RncmVzcWxfb3BzPXsKICAgICAgICAgICAgJ2RhdGFfbG93ZXInOiAndGV4dF9wYXR0ZXJuX29wcycsCiAgICAgICAgICAgICdpZCc6ICdpbnQ0X29wcycKICAgICAgICB9KQoKT3BlcmF0b3IgY2xhc3NlcyBhcmUgYWxzbyBzdXBwb3J0ZWQgYnkgdGhlCjpjbGFzczpgX3Bvc3RncmVzcWwuRXhjbHVkZUNvbnN0cmFpbnRgIGNvbnN0cnVjdCB1c2luZyB0aGUKOnBhcmFtcmVmOmBfcG9zdGdyZXNxbC5FeGNsdWRlQ29uc3RyYWludC5vcHNgIHBhcmFtZXRlci4gU2VlIHRoYXQgcGFyYW1ldGVyIGZvcgpkZXRhaWxzLgoKLi4gdmVyc2lvbmFkZGVkOjogMS4zLjIxIGFkZGVkIHN1cHBvcnQgZm9yIG9wZXJhdG9yIGNsYXNzZXMgd2l0aAogICA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkV4Y2x1ZGVDb25zdHJhaW50YC4KCgpJbmRleCBUeXBlcwpeXl5eXl5eXl5eXgoKUG9zdGdyZVNRTCBwcm92aWRlcyBzZXZlcmFsIGluZGV4IHR5cGVzOiBCLVRyZWUsIEhhc2gsIEdpU1QsIGFuZCBHSU4sIGFzIHdlbGwKYXMgdGhlIGFiaWxpdHkgZm9yIHVzZXJzIHRvIGNyZWF0ZSB0aGVpciBvd24gKHNlZQpodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvOC4zL3N0YXRpYy9pbmRleGVzLXR5cGVzLmh0bWwpLiBUaGVzZSBjYW4gYmUKc3BlY2lmaWVkIG9uIDpjbGFzczpgLkluZGV4YCB1c2luZyB0aGUgYGBwb3N0Z3Jlc3FsX3VzaW5nYGAga2V5d29yZCBhcmd1bWVudDo6CgogICAgSW5kZXgoJ215X2luZGV4JywgbXlfdGFibGUuYy5kYXRhLCBwb3N0Z3Jlc3FsX3VzaW5nPSdnaW4nKQoKVGhlIHZhbHVlIHBhc3NlZCB0byB0aGUga2V5d29yZCBhcmd1bWVudCB3aWxsIGJlIHNpbXBseSBwYXNzZWQgdGhyb3VnaCB0byB0aGUKdW5kZXJseWluZyBDUkVBVEUgSU5ERVggY29tbWFuZCwgc28gaXQgKm11c3QqIGJlIGEgdmFsaWQgaW5kZXggdHlwZSBmb3IgeW91cgp2ZXJzaW9uIG9mIFBvc3RncmVTUUwuCgouLiBfcG9zdGdyZXNxbF9pbmRleF9zdG9yYWdlOgoKSW5kZXggU3RvcmFnZSBQYXJhbWV0ZXJzCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXgoKUG9zdGdyZVNRTCBhbGxvd3Mgc3RvcmFnZSBwYXJhbWV0ZXJzIHRvIGJlIHNldCBvbiBpbmRleGVzLiBUaGUgc3RvcmFnZQpwYXJhbWV0ZXJzIGF2YWlsYWJsZSBkZXBlbmQgb24gdGhlIGluZGV4IG1ldGhvZCB1c2VkIGJ5IHRoZSBpbmRleC4gU3RvcmFnZQpwYXJhbWV0ZXJzIGNhbiBiZSBzcGVjaWZpZWQgb24gOmNsYXNzOmAuSW5kZXhgIHVzaW5nIHRoZSBgYHBvc3RncmVzcWxfd2l0aGBgCmtleXdvcmQgYXJndW1lbnQ6OgoKICAgIEluZGV4KCdteV9pbmRleCcsIG15X3RhYmxlLmMuZGF0YSwgcG9zdGdyZXNxbF93aXRoPXsiZmlsbGZhY3RvciI6IDUwfSkKCi4uIHZlcnNpb25hZGRlZDo6IDEuMC42CgpQb3N0Z3JlU1FMIGFsbG93cyB0byBkZWZpbmUgdGhlIHRhYmxlc3BhY2UgaW4gd2hpY2ggdG8gY3JlYXRlIHRoZSBpbmRleC4KVGhlIHRhYmxlc3BhY2UgY2FuIGJlIHNwZWNpZmllZCBvbiA6Y2xhc3M6YC5JbmRleGAgdXNpbmcgdGhlCmBgcG9zdGdyZXNxbF90YWJsZXNwYWNlYGAga2V5d29yZCBhcmd1bWVudDo6CgogICAgSW5kZXgoJ215X2luZGV4JywgbXlfdGFibGUuYy5kYXRhLCBwb3N0Z3Jlc3FsX3RhYmxlc3BhY2U9J215X3RhYmxlc3BhY2UnKQoKLi4gdmVyc2lvbmFkZGVkOjogMS4xCgpOb3RlIHRoYXQgdGhlIHNhbWUgb3B0aW9uIGlzIGF2YWlsYWJsZSBvbiA6Y2xhc3M6YF9zY2hlbWEuVGFibGVgIGFzIHdlbGwuCgouLiBfcG9zdGdyZXNxbF9pbmRleF9jb25jdXJyZW50bHk6CgpJbmRleGVzIHdpdGggQ09OQ1VSUkVOVExZCl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KClRoZSBQb3N0Z3JlU1FMIGluZGV4IG9wdGlvbiBDT05DVVJSRU5UTFkgaXMgc3VwcG9ydGVkIGJ5IHBhc3NpbmcgdGhlCmZsYWcgYGBwb3N0Z3Jlc3FsX2NvbmN1cnJlbnRseWBgIHRvIHRoZSA6Y2xhc3M6YC5JbmRleGAgY29uc3RydWN0OjoKCiAgICB0YmwgPSBUYWJsZSgndGVzdHRibCcsIG0sIENvbHVtbignZGF0YScsIEludGVnZXIpKQoKICAgIGlkeDEgPSBJbmRleCgndGVzdF9pZHgxJywgdGJsLmMuZGF0YSwgcG9zdGdyZXNxbF9jb25jdXJyZW50bHk9VHJ1ZSkKClRoZSBhYm92ZSBpbmRleCBjb25zdHJ1Y3Qgd2lsbCByZW5kZXIgRERMIGZvciBDUkVBVEUgSU5ERVgsIGFzc3VtaW5nClBvc3RncmVTUUwgOC4yIG9yIGhpZ2hlciBpcyBkZXRlY3RlZCBvciBmb3IgYSBjb25uZWN0aW9uLWxlc3MgZGlhbGVjdCwgYXM6OgoKICAgIENSRUFURSBJTkRFWCBDT05DVVJSRU5UTFkgdGVzdF9pZHgxIE9OIHRlc3R0YmwgKGRhdGEpCgpGb3IgRFJPUCBJTkRFWCwgYXNzdW1pbmcgUG9zdGdyZVNRTCA5LjIgb3IgaGlnaGVyIGlzIGRldGVjdGVkIG9yIGZvcgphIGNvbm5lY3Rpb24tbGVzcyBkaWFsZWN0LCBpdCB3aWxsIGVtaXQ6OgoKICAgIERST1AgSU5ERVggQ09OQ1VSUkVOVExZIHRlc3RfaWR4MQoKLi4gdmVyc2lvbmFkZGVkOjogMS4xIHN1cHBvcnQgZm9yIENPTkNVUlJFTlRMWSBvbiBEUk9QIElOREVYLiAgVGhlCiAgIENPTkNVUlJFTlRMWSBrZXl3b3JkIGlzIG5vdyBvbmx5IGVtaXR0ZWQgaWYgYSBoaWdoIGVub3VnaCB2ZXJzaW9uCiAgIG9mIFBvc3RncmVTUUwgaXMgZGV0ZWN0ZWQgb24gdGhlIGNvbm5lY3Rpb24gKG9yIGZvciBhIGNvbm5lY3Rpb24tbGVzcwogICBkaWFsZWN0KS4KCldoZW4gdXNpbmcgQ09OQ1VSUkVOVExZLCB0aGUgUG9zdGdyZVNRTCBkYXRhYmFzZSByZXF1aXJlcyB0aGF0IHRoZSBzdGF0ZW1lbnQKYmUgaW52b2tlZCBvdXRzaWRlIG9mIGEgdHJhbnNhY3Rpb24gYmxvY2suICAgVGhlIFB5dGhvbiBEQkFQSSBlbmZvcmNlcyB0aGF0CmV2ZW4gZm9yIGEgc2luZ2xlIHN0YXRlbWVudCwgYSB0cmFuc2FjdGlvbiBpcyBwcmVzZW50LCBzbyB0byB1c2UgdGhpcwpjb25zdHJ1Y3QsIHRoZSBEQkFQSSdzICJhdXRvY29tbWl0IiBtb2RlIG11c3QgYmUgdXNlZDo6CgogICAgbWV0YWRhdGEgPSBNZXRhRGF0YSgpCiAgICB0YWJsZSA9IFRhYmxlKAogICAgICAgICJmb28iLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oImlkIiwgU3RyaW5nKSkKICAgIGluZGV4ID0gSW5kZXgoCiAgICAgICAgImZvb19pZHgiLCB0YWJsZS5jLmlkLCBwb3N0Z3Jlc3FsX2NvbmN1cnJlbnRseT1UcnVlKQoKICAgIHdpdGggZW5naW5lLmNvbm5lY3QoKSBhcyBjb25uOgogICAgICAgIHdpdGggY29ubi5leGVjdXRpb25fb3B0aW9ucyhpc29sYXRpb25fbGV2ZWw9J0FVVE9DT01NSVQnKToKICAgICAgICAgICAgdGFibGUuY3JlYXRlKGNvbm4pCgouLiBzZWVhbHNvOjoKCiAgICA6cmVmOmBwb3N0Z3Jlc3FsX2lzb2xhdGlvbl9sZXZlbGAKCi4uIF9wb3N0Z3Jlc3FsX2luZGV4X3JlZmxlY3Rpb246CgpQb3N0Z3JlU1FMIEluZGV4IFJlZmxlY3Rpb24KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpUaGUgUG9zdGdyZVNRTCBkYXRhYmFzZSBjcmVhdGVzIGEgVU5JUVVFIElOREVYIGltcGxpY2l0bHkgd2hlbmV2ZXIgdGhlClVOSVFVRSBDT05TVFJBSU5UIGNvbnN0cnVjdCBpcyB1c2VkLiAgIFdoZW4gaW5zcGVjdGluZyBhIHRhYmxlIHVzaW5nCjpjbGFzczpgX3JlZmxlY3Rpb24uSW5zcGVjdG9yYCwgdGhlIDptZXRoOmBfcmVmbGVjdGlvbi5JbnNwZWN0b3IuZ2V0X2luZGV4ZXNgCmFuZCB0aGUgOm1ldGg6YF9yZWZsZWN0aW9uLkluc3BlY3Rvci5nZXRfdW5pcXVlX2NvbnN0cmFpbnRzYAp3aWxsIHJlcG9ydCBvbiB0aGVzZQp0d28gY29uc3RydWN0cyBkaXN0aW5jdGx5OyBpbiB0aGUgY2FzZSBvZiB0aGUgaW5kZXgsIHRoZSBrZXkKYGBkdXBsaWNhdGVzX2NvbnN0cmFpbnRgYCB3aWxsIGJlIHByZXNlbnQgaW4gdGhlIGluZGV4IGVudHJ5IGlmIGl0IGlzCmRldGVjdGVkIGFzIG1pcnJvcmluZyBhIGNvbnN0cmFpbnQuICAgV2hlbiBwZXJmb3JtaW5nIHJlZmxlY3Rpb24gdXNpbmcKYGBUYWJsZSguLi4sIGF1dG9sb2FkPVRydWUpYGAsIHRoZSBVTklRVUUgSU5ERVggaXMgKipub3QqKiByZXR1cm5lZAppbiA6YXR0cjpgX3NjaGVtYS5UYWJsZS5pbmRleGVzYCB3aGVuIGl0IGlzIGRldGVjdGVkIGFzIG1pcnJvcmluZyBhCjpjbGFzczpgLlVuaXF1ZUNvbnN0cmFpbnRgIGluIHRoZSA6YXR0cjpgX3NjaGVtYS5UYWJsZS5jb25zdHJhaW50c2AgY29sbGVjdGlvbgouCgouLiB2ZXJzaW9uY2hhbmdlZDo6IDEuMC4wIC0gOmNsYXNzOmBfc2NoZW1hLlRhYmxlYCByZWZsZWN0aW9uIG5vdyBpbmNsdWRlcwogICA6Y2xhc3M6YC5VbmlxdWVDb25zdHJhaW50YCBvYmplY3RzIHByZXNlbnQgaW4gdGhlCiAgIDphdHRyOmBfc2NoZW1hLlRhYmxlLmNvbnN0cmFpbnRzYAogICBjb2xsZWN0aW9uOyB0aGUgUG9zdGdyZVNRTCBiYWNrZW5kIHdpbGwgbm8gbG9uZ2VyIGluY2x1ZGUgYSAibWlycm9yZWQiCiAgIDpjbGFzczpgLkluZGV4YCBjb25zdHJ1Y3QgaW4gOmF0dHI6YF9zY2hlbWEuVGFibGUuaW5kZXhlc2AKICAgaWYgaXQgaXMgZGV0ZWN0ZWQKICAgYXMgY29ycmVzcG9uZGluZyB0byBhIHVuaXF1ZSBjb25zdHJhaW50LgoKU3BlY2lhbCBSZWZsZWN0aW9uIE9wdGlvbnMKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KClRoZSA6Y2xhc3M6YF9yZWZsZWN0aW9uLkluc3BlY3RvcmAKdXNlZCBmb3IgdGhlIFBvc3RncmVTUUwgYmFja2VuZCBpcyBhbiBpbnN0YW5jZQpvZiA6Y2xhc3M6YC5QR0luc3BlY3RvcmAsIHdoaWNoIG9mZmVycyBhZGRpdGlvbmFsIG1ldGhvZHM6OgoKICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgY3JlYXRlX2VuZ2luZSwgaW5zcGVjdAoKICAgIGVuZ2luZSA9IGNyZWF0ZV9lbmdpbmUoInBvc3RncmVzcWwrcHN5Y29wZzI6Ly9sb2NhbGhvc3QvdGVzdCIpCiAgICBpbnNwID0gaW5zcGVjdChlbmdpbmUpICAjIHdpbGwgYmUgYSBQR0luc3BlY3RvcgoKICAgIHByaW50KGluc3AuZ2V0X2VudW1zKCkpCgouLiBhdXRvY2xhc3M6OiBQR0luc3BlY3RvcgogICAgOm1lbWJlcnM6CgouLiBfcG9zdGdyZXNxbF90YWJsZV9vcHRpb25zOgoKUG9zdGdyZVNRTCBUYWJsZSBPcHRpb25zCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKU2V2ZXJhbCBvcHRpb25zIGZvciBDUkVBVEUgVEFCTEUgYXJlIHN1cHBvcnRlZCBkaXJlY3RseSBieSB0aGUgUG9zdGdyZVNRTApkaWFsZWN0IGluIGNvbmp1bmN0aW9uIHdpdGggdGhlIDpjbGFzczpgX3NjaGVtYS5UYWJsZWAgY29uc3RydWN0OgoKKiBgYFRBQkxFU1BBQ0VgYDo6CgogICAgVGFibGUoInNvbWVfdGFibGUiLCBtZXRhZGF0YSwgLi4uLCBwb3N0Z3Jlc3FsX3RhYmxlc3BhY2U9J3NvbWVfdGFibGVzcGFjZScpCgogIFRoZSBhYm92ZSBvcHRpb24gaXMgYWxzbyBhdmFpbGFibGUgb24gdGhlIDpjbGFzczpgLkluZGV4YCBjb25zdHJ1Y3QuCgoqIGBgT04gQ09NTUlUYGA6OgoKICAgIFRhYmxlKCJzb21lX3RhYmxlIiwgbWV0YWRhdGEsIC4uLiwgcG9zdGdyZXNxbF9vbl9jb21taXQ9J1BSRVNFUlZFIFJPV1MnKQoKKiBgYFdJVEggT0lEU2BgOjoKCiAgICBUYWJsZSgic29tZV90YWJsZSIsIG1ldGFkYXRhLCAuLi4sIHBvc3RncmVzcWxfd2l0aF9vaWRzPVRydWUpCgoqIGBgV0lUSE9VVCBPSURTYGA6OgoKICAgIFRhYmxlKCJzb21lX3RhYmxlIiwgbWV0YWRhdGEsIC4uLiwgcG9zdGdyZXNxbF93aXRoX29pZHM9RmFsc2UpCgoqIGBgSU5IRVJJVFNgYDo6CgogICAgVGFibGUoInNvbWVfdGFibGUiLCBtZXRhZGF0YSwgLi4uLCBwb3N0Z3Jlc3FsX2luaGVyaXRzPSJzb21lX3N1cGVydGFibGUiKQoKICAgIFRhYmxlKCJzb21lX3RhYmxlIiwgbWV0YWRhdGEsIC4uLiwgcG9zdGdyZXNxbF9pbmhlcml0cz0oInQxIiwgInQyIiwgLi4uKSkKCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjAuMAoKKiBgYFBBUlRJVElPTiBCWWBgOjoKCiAgICBUYWJsZSgic29tZV90YWJsZSIsIG1ldGFkYXRhLCAuLi4sCiAgICAgICAgICBwb3N0Z3Jlc3FsX3BhcnRpdGlvbl9ieT0nTElTVCAocGFydF9jb2x1bW4pJykKCiAgICAuLiB2ZXJzaW9uYWRkZWQ6OiAxLjIuNgoKLi4gc2VlYWxzbzo6CgogICAgYFBvc3RncmVTUUwgQ1JFQVRFIFRBQkxFIG9wdGlvbnMKICAgIDxodHRwOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zdGF0aWMvc3FsLWNyZWF0ZXRhYmxlLmh0bWw+YF8KClRhYmxlIHZhbHVlcywgUm93IGFuZCBUdXBsZSBvYmplY3RzCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgpSb3cgVHlwZXMKXl5eXl5eXl5eCgpCdWlsdC1pbiBzdXBwb3J0IGZvciByZW5kZXJpbmcgYSBgYFJPV2BgIGlzIG5vdCBhdmFpbGFibGUgeWV0LCBob3dldmVyIHRoZQo6ZnVuYzpgX2V4cHJlc3Npb24udHVwbGVfYCBtYXkgYmUgdXNlZCBpbiBpdHMgcGxhY2UuIEFub3RoZXIgYWx0ZXJuYXRpdmUgaXMKdG8gdXNlIHRoZSA6YXR0cjpgX3NhLmZ1bmNgIGdlbmVyYXRvciB3aXRoIGBgZnVuYy5ST1dgYCA6OgoKICAgIHRhYmxlLnNlbGVjdCgpLndoZXJlKAogICAgICAgIHR1cGxlXyh0YWJsZS5jLmlkLCB0YWJsZS5jLmZrKSA+ICgxLDIpCiAgICApLndoZXJlKGZ1bmMuUk9XKHRhYmxlLmMuaWQsIHRhYmxlLmMuZmspIDwgZnVuYy5ST1coMywgNykpCgpXaWxsIGdlbmVyYXRlIHRoZSByb3ctd2lzZSBjb21wYXJpc29uOjoKCiAgICBTRUxFQ1QgKgogICAgRlJPTSB0YWJsZQogICAgV0hFUkUgKGlkLCBmaykgPiAoMSwgMikKICAgIEFORCBST1coaWQsIGZrKSA8IFJPVygzLCA3KQoKLi4gc2VlYWxzbzo6CgogICAgYFBvc3RncmVTUUwgUm93IENvbnN0cnVjdG9ycwogICAgPGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9zcWwtZXhwcmVzc2lvbnMuaHRtbCNTUUwtU1lOVEFYLVJPVy1DT05TVFJVQ1RPUlM+YF8KCiAgICBgUG9zdGdyZVNRTCBSb3cgQ29uc3RydWN0b3IgQ29tcGFyaXNvbgogICAgPGh0dHBzOi8vd3d3LnBvc3RncmVzcWwub3JnL2RvY3MvY3VycmVudC9mdW5jdGlvbnMtY29tcGFyaXNvbnMuaHRtbCNST1ctV0lTRS1DT01QQVJJU09OPmBfCgpUYWJsZSBUeXBlcwpeXl5eXl5eXl5eXgoKUG9zdGdyZVNRTCBhbHNvIHN1cHBvcnRzIHBhc3NpbmcgYSB0YWJsZSBhcyBhbiBhcmd1bWVudCB0byBhIGZ1bmN0aW9uLiBUaGlzCmlzIG5vdCBhdmFpbGFibGUgeWV0IGluIHNxbGFsY2hlbXksIGhvd2V2ZXIgdGhlCjpmdW5jOmBfZXhwcmVzc2lvbi5saXRlcmFsX2NvbHVtbmAgZnVuY3Rpb24gd2l0aCB0aGUgbmFtZSBvZiB0aGUgdGFibGUgbWF5IGJlCnVzZWQgaW4gaXRzIHBsYWNlOjoKCiAgICBzZWxlY3QoWycqJ10pLnNlbGVjdF9mcm9tKGZ1bmMubXlfZnVuY3Rpb24obGl0ZXJhbF9jb2x1bW4oJ215X3RhYmxlJykpKQoKV2lsbCBnZW5lcmF0ZSB0aGUgU1FMOjoKCiAgICBTRUxFQ1QgKgogICAgRlJPTSBteV9mdW5jdGlvbihteV90YWJsZSkKCkFSUkFZIFR5cGVzCi0tLS0tLS0tLS0tCgpUaGUgUG9zdGdyZVNRTCBkaWFsZWN0IHN1cHBvcnRzIGFycmF5cywgYm90aCBhcyBtdWx0aWRpbWVuc2lvbmFsIGNvbHVtbiB0eXBlcwphcyB3ZWxsIGFzIGFycmF5IGxpdGVyYWxzOgoKKiA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkFSUkFZYCAtIEFSUkFZIGRhdGF0eXBlCgoqIDpjbGFzczpgX3Bvc3RncmVzcWwuYXJyYXlgIC0gYXJyYXkgbGl0ZXJhbAoKKiA6ZnVuYzpgX3Bvc3RncmVzcWwuYXJyYXlfYWdnYCAtIEFSUkFZX0FHRyBTUUwgZnVuY3Rpb24KCiogOmNsYXNzOmBfcG9zdGdyZXNxbC5hZ2dyZWdhdGVfb3JkZXJfYnlgIC0gaGVscGVyIGZvciBQRydzIE9SREVSIEJZIGFnZ3JlZ2F0ZQogIGZ1bmN0aW9uIHN5bnRheC4KCkpTT04gVHlwZXMKLS0tLS0tLS0tLQoKVGhlIFBvc3RncmVTUUwgZGlhbGVjdCBzdXBwb3J0cyBib3RoIEpTT04gYW5kIEpTT05CIGRhdGF0eXBlcywgaW5jbHVkaW5nCnBzeWNvcGcyJ3MgbmF0aXZlIHN1cHBvcnQgYW5kIHN1cHBvcnQgZm9yIGFsbCBvZiBQb3N0Z3JlU1FMJ3Mgc3BlY2lhbApvcGVyYXRvcnM6CgoqIDpjbGFzczpgX3Bvc3RncmVzcWwuSlNPTmAKCiogOmNsYXNzOmBfcG9zdGdyZXNxbC5KU09OQmAKCkhTVE9SRSBUeXBlCi0tLS0tLS0tLS0tCgpUaGUgUG9zdGdyZVNRTCBIU1RPUkUgdHlwZSBhcyB3ZWxsIGFzIGhzdG9yZSBsaXRlcmFscyBhcmUgc3VwcG9ydGVkOgoKKiA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkhTVE9SRWAgLSBIU1RPUkUgZGF0YXR5cGUKCiogOmNsYXNzOmBfcG9zdGdyZXNxbC5oc3RvcmVgIC0gaHN0b3JlIGxpdGVyYWwKCkVOVU0gVHlwZXMKLS0tLS0tLS0tLQoKUG9zdGdyZVNRTCBoYXMgYW4gaW5kZXBlbmRlbnRseSBjcmVhdGFibGUgVFlQRSBzdHJ1Y3R1cmUgd2hpY2ggaXMgdXNlZAp0byBpbXBsZW1lbnQgYW4gZW51bWVyYXRlZCB0eXBlLiAgIFRoaXMgYXBwcm9hY2ggaW50cm9kdWNlcyBzaWduaWZpY2FudApjb21wbGV4aXR5IG9uIHRoZSBTUUxBbGNoZW15IHNpZGUgaW4gdGVybXMgb2Ygd2hlbiB0aGlzIHR5cGUgc2hvdWxkIGJlCkNSRUFURUQgYW5kIERST1BQRUQuICAgVGhlIHR5cGUgb2JqZWN0IGlzIGFsc28gYW4gaW5kZXBlbmRlbnRseSByZWZsZWN0YWJsZQplbnRpdHkuICAgVGhlIGZvbGxvd2luZyBzZWN0aW9ucyBzaG91bGQgYmUgY29uc3VsdGVkOgoKKiA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkVOVU1gIC0gRERMIGFuZCB0eXBpbmcgc3VwcG9ydCBmb3IgRU5VTS4KCiogOm1ldGg6YC5QR0luc3BlY3Rvci5nZXRfZW51bXNgIC0gcmV0cmlldmUgYSBsaXN0aW5nIG9mIGN1cnJlbnQgRU5VTSB0eXBlcwoKKiA6bWV0aDpgLnBvc3RncmVzcWwuRU5VTS5jcmVhdGVgICwgOm1ldGg6YC5wb3N0Z3Jlc3FsLkVOVU0uZHJvcGAgLSBpbmRpdmlkdWFsCiAgQ1JFQVRFIGFuZCBEUk9QIGNvbW1hbmRzIGZvciBFTlVNLgoKLi4gX3Bvc3RncmVzcWxfYXJyYXlfb2ZfZW51bToKClVzaW5nIEVOVU0gd2l0aCBBUlJBWQpeXl5eXl5eXl5eXl5eXl5eXl5eXl4KClRoZSBjb21iaW5hdGlvbiBvZiBFTlVNIGFuZCBBUlJBWSBpcyBub3QgZGlyZWN0bHkgc3VwcG9ydGVkIGJ5IGJhY2tlbmQKREJBUElzIGF0IHRoaXMgdGltZS4gICBQcmlvciB0byBTUUxBbGNoZW15IDEuMy4xNywgYSBzcGVjaWFsIHdvcmthcm91bmQKd2FzIG5lZWRlZCBpbiBvcmRlciB0byBhbGxvdyB0aGlzIGNvbWJpbmF0aW9uIHRvIHdvcmssIGRlc2NyaWJlZCBiZWxvdy4KCi4uIHZlcnNpb25jaGFuZ2VkOjogMS4zLjE3IFRoZSBjb21iaW5hdGlvbiBvZiBFTlVNIGFuZCBBUlJBWSBpcyBub3cgZGlyZWN0bHkKICAgaGFuZGxlZCBieSBTUUxBbGNoZW15J3MgaW1wbGVtZW50YXRpb24gd2l0aG91dCBhbnkgd29ya2Fyb3VuZHMgbmVlZGVkLgoKLi4gc291cmNlY29kZTo6IHB5dGhvbgoKICAgIGZyb20gc3FsYWxjaGVteSBpbXBvcnQgVHlwZURlY29yYXRvcgogICAgZnJvbSBzcWxhbGNoZW15LmRpYWxlY3RzLnBvc3RncmVzcWwgaW1wb3J0IEFSUkFZCgogICAgY2xhc3MgQXJyYXlPZkVudW0oVHlwZURlY29yYXRvcik6CiAgICAgICAgaW1wbCA9IEFSUkFZCgogICAgICAgIGRlZiBiaW5kX2V4cHJlc3Npb24oc2VsZiwgYmluZHZhbHVlKToKICAgICAgICAgICAgcmV0dXJuIHNhLmNhc3QoYmluZHZhbHVlLCBzZWxmKQoKICAgICAgICBkZWYgcmVzdWx0X3Byb2Nlc3NvcihzZWxmLCBkaWFsZWN0LCBjb2x0eXBlKToKICAgICAgICAgICAgc3VwZXJfcnAgPSBzdXBlcihBcnJheU9mRW51bSwgc2VsZikucmVzdWx0X3Byb2Nlc3NvcigKICAgICAgICAgICAgICAgIGRpYWxlY3QsIGNvbHR5cGUpCgogICAgICAgICAgICBkZWYgaGFuZGxlX3Jhd19zdHJpbmcodmFsdWUpOgogICAgICAgICAgICAgICAgaW5uZXIgPSByZS5tYXRjaChyIl57KC4qKX0kIiwgdmFsdWUpLmdyb3VwKDEpCiAgICAgICAgICAgICAgICByZXR1cm4gaW5uZXIuc3BsaXQoIiwiKSBpZiBpbm5lciBlbHNlIFtdCgogICAgICAgICAgICBkZWYgcHJvY2Vzcyh2YWx1ZSk6CiAgICAgICAgICAgICAgICBpZiB2YWx1ZSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgIHJldHVybiBOb25lCiAgICAgICAgICAgICAgICByZXR1cm4gc3VwZXJfcnAoaGFuZGxlX3Jhd19zdHJpbmcodmFsdWUpKQogICAgICAgICAgICByZXR1cm4gcHJvY2VzcwoKRS5nLjo6CgogICAgVGFibGUoCiAgICAgICAgJ215ZGF0YScsIG1ldGFkYXRhLAogICAgICAgIENvbHVtbignaWQnLCBJbnRlZ2VyLCBwcmltYXJ5X2tleT1UcnVlKSwKICAgICAgICBDb2x1bW4oJ2RhdGEnLCBBcnJheU9mRW51bShFTlVNKCdhJywgJ2IsICdjJywgbmFtZT0nbXllbnVtJykpKQoKICAgICkKClRoaXMgdHlwZSBpcyBub3QgaW5jbHVkZWQgYXMgYSBidWlsdC1pbiB0eXBlIGFzIGl0IHdvdWxkIGJlIGluY29tcGF0aWJsZQp3aXRoIGEgREJBUEkgdGhhdCBzdWRkZW5seSBkZWNpZGVzIHRvIHN1cHBvcnQgQVJSQVkgb2YgRU5VTSBkaXJlY3RseSBpbgphIG5ldyB2ZXJzaW9uLgoKLi4gX3Bvc3RncmVzcWxfYXJyYXlfb2ZfanNvbjoKClVzaW5nIEpTT04vSlNPTkIgd2l0aCBBUlJBWQpeXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl4KClNpbWlsYXIgdG8gdXNpbmcgRU5VTSwgcHJpb3IgdG8gU1FMQWxjaGVteSAxLjMuMTcsIGZvciBhbiBBUlJBWSBvZiBKU09OL0pTT05CCndlIG5lZWQgdG8gcmVuZGVyIHRoZSBhcHByb3ByaWF0ZSBDQVNULiAgIEN1cnJlbnQgcHN5Y29wZzIgZHJpdmVycyBhY2NvbW9kYXRlCnRoZSByZXN1bHQgc2V0IGNvcnJlY3RseSB3aXRob3V0IGFueSBzcGVjaWFsIHN0ZXBzLgoKLi4gdmVyc2lvbmNoYW5nZWQ6OiAxLjMuMTcgVGhlIGNvbWJpbmF0aW9uIG9mIEpTT04vSlNPTkIgYW5kIEFSUkFZIGlzIG5vdwogICBkaXJlY3RseSBoYW5kbGVkIGJ5IFNRTEFsY2hlbXkncyBpbXBsZW1lbnRhdGlvbiB3aXRob3V0IGFueSB3b3JrYXJvdW5kcwogICBuZWVkZWQuCgouLiBzb3VyY2Vjb2RlOjogcHl0aG9uCgogICAgY2xhc3MgQ2FzdGluZ0FycmF5KEFSUkFZKToKICAgICAgICBkZWYgYmluZF9leHByZXNzaW9uKHNlbGYsIGJpbmR2YWx1ZSk6CiAgICAgICAgICAgIHJldHVybiBzYS5jYXN0KGJpbmR2YWx1ZSwgc2VsZikKCkUuZy46OgoKICAgIFRhYmxlKAogICAgICAgICdteWRhdGEnLCBtZXRhZGF0YSwKICAgICAgICBDb2x1bW4oJ2lkJywgSW50ZWdlciwgcHJpbWFyeV9rZXk9VHJ1ZSksCiAgICAgICAgQ29sdW1uKCdkYXRhJywgQ2FzdGluZ0FycmF5KEpTT05CKSkKICAgICkKCgrpAAAAACkB2gtkZWZhdWx0ZGljdE7pAQAAACkB2gVhcnJheSkB2gZoc3RvcmUpAdoEanNvbikB2gZyYW5nZXPpAwAAACkB2gNleGOpAdoGc2NoZW1hKQHaA3NxbCkB2gR1dGlsKQHaB2RlZmF1bHQpAdoKcmVmbGVjdGlvbikB2ghjb21waWxlcikB2ghlbGVtZW50cykB2gpleHByZXNzaW9uKQHaCHNxbHR5cGVzKQHaB0RETEJhc2UpAdoGQklHSU5UKQHaB0JPT0xFQU4pAdoEQ0hBUikB2gREQVRFKQHaBUZMT0FUKQHaB0lOVEVHRVIpAdoHTlVNRVJJQykB2gRSRUFMKQHaCFNNQUxMSU5UKQHaBFRFWFQpAdoHVkFSQ0hBUikB2gRVVUlEeiBeKD86YnRyZWV8aGFzaHxnaXN0fGdpbnxbXHdfXSspJHpzXHMqKD86VVBEQVRFfElOU0VSVHxDUkVBVEV8REVMRVRFfERST1B8QUxURVJ8R1JBTlR8UkVWT0tFfElNUE9SVCBGT1JFSUdOIFNDSEVNQXxSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXfFRSVU5DQVRFKSlm2gNhbGzaB2FuYWx5c2XaB2FuYWx5emXaA2FuZNoDYW55cgUAAADaAmFz2gNhc2PaCmFzeW1tZXRyaWPaBGJvdGjaBGNhc2XaBGNhc3TaBWNoZWNr2gdjb2xsYXRl2gZjb2x1bW7aCmNvbnN0cmFpbnTaBmNyZWF0ZdoPY3VycmVudF9jYXRhbG9n2gxjdXJyZW50X2RhdGXaDGN1cnJlbnRfcm9sZdoMY3VycmVudF90aW1l2hFjdXJyZW50X3RpbWVzdGFtcNoMY3VycmVudF91c2Vycg8AAADaCmRlZmVycmFibGXaBGRlc2PaCGRpc3RpbmN02gJkb9oEZWxzZdoDZW5k2gZleGNlcHTaBWZhbHNl2gVmZXRjaNoDZm9y2gdmb3JlaWdu2gRmcm9t2gVncmFudNoFZ3JvdXDaBmhhdmluZ9oCaW7aCWluaXRpYWxsedoJaW50ZXJzZWN02gRpbnRv2gdsZWFkaW5n2gVsaW1pdNoJbG9jYWx0aW1l2g5sb2NhbHRpbWVzdGFtcNoDbmV32gNub3TaBG51bGzaAm9m2gNvZmbaBm9mZnNldNoDb2xk2gJvbtoEb25sedoCb3LaBW9yZGVy2gdwbGFjaW5n2gdwcmltYXJ52gpyZWZlcmVuY2Vz2glyZXR1cm5pbmfaBnNlbGVjdNoMc2Vzc2lvbl91c2Vy2gRzb21l2glzeW1tZXRyaWPaBXRhYmxl2gR0aGVu2gJ0b9oIdHJhaWxpbmfaBHRydWXaBXVuaW9u2gZ1bmlxdWXaBHVzZXLaBXVzaW5n2gh2YXJpYWRpY9oEd2hlbtoFd2hlcmXaBndpbmRvd9oEd2l0aNoNYXV0aG9yaXphdGlvbtoHYmV0d2VlbtoGYmluYXJ52gVjcm9zc9oOY3VycmVudF9zY2hlbWHaBmZyZWV6ZdoEZnVsbNoFaWxpa2XaBWlubmVy2gJpc9oGaXNudWxs2gRqb2lu2gRsZWZ02gRsaWtl2gduYXR1cmFs2gdub3RudWxs2gVvdXRlctoEb3ZlctoIb3ZlcmxhcHPaBXJpZ2h02gdzaW1pbGFy2gd2ZXJib3NlKQJpzwQAAGmkBgAAKQRpvAIAAGm9AgAAaf0DAABp/gMAACkH6RQAAADpFQAAAOkXAAAA6RoAAABp7QMAAGnvAwAAafgDAABjAAAAAAAAAAAAAAAAAQAAAAAAAADzEgAAAJcAZQBaAWQAWgJkAFoDZAFTACkC2gVCWVRFQU6pBNoIX19uYW1lX1/aCl9fbW9kdWxlX1/aDF9fcXVhbG5hbWVfX9oOX192aXNpdF9uYW1lX1+pAPMAAAAA+lovb3B0L2Nsb3VkbGludXgvdmVudi9saWI2NC9weXRob24zLjExL3NpdGUtcGFja2FnZXMvc3FsYWxjaGVteS9kaWFsZWN0cy9wb3N0Z3Jlc3FsL2Jhc2UucHlyiwAAAHKLAAAAkAQAAHMTAAAAgACAAIAAgACAANgVHIBOgE6ATnKSAAAAcosAAABjAAAAAAAAAAAAAAAAAQAAAAAAAADzEgAAAJcAZQBaAWQAWgJkAFoDZAFTACkC2hBET1VCTEVfUFJFQ0lTSU9OTnKMAAAAcpEAAABykgAAAHKTAAAAcpUAAABylQAAAJQEAADzEwAAAIAAgACAAIAAgADYFSeAToBOgE5ykgAAAHKVAAAAYwAAAAAAAAAAAAAAAAEAAAAAAAAA8xIAAACXAGUAWgFkAFoCZABaA2QBUwApAtoESU5FVE5yjAAAAHKRAAAAcpIAAABykwAAAHKYAAAAcpgAAACYBAAA8xMAAACAAIAAgACAAIAA2BUbgE6AToBOcpIAAABymAAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMSAAAAlwBlAFoBZABaAmQAWgNkAVMAKQLaBENJRFJOcowAAABykQAAAHKSAAAAcpMAAABymwAAAHKbAAAAnwQAAHKZAAAAcpIAAABymwAAAGMAAAAAAAAAAAAAAAABAAAAAAAAAPMSAAAAlwBlAFoBZABaAmQAWgNkAVMAKQLaB01BQ0FERFJOcowAAABykQAAAHKSAAAAcpMAAABynQAAAHKdAAAApgQAAHMTAAAAgACAAIAAgACAANgVHoBOgE6ATnKSAAAAcp0AAABjAAAAAAAAAAAAAAAAAQAAAAAAAADzFgAAAJcAZQBaAWQAWgJkAVoDZABaBGQCUwApA9oFTU9ORVlh5wQAAFByb3ZpZGUgdGhlIFBvc3RncmVTUUwgTU9ORVkgdHlwZS4KCiAgICBEZXBlbmRpbmcgb24gZHJpdmVyLCByZXN1bHQgcm93cyB1c2luZyB0aGlzIHR5cGUgbWF5IHJldHVybiBhCiAgICBzdHJpbmcgdmFsdWUgd2hpY2ggaW5jbHVkZXMgY3VycmVuY3kgc3ltYm9scy4KCiAgICBGb3IgdGhpcyByZWFzb24sIGl0IG1heSBiZSBwcmVmZXJhYmxlIHRvIHByb3ZpZGUgY29udmVyc2lvbiB0byBhCiAgICBudW1lcmljYWxseS1iYXNlZCBjdXJyZW5jeSBkYXRhdHlwZSB1c2luZyA6Y2xhc3M6YF90eXBlcy5UeXBlRGVjb3JhdG9yYDo6CgogICAgICAgIGltcG9ydCByZQogICAgICAgIGltcG9ydCBkZWNpbWFsCiAgICAgICAgZnJvbSBzcWxhbGNoZW15IGltcG9ydCBUeXBlRGVjb3JhdG9yCgogICAgICAgIGNsYXNzIE51bWVyaWNNb25leShUeXBlRGVjb3JhdG9yKToKICAgICAgICAgICAgaW1wbCA9IE1PTkVZCgogICAgICAgICAgICBkZWYgcHJvY2Vzc19yZXN1bHRfdmFsdWUoc2VsZiwgdmFsdWU6IEFueSwgZGlhbGVjdDogQW55KSAtPiBOb25lOgogICAgICAgICAgICAgICAgaWYgdmFsdWUgaXMgbm90IE5vbmU6CiAgICAgICAgICAgICAgICAgICAgIyBhZGp1c3QgdGhpcyBmb3IgdGhlIGN1cnJlbmN5IGFuZCBudW1lcmljCiAgICAgICAgICAgICAgICAgICAgbSA9IHJlLm1hdGNoKHIiXCQoW1xkLl0rKSIsIHZhbHVlKQogICAgICAgICAgICAgICAgICAgIGlmIG06CiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gZGVjaW1hbC5EZWNpbWFsKG0uZ3JvdXAoMSkpCiAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWUKCiAgICBBbHRlcm5hdGl2ZWx5LCB0aGUgY29udmVyc2lvbiBtYXkgYmUgYXBwbGllZCBhcyBhIENBU1QgdXNpbmcKICAgIHRoZSA6bWV0aDpgX3R5cGVzLlR5cGVEZWNvcmF0b3IuY29sdW1uX2V4cHJlc3Npb25gIG1ldGhvZCBhcyBmb2xsb3dzOjoKCiAgICAgICAgaW1wb3J0IGRlY2ltYWwKICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IGNhc3QKICAgICAgICBmcm9tIHNxbGFsY2hlbXkgaW1wb3J0IFR5cGVEZWNvcmF0b3IKCiAgICAgICAgY2xhc3MgTnVtZXJpY01vbmV5KFR5cGVEZWNv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ZSBpbXBsZW1lbnRhdGlvbiwgc28gdGhlIHNwZWNpYWwgY3JlYXRlL2Ryb3AgcnVsZXMKICAgIHdpbGwgYmUgdXNlZC4KCiAgICBUaGUgY3JlYXRlL2Ryb3AgYmVoYXZpb3Igb2YgRU5VTSBpcyBuZWNlc3NhcmlseSBpbnRyaWNhdGUsIGR1ZSB0byB0aGUKICAgIGF3a3dhcmQgcmVsYXRpb25zaGlwIHRoZSBFTlVNIHR5cGUgaGFzIGluIHJlbGF0aW9uc2hpcCB0byB0aGUKICAgIHBhcmVudCB0YWJsZSwgaW4gdGhhdCBpdCBtYXkgYmUgIm93bmVkIiBieSBqdXN0IGEgc2luZ2xlIHRhYmxlLCBvcgogICAgbWF5IGJlIHNoYXJlZCBhbW9uZyBtYW55IHRhYmxlcy4KCiAgICBXaGVuIHVzaW5nIDpjbGFzczpgX3R5cGVzLkVudW1gIG9yIDpjbGFzczpgX3Bvc3RncmVzcWwuRU5VTWAKICAgIGluIGFuICJpbmxpbmUiIGZhc2hpb24sIHRoZSBgYENSRUFURSBUWVBFYGAgYW5kIGBgRFJPUCBUWVBFYGAgaXMgZW1pdHRlZAogICAgY29ycmVzcG9uZGluZyB0byB3aGVuIHRoZSA6bWV0aDpgX3NjaGVtYS5UYWJsZS5jcmVhdGVgIGFuZAogICAgOm1ldGg6YF9zY2hlbWEuVGFibGUuZHJvcGAKICAgIG1ldGhvZHMgYXJlIGNhbGxlZDo6CgogICAgICAgIHRhYmxlID0gVGFibGUoJ3NvbWV0YWJsZScsIG1ldGFkYXRhLAogICAgICAgICAgICBDb2x1bW4oJ3NvbWVfZW51bScsIEVOVU0oJ2EnLCAnYicsICdjJywgbmFtZT0nbXllbnVtJykpCiAgICAgICAgKQoKICAgICAgICB0YWJsZS5jcmVhdGUoZW5naW5lKSAgIyB3aWxsIGVtaXQgQ1JFQVRFIEVOVU0gYW5kIENSRUFURSBUQUJMRQogICAgICAgIHRhYmxlLmRyb3AoZW5naW5lKSAgIyB3aWxsIGVtaXQgRFJPUCBUQUJMRSBhbmQgRFJPUCBFTlVNCgogICAgVG8gdXNlIGEgY29tbW9uIGVudW1lcmF0ZWQgdHlwZSBiZXR3ZWVuIG11bHRpcGxlIHRhYmxlcywgdGhlIGJlc3QKICAgIHByYWN0aWNlIGlzIHRvIGRlY2xhcmUgdGhlIDpjbGFzczpgX3R5cGVzLkVudW1gIG9yCiAgICA6Y2xhc3M6YF9wb3N0Z3Jlc3FsLkVOVU1gIGluZGVwZW5kZW50bHksIGFuZCBhc3NvY2lhdGUgaXQgd2l0aCB0aGUKICAgIDpjbGFzczpgX3NjaGVtYS5NZXRhRGF0YWAgb2JqZWN0IGl0c2VsZjo6CgogICAgICAgIG15X2VudW0gPSBFTlVNKCdhJywgJ2InLCAnYycsIG5hbWU9J215ZW51bScsIG1ldGFkYXRhPW1ldGFkYXRhKQoKICAgICAgICB0MSA9IFRhYmxlKCdzb21ldGFibGVfb25lJywgbWV0YWRhdGEsCiAgICAgICAgICAgIENvbHVtbignc29tZV9lbnVtJywgbXllbnVtKQogICAgICAgICkKCiAgICAgICAgdDIgPSBUYWJsZSgnc29tZXRhYmxlX3R3bycsIG1ldGFkYXRhLAogICAgICAgICAgICBDb2x1bW4oJ3NvbWVfZW51bScsIG15ZW51bSkKICAgICAgICApCgogICAgV2hlbiB0aGlzIHBhdHRlcm4gaXMgdXNlZCwgY2FyZSBtdXN0IHN0aWxsIGJlIHRha2VuIGF0IHRoZSBsZXZlbAogICAgb2YgaW5kaXZpZHVhbCB0YWJsZSBjcmVhdGVzLiAgRW1pdHRpbmcgQ1JFQVRFIFRBQkxFIHdpdGhvdXQgYWxzbwogICAgc3BlY2lmeWluZyBgYGNoZWNrZmlyc3Q9VHJ1ZWBgIHdpbGwgc3RpbGwgY2F1c2UgaXNzdWVzOjoKCiAgICAgICAgdDEuY3JlYXRlKGVuZ2luZSkgIyB3aWxsIGZhaWw6IG5vIHN1Y2ggdHlwZSAnbXllbnVtJwoKICAgIElmIHdlIHNwZWNpZnkgYGBjaGVja2ZpcnN0PVRydWVgYCwgdGhlIGluZGl2aWR1YWwgdGFibGUtbGV2ZWwgY3JlYXRlCiAgICBvcGVyYXRpb24gd2lsbCBjaGVjayBmb3IgdGhlIGBgRU5VTWBgIGFuZCBjcmVhdGUgaWYgbm90IGV4aXN0czo6CgogICAgICAgICMgd2lsbCBjaGVjayBpZiBlbnVtIGV4aXN0cywgYW5kIGVtaXQgQ1JFQVRFIFRZUEUgaWYgbm90CiAgICAgICAgdDEuY3JlYXRlKGVuZ2luZSwgY2hlY2tmaXJzdD1UcnVlKQoKICAgIFdoZW4gdXNpbmcgYSBtZXRhZGF0YS1sZXZlbCBFTlVNIHR5cGUsIHRoZSB0eXBlIHdpbGwgYWx3YXlzIGJlIGNyZWF0ZWQKICAgIGFuZCBkcm9wcGVkIGlmIGVpdGhlciB0aGUgbWV0YWRhdGEtd2lkZSBjcmVhdGUvZHJvcCBpcyBjYWxsZWQ6OgoKICAgICAgICBtZXRhZGF0YS5jcmVhdGVfYWxsKGVuZ2luZSkgICMgd2lsbCBlbWl0IENSRUFURSBUWVBFCiAgICAgICAgbWV0YWRhdGEuZHJvcF9hbGwoZW5naW5lKSAgIyB3aWxsIGVtaXQgRFJPUCBUWVBFCgogICAgVGhlIHR5cGUgY2FuIGFsc28gYmUgY3JlYXRlZCBhbmQgZHJvcHBlZCBkaXJlY3RseTo6CgogICAgICAgIG15X2VudW0uY3JlYXRlKGVuZ2luZSkKICAgICAgICBteV9lbnVtLmRyb3AoZW5naW5lKQoKICAgIC4uIHZlcnNpb25jaGFuZ2VkOjogMS4wLjAgVGhlIFBvc3RncmVTUUwgOmNsYXNzOmBfcG9zdGdyZXNxbC5FTlVNYCB0eXBlCiAgICAgICBub3cgYmVoYXZlcyBtb3JlIHN0cmljdGx5IHdpdGggcmVnYXJkcyB0byBDUkVBVEUvRFJPUC4gIEEgbWV0YWRhdGEtbGV2ZWwKICAgICAgIEVOVU0gdHlwZSB3aWxsIG9ubHkgYmUgY3JlYXRlZCBhbmQgZHJvcHBlZCBhdCB0aGUgbWV0YWRhdGEgbGV2ZWwsCiAgICAgICBub3QgdGhlIHRhYmxlIGxldmVsLCB3aXRoIHRoZSBleGNlcHRpb24gb2YKICAgICAgIGBgdGFibGUuY3JlYXRlKGNoZWNrZmlyc3Q9VHJ1ZSlgYC4KICAgICAgIFRoZSBgYHRhYmxlLmRyb3AoKWBgIGNhbGwgd2lsbCBub3cgZW1pdCBhIERST1AgVFlQRSBmb3IgYSB0YWJsZS1sZXZlbAogICAgICAgZW51bWVyYXRlZCB0eXBlLgoKICAgIFRjAQAAAAAAAAAAAAAABQAAAA8AAADzfgAA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ICAgICAgICAgICAgICAgICAgICBwZ19jbGFzcyB0CiAgICAgICAgICAgICAgICAgICAgam9pbiBwZ19pbmRleCBpeCBvbiB0Lm9pZCA9IGl4LmluZHJlbGlkCiAgICAgICAgICAgICAgICAgICAgam9pbiBwZ19hdHRyaWJ1dGUgYQogICAgICAgICAgICAgICAgICAgICAgICBvbiB0Lm9pZD1hLmF0dHJlbGlkIEFORCAlcwogICAgICAgICAgICAgICAgIFdIRVJFCiAgICAgICAgICAgICAgICAgIHQub2lkID0gOnRhYmxlX29pZCBhbmQgaXguaW5kaXNwcmltYXJ5ID0gJ3QnCiAgICAgICAgICAgICAgICBPUkRFUiBCWSBhLmF0dG51bQogICAgICAgICAgICD6CGEuYXR0bnVt+glpeC5pbmRrZXlhtQEAAAogICAgICAgICAgICAgICAgU0VMRUNUIGEuYXR0bmFtZQogICAgICAgICAgICAgICAgRlJPTSBwZ19hdHRyaWJ1dGUgYSBKT0lOICgKICAgICAgICAgICAgICAgICAgICBTRUxFQ1QgdW5uZXN0KGl4LmluZGtleSkgYXR0bnVtLAogICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZV9zdWJzY3JpcHRzKGl4LmluZGtleSwgMSkgb3JkCiAgICAgICAgICAgICAgICAgICAgRlJPTSBwZ19pbmRleCBpeAogICAgICAgICAgICAgICAgICAgIFdIRVJFIGl4LmluZHJlbGlkID0gOnRhYmxlX29pZCBBTkQgaXguaW5kaXNwcmltYXJ5CiAgICAgICAgICAgICAgICAgICAgKSBrIE9OIGEuYXR0bnVtPWsuYXR0bnVtCiAgICAgICAgICAgICAgICBXSEVSRSBhLmF0dHJlbGlkID0gOnRhYmxlX29pZAogICAgICAgICAgICAgICAgT1JERVIgQlkgay5vcmQKICAgICAgICAgICAgqQFymQMAAHKaAwAAYwEAAAAAAAAAAAAAAAQAAAATAAAA8x4AAACXAGcAfABdCn0BfAFkABkAAAAAAAAAAACRAowLUwByVQMAAHKRAAAAKQJylAEAANoBcnMCAAAAICBykwAAAHKyAQAAei9QR0RpYWxlY3QuZ2V0X3BrX2NvbnN0cmFpbnQuPGxvY2Fscz4uPGxpc3Rjb21wPvQMAABzHAAAAIAA0A8r0A8r0A8rmBGQAZAhlATQDyvQDyvQDytykgAAAHqfCiAgICAgICAgU0VMRUNUIGNvbm5hbWUKICAgICAgICAgICBGUk9NICBwZ19jYXRhbG9nLnBnX2NvbnN0cmFpbnQgcgogICAgICAgICAgIFdIRVJFIHIuY29ucmVsaWQgPSA6dGFibGVfb2lkIEFORCByLmNvbnR5cGUgPSAncCcKICAgICAgICAgICBPUkRFUiBCWSAxCiAgICAgICAgKQHaB2Nvbm5hbWUpAtoTY29uc3RyYWluZWRfY29sdW1uc3L0AAAAKQxy6wIAAHIvAQAAcisDAADaDV9wZ19pbmRleF9hbnlyDQAAAHJHAQAActABAAByFAAAAHJeAwAAchYBAABynwMAAHIvAwAAKQxyrwAAAHIKAQAAcuwCAAByDAAAAHLCAAAAcncDAADaBlBLX1NRTHIRAgAAcscBAAByAQIAANoLUEtfQ09OU19TUUxy9AAAAHMMAAAAICAgICAgICAgICAgcpMAAADaEWdldF9wa19jb25zdHJhaW50ehtQR0RpYWxlY3QuZ2V0X3BrX2NvbnN0cmFpbnTPDAAAcycBAACAAOAUGNcUJtIUJtgMFpgKoEawcrd2sna4bNE3S9Q3S/ADABUn8QACFQr0AAIVCogJ8AgADBDUCyOgZtILLNALLPACChYQ8BQAExfXEiTSEiTYEBqYS/EDAhMO9AACEw7xFQwWDohGiEbwIgoWEIhG9RYADRCMSJBW0Qwc1Awc1wwk0gwkrVjULT3QDCTRDD7UDD6IAdgMFtcMHtIMHphxqEnQDB7RDDbUDDaIAdgPK9APK5hhn2qaaplsnGzQDyvRDyvUDyuIBPAEBRcMiAv1DAANEIxIkFvRDCHUDCHXDCnSDCm1KNQyQtAMKdEMQ9QMQ4gB2AwW1wwe0gwemHGoSdAMHtEMNtQMNogB2A8Qj3iKeIl6jHqIBOAnK7BU0A860A860Ag6cpIAAABjBQAAAAAAAAAAAAAADgAAAAsAAADzYgMAAIcblwB8AGoAAAAAAAAAAACKG3wAoAEAAAAAAAAAAAAAAAAAAAAAAAAAAHwBfAJ8A3wFoAIAAAAAAAAAAAAAAAAAAAAAAAAAAGQBpgEAAKsBAAAAAAAAAACsAqYEAACrBAAAAAAAAAAAfQZkA30HdAcAAAAAAAAAAAAAagQAAAAAAAAAAGQEpgEAAKsBAAAAAAAAAAB9CHQLAAAAAAAAAAAAAGoGAAAAAAAAAAB8B6YBAACrAQAAAAAAAAAAoAcAAAAAAAAAAAAAAAAAAAAAAAAAAHQQAAAAAAAAAAAAAGoJAAAAAAAAAAB0EAAAAAAAAAAAAABqCQAAAAAAAAAArAWmAgAAqwIAAAAAAAAAAH0JfAGgCgAAAAAAAAAAAAAAAAAAAAAAAAAAfAl8BqwGpgIAAKsCAAAAAAAAAAB9CmcAfQt8CqALAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAEQAXflcAwAAfQx9DX0OdAcAAAAAAAAAAAAAagwAAAAAAAAAAHwIfA2mAgAAqwIAAAAAAAAAAKANAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAH0PfA9cDQAAfRB9EX0SfRN9FH0VfRR9Fn0UfRd9GH0UfRl8GIEKfBhkB2sCAAAAAHICZAhuAWQJfRiIG2YBZAqECHQHAAAAAAAAAAAAAGoOAAAAAAAAAABkC3wQpgIAAKsCAAAAAAAAAABEAKYAAACrAAAAAAAAAAAAfRB8BHIRfA58AGoPAAAAAAAAAABrAwAAAAByA3wOfRFuJXwDfRFuInwRchaJG6AQAAAAAAAAAAAAAAAAAAAAAAAAAAB8EaYBAACrAQAAAAAAAAAAfRFuCnwDgQh8A3wOawIAAAAAcgJ8A30RiRugEAAAAAAAAAAAAAAAAAAAAAAAAAAAfBKmAQAAqwEAAAAAAAAAAH0SiBtmAWQMhAh0BwAAAAAAAAAAAABqDgAAAAAAAAAAZA18E6YCAACrAgAAAAAAAAAARACmAAAAqwAAAAAAAAAAAH0TfAx8EHwRfBJ8E3wWfBd8GHwZfBVkDpwFZA+cBn0afAugEQAAAAAAAAAAAAAAAAAAAAAAAAAAfBqmAQAAqwEAAAAAAAAAAAEAjPp8C1MAKRBOcuoCAABy6QIAAGGqAQAACiAgICAgICAgICBTRUxFQ1Qgci5jb25uYW1lLAogICAgICAgICAgICAgICAgcGdfY2F0YWxvZy5wZ19nZXRfY29uc3RyYWludGRlZihyLm9pZCwgdHJ1ZSkgYXMgY29uZGVmLAogICAgICAgICAgICAgICAgbi5uc3BuYW1lIGFzIGNvbnNjaGVtYQogICAgICAgICAgRlJPTSAgcGdfY2F0YWxvZy5wZ19jb25zdHJhaW50IHIsCiAgICAgICAgICAgICAgICBwZ19uYW1lc3BhY2UgbiwKICAgICAgICAgICAgICAgIHBnX2NsYXNzIGMKCiAgICAgICAgICBXSEVSRSByLmNvbnJlbGlkID0gOnRhYmxlIEFORAogICAgICAgICAgICAgICAgci5jb250eXBlID0gJ2YnIEFORAogICAgICAgICAgICAgICAgYy5vaWQgPSBjb25mcmVsaWQgQU5ECiAgICAgICAgICAgICAgICBuLm9pZCA9IGMucmVsbmFtZXNwYWNlCiAgICAgICAgICBPUkRFUiBCWSAxCiAgICAgICAgYS8BAABGT1JFSUdOIEtFWSBcKCguKj8pXCkgUkVGRVJFTkNFUyAoPzooLio/KVwuKT8oLio/KVwoKC4qPylcKVtcc10/KE1BVENIIChGVUxMfFBBUlRJQUx8U0lNUExFKSspP1tcc10/KE9OIFVQREFURSAoQ0FTQ0FERXxSRVNUUklDVHxOTyBBQ1RJT058U0VUIE5VTEx8U0VUIERFRkFVTFQpKyk/W1xzXT8oT04gREVMRVRFIChDQVNDQURFfFJFU1RSSUNUfE5PIEFDVElPTnxTRVQgTlVMTHxTRVQgREVGQVVMVCkrKT9bXHNdPyhERUZFUlJBQkxFfE5PVCBERUZFUlJBQkxFKT9bXHNdPyhJTklUSUFMTFkgKERFRkVSUkVEfElNTUVESUFURSkrKT8pAnLNAwAA2gZjb25kZWYpAXJiAAAA2gpERUZFUlJBQkxFVEZjAQAAAAAAAAAAAAAABQAAABMAAADzOgAAAJUBlwBnAHwAXRd9AYkCoAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwBpgEAAKsBAAAAAAAAAACRAowYUwBykQAAAKkBctwCAACpA3KUAQAAcnADAAByngEAAHMDAAAAICCAcpMAAABysgEAAHouUEdEaWFsZWN0LmdldF9mb3JlaWduX2tleXMuPGxvY2Fscz4uPGxpc3Rjb21wPkQNAABzNwAAAPiAAPAAAyMO8AADIw7wAAMjDuAUFfADABEZ1xAs0hAsqFHREC/UEC/wAwMjDvAAAyMO8AADIw5ykgAAAHKvAwAAYwEAAAAAAAAAAAAAAAUAAAATAAAA8zoAAACVAZcAZwB8AF0XfQGJAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAB8AaYBAACrAQAAAAAAAAAAkQKMGFMAcpEAAABy1wMAAHLYAwAAcwMAAAAgIIBykwAAAHKyAQAAei5QR0RpYWxlY3QuZ2V0X2ZvcmVpZ25fa2V5cy48bG9jYWxzPi48bGlzdGNvbXA+Ww0AAHM3AAAA+IAA8AADIA7wAAMgDvAAAyAO4BQV8AMAERnXECzSECyoUdEQL9QQL/ADAyAO8AADIA7wAAMgDnKSAAAAegZccyosXHMpBdoIb251cGRhdGXaCG9uZGVsZXRlcjgAAABySAAAAHIUAwAAKQZy9AAAAHLOAwAA2g9yZWZlcnJlZF9zY2hlbWHaDnJlZmVycmVkX3RhYmxl2hByZWZlcnJlZF9jb2x1bW5z2gdvcHRpb25zKRJyIQIAAHLrAgAAci8BAABy0gIAANoHY29tcGlsZXINAAAAckcBAABy0AEAAHIUAAAAcl4DAAByFgEAAHKfAwAAcrYDAADaBmdyb3Vwc3K3AwAAcu4CAABy3AIAAHL4AQAAKRxyrwAAAHIKAQAAcuwCAAByDAAAAHIcAwAAcsIAAABydwMAANoGRktfU1FM2ghGS19SRUdFWHIRAgAAcscBAADaBWZrZXlzcs0DAABy1AMAANoJY29uc2NoZW1hcnIDAAByzgMAAHLcAwAAct0DAABy3gMAAHJ0AgAAchQDAABy2gMAAHLbAwAAcjgAAABySAAAANoGZmtleV9kcp4BAABzHAAAACAgICAgICAgICAgICAgICAgICAgICAgICAgIEBykwAAANoQZ2V0X2ZvcmVpZ25fa2V5c3oaUEdEaWFsZWN0LmdldF9mb3JlaWduX2tleXMCDQAAc2ECAAD4gADwEgAUGNQTK4gI2BQY1xQm0hQm2AwWmAqgRrByt3aydrhs0TdL1DdL8AMAFSfxAAIVCvQAAhUKiAnwCA0SDIgG9R4AFBaUOvACBw038QMJFAr0AAkUCogI9RYADRCMSJBW0Qwc1Awc1wwk0gwk3RQc1BQkrVjULT3wAwANJfEAAg0K9AACDQqIAfAGAA0X1wwe0gwemHGoCdAMHtEMMtQMMogB2BASiAXYKiuvKqoqqSysLPAAPgkh8AA+CSHRDCaIR5BWmFndEBKUCZgooEbRECvUECvXEDLSEDLREDTUEDSIQfAgABES8R0ODQ7YECPYEB/YEB7YECDYEBHYEBXYEBHYEBjYEBHYEBjYEBrYEBHYEBnwBgAQGtAPJdglL7A80iU/0CU/mFSYVMBVkArwAgMjDvAAAyMO8AADIw7wAAMjDuUZG5wYoCrQLkHRGULUGULwBQMjDvEAAyMO9AADIw7QDB/wCgAQLfAADw0p8AYAFB2gBNQgONITONATONgmL5BPkE/gJiyQT5BP2BEg8AAIDSnwCAAjK9ciPtIiPrh/0SJP1CJPkA+QD9gRF9ARI6gGsCnSKDvQKDvwBgAjKZAP4B0l1x050h05uC7RHUnUHUmITvACAyAO8AADIA7wAAMgDvAAAyAO5RkbnBigKdAtPdEZPtQZPvAFAyAO8QADIA70AAMgDtAMHPAKABkg2Cc62CMy2CIw2CQ04CAo2CAo2CIs2CEq2B0i8AsGHBLwAAYcEvANDRYO8AANFg6IRvAcAA0Sj0yKTJgW0Qwg1Awg0Awg0Awg2A8UiAxykgAAAGMDAAAAAAAAAAAAAAAIAAAAAwAAAPOSAAAAhwGHApcAfABqAAAAAAAAAAAAZAFrAAAAAAByM2QCZAOgAQAAAAAAAAAAAAAAAAAAAAAAAAAAiAGIAmYCZASECHQFAAAAAAAAAAAAAGQFZAamAgAAqwIAAAAAAAAAAEQApgAAAKsAAAAAAAAAAACmAQAAqwEAAAAAAAAAAHoGAABTAIkBmwFkB4kCmwFkCJ0EUwApCU4pAnImAwAAcgQAAABy2gEAAHoEIE9SIGMBAAAAAAAAAAAAAAAFAAAAMwAAAPMoAAAAlQJLAAEAlwB8AF0MfQFkAIkDfAGJAmYDegYAAFYAlwEBAIwNZAFTACkCegslc1slZF0gPSAlc05ykQAAACkEcpQBAADaA2luZHKxAQAA2gpjb21wYXJlX3RvcwQAAAAgIICAcpMAAABylgEAAHoqUEdEaWFsZWN0Ll9wZ19pbmRleF9hbnkuPGxvY2Fscz4uPGdlbmV4cHI+eA0AAHNAAAAA+OgA6ACAAPAAAigO8AACKA7YOz6QDaAaqFOwI9AgNtEQNvADAigO8AACKA7wAAIoDvAAAigO8AACKA7wAAIoDnKSAAAAcgIAAADpCgAAAHoHID0gQU5ZKHKBAQAAKQNyKwMAAHJ7AAAA2gVyYW5nZSkDcq8AAABysQEAAHLrAwAAcwMAAAAgYGBykwAAAHLPAwAAehdQR0RpYWxlY3QuX3BnX2luZGV4X2FueXANAABzeQAAAPj4gADYCw/UCyOgZtILLNALLPAOABQamEafS5pL8AACKA7wAAIoDvAAAigO8AACKA7wAAIoDt1CR8gByDLBLMQs8AMCKA7xAAIoDvQAAigO8QACHQ70AAIdDvEAAhQO8AACDQ7wCAAmKaBToFOoKqgqqCrQEzXQDDVykgAAAGMEAAAAAAAAAAAAAAANAAAACwAAAPPOBgAAhyKXAHwAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAHwBfAJ8A3wEoAEAAAAAAAAAAAAAAAAAAAAAAAAAAGQBpgEAAKsBAAAAAAAAAACsAqYEAACrBAAAAAAAAAAAfQV8AGoCAAAAAAAAAABkA2sAAAAAAHJLZAR8AGoCAAAAAAAAAABkBWsFAAAAAHICZAZuAWQHmwFkCHwAagIAAAAAAAAAAGQFawUAAAAAcgJkCW4BZAqbAWQLfABqAgAAAAAAAAAAZAxrBQAAAAByAmQNbgFkCpsBZA58AKADAAAAAAAAAAAAAAAAAAAAAAAAAABkD2QQpgIAAKsCAAAAAAAAAACbAWQRnQl9Bm4TZBJ8AGoCAAAAAAAAAABkE2sFAAAAAHICZBRuAWQKmwFkFZ0DfQZ0CQAAAAAAAAAAAABqBQAAAAAAAAAAfAamAQAAqwEAAAAAAAAAAKAGAAAAAAAAAAAAAAAAAAAAAAAAAAB0DgAAAAAAAAAAAABqCAAAAAAAAAAAdA4AAAAAAAAAAAAAaggAAAAAAAAAAKwWpgIAAKsCAAAAAAAAAAB9B3wBoAkAAAAAAAAAAAAAAAAAAAAAAAAAAHwHfAWsF6YCAACrAgAAAAAAAAAAfQh0FQAAAAAAAAAAAABkGIQApgEAAKsBAAAAAAAAAAB9CWQAfQp8CKALAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAEQAkAFddH0LfAtcDAAAfQx9DX0OfQ99EH0RfRJ9E30UfRV9Fn0XfA5yIHwMfAprAwAAAAByF3QZAAAAAAAAAAAAAGoNAAAAAAAAAABkGXwMegYAAKYBAACrAQAAAAAAAAAAAQB8DH0KjDR8D3IffAx8CmsCAAAAAHMZdBkAAAAAAAAAAAAAag0AAAAAAAAAAGQafAx6BgAApgEAAKsBAAAAAAAAAAABAHwMfQp8DHwJdgB9GHwJfAwZAAAAAAAAAAAAfRl8EIELfBB8GWQbGQAAAAAAAAAAAHwRPAAAAHwYkAFzA3wToA4AAAAAAAAAAAAAAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAAfRp8F3IsfBp8F2QAhQIZAAAAAAAAAAAAciJ0GQAAAAAAAAAAAABqDQAAAAAAAAAAZBx8DJsBZB2dA6YBAACrAQAAAAAAAAAAAQB8GmQAfBeFAhkAAAAAAAAAAAB9GmQehAB8GkQApgAAAKsAAAAAAAAAAAB8GWQfPAAAAGkAfRt0HwAAAAAAAAAAAAB8FHABZAegDgAAAAAAAAAAAAAAAAAAAAAAAAAApgAAAKsAAAAAAAAAAACmAQAAqwEAAAAAAAAAAEQAXU5cAgAAfRx9HXQhAAAAAAAAAAAAAHwdoBEAAAAAAAAAAAAAAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAApgEAAKsBAAAAAAAAAAB9HWQgfR58HWQhegEAAHIQfB5kInoNAAB9HnwdZCN6AQAAcwV8HmQkeg0AAH0ebgp8HWQjegEAAHIFfB5kJXoNAAB9HnwecgV8HnwbfBw8AAAAjE98G3IFfBt8GWQmPAAAAHwNfBlkJzwAAAB8EoEFfAx8GWQoPAAAAHwVchx0JQAAAAAAAAAAAABkKYQAfBVEAKYAAACrAAAAAAAAAAAApgEAAKsBAAAAAAAAAAB8GWQqPAAAAHwWcgt8FmQrawMAAAAAcgV8FnwZZCw8AAAAkAGMdmcAfR98CaATAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAEQAXcdcAgAAfSCKInwgiSJkJxkAAAAAAAAAAACIImYBZC2ECIkiZB8ZAAAAAAAAAAAARACmAAAAqwAAAAAAAAAAAGQunAN9IWQoiSJ2AHILiSJkKBkAAAAAAAAAAAB8IWQoPAAAAGQmiSJ2AHI2dCUAAAAAAAAAAAAAiCJmAWQvhAiJImQmGQAAAAAAAAAAAKATAAAAAAAAAAAAAAAAAAAAAAAAAACmAAAAqwAAAAAAAAAAAEQApgAAAKsAAAAAAAAAAACmAQAAqwEAAAAAAAAAAHwhZDA8AAAAZCqJInYAch+JImQqGQAAAAAAAAAAAHwhoBQAAAAAAAAAAAAAAAAAAAAAAAAAAGQxaQCmAgAAqwIAAAAAAAAAAGQyPAAAAGQsiSJ2AHIfiSJkLBkAAAAAAAAAAAB8IaAUAAAAAAAAAAAAAAAAAAAAAAAAAABkMWkApgIAAKsCAAAAAAAAAABkMzwAAAB8H6AVAAAAAAAAAAAAAAAAAAAAAAAAAAB8IaYBAACrAQAAAAAAAAAAAQCMyHwfUwApNE5y6gIAAHLpAgAAKQJyJgMAAOkFAAAAeq8KICAgICAgICAgICAgICBTRUxFQ1QKICAgICAgICAgICAgICAgICAgaS5yZWxuYW1lIGFzIHJlbG5hbWUsCiAgICAgICAgICAgICAgICAgIGl4LmluZGlzdW5pcXVlLCBpeC5pbmRleHBycywgaXguaW5kcHJlZCwKICAgICAgICAgICAgICAgICAgYS5hdHRuYW1lLCBhLmF0dG51bSwgTlVMTCwgaXguaW5ka2V5cigDAAB6CTo6dmFyY2hhcnKKAQAAehQsCiAgICAgICAgICAgICAgICAgIHoVaXguaW5kb3B0aW9uOjp2YXJjaGFy2gROVUxMcoABAAByJQMAAHoMaS5yZWxvcHRpb25zYW0BAAAsIGFtLmFtbmFtZSwKICAgICAgICAgICAgICAgICAgTlVMTCBhcyBpbmRua2V5YXR0cwogICAgICAgICAgICAgIEZST00KICAgICAgICAgICAgICAgICAgcGdfY2xhc3MgdAogICAgICAgICAgICAgICAgICAgICAgICBqb2luIHBnX2luZGV4IGl4IG9uIHQub2lkID0gaXguaW5kcmVsaWQKICAgICAgICAgICAgICAgICAgICAgICAgam9pbiBwZ19jbGFzcyBpIG9uIGkub2lkID0gaXguaW5kZXhyZWxpZAogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IG91dGVyIGpvaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2F0dHJpYnV0ZSBhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbiB0Lm9pZCA9IGEuYXR0cmVsaWQgYW5kIHLIAwAAcskDAABhdwEAAAogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IG91dGVyIGpvaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2FtIGFtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbiBpLnJlbGFtID0gYW0ub2lkCiAgICAgICAgICAgICAgV0hFUkUKICAgICAgICAgICAgICAgICAgdC5yZWxraW5kIElOICgncicsICd2JywgJ2YnLCAnbScpCiAgICAgICAgICAgICAgICAgIGFuZCB0Lm9pZCA9IDp0YWJsZV9vaWQKICAgICAgICAgICAgICAgICAgYW5kIGl4LmluZGlzcHJpbWFyeSA9ICdmJwogICAgICAgICAgICAgIE9SREVSIEJZCiAgICAgICAgICAgICAgICAgIHQucmVsbmFtZSwKICAgICAgICAgICAgICAgICAgaS5yZWxuYW1lCiAgICAgICAgICAgIGEUAQAACiAgICAgICAgICAgICAgU0VMRUNUCiAgICAgICAgICAgICAgICAgIGkucmVsbmFtZSBhcyByZWxuYW1lLAogICAgICAgICAgICAgICAgICBpeC5pbmRpc3VuaXF1ZSwgaXguaW5kZXhwcnMsIGl4LmluZHByZWQsCiAgICAgICAgICAgICAgICAgIGEuYXR0bmFtZSwgYS5hdHRudW0sIGMuY29ucmVsaWQsIGl4LmluZGtleTo6dmFyY2hhciwKICAgICAgICAgICAgICAgICAgaXguaW5kb3B0aW9uOjp2YXJjaGFyLCBpLnJlbG9wdGlvbnMsIGFtLmFtbmFtZSwKICAgICAgICAgICAgICAgICAgKQLpCwAAAHICAAAAeg5peC5pbmRua2V5YXR0c2HtAwAAIGFzIGluZG5rZXlhdHRzCiAgICAgICAgICAgICAgRlJPTQogICAgICAgICAgICAgICAgICBwZ19jbGFzcyB0CiAgICAgICAgICAgICAgICAgICAgICAgIGpvaW4gcGdfaW5kZXggaXggb24gdC5vaWQgPSBpeC5pbmRyZWxpZAogICAgICAgICAgICAgICAgICAgICAgICBqb2luIHBnX2NsYXNzIGkgb24gaS5vaWQgPSBpeC5pbmRleHJlbGlkCiAgICAgICAgICAgICAgICAgICAgICAgIGxlZnQgb3V0ZXIgam9pbgogICAgICAgICAgICAgICAgICAgICAgICAgICAgcGdfYXR0cmlidXRlIGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uIHQub2lkID0gYS5hdHRyZWxpZCBhbmQgYS5hdHRudW0gPSBBTlkoaXguaW5ka2V5KQogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IG91dGVyIGpvaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2NvbnN0cmFpbnQgYwogICAgICAgICAgICAgICAgICAgICAgICAgICAgb24gKGl4LmluZHJlbGlkID0gYy5jb25yZWxpZCBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpeC5pbmRleHJlbGlkID0gYy5jb25pbmRpZCBhbmQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjLmNvbnR5cGUgaW4gKCdwJywgJ3UnLCAneCcpKQogICAgICAgICAgICAgICAgICAgICAgICBsZWZ0IG91dGVyIGpvaW4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBnX2FtIGFtCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbiBpLnJlbGFtID0gYW0ub2lkCiAgICAgICAgICAgICAgV0hFUkUKICAgICAgICAgICAgICAgICAgdC5yZWxraW5kIElOICgncicsICd2JywgJ2YnLCAnbScsICdwJykKICAgICAgICAgICAgICAgICAgYW5kIHQub2lkID0gOnRhYmxlX29pZAogICAgICAgICAgICAgICAgICBhbmQgaXguaW5kaXNwcmltYXJ5ID0gJ2YnCiAgICAgICAgICAgICAgT1JERVIgQlkKICAgICAgICAgICAgICAgICAgdC5yZWxuYW1lLAogICAgICAgICAgICAgICAgICBpLnJlbG5hbWUKICAgICAgICAgICAgKQJygQMAAHKZAwAAcpoDAABjAAAAAAAAAAAAAAAAAwAAABMAAADzKgAAAJcAdAEAAAAAAAAAAAAAdAIAAAAAAAAAAAAApgEAAKsBAAAAAAAAAABTAHLFAAAAqQJyAwAAAHLwAQAAcpEAAABykgAAAHKT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AAAAAAAAfQt8CmoLAAAAAAAAAAB8C2QHPAAAAHwKagwAAAAAAAAAAHwLZAgZAAAAAAAAAAAAfApqDQAAAAAAAAAAPAAAAIwvZAmEAHwJoA4AAAAAAAAAAAAAAAAAAAAAAAAAAKYAAACrAAAAAAAAAAAARACmAAAAqwAAAAAAAAAAAFMAKQpOcuoCAABy6QIAAGHcAQAACiAgICAgICAgICAgIFNFTEVDVAogICAgICAgICAgICAgICAgY29ucy5jb25uYW1lIGFzIG5hbWUsCiAgICAgICAgICAgICAgICBjb25zLmNvbmtleSBhcyBrZXksCiAgICAgICAgICAgICAgICBhLmF0dG51bSBhcyBjb2xfbnVtLAogICAgICAgICAgICAgICAgYS5hdHRuYW1lIGFzIGNvbF9uYW1lCiAgICAgICAgICAgIEZST00KICAgICAgICAgICAgICAgIHBnX2NhdGFsb2cucGdfY29uc3RyYWludCBjb25zCiAgICAgICAgICAgICAgICBqb2luIHBnX2F0dHJpYnV0ZSBhCiAgICAgICAgICAgICAgICAgIG9uIGNvbnMuY29ucmVsaWQgPSBhLmF0dHJlbGlkIEFORAogICAgICAgICAgICAgICAgICAgIGEuYXR0bnVtID0gQU5ZKGNvbnMuY29ua2V5KQogICAgICAgICAgICBXSEVSRQogICAgICAgICAgICAgICAgY29ucy5jb25yZWxpZCA9IDp0YWJsZV9vaWQgQU5ECiAgICAgICAgICAgICAgICBjb25zLmNvbnR5cGUgPSAndScKICAgICAgICApAdoIY29sX25hbWVymgMAAGMAAAAAAAAAAAAAAAADAAAAEwAAAPMqAAAAlwB0AQAAAAAAAAAAAAB0AgAAAAAAAAAAAACmAQAAqwEAAAAAAAAAAFMAcsUAAABy8wMAAHKRAAAAcpIAAABykwAAAHL0AwAAejJQR0RpYWxlY3QuZ2V0X3VuaXF1ZV9jb25zdHJhaW50cy48bG9jYWxzPi48bGFtYmRhPmQOAABy9QMAAHKSAAAAcvMBAAByAQIAAGMBAAAAAAAAAAAAAAAGAAAAEwAAAPNEAAAAhwKXAGcAfABdHFwCAAB9AYoCfAGIAmYBZACECIkCZAEZAAAAAAAAAAAARACmAAAAqwAAAAAAAAAA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
Base64 mode: content will be decoded on save.
Save
Close
Exit & Reset
Directory Contents
Dirs: 0 × Files: 15
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
array.cpython-311.pyc
15.06 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
base.cpython-311.pyc
150.52 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
dml.cpython-311.pyc
8.81 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ext.cpython-311.pyc
9.73 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
hstore.cpython-311.pyc
17.12 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
json.cpython-311.pyc
12.63 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pg8000.cpython-311.pyc
15.50 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
provision.cpython-311.pyc
3.29 KB
lrw-r--r--
2026-01-20 13:01:47
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
psycopg2.cpython-311.pyc
41.38 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
psycopg2cffi.cpython-311.pyc
2.12 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pygresql.cpython-311.pyc
12.87 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
pypostgresql.cpython-311.pyc
4.41 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ranges.cpython-311.pyc
7.14 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
zxjdbc.cpython-311.pyc
2.66 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
__init__.cpython-311.pyc
2.96 KB
lrw-r--r--
2026-02-06 08:01:46
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).