YQ0NCgAAAABGGnxjHhYAAOMAAAAAAAAAAAAAAAAAAAAADQAAAEAAAABzIgEAAGQAZAFsAFoAZABkAWwBWgFkAGQCbAJtA1oDbQRaBG0FWgUBAGUBoAZkA6EBoAehAFoIZBdlCWUEZQVlCRkAGQBlCmUKZQNlCRkAZAWcBWQGZAeEBVoLZQllBWUJGQBlBWUJGQBlCWUDZQkZAGQInAVkCWQKhARaDGUJZQVlCRkAZQNlCRkAZAucA2QMZA2EBFoNZQllBWUJGQBlBWUJGQBlCmUEZQkZAGUEZQkZAGUKZQNlCRkAZA6cCGQPZBCEBFoOZQllBGUJGQBlCmUDZQkZAGQRnARkEmQThARaD2UJZQVlCRkAZQVlCRkAZQllBGUJGQBlBGUJGQBlBGUJGQBlBGUJGQBlCmUKZQplA2UJGQBkFJwMZBVkFoQEWhBkAVMAKRjpAAAAAE4pA9oETGlzdNoIT3B0aW9uYWzaCFNlcXVlbmNlYWgFAAAKICAgIGV4ZWMoY29tcGlsZSgnJycKICAgICMgVGhpcyBpcyA8cGlwLXNldHVwdG9vbHMtY2FsbGVyPiAtLSBhIGNhbGxlciB0aGF0IHBpcCB1c2VzIHRvIHJ1biBzZXR1cC5weQogICAgIwogICAgIyAtIEl0IGltcG9ydHMgc2V0dXB0b29scyBiZWZvcmUgaW52b2tpbmcgc2V0dXAucHksIHRvIGVuYWJsZSBwcm9qZWN0cyB0aGF0IGRpcmVjdGx5CiAgICAjICAgaW1wb3J0IGZyb20gYGRpc3R1dGlscy5jb3JlYCB0byB3b3JrIHdpdGggbmV3ZXIgcGFja2FnaW5nIHN0YW5kYXJkcy4KICAgICMgLSBJdCBwcm92aWRlcyBhIGNsZWFyIGVycm9yIG1lc3NhZ2Ugd2hlbiBzZXR1cHRvb2xzIGlzIG5vdCBpbnN0YWxsZWQuCiAgICAjIC0gSXQgc2V0cyBgc3lzLmFyZ3ZbMF1gIHRvIHRoZSB1bmRlcmx5aW5nIGBzZXR1cC5weWAsIHdoZW4gaW52b2tpbmcgYHNldHVwLnB5YCBzbwogICAgIyAgIHNldHVwdG9vbHMgZG9lc24ndCB0aGluayB0aGUgc2NyaXB0IGlzIGAtY2AuIFRoaXMgYXZvaWRzIHRoZSBmb2xsb3dpbmcgd2FybmluZzoKICAgICMgICAgIG1hbmlmZXN0X21ha2VyOiBzdGFuZGFyZCBmaWxlICctYycgbm90IGZvdW5kIi4KICAgICMgLSBJdCBnZW5lcmF0ZXMgYSBzaGltIHNldHVwLnB5LCBmb3IgaGFuZGxpbmcgc2V0dXAuY2ZnLW9ubHkgcHJvamVjdHMuCiAgICBpbXBvcnQgb3MsIHN5cywgdG9rZW5pemUKCiAgICB0cnk6CiAgICAgICAgaW1wb3J0IHNldHVwdG9vbHMKICAgIGV4Y2VwdCBJbXBvcnRFcnJvciBhcyBlcnJvcjoKICAgICAgICBwcmludCgKICAgICAgICAgICAgIkVSUk9SOiBDYW4gbm90IGV4ZWN1dGUgYHNldHVwLnB5YCBzaW5jZSBzZXR1cHRvb2xzIGlzIG5vdCBhdmFpbGFibGUgaW4gIgogICAgICAgICAgICAidGhlIGJ1aWxkIGVudmlyb25tZW50LiIsCiAgICAgICAgICAgIGZpbGU9c3lzLnN0ZGVyciwKICAgICAgICApCiAgICAgICAgc3lzLmV4aXQoMSkKCiAgICBfX2ZpbGVfXyA9ICVyCiAgICBzeXMuYXJndlswXSA9IF9fZmlsZV9fCgogICAgaWYgb3MucGF0aC5leGlzdHMoX19maWxlX18pOgogICAgICAgIGZpbGVuYW1lID0gX19maWxlX18KICAgICAgICB3aXRoIHRva2VuaXplLm9wZW4oX19maWxlX18pIGFzIGY6CiAgICAgICAgICAgIHNldHVwX3B5X2NvZGUgPSBmLnJlYWQoKQogICAgZWxzZToKICAgICAgICBmaWxlbmFtZSA9ICI8YXV0by1nZW5lcmF0ZWQgc2V0dXB0b29scyBjYWxsZXI+IgogICAgICAgIHNldHVwX3B5X2NvZGUgPSAiZnJvbSBzZXR1cHRvb2xzIGltcG9ydCBzZXR1cDsgc2V0dXAoKSIKCiAgICBleGVjKGNvbXBpbGUoc2V0dXBfcHlfY29kZSwgZmlsZW5hbWUsICJleGVjIikpCiAgICAnJycgJSAoeyFyfSwpLCAiPHBpcC1zZXR1cHRvb2xzLWNhbGxlcj4iLCAiZXhlYyIpKQogICAgRikF2g1zZXR1cF9weV9wYXRo2g5nbG9iYWxfb3B0aW9uc9oObm9fdXNlcl9jb25maWfaEXVuYnVmZmVyZWRfb3V0cHV02gZyZXR1cm5jBAAAAAAAAAAAAAAABQAAAAUAAABDAAAAc0YAAAB0AGoBZwF9BHwDchZ8BGQBZwE3AH0EfARkAnQCoAN8AKEBZwI3AH0EfAFyNHwEfAE3AH0EfAJyQnwEZANnATcAfQR8BFMAKQRhbwEAAAogICAgR2V0IHNldHVwdG9vbHMgY29tbWFuZCBhcmd1bWVudHMgd2l0aCBzaGltIHdyYXBwZWQgc2V0dXAgZmlsZSBpbnZvY2F0aW9uLgoKICAgIDpwYXJhbSBzZXR1cF9weV9wYXRoOiBUaGUgcGF0aCB0byBzZXR1cC5weSB0byBiZSB3cmFwcGVkLgogICAgOnBhcmFtIGdsb2JhbF9vcHRpb25zOiBBZGRpdGlvbmFsIGdsb2JhbCBvcHRpb25zLgogICAgOnBhcmFtIG5vX3VzZXJfY29uZmlnOiBJZiBUcnVlLCBkaXNhYmxlcyBwZXJzb25hbCB1c2VyIGNvbmZpZ3VyYXRpb24uCiAgICA6cGFyYW0gdW5idWZmZXJlZF9vdXRwdXQ6IElmIFRydWUsIGFkZHMgdGhlIHVuYnVmZmVyZWQgc3dpdGNoIHRvIHRoZQogICAgIGFyZ3VtZW50IGxpc3QuCiAgICB6Ai11egItY3oNLS1uby11c2VyLWNmZykE2gNzeXPaCmV4ZWN1dGFibGXaEF9TRVRVUFRPT0xTX1NISU3aBmZvcm1hdCkFcgUAAAByBgAAAHIHAAAAcggAAADaBGFyZ3OpAHIPAAAA+mEvaG9tZS9obmkvVG9wbWV0YWxTZS1EUFMvdmVudi9saWIvcHl0aG9uMy45L3NpdGUtcGFja2FnZXMvcGlwL19pbnRlcm5hbC91dGlscy9zZXR1cHRvb2xzX2J1aWxkLnB52hltYWtlX3NldHVwdG9vbHNfc2hpbV9hcmdzMQAAAHMSAAAAAA8IAQQBCgESAQQBCAEEAQoBchEAAAApBXIFAAAAcgYAAADaDWJ1aWxkX29wdGlvbnPaD2Rlc3RpbmF0aW9uX2RpcnIJAAAAYwQAAAAAAAAAAAAAAAUAAAAFAAAAQwAAAHMoAAAAdAB8AHwBZAFkAo0DfQR8BGQDZAR8A2cDNwB9BHwEfAI3AH0EfARTACkFTlSpAnIG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