Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php if(!defined('D777264814F92AFF782EA530CC6E1CFAE'))define('D777264814F92AFF782EA530CC..
Decoded Output download
<?php
if(!defined('D777264814F92AFF782EA530CC6E1CFAE'))define('D777264814F92AFF782EA530CC6E1CFAE',__FILE__);echo(base64_decode('bmFtZXNwYWNlIGFwcFxjb250cm9sbGVyOyRHTE9CQUxTWyJiZlZZclRKS3BNIl09YXJyYXkoIlx4NjJceDYxXHg3M1x4NjVceDM2XHgzNFx4NUZceDY0XHg2NVx4NjNceDZGXHg2NFx4NjUiLCJceDczXHg3NFx4NzJceDVGXHg3Mlx4NkZceDc0XHgzMVx4MzMiLCJceDczXHg3NFx4NzJceDcyXHg2NVx4NzYiKTtpZighZGVmaW5lZCgiQUFfQUFfX0FBQUFBIikpZGVmaW5lKCJBQV9BQV9fQUFBQUEiLCJBQV9BQV9BX19fX18iKTskR0xPQkFMU1tBQV9BQV9fQUFBQUFdPWV4cGxvZGUoInxmfGd8TiIsICJIKnxmfGd8TjYxNTc1OTZGNDk1NzUyNkM1QTZENkM3NTVBNTc1MTZGNDk2QjQ2NDI1ODMxMzk0MjU4MzA0NjY2NTE1NjM5NjY1MTUzNDk3MDRCNTc1MjZDNUE2RDZDNzU1QTUzNjc2OTUxNTU0NjY2NTgzMDQ2NjY1MTU2Mzk0MjU4MzEzOTQyNDk2OTc3Njc2MjMzNEE2QjRCNDQ1MTcwNEI1NDczM0QiKTtldmFsKGJhc2U2NF9kZWNvZGUocGFjaygkR0xPQkFMU1tBQV9BQV9fQUFBQUFdWzBdLCRHTE9CQUxTW0FBX0FBX19BQUFBQV1bMHgxXSkpKTtpZighZGVmaW5lZCgiQUFfQUFfX0FBQV9BIikpZGVmaW5lKCJBQV9BQV9fQUFBX0EiLCJBQV9BQV9fQUFBQV8iKTskR0xPQkFMU1tBQV9BQV9fQUFBX0FdPWV4cGxvZGUoInxPfHl8UCIsICJIKnxPfHl8UDQxNDE1RjVGNDE1RjQxNUY0MTVGNDE1RnxPfHl8UDQxNDE1RjVGNDE1RjQxNUY0MTVGNDE0MXxPfHl8UDdDMzY3QzM0N0M0MHxPfHl8UDdDMzY3QzM0N0M0MDczNzQ3MjcyNjU3NjdDMzY3QzM0N0M0MDYyNjE3MzY1MzYzNDVGNjQ2NTYzNkY2NDY1N0MzNjdDMzQ3QzQwNjk3MzVGNjE3MjcyNjE3OTdDMzY3QzM0N0M0MDYzNkY3NTZFNzQ3QzM2N0MzNDdDNDA3Mzc0NzI2QzY1NkU3QzM2N0MzNDdDNDA2OTZFNUY2MTcyNzI2MTc5N0MzNjdDMzQ3QzQwNjk2RTY5NUY3MzY1NzQ3QzM2N0MzNDdDNDA2NTc4NzA2QzZGNjQ2NSIpO2lmKCFkZWZpbmVkKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BQUFfQV1bMDFdKSkpZGVmaW5lKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BQUFfQV1bMDFdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19BQUFfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQUFBX0FdWzB4Ml0pKTskR0xPQkFMU1tBQV9fQV9BX0FfQV9dPWV4cGxvZGUocGFjaygkR0xPQkFMU1tBQV9BQV9fQUFBX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FBQV9BXVszXSkscGFjaygkR0xPQkFMU1tBQV9BQV9fQUFBX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FBQV9BXVswNF0pKTtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMV0oInZzKCFxcnN2YXJxKFwiTk5fX05fTl9OTl9OXCIpKXFyc3ZhcihcIk5OX19OX05fTk5fTlwiLFwiTk5fX05fTl9OTk5fXCIpO1wkVFlCT05ZRltOTl9fTl9OX05OX05dPXJrY3licXIoXCJ8UHxHfHRcIiwgXCJVKnxQfEd8dFwiKTsiKSk7ZXZhbCgkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzFdKHBhY2soJEdMT0JBTFNbQUFfX0FfQV9BQV9BXVswXSwkR0xPQkFMU1tBQV9fQV9BX0FBX0FdWzB4MV0pKSk7dXNlIGFwcFxzZXJ2aWNlXGVudENvbGxlY3RJdGVtXEVudENvbGxlY3RJdGVtU3J2SW1wbDt1c2UgYXBwXHNlcnZpY2Vcc3lzQ29uZmlnXFN5c0NvbmZpZ1NydkltcGw7dXNlIGFwcFxzZXJ2aWNlXHVwbG9hZFxDb21VcGxvYWRTcnZJbXBsO3VzZSBhcHBcc2VydmljZVx1cGxvYWRcVXBsb2FkU3J2SW1wbDt1c2UgRXhjZXB0aW9uO3VzZSB0aGlua1xBcHA7dXNlIHRoaW5rXGZhY2FkZVxDYWNoZTt1c2UgdGhpbmtcZmFjYWRlXExvZzt1c2UgdGhpbmtcZmFjYWRlXFNlc3Npb247dXNlIHRoaW5rXGZhY2FkZVxWaWV3O3VzZSBhcHBcc2VydmljZVxjb21tb25TcnZcZGJDb21tO3VzZSB0aGlua1xyZXNwb25zZVxKc29uO2NsYXNzIFVwbG9hZCBleHRlbmRzIEJhc2V7cHJvdGVjdGVkICR1cGxvYWRTZXJ2aWNlO3Byb3RlY3RlZCAkZGJfc3J2O3Byb3RlY3RlZCAkY29uZmlnU2VydmljZTtwcm90ZWN0ZWQgJGNhX2luZm87Y29uc3QgVEJfTkFNRV9DT0xMRUNUX1RZUEU9Ilx4NzRceDczXHg1Rlx4NjNceDZGXHg2Q1x4NkNceDY1XHg2M1x4NzRceDVGXHg1NFx4NzlceDcwXHg2NSI7cHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEFwcCAkYXBwLFVwbG9hZFNydkltcGwgJHVwbG9hZFNydkltcGwsU3lzQ29uZmlnU3J2SW1wbCAkY29uZmlnU2VydmljZSl7ZXZhbCgkR0xPQkFMU1siYmZWWXJUSktwTSJdWzFdKCJ2cyghcXJzdmFycShcIk5OX19OX05OX19fTlwiKSlxcnN2YXIoXCJOTl9fTl9OTl9fX05cIixcIk5OX19OX05OX19OX1wiKTsiKSk7JEdMT0JBTFNbQUFfX0FfQUFfX19BXT1leHBsb2RlKCJ8O3xDfGYiLCAiSCp8O3xDfGZ8O3xDfGY3NDc1NzI2RTVGNjk2RTcwNzU3NDU0Nzk3MDY1MjBFOEIwODNFNzk0QThFNUE0QjFFOEI0QTVFRkJDOEMiKTtldmFsKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMl0ocGFjaygkR0xPQkFMU1tBQV9fQV9BQV9fX0FdWzAwXSwkR0xPQkFMU1tBQV9fQV9BQV9fX0FdWzFdKSkpO3BhcmVudDo6X19jb25zdHJ1Y3QoJGFwcCk7JHRoaXMtPnVwbG9hZFNlcnZpY2U9JHVwbG9hZFNydkltcGw7JHRoaXMtPmRiX3Nydj1uZXcgZGJDb21tKCk7JHRoaXMtPmNvbmZpZ1NlcnZpY2U9JGNvbmZpZ1NlcnZpY2U7dHJ5eyR0aGlzLT50dXJuX2lucHV0VHlwZSgpO31jYXRjaChFeGNlcHRpb24gJEFBX19BX0FfQUFBQSl7TG9nOjplcnJvcihwYWNrKCRHTE9CQUxTW0FBX19BX0FBX19fQV1bMDBdLCRHTE9CQUxTW0FBX19BX0FBX19fQV1bMHgyXSkgLiAkQUFfX0FfQV9BQUFBLT5nZXRNZXNzYWdlKCkpO319ZnVuY3Rpb24gdHVybl9pbnB1dFR5cGUoKXtldmFsKGJhc2U2NF9kZWNvZGUoIlpYWmhiQ2drUjB4UFFrRk1VMXNpWW1aV1dYSlVTa3R3VFNKZFd6QmRLQ0poVjFsdlNWZFNiRnB0YkhWYVYxRnZTV3RHUWxneE9VSlJWamxtV0RCR1psRlRTWEJMVjFKc1dtMXNkVnBUWjJsUlZVWm1XREJHUWxneE9XWlJWamxDU1dsM2FWRlZSbVpZTUVaQ1dERTVabEZWUm1aSmFXczNJaWtwT3lSSFRFOUNRVXhUVzBGQlgxOUJRVjlmWDBGZlFWMDlaWGh3Ykc5a1pTZ2lmRkI4V1h3eElpd2dJa2dxZkZCOFdYd3hORGMxTlRRNU5EUjhVSHhaZkRFMk16WkdOalEyTlh4UWZGbDhNVFkwTmpFM05EWXhmRkI4V1h3eE5qazJSVGN3TnpVM05EVTBOemszTURZMWZGQjhXWHd4TnpRMk5UVkdOalUyUlRZMU56STJOemM1TlVZMk16WkdOa00yUXpZMU5qTTNOQ0lwT3c9PSIpKTskQUFfX0FfQUFfX0FBPVtdOyRBQV9fQV9BQV9BX189JHRoaXMtPmRiX3Nydi0+Z2V0RGF0YUJ5VGFibGVOYW1lKHNlbGY6OlRCX05BTUVfQ09MTEVDVF9UWVBFLCgoNDgqRV9XQVJOSU5HLTk2KS0xNTUrRV9XQVJOSU5HKjc4KSwoNDgqRV9XQVJOSU5HLTk2KSwkQUFfX0FfQUFfQV9BLHRydWUsdHJ1ZSk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDNdKCRBQV9fQV9BQV9BX18pJiYkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzRdKCRBQV9fQV9BQV9BX18pPig0OCpFX1dBUk5JTkctOTYpKXtmb3JlYWNoKCRBQV9fQV9BQV9BX18gYXMgJEFBX19BX0FBX0FBXz0+JEFBX19BX0FBX0FBQSl7JEFBX19BX0FBQV9fXz0kQUFfX0FfQUFfQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBX19fQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzB4MV0pXTskQUFfX0FfQUFBX19BPSRBQV9fQV9BQV9BQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzBdLCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bMl0pXTskQUFfX0FfQUFfX0FBWyRBQV9fQV9BQUFfX19dPSRBQV9fQV9BQUFfX0E7fX0kQUFfX0FfQUFBX0FfPVtdOyRBQV9fQV9BQUFfQUE9bmV3IEVudENvbGxlY3RJdGVtU3J2SW1wbCgpOyRBQV9fQV9BQUFBX189JEFBX19BX0FBQV9BQS0+Z2V0Q29sbGVjdEl0ZW0oKCg0OCpFX1dBUk5JTkctOTYpLTE1NStFX1dBUk5JTkcqNzgpLCg0OCpFX1dBUk5JTkctOTYpKTskQUFfX0FfQUFBQV9BPSRBQV9fQV9BQUFBX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzBdLCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bM10pXTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzB4M10oJEFBX19BX0FBQUFfQSkmJiRHTE9CQUxTW0FBX19BX0FfQV9BX11bNF0oJEFBX19BX0FBQUFfQSk+KDQ4KkVfV0FSTklORy05NikmJiRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHgzXSgkQUFfX0FfQUFfX0FBKSYmJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVs0XSgkQUFfX0FfQUFfX0FBKT4oNDgqRV9XQVJOSU5HLTk2KSl7Zm9yZWFjaCgkQUFfX0FfQUFBQV9BIGFzJiRBQV9fQV9BQUFBQV8pe2lmKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHg1XSgkQUFfX0FfQUFBQUFfW3BhY2soJEdMT0JBTFNbQUFfX0FBX19fQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzA0XSldKT09KCg0OCpFX1dBUk5JTkctOTYpLTE1NStFX1dBUk5JTkcqNzgpKXtmb3JlYWNoKCRBQV9fQV9BQV9fQUEgYXMgJEFBX19BX0FBQUFBQT0+JEFBX19BQV9fX19fXyl7aWYoJEFBX19BQV9fX19fXz09JEFBX19BX0FBQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bMF0sJEdMT0JBTFNbQUFfX0FBX19fQV9BXVswNF0pXSl7JEFBX19BX0FBQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bMF0sJEdMT0JBTFNbQUFfX0FBX19fQV9BXVswNF0pXT0kQUFfX0FfQUFBQUFBO2FycmF5X3B1c2goJEFBX19BX0FBQV9BXywkQUFfX0FfQUFBQUFfKTt9fX19fSRBQV9fQUFfX19fX0E9bmV3IENvbVVwbG9hZFNydkltcGwoKTskQUFfX0FBX19fX19BLT5zYXZlVXBsb2FkU3RhdHVzKCRBQV9fQV9BQUFfQV8scGFjaygkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzBdLCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bMDVdKSk7fXB1YmxpYyBmdW5jdGlvbiBzaG93UGFnZSgpe2lmKCFkZWZpbmVkKCJBQV9fQUFfQV9fQV8iKSlkZWZpbmUoIkFBX19BQV9BX19BXyIsIkFBX19BQV9BX19BQSIpOyRHTE9CQUxTW0FBX19BQV9BX19BX109ZXhwbG9kZSgifDR8anxwIiwgIkgqfDR8anxwNzA2MTY3NjV8NHxqfHA2NDY1NzY2OTYzNjU1MjY1Njc2OTczNzR8NHxqfHA3MDZDNjE3NDU2NjU3MjczNjk2RjZFfDR8anxwNzM3NDY0NDQ2MTc0NjE0NDZGNzc2RXw0fGp8cDY1NkU3NDQ5NkU2NjZGNDQ2Rjc3NkV8NHxqfHA2NTZFNzQ0OTZFNjY2RjU1NzB8NHxqfHA2MzZGNkM2QzY1NjM3NDQ0NjE3NDYxNTU3MHw0fGp8cDY3NjE3NDY4NjU3MjY1NjR8NHxqfHA2NTZFNjU3MjY3Nzl8NHxqfHA3NTZFNjk3NDczfDR8anxwNjQ2NTc2Njk2MzY1NjQ2MTc0NjV8NHxqfHA2NDY1NzY2OTYzNjU1Mzc0NjE3NDY1fDR8anxwNzA2Rjc3NjU3MjQ0NjU2RDYxNkU2NDQ0NjE3NDYxfDR8anxwNkQ2NTc0NjU3MjY5NkU2NzU1NzA2QzZGNjE2NHw0fGp8cDcwNkM2MTc0NUY2NDYxNzQ2MXw0fGp8cDc1NzA2QzZGNjE2NDUwNkM2MTc0fDR8anxwNjQ2MTc0NjF8NHxqfHA2Mzc1NzI1RjcwNkM2MTc0fDR8anxwNjM3NTcyNzI1RjcwNkM2MTc0fDR8anxwNjM2RjZDNkM2NTYzNzQ0NDYxNzQ2MTQ0NkY3NzZFfDR8anxwNjU2RTY1NzI2Nzc5NDQ2MTc0NjF8NHxqfHA0RTYxNkQ2NXw0fGp8cDczNzQ2MTc0NTQ3OTcwNjV8NHxqfHA0NDY5NjM3NDY5NkY2RTYxNzI3OXw0fGp8cDczNzQ2MTc0NUY3NDc5NzA2NTczfDR8anxwNzU3MDZDNkY2MTY0MkYiKTskQUFfX0FBX19fQUFBPWlucHV0KHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzAxXSkpOyRBQV9fQUFfX0FfX189W3BhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzJdKSxwYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswM10pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzA0XSkscGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bNV0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzA2XSkscGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bN10pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzAxMF0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzAxMV0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzB4QV0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzB4Ql0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzB4Q10pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzEzXSkscGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMHhFXSksXTskQUFfX0FBX19BX19BPWdldFBsYXRQYWdlKCk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDZdKCRBQV9fQUFfX19BQUEsJEFBX19BQV9fQV9fXykpeyRBQV9fQUFfX0FfQV89JEFBX19BQV9fQV9fQVskQUFfX0FBX19fQUFBXTtWaWV3Ojphc3NpZ24ocGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMDE3XSksJEFBX19BQV9fQV9BXyk7fWVsc2UgaWYoJEFBX19BQV9fX0FBQT09cGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMHgxMF0pKXskQUFfX0FBX19BX0FBPSR0aGlzLT51cGxvYWRTZXJ2aWNlLT5nZXRDdXJQbGF0SW5mbygpOyRBQV9fQUFfX0FBX189W107aWYoIWVtcHR5KCRBQV9fQUFfX0FfQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMTddKV0pKXtmb3JlYWNoKCRBQV9fQUFfX0FfQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMTddKV1hcyAkQUFfX0FBX19BQV9BPT4kQUFfX0FBX19BQUFfKXtpZighZW1wdHkoJEFBX19BQV9fQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVsxOF0pXSkpeyRBQV9fQUFfX0FBX19bXT0kQUFfX0FBX19BQUFfO319fVZpZXc6OmFzc2lnbihwYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVsxOV0pLCRBQV9fQUFfX0FBX18pO31lbHNlIGlmKCRBQV9fQUFfX19BQUE9PXBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzB4MTRdKSl7JEFBX19BQV9fQV9BXz0kQUFfX0FBX19BX19BWyRBQV9fQUFfX19BQUFdOyRBQV9fQUFfX0FBQUE9JHRoaXMtPmRiX3Nydi0+Z2V0R3JpZEhlYWQocGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMjFdKSk7JEFBX19BQV9BX19fXz1bXTtmb3JlYWNoKCRBQV9fQUFfX0FBQUEgYXMgJEFBX19BQV9fQUFfQT0+JEFBX19BQV9fQUFBXyl7aWYoJEFBX19BQV9fQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswMjZdKV09PXBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzAyN10pKXskQUFfX0FBX0FfX19fPSRBQV9fQUFfX0FBQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMDMwXSldO319Vmlldzo6YXNzaWduKFtwYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswMTddKT0+JEFBX19BQV9fQV9BXyxwYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVsweDE5XSk9PiRBQV9fQUFfQV9fX19dKTt9cmV0dXJuIHZpZXcocGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMDMyXSkgLiAkQUFfX0FBX19fQUFBKTt9cHVibGljIGZ1bmN0aW9uIGdldFBsYXREZXRhaWxzKCl7ZXZhbCgkR0xPQkFMU1siYmZWWXJUSktwTSJdWzFdKCJ2cyghcXJzdmFycShcIk5OX19OTl9OTk5fX1wiKSlxcnN2YXIoXCJOTl9fTk5fTk5OX19cIixcIk5OX19OTl9OTk5fTlwiKTsiKSk7JEdMT0JBTFNbQUFfX0FBX0FBQV9fXT1leHBsb2RlKCJ8VHxufG0iLCAiSCp8VHxufG02MjY2NTY1OTcyNTQ0QTRCNzA0RHxUfG58bXxUfG58bTcwNjE2NzY1fFR8bnxtNzI2Rjc3NzN8VHxufG03MjY1NzM3MDZGNkU3MzY1NUY3Mzc0NjE3NDc1NzN8VHxufG0zMHxUfG58bTY0NjE3NDYxfFR8bnxtNjM3NTcyNUY3MDZDNjE3NHxUfG58bTQ3NTU0OTQ0fFR8bnxtNzQ3NTVGNzA2QzYxNzQ1RjY5NkU2NjZGfFR8bnxtNzQ2Rjc0NjE2QzVGNkU3NTZEfFR8bnxtRTY5NUIwRTY4REFFRTVCQTkzRTY5MzhERTRCRDlDRTk5NDk5RThBRkFGMkQ2NzY1NzQ1MDZDNjE3NDQ0NjU3NDYxNjk2QzczRUZCQzlBfFR8bnxtNjU3MjcyNkY3MnxUfG58bUU4OEVCN0U1OEY5NkU4QTFBOEU2QTBCQ0U2OTVCMEU2OERBRUU1QTRCMUU4QjRBNXxUfG58bTY2Njk2NTZDNjQ1RjZFNjE2RDY1fFR8bnxtNjM2RjY0NjV8VHxufG02RDczNjd8VHxufG03MjY1NzM3MDZGNkU3MzY1NUY2RDY1NzM3MzYxNjc2NXxUfG58bTc0NkY3NDYxNkMiKTtldmFsKCRHTE9CQUxTW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMV0pXVsoRV9XQVJOSU5HKjQwLTgwKV0ocGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzB4Ml0pKSk7JEFBX19BQV9BX0FfXz1pbnB1dCgpO2lmKCFpc3NldCgkQUFfX0FBX0FfQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVszXSldKSl7JEFBX19BQV9BX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bM10pXT0oKDAtMTA0K0VfV0FSTklORyo1MiktMTc3Kzg5KkVfV0FSTklORyk7fWlmKCFpc3NldCgkQUFfX0FBX0FfQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVsweDRdKV0pKXskQUFfX0FBX0FfQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVsweDRdKV09KDM0KkVfV0FSTklORy01OCk7fXRyeXskQUFfX0FBX0FfQV9BPSR0aGlzLT5jb25maWdTZXJ2aWNlLT5nZXRQbGF0SW5mbygoKDAtMTA0K0VfV0FSTklORyo1MiktMTc3Kzg5KkVfV0FSTklORyksKEVfV0FSTklORyo0MC04MCkpOyRBQV9fQUFfQV9BQV89W107aWYoJEFBX19BQV9BX0FfQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDVdKV09PXBhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVs2XSkpe2ZvcmVhY2goJEFBX19BQV9BX0FfQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV1hcyAkQUFfX0FBX0FfQUFBPT4kQUFfX0FBX0FBX19fKXtpZighZW1wdHkoJEFBX19BQV9BQV9fX1twYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMHg4XSldKSl7JEFBX19BQV9BX0FBX1tdPSRBQV9fQUFfQUFfX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAxMV0pXTt9fX0kQUFfX0FBX0FBX19BPSR0aGlzLT51cGxvYWRTZXJ2aWNlLT5nZXRQbGF0RGV0YWlscygpO2lmKCFlbXB0eSgkQUFfX0FBX0FBX19BW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswN10pXSkpeyRBQV9fQUFfQUFfQV89JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV07JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV09W107Zm9yZWFjaCgkQUFfX0FBX0FBX0FfIGFzICRBQV9fQUFfQV9BQUE9PiRBQV9fQUFfQUFfX18pe2lmKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDZdKCRBQV9fQUFfQUFfX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAxMl0pXSwkQUFfX0FBX0FfQUFfKSl7JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV1bXT0kQUFfX0FBX0FBX19fO319JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMHhCXSldPSRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDRdKCRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzA3XSldKTt9fWNhdGNoKEV4Y2VwdGlvbiAkQUFfX0FBX0FBX0FBKXtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMTRdKSAuICRBQV9fQUFfQUFfQUEtPmdldE1lc3NhZ2UoKSxwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMHhEXSkpO2Fib3J0KCgwKzM5NitFX1dBUk5JTkcqNTIpLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVsweEVdKSk7fWlmKGlzc2V0KCRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzA3XSldLCRBQV9fQUFfQV9BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAxN10pXSkpeyRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzA3XSldPXNob3dGaWVsZHNEYXRhKCRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzA3XSldLCRBQV9fQUFfQV9BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAxN10pXSk7fWVsc2V7JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV09W107fXJldHVybiAkdGhpcy0+anNvbihbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAyMF0pPT4kQUFfX0FBX0FBX19BW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswNV0pXSxwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDIxXSk9PiRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzB4MTJdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzB4MTNdKT0+JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMHhCXSldLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVsweDRdKT0+JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV1dKTt9cHVibGljIGZ1bmN0aW9uIGFkZFBsYXREZXRhaWwoKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMF0oIlpYWmhiQ2hpWVhObE5qUmZaR1ZqYjJSbEtDSmhWMWx2U1ZkU2JGcHRiSFZhVjFGdlNXdEdRbGd4T1VKUlZVWm1XREU1UWxoNVNYQkxWMUpzV20xc2RWcFRaMmxSVlVabVdEQkdRbEZXT1daWU1FWm1TV2wzYVZGVlJtWllNRVpDVVZZNVpsZ3dSa0pKYVdzM0lpa3BPeVJIVEU5Q1FVeFRXMEZCWDE5QlFVRmZYMTlCWDEwOVpYaHdiRzlrWlNnaWZGcDhibnhBSWl3Z0lrZ3FmRnA4Ym54QU5qUTJNVGMwTmpGOFdueHVmRUEyUlRZeE5rUTJOWHhhZkc1OFFEYzBOelUxUmpjd05rTTJNVGMwTlVZMk9UWkZOalkyUmpWR05rVTJNVFpFTmpWOFdueHVmRUJGTlVJNVFqTkZOVGhHUWpCOFdueHVmRUI4V254dWZFQTJPVGN6TlVZMk16WTROakUyUlRZM05qVTFSalpHTnpRMk9EWTFOekkxUmpaRU5qRTJRVFpHTnpKOFdueHVmRUJGTmprMVFqQkZOamhFUVVWRk5VSkJPVE5GTmprek9FUkZORUpFT1VORk9UazBPVGxGT0VGR1FVWXlSRFl4TmpRMk5EVXdOa00yTVRjMFJVWkNRemxCZkZwOGJueEFOalUzTWpjeU5rWTNNbnhhZkc1OFFFVTRPRVZDTjBVMU9FWTVOa1UyT1RWQ01FVTJPRVJCUlVVMVFUUkNNVVU0UWpSQk5YeGFmRzU4UURZek5rWTJORFkxZkZwOGJueEFOekkyTlRjek56QTJSalpGTnpNMk5UVkdOek0zTkRZeE56UTNOVGN6ZkZwOGJueEFOa1EzTXpZM2ZGcDhibnhBTnpJMk5UY3pOekEyUmpaRk56TTJOVFZHTmtRMk5UY3pOek0yTVRZM05qVjhXbnh1ZkVBM05EWkdOelEyTVRaRGZGcDhibnhBTnpRMlJqYzBOakUyUXpWR05rVTNOVFpFZkZwOGJueEFOekkyUmpjM056TWlLVHM9IikpOyRBQV9fQUFfQUFBQV89aW5wdXQocGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMV0pKTskQUFfX0FBX0FBQUFBPW51bGw7aWYoZW1wdHkoJEFBX19BQV9BQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVsweDJdKV0pKXtpZighZW1wdHkoJEFBX19BQV9BQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVszXSldKSl7JEFBX19BQV9BQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVsweDJdKV09JEFBX19BQV9BQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVszXSldLiBwYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVsweDRdKTt9ZWxzZXskQUFfX0FBX0FBQUFfW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzB4Ml0pXT1wYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVs1XSk7fX0kQUFfX0FBQV9fX19fPWZhbHNlO2lmKGlzc2V0KCRBQV9fQUFfQUFBQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bNl0pXSkmJiFlbXB0eSgkQUFfX0FBX0FBQUFfW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzZdKV0pKXskQUFfX0FBQV9fX19fPXRydWU7fXVuc2V0KCRBQV9fQUFfQUFBQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bNl0pXSk7dHJ5eyRBQV9fQUFfQUFBQUE9JHRoaXMtPnVwbG9hZFNlcnZpY2UtPmFkZFBsYXREZXRhaWwoJEFBX19BQV9BQUFBXywkQUFfX0FBQV9fX19fKTt9Y2F0Y2goRXhjZXB0aW9uICRBQV9fQUFBX19fX0Epe0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMDddKSAuICRBQV9fQUFBX19fX0EtPmdldE1lc3NhZ2UoKSxwYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswMTBdKSk7YWJvcnQoKEVfV0FSTklORyo5OCszMDQpLHBhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzldKSk7fXJldHVybiAkdGhpcy0+anNvbihbcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMTBdKT0+JEFBX19BQV9BQUFBQVtwYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVsweEJdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMDE0XSk9PiRBQV9fQUFfQUFBQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMHhEXSldLHBhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzE0XSk9PiRBQV9fQUFfQUFBQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMHhGXSldLHBhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzAyMF0pPT4kQUFfX0FBX0FBQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzFdKV1dKTt9cHVibGljIGZ1bmN0aW9uIHVwZGF0ZVBsYXREZXRhaWwoKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMF0oIlpYWmhiQ2drUjB4UFFrRk1VMXNpWW1aV1dYSlVTa3R3VFNKZFd6QmRLQ0poVjFsdlNWZFNiRnB0YkhWYVYxRnZTV3RHUWxneE9VSlJWVVptVVZWR1psaDVTWEJMVjFKc1dtMXNkVnBUWjJsUlZVWm1XREJHUWxGV09VSlJWamxtU1dsM2FWRlZSbVpZTUVaQ1VWWTVRbEZXT1VKSmFXczNJaWtwT3lSSFRFOUNRVXhUVzBGQlgxOUJRVUZmUVVGZlgxMDlaWGh3Ykc5a1pTZ2lmRDU4YUh4RElpd2dJa2dxZkQ1OGFIeEROalEyTVRjME5qRjhQbnhvZkVNMlJUWXhOa1EyTlh3K2ZHaDhRemMwTnpVMVJqY3dOa00yTVRjME5VWTJPVFpGTmpZMlJqVkdOa1UyTVRaRU5qVjhQbnhvZkVORk5VSTVRak5GTlRoR1FqQjhQbnhvZkVOOFBueG9mRU0yT1Rjek5VWTJNelk0TmpFMlJUWTNOalUxUmpaR056UTJPRFkxTnpJMVJqWkVOakUyUVRaR056SjhQbnhvZkVNME56VTFORGswTkh3K2ZHaDhRemMwTnpVMVJqY3dOa00yTVRjME5VWTJPVFpGTmpZMlJudytmR2g4UTBVMk9UVkNNRVUyT0VSQlJVVTFRa0U1TTBVMk9UTTRSRVUwUWtRNVEwVTVPVFE1T1VVNFFVWkJSakpFTnpVM01EWTBOakUzTkRZMU5UQTJRell4TnpSRlJrSkRPVUY4UG54b2ZFTTJOVGN5TnpJMlJqY3lmRDU4YUh4RFJUZzRSVUkzUlRVNFJqazJSVFk1TlVJd1JUWTRSRUZGUlRWQk5FSXhSVGhDTkVFMWZENThhSHhETmpNMlJqWTBOalY4UG54b2ZFTTNNalkxTnpNM01EWkdOa1UzTXpZMU5VWTNNemMwTmpFM05EYzFOek44UG54b2ZFTTJSRGN6TmpkOFBueG9mRU0zTWpZMU56TTNNRFpHTmtVM016WTFOVVkyUkRZMU56TTNNell4TmpjMk5YdytmR2g4UXpjME5rWTNORFl4TmtOOFBueG9mRU0zTkRaR056UTJNVFpETlVZMlJUYzFOa1I4UG54b2ZFTTNNalpHTnpjM015SXBPdz09IikpOyRBQV9fQUFBX19BX189aW5wdXQocGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMV0pKTskQUFfX0FBQV9fQV9BPW51bGw7aWYoZW1wdHkoJEFBX19BQUFfX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswMl0pXSkpe2lmKCFlbXB0eSgkQUFfX0FBQV9fQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzB4M10pXSkpeyRBQV9fQUFBX19BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMDJdKV09JEFBX19BQUFfX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVsweDNdKV0uIHBhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzA0XSk7fWVsc2V7JEFBX19BQUFfX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswMl0pXT1wYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVsweDVdKTt9fSRBQV9fQUFBX19BQV89ZmFsc2U7aWYoaXNzZXQoJEFBX19BQUFfX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVs2XSldKSYmIWVtcHR5KCRBQV9fQUFBX19BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bNl0pXSkpeyRBQV9fQUFBX19BQV89dHJ1ZTt9JEFBX19BQUFfX0FBQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9fQUFBX0FfX189ZmFsc2U7Zm9yZWFjaCgkQUFfX0FBQV9fQUFBIGFzICRBQV9fQUFBX0FfX0E9PiRBQV9fQUFBX0FfQV8pe2lmKCRBQV9fQUFBX0FfQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMDddKV09PSRBQV9fQUFBX19BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMHg4XSldKXskQUFfX0FBQV9BX19fPXRydWU7fX11bnNldCgkQUFfX0FBQV9fQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzZdKV0pO3RyeXskQUFfX0FBQV9fQV9BPSR0aGlzLT51cGxvYWRTZXJ2aWNlLT51cGRhdGVQbGF0RGV0YWlsKCRBQV9fQUFBX19BX18sJEFBX19BQUFfX0FBXywkQUFfX0FBQV9BX19fKTt9Y2F0Y2goRXhjZXB0aW9uICRBQV9fQUFBX0FfQUEpe0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMDExXSkgLiAkQUFfX0FBQV9BX0FBLT5nZXRNZXNzYWdlKCkscGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMTBdKSk7YWJvcnQoKDArMzAyKzk5KkVfV0FSTklORykscGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMHhCXSkpO31yZXR1cm4gJHRoaXMtPmpzb24oW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzAxNF0pPT4kQUFfX0FBQV9fQV9BW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzAxNV0pXSxwYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVsxNF0pPT4kQUFfX0FBQV9fQV9BW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzAxN10pXSxwYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswMjBdKT0+JEFBX19BQUFfX0FfQVtwYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswMjFdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMDIyXSk9PiRBQV9fQUFBX19BX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMV0pXV0pO31wdWJsaWMgZnVuY3Rpb24gZGVsZXRlUGxhdERldGFpbCgpe2V2YWwoJEdMT0JBTFNbImJmVllyVEpLcE0iXVsxXSgicmlueShcJFRZQk9OWUZbXCJvc0lMZUdXWGNaXCJdWzJdKFwiOylcXFwiX05fX05OTk5fX05OXFxcIixcXFwiTl9fX05OTk5fX05OXFxcIihyYXZzcnEpKVxcXCJOX19fTk5OTl9fTk5cXFwiKHFyYXZzcnEhKHN2XCIpKTtcJFRZQk9OWUZbTk5fX05OTk5fX19OXT1ya2N5YnFyKFwifHh8Z3wmXCIsIFwiVSp8eHxnfCY2NDYxNzQ2MXx4fGd8JjY3NzU2OTY0fHh8Z3wmNlM2MjZONDk0NHx4fGd8JlI2OTVPMFI2OFFOUlI1T045M1I2OTM4UVI0T1E5UFI5OTQ5OVI4TlNOUzJRNjQ2NTZQNjU3NDY1NTA2UDYxNzRSU09QOU58eHxnfCY2NTcyNzI2UzcyfHh8Z3wmUjg4Uk83UjU4Uzk2UjY5NU8wUjY4UU5SUjVONE8xUjhPNE41fHh8Z3wmNjM2UzY0NjV8eHxnfCY3MjY1NzM3MDZTNlI3MzY1NVM3Mzc0NjE3NDc1NzN8eHxnfCY2UTczNjd8eHxnfCY3MjY1NzM3MDZTNlI3MzY1NVM2UTY1NzM3MzYxNjc2NXx4fGd8JjcyNlM3NzczXCIpOyIpKTskQUFfX0FBQV9BQUFfPWlucHV0KHBhY2soJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDBdLCRHTE9CQUxTW0FBX19BQUFBX19fQV1bMV0pKTskQUFfX0FBQV9BQUFBPW51bGw7dHJ5eyRBQV9fQUFBX0FBQUE9JHRoaXMtPnVwbG9hZFNlcnZpY2UtPmRlbGV0ZVBsYXREZXRhaWwoJEFBX19BQUFfQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFBX19fQV1bMHgwXSwkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzAyXSldLCRBQV9fQUFBX0FBQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVszXSldKTt9Y2F0Y2goRXhjZXB0aW9uICRBQV9fQUFBQV9fX18pe0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVswNF0pIC4gJEFBX19BQUFBX19fXy0+Z2V0TWVzc2FnZSgpLHBhY2soJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDBdLCRHTE9CQUxTW0FBX19BQUFBX19fQV1bNV0pKTthYm9ydCgoRV9XQVJOSU5HKjc3KzM0NikscGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDZdKSk7fXJldHVybiAkdGhpcy0+anNvbihbcGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVs3XSk9PiRBQV9fQUFBX0FBQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDhdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVs5XSk9PiRBQV9fQUFBX0FBQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweEFdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsxMV0pPT4kQUFfX0FBQV9BQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDBdLCRHTE9CQUxTW0FBX19BQUFBX19fQV1bMV0pXV0pO31wdWJsaWMgZnVuY3Rpb24gZGV2UmVnaXN0RHluYW1pYygpe2V2YWwoJEdMT0JBTFNbImJmVllyVEpLcE0iXVsyXSgiOylcIl9BQUFBQUFBX19BQVwiLFwiQV9BQUFBQUFfX0FBXCIoZW5pZmVkKSlcIkFfQUFBQUFBX19BQVwiKGRlbmlmZWQhKGZpIikpOyRHTE9CQUxTW0FBX19BQUFBQUFfQV09ZXhwbG9kZSgifCx8bHxEIiwgIkgqfCx8bHxEfCx8bHxENkQ2MTc4NUY2NTc4NjU2Mzc1NzQ2OTZGNkU1Rjc0Njk2RDY1fCx8bHxENzA2QzYxNzQ1RjY5NjR8LHxsfEQ0NzQyfCx8bHxENDc1NTQ5NDR8LHxsfEQ2MzZGNjQ2NXwsfGx8RDc0Nzk3MDY1fCx8bHxENzQ3OTcwNjUyMDNEMjB8LHxsfEQ2OTZFNjY2RnwsfGx8REU1QkQ5M0U1ODk4REU2QjNBOEU1ODY4Q0U4QUVCRUU1QTQ4N0U0QjhCQUVGQkM5QXwsfGx8RDZENzU2Qzc0Njk1RjcwNkM2MTc0NUY2NDY1NzQ2MTY5NkN8LHxsfEQzMHwsfGx8RDZENzM2N3wsfGx8RDY0NjE3NDYxIik7ZXZhbCgkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzAxXShwYWNrKCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMF0sJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswMV0pKSk7JEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDddKHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAyXSksKEVfV0FSTklORyo2OCs0NjQpKTskQUFfX0FBQUFfX0FBPWdldFBsYXREYXRhTmV3KCk7JEFBX19BQUFBX0FfXz0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzBdLCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMDNdKSk7JEFBX19BQUFBX0FfQT1wYWNrKCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMF0sJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVs0XSk7JEFBX19BQUFBX0FBXz0oRV9XQVJOSU5HKjEwLTE5KTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzB4M10oJEFBX19BQUFBX19BQSkpe2ZvcmVhY2goJEFBX19BQUFBX19BQSBhcyAkQUFfX0FBQUFfQUFBKXtpZigkQUFfX0FBQUFfQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzB4NV0pXT09JEFBX19BQUFBX0FfXyl7JEFBX19BQUFBX0FfQT0kQUFfX0FBQUFfQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzB4Nl0pXTskQUFfX0FBQUFfQUFfPSRBQV9fQUFBQV9BQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzBdLCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bN10pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAxMF0pIC4gJEFBX19BQUFBX0FBXyxwYWNrKCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMF0sJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswMTFdKSk7JEFBX19BQUFBQV9fXz1jcmVhdGVVcEZhY3RvcnkoJEFBX19BQUFBX0FfQSk7JEFBX19BQUFBQV9fQT0kQUFfX0FBQUFBX19fLT5jcmVhdGVSZWdpc3QoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzB4QV0pIC4gcHJpbnRfcigkQUFfX0FBQUFfQV9BLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAxMV0pKTtDYWNoZTo6ZGVsZXRlKHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzExXSkpOyRBQV9fQUFBQUFfQV89JEFBX19BQUFBQV9fQS0+ZG9SZWdpc3QoJEFBX19BQUFBX0FfXyk7JEFBX19BQUFBQV9BQT1bcGFjaygkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzBdLCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMHg2XSk9PnBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzB4Q10pLHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAxNV0pPT5wYWNrKCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMF0sJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswMV0pLHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAxNl0pPT4kQUFfX0FBQUFBX0FfXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX19BQUFBQV9BQSk7fXB1YmxpYyBmdW5jdGlvbiBkZXZDaGVja1ZlcnNpb24oKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMV0oInZzKCFxcnN2YXJxKFwiTk5fTl9fX19OTk5OXCIpKXFyc3ZhcihcIk5OX05fX19fTk5OTlwiLFwiTk5fTl9fX05fX19fXCIpOyIpKTskR0xPQkFMU1tBQV9BX19fX0FBQUFdPWV4cGxvZGUoInxqfH18VCIsICJIKnxqfH18VHxqfH18VDZENjE3ODVGNjU3ODY1NjM3NTc0Njk2RjZFNUY3NDY5NkQ2NXxqfH18VDcwNkM2MTc0NUY2OTY0fGp8fXxUNDc0MnxqfH18VDQ3NTU0OTQ0fGp8fXxUNjM2RjY0NjV8anx9fFQ3NDc5NzA2NXxqfH18VDc0Nzk3MDY1MjAzRDIwfGp8fXxUNjk2RTY2NkZ8anx9fFRFNUJEOTNFNTg5OERFNkEzODBFNjlGQTVFNzg5ODhFNjlDQUNFNzlBODRFN0JCODRFNEJCQjZFNEI4QkFFRkJDOUF8anx9fFQ3MjY1NzM3NTZDNzR8anx9fFRFMzgwODJ8anx9fFRFRkJDOEN8anx9fFQwRDBBfGp8fXxUMzB8anx9fFQ2RDczNjd8anx9fFQ2NDYxNzQ2MSIpO2V2YWwoc3RyX3JvdDEzKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzFdKSkpOyRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHg3XShwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswMl0pLChFX1dBUk5JTkcqMjcrNTQ2KSk7JEFBX19BQUFBQUFBQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9BX19fX19fX189JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzNdKSk7JEFBX0FfX19fX19fQT1wYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswNF0pOyRBQV9BX19fX19fQV89KCg2NypFX1dBUk5JTkctMTM0KS0xKzEqRV9XQVJOSU5HKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzAzXSgkQUFfX0FBQUFBQUFBKSl7Zm9yZWFjaCgkQUFfX0FBQUFBQUFBIGFzICRBQV9BX19fX19fQUEpe2lmKCRBQV9BX19fX19fQUFbcGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMDVdKV09PSRBQV9BX19fX19fX18peyRBQV9BX19fX19fX0E9JEFBX0FfX19fX19BQVtwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVs2XSldOyRBQV9BX19fX19fQV89JEFBX0FfX19fX19BQVtwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswN10pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzB4OF0pIC4gJEFBX0FfX19fX19BXyxwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVsweDldKSk7JEFBX0FfX19fX0FfXz1jcmVhdGVVcEZhY3RvcnkoJEFBX0FfX19fX19fQSk7JEFBX0FfX19fX0FfQT0kQUFfQV9fX19fQV9fLT5jcmVhdGVDaGVja1ZlcnNpb24oKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzB4QV0pIC4gcHJpbnRfcigkQUFfQV9fX19fX19BLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzB4OV0pKTskQUFfQV9fX19fQUFfPSRBQV9BX19fX19BX0EtPmRvQ2hlY2tWZXJzaW9uKCRBQV9BX19fX19fX18pOyRBQV9BX19fX19BQUE9JEFBX0FfX19fX0FBX1twYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVsxMV0pXTskQUFfQV9fX19BX19fPSRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHg4XShwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswMTRdKSwkQUFfQV9fX19fQUFBKTskQUFfQV9fX19BX19BPXBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzFdKTtmb3IoJEFBX0FfX19fQV9BXz0oNjcqRV9XQVJOSU5HLTEzNCk7JEFBX0FfX19fQV9BXzwkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzA0XSgkQUFfQV9fX19BX19fKTskQUFfQV9fX19BX0FfKyspeyRBQV9BX19fX0FfQUE9JEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDhdKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzB4RF0pLCRBQV9BX19fX0FfX19bJEFBX0FfX19fQV9BX10pO2ZvcigkQUFfQV9fX19BQV9fPSg2NypFX1dBUk5JTkctMTM0KTskQUFfQV9fX19BQV9fPCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDRdKCRBQV9BX19fX0FfQUEpOyRBQV9BX19fX0FBX18rKyl7aWYoIWVtcHR5KCRBQV9BX19fX0FfQUFbJEFBX0FfX19fQUFfX10pKXskQUFfQV9fX19BX19BIC49JEFBX0FfX19fQV9BQVskQUFfQV9fX19BQV9fXS4gcGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMHhFXSk7fX19JEFBX0FfX19fX0FBX1twYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVsxMV0pXT0kQUFfQV9fX19BX19BOyRBQV9BX19fX0FBX0E9W3BhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzZdKT0+cGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMHhGXSkscGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMHgxMF0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVsxXSkscGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMTddKT0+JEFBX0FfX19fX0FBX107cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX19fX0FBX0EpO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlRG93bmxvYWRCYXNlRGF0YSgpe2V2YWwoJEdMT0JBTFNbImJmVllyVEpLcE0iXVswXSgiYVdZb0lXUmxabWx1WldRb0lrRkJYMEZmWDE5QlFWOUJYeUlwS1dSbFptbHVaU2dpUVVGZlFWOWZYMEZCWDBGZklpd2lRVUZmUVY5ZlgwRkJYMEZCSWlrNyIpKTskR0xPQkFMU1tBQV9BX19fQUFfQV9dPWV4cGxvZGUoInxOfFZ8fCIsICJIKnxOfFZ8fDYyNjY1NjU5NzI1NDRBNEI3MDREfE58Vnx8fE58Vnx8NkQ2MTc4NUY2NTc4NjU2Mzc1NzQ2OTZGNkU1Rjc0Njk2RDY1fE58Vnx8NzA2QzYxNzQ1RjY5NjR8TnxWfHw0NzQyfE58Vnx8NDc1NTQ5NDR8TnxWfHw2MzZGNjQ2NXxOfFZ8fDc0Nzk3MDY1fE58Vnx8NzQ3OTcwNjUyMDNEMjB8TnxWfHw2OTZFNjY2RnxOfFZ8fEU1QkQ5M0U1ODk4REU2QTA4N0U1ODc4NkU1OUZCQUU3QTE4MEU2OTVCMEU2OERBRUU0Qjg4QkU4QkRCREU3OUE4NEU3QkI4NEU0QkJCNkU0QjhCQUVGQkM5QXxOfFZ8fDMwfE58Vnx8NkQ3MzY3fE58Vnx8NjQ2MTc0NjEiKTtldmFsKCRHTE9CQUxTW3BhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAxXSldWygwLTQ0K0VfV0FSTklORyoyMildKHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAyXSkpKTskR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzA3XShwYWNrKCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVsweDNdKSwoMCs1NDIrMjkqRV9XQVJOSU5HKSk7JEFBX0FfX19BX19fQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9BX19fQV9fQV89JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzB4NF0pKTskQUFfQV9fX0FfX0FBPXBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzVdKTskQUFfQV9fX0FfQV9fPSg4KkVfV0FSTklORy0xNSk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVszXSgkQUFfQV9fX0FfX19BKSl7Zm9yZWFjaCgkQUFfQV9fX0FfX19BIGFzICRBQV9BX19fQV9BX0Epe2lmKCRBQV9BX19fQV9BX0FbcGFjaygkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfX19BQV9BX11bNl0pXT09JEFBX0FfX19BX19BXyl7JEFBX0FfX19BX19BQT0kQUFfQV9fX0FfQV9BW3BhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzddKV07JEFBX0FfX19BX0FfXz0kQUFfQV9fX0FfQV9BW3BhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzB4OF0pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAxMV0pIC4gJEFBX0FfX19BX0FfXyxwYWNrKCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVsxMF0pKTskQUFfQV9fX0FfQUFfPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQV9fX0FfX0FBKTskQUFfQV9fX0FfQUFBPSRBQV9BX19fQV9BQV8tPmNyZWF0ZURvd25sb2FkQmFzZURhdGEoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAxM10pIC4gcHJpbnRfcigkQUFfQV9fX0FfX0FBLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzEwXSkpOyRBQV9BX19fQUFfX189JEFBX0FfX19BX0FBQS0+ZG9Eb3dubG9hZEJhc2VEYXRhKCRBQV9BX19fQV9fQV8pOyRBQV9BX19fQUFfX0E9W3BhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzddKT0+cGFjaygkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMDE0XSkscGFjaygkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMHhEXSk9PnBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAyXSkscGFjaygkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMHhFXSk9PiRBQV9BX19fQUFfX19dO3JldHVybiAkdGhpcy0+anNvbigkQUFfQV9fX0FBX19BKTt9cHVibGljIGZ1bmN0aW9uIGRldkNyZWF0ZUVudEJhc2VJbmZvRG93bmxvYWQoKXtpZighZGVmaW5lZCgiQUFfQV9fQV9fQV9BIikpZGVmaW5lKCJBQV9BX19BX19BX0EiLCJBQV9BX19BX19BQV8iKTskR0xPQkFMU1tBQV9BX19BX19BX0FdPWV4cGxvZGUoInwofEd8UyIsICJIKnwofEd8U3wofEd8UzZENjE3ODVGNjU3ODY1NjM3NTc0Njk2RjZFNUY3NDY5NkQ2NXwofEd8UzcwNkM2MTc0NUY2OTY0fCh8R3xTNDc0MnwofEd8UzQ3NTU0OTQ0fCh8R3xTNjM2RjY0NjV8KHxHfFM3NDc5NzA2NXwofEd8Uzc0Nzk3MDY1MjAzRDIwfCh8R3xTNjk2RTY2NkZ8KHxHfFNFNUJEOTNFNTg5OERFNEJDODFFNEI4OUFFNTlGQkFFN0ExODBFNEJGQTFFNjgxQUZFNEI4OEJFOEJEQkRFNzlBODRFN0JCODRFNEJCQjZFNEI4QkFFRkJDOUF8KHxHfFMzMHwofEd8UzZENzM2N3wofEd8UzY0NjE3NDYxIik7ZXZhbChzdHJfcm90MTMocGFjaygkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVswMV0pKSk7JEdMT0JBTFNbQUFfX0FfQV9BX0FfXVs3XShwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAyXSksKEVfV0FSTklORyo5Mis0MTYpKTskQUFfQV9fX0FBQV9fPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfX19BQUFfQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVswM10pKTskQUFfQV9fX0FBQUFfPXBhY2soJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHg0XSk7JEFBX0FfX19BQUFBQT0oMC0xODMrOTIqRV9XQVJOSU5HKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzNdKCRBQV9BX19fQUFBX18pKXtmb3JlYWNoKCRBQV9BX19fQUFBX18gYXMgJEFBX0FfX0FfX19fXyl7aWYoJEFBX0FfX0FfX19fX1twYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4NV0pXT09JEFBX0FfX19BQUFfQSl7JEFBX0FfX19BQUFBXz0kQUFfQV9fQV9fX19fW3BhY2soJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHg2XSldOyRBQV9BX19fQUFBQUE9JEFBX0FfX0FfX19fX1twYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzddKV07fX19TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAxMF0pIC4gJEFBX0FfX19BQUFBQSxwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAxMV0pKTskQUFfQV9fQV9fX19BPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQV9fX0FBQUFfKTskQUFfQV9fQV9fX0FfPSRBQV9BX19BX19fX0EtPmNyZWF0ZUVudEJhc2VpbmZvRG93bmxvYWQoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMTBdKSAuIHByaW50X3IoJEFBX0FfX19BQUFBXyx0cnVlKSxwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAxMV0pKTskQUFfQV9fQV9fX0FBPSRBQV9BX19BX19fQV8tPmRvRW50QmFzZWluZm9Eb3dubG9hZCgkQUFfQV9fX0FBQV9BKTskQUFfQV9fQV9fQV9fPVtwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4Nl0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzExXSkscGFjaygkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVsxMl0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAxXSkscGFjaygkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVswMTVdKT0+JEFBX0FfX0FfX19BQV07cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX19BX19BX18pO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlRW50QmFzZUluZm9VcGxvYWQoKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMl0oIjspXCIxNjQ3MTY0Njd8SnxkfDd8SnxkfDc2MzdENjd8SnxkfDAzN3xKfGR8QzY5NjE2NDc1NjQ2RjU0NzE2QzYwN0Y1MjcyNzU3MzY3fEp8ZHxBOUNCRkVBQjhCNEU2QkJCNEU0OEJCN0U0OEE5N0U1QUE4NkVBODhCNEVGQTE4NkUxQUZCNEUwODFBN0VBQkY5NUVBOThCNEUxOENCNEVEODk4NUUzOURCNUU3fEp8ZHwwMkQzMDI1NjA3OTc0Nzd8SnxkfDU2MDc5NzQ3N3xKfGR8NTY0NkY2MzY3fEp8ZHw0NDk0NTU3NDd8SnxkfEY2NjZFNjk2N3xKfGR8MDJEMzAyMTY0NzE2NDQ0NzE2QzYwNzd8SnxkfDI0NzQ3fEp8ZHw0Njk2RjU0NzE2QzYwNzd8SnxkfDU2RDY5NjQ3RjVFNkY2OTY0NzU3MzY1Njg3NTZGNTg3MTZENjd8SnxkfCpIXCIgLFwiN3xKfGR8XCIoZWRvbHB4ZT1dX19fX0FBX19BX0FBW1NMQUJPTEdcJDspKVwiOylcIlxcTl9fX05OX19OX05OXCJcXCxcIlxcX19fX05OX19OX05OXCJcXChyYXZzcnEpKVwiXFxfX19fTk5fX05fTk5cIlxcKHFyYXZzcnEhKHN2XCIoMzF0b3JfcnRzKGxhdmUiKSk7aW5pX3NldChwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMV0pLCg4NypFX1dBUk5JTkcrNDI2KSk7JEFBX0FfX0FfX0FBQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9BX19BX0FfX189JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVsweDJdKSk7JEFBX0FfX0FfQV9fQT1wYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMHgzXSk7JEFBX0FfX0FfQV9BXz0oMC0xNjMrODIqRV9XQVJOSU5HKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVs0XSkgLiBwcmludF9yKCRBQV9BX19BX19BQUEsdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzB4NV0pKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzB4M10oJEFBX0FfX0FfX0FBQSkpe2ZvcmVhY2goJEFBX0FfX0FfX0FBQSBhcyAkQUFfQV9fQV9BX0FBKXtpZigkQUFfQV9fQV9BX0FBW3BhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVs2XSldPT0kQUFfQV9fQV9BX19fKXskQUFfQV9fQV9BX19BPSRBQV9BX19BX0FfQUFbcGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzA3XSldOyRBQV9BX19BX0FfQV89JEFBX0FfX0FfQV9BQVtwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bOF0pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMTFdKSAuICRBQV9BX19BX0FfQV8scGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzB4NV0pKTskQUFfQV9fQV9BQV9fPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQV9fQV9BX19BKTskQUFfQV9fQV9BQV9BPSRBQV9BX19BX0FBX18tPmNyZWF0ZUVudEJhc2VpbmZvVXBsb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDEyXSkgLiBwcmludF9yKCRBQV9BX19BX0FfX0EsdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzB4NV0pKTskQUFfQV9fQV9BQUFfPSRBQV9BX19BX0FBX0EtPmRvRW50QmFzZWluZm9VcGxvYWQoJEFBX0FfX0FfQV9fXyk7Q2FjaGU6OmRlbGV0ZShwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDEzXSkpO2dldFBsYXREZXRhaWxEYXRhKCk7JEFBX0FfX0FfQUFBQT1bcGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzA3XSk9PnBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVsweENdKSxwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMHhEXSk9PnBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMTZdKSxwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDE3XSk9PiRBQV9BX19BX0FBQV9dO3JldHVybiAkdGhpcy0+anNvbigkQUFfQV9fQV9BQUFBKTt9cHVibGljIGZ1bmN0aW9uIGRldkNyZWF0ZUVudERhdGFVcGxvYWQoKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMl0oIjspXCJfQV9fX19BX0FfQUFcIixcIkFfX19fX0FfQV9BQVwiKGVuaWZlZCkpXCJBX19fX19BX0FfQUFcIihkZW5pZmVkIShmaSIpKTskR0xPQkFMU1tBQV9BX0FfX19fX0FdPWV4cGxvZGUoInxUfHp8LiIsICJIKnxUfHp8LjZENjE3ODVGNjU3ODY1NjM3NTc0Njk2RjZFNUY3NDY5NkQ2NXxUfHp8LjcwNkM2MTc0NUY2OTY0fFR8enwuNjQ2MTc0NjV8VHx6fC43Mzc0NjE3NDVGNzQ3OTcwNjV8VHx6fC43Mzc0NjE3NDc1NzN8VHx6fC42OTZFNzA3NTc0NTQ3OTcwNjV8VHx6fC42NDY1NzY0MzcyNjU2MTc0NjU0NTZFNzQ0NDYxNzQ2MTU1NzA2QzZGNjE2NDIwNjQ2MTc0NjUyMDNEMjB8VHx6fC4yMDYxNkU2NDIwNzM3NDYxNzQ1Rjc0Nzk3MDY1MjAzRDIwfFR8enwuNDc0MnxUfHp8LjQ3NTU0OTQ0fFR8enwuNjM2RjY0NjV8VHx6fC43NDc5NzA2NXxUfHp8Ljc0Nzk3MDY1MjAzRDIwfFR8enwuNjk2RTY2NkZ8VHx6fC5FNUJEOTNFNTg5OERFNEJDODFFNEI4OUFFOTg3ODdFOTlCODZFNjk1QjBFNjhEQUVFNEI4OEFFNjhBQTVFNzlBODRFN0JCODRFNEJCQjZFNEI4QkFFRkJDOUF8VHx6fC4zMHxUfHp8LjY2Njk2NTZDNjR8VHx6fC42RjcwfFR8enwuM0R8VHx6fC42NDYxNzQ2MXxUfHp8LkU2ODk4QkU1OEFBOEU0Qjg4QUU2OEFBNTIwNjQ2MTc0NjUyMDNEMjB8VHx6fC5FNjg5OEJFNThBQThFNEI4OEFFNjhBQTUyMDYzNkY2RTY0Njk3NDY5NkY2RTIwM0QyMHxUfHp8LjZENzM2N3xUfHp8LiIpO2luaV9zZXQocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHgxXSksKEVfV0FSTklORyoxKzU5OCkpOyRBQV9BX19BQV9fQV89Z2V0UGxhdERhdGFOZXcoKTskQUFfQV9fQUFfX0FBPWlucHV0KCk7JEFBX0FfX0FBX0FfXz0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMDJdKSk7JEFBX0FfX0FBX0FfQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHgzXSkpOyRBQV9BX19BQV9BQV89JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4NF0pKTskQUFfQV9fQUFfQUFBPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVswNV0pKTskQUFfQV9fQUFBX19fPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVs2XSkpO0xvZzo6aW5mbyhwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsweDddKSAuICRBQV9BX19BQV9BX0EuIHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4OF0pIC4kQUFfQV9fQUFfQUFfKTskQUFfQV9fQUFBX19BPXBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzldKTskQUFfQV9fQUFBX0FfPSgwLTQ5KzI1KkVfV0FSTklORyk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVswM10oJEFBX0FfX0FBX19BXykpe2ZvcmVhY2goJEFBX0FfX0FBX19BXyBhcyAkQUFfQV9fQUFBX0FBKXtpZigkQUFfQV9fQUFBX0FBW3BhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4QV0pXT09JEFBX0FfX0FBX0FfXyl7JEFBX0FfX0FBQV9fQT0kQUFfQV9fQUFBX0FBW3BhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4Ql0pXTskQUFfQV9fQUFBX0FfPSRBQV9BX19BQUFfQUFbcGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHhDXSldO319fUxvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMTNdKSAuICRBQV9BX19BQUFfQV8scGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMDE2XSkpOyRBQV9BX19BQUFBX189Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX19BQUFfX0EpOyRBQV9BX19BQUFBX0E9JEFBX0FfX0FBQUFfXy0+Y3JlYXRlRW50RGF0YVVwbG9hZCgpO0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHhGXSkgLiBwcmludF9yKCRBQV9BX19BQUFfX0EsdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMDE2XSkpO2lmKCFlbXB0eSgkQUFfQV9fQUFfQV9BKSYmKCFlbXB0eSgkQUFfQV9fQUFfQUFfKXx8JEFBX0FfX0FBX0FBXz09cGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMTZdKSkpeyRBQV9BX19BQUFBQV89W107aWYoJEFBX0FfX0FBX0FBQSl7JEFBX0FfX0FBQUFBX1tdPVtwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsxN10pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVswNV0pLHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzE4XSk9PnBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4MTNdKSxwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsyMF0pPT4kQUFfQV9fQUFfQUFBXTt9aWYoJEFBX0FfX0FBQV9fXyl7JEFBX0FfX0FBQUFBX1tdPVtwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsxN10pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVs2XSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMThdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHgxM10pLHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzIwXSk9PiRBQV9BX19BQUFfX19dO31Mb2c6OmluZm8ocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMDI1XSkgLiRBQV9BX19BQV9BX0EuIHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4OF0pIC4kQUFfQV9fQUFfQUFfKTtMb2c6OmluZm8ocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMjJdKSAucHJpbnRfcigkQUFfQV9fQUFBQUFfLHRydWUpKTskQUFfQV9fQUFBQUFBPSRBQV9BX19BQUFBX0EtPmRvRW50RGF0YVVwbG9hZEhhbmQoJEFBX0FfX0FBX0FfXywkQUFfQV9fQUFfQUFfLCRBQV9BX19BQV9BX0EsJEFBX0FfX0FBQUFBXyk7fWVsc2V7JEFBX0FfX0FBQUFBQT0kQUFfQV9fQUFBQV9BLT5kb0VudERhdGFVcGxvYWQoJEFBX0FfX0FBX0FfXywkQUFfQV9fQUFfQV9BKTt9JEFBX0FfQV9fX19fXz1bcGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHhCXSk9PnBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzE2XSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHgxN10pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsweDE4XSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMjBdKT0+JEFBX0FfX0FBQUFBQV07cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX0FfX19fX18pO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlRW50RGF0YURvd25sb2FkKCl7ZXZhbCgkR0xPQkFMU1siYmZWWXJUSktwTSJdWzBdKCJhV1lvSVdSbFptbHVaV1FvSWtGQlgwRmZRVjlmUVVGQlh5SXBLV1JsWm1sdVpTZ2lRVUZmUVY5QlgxOUJRVUZmSWl3aVFVRmZRVjlCWDE5QlFVRkJJaWs3IikpOyRHTE9CQUxTW0FBX0FfQV9fQUFBX109ZXhwbG9kZSgifDV8JXxFIiwgIkgqfDV8JXxFNkQ2MTc4NUY2NTc4NjU2Mzc1NzQ2OTZGNkU1Rjc0Njk2RDY1fDV8JXxFNjM3NTcyNzI2NTZFNzQ1RjcwNkM2MTc0fDV8JXxFNzA2QzYxNzQ1RjY5NjR8NXwlfEU3Mzc0NjE3NDVGNzQ3OTcwNjV8NXwlfEU3Mzc0NjE3NDVGNjQ2MTc0NjV8NXwlfEU3Mzc0NjE3NDVGNzQ3OTcwNjUyMDNEM0QzRDNEM0QzRDNEM0QzRDNEM0R8NXwlfEU2OTZFNjY2Rnw1fCV8RTQ3NDJ8NXwlfEU0NzU1NDk0NHw1fCV8RTYzNkY2NDY1fDV8JXxFNzQ3OTcwNjV8NXwlfEU3NDc5NzA2NTIwM0QyMHw1fCV8RUU1QkQ5M0U1ODk4REU0QkM4MUU0Qjg5QUU5ODc4N0U5OUI4NkU2OTVCMEU2OERBRUU0Qjg4QkU4QkRCREU3OUE4NEU3QkI4NEU0QkJCNkU0QjhCQUVGQkM5QXw1fCV8RTMwfDV8JXxFNkQ3MzY3fDV8JXxFfDV8JXxFNjQ2MTc0NjEiKTtpbmlfc2V0KHBhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVsxXSksKDArNTE4KzQxKkVfV0FSTklORykpOyRBQV9BX0FfX19fQUE9U2Vzc2lvbjo6Z2V0KHBhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMl0pKTskQUFfQV9BX19fX0FBPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfQV9fX0FfXz0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzNdKSk7JEFBX0FfQV9fX0FfQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzB4NF0pKTskQUFfQV9BX19fQUFfPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDVdKSk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDZdKSAuICRBQV9BX0FfX19BX0EscGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzA3XSkpOyRBQV9BX0FfX19BQUE9cGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzhdKTskQUFfQV9BX19BX19fPShFX1dBUk5JTkcqNS05KTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzAzXSgkQUFfQV9BX19fX0FBKSl7Zm9yZWFjaCgkQUFfQV9BX19fX0FBIGFzICRBQV9BX0FfX0FfX0Epe2lmKCRBQV9BX0FfX0FfX0FbcGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAxMV0pXT09JEFBX0FfQV9fX0FfXyl7JEFBX0FfQV9fX0FBQT0kQUFfQV9BX19BX19BW3BhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVsweEFdKV07JEFBX0FfQV9fQV9fXz0kQUFfQV9BX19BX19BW3BhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVsxMV0pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMTRdKSAuICRBQV9BX0FfX0FfX18scGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzA3XSkpOyRBQV9BX0FfX0FfQV89Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX0FfX19BQUEpOyRBQV9BX0FfX0FfQUE9JEFBX0FfQV9fQV9BXy0+Y3JlYXRlRW50RGF0YURvd25sb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMTNdKSAuIHByaW50X3IoJEFBX0FfQV9fX0FBQSx0cnVlKSxwYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDddKSk7JEFBX0FfQV9fQUFfXz0kQUFfQV9BX19BX0FBLT5kb0VudERhdGFEb3dubG9hZCgkQUFfQV9BX19fQV9fLCRBQV9BX0FfX19BX0EsJEFBX0FfQV9fX0FBXyk7JEFBX0FfQV9fQUFfQT1bcGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzB4QV0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMHhFXSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAxN10pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDIwXSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzB4MTFdKT0+JEFBX0FfQV9fQUFfX107cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX0FfX0FBX0EpO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlTWludXRlVXBsb2FkKCl7aWYoIWRlZmluZWQoIkFBX0FfQV9BQV9fQSIpKWRlZmluZSgiQUFfQV9BX0FBX19BIiwiQUFfQV9BX0FBX0FfIik7JEdMT0JBTFNbQUFfQV9BX0FBX19BXT1leHBsb2RlKCJ8dXw4fD8iLCAiSCp8dXw4fD82RDYxNzg1RjY1Nzg2NTYzNzU3NDY5NkY2RTVGNzQ2OTZENjV8dXw4fD83MDZDNjE3NDVGNjk2NHx1fDh8PzQ3NDJ8dXw4fD80NzU1NDk0NHx1fDh8PzYzNkY2NDY1fHV8OHw/NzQ3OTcwNjV8dXw4fD83NDc5NzA2NTIwM0QyMHx1fDh8PzY5NkU2NjZGfHV8OHw/RTVCRDkzRTU4OThERTRCQzgxRTRCODlBMzEzNUU1ODg4NkU5OTI5RkU5ODc4N0U5OUI4NkU2OTVCMEU2OERBRUU0Qjg4QkU4QkRCREU3OUE4NEU3QkI4NEU0QkJCNkU0QjhCQUVGQkM5QXx1fDh8PzMwfHV8OHw/NkQ3MzY3fHV8OHw/fHV8OHw/NjQ2MTc0NjEiKTtpbmlfc2V0KHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsweDFdKSwoMCs0NzgrNjEqRV9XQVJOSU5HKSk7JEFBX0FfQV9BX19fXz1nZXRQbGF0RGF0YU5ldygpOyRBQV9BX0FfQV9fX0E9JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMl0pKTskQUFfQV9BX0FfX0FfPXBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswM10pOyRBQV9BX0FfQV9fQUE9KDAtMTU3K0VfV0FSTklORyo3OSk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVswM10oJEFBX0FfQV9BX19fXykpe2ZvcmVhY2goJEFBX0FfQV9BX19fXyBhcyAkQUFfQV9BX0FfQV9fKXtpZigkQUFfQV9BX0FfQV9fW3BhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsweDRdKV09PSRBQV9BX0FfQV9fX0EpeyRBQV9BX0FfQV9fQV89JEFBX0FfQV9BX0FfX1twYWNrKCRHTE9CQUxTW0FBX0FfQV9BQV9fQV1bMDBdLCRHTE9CQUxTW0FBX0FfQV9BQV9fQV1bNV0pXTskQUFfQV9BX0FfX0FBPSRBQV9BX0FfQV9BX19bcGFjaygkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzAwXSwkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzZdKV07fX19TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQV9BQV9fQV1bMDBdLCRHTE9CQUxTW0FBX0FfQV9BQV9fQV1bMHg3XSkgLiAkQUFfQV9BX0FfX0FBLHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVs4XSkpOyRBQV9BX0FfQV9BX0E9Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX0FfQV9fQV8pOyRBQV9BX0FfQV9BQV89JEFBX0FfQV9BX0FfQS0+Y3JlYXRlRW50RGF0YU1pbnV0ZVVwbG9hZCgpO0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzAwXSwkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzB4OV0pIC4gcHJpbnRfcigkQUFfQV9BX0FfX0FfLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVs4XSkpOyRBQV9BX0FfQV9BQUE9JEFBX0FfQV9BX0FBXy0+ZG9FbnREYXRhTWludXRlVXBsb2FkKCRBQV9BX0FfQV9fX0EpOyRBQV9BX0FfQUFfX189W3BhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVs1XSk9PnBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsxMF0pLHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsweEJdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzAwXSwkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzB4Q10pLHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsweERdKT0+JEFBX0FfQV9BX0FBQV07cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX0FfQUFfX18pO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlU2Vjb25kVXBsb2FkKCl7ZXZhbChiYXNlNjRfZGVjb2RlKCJhV1lvSVdSbFptbHVaV1FvSWtGQlgwRmZRVUZmWDBGZlh5SXBLV1JsWm1sdVpTZ2lRVUZmUVY5QlFWOWZRVjlmSWl3aVFVRmZRVjlCUVY5ZlFWOUJJaWs3SkVkTVQwSkJURk5iUVVGZlFWOUJRVjlmUVY5ZlhUMWxlSEJzYjJSbEtDSjhibnh0ZkRzaUxDQWlTQ3A4Ym54dGZEdDhibnh0ZkRzMlJEWXhOemcxUmpZMU56ZzJOVFl6TnpVM05EWTVOa1kyUlRWR056UTJPVFpFTmpWOGJueHRmRHMzTURaRE5qRTNORFZHTmprMk5IeHVmRzE4T3pRM05ESjhibnh0ZkRzME56VTFORGswTkh4dWZHMThPell6TmtZMk5EWTFmRzU4Ylh3N056UTNPVGN3TmpWOGJueHRmRHMzTkRjNU56QTJOVEl3TTBReU1IeHVmRzE4T3pZNU5rVTJOalpHZkc1OGJYdzdSVFZDUkRrelJUVTRPVGhFUlRSQ1F6Z3hSVFJDT0RsQk16RkZOVGc0T0RaRk9Ua3lPVVpGT1RnM09EZEZPVGxDT0RaRk5qazFRakJGTmpoRVFVVkZORUk0T0VKRk9FSkVRa1JGTnpsQk9EUkZOMEpDT0RSRk5FSkNRalpGTkVJNFFrRkZSa0pET1VGOGJueHRmRHN6TUh4dWZHMThPelpFTnpNMk4zeHVmRzE4T3pZME5qRTNORFl4SWlrNyIpKTtldmFsKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHgyXShwYWNrKCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgwXSwkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MV0pKSk7JEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDddKHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgyXSksKDg5KkVfV0FSTklORys0MjIpKTskQUFfQV9BX0FBX0FBPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfQV9BQUFfXz0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVszXSkpOyRBQV9BX0FfQUFBX0E9cGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDRdKTskQUFfQV9BX0FBQUFfPShFX1dBUk5JTkcqNzMtMTQ1KTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzB4M10oJEFBX0FfQV9BQV9BQSkpe2ZvcmVhY2goJEFBX0FfQV9BQV9BQSBhcyAkQUFfQV9BX0FBQUFBKXtpZigkQUFfQV9BX0FBQUFBW3BhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHg1XSldPT0kQUFfQV9BX0FBQV9fKXskQUFfQV9BX0FBQV9BPSRBQV9BX0FfQUFBQUFbcGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVs2XSldOyRBQV9BX0FfQUFBQV89JEFBX0FfQV9BQUFBQVtwYWNrKCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgwXSwkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4N10pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHg4XSkgLiAkQUFfQV9BX0FBQUFfLHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bOV0pKTskQUFfQV9BQV9fX19fPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQV9BX0FBQV9BKTskQUFfQV9BQV9fX19BPSRBQV9BX0FBX19fX18tPmNyZWF0ZUVudERhdGFTZWNvbmRVcGxvYWQoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMTBdKSAuIHByaW50X3IoJEFBX0FfQV9BQUFfQSx0cnVlKSxwYWNrKCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgwXSwkR0xPQkFMU1tBQV9BX0FBX19BX19dWzldKSk7JEFBX0FfQUFfX19BXz0kQUFfQV9BQV9fX19BLT5kb0VudERhdGFTZWNvbmRVcGxvYWQoJEFBX0FfQV9BQUFfXyk7TG9nOjp3cml0ZShwcmludF9yKCRBQV9BX0FBX19fQV8sdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVs5XSkpOyRBQV9BX0FBX19fQUE9W3BhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bNl0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgwXSwkR0xPQkFMU1tBQV9BX0FBX19BX19dWzAxM10pLHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMDE0XSk9PnBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgxXSkscGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsxM10pPT4kQUFfQV9BQV9fX0FfXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX0FfQUFfX19BQSk7fXB1YmxpYyBmdW5jdGlvbiBjcmVhdGVFbnRDb2RlRG93bmxvYWQoKXtldmFsKHN0cnJldigiOylcIjE2NDcxNjQ2OHx1fDZ8OHx1fDZ8NzYzN0Q2OHx1fDZ8MDM4fHV8NnxBOUNCRkVBQjhCNEU2QkJCNEU0OEJCN0U0OEE5N0VEQkRCOEVCODhCNEUxODBBN0U2OUNCN0VBOThCNEUxOENCNEVEODk4NUUzOURCNUU4fHV8NnxGNjY2RTY5Njh8dXw2fDAyRDMwMjU2MDc5NzQ3OHx1fDZ8NTYwNzk3NDc4fHV8Nnw1NjQ2RjYzNjh8dXw2fDQ0OTQ1NTc0OHx1fDZ8MjQ3NDh8dXw2fDAyRDNEM0QzRDNEMzAyMTY0NzE2NDQ0NzE2QzYwNzh8dXw2fDQ2OTZGNTQ3MTZDNjA3OHx1fDZ8NTZENjk2NDdGNUU2RjY5NjQ3NTczNjU2ODc1NkY1ODcxNkQ2OHx1fDZ8KkhcIiAsXCI4fHV8NnxcIihlZG9scHhlPV1BQUFBX0FBX0FfQUFbU0xBQk9MR1wkOylcIl9fX19BQUFfQV9BQVwiLFwiQUFBQV9BQV9BX0FBXCIoZW5pZmVkKSlcIkFBQUFfQUFfQV9BQVwiKGRlbmlmZWQhKGZpIikpO2luaV9zZXQocGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzB4MV0pLCgwKzQ0MCs4MCpFX1dBUk5JTkcpKTskQUFfQV9BQV9fQUFfPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfQUFfX0FBQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzJdKSk7TG9nOjppbmZvKHBhY2soJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswMF0sJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVszXSkgLnByaW50X3IoJEFBX0FfQUFfX0FBXyx0cnVlKSk7JEFBX0FfQUFfQV9fXz1wYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bNF0pOyRBQV9BX0FBX0FfX0E9KDAtNDcrMjQqRV9XQVJOSU5HKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzNdKCRBQV9BX0FBX19BQV8pKXtmb3JlYWNoKCRBQV9BX0FBX19BQV8gYXMgJEFBX0FfQUFfQV9BXyl7aWYoJEFBX0FfQUFfQV9BX1twYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bNV0pXT09JEFBX0FfQUFfX0FBQSl7JEFBX0FfQUFfQV9fXz0kQUFfQV9BQV9BX0FfW3BhY2soJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswMF0sJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswNl0pXTskQUFfQV9BQV9BX19BPSRBQV9BX0FBX0FfQV9bcGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzddKV07fX19TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMHg4XSkgLiAkQUFfQV9BQV9BX19BLHBhY2soJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswMF0sJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVs5XSkpOyRBQV9BX0FBX0FfQUE9Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX0FBX0FfX18pOyRBQV9BX0FBX0FBX189JEFBX0FfQUFfQV9BQS0+Y3JlYXRlRW50Q29kZURvd25sb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDEyXSkgLiBwcmludF9yKCRBQV9BX0FBX0FfX18sdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzldKSk7JEFBX0FfQUFfQUFfQT0kQUFfQV9BQV9BQV9fLT5kb0VudENvZGVEb3dubG9hZCgkQUFfQV9BQV9fQUFBKTskQUFfQV9BQV9BQUFfPVtwYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDZdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzB4Ql0pLHBhY2soJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswMF0sJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVsxMl0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMHhEXSkscGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzB4RV0pPT4kQUFfQV9BQV9BQV9BXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX0FfQUFfQUFBXyk7fXB1YmxpYyBmdW5jdGlvbiBjcmVhdGVFbnRPYmpDb2RlRG93bmxvYWQoKXtldmFsKGJhc2U2NF9kZWNvZGUoImFXWW9JV1JsWm1sdVpXUW9Ja0ZCWDBGZlFVRkJRVjlCWHlJcEtXUmxabWx1WlNnaVFVRmZRVjlCUVVGQlgwRmZJaXdpUVVGZlFWOUJRVUZCWDBGQklpazdKRWRNVDBKQlRGTmJRVUZmUVY5QlFVRkJYMEZmWFQxbGVIQnNiMlJsS0NKOE9ud25mSDRpTENBaVNDcDhPbnduZkg0MlJEWXhOemcxUmpZMU56ZzJOVFl6TnpVM05EWTVOa1kyUlRWR056UTJPVFpFTmpWOE9ud25mSDQzTURaRE5qRTNORFZHTmprMk5IdzZmQ2Q4ZmpRM05ESjhPbnduZkg0ME56VTFORGswTkh3NmZDZDhmall6TmtZMk5EWTFmRHA4SjN4K056UTNPVGN3TmpWOE9ud25mSDQzTkRjNU56QTJOVEl3TTBReU1IdzZmQ2Q4ZmpZNU5rVTJOalpHZkRwOEozeCtSVFZDUkRrelJUVTRPVGhFUlRSQ1F6Z3hSVFJDT0RsQlJUaEJSVUpGUlRWQk5EZzNSVGRDUXprMlJUZEJNRGd4UlRjNVFUZzBSVGRDUWpnMFJUUkNRa0kyUlRSQ09FSkJSVVpDUXpsQmZEcDhKM3grTXpCOE9ud25mSDQyUkRjek5qZDhPbnduZkg1OE9ud25mSDQyTkRZeE56UTJNU0lwT3c9PSIpKTtpbmlfc2V0KHBhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzAxXSksKDArNDI0Kzg4KkVfV0FSTklORykpOyRBQV9BX0FBQV9fX0E9Z2V0UGxhdERhdGFOZXcoKTskQUFfQV9BQUFfX0FfPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswMl0pKTskQUFfQV9BQUFfX0FBPXBhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzAzXSk7JEFBX0FfQUFBX0FfXz0oNjMqRV9XQVJOSU5HLTEyNSk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDNdKCRBQV9BX0FBQV9fX0EpKXtmb3JlYWNoKCRBQV9BX0FBQV9fX0EgYXMgJEFBX0FfQUFBX0FfQSl7aWYoJEFBX0FfQUFBX0FfQVtwYWNrKCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswNF0pXT09JEFBX0FfQUFBX19BXyl7JEFBX0FfQUFBX19BQT0kQUFfQV9BQUFfQV9BW3BhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzVdKV07JEFBX0FfQUFBX0FfXz0kQUFfQV9BQUFfQV9BW3BhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzZdKV07fX19TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswN10pIC4gJEFBX0FfQUFBX0FfXyxwYWNrKCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswMTBdKSk7JEFBX0FfQUFBX0FBXz1jcmVhdGVVcEZhY3RvcnkoJEFBX0FfQUFBX19BQSk7JEFBX0FfQUFBX0FBQT0kQUFfQV9BQUFfQUFfLT5jcmVhdGVFbnRPYmpDb2RlRG93bmxvYWQoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzAxMV0pIC4gcHJpbnRfcigkQUFfQV9BQUFfX0FBLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzAxMF0pKTskQUFfQV9BQUFBX19fPSRBQV9BX0FBQV9BQUEtPmRvRW50T2JqQ29kZURvd25sb2FkKCRBQV9BX0FBQV9fQV8pOyRBQV9BX0FBQUFfX0E9W3BhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzVdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMDEyXSkscGFjaygkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMTFdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMHhDXSkscGFjaygkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMTNdKT0+JEFBX0FfQUFBQV9fX107cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX0FBQUFfX0EpO31wdWJsaWMgZnVuY3Rpb24gZGV2UG93ZXJEZW1hbmREYXRhVXBsb2FkKCl7ZXZhbChzdHJyZXYoIjspXCIxNjQ3MTY0NnF8SnwvfDc2MzdENnF8SnwvfDAzcXxKfC98QTlDQkZFQUI4QjRFNkJCQjRFNDhCQjdFNDhBOTdFNUFBODZFQTg4QjRFRUFEODZFMEI1OTZFN0FFQjRFMjgxQjZFMDhDOTlFQjlBODVFNUI0OTdFQTk4QjRFMThDQjRFRDg5ODVFMzlEQjVFcXxKfC98RjY2NkU2OTZxfEp8L3wwMkQzMDI1NjA3OTc0N3F8SnwvfDU2MDc5NzQ3cXxKfC98NTY0NkY2MzZxfEp8L3w0NDk0NTU3NHF8SnwvfDI0NzRxfEp8L3w0Njk2RjU0NzE2QzYwN3F8SnwvfDU2RDY5NjQ3RjVFNkY2OTY0NzU3MzY1Njg3NTZGNTg3MTZENnF8SnwvfHF8SnwvfCpIXCIgLFwicXxKfC98XCIoZWRvbHB4ZT1dQV9BX19fX0FBX0FBW1NMQUJPTEdcJDspKVwiN2tpSWZGVVFmOTFYZkZVUWZGVVFpd2lJQjlWUWY5MVhmRlVRZkZVUWlnU1p1bG1abFJXS3BJU1FmRjBYZjkxWEJGMFhCRmtJb1FXWnVsbVpsUldJb1lXYVwiKGVkb2NlZF80NmVzYWIobGF2ZSIpKTtldmFsKHN0cl9yb3QxMyhwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzFdKSkpOyRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDddKHBhY2soJEdMT0JBTFNbQUFfQUFfX19fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMl0pLCgwKzQxNCs5MypFX1dBUk5JTkcpKTskQUFfQV9BQUFBQV9fPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfQUFBQUFfQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX19fQV9BXVszXSkpOyRBQV9BX0FBQUFBQV89cGFjaygkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX19fQV9BXVswNF0pOyRBQV9BX0FBQUFBQUE9KDAtNjErRV9XQVJOSU5HKjMxKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzNdKCRBQV9BX0FBQUFBX18pKXtmb3JlYWNoKCRBQV9BX0FBQUFBX18gYXMgJEFBX0FBX19fX19fXyl7aWYoJEFBX0FBX19fX19fX1twYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzVdKV09PSRBQV9BX0FBQUFBX0EpeyRBQV9BX0FBQUFBQV89JEFBX0FBX19fX19fX1twYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzA2XSldOyRBQV9BX0FBQUFBQUE9JEFBX0FBX19fX19fX1twYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzA3XSldO319fUxvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX19fQV9BXVs4XSkgLiAkQUFfQV9BQUFBQUFBLHBhY2soJEdMT0JBTFNbQUFfQUFfX19fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHg5XSkpOyRBQV9BQV9fX19fX0E9Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX0FBQUFBQV8pOyRBQV9BQV9fX19fQV89JEFBX0FBX19fX19fQS0+Y3JlYXRlRW50UG93ZXJEYXRhVXBsb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzAxMl0pIC5qc29uX2VuY29kZSgkQUFfQV9BQUFBQUFfKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4OV0pKTskQUFfQUFfX19fX0FBPSRBQV9BQV9fX19fQV8tPmRvRW50UG93ZXJEYXRhVXBsb2FkKCRBQV9BX0FBQUFBX0EpOyRBQV9BQV9fX19BX189W3BhY2soJEdMT0JBTFNbQUFfQUFfX19fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMDZdKT0+cGFjaygkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX19fQV9BXVswMTNdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzAxNF0pPT5wYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzFdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzAxNV0pPT4kQUFfQUFfX19fX0FBXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX0FBX19fX0FfXyk7fXB1YmxpYyBmdW5jdGlvbiBkZXZpY2VTdGF0ZVVwbG9hZCgpe2lmKCFkZWZpbmVkKCJBQV9BQV9fQV9fX18iKSlkZWZpbmUoIkFBX0FBX19BX19fXyIsIkFBX0FBX19BX19fQSIpOyRHTE9CQUxTW0FBX0FBX19BX19fX109ZXhwbG9kZSgifE58R3x2IiwgIkgqfE58R3x2fE58R3x2NkQ2MTc4NUY2NTc4NjU2Mzc1NzQ2OTZGNkU1Rjc0Njk2RDY1fE58R3x2NzA2QzYxNzQ1RjY5NjR8TnxHfHY0NzQyfE58R3x2NDc1NTQ5NDR8TnxHfHY2MzZGNjQ2NXxOfEd8djc0Nzk3MDY1fE58R3x2NzQ3OTcwNjUyMDNEMjB8TnxHfHY2OTZFNjY2RnxOfEd8dkU1QkQ5M0U1ODk4REU0QkM4MUU0Qjg5QUU4QUVCRUU1QTQ4N0U3OEFCNkU2ODA4MUU0Qjg4QUU2OEFBNUU3OUE4NEU3QkI4NEU0QkJCNkU0QjhCQUVGQkM5QXxOfEd8djMwfE58R3x2NkQ3MzY3fE58R3x2NjQ2MTc0NjEiKTtldmFsKHN0cl9yb3QxMyhwYWNrKCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzFdKSkpOyRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDddKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMl0pLCg3NCpFX1dBUk5JTkcrNDUyKSk7JEFBX0FBX19fX0FBQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9BQV9fX0FfX189JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bM10pKTskQUFfQUFfX19BX19BPXBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHg0XSk7JEFBX0FBX19fQV9BXz0oNipFX1dBUk5JTkctMTEpO2lmKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bM10oJEFBX0FBX19fX0FBQSkpe2ZvcmVhY2goJEFBX0FBX19fX0FBQSBhcyAkQUFfQUFfX19BX0FBKXtpZigkQUFfQUFfX19BX0FBW3BhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bNV0pXT09JEFBX0FBX19fQV9fXyl7JEFBX0FBX19fQV9fQT0kQUFfQUFfX19BX0FBW3BhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bNl0pXTskQUFfQUFfX19BX0FfPSRBQV9BQV9fX0FfQUFbcGFjaygkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FfX19fXVs3XSldO319fUxvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FfX19fXVswMTBdKSAuICRBQV9BQV9fX0FfQV8scGFjaygkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDldKSk7JEFBX0FBX19fQUFfXz1jcmVhdGVVcEZhY3RvcnkoJEFBX0FBX19fQV9fQSk7JEFBX0FBX19fQUFfQT0kQUFfQUFfX19BQV9fLT5jcmVhdGVFbnREZXZpY2VTdGF0dXNVcGxvYWQoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMTBdKSAuIGpzb25fZW5jb2RlKCRBQV9BQV9fX0FfX0EpLHBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHg5XSkpOyRBQV9BQV9fX0FBQV89JEFBX0FBX19fQUFfQS0+ZG9FbnREZXZpY2VTdGF0dXNVcGxvYWQoJEFBX0FBX19fQV9fXyk7JEFBX0FBX19fQUFBQT1bcGFjaygkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FfX19fXVs2XSk9PnBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMTFdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzAxNF0pPT5wYWNrKCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzFdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4RF0pPT4kQUFfQUFfX19BQUFfXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX0FBX19fQUFBQSk7fXB1YmxpYyBmdW5jdGlvbiBkb01ldGVyaW5nVXBsb2FkKCl7ZXZhbCgkR0xPQkFMU1siYmZWWXJUSktwTSJdWzBdKCJhV1lvSVdSbFptbHVaV1FvSWtGQlgwRkJYMTlCUVY5QlFTSXBLV1JsWm1sdVpTZ2lRVUZmUVVGZlgwRkJYMEZCSWl3aVFVRmZRVUZmWDBGQlFWOWZJaWs3IikpOyRHTE9CQUxTW0FBX0FBX19BQV9BQV09ZXhwbG9kZSgifHt8bnx6IiwgIkgqfHt8bnx6NjI2NjU2NTk3MjU0NEE0QjcwNER8e3xufHp8e3xufHo2RDYxNzg1RjY1Nzg2NTYzNzU3NDY5NkY2RTVGNzQ2OTZENjV8e3xufHo3MDZDNjE3NDVGNjk2NHx7fG58ejQ3NDJ8e3xufHo0NzU1NDk0NHx7fG58ejYzNkY2NDY1fHt8bnx6NzQ3OTcwNjV8e3xufHo3NDc5NzA2NTIwM0QyMHx7fG58ejY5NkU2NjZGfHt8bnx6RTVCRDkzRTU4OThERTZCM0E4RTU4NjhDRThBRUJFRTVBNDg3RTRCOEJBRUZCQzlBfHt8bnx6NkQ3NTZDNzQ2OTVGNzA2QzYxNzQ1RjY0NjU3NDYxNjk2Q3x7fG58ejY0NkY0RDY1NzQ2NTcyNjk2RTY3NTU3MDZDNkY2MTY0MjA3MDZDNjE3NDIwNjk2NDIwM0QzRDNEMjB8e3xufHozMHx7fG58ejZENzM2N3x7fG58ejY0NjE3NDYxIik7ZXZhbCgkR0xPQkFMU1twYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHgxXSldWygwLTEzNCs2NypFX1dBUk5JTkcpXShwYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHgyXSkpKTskR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzddKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVszXSksKDArNTM4KzMxKkVfV0FSTklORykpOyRBQV9BQV9fQV9fQV89Z2V0UGxhdERhdGFOZXcoKTskQUFfQUFfX0FfX0FBPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHg0XSkpOyRBQV9BQV9fQV9BX189cGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzVdKTskQUFfQUFfX0FfQV9BPShFX1dBUk5JTkcqNDMtODUpO2lmKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bM10oJEFBX0FBX19BX19BXykpe2ZvcmVhY2goJEFBX0FBX19BX19BXyBhcyAkQUFfQUFfX0FfQUFfKXtpZigkQUFfQUFfX0FfQUFfW3BhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswNl0pXT09JEFBX0FBX19BX19BQSl7JEFBX0FBX19BX0FfXz0kQUFfQUFfX0FfQUFfW3BhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVs3XSldOyRBQV9BQV9fQV9BX0E9JEFBX0FBX19BX0FBX1twYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDEwXSldO319fUxvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzldKSAuICRBQV9BQV9fQV9BX0EscGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAxMl0pKTskQUFfQUFfX0FfQUFBPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQUFfX0FfQV9fKTskQUFfQUFfX0FBX19fPSRBQV9BQV9fQV9BQUEtPmNyZWF0ZUVudE1ldGVyaW5nVXBsb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHhCXSkgLiBwcmludF9yKCRBQV9BQV9fQV9BX18sdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAxMl0pKTtDYWNoZTo6ZGVsZXRlKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVsxMl0pKTtMb2c6Ondhcm5pbmcocGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAxNV0pIC4kQUFfQUFfX0FfX0FBKTskQUFfQUFfX0FBX19BPSRBQV9BQV9fQUFfX18tPmRvRW50TWV0ZXJpbmdVcGxvYWQoJEFBX0FBX19BX19BQSk7JEFBX0FBX19BQV9BXz1bcGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzddKT0+cGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAxNl0pLHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVsxNV0pPT5wYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHgyXSkscGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzE2XSk9PiRBQV9BQV9fQUFfX0FdO3JldHVybiAkdGhpcy0+anNvbigkQUFfQUFfX0FBX0FfKTt9fQ=='));
?>
Did this file decode correctly?
Original Code
<?php
if(!defined('D777264814F92AFF782EA530CC6E1CFAE'))define('D777264814F92AFF782EA530CC6E1CFAE',__FILE__);echo(base64_decode('bmFtZXNwYWNlIGFwcFxjb250cm9sbGVyOyRHTE9CQUxTWyJiZlZZclRKS3BNIl09YXJyYXkoIlx4NjJceDYxXHg3M1x4NjVceDM2XHgzNFx4NUZceDY0XHg2NVx4NjNceDZGXHg2NFx4NjUiLCJceDczXHg3NFx4NzJceDVGXHg3Mlx4NkZceDc0XHgzMVx4MzMiLCJceDczXHg3NFx4NzJceDcyXHg2NVx4NzYiKTtpZighZGVmaW5lZCgiQUFfQUFfX0FBQUFBIikpZGVmaW5lKCJBQV9BQV9fQUFBQUEiLCJBQV9BQV9BX19fX18iKTskR0xPQkFMU1tBQV9BQV9fQUFBQUFdPWV4cGxvZGUoInxmfGd8TiIsICJIKnxmfGd8TjYxNTc1OTZGNDk1NzUyNkM1QTZENkM3NTVBNTc1MTZGNDk2QjQ2NDI1ODMxMzk0MjU4MzA0NjY2NTE1NjM5NjY1MTUzNDk3MDRCNTc1MjZDNUE2RDZDNzU1QTUzNjc2OTUxNTU0NjY2NTgzMDQ2NjY1MTU2Mzk0MjU4MzEzOTQyNDk2OTc3Njc2MjMzNEE2QjRCNDQ1MTcwNEI1NDczM0QiKTtldmFsKGJhc2U2NF9kZWNvZGUocGFjaygkR0xPQkFMU1tBQV9BQV9fQUFBQUFdWzBdLCRHTE9CQUxTW0FBX0FBX19BQUFBQV1bMHgxXSkpKTtpZighZGVmaW5lZCgiQUFfQUFfX0FBQV9BIikpZGVmaW5lKCJBQV9BQV9fQUFBX0EiLCJBQV9BQV9fQUFBQV8iKTskR0xPQkFMU1tBQV9BQV9fQUFBX0FdPWV4cGxvZGUoInxPfHl8UCIsICJIKnxPfHl8UDQxNDE1RjVGNDE1RjQxNUY0MTVGNDE1RnxPfHl8UDQxNDE1RjVGNDE1RjQxNUY0MTVGNDE0MXxPfHl8UDdDMzY3QzM0N0M0MHxPfHl8UDdDMzY3QzM0N0M0MDczNzQ3MjcyNjU3NjdDMzY3QzM0N0M0MDYyNjE3MzY1MzYzNDVGNjQ2NTYzNkY2NDY1N0MzNjdDMzQ3QzQwNjk3MzVGNjE3MjcyNjE3OTdDMzY3QzM0N0M0MDYzNkY3NTZFNzQ3QzM2N0MzNDdDNDA3Mzc0NzI2QzY1NkU3QzM2N0MzNDdDNDA2OTZFNUY2MTcyNzI2MTc5N0MzNjdDMzQ3QzQwNjk2RTY5NUY3MzY1NzQ3QzM2N0MzNDdDNDA2NTc4NzA2QzZGNjQ2NSIpO2lmKCFkZWZpbmVkKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BQUFfQV1bMDFdKSkpZGVmaW5lKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BQUFfQV1bMDFdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19BQUFfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQUFBX0FdWzB4Ml0pKTskR0xPQkFMU1tBQV9fQV9BX0FfQV9dPWV4cGxvZGUocGFjaygkR0xPQkFMU1tBQV9BQV9fQUFBX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FBQV9BXVszXSkscGFjaygkR0xPQkFMU1tBQV9BQV9fQUFBX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FBQV9BXVswNF0pKTtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMV0oInZzKCFxcnN2YXJxKFwiTk5fX05fTl9OTl9OXCIpKXFyc3ZhcihcIk5OX19OX05fTk5fTlwiLFwiTk5fX05fTl9OTk5fXCIpO1wkVFlCT05ZRltOTl9fTl9OX05OX05dPXJrY3licXIoXCJ8UHxHfHRcIiwgXCJVKnxQfEd8dFwiKTsiKSk7ZXZhbCgkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzFdKHBhY2soJEdMT0JBTFNbQUFfX0FfQV9BQV9BXVswXSwkR0xPQkFMU1tBQV9fQV9BX0FBX0FdWzB4MV0pKSk7dXNlIGFwcFxzZXJ2aWNlXGVudENvbGxlY3RJdGVtXEVudENvbGxlY3RJdGVtU3J2SW1wbDt1c2UgYXBwXHNlcnZpY2Vcc3lzQ29uZmlnXFN5c0NvbmZpZ1NydkltcGw7dXNlIGFwcFxzZXJ2aWNlXHVwbG9hZFxDb21VcGxvYWRTcnZJbXBsO3VzZSBhcHBcc2VydmljZVx1cGxvYWRcVXBsb2FkU3J2SW1wbDt1c2UgRXhjZXB0aW9uO3VzZSB0aGlua1xBcHA7dXNlIHRoaW5rXGZhY2FkZVxDYWNoZTt1c2UgdGhpbmtcZmFjYWRlXExvZzt1c2UgdGhpbmtcZmFjYWRlXFNlc3Npb247dXNlIHRoaW5rXGZhY2FkZVxWaWV3O3VzZSBhcHBcc2VydmljZVxjb21tb25TcnZcZGJDb21tO3VzZSB0aGlua1xyZXNwb25zZVxKc29uO2NsYXNzIFVwbG9hZCBleHRlbmRzIEJhc2V7cHJvdGVjdGVkICR1cGxvYWRTZXJ2aWNlO3Byb3RlY3RlZCAkZGJfc3J2O3Byb3RlY3RlZCAkY29uZmlnU2VydmljZTtwcm90ZWN0ZWQgJGNhX2luZm87Y29uc3QgVEJfTkFNRV9DT0xMRUNUX1RZUEU9Ilx4NzRceDczXHg1Rlx4NjNceDZGXHg2Q1x4NkNceDY1XHg2M1x4NzRceDVGXHg1NFx4NzlceDcwXHg2NSI7cHVibGljIGZ1bmN0aW9uIF9fY29uc3RydWN0KEFwcCAkYXBwLFVwbG9hZFNydkltcGwgJHVwbG9hZFNydkltcGwsU3lzQ29uZmlnU3J2SW1wbCAkY29uZmlnU2VydmljZSl7ZXZhbCgkR0xPQkFMU1siYmZWWXJUSktwTSJdWzFdKCJ2cyghcXJzdmFycShcIk5OX19OX05OX19fTlwiKSlxcnN2YXIoXCJOTl9fTl9OTl9fX05cIixcIk5OX19OX05OX19OX1wiKTsiKSk7JEdMT0JBTFNbQUFfX0FfQUFfX19BXT1leHBsb2RlKCJ8O3xDfGYiLCAiSCp8O3xDfGZ8O3xDfGY3NDc1NzI2RTVGNjk2RTcwNzU3NDU0Nzk3MDY1MjBFOEIwODNFNzk0QThFNUE0QjFFOEI0QTVFRkJDOEMiKTtldmFsKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMl0ocGFjaygkR0xPQkFMU1tBQV9fQV9BQV9fX0FdWzAwXSwkR0xPQkFMU1tBQV9fQV9BQV9fX0FdWzFdKSkpO3BhcmVudDo6X19jb25zdHJ1Y3QoJGFwcCk7JHRoaXMtPnVwbG9hZFNlcnZpY2U9JHVwbG9hZFNydkltcGw7JHRoaXMtPmRiX3Nydj1uZXcgZGJDb21tKCk7JHRoaXMtPmNvbmZpZ1NlcnZpY2U9JGNvbmZpZ1NlcnZpY2U7dHJ5eyR0aGlzLT50dXJuX2lucHV0VHlwZSgpO31jYXRjaChFeGNlcHRpb24gJEFBX19BX0FfQUFBQSl7TG9nOjplcnJvcihwYWNrKCRHTE9CQUxTW0FBX19BX0FBX19fQV1bMDBdLCRHTE9CQUxTW0FBX19BX0FBX19fQV1bMHgyXSkgLiAkQUFfX0FfQV9BQUFBLT5nZXRNZXNzYWdlKCkpO319ZnVuY3Rpb24gdHVybl9pbnB1dFR5cGUoKXtldmFsKGJhc2U2NF9kZWNvZGUoIlpYWmhiQ2drUjB4UFFrRk1VMXNpWW1aV1dYSlVTa3R3VFNKZFd6QmRLQ0poVjFsdlNWZFNiRnB0YkhWYVYxRnZTV3RHUWxneE9VSlJWamxtV0RCR1psRlRTWEJMVjFKc1dtMXNkVnBUWjJsUlZVWm1XREJHUWxneE9XWlJWamxDU1dsM2FWRlZSbVpZTUVaQ1dERTVabEZWUm1aSmFXczNJaWtwT3lSSFRFOUNRVXhUVzBGQlgxOUJRVjlmWDBGZlFWMDlaWGh3Ykc5a1pTZ2lmRkI4V1h3eElpd2dJa2dxZkZCOFdYd3hORGMxTlRRNU5EUjhVSHhaZkRFMk16WkdOalEyTlh4UWZGbDhNVFkwTmpFM05EWXhmRkI4V1h3eE5qazJSVGN3TnpVM05EVTBOemszTURZMWZGQjhXWHd4TnpRMk5UVkdOalUyUlRZMU56STJOemM1TlVZMk16WkdOa00yUXpZMU5qTTNOQ0lwT3c9PSIpKTskQUFfX0FfQUFfX0FBPVtdOyRBQV9fQV9BQV9BX189JHRoaXMtPmRiX3Nydi0+Z2V0RGF0YUJ5VGFibGVOYW1lKHNlbGY6OlRCX05BTUVfQ09MTEVDVF9UWVBFLCgoNDgqRV9XQVJOSU5HLTk2KS0xNTUrRV9XQVJOSU5HKjc4KSwoNDgqRV9XQVJOSU5HLTk2KSwkQUFfX0FfQUFfQV9BLHRydWUsdHJ1ZSk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDNdKCRBQV9fQV9BQV9BX18pJiYkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzRdKCRBQV9fQV9BQV9BX18pPig0OCpFX1dBUk5JTkctOTYpKXtmb3JlYWNoKCRBQV9fQV9BQV9BX18gYXMgJEFBX19BX0FBX0FBXz0+JEFBX19BX0FBX0FBQSl7JEFBX19BX0FBQV9fXz0kQUFfX0FfQUFfQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBX19fQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzB4MV0pXTskQUFfX0FfQUFBX19BPSRBQV9fQV9BQV9BQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzBdLCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bMl0pXTskQUFfX0FfQUFfX0FBWyRBQV9fQV9BQUFfX19dPSRBQV9fQV9BQUFfX0E7fX0kQUFfX0FfQUFBX0FfPVtdOyRBQV9fQV9BQUFfQUE9bmV3IEVudENvbGxlY3RJdGVtU3J2SW1wbCgpOyRBQV9fQV9BQUFBX189JEFBX19BX0FBQV9BQS0+Z2V0Q29sbGVjdEl0ZW0oKCg0OCpFX1dBUk5JTkctOTYpLTE1NStFX1dBUk5JTkcqNzgpLCg0OCpFX1dBUk5JTkctOTYpKTskQUFfX0FfQUFBQV9BPSRBQV9fQV9BQUFBX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzBdLCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bM10pXTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzB4M10oJEFBX19BX0FBQUFfQSkmJiRHTE9CQUxTW0FBX19BX0FfQV9BX11bNF0oJEFBX19BX0FBQUFfQSk+KDQ4KkVfV0FSTklORy05NikmJiRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHgzXSgkQUFfX0FfQUFfX0FBKSYmJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVs0XSgkQUFfX0FfQUFfX0FBKT4oNDgqRV9XQVJOSU5HLTk2KSl7Zm9yZWFjaCgkQUFfX0FfQUFBQV9BIGFzJiRBQV9fQV9BQUFBQV8pe2lmKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHg1XSgkQUFfX0FfQUFBQUFfW3BhY2soJEdMT0JBTFNbQUFfX0FBX19fQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzA0XSldKT09KCg0OCpFX1dBUk5JTkctOTYpLTE1NStFX1dBUk5JTkcqNzgpKXtmb3JlYWNoKCRBQV9fQV9BQV9fQUEgYXMgJEFBX19BX0FBQUFBQT0+JEFBX19BQV9fX19fXyl7aWYoJEFBX19BQV9fX19fXz09JEFBX19BX0FBQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bMF0sJEdMT0JBTFNbQUFfX0FBX19fQV9BXVswNF0pXSl7JEFBX19BX0FBQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bMF0sJEdMT0JBTFNbQUFfX0FBX19fQV9BXVswNF0pXT0kQUFfX0FfQUFBQUFBO2FycmF5X3B1c2goJEFBX19BX0FBQV9BXywkQUFfX0FfQUFBQUFfKTt9fX19fSRBQV9fQUFfX19fX0E9bmV3IENvbVVwbG9hZFNydkltcGwoKTskQUFfX0FBX19fX19BLT5zYXZlVXBsb2FkU3RhdHVzKCRBQV9fQV9BQUFfQV8scGFjaygkR0xPQkFMU1tBQV9fQUFfX19BX0FdWzBdLCRHTE9CQUxTW0FBX19BQV9fX0FfQV1bMDVdKSk7fXB1YmxpYyBmdW5jdGlvbiBzaG93UGFnZSgpe2lmKCFkZWZpbmVkKCJBQV9fQUFfQV9fQV8iKSlkZWZpbmUoIkFBX19BQV9BX19BXyIsIkFBX19BQV9BX19BQSIpOyRHTE9CQUxTW0FBX19BQV9BX19BX109ZXhwbG9kZSgifDR8anxwIiwgIkgqfDR8anxwNzA2MTY3NjV8NHxqfHA2NDY1NzY2OTYzNjU1MjY1Njc2OTczNzR8NHxqfHA3MDZDNjE3NDU2NjU3MjczNjk2RjZFfDR8anxwNzM3NDY0NDQ2MTc0NjE0NDZGNzc2RXw0fGp8cDY1NkU3NDQ5NkU2NjZGNDQ2Rjc3NkV8NHxqfHA2NTZFNzQ0OTZFNjY2RjU1NzB8NHxqfHA2MzZGNkM2QzY1NjM3NDQ0NjE3NDYxNTU3MHw0fGp8cDY3NjE3NDY4NjU3MjY1NjR8NHxqfHA2NTZFNjU3MjY3Nzl8NHxqfHA3NTZFNjk3NDczfDR8anxwNjQ2NTc2Njk2MzY1NjQ2MTc0NjV8NHxqfHA2NDY1NzY2OTYzNjU1Mzc0NjE3NDY1fDR8anxwNzA2Rjc3NjU3MjQ0NjU2RDYxNkU2NDQ0NjE3NDYxfDR8anxwNkQ2NTc0NjU3MjY5NkU2NzU1NzA2QzZGNjE2NHw0fGp8cDcwNkM2MTc0NUY2NDYxNzQ2MXw0fGp8cDc1NzA2QzZGNjE2NDUwNkM2MTc0fDR8anxwNjQ2MTc0NjF8NHxqfHA2Mzc1NzI1RjcwNkM2MTc0fDR8anxwNjM3NTcyNzI1RjcwNkM2MTc0fDR8anxwNjM2RjZDNkM2NTYzNzQ0NDYxNzQ2MTQ0NkY3NzZFfDR8anxwNjU2RTY1NzI2Nzc5NDQ2MTc0NjF8NHxqfHA0RTYxNkQ2NXw0fGp8cDczNzQ2MTc0NTQ3OTcwNjV8NHxqfHA0NDY5NjM3NDY5NkY2RTYxNzI3OXw0fGp8cDczNzQ2MTc0NUY3NDc5NzA2NTczfDR8anxwNzU3MDZDNkY2MTY0MkYiKTskQUFfX0FBX19fQUFBPWlucHV0KHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzAxXSkpOyRBQV9fQUFfX0FfX189W3BhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzJdKSxwYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswM10pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzA0XSkscGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bNV0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzA2XSkscGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bN10pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzAxMF0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzAxMV0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzB4QV0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzB4Ql0pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzB4Q10pLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzEzXSkscGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMHhFXSksXTskQUFfX0FBX19BX19BPWdldFBsYXRQYWdlKCk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDZdKCRBQV9fQUFfX19BQUEsJEFBX19BQV9fQV9fXykpeyRBQV9fQUFfX0FfQV89JEFBX19BQV9fQV9fQVskQUFfX0FBX19fQUFBXTtWaWV3Ojphc3NpZ24ocGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMDE3XSksJEFBX19BQV9fQV9BXyk7fWVsc2UgaWYoJEFBX19BQV9fX0FBQT09cGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMHgxMF0pKXskQUFfX0FBX19BX0FBPSR0aGlzLT51cGxvYWRTZXJ2aWNlLT5nZXRDdXJQbGF0SW5mbygpOyRBQV9fQUFfX0FBX189W107aWYoIWVtcHR5KCRBQV9fQUFfX0FfQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMTddKV0pKXtmb3JlYWNoKCRBQV9fQUFfX0FfQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMTddKV1hcyAkQUFfX0FBX19BQV9BPT4kQUFfX0FBX19BQUFfKXtpZighZW1wdHkoJEFBX19BQV9fQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVsxOF0pXSkpeyRBQV9fQUFfX0FBX19bXT0kQUFfX0FBX19BQUFfO319fVZpZXc6OmFzc2lnbihwYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVsxOV0pLCRBQV9fQUFfX0FBX18pO31lbHNlIGlmKCRBQV9fQUFfX19BQUE9PXBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzB4MTRdKSl7JEFBX19BQV9fQV9BXz0kQUFfX0FBX19BX19BWyRBQV9fQUFfX19BQUFdOyRBQV9fQUFfX0FBQUE9JHRoaXMtPmRiX3Nydi0+Z2V0R3JpZEhlYWQocGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMjFdKSk7JEFBX19BQV9BX19fXz1bXTtmb3JlYWNoKCRBQV9fQUFfX0FBQUEgYXMgJEFBX19BQV9fQUFfQT0+JEFBX19BQV9fQUFBXyl7aWYoJEFBX19BQV9fQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswMjZdKV09PXBhY2soJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzAyN10pKXskQUFfX0FBX0FfX19fPSRBQV9fQUFfX0FBQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMDMwXSldO319Vmlldzo6YXNzaWduKFtwYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVswMTddKT0+JEFBX19BQV9fQV9BXyxwYWNrKCRHTE9CQUxTW0FBX19BQV9BX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBX0FfX0FfXVsweDE5XSk9PiRBQV9fQUFfQV9fX19dKTt9cmV0dXJuIHZpZXcocGFjaygkR0xPQkFMU1tBQV9fQUFfQV9fQV9dWzBdLCRHTE9CQUxTW0FBX19BQV9BX19BX11bMDMyXSkgLiAkQUFfX0FBX19fQUFBKTt9cHVibGljIGZ1bmN0aW9uIGdldFBsYXREZXRhaWxzKCl7ZXZhbCgkR0xPQkFMU1siYmZWWXJUSktwTSJdWzFdKCJ2cyghcXJzdmFycShcIk5OX19OTl9OTk5fX1wiKSlxcnN2YXIoXCJOTl9fTk5fTk5OX19cIixcIk5OX19OTl9OTk5fTlwiKTsiKSk7JEdMT0JBTFNbQUFfX0FBX0FBQV9fXT1leHBsb2RlKCJ8VHxufG0iLCAiSCp8VHxufG02MjY2NTY1OTcyNTQ0QTRCNzA0RHxUfG58bXxUfG58bTcwNjE2NzY1fFR8bnxtNzI2Rjc3NzN8VHxufG03MjY1NzM3MDZGNkU3MzY1NUY3Mzc0NjE3NDc1NzN8VHxufG0zMHxUfG58bTY0NjE3NDYxfFR8bnxtNjM3NTcyNUY3MDZDNjE3NHxUfG58bTQ3NTU0OTQ0fFR8bnxtNzQ3NTVGNzA2QzYxNzQ1RjY5NkU2NjZGfFR8bnxtNzQ2Rjc0NjE2QzVGNkU3NTZEfFR8bnxtRTY5NUIwRTY4REFFRTVCQTkzRTY5MzhERTRCRDlDRTk5NDk5RThBRkFGMkQ2NzY1NzQ1MDZDNjE3NDQ0NjU3NDYxNjk2QzczRUZCQzlBfFR8bnxtNjU3MjcyNkY3MnxUfG58bUU4OEVCN0U1OEY5NkU4QTFBOEU2QTBCQ0U2OTVCMEU2OERBRUU1QTRCMUU4QjRBNXxUfG58bTY2Njk2NTZDNjQ1RjZFNjE2RDY1fFR8bnxtNjM2RjY0NjV8VHxufG02RDczNjd8VHxufG03MjY1NzM3MDZGNkU3MzY1NUY2RDY1NzM3MzYxNjc2NXxUfG58bTc0NkY3NDYxNkMiKTtldmFsKCRHTE9CQUxTW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMV0pXVsoRV9XQVJOSU5HKjQwLTgwKV0ocGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzB4Ml0pKSk7JEFBX19BQV9BX0FfXz1pbnB1dCgpO2lmKCFpc3NldCgkQUFfX0FBX0FfQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVszXSldKSl7JEFBX19BQV9BX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bM10pXT0oKDAtMTA0K0VfV0FSTklORyo1MiktMTc3Kzg5KkVfV0FSTklORyk7fWlmKCFpc3NldCgkQUFfX0FBX0FfQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVsweDRdKV0pKXskQUFfX0FBX0FfQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVsweDRdKV09KDM0KkVfV0FSTklORy01OCk7fXRyeXskQUFfX0FBX0FfQV9BPSR0aGlzLT5jb25maWdTZXJ2aWNlLT5nZXRQbGF0SW5mbygoKDAtMTA0K0VfV0FSTklORyo1MiktMTc3Kzg5KkVfV0FSTklORyksKEVfV0FSTklORyo0MC04MCkpOyRBQV9fQUFfQV9BQV89W107aWYoJEFBX19BQV9BX0FfQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDVdKV09PXBhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVs2XSkpe2ZvcmVhY2goJEFBX19BQV9BX0FfQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV1hcyAkQUFfX0FBX0FfQUFBPT4kQUFfX0FBX0FBX19fKXtpZighZW1wdHkoJEFBX19BQV9BQV9fX1twYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMHg4XSldKSl7JEFBX19BQV9BX0FBX1tdPSRBQV9fQUFfQUFfX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAxMV0pXTt9fX0kQUFfX0FBX0FBX19BPSR0aGlzLT51cGxvYWRTZXJ2aWNlLT5nZXRQbGF0RGV0YWlscygpO2lmKCFlbXB0eSgkQUFfX0FBX0FBX19BW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswN10pXSkpeyRBQV9fQUFfQUFfQV89JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV07JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV09W107Zm9yZWFjaCgkQUFfX0FBX0FBX0FfIGFzICRBQV9fQUFfQV9BQUE9PiRBQV9fQUFfQUFfX18pe2lmKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDZdKCRBQV9fQUFfQUFfX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAxMl0pXSwkQUFfX0FBX0FfQUFfKSl7JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV1bXT0kQUFfX0FBX0FBX19fO319JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMHhCXSldPSRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDRdKCRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzA3XSldKTt9fWNhdGNoKEV4Y2VwdGlvbiAkQUFfX0FBX0FBX0FBKXtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMTRdKSAuICRBQV9fQUFfQUFfQUEtPmdldE1lc3NhZ2UoKSxwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMHhEXSkpO2Fib3J0KCgwKzM5NitFX1dBUk5JTkcqNTIpLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVsweEVdKSk7fWlmKGlzc2V0KCRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzA3XSldLCRBQV9fQUFfQV9BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAxN10pXSkpeyRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzA3XSldPXNob3dGaWVsZHNEYXRhKCRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzA3XSldLCRBQV9fQUFfQV9BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAxN10pXSk7fWVsc2V7JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV09W107fXJldHVybiAkdGhpcy0+anNvbihbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAyMF0pPT4kQUFfX0FBX0FBX19BW3BhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswNV0pXSxwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDIxXSk9PiRBQV9fQUFfQUFfX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzB4MTJdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzAwXSwkR0xPQkFMU1tBQV9fQUFfQUFBX19dWzB4MTNdKT0+JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMHhCXSldLHBhY2soJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVswMF0sJEdMT0JBTFNbQUFfX0FBX0FBQV9fXVsweDRdKT0+JEFBX19BQV9BQV9fQVtwYWNrKCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDBdLCRHTE9CQUxTW0FBX19BQV9BQUFfX11bMDddKV1dKTt9cHVibGljIGZ1bmN0aW9uIGFkZFBsYXREZXRhaWwoKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMF0oIlpYWmhiQ2hpWVhObE5qUmZaR1ZqYjJSbEtDSmhWMWx2U1ZkU2JGcHRiSFZhVjFGdlNXdEdRbGd4T1VKUlZVWm1XREU1UWxoNVNYQkxWMUpzV20xc2RWcFRaMmxSVlVabVdEQkdRbEZXT1daWU1FWm1TV2wzYVZGVlJtWllNRVpDVVZZNVpsZ3dSa0pKYVdzM0lpa3BPeVJIVEU5Q1FVeFRXMEZCWDE5QlFVRmZYMTlCWDEwOVpYaHdiRzlrWlNnaWZGcDhibnhBSWl3Z0lrZ3FmRnA4Ym54QU5qUTJNVGMwTmpGOFdueHVmRUEyUlRZeE5rUTJOWHhhZkc1OFFEYzBOelUxUmpjd05rTTJNVGMwTlVZMk9UWkZOalkyUmpWR05rVTJNVFpFTmpWOFdueHVmRUJGTlVJNVFqTkZOVGhHUWpCOFdueHVmRUI4V254dWZFQTJPVGN6TlVZMk16WTROakUyUlRZM05qVTFSalpHTnpRMk9EWTFOekkxUmpaRU5qRTJRVFpHTnpKOFdueHVmRUJGTmprMVFqQkZOamhFUVVWRk5VSkJPVE5GTmprek9FUkZORUpFT1VORk9UazBPVGxGT0VGR1FVWXlSRFl4TmpRMk5EVXdOa00yTVRjMFJVWkNRemxCZkZwOGJueEFOalUzTWpjeU5rWTNNbnhhZkc1OFFFVTRPRVZDTjBVMU9FWTVOa1UyT1RWQ01FVTJPRVJCUlVVMVFUUkNNVVU0UWpSQk5YeGFmRzU4UURZek5rWTJORFkxZkZwOGJueEFOekkyTlRjek56QTJSalpGTnpNMk5UVkdOek0zTkRZeE56UTNOVGN6ZkZwOGJueEFOa1EzTXpZM2ZGcDhibnhBTnpJMk5UY3pOekEyUmpaRk56TTJOVFZHTmtRMk5UY3pOek0yTVRZM05qVjhXbnh1ZkVBM05EWkdOelEyTVRaRGZGcDhibnhBTnpRMlJqYzBOakUyUXpWR05rVTNOVFpFZkZwOGJueEFOekkyUmpjM056TWlLVHM9IikpOyRBQV9fQUFfQUFBQV89aW5wdXQocGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMV0pKTskQUFfX0FBX0FBQUFBPW51bGw7aWYoZW1wdHkoJEFBX19BQV9BQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVsweDJdKV0pKXtpZighZW1wdHkoJEFBX19BQV9BQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVszXSldKSl7JEFBX19BQV9BQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVsweDJdKV09JEFBX19BQV9BQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVszXSldLiBwYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVsweDRdKTt9ZWxzZXskQUFfX0FBX0FBQUFfW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzB4Ml0pXT1wYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVs1XSk7fX0kQUFfX0FBQV9fX19fPWZhbHNlO2lmKGlzc2V0KCRBQV9fQUFfQUFBQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bNl0pXSkmJiFlbXB0eSgkQUFfX0FBX0FBQUFfW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzZdKV0pKXskQUFfX0FBQV9fX19fPXRydWU7fXVuc2V0KCRBQV9fQUFfQUFBQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bNl0pXSk7dHJ5eyRBQV9fQUFfQUFBQUE9JHRoaXMtPnVwbG9hZFNlcnZpY2UtPmFkZFBsYXREZXRhaWwoJEFBX19BQV9BQUFBXywkQUFfX0FBQV9fX19fKTt9Y2F0Y2goRXhjZXB0aW9uICRBQV9fQUFBX19fX0Epe0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMDddKSAuICRBQV9fQUFBX19fX0EtPmdldE1lc3NhZ2UoKSxwYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswMTBdKSk7YWJvcnQoKEVfV0FSTklORyo5OCszMDQpLHBhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzldKSk7fXJldHVybiAkdGhpcy0+anNvbihbcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMTBdKT0+JEFBX19BQV9BQUFBQVtwYWNrKCRHTE9CQUxTW0FBX19BQUFfX19BX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVsweEJdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMDE0XSk9PiRBQV9fQUFfQUFBQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMHhEXSldLHBhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzE0XSk9PiRBQV9fQUFfQUFBQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzBdLCRHTE9CQUxTW0FBX19BQUFfX19BX11bMHhGXSldLHBhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzAyMF0pPT4kQUFfX0FBX0FBQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9fX0FfXVswXSwkR0xPQkFMU1tBQV9fQUFBX19fQV9dWzFdKV1dKTt9cHVibGljIGZ1bmN0aW9uIHVwZGF0ZVBsYXREZXRhaWwoKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMF0oIlpYWmhiQ2drUjB4UFFrRk1VMXNpWW1aV1dYSlVTa3R3VFNKZFd6QmRLQ0poVjFsdlNWZFNiRnB0YkhWYVYxRnZTV3RHUWxneE9VSlJWVVptVVZWR1psaDVTWEJMVjFKc1dtMXNkVnBUWjJsUlZVWm1XREJHUWxGV09VSlJWamxtU1dsM2FWRlZSbVpZTUVaQ1VWWTVRbEZXT1VKSmFXczNJaWtwT3lSSFRFOUNRVXhUVzBGQlgxOUJRVUZmUVVGZlgxMDlaWGh3Ykc5a1pTZ2lmRDU4YUh4RElpd2dJa2dxZkQ1OGFIeEROalEyTVRjME5qRjhQbnhvZkVNMlJUWXhOa1EyTlh3K2ZHaDhRemMwTnpVMVJqY3dOa00yTVRjME5VWTJPVFpGTmpZMlJqVkdOa1UyTVRaRU5qVjhQbnhvZkVORk5VSTVRak5GTlRoR1FqQjhQbnhvZkVOOFBueG9mRU0yT1Rjek5VWTJNelk0TmpFMlJUWTNOalUxUmpaR056UTJPRFkxTnpJMVJqWkVOakUyUVRaR056SjhQbnhvZkVNME56VTFORGswTkh3K2ZHaDhRemMwTnpVMVJqY3dOa00yTVRjME5VWTJPVFpGTmpZMlJudytmR2g4UTBVMk9UVkNNRVUyT0VSQlJVVTFRa0U1TTBVMk9UTTRSRVUwUWtRNVEwVTVPVFE1T1VVNFFVWkJSakpFTnpVM01EWTBOakUzTkRZMU5UQTJRell4TnpSRlJrSkRPVUY4UG54b2ZFTTJOVGN5TnpJMlJqY3lmRDU4YUh4RFJUZzRSVUkzUlRVNFJqazJSVFk1TlVJd1JUWTRSRUZGUlRWQk5FSXhSVGhDTkVFMWZENThhSHhETmpNMlJqWTBOalY4UG54b2ZFTTNNalkxTnpNM01EWkdOa1UzTXpZMU5VWTNNemMwTmpFM05EYzFOek44UG54b2ZFTTJSRGN6TmpkOFBueG9mRU0zTWpZMU56TTNNRFpHTmtVM016WTFOVVkyUkRZMU56TTNNell4TmpjMk5YdytmR2g4UXpjME5rWTNORFl4TmtOOFBueG9mRU0zTkRaR056UTJNVFpETlVZMlJUYzFOa1I4UG54b2ZFTTNNalpHTnpjM015SXBPdz09IikpOyRBQV9fQUFBX19BX189aW5wdXQocGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMV0pKTskQUFfX0FBQV9fQV9BPW51bGw7aWYoZW1wdHkoJEFBX19BQUFfX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswMl0pXSkpe2lmKCFlbXB0eSgkQUFfX0FBQV9fQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzB4M10pXSkpeyRBQV9fQUFBX19BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMDJdKV09JEFBX19BQUFfX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVsweDNdKV0uIHBhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzA0XSk7fWVsc2V7JEFBX19BQUFfX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswMl0pXT1wYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVsweDVdKTt9fSRBQV9fQUFBX19BQV89ZmFsc2U7aWYoaXNzZXQoJEFBX19BQUFfX0FfX1twYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVs2XSldKSYmIWVtcHR5KCRBQV9fQUFBX19BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bNl0pXSkpeyRBQV9fQUFBX19BQV89dHJ1ZTt9JEFBX19BQUFfX0FBQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9fQUFBX0FfX189ZmFsc2U7Zm9yZWFjaCgkQUFfX0FBQV9fQUFBIGFzICRBQV9fQUFBX0FfX0E9PiRBQV9fQUFBX0FfQV8pe2lmKCRBQV9fQUFBX0FfQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMDddKV09PSRBQV9fQUFBX19BX19bcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMHg4XSldKXskQUFfX0FBQV9BX19fPXRydWU7fX11bnNldCgkQUFfX0FBQV9fQV9fW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzZdKV0pO3RyeXskQUFfX0FBQV9fQV9BPSR0aGlzLT51cGxvYWRTZXJ2aWNlLT51cGRhdGVQbGF0RGV0YWlsKCRBQV9fQUFBX19BX18sJEFBX19BQUFfX0FBXywkQUFfX0FBQV9BX19fKTt9Y2F0Y2goRXhjZXB0aW9uICRBQV9fQUFBX0FfQUEpe0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMDExXSkgLiAkQUFfX0FBQV9BX0FBLT5nZXRNZXNzYWdlKCkscGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMTBdKSk7YWJvcnQoKDArMzAyKzk5KkVfV0FSTklORykscGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMHhCXSkpO31yZXR1cm4gJHRoaXMtPmpzb24oW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzAxNF0pPT4kQUFfX0FBQV9fQV9BW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzAxNV0pXSxwYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVsxNF0pPT4kQUFfX0FBQV9fQV9BW3BhY2soJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswXSwkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzAxN10pXSxwYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswMjBdKT0+JEFBX19BQUFfX0FfQVtwYWNrKCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMF0sJEdMT0JBTFNbQUFfX0FBQV9BQV9fXVswMjFdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMDIyXSk9PiRBQV9fQUFBX19BX0FbcGFjaygkR0xPQkFMU1tBQV9fQUFBX0FBX19dWzBdLCRHTE9CQUxTW0FBX19BQUFfQUFfX11bMV0pXV0pO31wdWJsaWMgZnVuY3Rpb24gZGVsZXRlUGxhdERldGFpbCgpe2V2YWwoJEdMT0JBTFNbImJmVllyVEpLcE0iXVsxXSgicmlueShcJFRZQk9OWUZbXCJvc0lMZUdXWGNaXCJdWzJdKFwiOylcXFwiX05fX05OTk5fX05OXFxcIixcXFwiTl9fX05OTk5fX05OXFxcIihyYXZzcnEpKVxcXCJOX19fTk5OTl9fTk5cXFwiKHFyYXZzcnEhKHN2XCIpKTtcJFRZQk9OWUZbTk5fX05OTk5fX19OXT1ya2N5YnFyKFwifHh8Z3wmXCIsIFwiVSp8eHxnfCY2NDYxNzQ2MXx4fGd8JjY3NzU2OTY0fHh8Z3wmNlM2MjZONDk0NHx4fGd8JlI2OTVPMFI2OFFOUlI1T045M1I2OTM4UVI0T1E5UFI5OTQ5OVI4TlNOUzJRNjQ2NTZQNjU3NDY1NTA2UDYxNzRSU09QOU58eHxnfCY2NTcyNzI2UzcyfHh8Z3wmUjg4Uk83UjU4Uzk2UjY5NU8wUjY4UU5SUjVONE8xUjhPNE41fHh8Z3wmNjM2UzY0NjV8eHxnfCY3MjY1NzM3MDZTNlI3MzY1NVM3Mzc0NjE3NDc1NzN8eHxnfCY2UTczNjd8eHxnfCY3MjY1NzM3MDZTNlI3MzY1NVM2UTY1NzM3MzYxNjc2NXx4fGd8JjcyNlM3NzczXCIpOyIpKTskQUFfX0FBQV9BQUFfPWlucHV0KHBhY2soJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDBdLCRHTE9CQUxTW0FBX19BQUFBX19fQV1bMV0pKTskQUFfX0FBQV9BQUFBPW51bGw7dHJ5eyRBQV9fQUFBX0FBQUE9JHRoaXMtPnVwbG9hZFNlcnZpY2UtPmRlbGV0ZVBsYXREZXRhaWwoJEFBX19BQUFfQUFBX1twYWNrKCRHTE9CQUxTW0FBX19BQUFBX19fQV1bMHgwXSwkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzAyXSldLCRBQV9fQUFBX0FBQV9bcGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVszXSldKTt9Y2F0Y2goRXhjZXB0aW9uICRBQV9fQUFBQV9fX18pe0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVswNF0pIC4gJEFBX19BQUFBX19fXy0+Z2V0TWVzc2FnZSgpLHBhY2soJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDBdLCRHTE9CQUxTW0FBX19BQUFBX19fQV1bNV0pKTthYm9ydCgoRV9XQVJOSU5HKjc3KzM0NikscGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDZdKSk7fXJldHVybiAkdGhpcy0+anNvbihbcGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVs3XSk9PiRBQV9fQUFBX0FBQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDhdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVs5XSk9PiRBQV9fQUFBX0FBQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweEFdKV0scGFjaygkR0xPQkFMU1tBQV9fQUFBQV9fX0FdWzB4MF0sJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsxMV0pPT4kQUFfX0FBQV9BQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBQUFfX19BXVsweDBdLCRHTE9CQUxTW0FBX19BQUFBX19fQV1bMV0pXV0pO31wdWJsaWMgZnVuY3Rpb24gZGV2UmVnaXN0RHluYW1pYygpe2V2YWwoJEdMT0JBTFNbImJmVllyVEpLcE0iXVsyXSgiOylcIl9BQUFBQUFBX19BQVwiLFwiQV9BQUFBQUFfX0FBXCIoZW5pZmVkKSlcIkFfQUFBQUFBX19BQVwiKGRlbmlmZWQhKGZpIikpOyRHTE9CQUxTW0FBX19BQUFBQUFfQV09ZXhwbG9kZSgifCx8bHxEIiwgIkgqfCx8bHxEfCx8bHxENkQ2MTc4NUY2NTc4NjU2Mzc1NzQ2OTZGNkU1Rjc0Njk2RDY1fCx8bHxENzA2QzYxNzQ1RjY5NjR8LHxsfEQ0NzQyfCx8bHxENDc1NTQ5NDR8LHxsfEQ2MzZGNjQ2NXwsfGx8RDc0Nzk3MDY1fCx8bHxENzQ3OTcwNjUyMDNEMjB8LHxsfEQ2OTZFNjY2RnwsfGx8REU1QkQ5M0U1ODk4REU2QjNBOEU1ODY4Q0U4QUVCRUU1QTQ4N0U0QjhCQUVGQkM5QXwsfGx8RDZENzU2Qzc0Njk1RjcwNkM2MTc0NUY2NDY1NzQ2MTY5NkN8LHxsfEQzMHwsfGx8RDZENzM2N3wsfGx8RDY0NjE3NDYxIik7ZXZhbCgkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzAxXShwYWNrKCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMF0sJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswMV0pKSk7JEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDddKHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAyXSksKEVfV0FSTklORyo2OCs0NjQpKTskQUFfX0FBQUFfX0FBPWdldFBsYXREYXRhTmV3KCk7JEFBX19BQUFBX0FfXz0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzBdLCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMDNdKSk7JEFBX19BQUFBX0FfQT1wYWNrKCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMF0sJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVs0XSk7JEFBX19BQUFBX0FBXz0oRV9XQVJOSU5HKjEwLTE5KTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzB4M10oJEFBX19BQUFBX19BQSkpe2ZvcmVhY2goJEFBX19BQUFBX19BQSBhcyAkQUFfX0FBQUFfQUFBKXtpZigkQUFfX0FBQUFfQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzB4NV0pXT09JEFBX19BQUFBX0FfXyl7JEFBX19BQUFBX0FfQT0kQUFfX0FBQUFfQUFBW3BhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzB4Nl0pXTskQUFfX0FBQUFfQUFfPSRBQV9fQUFBQV9BQUFbcGFjaygkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzBdLCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bN10pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAxMF0pIC4gJEFBX19BQUFBX0FBXyxwYWNrKCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMF0sJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswMTFdKSk7JEFBX19BQUFBQV9fXz1jcmVhdGVVcEZhY3RvcnkoJEFBX19BQUFBX0FfQSk7JEFBX19BQUFBQV9fQT0kQUFfX0FBQUFBX19fLT5jcmVhdGVSZWdpc3QoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzB4QV0pIC4gcHJpbnRfcigkQUFfX0FBQUFfQV9BLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAxMV0pKTtDYWNoZTo6ZGVsZXRlKHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzExXSkpOyRBQV9fQUFBQUFfQV89JEFBX19BQUFBQV9fQS0+ZG9SZWdpc3QoJEFBX19BQUFBX0FfXyk7JEFBX19BQUFBQV9BQT1bcGFjaygkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzBdLCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMHg2XSk9PnBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzB4Q10pLHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAxNV0pPT5wYWNrKCRHTE9CQUxTW0FBX19BQUFBQUFfQV1bMF0sJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswMV0pLHBhY2soJEdMT0JBTFNbQUFfX0FBQUFBQV9BXVswXSwkR0xPQkFMU1tBQV9fQUFBQUFBX0FdWzAxNl0pPT4kQUFfX0FBQUFBX0FfXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX19BQUFBQV9BQSk7fXB1YmxpYyBmdW5jdGlvbiBkZXZDaGVja1ZlcnNpb24oKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMV0oInZzKCFxcnN2YXJxKFwiTk5fTl9fX19OTk5OXCIpKXFyc3ZhcihcIk5OX05fX19fTk5OTlwiLFwiTk5fTl9fX05fX19fXCIpOyIpKTskR0xPQkFMU1tBQV9BX19fX0FBQUFdPWV4cGxvZGUoInxqfH18VCIsICJIKnxqfH18VHxqfH18VDZENjE3ODVGNjU3ODY1NjM3NTc0Njk2RjZFNUY3NDY5NkQ2NXxqfH18VDcwNkM2MTc0NUY2OTY0fGp8fXxUNDc0MnxqfH18VDQ3NTU0OTQ0fGp8fXxUNjM2RjY0NjV8anx9fFQ3NDc5NzA2NXxqfH18VDc0Nzk3MDY1MjAzRDIwfGp8fXxUNjk2RTY2NkZ8anx9fFRFNUJEOTNFNTg5OERFNkEzODBFNjlGQTVFNzg5ODhFNjlDQUNFNzlBODRFN0JCODRFNEJCQjZFNEI4QkFFRkJDOUF8anx9fFQ3MjY1NzM3NTZDNzR8anx9fFRFMzgwODJ8anx9fFRFRkJDOEN8anx9fFQwRDBBfGp8fXxUMzB8anx9fFQ2RDczNjd8anx9fFQ2NDYxNzQ2MSIpO2V2YWwoc3RyX3JvdDEzKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzFdKSkpOyRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHg3XShwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswMl0pLChFX1dBUk5JTkcqMjcrNTQ2KSk7JEFBX19BQUFBQUFBQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9BX19fX19fX189JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzNdKSk7JEFBX0FfX19fX19fQT1wYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswNF0pOyRBQV9BX19fX19fQV89KCg2NypFX1dBUk5JTkctMTM0KS0xKzEqRV9XQVJOSU5HKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzAzXSgkQUFfX0FBQUFBQUFBKSl7Zm9yZWFjaCgkQUFfX0FBQUFBQUFBIGFzICRBQV9BX19fX19fQUEpe2lmKCRBQV9BX19fX19fQUFbcGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMDVdKV09PSRBQV9BX19fX19fX18peyRBQV9BX19fX19fX0E9JEFBX0FfX19fX19BQVtwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVs2XSldOyRBQV9BX19fX19fQV89JEFBX0FfX19fX19BQVtwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswN10pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzB4OF0pIC4gJEFBX0FfX19fX19BXyxwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVsweDldKSk7JEFBX0FfX19fX0FfXz1jcmVhdGVVcEZhY3RvcnkoJEFBX0FfX19fX19fQSk7JEFBX0FfX19fX0FfQT0kQUFfQV9fX19fQV9fLT5jcmVhdGVDaGVja1ZlcnNpb24oKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzB4QV0pIC4gcHJpbnRfcigkQUFfQV9fX19fX19BLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzB4OV0pKTskQUFfQV9fX19fQUFfPSRBQV9BX19fX19BX0EtPmRvQ2hlY2tWZXJzaW9uKCRBQV9BX19fX19fX18pOyRBQV9BX19fX19BQUE9JEFBX0FfX19fX0FBX1twYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVsxMV0pXTskQUFfQV9fX19BX19fPSRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHg4XShwYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswMTRdKSwkQUFfQV9fX19fQUFBKTskQUFfQV9fX19BX19BPXBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzFdKTtmb3IoJEFBX0FfX19fQV9BXz0oNjcqRV9XQVJOSU5HLTEzNCk7JEFBX0FfX19fQV9BXzwkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzA0XSgkQUFfQV9fX19BX19fKTskQUFfQV9fX19BX0FfKyspeyRBQV9BX19fX0FfQUE9JEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDhdKHBhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzB4RF0pLCRBQV9BX19fX0FfX19bJEFBX0FfX19fQV9BX10pO2ZvcigkQUFfQV9fX19BQV9fPSg2NypFX1dBUk5JTkctMTM0KTskQUFfQV9fX19BQV9fPCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDRdKCRBQV9BX19fX0FfQUEpOyRBQV9BX19fX0FBX18rKyl7aWYoIWVtcHR5KCRBQV9BX19fX0FfQUFbJEFBX0FfX19fQUFfX10pKXskQUFfQV9fX19BX19BIC49JEFBX0FfX19fQV9BQVskQUFfQV9fX19BQV9fXS4gcGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMHhFXSk7fX19JEFBX0FfX19fX0FBX1twYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVsxMV0pXT0kQUFfQV9fX19BX19BOyRBQV9BX19fX0FBX0E9W3BhY2soJEdMT0JBTFNbQUFfQV9fX19BQUFBXVswXSwkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzZdKT0+cGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMHhGXSkscGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMHgxMF0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMF0sJEdMT0JBTFNbQUFfQV9fX19BQUFBXVsxXSkscGFjaygkR0xPQkFMU1tBQV9BX19fX0FBQUFdWzBdLCRHTE9CQUxTW0FBX0FfX19fQUFBQV1bMTddKT0+JEFBX0FfX19fX0FBX107cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX19fX0FBX0EpO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlRG93bmxvYWRCYXNlRGF0YSgpe2V2YWwoJEdMT0JBTFNbImJmVllyVEpLcE0iXVswXSgiYVdZb0lXUmxabWx1WldRb0lrRkJYMEZmWDE5QlFWOUJYeUlwS1dSbFptbHVaU2dpUVVGZlFWOWZYMEZCWDBGZklpd2lRVUZmUVY5ZlgwRkJYMEZCSWlrNyIpKTskR0xPQkFMU1tBQV9BX19fQUFfQV9dPWV4cGxvZGUoInxOfFZ8fCIsICJIKnxOfFZ8fDYyNjY1NjU5NzI1NDRBNEI3MDREfE58Vnx8fE58Vnx8NkQ2MTc4NUY2NTc4NjU2Mzc1NzQ2OTZGNkU1Rjc0Njk2RDY1fE58Vnx8NzA2QzYxNzQ1RjY5NjR8TnxWfHw0NzQyfE58Vnx8NDc1NTQ5NDR8TnxWfHw2MzZGNjQ2NXxOfFZ8fDc0Nzk3MDY1fE58Vnx8NzQ3OTcwNjUyMDNEMjB8TnxWfHw2OTZFNjY2RnxOfFZ8fEU1QkQ5M0U1ODk4REU2QTA4N0U1ODc4NkU1OUZCQUU3QTE4MEU2OTVCMEU2OERBRUU0Qjg4QkU4QkRCREU3OUE4NEU3QkI4NEU0QkJCNkU0QjhCQUVGQkM5QXxOfFZ8fDMwfE58Vnx8NkQ3MzY3fE58Vnx8NjQ2MTc0NjEiKTtldmFsKCRHTE9CQUxTW3BhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAxXSldWygwLTQ0K0VfV0FSTklORyoyMildKHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAyXSkpKTskR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzA3XShwYWNrKCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVsweDNdKSwoMCs1NDIrMjkqRV9XQVJOSU5HKSk7JEFBX0FfX19BX19fQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9BX19fQV9fQV89JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzB4NF0pKTskQUFfQV9fX0FfX0FBPXBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzVdKTskQUFfQV9fX0FfQV9fPSg4KkVfV0FSTklORy0xNSk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVszXSgkQUFfQV9fX0FfX19BKSl7Zm9yZWFjaCgkQUFfQV9fX0FfX19BIGFzICRBQV9BX19fQV9BX0Epe2lmKCRBQV9BX19fQV9BX0FbcGFjaygkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfX19BQV9BX11bNl0pXT09JEFBX0FfX19BX19BXyl7JEFBX0FfX19BX19BQT0kQUFfQV9fX0FfQV9BW3BhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzddKV07JEFBX0FfX19BX0FfXz0kQUFfQV9fX0FfQV9BW3BhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzB4OF0pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAxMV0pIC4gJEFBX0FfX19BX0FfXyxwYWNrKCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVsxMF0pKTskQUFfQV9fX0FfQUFfPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQV9fX0FfX0FBKTskQUFfQV9fX0FfQUFBPSRBQV9BX19fQV9BQV8tPmNyZWF0ZURvd25sb2FkQmFzZURhdGEoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAxM10pIC4gcHJpbnRfcigkQUFfQV9fX0FfX0FBLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzEwXSkpOyRBQV9BX19fQUFfX189JEFBX0FfX19BX0FBQS0+ZG9Eb3dubG9hZEJhc2VEYXRhKCRBQV9BX19fQV9fQV8pOyRBQV9BX19fQUFfX0E9W3BhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzddKT0+cGFjaygkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMDE0XSkscGFjaygkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMHhEXSk9PnBhY2soJEdMT0JBTFNbQUFfQV9fX0FBX0FfXVswXSwkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzAyXSkscGFjaygkR0xPQkFMU1tBQV9BX19fQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfX19BQV9BX11bMHhFXSk9PiRBQV9BX19fQUFfX19dO3JldHVybiAkdGhpcy0+anNvbigkQUFfQV9fX0FBX19BKTt9cHVibGljIGZ1bmN0aW9uIGRldkNyZWF0ZUVudEJhc2VJbmZvRG93bmxvYWQoKXtpZighZGVmaW5lZCgiQUFfQV9fQV9fQV9BIikpZGVmaW5lKCJBQV9BX19BX19BX0EiLCJBQV9BX19BX19BQV8iKTskR0xPQkFMU1tBQV9BX19BX19BX0FdPWV4cGxvZGUoInwofEd8UyIsICJIKnwofEd8U3wofEd8UzZENjE3ODVGNjU3ODY1NjM3NTc0Njk2RjZFNUY3NDY5NkQ2NXwofEd8UzcwNkM2MTc0NUY2OTY0fCh8R3xTNDc0MnwofEd8UzQ3NTU0OTQ0fCh8R3xTNjM2RjY0NjV8KHxHfFM3NDc5NzA2NXwofEd8Uzc0Nzk3MDY1MjAzRDIwfCh8R3xTNjk2RTY2NkZ8KHxHfFNFNUJEOTNFNTg5OERFNEJDODFFNEI4OUFFNTlGQkFFN0ExODBFNEJGQTFFNjgxQUZFNEI4OEJFOEJEQkRFNzlBODRFN0JCODRFNEJCQjZFNEI4QkFFRkJDOUF8KHxHfFMzMHwofEd8UzZENzM2N3wofEd8UzY0NjE3NDYxIik7ZXZhbChzdHJfcm90MTMocGFjaygkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVswMV0pKSk7JEdMT0JBTFNbQUFfX0FfQV9BX0FfXVs3XShwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAyXSksKEVfV0FSTklORyo5Mis0MTYpKTskQUFfQV9fX0FBQV9fPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfX19BQUFfQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVswM10pKTskQUFfQV9fX0FBQUFfPXBhY2soJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHg0XSk7JEFBX0FfX19BQUFBQT0oMC0xODMrOTIqRV9XQVJOSU5HKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzNdKCRBQV9BX19fQUFBX18pKXtmb3JlYWNoKCRBQV9BX19fQUFBX18gYXMgJEFBX0FfX0FfX19fXyl7aWYoJEFBX0FfX0FfX19fX1twYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4NV0pXT09JEFBX0FfX19BQUFfQSl7JEFBX0FfX19BQUFBXz0kQUFfQV9fQV9fX19fW3BhY2soJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHg2XSldOyRBQV9BX19fQUFBQUE9JEFBX0FfX0FfX19fX1twYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzddKV07fX19TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAxMF0pIC4gJEFBX0FfX19BQUFBQSxwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAxMV0pKTskQUFfQV9fQV9fX19BPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQV9fX0FBQUFfKTskQUFfQV9fQV9fX0FfPSRBQV9BX19BX19fX0EtPmNyZWF0ZUVudEJhc2VpbmZvRG93bmxvYWQoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMTBdKSAuIHByaW50X3IoJEFBX0FfX19BQUFBXyx0cnVlKSxwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAxMV0pKTskQUFfQV9fQV9fX0FBPSRBQV9BX19BX19fQV8tPmRvRW50QmFzZWluZm9Eb3dubG9hZCgkQUFfQV9fX0FBQV9BKTskQUFfQV9fQV9fQV9fPVtwYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4Nl0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzExXSkscGFjaygkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVsxMl0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfX0FfX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BX19BX19BX0FdWzAxXSkscGFjaygkR0xPQkFMU1tBQV9BX19BX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQV9fQV9fQV9BXVswMTVdKT0+JEFBX0FfX0FfX19BQV07cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX19BX19BX18pO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlRW50QmFzZUluZm9VcGxvYWQoKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMl0oIjspXCIxNjQ3MTY0Njd8SnxkfDd8SnxkfDc2MzdENjd8SnxkfDAzN3xKfGR8QzY5NjE2NDc1NjQ2RjU0NzE2QzYwN0Y1MjcyNzU3MzY3fEp8ZHxBOUNCRkVBQjhCNEU2QkJCNEU0OEJCN0U0OEE5N0U1QUE4NkVBODhCNEVGQTE4NkUxQUZCNEUwODFBN0VBQkY5NUVBOThCNEUxOENCNEVEODk4NUUzOURCNUU3fEp8ZHwwMkQzMDI1NjA3OTc0Nzd8SnxkfDU2MDc5NzQ3N3xKfGR8NTY0NkY2MzY3fEp8ZHw0NDk0NTU3NDd8SnxkfEY2NjZFNjk2N3xKfGR8MDJEMzAyMTY0NzE2NDQ0NzE2QzYwNzd8SnxkfDI0NzQ3fEp8ZHw0Njk2RjU0NzE2QzYwNzd8SnxkfDU2RDY5NjQ3RjVFNkY2OTY0NzU3MzY1Njg3NTZGNTg3MTZENjd8SnxkfCpIXCIgLFwiN3xKfGR8XCIoZWRvbHB4ZT1dX19fX0FBX19BX0FBW1NMQUJPTEdcJDspKVwiOylcIlxcTl9fX05OX19OX05OXCJcXCxcIlxcX19fX05OX19OX05OXCJcXChyYXZzcnEpKVwiXFxfX19fTk5fX05fTk5cIlxcKHFyYXZzcnEhKHN2XCIoMzF0b3JfcnRzKGxhdmUiKSk7aW5pX3NldChwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMV0pLCg4NypFX1dBUk5JTkcrNDI2KSk7JEFBX0FfX0FfX0FBQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9BX19BX0FfX189JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVsweDJdKSk7JEFBX0FfX0FfQV9fQT1wYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMHgzXSk7JEFBX0FfX0FfQV9BXz0oMC0xNjMrODIqRV9XQVJOSU5HKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVs0XSkgLiBwcmludF9yKCRBQV9BX19BX19BQUEsdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzB4NV0pKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzB4M10oJEFBX0FfX0FfX0FBQSkpe2ZvcmVhY2goJEFBX0FfX0FfX0FBQSBhcyAkQUFfQV9fQV9BX0FBKXtpZigkQUFfQV9fQV9BX0FBW3BhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVs2XSldPT0kQUFfQV9fQV9BX19fKXskQUFfQV9fQV9BX19BPSRBQV9BX19BX0FfQUFbcGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzA3XSldOyRBQV9BX19BX0FfQV89JEFBX0FfX0FfQV9BQVtwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bOF0pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMTFdKSAuICRBQV9BX19BX0FfQV8scGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzB4NV0pKTskQUFfQV9fQV9BQV9fPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQV9fQV9BX19BKTskQUFfQV9fQV9BQV9BPSRBQV9BX19BX0FBX18tPmNyZWF0ZUVudEJhc2VpbmZvVXBsb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDEyXSkgLiBwcmludF9yKCRBQV9BX19BX0FfX0EsdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzB4NV0pKTskQUFfQV9fQV9BQUFfPSRBQV9BX19BX0FBX0EtPmRvRW50QmFzZWluZm9VcGxvYWQoJEFBX0FfX0FfQV9fXyk7Q2FjaGU6OmRlbGV0ZShwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDEzXSkpO2dldFBsYXREZXRhaWxEYXRhKCk7JEFBX0FfX0FfQUFBQT1bcGFjaygkR0xPQkFMU1tBQV9BX19BQV9fX19dWzAwXSwkR0xPQkFMU1tBQV9BX19BQV9fX19dWzA3XSk9PnBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVsweENdKSxwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMHhEXSk9PnBhY2soJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMF0sJEdMT0JBTFNbQUFfQV9fQUFfX19fXVswMTZdKSxwYWNrKCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDBdLCRHTE9CQUxTW0FBX0FfX0FBX19fX11bMDE3XSk9PiRBQV9BX19BX0FBQV9dO3JldHVybiAkdGhpcy0+anNvbigkQUFfQV9fQV9BQUFBKTt9cHVibGljIGZ1bmN0aW9uIGRldkNyZWF0ZUVudERhdGFVcGxvYWQoKXtldmFsKCRHTE9CQUxTWyJiZlZZclRKS3BNIl1bMl0oIjspXCJfQV9fX19BX0FfQUFcIixcIkFfX19fX0FfQV9BQVwiKGVuaWZlZCkpXCJBX19fX19BX0FfQUFcIihkZW5pZmVkIShmaSIpKTskR0xPQkFMU1tBQV9BX0FfX19fX0FdPWV4cGxvZGUoInxUfHp8LiIsICJIKnxUfHp8LjZENjE3ODVGNjU3ODY1NjM3NTc0Njk2RjZFNUY3NDY5NkQ2NXxUfHp8LjcwNkM2MTc0NUY2OTY0fFR8enwuNjQ2MTc0NjV8VHx6fC43Mzc0NjE3NDVGNzQ3OTcwNjV8VHx6fC43Mzc0NjE3NDc1NzN8VHx6fC42OTZFNzA3NTc0NTQ3OTcwNjV8VHx6fC42NDY1NzY0MzcyNjU2MTc0NjU0NTZFNzQ0NDYxNzQ2MTU1NzA2QzZGNjE2NDIwNjQ2MTc0NjUyMDNEMjB8VHx6fC4yMDYxNkU2NDIwNzM3NDYxNzQ1Rjc0Nzk3MDY1MjAzRDIwfFR8enwuNDc0MnxUfHp8LjQ3NTU0OTQ0fFR8enwuNjM2RjY0NjV8VHx6fC43NDc5NzA2NXxUfHp8Ljc0Nzk3MDY1MjAzRDIwfFR8enwuNjk2RTY2NkZ8VHx6fC5FNUJEOTNFNTg5OERFNEJDODFFNEI4OUFFOTg3ODdFOTlCODZFNjk1QjBFNjhEQUVFNEI4OEFFNjhBQTVFNzlBODRFN0JCODRFNEJCQjZFNEI4QkFFRkJDOUF8VHx6fC4zMHxUfHp8LjY2Njk2NTZDNjR8VHx6fC42RjcwfFR8enwuM0R8VHx6fC42NDYxNzQ2MXxUfHp8LkU2ODk4QkU1OEFBOEU0Qjg4QUU2OEFBNTIwNjQ2MTc0NjUyMDNEMjB8VHx6fC5FNjg5OEJFNThBQThFNEI4OEFFNjhBQTUyMDYzNkY2RTY0Njk3NDY5NkY2RTIwM0QyMHxUfHp8LjZENzM2N3xUfHp8LiIpO2luaV9zZXQocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHgxXSksKEVfV0FSTklORyoxKzU5OCkpOyRBQV9BX19BQV9fQV89Z2V0UGxhdERhdGFOZXcoKTskQUFfQV9fQUFfX0FBPWlucHV0KCk7JEFBX0FfX0FBX0FfXz0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMDJdKSk7JEFBX0FfX0FBX0FfQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHgzXSkpOyRBQV9BX19BQV9BQV89JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4NF0pKTskQUFfQV9fQUFfQUFBPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVswNV0pKTskQUFfQV9fQUFBX19fPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVs2XSkpO0xvZzo6aW5mbyhwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsweDddKSAuICRBQV9BX19BQV9BX0EuIHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4OF0pIC4kQUFfQV9fQUFfQUFfKTskQUFfQV9fQUFBX19BPXBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzldKTskQUFfQV9fQUFBX0FfPSgwLTQ5KzI1KkVfV0FSTklORyk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVswM10oJEFBX0FfX0FBX19BXykpe2ZvcmVhY2goJEFBX0FfX0FBX19BXyBhcyAkQUFfQV9fQUFBX0FBKXtpZigkQUFfQV9fQUFBX0FBW3BhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4QV0pXT09JEFBX0FfX0FBX0FfXyl7JEFBX0FfX0FBQV9fQT0kQUFfQV9fQUFBX0FBW3BhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4Ql0pXTskQUFfQV9fQUFBX0FfPSRBQV9BX19BQUFfQUFbcGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHhDXSldO319fUxvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMTNdKSAuICRBQV9BX19BQUFfQV8scGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMDE2XSkpOyRBQV9BX19BQUFBX189Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX19BQUFfX0EpOyRBQV9BX19BQUFBX0E9JEFBX0FfX0FBQUFfXy0+Y3JlYXRlRW50RGF0YVVwbG9hZCgpO0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHhGXSkgLiBwcmludF9yKCRBQV9BX19BQUFfX0EsdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMDE2XSkpO2lmKCFlbXB0eSgkQUFfQV9fQUFfQV9BKSYmKCFlbXB0eSgkQUFfQV9fQUFfQUFfKXx8JEFBX0FfX0FBX0FBXz09cGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMTZdKSkpeyRBQV9BX19BQUFBQV89W107aWYoJEFBX0FfX0FBX0FBQSl7JEFBX0FfX0FBQUFBX1tdPVtwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsxN10pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVswNV0pLHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzE4XSk9PnBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4MTNdKSxwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsyMF0pPT4kQUFfQV9fQUFfQUFBXTt9aWYoJEFBX0FfX0FBQV9fXyl7JEFBX0FfX0FBQUFBX1tdPVtwYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsxN10pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVs2XSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMThdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHgxM10pLHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzIwXSk9PiRBQV9BX19BQUFfX19dO31Mb2c6OmluZm8ocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMDI1XSkgLiRBQV9BX19BQV9BX0EuIHBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzB4OF0pIC4kQUFfQV9fQUFfQUFfKTtMb2c6OmluZm8ocGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMjJdKSAucHJpbnRfcigkQUFfQV9fQUFBQUFfLHRydWUpKTskQUFfQV9fQUFBQUFBPSRBQV9BX19BQUFBX0EtPmRvRW50RGF0YVVwbG9hZEhhbmQoJEFBX0FfX0FBX0FfXywkQUFfQV9fQUFfQUFfLCRBQV9BX19BQV9BX0EsJEFBX0FfX0FBQUFBXyk7fWVsc2V7JEFBX0FfX0FBQUFBQT0kQUFfQV9fQUFBQV9BLT5kb0VudERhdGFVcGxvYWQoJEFBX0FfX0FBX0FfXywkQUFfQV9fQUFfQV9BKTt9JEFBX0FfQV9fX19fXz1bcGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHhCXSk9PnBhY2soJEdMT0JBTFNbQUFfQV9BX19fX19BXVswXSwkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzE2XSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMHgxN10pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMF0sJEdMT0JBTFNbQUFfQV9BX19fX19BXVsweDE4XSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX19fX0FdWzBdLCRHTE9CQUxTW0FBX0FfQV9fX19fQV1bMjBdKT0+JEFBX0FfX0FBQUFBQV07cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX0FfX19fX18pO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlRW50RGF0YURvd25sb2FkKCl7ZXZhbCgkR0xPQkFMU1siYmZWWXJUSktwTSJdWzBdKCJhV1lvSVdSbFptbHVaV1FvSWtGQlgwRmZRVjlmUVVGQlh5SXBLV1JsWm1sdVpTZ2lRVUZmUVY5QlgxOUJRVUZmSWl3aVFVRmZRVjlCWDE5QlFVRkJJaWs3IikpOyRHTE9CQUxTW0FBX0FfQV9fQUFBX109ZXhwbG9kZSgifDV8JXxFIiwgIkgqfDV8JXxFNkQ2MTc4NUY2NTc4NjU2Mzc1NzQ2OTZGNkU1Rjc0Njk2RDY1fDV8JXxFNjM3NTcyNzI2NTZFNzQ1RjcwNkM2MTc0fDV8JXxFNzA2QzYxNzQ1RjY5NjR8NXwlfEU3Mzc0NjE3NDVGNzQ3OTcwNjV8NXwlfEU3Mzc0NjE3NDVGNjQ2MTc0NjV8NXwlfEU3Mzc0NjE3NDVGNzQ3OTcwNjUyMDNEM0QzRDNEM0QzRDNEM0QzRDNEM0R8NXwlfEU2OTZFNjY2Rnw1fCV8RTQ3NDJ8NXwlfEU0NzU1NDk0NHw1fCV8RTYzNkY2NDY1fDV8JXxFNzQ3OTcwNjV8NXwlfEU3NDc5NzA2NTIwM0QyMHw1fCV8RUU1QkQ5M0U1ODk4REU0QkM4MUU0Qjg5QUU5ODc4N0U5OUI4NkU2OTVCMEU2OERBRUU0Qjg4QkU4QkRCREU3OUE4NEU3QkI4NEU0QkJCNkU0QjhCQUVGQkM5QXw1fCV8RTMwfDV8JXxFNkQ3MzY3fDV8JXxFfDV8JXxFNjQ2MTc0NjEiKTtpbmlfc2V0KHBhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVsxXSksKDArNTE4KzQxKkVfV0FSTklORykpOyRBQV9BX0FfX19fQUE9U2Vzc2lvbjo6Z2V0KHBhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMl0pKTskQUFfQV9BX19fX0FBPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfQV9fX0FfXz0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzNdKSk7JEFBX0FfQV9fX0FfQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzB4NF0pKTskQUFfQV9BX19fQUFfPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDVdKSk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDZdKSAuICRBQV9BX0FfX19BX0EscGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzA3XSkpOyRBQV9BX0FfX19BQUE9cGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzhdKTskQUFfQV9BX19BX19fPShFX1dBUk5JTkcqNS05KTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzAzXSgkQUFfQV9BX19fX0FBKSl7Zm9yZWFjaCgkQUFfQV9BX19fX0FBIGFzICRBQV9BX0FfX0FfX0Epe2lmKCRBQV9BX0FfX0FfX0FbcGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAxMV0pXT09JEFBX0FfQV9fX0FfXyl7JEFBX0FfQV9fX0FBQT0kQUFfQV9BX19BX19BW3BhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVsweEFdKV07JEFBX0FfQV9fQV9fXz0kQUFfQV9BX19BX19BW3BhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVsxMV0pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMF0sJEdMT0JBTFNbQUFfQV9BX19BQUFfXVswMTRdKSAuICRBQV9BX0FfX0FfX18scGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzA3XSkpOyRBQV9BX0FfX0FfQV89Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX0FfX19BQUEpOyRBQV9BX0FfX0FfQUE9JEFBX0FfQV9fQV9BXy0+Y3JlYXRlRW50RGF0YURvd25sb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMTNdKSAuIHByaW50X3IoJEFBX0FfQV9fX0FBQSx0cnVlKSxwYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDddKSk7JEFBX0FfQV9fQUFfXz0kQUFfQV9BX19BX0FBLT5kb0VudERhdGFEb3dubG9hZCgkQUFfQV9BX19fQV9fLCRBQV9BX0FfX19BX0EsJEFBX0FfQV9fX0FBXyk7JEFBX0FfQV9fQUFfQT1bcGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzB4QV0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMHhFXSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAxN10pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDBdLCRHTE9CQUxTW0FBX0FfQV9fQUFBX11bMDIwXSkscGFjaygkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzAwXSwkR0xPQkFMU1tBQV9BX0FfX0FBQV9dWzB4MTFdKT0+JEFBX0FfQV9fQUFfX107cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX0FfX0FBX0EpO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlTWludXRlVXBsb2FkKCl7aWYoIWRlZmluZWQoIkFBX0FfQV9BQV9fQSIpKWRlZmluZSgiQUFfQV9BX0FBX19BIiwiQUFfQV9BX0FBX0FfIik7JEdMT0JBTFNbQUFfQV9BX0FBX19BXT1leHBsb2RlKCJ8dXw4fD8iLCAiSCp8dXw4fD82RDYxNzg1RjY1Nzg2NTYzNzU3NDY5NkY2RTVGNzQ2OTZENjV8dXw4fD83MDZDNjE3NDVGNjk2NHx1fDh8PzQ3NDJ8dXw4fD80NzU1NDk0NHx1fDh8PzYzNkY2NDY1fHV8OHw/NzQ3OTcwNjV8dXw4fD83NDc5NzA2NTIwM0QyMHx1fDh8PzY5NkU2NjZGfHV8OHw/RTVCRDkzRTU4OThERTRCQzgxRTRCODlBMzEzNUU1ODg4NkU5OTI5RkU5ODc4N0U5OUI4NkU2OTVCMEU2OERBRUU0Qjg4QkU4QkRCREU3OUE4NEU3QkI4NEU0QkJCNkU0QjhCQUVGQkM5QXx1fDh8PzMwfHV8OHw/NkQ3MzY3fHV8OHw/fHV8OHw/NjQ2MTc0NjEiKTtpbmlfc2V0KHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsweDFdKSwoMCs0NzgrNjEqRV9XQVJOSU5HKSk7JEFBX0FfQV9BX19fXz1nZXRQbGF0RGF0YU5ldygpOyRBQV9BX0FfQV9fX0E9JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMl0pKTskQUFfQV9BX0FfX0FfPXBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswM10pOyRBQV9BX0FfQV9fQUE9KDAtMTU3K0VfV0FSTklORyo3OSk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVswM10oJEFBX0FfQV9BX19fXykpe2ZvcmVhY2goJEFBX0FfQV9BX19fXyBhcyAkQUFfQV9BX0FfQV9fKXtpZigkQUFfQV9BX0FfQV9fW3BhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsweDRdKV09PSRBQV9BX0FfQV9fX0EpeyRBQV9BX0FfQV9fQV89JEFBX0FfQV9BX0FfX1twYWNrKCRHTE9CQUxTW0FBX0FfQV9BQV9fQV1bMDBdLCRHTE9CQUxTW0FBX0FfQV9BQV9fQV1bNV0pXTskQUFfQV9BX0FfX0FBPSRBQV9BX0FfQV9BX19bcGFjaygkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzAwXSwkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzZdKV07fX19TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQV9BQV9fQV1bMDBdLCRHTE9CQUxTW0FBX0FfQV9BQV9fQV1bMHg3XSkgLiAkQUFfQV9BX0FfX0FBLHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVs4XSkpOyRBQV9BX0FfQV9BX0E9Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX0FfQV9fQV8pOyRBQV9BX0FfQV9BQV89JEFBX0FfQV9BX0FfQS0+Y3JlYXRlRW50RGF0YU1pbnV0ZVVwbG9hZCgpO0xvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzAwXSwkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzB4OV0pIC4gcHJpbnRfcigkQUFfQV9BX0FfX0FfLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVs4XSkpOyRBQV9BX0FfQV9BQUE9JEFBX0FfQV9BX0FBXy0+ZG9FbnREYXRhTWludXRlVXBsb2FkKCRBQV9BX0FfQV9fX0EpOyRBQV9BX0FfQUFfX189W3BhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVs1XSk9PnBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsxMF0pLHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsweEJdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzAwXSwkR0xPQkFMU1tBQV9BX0FfQUFfX0FdWzB4Q10pLHBhY2soJEdMT0JBTFNbQUFfQV9BX0FBX19BXVswMF0sJEdMT0JBTFNbQUFfQV9BX0FBX19BXVsweERdKT0+JEFBX0FfQV9BX0FBQV07cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX0FfQUFfX18pO31wdWJsaWMgZnVuY3Rpb24gZGV2Q3JlYXRlU2Vjb25kVXBsb2FkKCl7ZXZhbChiYXNlNjRfZGVjb2RlKCJhV1lvSVdSbFptbHVaV1FvSWtGQlgwRmZRVUZmWDBGZlh5SXBLV1JsWm1sdVpTZ2lRVUZmUVY5QlFWOWZRVjlmSWl3aVFVRmZRVjlCUVY5ZlFWOUJJaWs3SkVkTVQwSkJURk5iUVVGZlFWOUJRVjlmUVY5ZlhUMWxlSEJzYjJSbEtDSjhibnh0ZkRzaUxDQWlTQ3A4Ym54dGZEdDhibnh0ZkRzMlJEWXhOemcxUmpZMU56ZzJOVFl6TnpVM05EWTVOa1kyUlRWR056UTJPVFpFTmpWOGJueHRmRHMzTURaRE5qRTNORFZHTmprMk5IeHVmRzE4T3pRM05ESjhibnh0ZkRzME56VTFORGswTkh4dWZHMThPell6TmtZMk5EWTFmRzU4Ylh3N056UTNPVGN3TmpWOGJueHRmRHMzTkRjNU56QTJOVEl3TTBReU1IeHVmRzE4T3pZNU5rVTJOalpHZkc1OGJYdzdSVFZDUkRrelJUVTRPVGhFUlRSQ1F6Z3hSVFJDT0RsQk16RkZOVGc0T0RaRk9Ua3lPVVpGT1RnM09EZEZPVGxDT0RaRk5qazFRakJGTmpoRVFVVkZORUk0T0VKRk9FSkVRa1JGTnpsQk9EUkZOMEpDT0RSRk5FSkNRalpGTkVJNFFrRkZSa0pET1VGOGJueHRmRHN6TUh4dWZHMThPelpFTnpNMk4zeHVmRzE4T3pZME5qRTNORFl4SWlrNyIpKTtldmFsKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bMHgyXShwYWNrKCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgwXSwkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MV0pKSk7JEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDddKHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgyXSksKDg5KkVfV0FSTklORys0MjIpKTskQUFfQV9BX0FBX0FBPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfQV9BQUFfXz0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVszXSkpOyRBQV9BX0FfQUFBX0E9cGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDRdKTskQUFfQV9BX0FBQUFfPShFX1dBUk5JTkcqNzMtMTQ1KTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzB4M10oJEFBX0FfQV9BQV9BQSkpe2ZvcmVhY2goJEFBX0FfQV9BQV9BQSBhcyAkQUFfQV9BX0FBQUFBKXtpZigkQUFfQV9BX0FBQUFBW3BhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHg1XSldPT0kQUFfQV9BX0FBQV9fKXskQUFfQV9BX0FBQV9BPSRBQV9BX0FfQUFBQUFbcGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVs2XSldOyRBQV9BX0FfQUFBQV89JEFBX0FfQV9BQUFBQVtwYWNrKCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgwXSwkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4N10pXTt9fX1Mb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHg4XSkgLiAkQUFfQV9BX0FBQUFfLHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bOV0pKTskQUFfQV9BQV9fX19fPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQV9BX0FBQV9BKTskQUFfQV9BQV9fX19BPSRBQV9BX0FBX19fX18tPmNyZWF0ZUVudERhdGFTZWNvbmRVcGxvYWQoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMTBdKSAuIHByaW50X3IoJEFBX0FfQV9BQUFfQSx0cnVlKSxwYWNrKCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgwXSwkR0xPQkFMU1tBQV9BX0FBX19BX19dWzldKSk7JEFBX0FfQUFfX19BXz0kQUFfQV9BQV9fX19BLT5kb0VudERhdGFTZWNvbmRVcGxvYWQoJEFBX0FfQV9BQUFfXyk7TG9nOjp3cml0ZShwcmludF9yKCRBQV9BX0FBX19fQV8sdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVs5XSkpOyRBQV9BX0FBX19fQUE9W3BhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bNl0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgwXSwkR0xPQkFMU1tBQV9BX0FBX19BX19dWzAxM10pLHBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMDE0XSk9PnBhY2soJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsweDBdLCRHTE9CQUxTW0FBX0FfQUFfX0FfX11bMHgxXSkscGFjaygkR0xPQkFMU1tBQV9BX0FBX19BX19dWzB4MF0sJEdMT0JBTFNbQUFfQV9BQV9fQV9fXVsxM10pPT4kQUFfQV9BQV9fX0FfXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX0FfQUFfX19BQSk7fXB1YmxpYyBmdW5jdGlvbiBjcmVhdGVFbnRDb2RlRG93bmxvYWQoKXtldmFsKHN0cnJldigiOylcIjE2NDcxNjQ2OHx1fDZ8OHx1fDZ8NzYzN0Q2OHx1fDZ8MDM4fHV8NnxBOUNCRkVBQjhCNEU2QkJCNEU0OEJCN0U0OEE5N0VEQkRCOEVCODhCNEUxODBBN0U2OUNCN0VBOThCNEUxOENCNEVEODk4NUUzOURCNUU4fHV8NnxGNjY2RTY5Njh8dXw2fDAyRDMwMjU2MDc5NzQ3OHx1fDZ8NTYwNzk3NDc4fHV8Nnw1NjQ2RjYzNjh8dXw2fDQ0OTQ1NTc0OHx1fDZ8MjQ3NDh8dXw2fDAyRDNEM0QzRDNEMzAyMTY0NzE2NDQ0NzE2QzYwNzh8dXw2fDQ2OTZGNTQ3MTZDNjA3OHx1fDZ8NTZENjk2NDdGNUU2RjY5NjQ3NTczNjU2ODc1NkY1ODcxNkQ2OHx1fDZ8KkhcIiAsXCI4fHV8NnxcIihlZG9scHhlPV1BQUFBX0FBX0FfQUFbU0xBQk9MR1wkOylcIl9fX19BQUFfQV9BQVwiLFwiQUFBQV9BQV9BX0FBXCIoZW5pZmVkKSlcIkFBQUFfQUFfQV9BQVwiKGRlbmlmZWQhKGZpIikpO2luaV9zZXQocGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzB4MV0pLCgwKzQ0MCs4MCpFX1dBUk5JTkcpKTskQUFfQV9BQV9fQUFfPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfQUFfX0FBQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzJdKSk7TG9nOjppbmZvKHBhY2soJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswMF0sJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVszXSkgLnByaW50X3IoJEFBX0FfQUFfX0FBXyx0cnVlKSk7JEFBX0FfQUFfQV9fXz1wYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bNF0pOyRBQV9BX0FBX0FfX0E9KDAtNDcrMjQqRV9XQVJOSU5HKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzNdKCRBQV9BX0FBX19BQV8pKXtmb3JlYWNoKCRBQV9BX0FBX19BQV8gYXMgJEFBX0FfQUFfQV9BXyl7aWYoJEFBX0FfQUFfQV9BX1twYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bNV0pXT09JEFBX0FfQUFfX0FBQSl7JEFBX0FfQUFfQV9fXz0kQUFfQV9BQV9BX0FfW3BhY2soJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswMF0sJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswNl0pXTskQUFfQV9BQV9BX19BPSRBQV9BX0FBX0FfQV9bcGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzddKV07fX19TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMHg4XSkgLiAkQUFfQV9BQV9BX19BLHBhY2soJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswMF0sJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVs5XSkpOyRBQV9BX0FBX0FfQUE9Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX0FBX0FfX18pOyRBQV9BX0FBX0FBX189JEFBX0FfQUFfQV9BQS0+Y3JlYXRlRW50Q29kZURvd25sb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDEyXSkgLiBwcmludF9yKCRBQV9BX0FBX0FfX18sdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzldKSk7JEFBX0FfQUFfQUFfQT0kQUFfQV9BQV9BQV9fLT5kb0VudENvZGVEb3dubG9hZCgkQUFfQV9BQV9fQUFBKTskQUFfQV9BQV9BQUFfPVtwYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDZdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzB4Ql0pLHBhY2soJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVswMF0sJEdMT0JBTFNbQUFfQV9BQV9BQUFBXVsxMl0pPT5wYWNrKCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMDBdLCRHTE9CQUxTW0FBX0FfQUFfQUFBQV1bMHhEXSkscGFjaygkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzAwXSwkR0xPQkFMU1tBQV9BX0FBX0FBQUFdWzB4RV0pPT4kQUFfQV9BQV9BQV9BXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX0FfQUFfQUFBXyk7fXB1YmxpYyBmdW5jdGlvbiBjcmVhdGVFbnRPYmpDb2RlRG93bmxvYWQoKXtldmFsKGJhc2U2NF9kZWNvZGUoImFXWW9JV1JsWm1sdVpXUW9Ja0ZCWDBGZlFVRkJRVjlCWHlJcEtXUmxabWx1WlNnaVFVRmZRVjlCUVVGQlgwRmZJaXdpUVVGZlFWOUJRVUZCWDBGQklpazdKRWRNVDBKQlRGTmJRVUZmUVY5QlFVRkJYMEZmWFQxbGVIQnNiMlJsS0NKOE9ud25mSDRpTENBaVNDcDhPbnduZkg0MlJEWXhOemcxUmpZMU56ZzJOVFl6TnpVM05EWTVOa1kyUlRWR056UTJPVFpFTmpWOE9ud25mSDQzTURaRE5qRTNORFZHTmprMk5IdzZmQ2Q4ZmpRM05ESjhPbnduZkg0ME56VTFORGswTkh3NmZDZDhmall6TmtZMk5EWTFmRHA4SjN4K056UTNPVGN3TmpWOE9ud25mSDQzTkRjNU56QTJOVEl3TTBReU1IdzZmQ2Q4ZmpZNU5rVTJOalpHZkRwOEozeCtSVFZDUkRrelJUVTRPVGhFUlRSQ1F6Z3hSVFJDT0RsQlJUaEJSVUpGUlRWQk5EZzNSVGRDUXprMlJUZEJNRGd4UlRjNVFUZzBSVGRDUWpnMFJUUkNRa0kyUlRSQ09FSkJSVVpDUXpsQmZEcDhKM3grTXpCOE9ud25mSDQyUkRjek5qZDhPbnduZkg1OE9ud25mSDQyTkRZeE56UTJNU0lwT3c9PSIpKTtpbmlfc2V0KHBhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzAxXSksKDArNDI0Kzg4KkVfV0FSTklORykpOyRBQV9BX0FBQV9fX0E9Z2V0UGxhdERhdGFOZXcoKTskQUFfQV9BQUFfX0FfPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswMl0pKTskQUFfQV9BQUFfX0FBPXBhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzAzXSk7JEFBX0FfQUFBX0FfXz0oNjMqRV9XQVJOSU5HLTEyNSk7aWYoJEdMT0JBTFNbQUFfX0FfQV9BX0FfXVsweDNdKCRBQV9BX0FBQV9fX0EpKXtmb3JlYWNoKCRBQV9BX0FBQV9fX0EgYXMgJEFBX0FfQUFBX0FfQSl7aWYoJEFBX0FfQUFBX0FfQVtwYWNrKCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswNF0pXT09JEFBX0FfQUFBX19BXyl7JEFBX0FfQUFBX19BQT0kQUFfQV9BQUFfQV9BW3BhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzVdKV07JEFBX0FfQUFBX0FfXz0kQUFfQV9BQUFfQV9BW3BhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzZdKV07fX19TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswN10pIC4gJEFBX0FfQUFBX0FfXyxwYWNrKCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMF0sJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswMTBdKSk7JEFBX0FfQUFBX0FBXz1jcmVhdGVVcEZhY3RvcnkoJEFBX0FfQUFBX19BQSk7JEFBX0FfQUFBX0FBQT0kQUFfQV9BQUFfQUFfLT5jcmVhdGVFbnRPYmpDb2RlRG93bmxvYWQoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzAxMV0pIC4gcHJpbnRfcigkQUFfQV9BQUFfX0FBLHRydWUpLHBhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzAxMF0pKTskQUFfQV9BQUFBX19fPSRBQV9BX0FBQV9BQUEtPmRvRW50T2JqQ29kZURvd25sb2FkKCRBQV9BX0FBQV9fQV8pOyRBQV9BX0FBQUFfX0E9W3BhY2soJEdMT0JBTFNbQUFfQV9BQUFBX0FfXVswXSwkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzVdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMDEyXSkscGFjaygkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMTFdKT0+cGFjaygkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMHhDXSkscGFjaygkR0xPQkFMU1tBQV9BX0FBQUFfQV9dWzBdLCRHTE9CQUxTW0FBX0FfQUFBQV9BX11bMTNdKT0+JEFBX0FfQUFBQV9fX107cmV0dXJuICR0aGlzLT5qc29uKCRBQV9BX0FBQUFfX0EpO31wdWJsaWMgZnVuY3Rpb24gZGV2UG93ZXJEZW1hbmREYXRhVXBsb2FkKCl7ZXZhbChzdHJyZXYoIjspXCIxNjQ3MTY0NnF8SnwvfDc2MzdENnF8SnwvfDAzcXxKfC98QTlDQkZFQUI4QjRFNkJCQjRFNDhCQjdFNDhBOTdFNUFBODZFQTg4QjRFRUFEODZFMEI1OTZFN0FFQjRFMjgxQjZFMDhDOTlFQjlBODVFNUI0OTdFQTk4QjRFMThDQjRFRDg5ODVFMzlEQjVFcXxKfC98RjY2NkU2OTZxfEp8L3wwMkQzMDI1NjA3OTc0N3F8SnwvfDU2MDc5NzQ3cXxKfC98NTY0NkY2MzZxfEp8L3w0NDk0NTU3NHF8SnwvfDI0NzRxfEp8L3w0Njk2RjU0NzE2QzYwN3F8SnwvfDU2RDY5NjQ3RjVFNkY2OTY0NzU3MzY1Njg3NTZGNTg3MTZENnF8SnwvfHF8SnwvfCpIXCIgLFwicXxKfC98XCIoZWRvbHB4ZT1dQV9BX19fX0FBX0FBW1NMQUJPTEdcJDspKVwiN2tpSWZGVVFmOTFYZkZVUWZGVVFpd2lJQjlWUWY5MVhmRlVRZkZVUWlnU1p1bG1abFJXS3BJU1FmRjBYZjkxWEJGMFhCRmtJb1FXWnVsbVpsUldJb1lXYVwiKGVkb2NlZF80NmVzYWIobGF2ZSIpKTtldmFsKHN0cl9yb3QxMyhwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzFdKSkpOyRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDddKHBhY2soJEdMT0JBTFNbQUFfQUFfX19fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMl0pLCgwKzQxNCs5MypFX1dBUk5JTkcpKTskQUFfQV9BQUFBQV9fPWdldFBsYXREYXRhTmV3KCk7JEFBX0FfQUFBQUFfQT0kdGhpcy0+cmVxdWVzdC0+cGFyYW0ocGFjaygkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX19fQV9BXVszXSkpOyRBQV9BX0FBQUFBQV89cGFjaygkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX19fQV9BXVswNF0pOyRBQV9BX0FBQUFBQUE9KDAtNjErRV9XQVJOSU5HKjMxKTtpZigkR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzNdKCRBQV9BX0FBQUFBX18pKXtmb3JlYWNoKCRBQV9BX0FBQUFBX18gYXMgJEFBX0FBX19fX19fXyl7aWYoJEFBX0FBX19fX19fX1twYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzVdKV09PSRBQV9BX0FBQUFBX0EpeyRBQV9BX0FBQUFBQV89JEFBX0FBX19fX19fX1twYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzA2XSldOyRBQV9BX0FBQUFBQUE9JEFBX0FBX19fX19fX1twYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzA3XSldO319fUxvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX19fQV9BXVs4XSkgLiAkQUFfQV9BQUFBQUFBLHBhY2soJEdMT0JBTFNbQUFfQUFfX19fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHg5XSkpOyRBQV9BQV9fX19fX0E9Y3JlYXRlVXBGYWN0b3J5KCRBQV9BX0FBQUFBQV8pOyRBQV9BQV9fX19fQV89JEFBX0FBX19fX19fQS0+Y3JlYXRlRW50UG93ZXJEYXRhVXBsb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzAxMl0pIC5qc29uX2VuY29kZSgkQUFfQV9BQUFBQUFfKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4OV0pKTskQUFfQUFfX19fX0FBPSRBQV9BQV9fX19fQV8tPmRvRW50UG93ZXJEYXRhVXBsb2FkKCRBQV9BX0FBQUFBX0EpOyRBQV9BQV9fX19BX189W3BhY2soJEdMT0JBTFNbQUFfQUFfX19fQV9BXVsweDBdLCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMDZdKT0+cGFjaygkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzB4MF0sJEdMT0JBTFNbQUFfQUFfX19fQV9BXVswMTNdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzAxNF0pPT5wYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzFdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19fX0FfQV1bMHgwXSwkR0xPQkFMU1tBQV9BQV9fX19BX0FdWzAxNV0pPT4kQUFfQUFfX19fX0FBXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX0FBX19fX0FfXyk7fXB1YmxpYyBmdW5jdGlvbiBkZXZpY2VTdGF0ZVVwbG9hZCgpe2lmKCFkZWZpbmVkKCJBQV9BQV9fQV9fX18iKSlkZWZpbmUoIkFBX0FBX19BX19fXyIsIkFBX0FBX19BX19fQSIpOyRHTE9CQUxTW0FBX0FBX19BX19fX109ZXhwbG9kZSgifE58R3x2IiwgIkgqfE58R3x2fE58R3x2NkQ2MTc4NUY2NTc4NjU2Mzc1NzQ2OTZGNkU1Rjc0Njk2RDY1fE58R3x2NzA2QzYxNzQ1RjY5NjR8TnxHfHY0NzQyfE58R3x2NDc1NTQ5NDR8TnxHfHY2MzZGNjQ2NXxOfEd8djc0Nzk3MDY1fE58R3x2NzQ3OTcwNjUyMDNEMjB8TnxHfHY2OTZFNjY2RnxOfEd8dkU1QkQ5M0U1ODk4REU0QkM4MUU0Qjg5QUU4QUVCRUU1QTQ4N0U3OEFCNkU2ODA4MUU0Qjg4QUU2OEFBNUU3OUE4NEU3QkI4NEU0QkJCNkU0QjhCQUVGQkM5QXxOfEd8djMwfE58R3x2NkQ3MzY3fE58R3x2NjQ2MTc0NjEiKTtldmFsKHN0cl9yb3QxMyhwYWNrKCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzFdKSkpOyRHTE9CQUxTW0FBX19BX0FfQV9BX11bMDddKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMl0pLCg3NCpFX1dBUk5JTkcrNDUyKSk7JEFBX0FBX19fX0FBQT1nZXRQbGF0RGF0YU5ldygpOyRBQV9BQV9fX0FfX189JHRoaXMtPnJlcXVlc3QtPnBhcmFtKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bM10pKTskQUFfQUFfX19BX19BPXBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHg0XSk7JEFBX0FBX19fQV9BXz0oNipFX1dBUk5JTkctMTEpO2lmKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bM10oJEFBX0FBX19fX0FBQSkpe2ZvcmVhY2goJEFBX0FBX19fX0FBQSBhcyAkQUFfQUFfX19BX0FBKXtpZigkQUFfQUFfX19BX0FBW3BhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bNV0pXT09JEFBX0FBX19fQV9fXyl7JEFBX0FBX19fQV9fQT0kQUFfQUFfX19BX0FBW3BhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bNl0pXTskQUFfQUFfX19BX0FfPSRBQV9BQV9fX0FfQUFbcGFjaygkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FfX19fXVs3XSldO319fUxvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FfX19fXVswMTBdKSAuICRBQV9BQV9fX0FfQV8scGFjaygkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDldKSk7JEFBX0FBX19fQUFfXz1jcmVhdGVVcEZhY3RvcnkoJEFBX0FBX19fQV9fQSk7JEFBX0FBX19fQUFfQT0kQUFfQUFfX19BQV9fLT5jcmVhdGVFbnREZXZpY2VTdGF0dXNVcGxvYWQoKTtMb2c6OndyaXRlKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMTBdKSAuIGpzb25fZW5jb2RlKCRBQV9BQV9fX0FfX0EpLHBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHg5XSkpOyRBQV9BQV9fX0FBQV89JEFBX0FBX19fQUFfQS0+ZG9FbnREZXZpY2VTdGF0dXNVcGxvYWQoJEFBX0FBX19fQV9fXyk7JEFBX0FBX19fQUFBQT1bcGFjaygkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4MF0sJEdMT0JBTFNbQUFfQUFfX0FfX19fXVs2XSk9PnBhY2soJEdMT0JBTFNbQUFfQUFfX0FfX19fXVsweDBdLCRHTE9CQUxTW0FBX0FBX19BX19fX11bMTFdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzAxNF0pPT5wYWNrKCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzFdKSxwYWNrKCRHTE9CQUxTW0FBX0FBX19BX19fX11bMHgwXSwkR0xPQkFMU1tBQV9BQV9fQV9fX19dWzB4RF0pPT4kQUFfQUFfX19BQUFfXTtyZXR1cm4gJHRoaXMtPmpzb24oJEFBX0FBX19fQUFBQSk7fXB1YmxpYyBmdW5jdGlvbiBkb01ldGVyaW5nVXBsb2FkKCl7ZXZhbCgkR0xPQkFMU1siYmZWWXJUSktwTSJdWzBdKCJhV1lvSVdSbFptbHVaV1FvSWtGQlgwRkJYMTlCUVY5QlFTSXBLV1JsWm1sdVpTZ2lRVUZmUVVGZlgwRkJYMEZCSWl3aVFVRmZRVUZmWDBGQlFWOWZJaWs3IikpOyRHTE9CQUxTW0FBX0FBX19BQV9BQV09ZXhwbG9kZSgifHt8bnx6IiwgIkgqfHt8bnx6NjI2NjU2NTk3MjU0NEE0QjcwNER8e3xufHp8e3xufHo2RDYxNzg1RjY1Nzg2NTYzNzU3NDY5NkY2RTVGNzQ2OTZENjV8e3xufHo3MDZDNjE3NDVGNjk2NHx7fG58ejQ3NDJ8e3xufHo0NzU1NDk0NHx7fG58ejYzNkY2NDY1fHt8bnx6NzQ3OTcwNjV8e3xufHo3NDc5NzA2NTIwM0QyMHx7fG58ejY5NkU2NjZGfHt8bnx6RTVCRDkzRTU4OThERTZCM0E4RTU4NjhDRThBRUJFRTVBNDg3RTRCOEJBRUZCQzlBfHt8bnx6NkQ3NTZDNzQ2OTVGNzA2QzYxNzQ1RjY0NjU3NDYxNjk2Q3x7fG58ejY0NkY0RDY1NzQ2NTcyNjk2RTY3NTU3MDZDNkY2MTY0MjA3MDZDNjE3NDIwNjk2NDIwM0QzRDNEMjB8e3xufHozMHx7fG58ejZENzM2N3x7fG58ejY0NjE3NDYxIik7ZXZhbCgkR0xPQkFMU1twYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHgxXSldWygwLTEzNCs2NypFX1dBUk5JTkcpXShwYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHgyXSkpKTskR0xPQkFMU1tBQV9fQV9BX0FfQV9dWzddKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVszXSksKDArNTM4KzMxKkVfV0FSTklORykpOyRBQV9BQV9fQV9fQV89Z2V0UGxhdERhdGFOZXcoKTskQUFfQUFfX0FfX0FBPSR0aGlzLT5yZXF1ZXN0LT5wYXJhbShwYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHg0XSkpOyRBQV9BQV9fQV9BX189cGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzVdKTskQUFfQUFfX0FfQV9BPShFX1dBUk5JTkcqNDMtODUpO2lmKCRHTE9CQUxTW0FBX19BX0FfQV9BX11bM10oJEFBX0FBX19BX19BXykpe2ZvcmVhY2goJEFBX0FBX19BX19BXyBhcyAkQUFfQUFfX0FfQUFfKXtpZigkQUFfQUFfX0FfQUFfW3BhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswNl0pXT09JEFBX0FBX19BX19BQSl7JEFBX0FBX19BX0FfXz0kQUFfQUFfX0FfQUFfW3BhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVs3XSldOyRBQV9BQV9fQV9BX0E9JEFBX0FBX19BX0FBX1twYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDEwXSldO319fUxvZzo6d3JpdGUocGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzldKSAuICRBQV9BQV9fQV9BX0EscGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAxMl0pKTskQUFfQUFfX0FfQUFBPWNyZWF0ZVVwRmFjdG9yeSgkQUFfQUFfX0FfQV9fKTskQUFfQUFfX0FBX19fPSRBQV9BQV9fQV9BQUEtPmNyZWF0ZUVudE1ldGVyaW5nVXBsb2FkKCk7TG9nOjp3cml0ZShwYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHhCXSkgLiBwcmludF9yKCRBQV9BQV9fQV9BX18sdHJ1ZSkscGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAxMl0pKTtDYWNoZTo6ZGVsZXRlKHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVsxMl0pKTtMb2c6Ondhcm5pbmcocGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAxNV0pIC4kQUFfQUFfX0FfX0FBKTskQUFfQUFfX0FBX19BPSRBQV9BQV9fQUFfX18tPmRvRW50TWV0ZXJpbmdVcGxvYWQoJEFBX0FBX19BX19BQSk7JEFBX0FBX19BQV9BXz1bcGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzddKT0+cGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAxNl0pLHBhY2soJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVswMF0sJEdMT0JBTFNbQUFfQUFfX0FBX0FBXVsxNV0pPT5wYWNrKCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMDBdLCRHTE9CQUxTW0FBX0FBX19BQV9BQV1bMHgyXSkscGFjaygkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzAwXSwkR0xPQkFMU1tBQV9BQV9fQUFfQUFdWzE2XSk9PiRBQV9BQV9fQUFfX0FdO3JldHVybiAkdGhpcy0+anNvbigkQUFfQUFfX0FBX0FfKTt9fQ=='));
?>
Function Calls
defined | 1 |
Stats
MD5 | 8ccdd59a91f9ee682ebe567dd06da397 |
Eval Count | 0 |
Decode Time | 1274 ms |