Find this useful? Enter your email to receive occasional updates for securing PHP code.
Signing you up...
Thank you for signing up!
PHP Decode
<?php /* * *****************************************************************************..
Decoded Output download
<?php
/* * *******************************************************************************
* The content of this file is subject to the PDF Maker license.
* ("License"); You may not use this file except in compliance with the License
* The Initial Developer of the Original Code is IT-Solutions4You s.r.o.
* Portions created by IT-Solutions4You s.r.o. are Copyright(C) IT-Solutions4You s.r.o.
* All Rights Reserved.
* ****************************************************************************** */
error_reporting(0);
function QJiBwmEDrBBydyuyOzXI($iFeGKfczGH){$r=base64_decode("YmFzZTY0X2RlY29kZSgkaUZlR0tmY3pHSCk=");return eval("return $r;");} eval('?>'.QJiBwmEDrBBydyuyOzXI('PD9waHANCiRHTE9CQUxTWyJ4ZGtpcndPaWh3Z2daZ2JRc3loUCJdPWJhc2U2NF9kZWNvZGUoIkpuSmxiR0YwWldSTmIyUjFiR1U5U1ZSVE5GbHZkVk4wZVd4bGN5WnRiMlJsUFhOb2IzZFNaV3hoZEdWa1RHbHpkQT09Iik7JEdMT0JBTFNbIm5HaUxiWmlTdmZJQ3VtU1hPUGJZIl09YmFzZTY0X2RlY29kZSgiU1ZSVE5GbHZkVk4wZVd4bGN3PT0iKTskR0xPQkFMU1sicURCZkJtSHZxVVRISUJ6RG9TUloiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFCU1QxQkZVbFJKUlZNPSIpOyRHTE9CQUxTWyJTb3VrR0dPaUtDWXp5aktseWF0diJdPWJhc2U2NF9kZWNvZGUoIkpuSmxZMjl5WkQxMCIpOyRHTE9CQUxTWyJlVU5rWG55cEVwRWdTWVJ6QllJVSJdPWJhc2U2NF9kZWNvZGUoImFXNWtaWGd1Y0dod1AyMXZaSFZzWlQxUVJFWk5ZV3RsY2laMmFXVjNQVVJsZEdGcGJDWjBaVzF3YkdGMFpXbGtQUT09Iik7JEdMT0JBTFNbIklxb3dMblFMRnN4SVBwUHdsUlpUIl09YmFzZTY0X2RlY29kZSgiUkVWVVFVbE1Wa2xGVjFSQlFnPT0iKTskR0xPQkFMU1sicXZkZlBSalRrQnRXRXBBbFd2bE4iXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bGN5OU5iMlJVY21GamEyVnlMMDF2WkZSeVlXTnJaWEl1Y0dodyIpOyRHTE9CQUxTWyJMS1NpSkhXbG5EUXVYelZqVGFDUCJdPWJhc2U2NF9kZWNvZGUoIlRXOWtWSEpoWTJ0bGNnPT0iKTskR0xPQkFMU1siZkZ0cXdieURMem1FQnJ3Z3JxamYiXT1iYXNlNjRfZGVjb2RlKCJhVzV6WlhKMElHbHVkRzhnZG5ScFoyVnlYM05sWVhSMFlXTm9iV1Z1ZEhOeVpXd2dkbUZzZFdWektEOHNQeWs9Iik7JEdMT0JBTFNbImlQQ0d5cVlVQ2dieHJjblhhYlJnIl09YmFzZTY0X2RlY29kZSgiVTFSUFVrRkhSVjlTVDA5VSIpOyRHTE9CQUxTWyJPWERDWVlUbXRIWmhHT0dpYUdiSSJdPWJhc2U2NF9kZWNvZGUoImJXOWtaUT09Iik7JEdMT0JBTFNbImtWVE9Lbmt1WEZLdVpQQk1pRUdaIl09YmFzZTY0X2RlY29kZSgiYW1GMllYTmpjbWx3ZERwRmVIQnZjblJVWlcxd2JHRjBaWE1vS1RzPSIpOyRHTE9CQUxTWyJLenl4UHpXakpkZVlLTHpCSkpmaCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMFZZVUU5U1ZBPT0iKTskR0xPQkFMU1siRmNSdEZYdExwcFNBcERISUpQWUgiXT1iYXNlNjRfZGVjb2RlKCJhVzVrWlhndWNHaHdQMjF2WkhWc1pUMVFSRVpOWVd0bGNpWjJhV1YzUFVsdGNHOXlkRkJFUmxSbGJYQnNZWFJsIik7JEdMT0JBTFNbInBOaVJJbUxmR0RCR1BCb2dPeHpUIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwbE5VRTlTVkE9PSIpOyRHTE9CQUxTWyJLcWp1c2FaSFJBcHF2Yk1xeVpGTyJdPWJhc2U2NF9kZWNvZGUoIlRFbFRWRlpKUlZjPSIpOyRHTE9CQUxTWyJua01jWUNCR3hJQVFGZVdLVk1mUiJdPWJhc2U2NF9kZWNvZGUoImFtRjJZWE5qY21sd2REcFFSRVpOWVd0bGNsOU1hWE4wU25NdWJXRnpjMFJsYkdWMFpWUmxiWEJzWVhSbGN5Z3BPdz09Iik7JEdMT0JBTFNbIm9VTENoUWxRT2pWQURudEFCUWsiXT1iYXNlNjRfZGVjb2RlKCJURWxUVkZaSlJWZFRSVlJVU1U1SCIpOyRHTE9CQUxTWyJQZ0lyZ09PWExpZXFDWGZzTXNrUCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMU5VV1V4RlUxOU1TVk5VIik7JEdMT0JBTFNbIk1pU0hSbVNieklSaFZZTFJlanVtIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxSkZRMDlTUkZOZlRFbFRWQT09Iik7JEdMT0JBTFNbInpIYkJwbnlmSm9wTGhGVFBjekZ4Il09YmFzZTY0X2RlY29kZSgiVTBsRVJVSkJVbGRKUkVkRlZBPT0iKTskR0xPQkFMU1siVUJzWEtvRmhuV29IYlZybWpOU2siXT1iYXNlNjRfZGVjb2RlKCJVMGxFUlVKQlVreEpUa3M9Iik7JEdMT0JBTFNbImhSTE11d3ZFekRWS0xtcnlleU1GIl09YmFzZTY0X2RlY29kZSgiYkdsdWEybGpiMjQ9Iik7JEdMT0JBTFNbIlVpbVlXY2x0VVBoZUpWaVJnU2pHIl09YmFzZTY0X2RlY29kZSgiYkdsdWEzVnliQT09Iik7JEdMT0JBTFNbInJrR0ppaHdkQ3FQQ2dZa2Z1d1JLIl09YmFzZTY0X2RlY29kZSgiYkdsdWEyeGhZbVZzIik7JEdMT0JBTFNbIkdRSXJQRnlqcXhIdExmSlZUaE9qIl09YmFzZTY0X2RlY29kZSgiYkdsdWEzUjVjR1U9Iik7JEdMT0JBTFNbImFhVlNuZ2Z5S0hMUWd4WnZ3clkiXT1iYXNlNjRfZGVjb2RlKCJNQT09Iik7JEdMT0JBTFNbImFseU5qYkhBYXRFWkJNbHpxVkhuIl09YmFzZTY0X2RlY29kZSgiVTJWeWRtbGpaWE09Iik7JEdMT0JBTFNbIlVFclhFU1ZnaVhFVGJNYVVzQXZtIl09YmFzZTY0X2RlY29kZSgiTENBPSIpOyRHTE9CQUxTWyJ6TW9CZXN1ZGVQTXN0blB6VFJadSJdPWJhc2U2NF9kZWNvZGUoIlVISnZaSFZqZEhNPSIpOyRHTE9CQUxTWyJNYnRKaVB2VFVreGtMZlF5YU9aQSJdPWJhc2U2NF9kZWNvZGUoImNHUm1iV0ZyWlhKZmJYQmtabDl3YjNOMGNISnZZMlZ6YzJsdVp3PT0iKTskR0xPQkFMU1siUlppWkhYdHpYWlBseGFMeWdnSFYiXT1iYXNlNjRfZGVjb2RlKCJjRzl6ZEhCeWIyTmxjM05wYm1jdWNHaHciKTskR0xPQkFMU1siVGZKVlN4WHh6YU1IQkx6aExiYXkiXT1iYXNlNjRfZGVjb2RlKCJjR1JtYldGclpYSmZiWEJrWmw5d2NtVndjbTlqWlhOemFXNW4iKTskR0xPQkFMU1siblZoblV0dUFSUExicGxqc2N4YVkiXT1iYXNlNjRfZGVjb2RlKCJjSEpsY0hKdlkyVnpjMmx1Wnk1d2FIQT0iKTskR0xPQkFMU1siQ2pMUFluRHZHZklxRkxGTVV2WEgiXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bGN5OVFSRVpOWVd0bGNpOXlaWE52ZFhKalpYTXZiWEJrWmw5d2NtOWpaWE56YVc1bkx3PT0iKTskR0xPQkFMU1sia3haeEhRR3lDWnpodGVwV253RSJdPWJhc2U2NF9kZWNvZGUoImNHOXpkQT09Iik7JEdMT0JBTFNbImVKVUxiSWNBZEJ4WklMc3JOakEiXT1iYXNlNjRfZGVjb2RlKCJjSEpsIik7JEdMT0JBTFNbIlVsY1BqUFBSZ05LWXR0SmpVUnBMIl09YmFzZTY0X2RlY29kZSgiZFhObGNsOXdjbWwyYVd4bFoyVnpMM05vWVhKcGJtZGZjSEpwZG1sc1pXZGxjMTg9Iik7JEdMT0JBTFNbIkZMSW92eFZlcHZyUEZlbFVIR2dnIl09YmFzZTY0X2RlY29kZSgiTG5Cb2NBPT0iKTskR0xPQkFMU1siellBVXhNa2NVanFVaW5HdWtQSHUiXT1iYXNlNjRfZGVjb2RlKCJkWE5sY2w5d2NtbDJhV3hsWjJWekwzVnpaWEpmY0hKcGRtbHNaV2RsYzE4PSIpOyRHTE9CQUxTWyJsWE5zRWZVUWFZUm51elZCR0xQWSJdPWJhc2U2NF9kZWNvZGUoIlpHVnVhV1ZrTG1kcFpnPT0iKTskR0xPQkFMU1sibFJsa0xTQXlNcE9oWm5lQlhKQWwiXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgyRjFkR2hsYm5ScFkyRjBaV1JmZFhObGNsOTBhR1Z0WlE9PSIpOyRHTE9CQUxTWyJ3dG9Vekd1ZmZHa25pc211ZXFWdyJdPWJhc2U2NF9kZWNvZGUoImJHRjViM1YwY3k5Mk55OXRiMlIxYkdWekwxQkVSazFoYTJWeUwzSmxjMjkxY21ObGN5OVFSRVpOWVd0bGNrRmpkR2x2Ym5NdWFuTT0iKTskR0xPQkFMU1sidkhnR2NrVUpjTGtGemN1T0phTWIiXT1iYXNlNjRfZGVjb2RlKCJVRVJHVFdGclpYSktVdz09Iik7JEdMT0JBTFNbImltTWhaTVdQQmhCcGljUndMWnhxIl09YmFzZTY0X2RlY29kZSgiU0VWQlJFVlNVME5TU1ZCVSIpOyRHTE9CQUxTWyJ1TU9naElJVVhIZ2hta1pWQSJdPWJhc2U2NF9kZWNvZGUoImJHbHVhMmxrIik7JEdMT0JBTFNbIkliV0FTemlIWVVWVnBFVnNJIl09YmFzZTY0X2RlY29kZSgiYlc5a2RXeGxQVkJFUmsxaGEyVnlKbUZqZEdsdmJqMVFSRVpOWVd0bGNrRnFZWGdtWm1sc1pUMW5aWFJRUkVaQlkzUnBiMjV6Sm5KbFkyOXlaRDBrVWtWRFQxSkVKQT09Iik7JEdMT0JBTFNbIkNtZUdQUVJkcWVnYkFnYVVydkVPIl09YmFzZTY0X2RlY29kZSgiUkVWVVFVbE1Wa2xGVjFkSlJFZEZWQT09Iik7JEdMT0JBTFNbIk1welNac1JxdXVWc0N1RnVwQUtyIl09YmFzZTY0X2RlY29kZSgiYW1GMllYTmpjbWx3ZERwUVJFWk5ZV3RsY2w5QlkzUnBiMjV6WDBwekxtZGxkRkJFUmt4cGMzUldhV1YzVUc5d2RYQXlLSFJvYVhNc0p5Uk5UMFJWVEVVa0p5azciKTskR0xPQkFMU1siRGFOZHJGcmJydVV4QldGVmFjIl09YmFzZTY0X2RlY29kZSgiVUVSR0lFVjRjRzl5ZEE9PSIpOyRHTE9CQUxTWyJIWGZrWWtCWVNBamdYYVptUlpoUiJdPWJhc2U2NF9kZWNvZGUoIlRFbFRWRlpKUlZkTlFWTlRRVU5VU1U5TyIpOyRHTE9CQUxTWyJHWkhFRFFYbFN4dkJDR3FrZkVJcSJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsUFZCRVJrMWhhMlZ5Sm5acFpYYzlSMlYwVUVSR1FXTjBhVzl1Y3laeVpXTnZjbVE5SkZKRlEwOVNSQ1E9Iik7JEdMT0JBTFNbIlZWQ3FERm9LSHpIREFBbWVEcGNsIl09YmFzZTY0X2RlY29kZSgiUkVWVVFVbE1Wa2xGVjFOSlJFVkNRVkpYU1VSSFJWUT0iKTskR0xPQkFMU1siSkJIU3VFd3NnVndxTmpuaHhqYkwiXT1iYXNlNjRfZGVjb2RlKCJkblJzYVdJdlZuUnBaMlZ5TDAxdlpIVnNaUzV3YUhBPSIpOyRHTE9CQUxTWyJYQkRjQ05vWGhUSmtDUEtzZWhqdiJdPWJhc2U2NF9kZWNvZGUoImFtRjJZWE5qY21sd2REcG5aWFJRUkVaTWFYTjBWbWxsZDFCdmNIVndNaWgwYUdsekxDY2tUVTlFVlV4RkpDY3BPdz09Iik7JEdMT0JBTFNbIlNIbFJDTkx6R3RDR3lIaGhldExsIl09YmFzZTY0X2RlY29kZSgiTVE9PSIpOyRHTE9CQUxTWyJOVWlIR09KYUZtRE9xa3ZEVlhMTCJdPWJhc2U2NF9kZWNvZGUoImRuUnNhV0l2Vm5ScFoyVnlMMHhwYm1zdWNHaHciKTskR0xPQkFMU1siTU90VFVtblh3UnpOTldLZGtjIl09YmFzZTY0X2RlY29kZSgiTkE9PSIpOyRHTE9CQUxTWyJFTGtkV25YbnRselpvTWVLWWluVSJdPWJhc2U2NF9kZWNvZGUoIkxRPT0iKTskR0xPQkFMU1sibFJCenZ6QlNFUWtKeGRCSXRiZyJdPWJhc2U2NF9kZWNvZGUoIkxBPT0iKTskR0xPQkFMU1siSnhuZWJ5amRGaWRYZFZ6TnFuRWIiXT1iYXNlNjRfZGVjb2RlKCJMdz09Iik7JEdMT0JBTFNbImlLTHlTaEZRbHBqbUpwRmZhb2VjIl09YmFzZTY0X2RlY29kZSgiSUE9PSIpOyRHTE9CQUxTWyJFc3NYR2xFUlJtY3BSS0xiaVZzeSJdPWJhc2U2NF9kZWNvZGUoIkpFTlNTVVJZSkE9PSIpOyRHTE9CQUxTWyJGSWVjclRDdlphRHNmUWxKYXNVYyJdPWJhc2U2NF9kZWNvZGUoImJXMGlJQzgrIik7JEdMT0JBTFNbImZCRFN2dkxtWW9vT1BpcVlGcVZGIl09YmFzZTY0X2RlY29kZSgiYlcwaUlHMWhjbWRwYmkxbWIyOTBaWEk5SWc9PSIpOyRHTE9CQUxTWyJyZ0VNdURobm1XdGlmYmRBRVhaQyJdPWJhc2U2NF9kZWNvZGUoImJXMGlJRzFoY21kcGJpMTBiM0E5SWpCdGJTSWdiV0Z5WjJsdUxXSnZkSFJ2YlQwaU1HMXRJaUJ0WVhKbmFXNHRhR1ZoWkdWeVBTST0iKTskR0xPQkFMU1sidklpd3p3VHdpQ2NzWUNaelZ1enciXT1iYXNlNjRfZGVjb2RlKCJiVzBpSUcxaGNtZHBiaTF5YVdkb2REMGkiKTskR0xPQkFMU1siWkpCZEdPSU9vYXBheHFZa2t0aVgiXT1iYXNlNjRfZGVjb2RlKCJJaUJ0WVhKbmFXNHRiR1ZtZEQwaSIpOyRHTE9CQUxTWyJPREFMY0dMenB0VGdsdnZkcHNvRSJdPWJhc2U2NF9kZWNvZGUoIklpQnZjbWxsYm5SaGRHbHZiajBpIik7JEdMT0JBTFNbImFXZ2NsWmxPVm9rYU5rZUdaTGlvIl09YmFzZTY0X2RlY29kZSgiUEhCaFoyVmljbVZoYXlCemFHVmxkQzF6YVhwbFBTST0iKTskR0xPQkFMU1siR1FJV1FFUENwZExLZHlaUmRtQ28iXT1iYXNlNjRfZGVjb2RlKCJSWFpsYm5SeiIpOyRHTE9CQUxTWyJXWXFnWUhyTlpzZVZTVHh6dWRuTCJdPWJhc2U2NF9kZWNvZGUoIlZHRnphdz09Iik7JEdMT0JBTFNbIklnQUhQZUlEWWpzVEttSG5OdWZVIl09YmFzZTY0X2RlY29kZSgiWVdOMGFYWnBkSGwwZVhCbCIpOyRHTE9CQUxTWyJnVkpDZ3hKTUtldERFR1h4c3JmUSJdPWJhc2U2NF9kZWNvZGUoIlEyRnNaVzVrWVhJPSIpOyRHTE9CQUxTWyJmeGt4S3dJU1dHWUdLdXZEVlB5cyJdPWJhc2U2NF9kZWNvZGUoImRHRmlhV1E9Iik7JEdMT0JBTFNbImFGaXdhQktDdFdmS3phZ3lvV1NOIl09YmFzZTY0X2RlY29kZSgiZEdGaWJHRmlaV3c9Iik7JEdMT0JBTFNbIkJvV3VCZmF2S3FKeGVMZ0N1TEEiXT1iYXNlNjRfZGVjb2RlKCJibUZ0WlE9PSIpOyRHTE9CQUxTWyJudmlQTEhYY3htZWVyWUFscUhLZCJdPWJhc2U2NF9kZWNvZGUoIk1qZz0iKTskR0xPQkFMU1siSVNKWHVmaGJrR1hLdnFlSEtRTHQiXT1iYXNlNjRfZGVjb2RlKCJNVEE9Iik7JEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl09YmFzZTY0X2RlY29kZSgiIik7JEdMT0JBTFNbIldXTWNLenhhVHdQb3N1VnJkaGZIIl09YmFzZTY0X2RlY29kZSgiYVhOZlpHVm1ZWFZzZEE9PSIpOyRHTE9CQUxTWyJZcUt5TWtPaFZSV2h2aHZJVFBBIl09YmFzZTY0X2RlY29kZSgiSm01aWMzQTdKbTVpYzNBNyIpOyRHTE9CQUxTWyJNd2NYaFBOZFNweXVQbGhWY00iXT1iYXNlNjRfZGVjb2RlKCJJaUJoYkhROUlubGxjeUlnTHo0PSIpOyRHTE9CQUxTWyJyRFNDa3FhSEhzVEtpdm56dmVIcSJdPWJhc2U2NF9kZWNvZGUoIklpQmhiSFE5SW01dklpQXZQZz09Iik7JEdMT0JBTFNbIkVibFJ0TUNuQU1lZWlNRlFBd3BCIl09YmFzZTY0X2RlY29kZSgiSm01aWMzQTdQR2x0WnlCemNtTTlJZz09Iik7JEdMT0JBTFNbIkZFZFVqeHZmY25Ud0R3a21SZm8iXT1iYXNlNjRfZGVjb2RlKCJVRVJHVFdGclpYST0iKTskR0xPQkFMU1siUXJzSnZDeVNWT1paTnlKeVh2bUIiXT1iYXNlNjRfZGVjb2RlKCJjMmhoY21sdVp3PT0iKTskR0xPQkFMU1siSHZlcG9MSXlPaW5hcmhVRUFoUHciXT1iYXNlNjRfZGVjb2RlKCJjMmhoY21sdVozUjVjR1U9Iik7JEdMT0JBTFNbIlhTYktXakhXWVBDSUF5Q2lEdHJPIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwUkZURVZVUlE9PSIpOyRHTE9CQUxTWyJKQmJrdkVYRUR5bHNBemx3TXl6aCJdPWJhc2U2NF9kZWNvZGUoIlpXUnBkQT09Iik7JEdMT0JBTFNbIkdYbE52aERZbUNHc1dmcUxNenBQIl09YmFzZTY0X2RlY29kZSgiWm1sc1pXNWhiV1U9Iik7JEdMT0JBTFNbIkViWElhd3FuSERiRFBQcHhYUnAiXT1iYXNlNjRfZGVjb2RlKCJaR1Z6WTNKcGNIUnBiMjQ9Iik7JEdMT0JBTFNbIklhbEhrVUl6UUlWSVZOVUtkQSJdPWJhc2U2NF9kZWNvZGUoImMzUmhkSFZ6WDJ4aWJBPT0iKTskR0xPQkFMU1siR2ZnQk9FY2lEVlFtVGpQeGNjd2MiXT1iYXNlNjRfZGVjb2RlKCJjMlZoY21Ob1gzTjBZWFIxY3c9PSIpOyRHTE9CQUxTWyJBZlR6eXRqTXNQdEtaUmtFVVBZWSJdPWJhc2U2NF9kZWNvZGUoImIzSmtaWEk9Iik7JEdMT0JBTFNbImp2TlVadUFyRGxEYlZzREtLTmpUIl09YmFzZTY0X2RlY29kZSgiYzNSaGRIVnoiKTskR0xPQkFMU1siTFpSRnJUQ3VLcFhSV0NjU3ZqSnYiXT1iYXNlNjRfZGVjb2RlKCJjMlZoY21Ob1h3PT0iKTskR0xPQkFMU1siZGlFekRqT1Bsb2JLSEZUYWIiXT1iYXNlNjRfZGVjb2RlKCJiM2R1WlhJPSIpOyRHTE9CQUxTWyJtV3pIT1VJd1dvc2tDTld1SERPRSJdPWJhc2U2NF9kZWNvZGUoImRHVnRjR3hoZEdWcFpBPT0iKTskR0xPQkFMU1siTndranFra2JkbUJDV1pSd0tHQnoiXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bCIpOyRHTE9CQUxTWyJScEZieFVQV3FoWldWVGlwem5QRCJdPWJhc2U2NF9kZWNvZGUoImRYQnNiMkZrUkdseSIpOyRHTE9CQUxTWyJ1bktDU2Zod1dCbkpEU2JHUVZiYiJdPWJhc2U2NF9kZWNvZGUoImRYQnNiMkZrVlZKTSIpOyRHTE9CQUxTWyJnSkNRcENkRkVMVGF1ZlFwQ2NwQSJdPWJhc2U2NF9kZWNvZGUoIlMwTkdTVTVFUlZJPSIpOyRHTE9CQUxTWyJlZ3h2bXhiemFFVmlhTEZWSWpsRSJdPWJhc2U2NF9kZWNvZGUoIllXTmpiM1Z1ZEE9PSIpOyRHTE9CQUxTWyJSS0hxdEh4QXFvZFdFclJURXp2YiJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5amIyMWZkblJwWjJWeVgzZHZjbXRtYkc5M0wxWlVWMjl5YTJac2IzZFZkR2xzY3k1d2FIQT0iKTskR0xPQkFMU1siTW5xU1dBSnlhYkxraWdqaURlR2ciXT1iYXNlNjRfZGVjb2RlKCJhVzVqYkhWa1pTOVhaV0p6WlhKMmFXTmxjeTlXZEdsblpYSlhaV0p6WlhKMmFXTmxUMkpxWldOMExuQm9jQT09Iik7JEdMT0JBTFNbIkZYQlJ4WUJPUmVFcWJLakhBZkxpIl09YmFzZTY0X2RlY29kZSgiYVc1amJIVmtaUzlYWldKelpYSjJhV05sY3k5RmJuUnBkSGxOWlhSaExuQm9jQT09Iik7JEdMT0JBTFNbImJ2ekhhaktOb2hTZnFwVm9jSHpQIl09YmFzZTY0X2RlY29kZSgiYVc1amJIVmtaUzlYWldKelpYSjJhV05sY3k5WFpXSnpaWEoyYVdObFJtbGxiR1F1Y0dodyIpOyRHTE9CQUxTWyJkZE1wV2RmelhiR3ZqaVFLdVZuciJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5WFpXSnpaWEoyYVdObGN5OVZjR1JoZEdVdWNHaHciKTskR0xPQkFMU1sieVBhbW5YU2JoeWZOeGd2ZkFjcEwiXT1iYXNlNjRfZGVjb2RlKCJhVzVqYkhWa1pTOVhaV0p6WlhKMmFXTmxjeTlTWlhSeWFXVjJaUzV3YUhBPSIpOyRHTE9CQUxTWyJ1Q0ROTEV4amJDcVZCS0xwZXVRTCJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5WFpXSnpaWEoyYVdObGN5OU5iMlIxYkdWVWVYQmxjeTV3YUhBPSIpOyRHTE9CQUxTWyJ3WURueERiUlJCenpKdk9jVlNBUCJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5MWRHbHNjeTkxZEdsc2N5NXdhSEE9Iik7JEdMT0JBTFNbIlVSUFl2SW9TSm1kWllSS0xBU2FzIl09YmFzZTY0X2RlY29kZSgiYVc1amJIVmtaUzlYWldKelpYSjJhV05sY3k5VmRHbHNjeTV3YUhBPSIpOyRHTE9CQUxTWyJSU1JUV09NbEZRTUJCS0VaWnd6RiJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5amIyMWZkblJwWjJWeVgzZHZjbXRtYkc5M0wxWlVSVzUwYVhSNVEyRmphR1V1YVc1aiIpOyRHTE9CQUxTWyJFekJNRXRpVGRCS3dGcElublB2bSJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5bGRtVnVkSE12VTNGc1VtVnpkV3gwU1hSbGNtRjBiM0l1YVc1aiIpOyRHTE9CQUxTWyJseHZoZEpBQ0pjeEJobVJNSVpjZSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSWdWMGhGVWtVZ2RHVnRjR3hoZEdWcFpDQTlJRDhnUVU1RUlHUmxiR1YwWldRZ1BTQS8iKTskR0xPQkFMU1siTWFBU0JYbXJtYkRKZ2h1SVRKbm0iXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlDb2dSbEpQVFNCamIyMWZkblJwWjJWeVgzZHZjbXRtYkc5M1gzUmhjMnQwZVhCbGN5QlhTRVZTUlNCMFlYTnJkSGx3Wlc1aGJXVWdQU0EvIik7JEdMT0JBTFNbImlJTnJjZlRYUEdJaE1lZERJdVBEIl09YmFzZTY0X2RlY29kZSgiTG5Sd2JBPT0iKTskR0xPQkFMU1sid0FMWHN5QnV6VmNiU1pobmFQSG8iXT1iYXNlNjRfZGVjb2RlKCJiR0Y1YjNWMGN5OTJOeTl0YjJSMWJHVnpMMU5sZEhScGJtZHpMMWR2Y210bWJHOTNjeTlVWVhOcmN5OD0iKTskR0xPQkFMU1siWnJjZXN4dnBHcGtiZmJNZnJJc3EiXT1iYXNlNjRfZGVjb2RlKCJMbWx1WXc9PSIpOyRHTE9CQUxTWyJyZ09FTGJqaFRDTk1nbVR3Z3liSSJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5amIyMWZkblJwWjJWeVgzZHZjbXRtYkc5M0wzUmhjMnR6THc9PSIpOyRHTE9CQUxTWyJXRm1jTVdhZEdweWFkWFJYd0tNWCJdPWJhc2U2NF9kZWNvZGUoIlJHOWpkVzFsYm5SeiIpOyRHTE9CQUxTWyJhWmd0UFJvanZYd0xQVkFLUEdRQiJdPWJhc2U2NF9kZWNvZGUoIlZWQkVRVlJGSUhaMGFXZGxjbDl1YjNSbGN5QlRSVlFnWm1sc1pYTnBlbVU5UHl3Z1ptbHNaVzVoYldVOVB5QlhTRVZTUlNCdWIzUmxjMmxrUFQ4PSIpOyRHTE9CQUxTWyJJcEpxeFBRaFdDclNWcmhlRGZ5ZSJdPWJhc2U2NF9kZWNvZGUoImFXNXpaWEowSUdsdWRHOGdkblJwWjJWeVgyRjBkR0ZqYUcxbGJuUnpLR0YwZEdGamFHMWxiblJ6YVdRc0lHNWhiV1VzSUdSbGMyTnlhWEIwYVc5dUxDQjBlWEJsTENCd1lYUm9LU0IyWVd4MVpYTW9QeXdnUHl3Z1B5d2dQeXdnUHlrPSIpOyRHTE9CQUxTWyJGQ1VzaXlGS2JEdkpHblhFTmhFZCJdPWJhc2U2NF9kZWNvZGUoImFXNXpaWEowSUdsdWRHOGdkblJwWjJWeVgyTnliV1Z1ZEdsMGVTQW9ZM0p0YVdRc2MyMWpjbVZoZEc5eWFXUXNjMjF2ZDI1bGNtbGtMSE5sZEhsd1pTeGtaWE5qY21sd2RHbHZiaXhqY21WaGRHVmtkR2x0WlN4dGIyUnBabWxsWkhScGJXVXBJSFpoYkhWbGN5Zy9MQ0EvTENBL0xDQS9MQ0EvTENBL0xDQS9LUT09Iik7JEdMT0JBTFNbIkhhVE5PUktGcFlCbHl5amFNRUxwIl09YmFzZTY0X2RlY29kZSgiUkc5amRXMWxiblJ6SUVGMGRHRmphRzFsYm5RPSIpOyRHTE9CQUxTWyJPd0hIS2FpRGVpb2pXdE90WUJXSiJdPWJhc2U2NF9kZWNvZGUoIllYQndiR2xqWVhScGIyNHZjR1JtIik7JEdMT0JBTFNbIkdrSGNST2lOQ1ppR1FvUVF5dmNBIl09YmFzZTY0X2RlY29kZSgiTG5Ca1pnPT0iKTskR0xPQkFMU1siUk5xS0hSQ2NaTW9vRVBsT0pZdGkiXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgyTnliV1Z1ZEdsMGVRPT0iKTskR0xPQkFMU1siaGNsb3JsTnF1TE9CWXZFekt6dXIiXT1iYXNlNjRfZGVjb2RlKCJZWE56YVdkdVpXUmZkWE5sY2w5cFpBPT0iKTskR0xPQkFMU1sicmNySktMU0ZyU1J0R25udWZST0kiXT1iYXNlNjRfZGVjb2RlKCJXUzF0TFdRZ1NEcHBPbk09Iik7JEdMT0JBTFNbIlhKcWNzeHlqQ0VURlVjeHNGdE9PIl09YmFzZTY0X2RlY29kZSgiYzNNPSIpOyRHTE9CQUxTWyJrb1hDdEdzUnFaUk1mbFFUVWdwYyJdPWJhc2U2NF9kZWNvZGUoImNnPT0iKTskR0xPQkFMU1siQWNTSFRmbmloRVh0ZU5RUmtLSGsiXT1iYXNlNjRfZGVjb2RlKCJaQT09Iik7JEdMT0JBTFNbInhSV1VCdmlCcUl1R0NCRkVocmpGIl09YmFzZTY0X2RlY29kZSgiYmc9PSIpOyRHTE9CQUxTWyJYZlR4bkRETXNESkRhSUhra0RPTiJdPWJhc2U2NF9kZWNvZGUoImRRPT0iKTskR0xPQkFMU1siYnR2d3lKZ0RxS3Z2RmlIWGJoSSJdPWJhc2U2NF9kZWNvZGUoImJ3PT0iKTskR0xPQkFMU1sielNkUFRxakFmSFZQaEVta2VSQk8iXT1iYXNlNjRfZGVjb2RlKCJaUT09Iik7JEdMT0JBTFNbImRmV3RVV3RFV0NoVkR1V2tZYXZIIl09YmFzZTY0X2RlY29kZSgiYVE9PSIpOyRHTE9CQUxTWyJlenptaXd2ZldmYUNFT09hZmxxZyJdPWJhc2U2NF9kZWNvZGUoIllRPT0iKTskR0xPQkFMU1siVHVIckxUYmtNbVZvRVRocVlDTGoiXT1iYXNlNjRfZGVjb2RlKCJlUT09Iik7JEdMT0JBTFNbIk5NcUJpWWJ2aFVXWHZ6bFFYVWJBIl09YmFzZTY0X2RlY29kZSgiZWc9PSIpOyRHTE9CQUxTWyJoWmFXR01oVEx6dGhYTnVkdVhVeiJdPWJhc2U2NF9kZWNvZGUoImRBPT0iKTskR0xPQkFMU1siZGRrTkdVS2hjaGZMSmd6ZFpGQ1EiXT1iYXNlNjRfZGVjb2RlKCJZdz09Iik7JEdMT0JBTFNbInVncVBZb2JQUU1WUVd0VUFjd2pOIl09YmFzZTY0X2RlY29kZSgiY3c9PSIpOyRHTE9CQUxTWyJxamlXbVBVaHdxTkhlRU9hWW9sZSJdPWJhc2U2NF9kZWNvZGUoImJBPT0iKTskR0xPQkFMU1siU0haRUxUc2NWUXJyd2l4aGd4b2wiXT1iYXNlNjRfZGVjb2RlKCJMUT09Iik7JEdMT0JBTFNbIlJRaW5sUXJEYkNXR3N2cnlHTURFIl09YmFzZTY0X2RlY29kZSgidzU4PSIpOyRHTE9CQUxTWyJOaHdpRlVCZ3V0UmFOUU9VQVBYayJdPWJhc2U2NF9kZWNvZGUoIndyQT0iKTskR0xPQkFMU1sielJzSEJMZk5mdFBBRU5tVVpBalYiXT1iYXNlNjRfZGVjb2RlKCJJZz09Iik7JEdMT0JBTFNbIkZXR1REbFZaeXNHQXFRU09DY00iXT1iYXNlNjRfZGVjb2RlKCJ4STQ9Iik7JEdMT0JBTFNbIm1Wa3ZtaGpkc2xvVXNqdWpEZXpiIl09YmFzZTY0X2RlY29kZSgidzVvPSIpOyRHTE9CQUxTWyJ3b0RISWdjYXZERFJkRHZZU2VlSSJdPWJhc2U2NF9kZWNvZGUoInc1TT0iKTskR0xPQkFMU1siSU56cmtjWHN1TGxtaXZYVkpBbWMiXT1iYXNlNjRfZGVjb2RlKCJ3NGs9Iik7JEdMT0JBTFNbInNqbXZ5RWFPYXNYWkFzdHZZeWVVIl09YmFzZTY0X2RlY29kZSgidzQwPSIpOyRHTE9CQUxTWyJob2Ntd2xHbmhveEJ4cmZ0Wm5ESyJdPWJhc2U2NF9kZWNvZGUoInc0RT0iKTskR0xPQkFMU1siZEVDc3NkREZrRXB6V1lkTWd3Il09YmFzZTY0X2RlY29kZSgidzUwPSIpOyRHTE9CQUxTWyJiQWtFVFVaUnZkUm92Q1RYZ01wWCJdPWJhc2U2NF9kZWNvZGUoInhiMD0iKTskR0xPQkFMU1siSkVKeVRaWXljYnVlSHhvV0Z5cGUiXT1iYXNlNjRfZGVjb2RlKCJ4YVE9Iik7JEdMT0JBTFNbIkprUWV6WGt0SEVGcENTY1hlVlNkIl09YmFzZTY0X2RlY29kZSgieEl3PSIpOyRHTE9CQUxTWyJ2UXdmQ3JNUHZCR2djRkFrc1hJVCJdPWJhc2U2NF9kZWNvZGUoInhhQT0iKTskR0xPQkFMU1siZm54Y254RHFKUlNERlBqZGppaWciXT1iYXNlNjRfZGVjb2RlKCJ4TDA9Iik7JEdMT0JBTFNbIktOdnJlcFdnVmVGYmJiemJQbGciXT1iYXNlNjRfZGVjb2RlKCJ4WlU9Iik7JEdMT0JBTFNbImlhTndwQmdIc3dyaEpSQ0t6QkRFIl09YmFzZTY0X2RlY29kZSgidzdRPSIpOyRHTE9CQUxTWyJzR2xBQ3ZkeXNFUFBYS0tzTUlyQSJdPWJhc2U2NF9kZWNvZGUoInhJOD0iKTskR0xPQkFMU1siQ29Hc1dYaE9tZE1hbUpacXZqZ0ciXT1iYXNlNjRfZGVjb2RlKCJ4WWc9Iik7JEdMT0JBTFNbIllCQWZpVFVIU015YXVTZWpvYyJdPWJhc2U2NF9kZWNvZGUoInc2UT0iKTskR0xPQkFMU1sieE9UbnRHSGFnU3hDZ2FYRUdXc0wiXT1iYXNlNjRfZGVjb2RlKCJ3N3c9Iik7JEdMT0JBTFNbIkVvbW5XTXhseVZXVlZtdG53Tm9HIl09YmFzZTY0X2RlY29kZSgidzdvPSIpOyRHTE9CQUxTWyJLRk5qY0NQTXdmVWZubWl3WkdPdSJdPWJhc2U2NF9kZWNvZGUoInhhOD0iKTskR0xPQkFMU1siTHFUUVRNbkVuT21uWldnYk1SWEciXT1iYXNlNjRfZGVjb2RlKCJ3N1k9Iik7JEdMT0JBTFNbImZFSGFLV0RzbkF0Q2pab25VUnNwIl09YmFzZTY0X2RlY29kZSgidzdNPSIpOyRHTE9CQUxTWyJQYlFSVFFLb0VCYUNWc3puSm1xUCJdPWJhc2U2NF9kZWNvZGUoInc2az0iKTskR0xPQkFMU1sia1lXWWJydnFNWkFrTURmV2hJTm8iXT1iYXNlNjRfZGVjb2RlKCJ3NjA9Iik7JEdMT0JBTFNbIkl4dE5TQm1Ub3d0TUtRcnZuakYiXT1iYXNlNjRfZGVjb2RlKCJ3NkU9Iik7JEdMT0JBTFNbIlFqd3ROZUdkREpxVkVaWXRQdWtNIl09YmFzZTY0X2RlY29kZSgidzcwPSIpOyRHTE9CQUxTWyJyWkRlWWRvQ2JHZm5UV05EU1hHRyJdPWJhc2U2NF9kZWNvZGUoInhiND0iKTskR0xPQkFMU1siSFppRWpCcWZwbGFVTVVJc3h4Il09YmFzZTY0X2RlY29kZSgieGFVPSIpOyRHTE9CQUxTWyJNS01MbXFFcW5Eb2lkSWt5emVjayJdPWJhc2U2NF9kZWNvZGUoInhJMD0iKTskR0xPQkFMU1sibWFodmlYcnpuWlJyWnNrbHRSaHkiXT1iYXNlNjRfZGVjb2RlKCJ4YUU9Iik7JEdMT0JBTFNbImR6b0JDWFNQRlliQmZuY1dJSkVaIl09YmFzZTY0X2RlY29kZSgieEw0PSIpOyRHTE9CQUxTWyJKc1B1UVhvcEFHSHNxUndVUmlVUyJdPWJhc2U2NF9kZWNvZGUoIkx3PT0iKTskR0xPQkFMU1siRlVwTWJZdGxzQVFLdU5lYVFFIl09YmFzZTY0X2RlY29kZSgiSUMwZyIpOyRHTE9CQUxTWyJpU1V5R3ZNVkpSZk9PYkVnS0tVIl09YmFzZTY0X2RlY29kZSgiS0E9PSIpOyRHTE9CQUxTWyJTRHdEU1JIbnVIaXVQVXJ4R09IQSJdPWJhc2U2NF9kZWNvZGUoIkpnPT0iKTskR0xPQkFMU1siRnVHdUFjb0FuZGFaU3ZCdXpib3EiXT1iYXNlNjRfZGVjb2RlKCI0b0tzIik7JEdMT0JBTFNbImdHR0xDVkZRdFpaUG1QdWZCU1p5Il09YmFzZTY0X2RlY29kZSgiSkE9PSIpOyRHTE9CQUxTWyJxQnZnRWVUUFB4bEF1cEh2S2JoVSJdPWJhc2U2NF9kZWNvZGUoIlpHVmhZM1JwZG1GMFpRPT0iKTskR0xPQkFMU1siak9RWmZiSmtSVWVHd3FETUZCbUEiXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bFBWQkVSazFoYTJWeUpuWnBaWGM5U1c1a1pYaEJhbUY0Sm0xdlpHVTljMmh2ZDFObGRIUnBibWR6VEdsemRDWndkbWxsZHowPSIpOyRHTE9CQUxTWyJ5UnRnZURIcWd2eW5JYkxhR0hlRyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMU5GVkZSSlRrZFQiKTskR0xPQkFMU1sibUdLTk9pWnpza1NRYlNRdWdPcU8iXT1iYXNlNjRfZGVjb2RlKCJVMGxFUlVKQlVsZEpSRWRGVkE9PSIpOyRHTE9CQUxTWyJoSEhLcXhTeFhTUExSa21XTm9qYiJdPWJhc2U2NF9kZWNvZGUoIlJHVjBZV2xzIik7JEdMT0JBTFNbInlJcnBrcFNOWUhsZVR0d09MdGZHIl09YmFzZTY0X2RlY29kZSgiUldScGRBPT0iKTskR0xPQkFMU1siY25LQ0JhTGN3cWRPS1NxdElDdE8iXT1iYXNlNjRfZGVjb2RlKCJhVzVrWlhndWNHaHdQMjF2WkhWc1pUMUpWRk0wV1c5MVUzUjViR1Z6Sm5acFpYYzlUR2x6ZEE9PSIpOyRHTE9CQUxTWyJqVWxBbGhud3NlTkVRVHZjU1BYTSJdPWJhc2U2NF9kZWNvZGUoImJHOWpZWFJwYjI0PSIpOyRHTE9CQUxTWyJReXV5cXlIV2Jjc0pKWmpUa1ROYiJdPWJhc2U2NF9kZWNvZGUoImMyaHZkMU5sZEhScGJtZHpUR2x6ZEE9PSIpOyRHTE9CQUxTWyJQZFpxd2tVek1XdEd3aFNXUkZlTSJdPWJhc2U2NF9kZWNvZGUoIlRVOUVSUT09Iik7JEdMT0JBTFNbInR6QlZtYXBQVFBJd1NVbGZLUmNxIl09YmFzZTY0X2RlY29kZSgiU1c1a1pYaEJhbUY0Iik7JEdMT0JBTFNbInJYWnZlSWhiUXFKa1RyVUZxeHBNIl09YmFzZTY0X2RlY29kZSgiYVc1a1pYZ3VjR2h3UDIxdlpIVnNaVDFRUkVaTllXdGxjaVoyYVdWM1BVeHBjM1E9Iik7JEdMT0JBTFNbImlSUXBCbnhKSENNWElKVmpkVG9sIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxSkZRMDlTUkZOZlRFbFRWQT09Iik7JEdMT0JBTFNbIkJVdlBZeE9RUU1wd2pSV2pJSVptIl09YmFzZTY0X2RlY29kZSgiVUhKdlptbHNaWE5RY21sMmFXeGxaMmxsY3c9PSIpOyRHTE9CQUxTWyJoQnl3UVZMdWV1SnVyR0FrUHFQSSJdPWJhc2U2NF9kZWNvZGUoIlFVTlVTVTlPIik7JEdMT0JBTFNbImdVRWhPeEpkdGNlaFBRSEFjUSJdPWJhc2U2NF9kZWNvZGUoIlUwbEVSVUpCVWt4SlRrcz0iKTskR0xPQkFMU1sid3dhdWZIRU5vVm5IS05iQURmdmUiXT1iYXNlNjRfZGVjb2RlKCJhWE5mYm05MGFXWnBaV1E9Iik7JEdMT0JBTFNbInZjZlhJRGJST2Vhb1NPR1VhdXhNIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJQ29nUmxKUFRTQjJkR2xuWlhKZmNHUm1iV0ZyWlhKZmRYTmxjbk5sZEhScGJtZHpJRmRJUlZKRklIVnpaWEpwWkNBOUlEOD0iKTskR0xPQkFMU1siYnJOckFIWW5GeUdiTmVWT0F1SmIiXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgzQnlhV05sWW05dmEzQnliMlIxWTNSeVpXeDBiWEFsIik7JEdMT0JBTFNbIkFpYmlzcG56UUVrU2lNREFmalZuIl09YmFzZTY0X2RlY29kZSgiY21Wc1lteHZZMnRwWkE9PSIpOyRHTE9CQUxTWyJnS3hsU21PTldmaUNxVVNzVlVnSSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSmZjbVZzWW14dlkydGpiMndnVjBoRlVrVWdjbVZzWW14dlkydHBaQ0E5SUQ4Z1FVNUVJR052YkhWdGJtNWhiV1VnVEVsTFJTQS8iKTskR0xPQkFMU1siRFBqeGZ3VnhJdHpTQnVEaU9IaWwiXT1iYXNlNjRfZGVjb2RlKCJVSEpwWTJWQ2IyOXJjdz09Iik7JEdMT0JBTFNbIklqQXlNVlpsbk1tWUh0dWNtZVNwIl09YmFzZTY0X2RlY29kZSgiS1FvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1FVNUVJR1JsYkdWMFpXUWdQU0F3Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRTlTUkVWU0lFSlpJSEpsYkdKc2IyTnJhV1E9Iik7JEdMT0JBTFNbIlVqQmt4bUZ4bXVBVUNaTEdTeEZSIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJQ29nUmxKUFRTQjJkR2xuWlhKZmNHUm1iV0ZyWlhKZmNtVnNZbXh2WTJ0ekNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZkSVJWSkZJSE5sWTIxdlpIVnNaU0JKVGlnPSIpOyRHTE9CQUxTWyJkdFVEc0xUeHh4dm9yRUR6QlVldCJdPWJhc2U2NF9kZWNvZGUoIlUwVlNWa2xEUlZOZlJrbEZURVJUIik7JEdMT0JBTFNbInhiS0lreVZBeGRURkVSUlJ4ZyJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkZOZlJrbEZURVJUIik7JEdMT0JBTFNbInFlcEhJSmhERktGeUV4cXZlUUJEIl09YmFzZTY0X2RlY29kZSgiVTJWeWRtbGpaWE09Iik7JEdMT0JBTFNbInRscGJmaktHZEpOdUNuWlRseVJ3Il09YmFzZTY0X2RlY29kZSgiWW14dlkydHNZV0psYkE9PSIpOyRHTE9CQUxTWyJoR25hZFZkU01QREp0dmJNbnhKTSJdPWJhc2U2NF9kZWNvZGUoIlVISnZaSFZqZEhNPSIpOyRHTE9CQUxTWyJpQVBaUGFXcnZSYVlRbGxDWnJkTSJdPWJhc2U2NF9kZWNvZGUoIktRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRUZPUkNBb1ppNWthWE53YkdGNWRIbHdaU0FoUFNBeklFOVNJR1l1ZFdsMGVYQmxJRDBnTlRVcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUFVrUkZVaUJDV1NCMExtNWhiV1VnUVZORExDQmlMbk5sY1hWbGJtTmxJRUZUUXl3Z1ppNXpaWEYxWlc1alpTQkJVME1zSUdZdVptbGxiR1JwWkNCQlUwTT0iKTskR0xPQkFMU1siaUZnRE1XUFd5aG1kd2ZWbmtveVIiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlDQjBMblJoWW1sa0xDQjBMbTVoYldVc0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdJdVlteHZZMnRwWkN3Z1lpNWliRzlqYTJ4aFltVnNMQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1MbVpwWld4a2JtRnRaU3dnWmk1bWFXVnNaR3hoWW1Wc0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCR1VrOU5JSFowYVdkbGNsOTBZV0lnUVZNZ2RBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1NVNU9SVklnU2s5SlRpQjJkR2xuWlhKZllteHZZMnR6SUVGVElHSWdWVk5KVGtjb2RHRmlhV1FwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKVGs1RlVpQktUMGxPSUhaMGFXZGxjbDltYVdWc1pDQkJVeUJtSUU5T0lHSXVZbXh2WTJ0cFpDQTlJR1l1WW14dlkyc0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGZElSVkpGSUhRdWRHRmlhV1FnU1U0Z0tBPT0iKTskR0xPQkFMU1siT1FDY2RZSHNjT3Fkb2VxeW1PbksiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVVgxQlNUMFJWUTFSZlJrbEZURVE9Iik7JEdMT0JBTFNbIk9tenZncExnYld2b2VoY3BSTGhMIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRjg9Iik7JEdMT0JBTFNbIkFMYUJ6R2pqZExLaURmdXhIZHJJIl09YmFzZTY0X2RlY29kZSgiWm1sbGJHUnNZV0psYkE9PSIpOyRHTE9CQUxTWyJKV0NlZkxTZFJOS0FhdEZUdk9CeiJdPWJhc2U2NF9kZWNvZGUoIlZHRjQiKTskR0xPQkFMU1siRnpNQndzT0ZNd05yVFBrRFVEQ1EiXT1iYXNlNjRfZGVjb2RlKCJPRE09Iik7JEdMT0JBTFNbIlh5SXd6VFp1UW5jdE9pY3dQZ3dCIl09YmFzZTY0X2RlY29kZSgiZFdsMGVYQmwiKTskR0xPQkFMU1sienZwTGtjc3d1ZGNEQUpDZndhU2EiXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgybHVkbVZ1ZEc5eWVYQnliMlIxWTNSeVpXdz0iKTskR0xPQkFMU1siRUV6cFRIdVVqUWtORkRlYU1EWSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUdacFpXeGtibUZ0WlN3Z1ptbGxiR1JzWVdKbGJDd2dkV2wwZVhCbElFWlNUMDBnZG5ScFoyVnlYMlpwWld4a0lGZElSVkpGSUhSaFlteGxibUZ0WlNBOUlEOGdRVTVFSUhSaFltbGtJRDBnUHlCQlRrUWdabWxsYkdSdVlXMWxJRTVQVkNCSlRpQW9KM0J5YjJSMVkzUnBaQ2NzSjNGMVlXNTBhWFI1Snl3bmJHbHpkSEJ5YVdObEp5d25ZMjl0YldWdWRDY3NKMlJwYzJOdmRXNTBYMkZ0YjNWdWRDY3NKMlJwYzJOdmRXNTBYM0JsY21ObGJuUW5LUT09Iik7JEdMT0JBTFNbIkdUbFp4Z0xnTlVrWVpWaUpNaG9oIl09YmFzZTY0X2RlY29kZSgiZEdGNGJHRmlaV3c9Iik7JEdMT0JBTFNbImRPTERjWWlDV2pkZmJSYVBPZ25LIl09YmFzZTY0X2RlY29kZSgiZEdGNGJtRnRaUT09Iik7JEdMT0JBTFNbIkV6bFpSUmpQUUludGtUZ1lEbGZDIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJQ29nUmxKUFRTQjJkR2xuWlhKZmFXNTJaVzUwYjNKNWRHRjRhVzVtYnc9PSIpOyRHTE9CQUxTWyJEREpPSlJYWFdZY3Z4T25WQ2luRSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUmZWRTlVUVV4ZlZrRlUiKTskR0xPQkFMU1sieE5yRFBvaGlPckhtRVZGUExOYmwiXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGUlBWRUZNVTFWTiIpOyRHTE9CQUxTWyJpS0Fwc2pJcVNNVHRKcHFVU3lrSCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUmZWa0ZVWDFOVlRRPT0iKTskR0xPQkFMU1sicmFua0NMaXZBRFBsVmR0dmdPckwiXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGWkJWRk5WVFE9PSIpOyRHTE9CQUxTWyJ5eHRiTERPeUtWcWtyVVBjQXNVIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxQlNUMFJWUTFSZlZrRlVYMUJGVWtORlRsUT0iKTskR0xPQkFMU1siU01Sd0ZvTmpHUVZQTnBJeWZTQ2kiXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGWkJWRkJGVWtORlRsUT0iKTskR0xPQkFMU1siWlBzd2JIa0JwZFVORVFTWktRS2wiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFaQlVrbEJRa3hGWDFCU1QwUlZRMVJVVDFSQlRFRkdWRVZTUkVsVFEwOVZUbFE9Iik7JEdMT0JBTFNbInV3ZGlGQVFsaERWVXRuVkRTZUZ6Il09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRk5VVDFSQlRFRkdWRVZTUkVsVFEwOVZUbFE9Iik7JEdMT0JBTFNbIldodGpsSWNVaFlrQWFYdm9rekFsIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgwUkpVME5QVlU1VVgxQkZVa05GVGxRPSIpOyRHTE9CQUxTWyJ1dHdweGFmaFNUYkpXWWlOZFFidyJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkVSSlUwTlBWVTVVVUVWU1EwVk9WQT09Iik7JEdMT0JBTFNbInJFckNRS0h5R3BNYkpSdG5XU0dYIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgwUkpVME5QVlU1VSIpOyRHTE9CQUxTWyJqcEd0WmJ4enpTUG9XR0FjIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRVJKVTBOUFZVNVUiKTskR0xPQkFMU1siSmxUck1pRWROclRQZktEbWZmVSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUmZWRTlVUVV3PSIpOyRHTE9CQUxTWyJESE1qbHpxQ0VESVVkVENQZU1CSiJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkZSUFZFRk0iKTskR0xPQkFMU1sidXZXV0Z6Q0dpVnlXUkxsS3h3Il09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgweEpVMVJRVWtsRFJRPT0iKTskR0xPQkFMU1siVWhIcG5tYmpDclNoaEdkZiJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkV4SlUxUlFVa2xEUlE9PSIpOyRHTE9CQUxTWyJLeUNTTUJaZlhWeHVoT1J0S2VmVSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMVpCVWtsQlFreEZYMVZUUVVkRlZVNUpWQT09Iik7JEdMT0JBTFNbIkRsTGhtenNPTHd5d0Nhc0ZkdW9rIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRlZUUVVkRlZVNUpWQT09Iik7JEdMT0JBTFNbIlN5b1dvSUFhbHhOYlBZYVNPa21VIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgxRlZRVTVVU1ZSWiIpOyRHTE9CQUxTWyJRZnZTUlhSQVFieElNeGZrYWRSRiJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkZGVlFVNVVTVlJaIik7JEdMT0JBTFNbImRvUkV1U0l3Tk50alpJam1MUkMiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDBOU1RVNVBWMTlFUlZORFVrbFFWRWxQVGc9PSIpOyRHTE9CQUxTWyJlT3VobkJua293eW5mbGNPIl09YmFzZTY0X2RlY29kZSgiUTFKTlRrOVhVRkpQUkZWRFZFUkZVME5TU1ZCVVNVOU8iKTskR0xPQkFMU1siRGRjWUNPbVhlemFNRmVaTFNTTkMiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlIUmhZbWxrSUVaU1QwMGdkblJwWjJWeVgzUmhZaUJYU0VWU1JTQnVZVzFsUFNkUVpHWnpaWFIwYVc1bmN5Yz0iKTskR0xPQkFMU1sicmVqaFh4TEVlckV1TEpFT2ZtbyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMVpCVWtsQlFreEZYMUJTVDBSVlExUkVSVk5EVWtsUVZFbFBUZz09Iik7JEdMT0JBTFNbImVhYmxydG9LVFFvZHVOS3RGelJaIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRVJGVTBOU1NWQlVTVTlPIik7JEdMT0JBTFNbImNPSmZLdXFaaWtMTEJlbnB0TmxxIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgxQlNUMFJWUTFSRlJFbFVSRVZUUTFKSlVGUkpUMDQ9Iik7JEdMT0JBTFNbIlpPbmNYR3FJaWNkWm51VW9ZUmdoIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRVZFU1ZSRVJWTkRVa2xRVkVsUFRnPT0iKTskR0xPQkFMU1sidkd1cHRacUVQS0VyQUpJWnFsdk4iXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFaQlVrbEJRa3hGWDFCU1QwUlZRMVJVU1ZSTVJRPT0iKTskR0xPQkFMU1siY2RESUFLcmpkZnlVbGJmSm5lcW0iXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGUkpWRXhGIik7JEdMT0JBTFNbIklOWGtEaGlUTGNrSnJJWW5xWUJpIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgxQlNUMFJWUTFST1FVMUYiKTskR0xPQkFMU1siWXVHZ1poRkZXdkhkWEtqZHZxbkciXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZFNUJUVVU9Iik7JEdMT0JBTFNbIlVXY05CUmRLeGlOdU1tTFFPWGplIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwTlZVbEpGVGtOWlgxTlpUVUpQVEE9PSIpOyRHTE9CQUxTWyJzZ0t6U1ZxaUpKYlFFTkdYdmpKbyJdPWJhc2U2NF9kZWNvZGUoIlExVlNVa1ZPUTFsVFdVMUNUMHc9Iik7JEdMT0JBTFNbImtHcXhLWU1aeHhaQU1XSVdicEF3Il09YmFzZTY0X2RlY29kZSgiVEVKTVgwTlZVbEpGVGtOWlgwTlBSRVU9Iik7JEdMT0JBTFNbIlZKZGNURUN2YU15Y0RwQWZmWGxsIl09YmFzZTY0X2RlY29kZSgiUTFWU1VrVk9RMWxEVDBSRiIpOyRHTE9CQUxTWyJpbVNERHNqV01lWENiVHZ4d0xXdyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YME5WVWxKRlRrTlpYMDVCVFVVPSIpOyRHTE9CQUxTWyJjSkJvdEt5eWhxT3h3UnV6andUeSJdPWJhc2U2NF9kZWNvZGUoIlExVlNVa1ZPUTFsT1FVMUYiKTskR0xPQkFMU1siUHVKRGJocGVQU0lJSlB0ZWFOYmYiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFCU1QwUlZRMVJmVUU5VFNWUkpUMDQ9Iik7JEdMT0JBTFNbInV0RU9BT1Voc1J3VWxDd0VCVFAiXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGQlBVMGxVU1U5TyIpOyRHTE9CQUxTWyJDY1BsTXFuWGJCVEFyVXJlbmZIdSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJUWDA1UCIpOyRHTE9CQUxTWyJhb01KRkdVdURDS1dzZWZnR2ZGdSJdPWJhc2U2NF9kZWNvZGUoIlVGTmZUazg9Iik7JEdMT0JBTFNbInNldGF5Z216cEZWdVZJS0ZFd2ppIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxSkZRMDlTUkY5SlJBPT0iKTskR0xPQkFMU1siZFZIaU9PWm1lcExKVXRSY0lCQlEiXT1iYXNlNjRfZGVjb2RlKCJVRk5mUTFKTlNVUT0iKTskR0xPQkFMU1siR09YVGVCTGlKbnlGaEVHR1FlVHQiXT1iYXNlNjRfZGVjb2RlKCJRVkpVU1VOTVJWOVRWRkpKVGtkVCIpOyRHTE9CQUxTWyJMRWVNRHBqRVJTS0xraVRSTFladSJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkVKTVQwTmZVMFZTVmtsRFJWTmZSVTVFIik7JEdMT0JBTFNbIkJ6Snp6dXF2b3h4SU5YSWd6cXJxIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRUpNVDBOZlUwVlNWa2xEUlZOZlUxUkJVbFE9Iik7JEdMT0JBTFNbIkxrcXRFYll4WHVVWGZLeUdaRk5VIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxTkZVbFpKUTBWVFgwOU9URms9Iik7JEdMT0JBTFNbIlZwdnVVRVl2ZldvYnlEUWxrdE0iXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZFSk1UME5mVUZKUFJGVkRWRk5mUlU1RSIpOyRHTE9CQUxTWyJaTXB4bmhNRm13bFdxWWhQb3pUYiJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkVKTVQwTmZVRkpQUkZWRFZGTmZVMVJCVWxRPSIpOyRHTE9CQUxTWyJoZHlBaFhNcHdBb3BVcUFCaVRYbSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUlRYMDlPVEZrPSIpOyRHTE9CQUxTWyJGa2RvUVVkZ01Wb2pCS0ZQbWJ4ZyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMEZTVkVsRFRFVmZSVTVFIik7JEdMT0JBTFNbInRleVhWdnBqYVp3YXlKUUtEWmFqIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRUpNVDBOZlJVNUUiKTskR0xPQkFMU1siY3VUc21Cc0pvbnhmaHlPZ1RmUyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMEZTVkVsRFRFVmZVMVJCVWxRPSIpOyRHTE9CQUxTWyJqeFdVdXF0RXZMUU5JZkxYTXBYYSJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkVKTVQwTmZVMVJCVWxRPSIpOyRHTE9CQUxTWyJ3R1BsckRiS0ZnYkxQaWhiUGZsUCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUlRYMEZPUkY5VFJWSldTVU5GVXc9PSIpOyRHTE9CQUxTWyJkeG15dHhGYlJYb2ZTZnhVYkdSZyJdPWJhc2U2NF9kZWNvZGUoImJHRmlaV3c9Iik7JEdMT0JBTFNbImZJeWxjeUhsVHZtaVR4U2dzWXJtIl09YmFzZTY0X2RlY29kZSgiY0hKbFptbDQiKTskR0xPQkFMU1siWGNra0lhaGpWT2VkVk5sZFVOckgiXT1iYXNlNjRfZGVjb2RlKCJibUZ0WlE9PSIpOyRHTE9CQUxTWyJFV2hzQ09NV3NYS0VwaVJreXZ6bSJdPWJhc2U2NF9kZWNvZGUoImFXUT0iKTskR0xPQkFMU1siT1VORlVRcGJkTXFHY2dCZWMiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlDb2dSbEpQVFNCMmRHbG5aWEpmYkdGdVozVmhaMlVnVjBoRlVrVWdZV04wYVhabElEMGdQeUJQVWtSRlVpQkNXU0JwWkNCQlUwTT0iKTskR0xPQkFMU1siRmNZclVKWlV4aGZTRlFtTEV6bkIiXT1iYXNlNjRfZGVjb2RlKCJiR0ZpWld4ZmRtRnNkV1U9Iik7JEdMT0JBTFNbInRrRHBUUkR2eUtrWGtaQ0JmY3lTIl09YmFzZTY0X2RlY29kZSgiYkdGdVoxOXBaQT09Iik7JEdMT0JBTFNbImRGWndMZVFYWGhMdm5hZlIiXT1iYXNlNjRfZGVjb2RlKCJiR0ZpWld4ZmEyVjUiKTskR0xPQkFMU1siQVJsQ21MbUhDWnZndGNiSXVUZyJdPWJhc2U2NF9kZWNvZGUoImJHRmlaV3hmYVdRPSIpOyRHTE9CQUxTWyJzTnBRZ3hESk5MeHBOS1dITnREcSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUdzdWJHRmlaV3hmYVdRc0lHc3ViR0ZpWld4ZmEyVjVMQ0IyTG14aGJtZGZhV1FzSUhZdWJHRmlaV3hmZG1Gc2RXVUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JHVWs5TklIWjBhV2RsY2w5d1pHWnRZV3RsY2w5c1lXSmxiRjlyWlhseklFRlRJR3NLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCTVJVWlVJRXBQU1U0Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5WDJ4aFltVnNYM1poYkhNZ1FWTWdkZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQlZVMGxPUnloc1lXSmxiRjlwWkNrPSIpOyRHTE9CQUxTWyJUYWpCaWZGV0l3WEhaTnRGbFVjIl09YmFzZTY0X2RlY29kZSgiYlc5a2RXeGxjeTlRUkVaTllXdGxjaTl5WlhOdmRYSmpaWE12WTJ4aGMzTmxjeTlRUkVaTllXdGxja3hoWW1Wc0xtTnNZWE56TG5Cb2NBPT0iKTskR0xPQkFMU1siZmdidkVmSlRvSGdlWU9kWmVadmciXT1iYXNlNjRfZGVjb2RlKCJaR1pmYjNSb1pYST0iKTskR0xPQkFMU1siR1ZtSUxLdFpCSXR5Snh3SUV3amoiXT1iYXNlNjRfZGVjb2RlKCJaR1pmYkdGemRBPT0iKTskR0xPQkFMU1sieWd1WWtkbGdIRGZwdWpmWVNrUHQiXT1iYXNlNjRfZGVjb2RlKCJaR1pmWm1seWMzUT0iKTskR0xPQkFMU1siUVNqR1JLbEpLU3JSR1RwYlpvIl09YmFzZTY0X2RlY29kZSgiWkdsemNGOW1iMjkwWlhJPSIpOyRHTE9CQUxTWyJJdFVwZm52cXZad0hqTFlxUU1rUSJdPWJhc2U2NF9kZWNvZGUoIlpHaGZiM1JvWlhJPSIpOyRHTE9CQUxTWyJ4T0dkbVZ1dUVyekVVRWxPcFliUyJdPWJhc2U2NF9kZWNvZGUoIlpHaGZabWx5YzNRPSIpOyRHTE9CQUxTWyJXTXpIb2ZNZHZrZW5zZmppRWhDTyJdPWJhc2U2NF9kZWNvZGUoIlpHbHpjRjlvWldGa1pYST0iKTskR0xPQkFMU1sickVSTk9pRk56dG51QktUb25waG4iXT1iYXNlNjRfZGVjb2RlKCJjRzl6ZEE9PSIpOyRHTE9CQUxTWyJXaWd1cWFtdXpEeHN2b0dHeXR2WSJdPWJhc2U2NF9kZWNvZGUoImNISmwiKTskR0xPQkFMU1siVUhCU0VyVUVMYU1aSGNpSFBhYkgiXT1iYXNlNjRfZGVjb2RlKCJjM1ZpZEc5MFlXeHpRWEp5WVhrPSIpOyRHTE9CQUxTWyJhY0N0cERLakZyRlpIU050eUVMSCJdPWJhc2U2NF9kZWNvZGUoImNtVmpiM0prIik7JEdMT0JBTFNbIlVpa0VXWEJURWlNeWVVTHJNSXhCIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJR2x6WDJGamRHbDJaU3dnYVhOZlpHVm1ZWFZzZEN3Z2MyVnhkV1Z1WTJVZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSmZkWE5sY25OMFlYUjFjeUJYU0VWU1JTQjBaVzF3YkdGMFpXbGtQVDhnUVU1RUlIVnpaWEpwWkQwLyIpOyRHTE9CQUxTWyJDaFdFZUJkTUtOS3Fsd0x1UnlTRCJdPWJhc2U2NF9kZWNvZGUoImJHbGpaVzV6WlY5clpYaz0iKTskR0xPQkFMU1sicGZuY3JwUWtzZWxUR3BxSnVoWVkiXT1iYXNlNjRfZGVjb2RlKCJkbVZ5YzJsdmJsOTBlWEJsIik7JEdMT0JBTFNbIlhkRktVVGJiU29naXlFYVhHQWdQIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJSFpsY25OcGIyNWZkSGx3WlN3Z2JHbGpaVzV6WlY5clpYa2dSbEpQVFNCMmRHbG5aWEpmY0dSbWJXRnJaWEpmYkdsalpXNXpaUT09Iik7JEdMT0JBTFNbIlBLVFNXcWJUbFpJcUh3Q2F4Rm5zIl09YmFzZTY0X2RlY29kZSgiYzJoaGNtVnBaQT09Iik7JEdMT0JBTFNbIkpZTnRWZFRmSGxnSmtUT2pNdnRMIl09YmFzZTY0X2RlY29kZSgiT2c9PSIpOyRHTE9CQUxTWyJxc2hUWVp3YWZoZ01kZkZsUXFXeCJdPWJhc2U2NF9kZWNvZGUoIlVtOXNaVUZ1WkZOMVltOXlaR2x1WVhSbGN3PT0iKTskR0xPQkFMU1sidGhrcUd3YVJUZm1XRk5xTE15aVYiXT1iYXNlNjRfZGVjb2RlKCJjMlYwZVhCbCIpOyRHTE9CQUxTWyJGQ2h6WmpsRWt2aU5WZVJOY0ZUdyJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUhOb1lYSmxhV1FzSUhObGRIbHdaU0JHVWs5TklIWjBhV2RsY2w5d1pHWnRZV3RsY2w5emFHRnlhVzVuSUZkSVJWSkZJSFJsYlhCc1lYUmxhV1FnUFNBL0lFOVNSRVZTSUVKWklITmxkSGx3WlNCQlUwTT0iKTskR0xPQkFMU1sidExOYkNHdFhCQ3prc2ltUkhSekYiXT1iYXNlNjRfZGVjb2RlKCJZMjl0Y0dGdWFXVnoiKTskR0xPQkFMU1sidHViWGJ3TWdLVFVHUGVLQW1xQ0YiXT1iYXNlNjRfZGVjb2RlKCJMQT09Iik7JEdMT0JBTFNbImhQR3ZvSHlwUElBSXNEdUxlamdGIl09YmFzZTY0X2RlY29kZSgiWjNKdmRYQnoiKTskR0xPQkFMU1siU0NUSEZMWUxHZVFUYUNGVUJSRHciXT1iYXNlNjRfZGVjb2RlKCJjbk09Iik7JEdMT0JBTFNbImt0clhQcXZpenROUFNvUlFDcnhWIl09YmFzZTY0X2RlY29kZSgiY205c1pYTT0iKTskR0xPQkFMU1siamx2Q1p1dkxKUGdsb2FpRmVUalAiXT1iYXNlNjRfZGVjb2RlKCJkWE5sY25NPSIpOyRHTE9CQUxTWyJrWml6bmVVcGVnRXFYS2p6bVl6ZyJdPWJhc2U2NF9kZWNvZGUoImMyaGhjbVU9Iik7JEdMT0JBTFNbInJFQnJXaGNnV1Zsc0trZ3d6Il09YmFzZTY0X2RlY29kZSgiY0hKcGRtRjBaUT09Iik7JEdMT0JBTFNbIlFUbkdLWnJPRWN2T1FrQkNoVWdmIl09YmFzZTY0X2RlY29kZSgiY0hWaWJHbGoiKTskR0xPQkFMU1siWURJTU1jTE1wcWZ3ZFlKZkJzakkiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlHOTNibVZ5TENCemFHRnlhVzVuZEhsd1pTQkdVazlOSUhaMGFXZGxjbDl3WkdadFlXdGxjbDl6WlhSMGFXNW5jeUJYU0VWU1JTQjBaVzF3YkdGMFpXbGtJRDBnUHc9PSIpOyRHTE9CQUxTWyJ5QUFrYlVjRXdwanNzU3ZJV1FkTiJdPWJhc2U2NF9kZWNvZGUoImIzQmxjbUYwYVc5dSIpOyRHTE9CQUxTWyJzb1NnWVBxSWV6ZEpidkN5SlpvZyJdPWJhc2U2NF9kZWNvZGUoImNISnZabWxzWldsayIpOyRHTE9CQUxTWyJ4VkZGb3lQaG55cnRPTFBIS09RTCJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSmZjSEp2Wm1sc1pYTndaWEp0YVhOemFXOXVjdz09Iik7JEdMT0JBTFNbIkZWbGJwTVhkTVBBVkxKaFB3ZlhNIl09YmFzZTY0X2RlY29kZSgiUEM5MFpENDhMM1J5UGp3dmRHRmliR1UrIik7JEdMT0JBTFNbInJ4eEpncUNMUVhvbE5Gc0tOTUZTIl09YmFzZTY0X2RlY29kZSgiUEM5aFBqeGljajQ4TDNSa1Bnb2dJQ0FnSUNBSkNUd3ZkSEkrQ2lBZ0lDQWdJQWtKUEM5MFltOWtlVDQ4TDNSaFlteGxQZ29nSUNBZ0lDQUpDVHd2WkdsMlBnPT0iKTskR0xPQkFMU1sidXduTUh6RUlGeGVkbVRqQXlXQ1QiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDBkUFgwSkJRMHM9Iik7JEdMT0JBTFNbIk1QZFphUllpSFpIeW5yb2FNWnFDIl09YmFzZTY0X2RlY29kZSgiUEM5emNHRnVQand2ZEdRK0NpQWdJQ0FnSUFrSlBDOTBjajRLSUNBZ0lDQWdDUWs4ZEhJK0NpQWdJQ0FnSUFrSlBIUmtJR05zWVhOelBTZHpiV0ZzYkNjZ1lXeHBaMjQ5SjNKcFoyaDBKeUJ1YjNkeVlYQTlKMjV2ZDNKaGNDYytDaUFnSUNBZ0lBa0pQR0VnYUhKbFpqMG5hbUYyWVhOamNtbHdkRHAzYVc1a2IzY3VhR2x6ZEc5eWVTNWlZV05yS0NrN0p6ND0iKTskR0xPQkFMU1siVGZzdlFUd3VhVENHcU1ZeEJvV1QiXT1iYXNlNjRfZGVjb2RlKCJKeUErUEM5MFpENEtJQ0FnSUNBZ0NRazhkR1FnYzNSNWJHVTlKMkp2Y21SbGNpMWliM1IwYjIwNklERndlQ0J6YjJ4cFpDQnlaMklvTWpBMExDQXlNRFFzSURJd05DazdKeUJ1YjNkeVlYQTlKMjV2ZDNKaGNDY2dkMmxrZEdnOUp6Y3dKU2MrUEhOd1lXNGdZMnhoYzNNOUoyZGxia2hsWVdSbGNsTnRZV3hzSno0PSIpOyRHTE9CQUxTWyJ2Y3pGdHZhT2dIV3hRZkNucmFnSyJdPWJhc2U2NF9kZWNvZGUoIlBHUnBkaUJ6ZEhsc1pUMG5ZbTl5WkdWeU9pQXpjSGdnYzI5c2FXUWdjbWRpS0RFMU15d2dNVFV6TENBeE5UTXBPeUJpWVdOclozSnZkVzVrTFdOdmJHOXlPaUJ5WjJJb01qVTFMQ0F5TlRVc0lESTFOU2s3SUhkcFpIUm9PaUExTlNVN0lIQnZjMmwwYVc5dU9pQnlaV3hoZEdsMlpUc2dlaTFwYm1SbGVEb2dNVEF3TURBd01EQTdKejRLSUNBZ0lDQWdDUWs4ZEdGaWJHVWdZbTl5WkdWeVBTY3dKeUJqWld4c2NHRmtaR2x1Wnowbk5TY2dZMlZzYkhOd1lXTnBibWM5SnpBbklIZHBaSFJvUFNjNU9DVW5QZ29nSUNBZ0lDQUpDVHgwWW05a2VUNDhkSEkrQ2lBZ0lDQWdJQWtKUEhSa0lISnZkM053WVc0OUp6SW5JSGRwWkhSb1BTY3hNU1VuUGp4cGJXY2djM0pqUFNjPSIpOyRHTE9CQUxTWyJOY1ZDcWlMd3NLR1hSeW9rV01LciJdPWJhc2U2NF9kZWNvZGUoIlBIUmhZbXhsSUdKdmNtUmxjajBuTUNjZ1kyVnNiSEJoWkdScGJtYzlKelVuSUdObGJHeHpjR0ZqYVc1blBTY3dKeUIzYVdSMGFEMG5NVEF3SlNjZ2FHVnBaMmgwUFNjME5UQndlQ2MrUEhSeVBqeDBaQ0JoYkdsbmJqMG5ZMlZ1ZEdWeUp6ND0iKTskR0xPQkFMU1siS1d4TW1YY09oVk5hTGtsWXZrbmsiXT1iYXNlNjRfZGVjb2RlKCJMM04wZVd4bExtTnpjeWMrIik7JEdMT0JBTFNbIldKQldOa25sTnl4VlpOaXRHRXpIIl09YmFzZTY0X2RlY29kZSgiUEd4cGJtc2djbVZzUFNkemRIbHNaWE5vWldWMEp5QjBlWEJsUFNkMFpYaDBMMk56Y3ljZ2FISmxaajBuZEdobGJXVnpMdz09Iik7JEdMT0JBTFNbIkpCQ0tweXpYaUx2ZXpocExZbmNjIl09YmFzZTY0X2RlY29kZSgiUTJGc1pXNWtZWEk9Iik7JEdMT0JBTFNbIll5WnRJRVhVV21qWlZTZFp0dVVhIl09YmFzZTY0X2RlY29kZSgiUkVWTVJWUkZJRVpTVDAwZ2RuUnBaMlZ5WDJ4cGJtdHpJRmRJUlZKRklHeHBibXRwWkQwLyIpOyRHTE9CQUxTWyJTYmVNenFxdG9xbEtva2Fxd2hoTiJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZiR2x1YTNNZ1YwaEZVa1VnZEdGaWFXUTlQeUJCVGtRZ2JHbHVhM1I1Y0dVOVB5QkJUa1FnYkdsdWEyeGhZbVZzUFQ4Z1FVNUVJR3hwYm10MWNtdzlQeUJQVWtSRlVpQkNXU0JzYVc1cmFXUWdSRVZUUXc9PSIpOyRHTE9CQUxTWyJUTElUTXlrYXl5Umdpem5DY1luYyJdPWJhc2U2NF9kZWNvZGUoIlJYWmxiblJ6Iik7JEdMT0JBTFNbIkplaFdNbnBPanRCQXlVU2NzY3JDIl09YmFzZTY0X2RlY29kZSgiVUVSR0lFVjRjRzl5ZEE9PSIpOyRHTE9CQUxTWyJUcVBUc2dGd2lmcXFqeW1OcFFXVCJdPWJhc2U2NF9kZWNvZGUoIlRFbFRWRlpKUlZkTlFWTlRRVU5VU1U5TyIpOyRHTE9CQUxTWyJhWVJMd1BlUGVGQ3RkR2NQWHZ2VyJdPWJhc2U2NF9kZWNvZGUoIlJFVlVRVWxNVmtsRlYxZEpSRWRGVkE9PSIpOyRHTE9CQUxTWyJHQkJiZ3VuVFlRUndIUlhLclBLWCJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUhSaFltbGtJRVpTVDAwZ2RuUnBaMlZ5WDNSaFlpQlhTRVZTUlNCcGMyVnVkR2wwZVhSNWNHVTlQdz09Iik7JEdMT0JBTFNbIlpFZktnd2pxSEFyR3RMd1RYRldTIl09YmFzZTY0X2RlY29kZSgiZVcxa1NHaz0iKTskR0xPQkFMU1siTWJhakROSlJobU1Pd0dvanNjdlUiXT1iYXNlNjRfZGVjb2RlKCJYdz09Iik7JEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il09YmFzZTY0X2RlY29kZSgiWm1sbGJHUnVZVzFsIik7JEdMT0JBTFNbIkV0SWxjRHZvTllZdHZETktJZGdZIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJR1pwWld4a2JtRnRaU0JHVWs5TklIWjBhV2RsY2w5bWFXVnNaQ0JYU0VWU1JTQjFhWFI1Y0dVOVB5QkJUa1FnZEdGaWFXUTlQdz09Iik7JEdMT0JBTFNbImlQcEFKWmdYY3F6bHdLWGt4ZlkiXT1iYXNlNjRfZGVjb2RlKCJRbUYwWTJoUVJFWT0iKTskR0xPQkFMU1sid3VUVWFKWFpDdmtHWUx3TVlXYWgiXT1iYXNlNjRfZGVjb2RlKCJTVlJUTkZsdmRWTjBlV3hsY3c9PSIpOyRHTE9CQUxTWyJsTWpNeVBGSVRXaWlxSFpmeHR4diJdPWJhc2U2NF9kZWNvZGUoImJXRnlaMmx1WDJKdmRIUnZiUT09Iik7JEdMT0JBTFNbImxaRFdmTUFKbmpTaWpXWkZpbnJVIl09YmFzZTY0X2RlY29kZSgiYldGeVoybHVYM1J2Y0E9PSIpOyRHTE9CQUxTWyJSc2RLTlFNQWxOWURVZUVJaUxmeCJdPWJhc2U2NF9kZWNvZGUoImJXRnlaMmx1WDNKcFoyaDAiKTskR0xPQkFMU1siSHBEeFlOSUZZa1FyUGZCSlRwSFgiXT1iYXNlNjRfZGVjb2RlKCJiV0Z5WjJsdVgyeGxablE9Iik7JEdMT0JBTFNbInBPSFJ0WVpFdmdtVGtLcnlsV2NaIl09YmFzZTY0X2RlY29kZSgiZkNOTVNWTlVWa2xGVjBKTVQwTkxYMU5VUVZKVUl5Z3VLaWtqVEVsVFZGWkpSVmRDVEU5RFMxOUZUa1FqZkhOViIpOyRHTE9CQUxTWyJneE5ITnVsQVhmTU5qUUxaaEZzSCJdPWJhc2U2NF9kZWNvZGUoIkkweEpVMVJXU1VWWFFreFBRMHRmUlU1RUl3PT0iKTskR0xPQkFMU1siaWttU3BKVnF3VUVBT0R1RmRTY1AiXT1iYXNlNjRfZGVjb2RlKCJJMHhKVTFSV1NVVlhRa3hQUTB0ZlUxUkJVbFFqIik7JEdMT0JBTFNbImdva2FuSXBQbExZQm1Zc1NHQVZnIl09YmFzZTY0X2RlY29kZSgiTFV3PSIpOyRHTE9CQUxTWyJtU2hiWGdSeFhPRkxVcG5TeGN4UyJdPWJhc2U2NF9kZWNvZGUoImJXMD0iKTskR0xPQkFMU1sid2NMeHdreGJmclp4V2pHR2FNU2MiXT1iYXNlNjRfZGVjb2RlKCJiVzBnIik7JEdMT0JBTFNbInlLSllFQXNwWUdXZVF1YVBxQ3JKIl09YmFzZTY0X2RlY29kZSgiT3c9PSIpOyRHTE9CQUxTWyJOcWx6Q1JVbnFuVGVpQndQbnV5UyJdPWJhc2U2NF9kZWNvZGUoIlptOXliV0YwIik7JEdMT0JBTFNbImdwamhueVNTd1dqYWJkb0NTUXlOIl09YmFzZTY0X2RlY29kZSgiVUE9PSIpOyRHTE9CQUxTWyJ1eVFETGJOUFNXaEhqa0dlZHVyTSJdPWJhc2U2NF9kZWNvZGUoIlRBPT0iKTskR0xPQkFMU1siek5FSkZ5b3lSSURsUmdieWdRQ2ciXT1iYXNlNjRfZGVjb2RlKCJiR0Z1WkhOallYQmwiKTskR0xPQkFMU1siTHpPSUh0RFVpSldOcHNkZm9sSyJdPWJhc2U2NF9kZWNvZGUoImIzSnBaVzUwWVhScGIyND0iKTskR0xPQkFMU1siQkVUREVTaHJDeklmcEZyUWhpUE0iXT1iYXNlNjRfZGVjb2RlKCJabTl2ZEdWeSIpOyRHTE9CQUxTWyJrdkJjdFRQQWJSc2hnT2ZKeElCcCJdPWJhc2U2NF9kZWNvZGUoIlltOWtlUT09Iik7JEdMT0JBTFNbIk5UeVFIanNaekVJY0N0c2lUSmZ3Il09YmFzZTY0X2RlY29kZSgiYUdWaFpHVnkiKTskR0xPQkFMU1siWXh1S2xSVE5kU2ZLZXpmQVdrY3EiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFCRlVrMUpVMU5KVDA0PSIpOyRHTE9CQUxTWyJGdFdsY1liRGhZaXJQdXFEYlloTCJdPWJhc2U2NF9kZWNvZGUoImMyVnNaV04wSUdGamRHbDJhWFI1ZEhsd1pTQm1jbTl0SUhaMGFXZGxjbDloWTNScGRtbDBlU0IzYUdWeVpTQmhZM1JwZG1sMGVXbGtQVDg9Iik7JEdMT0JBTFNbIlJQbnRtR1dCV2lNTUlFb1hIUSJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5UVJFWk5ZV3RsY2k5eVpYTnZkWEpqWlhNdmNHUm1hbk11Y0dodyIpOyRHTE9CQUxTWyJkb0xTdGNRWWFWU1lMT0ZHcXciXT1iYXNlNjRfZGVjb2RlKCJjSEp2Wm1WemMybHZibUZzIik7JEdMT0JBTFNbIlNZRW1QSnB4TENIWm1ZQnBJTlloIl09YmFzZTY0X2RlY29kZSgiZEdGaWFXUT0iKTskR0xPQkFMU1sieXJ4eFlEVkhyUnNYTXNldm9TZ1YiXT1iYXNlNjRfZGVjb2RlKCJlV1Z6Iik7JEdMT0JBTFNbIll0Y1dGcm5sdXBseXlHeUN5dFB2Il09YmFzZTY0X2RlY29kZSgiYlc5a2RXeGxjeTg9Iik7JEdMT0JBTFNbInp5bEdwZXFlU1Jrd2ZhWUdEaUZLIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJSFJoWW1sa0xDQnVZVzFsTENCMFlXSnNZV0psYkNCR1VrOU5JSFowYVdkbGNsOTBZV0lnVjBoRlVrVWdhWE5sYm5ScGRIbDBlWEJsUFRFZ1FVNUVJSEJ5WlhObGJtTmxQVEFnUVU1RUlIUmhZbWxrSUU1UFZDQkpUaUFvUHl3L0tTQlBVa1JGVWlCQ1dTQnVZVzFsSUVGVFF3PT0iKTskR0xPQkFMU1siaE9HbVVWaUZZaHJ5UXBIekxaVE4iXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFCTVUxOVRSVXhGUTFRPSIpOyRHTE9CQUxTWyJ6eVdneGtQVWRqVXp5bllJRFlkWCJdPWJhc2U2NF9kZWNvZGUoImRHbDBiR1U9Iik7JEdMT0JBTFNbIk1CR0dMdkd3VFhHSUZEeER1ZEtJIl09YmFzZTY0X2RlY29kZSgiZEdWdGNHeGhkR1Z1WVcxbCIpOyRHTE9CQUxTWyJobEpvVGtBRGxqZ0dlZ2JFYWVXRSJdPWJhc2U2NF9kZWNvZGUoIklDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUFVrUkZVaUJDV1NCMmRHbG5aWEpmY0dSbWJXRnJaWEl1Wm1sc1pXNWhiV1VnUVZORCIpOyRHTE9CQUxTWyJGWFZBRlZtR3poUnJoR3hsbnNFUSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUhaMGFXZGxjbDl3WkdadFlXdGxjbDlrYVhOd2JHRjVaV1F1S2l3Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5TG5SbGJYQnNZWFJsYVdRc0lIWjBhV2RsY2w5d1pHWnRZV3RsY2k1bWFXeGxibUZ0WlN3Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5TG1SbGMyTnlhWEIwYVc5dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUmxKUFRTQjJkR2xuWlhKZmNHUm1iV0ZyWlhJS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVsT1RrVlNJRXBQU1U0Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5WDNObGRIUnBibWR6SUZWVFNVNUhLSFJsYlhCc1lYUmxhV1FwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JNUlVaVUlFcFBTVTRnZG5ScFoyVnlYM0JrWm0xaGEyVnlYMlJwYzNCc1lYbGxaQ0JWVTBsT1J5aDBaVzF3YkdGMFpXbGtLUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdWMGhGVWtVZ2RuUnBaMlZ5WDNCa1ptMWhhMlZ5TG0xdlpIVnNaVDAvIik7JEdMT0JBTFNbIlVlZXdTWmlwb2pJZ1pOdUhHdFRUIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJSFJsYlhCc1lYUmxhV1FzSUdselgyRmpkR2wyWlN3Z2FYTmZaR1ZtWVhWc2RDd2djMlZ4ZFdWdVkyVWdSbEpQVFNCMmRHbG5aWEpmY0dSbWJXRnJaWEpmZFhObGNuTjBZWFIxY3dvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKVGs1RlVpQktUMGxPSUhaMGFXZGxjbDl3WkdadFlXdGxjaUJWVTBsT1J5aDBaVzF3YkdGMFpXbGtLU0JYU0VWU1JTQjFjMlZ5YVdROVB3PT0iKTskR0xPQkFMU1siYnBtTlhQQWFOcFVNSFZ4S1FRYWwiXT1iYXNlNjRfZGVjb2RlKCJJRUZPUkNCcGMxOXNhWE4wZG1sbGR6MC8iKTskR0xPQkFMU1siWWtVZHV6a1VRWWdWSktsYldxd1kiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlIWjBhV2RsY2w5d1pHWnRZV3RsY2w5a2FYTndiR0Y1WldRdUtpd2dkblJwWjJWeVgzQmtabTFoYTJWeUxpb3NJSFowYVdkbGNsOXdaR1p0WVd0bGNsOXpaWFIwYVc1bmN5NHFDaUFnSUNBSkNRbEdVazlOSUhaMGFXZGxjbDl3WkdadFlXdGxjZ29nSUNBZ0NRa0pURVZHVkNCS1QwbE9JSFowYVdkbGNsOXdaR1p0WVd0bGNsOXpaWFIwYVc1bmN5QlZVMGxPUnloMFpXMXdiR0YwWldsa0tRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCTVJVWlVJRXBQU1U0Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5WDJScGMzQnNZWGxsWkNCVlUwbE9SeWgwWlcxd2JHRjBaV2xrS1FvZ0lDQWdDUWtKVjBoRlVrVWdkblJwWjJWeVgzQmtabTFoYTJWeUxuUmxiWEJzWVhSbGFXUTlQdz09Iik7JEdMT0JBTFNbIndBcGtZc2prZkZObUR0S25ya2xlIl09YmFzZTY0X2RlY29kZSgiY0dWeWJXbHpjMmx2Ym5NPSIpOyRHTE9CQUxTWyJ3anp0ZUZxRHpGUEd6VlJZQnJuTSJdPWJhc2U2NF9kZWNvZGUoIlpHVm1ZWFZzZEVKMWRIUnZiZz09Iik7JEdMT0JBTFNbIkJXR094S1lvbmxKeHdVYXdsQVciXT1iYXNlNjRfZGVjb2RlKCJZV04wYVhaaGRHVkNkWFIwYjI0PSIpOyRHTE9CQUxTWyJhQXpraVl1QkRGV1pHUW5mVWpMQiJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMVZPVTBWVVFWTkVSVVpCVlV4VSIpOyRHTE9CQUxTWyJweVJFaFB6U0xUR0ZkTGJ4UGZnQSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMU5GVkVGVFJFVkdRVlZNVkE9PSIpOyRHTE9CQUxTWyJPR09JQk91eEZGb0xQZ3phR3NTRCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMU5GVkVGVFFVTlVTVlpGIik7JEdMT0JBTFNbInltcGR2U2R6dnd4WUdRR1RGSmdQIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxTkZWRUZUU1U1QlExUkpWa1U9Iik7JEdMT0JBTFNbIk9kV0VpdWN5Y3F6bERwWFdFbXJkIl09YmFzZTY0X2RlY29kZSgiUlc1aFlteGxMbkJ1Wnc9PSIpOyRHTE9CQUxTWyJXZEFOWk5jV01CTElPUVNiUFBsTiJdPWJhc2U2NF9kZWNvZGUoIlJHbHpZV0pzWlM1d2JtYz0iKTskR0xPQkFMU1siWnZpUEd5T3BuZm9qeHNUbnVVclIiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlIWjBhV2RsY2w5d1pHWnRZV3RsY2w5a2FYTndiR0Y1WldRdUtpd2dkblJwWjJWeVgzQmtabTFoYTJWeUxpb3NJSFowYVdkbGNsOXdaR1p0WVd0bGNsOXpaWFIwYVc1bmN5NHFDZ2tKQ1VaU1QwMGdkblJwWjJWeVgzQmtabTFoYTJWeUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUV4RlJsUWdTazlKVGlCMmRHbG5aWEpmY0dSbWJXRnJaWEpmYzJWMGRHbHVaM01nVlZOSlRrY29kR1Z0Y0d4aGRHVnBaQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdURVZHVkNCS1QwbE9JSFowYVdkbGNsOXdaR1p0WVd0bGNsOWthWE53YkdGNVpXUWdWVk5KVGtjb2RHVnRjR3hoZEdWcFpDa0tDUWtKVjBoRlVrVWdkblJwWjJWeVgzQmtabTFoYTJWeUxuUmxiWEJzWVhSbGFXUTlQdz09Iik7JEdMT0JBTFNbIkNYcmh3ZlJXSnlDTmhJT0V6a2pxIl09YmFzZTY0X2RlY29kZSgiWDBaSlRGUkZVZz09Iik7JEdMT0JBTFNbImlqZXplYURVbUpBQ3V2R25kWm5EIl09YmFzZTY0X2RlY29kZSgiSWlCb2NtVm1QU0pxWVhaaGMyTnlhWEIwT25admFXUW9NQ2s3SWlCamJHRnpjejBpWkdWc1pYUmxVbVZqYjNKa1FuVjBkRzl1SWo0PSIpOyRHTE9CQUxTWyJuWVJ0Y0JJcG1qVFd6VWVacU9WeSJdPWJhc2U2NF9kZWNvZGUoIlBHeHBQanhoSUdSaGRHRXRhV1E5SWc9PSIpOyRHTE9CQUxTWyJ3YW5Udk1KbWdmb1BCTGdSR25UeiJdPWJhc2U2NF9kZWNvZGUoIlpHVnNaWFJsIik7JEdMT0JBTFNbIkpVU3NRQllrZ2l3TXFPWW9pUURpIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwUlZVRXhKUTBGVVJRPT0iKTskR0xPQkFMU1sic1hTcW51Wk5DSkxFU1R2RkNMV1QiXT1iYXNlNjRfZGVjb2RlKCJKbWx6UkhWd2JHbGpZWFJsUFhSeWRXVWlQZz09Iik7JEdMT0JBTFNbIll0UW96V1p3Y2FpTFViWER1ZCJdPWJhc2U2NF9kZWNvZGUoIlBDOWhQand2YkdrKyIpOyRHTE9CQUxTWyJ0dmt2ZFBVckRUc2lSYlJNaXJsSCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMFZFU1ZRPSIpOyRHTE9CQUxTWyJwWG1XTkdHYmtudmRycFl5Vm9PbyJdPWJhc2U2NF9kZWNvZGUoIlBHeHBQanhoSUdoeVpXWTlJbWx1WkdWNExuQm9jRDl0YjJSMWJHVTlVRVJHVFdGclpYSW1kbWxsZHoxRlpHbDBKbkpsZEhWeWJsOTJhV1YzUFV4cGMzUW1kR1Z0Y0d4aGRHVnBaRDA9Iik7JEdMT0JBTFNbInVMUm5WdE1oaWxrQlRGY1lDTkpJIl09YmFzZTY0X2RlY29kZSgiWldScGRBPT0iKTskR0xPQkFMU1sieU5sSW9PYUhPVkNobGJBWkJsY0oiXT1iYXNlNjRfZGVjb2RlKCJQQzloUGc9PSIpOyRHTE9CQUxTWyJCU0hvd0FCd0tSdW5TdU5GcHdxdyJdPWJhc2U2NF9kZWNvZGUoIklqND0iKTskR0xPQkFMU1siV0phRHlHTG93RnRNYkFKdWF1eEYiXT1iYXNlNjRfZGVjb2RlKCJQR0VnYUhKbFpqMGlhVzVrWlhndWNHaHdQMjF2WkhWc1pUMVFSRVpOWVd0bGNpWjJhV1YzUFVSbGRHRnBiQ1owWlcxd2JHRjBaV2xrUFE9PSIpOyRHTE9CQUxTWyJSVUJMaHVGRm5iZ1NXYXRBZ2xnbCJdPWJhc2U2NF9kZWNvZGUoIlNXNWhZM1JwZG1VPSIpOyRHTE9CQUxTWyJ0cFlEVGladlNqS1FnZGpCTldFZiJdPWJhc2U2NF9kZWNvZGUoIlFXTjBhWFpsIik7JEdMT0JBTFNbIk10a3dySVB6WGh4QmVBdnFDRnoiXT1iYXNlNjRfZGVjb2RlKCJjM1JoZEhWelh3PT0iKTskR0xPQkFMU1siaFhKWG55cEJrTktFb0F4a2hjWWsiXT1iYXNlNjRfZGVjb2RlKCJNdz09Iik7JEdMT0JBTFNbImpUVUlhZXJRcnNZVmh0eW90RkJpIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwWlBVbDlNVmc9PSIpOyRHTE9CQUxTWyJ2TW9lV25leXh5THFQcnhwa3ZLSiJdPWJhc2U2NF9kZWNvZGUoIk1nPT0iKTskR0xPQkFMU1siUWZlWHhxWXRDTGF5bGVRUFciXT1iYXNlNjRfZGVjb2RlKCJLUT09Iik7JEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwWlBVbDlFVmc9PSIpOyRHTE9CQUxTWyJHSVdRbHNramhXTHVDUmp6QXVaUyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMFJGUmtGVlRGUmZUazlRUVZJPSIpOyRHTE9CQUxTWyJVVG1LUkhFc1NiZE9IbUx4SWRTYiJdPWJhc2U2NF9kZWNvZGUoIklDZz0iKTskR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXT1iYXNlNjRfZGVjb2RlKCJNUT09Iik7JEdMT0JBTFNbImVackt6ZlVnQnhzYUlBSFZOWHdzIl09YmFzZTY0X2RlY29kZSgiTUE9PSIpOyRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdPWJhc2U2NF9kZWNvZGUoIiIpOyRHTE9CQUxTWyJaVUtydWdPT0dOc1VEWXB5SWx6RyJdPWJhc2U2NF9kZWNvZGUoIklBPT0iKTskR0xPQkFMU1siZ1lUWGhqeGRieUdEZEdjbE9RbXEiXT1iYXNlNjRfZGVjb2RlKCJMZz09Iik7JEdMT0JBTFNbImdVbmZUdkVPZWpBQUJiYVRRb0hNIl09YmFzZTY0X2RlY29kZSgiZG5ScFoyVnlYM0JrWm0xaGEyVnkiKTskR0xPQkFMU1sidG1qenZEWU5QYUp3ekZNRXZNS04iXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgzQmtabTFoYTJWeVgzTmxkSFJwYm1keiIpOyRHTE9CQUxTWyJQYUJXcW1kcVJ5ZFlRTElXeVVtaSJdPWJhc2U2NF9kZWNvZGUoIklFOVNSRVZTSUVKWklBPT0iKTskR0xPQkFMU1siUlZrQ1hFSWdkRUJ5a0dJQm96dCJdPWJhc2U2NF9kZWNvZGUoIklFRk9SQ0E9Iik7JEdMT0JBTFNbIldyUk5CT21wdmpNQkxMZmRCeElqIl09YmFzZTY0X2RlY29kZSgiSUZkSVJWSkZJQT09Iik7JEdMT0JBTFNbInRTQUtHeG9MTFZvS0FCd2x6TE5FIl09YmFzZTY0X2RlY29kZSgiSUQwZ1B3PT0iKTskR0xPQkFMU1sib0t1VEpOdGpXc3BMeWxwVldrIl09YmFzZTY0X2RlY29kZSgiZG5ScFoyVnlYM0JrWm0xaGEyVnlYM05sZEhScGJtZHpMZz09Iik7JEdMT0JBTFNbIlNRb0lZbGJ4QXNSdHpFVURsRnJTIl09YmFzZTY0X2RlY29kZSgiSUV4SlMwVWdQdz09Iik7JEdMT0JBTFNbIm9QYkpQTWx4Q1dGb3VNSm1hdUtVIl09YmFzZTY0X2RlY29kZSgiZG5ScFoyVnlYM0JrWm0xaGEyVnlMZz09Iik7JEdMT0JBTFNbImRpVWFzamt6TWRWWWlxSnRsZHpoIl09YmFzZTY0X2RlY29kZSgiSlE9PSIpOyRHTE9CQUxTWyJjSVphV25KWnVYQWxrSlVGcEtJRSJdPWJhc2U2NF9kZWNvZGUoImIzZHVaWEk9Iik7JEdMT0JBTFNbIndSTmpQekN4cllSQ0Z0TUtURURwIl09YmFzZTY0X2RlY29kZSgiYzJoaGNtbHVaM1I1Y0dVPSIpOyRHTE9CQUxTWyJBb2hkQlRMS0x4RFhESnZ6S09BTiJdPWJhc2U2NF9kZWNvZGUoIlpHVnpZM0pwY0hScGIyND0iKTskR0xPQkFMU1siWHNiRVJnanFPVnJ0bHpjSnp1SUUiXT1iYXNlNjRfZGVjb2RlKCJabWxzWlc1aGJXVT0iKTskR0xPQkFMU1siRUVWU0VLQXhnYVFWak9NS1NGYVEiXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bCIpOyRHTE9CQUxTWyJjdlBpTlFGYndERnNyZFFISkRReSJdPWJhc2U2NF9kZWNvZGUoImIzSmtaWEk9Iik7JEdMT0JBTFNbIm5QeGNQQnpLV3pFWWx1UlFJU1BqIl09YmFzZTY0X2RlY29kZSgiYzJWeGRXVnVZMlU9Iik7JEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl09YmFzZTY0X2RlY29kZSgiYVhOZlpHVm1ZWFZzZEE9PSIpOyRHTE9CQUxTWyJPVVNJbW5ZZE1QSURoc0NDWUJsdyJdPWJhc2U2NF9kZWNvZGUoImFYTmZZV04wYVhabCIpOyRHTE9CQUxTWyJObmh0eXVaUlNzQ1d5dVF1bHNoeSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSmZkWE5sY25OMFlYUjFjeUJKVGs1RlVpQktUMGxPSUhaMGFXZGxjbDl3WkdadFlXdGxjaUJWVTBsT1J5aDBaVzF3YkdGMFpXbGtLU0JYU0VWU1JTQjFjMlZ5YVdROVB3PT0iKTskR0xPQkFMU1sic3FzbXV1dlJIekNwS0dVeEhBcFMiXT1iYXNlNjRfZGVjb2RlKCJZWE5qIik7JEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl09YmFzZTY0X2RlY29kZSgiZEdWdGNHeGhkR1ZwWkE9PSIpOyRHTE9CQUxTWyJTQ0VQTXBzS2JvQmFjcEhZRiJdPWJhc2U2NF9kZWNvZGUoImIzZHVaWEp6Iik7JEdMT0JBTFNbInVMSUJTalZyaUZtQ0ZUaWttTUFBIl09YmFzZTY0X2RlY29kZSgiYlc5a2RXeGxjdz09Iik7JEdMT0JBTFNbIk95T0F4UFlkYUVQRW93bEhPZ1p2Il09YmFzZTY0X2RlY29kZSgiWkdWMFlXbHMiKTskR0xPQkFMU1siTW16WnJlV1VseEdSSlRlSnJ3SEYiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlIWjBhV2RsY2w5d1pHWnRZV3RsY2w5a2FYTndiR0Y1WldRdUtpd2dkblJwWjJWeVgzQmtabTFoYTJWeUxuUmxiWEJzWVhSbGFXUXNJSFowYVdkbGNsOXdaR1p0WVd0bGNpNWtaWE5qY21sd2RHbHZiaXdnZG5ScFoyVnlYM0JrWm0xaGEyVnlMbVpwYkdWdVlXMWxMQ0IyZEdsblpYSmZjR1JtYldGclpYSXViVzlrZFd4bExDQjJkR2xuWlhKZmNHUm1iV0ZyWlhKZmMyVjBkR2x1WjNNdWIzZHVaWElzSUhaMGFXZGxjbDl3WkdadFlXdGxjbDl6WlhSMGFXNW5jeTV6YUdGeWFXNW5kSGx3WlNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQk1SVVpVSUVwUFNVNGdkblJwWjJWeVgzQmtabTFoYTJWeVgzTmxkSFJwYm1keklGVlRTVTVIS0hSbGJYQnNZWFJsYVdRcElBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1RFVkdWQ0JLVDBsT0lIWjBhV2RsY2w5d1pHWnRZV3RsY2w5a2FYTndiR0Y1WldRZ1ZWTkpUa2NvZEdWdGNHeGhkR1ZwWkNrPSIpOyRHTE9CQUxTWyJvalFwQmZabE9Nc2Jwdk9FRWNUSiJdPWJhc2U2NF9kZWNvZGUoIkxpNHZkR1Z6ZEM5MWNHeHZZV1E9Iik7JEdMT0JBTFNbIkx4eFJicmNzSURJWkhrdkpxbUFHIl09YmFzZTY0X2RlY29kZSgiZEdWemRDOTFjR3h2WVdRPSIpOyRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdPWJhc2U2NF9kZWNvZGUoIlVFUkdUV0ZyWlhJPSIpOyRHTE9CQUxTWyJydUhoQ1hYQ0twU3FGdVpkamNuYyJdPWJhc2U2NF9kZWNvZGUoIlJYaHdiM0owIik7JEdMT0JBTFNbImNyb0JYZHVTUk5KS2dhVU9jYWJuIl09YmFzZTY0X2RlY29kZSgiUlZoUVQxSlVYMUpVUmc9PSIpOyRHTE9CQUxTWyJDRVRQbG5oUGFrdWZSem5Zd1FQZyJdPWJhc2U2NF9kZWNvZGUoIlJHVnNaWFJsIik7JEdMT0JBTFNbIlBEZnZqZ0t4UWVFWU5XTkpsUlpkIl09YmFzZTY0X2RlY29kZSgiUkVWTVJWUkYiKTskR0xPQkFMU1sid2RwdlBvd0J2U21IUGxVa2R0WnciXT1iYXNlNjRfZGVjb2RlKCJSR1YwWVdsc1ZtbGxkdz09Iik7JEdMT0JBTFNbIkRXa1ZHSldlbE5SeWVqTXdUc2paIl09YmFzZTY0X2RlY29kZSgiUkVWVVFVbE0iKTskR0xPQkFMU1sia2p5eWN1Z0dJcUJ5dnlEZ0FHbmkiXT1iYXNlNjRfZGVjb2RlKCJSV1JwZEZacFpYYz0iKTskR0xPQkFMU1siQVl0cEZHakNZUFdoR1hlRmluWVQiXT1iYXNlNjRfZGVjb2RlKCJSVVJKVkE9PSIpOyRHTE9CQUxTWyJDVnpUc2djaFpURGpzWElQbWlRciJdPWJhc2U2NF9kZWNvZGUoIk1qTT0iKTskR0xPQkFMU1siWXpFSURNbGJjZmRxRW5CdWlsa1UiXT1iYXNlNjRfZGVjb2RlKCJNakk9Iik7JEdMT0JBTFNbInVqQURSUVBxV1hnelpMcXZBQWZzIl09YmFzZTY0X2RlY29kZSgiTWpFPSIpOyRHTE9CQUxTWyJXSHR6bGJZbER2ZFhmRHVDWnpvUCJdPWJhc2U2NF9kZWNvZGUoIk1qQT0iKTskR0xPQkFMU1siY215RU5ESHVWTW9WcGZqbXdFUXQiXT1iYXNlNjRfZGVjb2RlKCJWbFJRUkVaTllXdGxjbFJoYzJzPSIpOyRHTE9CQUxTWyJzcFBaSk5kUEJZZUN2RUdxT1pjIl09YmFzZTY0X2RlY29kZSgiVmxSUVJFWk5ZV3RsY2sxaGFXeFVZWE5yIik7JEdMT0JBTFNbImZYUmxHR25zblFOVFZaclNTSVVQIl09YmFzZTY0X2RlY29kZSgiYVc1amJIVmtaUzlYWldKelpYSjJhV05sY3k5WFpXSlRaWEoyYVdObFJYSnliM0l1Y0dodyIpOyRHTE9CQUxTWyJ5TGZKc1BEYWNhdU1tSHJoWEJ3RiJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5WFpXSnpaWEoyYVdObGN5OUVZWFJoVkhKaGJuTm1iM0p0TG5Cb2NBPT0iKTskR0xPQkFMU1siSkd0cnZTYmhMeW5aQVNyTUp4aHEiXT1iYXNlNjRfZGVjb2RlKCJhVzVqYkhWa1pTOVhaV0p6WlhKMmFXTmxjeTlXZEdsblpYSkRVazFQWW1wbFkzUk5aWFJoTG5Cb2NBPT0iKTskR0xPQkFMU1siUXR5VGZRbkhlcWF3bVNOSEdtQ2MiXT1iYXNlNjRfZGVjb2RlKCJhVzVqYkhWa1pTOVhaV0p6WlhKMmFXTmxjeTlXZEdsblpYSkRVazFQWW1wbFkzUXVjR2h3Iik7JEdMT0JBTFNbInRHRkJKdnJJQUhJUEF1SEhpVSJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5VmMyVnljeTlWYzJWeWN5NXdhSEE9Iik7DQo/Pjw/cGhwIHJlcXVpcmVfb25jZSgkR0xPQkFMU1siRXpCTUV0aVRkQkt3RnBJbm5Qdm0iXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siUlNSVFdPTWxGUU1CQktFWlp3ekYiXSk7IHJlcXVpcmVfb25jZSAkR0xPQkFMU1siVVJQWXZJb1NKbWRaWVJLTEFTYXMiXTsgcmVxdWlyZV9vbmNlKCRHTE9CQUxTWyJ0R0ZCSnZySUFISVBBdUhIaVUiXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siUXR5VGZRbkhlcWF3bVNOSEdtQ2MiXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siSkd0cnZTYmhMeW5aQVNyTUp4aHEiXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1sieUxmSnNQRGFjYXVNbUhyaFhCd0YiXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siZlhSbEdHbnNuUU5UVlpyU1NJVVAiXSk7IHJlcXVpcmVfb25jZSAkR0xPQkFMU1sid1lEbnhEYlJSQnp6SnZPY1ZTQVAiXTsgcmVxdWlyZV9vbmNlICRHTE9CQUxTWyJ1Q0ROTEV4amJDcVZCS0xwZXVRTCJdOyByZXF1aXJlX29uY2UoJEdMT0JBTFNbInlQYW1uWFNiaHlmTnhndmZBY3BMIl0pOyByZXF1aXJlX29uY2UoJEdMT0JBTFNbImRkTXBXZGZ6WGJHdmppUUt1Vm5yIl0pOyByZXF1aXJlX29uY2UgJEdMT0JBTFNbImJ2ekhhaktOb2hTZnFwVm9jSHpQIl07IHJlcXVpcmVfb25jZSAkR0xPQkFMU1siRlhCUnhZQk9SZUVxYktqSEFmTGkiXTsgcmVxdWlyZV9vbmNlICRHTE9CQUxTWyJNbnFTV0FKeWFiTGtpZ2ppRGVHZyJdOyByZXF1aXJlX29uY2UoJEdMT0JBTFNbIlJLSHF0SHhBcW9kV0VyUlRFenZiIl0pOyBjbGFzcyBQREZNYWtlcl9QREZNYWtlcl9Nb2RlbCBleHRlbmRzIFZ0aWdlcl9Nb2R1bGVfTW9kZWwgeyBwcml2YXRlICR2ZXJzaW9uX3R5cGU7IHByaXZhdGUgJGxpY2Vuc2Vfa2V5OyBwcml2YXRlICR2ZXJzaW9uX25vOyBwcml2YXRlICRiYXNpY01vZHVsZXM7IHByaXZhdGUgJHBhZ2VGb3JtYXRzOyBwcml2YXRlICRwcm9maWxlc0FjdGlvbnM7IHByaXZhdGUgJHByb2ZpbGVzUGVybWlzc2lvbnM7IHByaXZhdGUgJHdvcmtmbG93cyA9IGFycmF5KCJWVFBERk1ha2VyTWFpbFRhc2siLCJWVFBERk1ha2VyVGFzayIpOyB2YXIgJGxvZzsgdmFyICRkYjsgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7IFBERk1ha2VyX0RlYnVnZ2VyX01vZGVsOjpHZXRJbnN0YW5jZSgpLT5Jbml0KCk7ICR0aGlzLT5sb2cgPSBMb2dnZXJNYW5hZ2VyOjpnZXRMb2dnZXIoJEdMT0JBTFNbImVneHZteGJ6YUVWaWFMRlZJamxFIl0pOyAkdGhpcy0+ZGIgPSBQZWFyRGF0YWJhc2U6OmdldEluc3RhbmNlKCk7ICR0aGlzLT5zZXRMaWNlbnNlSW5mbygpOyAkdGhpcy0+YmFzaWNNb2R1bGVzID0gYXJyYXkoIjIwIiwgIjIxIiwgIjIyIiwgIjIzIik7ICR0aGlzLT5wcm9maWxlc0FjdGlvbnMgPSBhcnJheSgiRURJVCIgPT4gIkVkaXRWaWV3IiwgIkRFVEFJTCIgPT4gIkRldGFpbFZpZXciLCAiREVMRVRFIiA9PiAiRGVsZXRlIiwgIkVYUE9SVF9SVEYiID0+ICJFeHBvcnQiLCApOyAkdGhpcy0+cHJvZmlsZXNQZXJtaXNzaW9ucyA9IGFycmF5KCk7ICR0aGlzLT5uYW1lID0gIlBERk1ha2VyIjsgJHRoaXMtPmlkID0gZ2V0VGFiSWQoIlBERk1ha2VyIik7ICRfU0VTU0lPTlskR0xPQkFMU1siZ0pDUXBDZEZFTFRhdWZRcENjcEEiXV1bJEdMT0JBTFNbInVuS0NTZmh3V0JuSkRTYkdRVmJiIl1dID0gJEdMT0JBTFNbIkx4eFJicmNzSURJWkhrdkpxbUFHIl07ICRfU0VTU0lPTlskR0xPQkFMU1siZ0pDUXBDZEZFTFRhdWZRcENjcEEiXV1bJEdMT0JBTFNbIlJwRmJ4VVBXcWhaV1ZUaXB6blBEIl1dID0gJEdMT0JBTFNbIm9qUXBCZlpsT01zYnB2T0VFY1RKIl07IH0gcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb25UeXBlKCkgeyByZXR1cm4gJHRoaXMtPnZlcnNpb25fdHlwZTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0TGljZW5zZUtleSgpIHsgcmV0dXJuICR0aGlzLT5saWNlbnNlX2tleTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0UGFnZUZvcm1hdHMoKSB7IHJldHVybiAkdGhpcy0+cGFnZUZvcm1hdHM7IH0gcHVibGljIGZ1bmN0aW9uIEdldEJhc2ljTW9kdWxlcygpIHsgcmV0dXJuICR0aGlzLT5iYXNpY01vZHVsZXM7IH0gcHVibGljIGZ1bmN0aW9uIEdldFByb2ZpbGVzQWN0aW9ucygpIHsgcmV0dXJuICR0aGlzLT5wcm9maWxlc0FjdGlvbnM7IH0gcHVibGljIGZ1bmN0aW9uIEdldFNlYXJjaFNlbGVjdGJveERhdGEoKSB7ICRTZWFyY2hfU2VsZWN0Ym94X0RhdGEgPSBhcnJheSgpOyAkc3FsID0gIlNFTEVDVCB2dGlnZXJfcGRmbWFrZXJfZGlzcGxheWVkLiosIHZ0aWdlcl9wZGZtYWtlci50ZW1wbGF0ZWlkLCB2dGlnZXJfcGRmbWFrZXIuZGVzY3JpcHRpb24sIHZ0aWdlcl9wZGZtYWtlci5maWxlbmFtZSwgdnRpZ2VyX3BkZm1ha2VyLm1vZHVsZSwgdnRpZ2VyX3BkZm1ha2VyX3NldHRpbmdzLm93bmVyLCB2dGlnZXJfcGRmbWFrZXJfc2V0dGluZ3Muc2hhcmluZ3R5cGUgICAKICAgICAgICAgICAgICAgIEZST00gdnRpZ2VyX3BkZm1ha2VyIAogICAgICAgICAgICAgICAgTEVGVCBKT0lOIHZ0aWdlcl9wZGZtYWtlcl9zZXR0aW5ncyBVU0lORyh0ZW1wbGF0ZWlkKSAKICAgICAgICAgICAgICAgIExFRlQgSk9JTiB2dGlnZXJfcGRmbWFrZXJfZGlzcGxheWVkIFVTSU5HKHRlbXBsYXRlaWQpIjsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRzcWwsIGFycmF5KCkpOyAkbnVtX3Jvd3MgPSAkdGhpcy0+ZGItPm51bV9yb3dzKCRyZXN1bHQpOyBmb3IgKCRpID0gMDsgJGkgPCAkbnVtX3Jvd3M7ICRpKyspIHsgJGN1cnJNb2R1bGUgPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAkaSwgJEdMT0JBTFNbIk53a2pxa2tiZG1CQ1daUndLR0J6Il0pOyAkdGVtcGxhdGVpZCA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsICRpLCAkR0xPQkFMU1sibVd6SE9VSXdXb3NrQ05XdUhET0UiXSk7ICRUZW1wbGF0ZV9QZXJtaXNzaW9uc19EYXRhID0gJHRoaXMtPnJldHVyblRlbXBsYXRlUGVybWlzc2lvbnNEYXRhKCRjdXJyTW9kdWxlLCAkdGVtcGxhdGVpZCk7IGlmICgkVGVtcGxhdGVfUGVybWlzc2lvbnNfRGF0YVskR0xPQkFMU1siT3lPQXhQWWRhRVBFb3dsSE9nWnYiXV0gPT09IGZhbHNlKSBjb250aW51ZTsgJG93bmVyaWQgPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAkaSwgJEdMT0JBTFNbImRpRXpEak9QbG9iS0hGVGFiIl0pOyBpZiAoIWlzc2V0KCRTZWFyY2hfU2VsZWN0Ym94X0RhdGFbJEdMT0JBTFNbInVMSUJTalZyaUZtQ0ZUaWttTUFBIl1dWyRjdXJyTW9kdWxlXSkpIHsgJFNlYXJjaF9TZWxlY3Rib3hfRGF0YVskR0xPQkFMU1sidUxJQlNqVnJpRm1DRlRpa21NQUEiXV1bJGN1cnJNb2R1bGVdID0gdnRyYW5zbGF0ZSgkY3Vyck1vZHVsZSwgJGN1cnJNb2R1bGUpOyB9IGlmICghaXNzZXQoJFNlYXJjaF9TZWxlY3Rib3hfRGF0YVskR0xPQkFMU1siU0NFUE1wc0tib0JhY3BIWUYiXV1bJG93bmVyaWRdKSkgeyAkU2VhcmNoX1NlbGVjdGJveF9EYXRhWyRHTE9CQUxTWyJTQ0VQTXBzS2JvQmFjcEhZRiJdXVskb3duZXJpZF0gPSBnZXRVc2VyRnVsbE5hbWUoJG93bmVyaWQpOyB9IH0gcmV0dXJuICRTZWFyY2hfU2VsZWN0Ym94X0RhdGE7IH0gcHVibGljIGZ1bmN0aW9uIEdldExpc3R2aWV3RGF0YSgkb3JkZXJieSA9ICJ0ZW1wbGF0ZWlkIiwgJGRpciA9ICJhc2MiLCAkcmVxdWVzdCkgeyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICRzdGF0dXNfcmVzID0gJHRoaXMtPmRiLT5wcXVlcnkoJEdMT0JBTFNbIk5uaHR5dVpSU3NDV3l1UXVsc2h5Il0sIGFycmF5KCRjdXJyZW50X3VzZXItPmlkKSk7ICRzdGF0dXNfYXJyID0gYXJyYXkoKTsgd2hpbGUgKCRzdGF0dXNfcm93ID0gJHRoaXMtPmRiLT5mZXRjaEJ5QXNzb2MoJHN0YXR1c19yZXMpKSB7ICRzdGF0dXNfYXJyWyRzdGF0dXNfcm93WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXV1bJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il1dID0gJHN0YXR1c19yb3dbJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il1dOyAkc3RhdHVzX2Fyclskc3RhdHVzX3Jvd1skR0xPQkFMU1siZGJlbWJiWExNWHdIZmdVdW5ZS28iXV1dWyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXSA9ICRzdGF0dXNfcm93WyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXTsgJHN0YXR1c19hcnJbJHN0YXR1c19yb3dbJEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl1dXVskR0xPQkFMU1siblB4Y1BCektXekVZbHVSUUlTUGoiXV0gPSAkc3RhdHVzX3Jvd1skR0xPQkFMU1siblB4Y1BCektXekVZbHVSUUlTUGoiXV07IH0gJG9yaWdpbk9yZGVyYnkgPSAkb3JkZXJieTsgJG9yaWdpbkRpciA9ICRkaXI7IGlmICgkb3JkZXJieSA9PSAkR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXSkgeyAkb3JkZXJieSA9ICRHTE9CQUxTWyJFRVZTRUtBeGdhUVZqT01LU0ZhUSJdOyAkZGlyID0gJEdMT0JBTFNbInNxc211dXZSSHpDcEtHVXhIQXBTIl07IH0gJFJfQXRyID0gYXJyYXkoKTsgJHNxbCA9ICJTRUxFQ1QgdnRpZ2VyX3BkZm1ha2VyX2Rpc3BsYXllZC4qLCB2dGlnZXJfcGRmbWFrZXIudGVtcGxhdGVpZCwgdnRpZ2VyX3BkZm1ha2VyLmRlc2NyaXB0aW9uLCB2dGlnZXJfcGRmbWFrZXIuZmlsZW5hbWUsIHZ0aWdlcl9wZGZtYWtlci5tb2R1bGUsIHZ0aWdlcl9wZGZtYWtlcl9zZXR0aW5ncy5vd25lciwgdnRpZ2VyX3BkZm1ha2VyX3NldHRpbmdzLnNoYXJpbmd0eXBlICAgCiAgICAgICAgICAgICAgICBGUk9NIHZ0aWdlcl9wZGZtYWtlciAKICAgICAgICAgICAgICAgIExFRlQgSk9JTiB2dGlnZXJfcGRmbWFrZXJfc2V0dGluZ3MgVVNJTkcodGVtcGxhdGVpZCkgCiAgICAgICAgICAgICAgICBMRUZUIEpPSU4gdnRpZ2VyX3BkZm1ha2VyX2Rpc3BsYXllZCBVU0lORyh0ZW1wbGF0ZWlkKSI7ICRTZWFyY2ggPSBhcnJheSgpOyAkU2VhcmNoX1R5cGVzID0gYXJyYXkoImZpbGVuYW1lIiwibW9kdWxlIiwiZGVzY3JpcHRpb24iLCJzaGFyaW5ndHlwZSIsIm93bmVyIik7IGZvcmVhY2ggKCRTZWFyY2hfVHlwZXMgQVMgJHN0KSB7IGlmICgkcmVxdWVzdC0+aGFzKCRHTE9CQUxTWyJMWlJGclRDdUtwWFJXQ2NTdmpKdiJdLiRzdCkgJiYgISRyZXF1ZXN0LT5pc0VtcHR5KCRHTE9CQUxTWyJMWlJGclRDdUtwWFJXQ2NTdmpKdiJdLiRzdCkpIHsgJHNlYXJjaF92YWwgPSAkcmVxdWVzdC0+Z2V0KCRHTE9CQUxTWyJMWlJGclRDdUtwWFJXQ2NTdmpKdiJdLiRzdCk7IGlmICgkc3QgPT0gJEdMT0JBTFNbIlhzYkVSZ2pxT1ZydGx6Y0p6dUlFIl0gfHwgJHN0ID09ICRHTE9CQUxTWyJBb2hkQlRMS0x4RFhESnZ6S09BTiJdICkgeyAkc2VhcmNoX3ZhbCA9ICRHTE9CQUxTWyJkaVVhc2prek1kVllpcUp0bGR6aCJdLiRzZWFyY2hfdmFsLiRHTE9CQUxTWyJkaVVhc2prek1kVllpcUp0bGR6aCJdOyAkU2VhcmNoW10gPSAkR0xPQkFMU1sib1BiSlBNbHhDV0ZvdU1KbWF1S1UiXS4kc3QuJEdMT0JBTFNbIlNRb0lZbGJ4QXNSdHpFVURsRnJTIl07IH0gZWxzZWlmICgkc3QgPT0gJEdMT0JBTFNbImNJWmFXbkpadVhBbGtKVUZwS0lFIl0gfHwgJHN0ID09ICRHTE9CQUxTWyJ3Uk5qUHpDeHJZUkNGdE1LVEVEcCJdKSB7ICRTZWFyY2hbXSA9ICRHTE9CQUxTWyJvS3VUSk50aldzcEx5bHBWV2siXS4kc3QuJEdMT0JBTFNbInRTQUtHeG9MTFZvS0FCd2x6TE5FIl07IH0gZWxzZSB7ICRTZWFyY2hbXSA9ICRHTE9CQUxTWyJvUGJKUE1seENXRm91TUptYXVLVSJdLiRzdC4kR0xPQkFMU1sidFNBS0d4b0xMVm9LQUJ3bHpMTkUiXTsgfSAkUl9BdHJbXSA9ICRzZWFyY2hfdmFsOyB9IH0gaWYgKGNvdW50KCRTZWFyY2gpID4gMCl7ICRzcWwgLj0gJEdMT0JBTFNbIldyUk5CT21wdmpNQkxMZmRCeElqIl07ICRzcWwgLj0gaW1wbG9kZSgkR0xPQkFMU1siUlZrQ1hFSWdkRUJ5a0dJQm96dCJdLCRTZWFyY2gpOyB9IGlmICghZW1wdHkoJG9yZGVyYnkpKSB7ICRzcWwgLj0gJEdMT0JBTFNbIlBhQldxbWRxUnlkWVFMSVd5VW1pIl07IGlmICgkb3JkZXJieSA9PSAkR0xPQkFMU1siY0laYVduSlp1WEFsa0pVRnBLSUUiXSB8fCAkb3JkZXJieT09JEdMT0JBTFNbIndSTmpQekN4cllSQ0Z0TUtURURwIl0pIHsgJHNxbCAuPSAkR0xPQkFMU1sidG1qenZEWU5QYUp3ekZNRXZNS04iXTsgfSBlbHNlIHsgJHNxbCAuPSAkR0xPQkFMU1siZ1VuZlR2RU9lakFBQmJhVFFvSE0iXTsgfSAkc3FsIC49ICRHTE9CQUxTWyJnWVRYaGp4ZGJ5R0RkR2NsT1FtcSJdIC4gJG9yZGVyYnkgLiAkR0xPQkFMU1siWlVLcnVnT09HTnNVRFlweUlsekciXSAuICRkaXI7IH0gJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRzcWwsICRSX0F0cik7ICRyZXR1cm5fZGF0YSA9IEFycmF5KCk7ICRudW1fcm93cyA9ICR0aGlzLT5kYi0+bnVtX3Jvd3MoJHJlc3VsdCk7IGZvciAoJGkgPSAwOyAkaSA8ICRudW1fcm93czsgJGkrKykgeyAkY3Vyck1vZHVsZSA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsICRpLCAkR0xPQkFMU1siTndranFra2JkbUJDV1pSd0tHQnoiXSk7ICR0ZW1wbGF0ZWlkID0gJHRoaXMtPmRiLT5xdWVyeV9yZXN1bHQoJHJlc3VsdCwgJGksICRHTE9CQUxTWyJtV3pIT1VJd1dvc2tDTld1SERPRSJdKTsgJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGEgPSAkdGhpcy0+cmV0dXJuVGVtcGxhdGVQZXJtaXNzaW9uc0RhdGEoJGN1cnJNb2R1bGUsICR0ZW1wbGF0ZWlkKTsgaWYgKCRUZW1wbGF0ZV9QZXJtaXNzaW9uc19EYXRhWyRHTE9CQUxTWyJPeU9BeFBZZGFFUEVvd2xIT2dadiJdXSA9PT0gZmFsc2UpIGNvbnRpbnVlOyAkcGRmdGVtcGxhdGVhcnJheSA9IGFycmF5KCk7ICRzdWZmaXggPSAiIjsgaWYgKGlzc2V0KCRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXSkpIHsgaWYgKCRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPT0gJEdMT0JBTFNbImVackt6ZlVnQnhzYUlBSFZOWHdzIl0pICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSA9IDA7IGVsc2UgeyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1sianZOVVp1QXJEbERiVnNES0tOalQiXV0gPSAxOyBzd2l0Y2ggKCRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV0pIHsgY2FzZSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXTogJHN1ZmZpeCA9ICRHTE9CQUxTWyJVVG1LUkhFc1NiZE9IbUx4SWRTYiJdIC4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siR0lXUWxza2poV0x1Q1JqekF1WlMiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pIC4gJEdMT0JBTFNbIlpVS3J1Z09PR05zVURZcHlJbHpHIl0gLiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJmYmV6b0FqRWxRa3J0YmNIZU5ETiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkR0xPQkFMU1siUWZlWHhxWXRDTGF5bGVRUFciXTsgYnJlYWs7IGNhc2UgJEdMT0JBTFNbInZNb2VXbmV5eHlMcVByeHBrdktKIl06ICRzdWZmaXggPSAkR0xPQkFMU1siVVRtS1JIRXNTYmRPSG1MeElkU2IiXSAuIHZ0cmFuc2xhdGUoJEdMT0JBTFNbIkdJV1Fsc2tqaFdMdUNSanpBdVpTIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRHTE9CQUxTWyJaVUtydWdPT0dOc1VEWXB5SWx6RyJdIC4gdnRyYW5zbGF0ZSgkR0xPQkFMU1sialRVSWFlclFyc1lWaHR5b3RGQmkiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pIC4gJEdMT0JBTFNbIlFmZVh4cVl0Q0xheWxlUVBXIl07IGJyZWFrOyBjYXNlICRHTE9CQUxTWyJoWEpYbnlwQmtOS0VvQXhraGNZayJdOiAkc3VmZml4ID0gJEdMT0JBTFNbIlVUbUtSSEVzU2JkT0htTHhJZFNiIl0gLiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJHSVdRbHNramhXTHVDUmp6QXVaUyJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkR0xPQkFMU1siUWZlWHhxWXRDTGF5bGVRUFciXTsgYnJlYWs7IH0gfSAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siQWZUenl0ak1zUHRLWlJrRVVQWVkiXV0gPSAkc3RhdHVzX2FyclskdGVtcGxhdGVpZF1bJEdMT0JBTFNbIm5QeGNQQnpLV3pFWWx1UlFJU1BqIl1dOyB9IGVsc2UgeyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1sianZOVVp1QXJEbERiVnNES0tOalQiXV0gPSAxOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siQWZUenl0ak1zUHRLWlJrRVVQWVkiXV0gPSAxOyB9IGlmICgkcmVxdWVzdC0+aGFzKCRHTE9CQUxTWyJHZmdCT0VjaURWUW1UalB4Y2N3YyJdKSAmJiAhJHJlcXVlc3QtPmlzRW1wdHkoJEdMT0JBTFNbIkdmZ0JPRWNpRFZRbVRqUHhjY3djIl0pKSB7IGlmICgkcmVxdWVzdC0+Z2V0KCRHTE9CQUxTWyJHZmdCT0VjaURWUW1UalB4Y2N3YyJdKSAhPSAkR0xPQkFMU1siTXRrd3JJUHpYaHhCZUF2cUNGeiJdLiRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSkgeyBjb250aW51ZTsgfSB9ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJJYWxIa1VJelFJVklWTlVLZEEiXV0gPSAoJHBkZnRlbXBsYXRlYXJyYXlbJEdMT0JBTFNbImp2TlVadUFyRGxEYlZzREtLTmpUIl1dID09IDEgPyB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ0cFlEVGladlNqS1FnZGpCTldFZiJdKSA6IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIlJVQkxodUZGbmJnU1dhdEFnbGdsIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSk7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJtV3pIT1VJd1dvc2tDTld1SERPRSJdXSA9ICR0ZW1wbGF0ZWlkOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siRWJYSWF3cW5IRGJEUFBweFhScCJdXSA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsICRpLCAkR0xPQkFMU1siRWJYSWF3cW5IRGJEUFBweFhScCJdKTsgJHBkZnRlbXBsYXRlYXJyYXlbJEdMT0JBTFNbIk53a2pxa2tiZG1CQ1daUndLR0J6Il1dID0gdnRyYW5zbGF0ZSgkY3Vyck1vZHVsZSwgJGN1cnJNb2R1bGUpOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siR1hsTnZoRFltQ0dzV2ZxTE16cFAiXV0gPSAkR0xPQkFMU1siV0phRHlHTG93RnRNYkFKdWF1eEYiXSAuICR0ZW1wbGF0ZWlkIC4gJEdMT0JBTFNbIkJTSG93QUJ3S1J1blN1TkZwd3F3Il0gLiAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAkaSwgJEdMT0JBTFNbIkdYbE52aERZbUNHc1dmcUxNenBQIl0pIC4gJHN1ZmZpeCAuICRHTE9CQUxTWyJ5TmxJb09hSE9WQ2hsYkFaQmxjSiJdOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siSkJia3ZFWEVEeWxzQXpsd015emgiXV0gPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXTsgaWYgKCRUZW1wbGF0ZV9QZXJtaXNzaW9uc19EYXRhWyRHTE9CQUxTWyJ1TFJuVnRNaGlsa0JURmNZQ05KSSJdXSkgeyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siSkJia3ZFWEVEeWxzQXpsd015emgiXV0gLj0gJEdMT0JBTFNbInBYbVdOR0dia252ZHJwWXlWb09vIl0gLiAkdGVtcGxhdGVpZCAuICRHTE9CQUxTWyJCU0hvd0FCd0tSdW5TdU5GcHdxdyJdIC4gdnRyYW5zbGF0ZSgkR0xPQkFMU1sidHZrdmRQVXJEVHNpUmJSTWlybEgiXSwgJE1PRFVMRSkgLiAkR0xPQkFMU1siWXRRb3pXWndjYWlMVWJYRHVkIl0gLiAkR0xPQkFMU1sicFhtV05HR2JrbnZkcnBZeVZvT28iXSAuICR0ZW1wbGF0ZWlkIC4gJEdMT0JBTFNbInNYU3FudVpOQ0pMRVNUdkZDTFdUIl0gLiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJKVVNzUUJZa2dpd01xT1lvaVFEaSJdLCAkTU9EVUxFKSAuICRHTE9CQUxTWyJZdFFveldad2NhaUxVYlhEdWQiXTsgfSBpZiAoJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGFbJEdMT0JBTFNbIndhblR2TUptZ2ZvUEJMZ1JHblR6Il1dKSB7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJKQmJrdkVYRUR5bHNBemx3TXl6aCJdXSAuPSAkR0xPQkFMU1sibllSdGNCSXBtalRXelVlWnFPVnkiXSAuICR0ZW1wbGF0ZWlkIC4gJEdMT0JBTFNbImlqZXplYURVbUpBQ3V2R25kWm5EIl0udnRyYW5zbGF0ZSgkR0xPQkFMU1siWFNiS1dqSFdZUENJQXlDaUR0ck8iXSwgJE1PRFVMRSkuJEdMT0JBTFNbIll0UW96V1p3Y2FpTFViWER1ZCJdOyB9ICRvd25lciA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsICRpLCAkR0xPQkFMU1siZGlFekRqT1Bsb2JLSEZUYWIiXSk7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJkaUV6RGpPUGxvYktIRlRhYiJdXSA9IGdldFVzZXJGdWxsTmFtZSgkb3duZXIpOyAkc2hhcmluZ3R5cGUgPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAkaSwgJEdMT0JBTFNbIkh2ZXBvTEl5T2luYXJoVUVBaFB3Il0pOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siUXJzSnZDeVNWT1paTnlKeVh2bUIiXV0gPSB2dHJhbnNsYXRlKHN0cnRvdXBwZXIoJHNoYXJpbmd0eXBlKS4kR0xPQkFMU1siQ1hyaHdmUldKeUNOaElPRXpranEiXSwkR0xPQkFMU1siRkVkVWp4dmZjblR3RHdrbVJmbyJdKTsgJHJldHVybl9kYXRhIFtdID0gJHBkZnRlbXBsYXRlYXJyYXk7IH0gaWYgKCRvcmlnaW5PcmRlcmJ5ID09ICRHTE9CQUxTWyJjdlBpTlFGYndERnNyZFFISkRReSJdKSB7ICRtb2R1bGVzID0gYXJyYXkoKTsgZm9yZWFjaCAoJHJldHVybl9kYXRhIGFzICRrZXkgPT4gJHRlbXBsYXRlQXJyKSAkbW9kdWxlc1skdGVtcGxhdGVBcnJbJEdMT0JBTFNbIkVFVlNFS0F4Z2FRVmpPTUtTRmFRIl1dXVska2V5XSA9ICR0ZW1wbGF0ZUFyclskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV07ICR0bXBBcnIgPSBhcnJheSgpOyBmb3JlYWNoICgkbW9kdWxlcyBhcyAkb3JkZXJBcnIpIHsgaWYgKCRvcmlnaW5EaXIgPT0gJEdMT0JBTFNbInNxc211dXZSSHpDcEtHVXhIQXBTIl0pIGFzb3J0KCRvcmRlckFyciwgU09SVF9OVU1FUklDKTsgZWxzZSBhcnNvcnQoJG9yZGVyQXJyLCBTT1JUX05VTUVSSUMpOyBmb3JlYWNoICgkb3JkZXJBcnIgYXMgJHJkSWR4ID0+ICRvcmRlcikgJHRtcEFycltdID0gJHJldHVybl9kYXRhWyRyZElkeF07IH0gJHJldHVybl9kYXRhID0gJHRtcEFycjsgfSByZXR1cm4gJHJldHVybl9kYXRhOyB9IHB1YmxpYyBmdW5jdGlvbiBHZXREZXRhaWxWaWV3RGF0YSgkdGVtcGxhdGVpZCkgeyAkc3FsID0gJEdMT0JBTFNbIlp2aVBHeU9wbmZvanhzVG51VXJSIl07ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLCBhcnJheSgkdGVtcGxhdGVpZCkpOyAkcGRmdGVtcGxhdGVSZXN1bHQgPSAkdGhpcy0+ZGItPmZldGNoX2FycmF5KCRyZXN1bHQpOyAkVGVtcGxhdGVfUGVybWlzc2lvbnNfRGF0YSA9ICR0aGlzLT5yZXR1cm5UZW1wbGF0ZVBlcm1pc3Npb25zRGF0YSgkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIkVFVlNFS0F4Z2FRVmpPTUtTRmFRIl1dLCAkdGVtcGxhdGVpZCk7IGlmICgkVGVtcGxhdGVfUGVybWlzc2lvbnNfRGF0YVskR0xPQkFMU1siT3lPQXhQWWRhRVBFb3dsSE9nWnYiXV0gPT09IGZhbHNlKSB7ICR0aGlzLT5EaWVEdWVQZXJtaXNzaW9uKCk7IH0gJGRhdGEgPSAkdGhpcy0+Z2V0VXNlclN0YXR1c0RhdGEoJHRlbXBsYXRlaWQpOyAkbm9faW1nX3BhdGggPSB2aW1hZ2VfcGF0aCgkR0xPQkFMU1siV2RBTlpOY1dNQkxJT1FTYlBQbE4iXSk7ICRub19pbWcgPSAkR0xPQkFMU1siRWJsUnRNQ25BTWVlaU1GUUF3cEIiXS4kbm9faW1nX3BhdGguJEdMT0JBTFNbInJEU0NrcWFISHNUS2l2bnp2ZUhxIl07ICR5ZXNfaW1nX3BhdGggPSB2aW1hZ2VfcGF0aCgkR0xPQkFMU1siT2RXRWl1Y3ljcXpsRHBYV0VtcmQiXSk7ICR5ZXNfaW1nID0gJEdMT0JBTFNbIkVibFJ0TUNuQU1lZWlNRlFBd3BCIl0uJHllc19pbWdfcGF0aC4kR0xPQkFMU1siTXdjWGhQTmRTcHl1UGxoVmNNIl07IGlmIChjb3VudCgkZGF0YSkgPiAwKSB7IGlmICgkZGF0YVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPT0gJEdMT0JBTFNbIlV0eEV3bnpHd0ZTQm1keHByem5uIl0pIHsgJGlzX2FjdGl2ZSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInRwWURUaVp2U2pLUWdkakJOV0VmIl0pOyAkYWN0aXZhdGVCdXR0b24gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ5bXBkdlNkenZ3eFlHUUdURkpnUCJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IH0gZWxzZSB7ICRpc19hY3RpdmUgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJSVUJMaHVGRm5iZ1NXYXRBZ2xnbCJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7ICRhY3RpdmF0ZUJ1dHRvbiA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIk9HT0lCT3V4RkZvTFBnemFHc1NEIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgfSBzd2l0Y2ggKCRkYXRhWyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXSkgeyBjYXNlICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdOiAkaXNfZGVmYXVsdCA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRub19pbWcgLiRHTE9CQUxTWyJZcUt5TWtPaFZSV2h2aHZJVFBBIl07ICRpc19kZWZhdWx0IC49IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImpUVUlhZXJRcnNZVmh0eW90RkJpIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRub19pbWc7ICRkZWZhdWx0QnV0dG9uID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1sicHlSRWhQelNMVEdGZExieFBmZ0EiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyBicmVhazsgY2FzZSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXTogJGlzX2RlZmF1bHQgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJmYmV6b0FqRWxRa3J0YmNIZU5ETiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkeWVzX2ltZyAuJEdMT0JBTFNbIllxS3lNa09oVlJXaHZodklUUEEiXTsgJGlzX2RlZmF1bHQgLj0gdnRyYW5zbGF0ZSgkR0xPQkFMU1sialRVSWFlclFyc1lWaHR5b3RGQmkiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pIC4gJG5vX2ltZzsgJGRlZmF1bHRCdXR0b24gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJhQXpraVl1QkRGV1pHUW5mVWpMQiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IGJyZWFrOyBjYXNlICRHTE9CQUxTWyJ2TW9lV25leXh5THFQcnhwa3ZLSiJdOiAkaXNfZGVmYXVsdCA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRub19pbWcgLiAkR0xPQkFMU1siWXFLeU1rT2hWUldodmh2SVRQQSJdOyAkaXNfZGVmYXVsdCAuPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJqVFVJYWVyUXJzWVZodHlvdEZCaSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkeWVzX2ltZzsgJGRlZmF1bHRCdXR0b24gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJhQXpraVl1QkRGV1pHUW5mVWpMQiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IGJyZWFrOyBjYXNlICRHTE9CQUxTWyJoWEpYbnlwQmtOS0VvQXhraGNZayJdOiAkaXNfZGVmYXVsdCA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICR5ZXNfaW1nLiAkR0xPQkFMU1siWXFLeU1rT2hWUldodmh2SVRQQSJdOyAkaXNfZGVmYXVsdCAuPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJqVFVJYWVyUXJzWVZodHlvdEZCaSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkeWVzX2ltZzsgJGRlZmF1bHRCdXR0b24gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJhQXpraVl1QkRGV1pHUW5mVWpMQiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IGJyZWFrOyB9IH0gZWxzZSB7ICRpc19hY3RpdmUgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ0cFlEVGladlNqS1FnZGpCTldFZiJdKTsgJGFjdGl2YXRlQnV0dG9uID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1sieW1wZHZTZHp2d3hZR1FHVEZKZ1AiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkaXNfZGVmYXVsdCA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRub19pbWcgLiAkR0xPQkFMU1siWXFLeU1rT2hWUldodmh2SVRQQSJdOyAkaXNfZGVmYXVsdCAuPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJqVFVJYWVyUXJzWVZodHlvdEZCaSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkbm9faW1nOyAkZGVmYXVsdEJ1dHRvbiA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInB5UkVoUHpTTFRHRmRMYnhQZmdBIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgfSAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il1dID0gJGlzX2FjdGl2ZTsgJHBkZnRlbXBsYXRlUmVzdWx0WyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXSA9ICRpc19kZWZhdWx0OyAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIkJXR094S1lvbmxKeHdVYXdsQVciXV0gPSAkYWN0aXZhdGVCdXR0b247ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1sid2p6dGVGcUR6RlBHelZSWUJybk0iXV0gPSAkZGVmYXVsdEJ1dHRvbjsgJHBkZnRlbXBsYXRlUmVzdWx0WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXSA9ICR0ZW1wbGF0ZWlkOyAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIndBcGtZc2prZkZObUR0S25ya2xlIl1dID0gJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGE7IHJldHVybiAkcGRmdGVtcGxhdGVSZXN1bHQ7IH0gcHVibGljIGZ1bmN0aW9uIEdldEVkaXRWaWV3RGF0YSgkdGVtcGxhdGVpZCkgeyAkc3FsID0gJEdMT0JBTFNbIllrVWR1emtVUVlnVkpLbGJXcXdZIl07ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLCBhcnJheSgkdGVtcGxhdGVpZCkpOyAkcGRmdGVtcGxhdGVSZXN1bHQgPSAkdGhpcy0+ZGItPmZldGNoX2FycmF5KCRyZXN1bHQpOyAkZGF0YSA9ICR0aGlzLT5nZXRVc2VyU3RhdHVzRGF0YSgkdGVtcGxhdGVpZCk7IGlmIChjb3VudCgkZGF0YSkgPiAwKSB7ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPSAkZGF0YVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV07ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV0gPSAkZGF0YVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV07ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV0gPSAkZGF0YVskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV07IH0gZWxzZSB7ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXTsgJHBkZnRlbXBsYXRlUmVzdWx0WyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXSA9ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdOyAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbImN2UGlOUUZid0RGc3JkUUhKRFF5Il1dID0gJEdMT0JBTFNbIlV0eEV3bnpHd0ZTQm1keHByem5uIl07IH0gJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGEgPSAkdGhpcy0+cmV0dXJuVGVtcGxhdGVQZXJtaXNzaW9uc0RhdGEoJHBkZnRlbXBsYXRlUmVzdWx0WyRHTE9CQUxTWyJFRVZTRUtBeGdhUVZqT01LU0ZhUSJdXSwgJHRlbXBsYXRlaWQpOyAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIndBcGtZc2prZkZObUR0S25ya2xlIl1dID0gJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGE7IHJldHVybiAkcGRmdGVtcGxhdGVSZXN1bHQ7IH0gcHVibGljIGZ1bmN0aW9uIEdldEF2YWlsYWJsZVRlbXBsYXRlcygkY3Vyck1vZHVsZSwgJGZvckxpc3RWaWV3ID0gZmFsc2UsICRyZWNvcmRJZCA9IGZhbHNlKSB7ICRjdXJyZW50X3VzZXIgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJGVudGl0eUNhY2hlID0gbmV3IFZURW50aXR5Q2FjaGUoJGN1cnJlbnRfdXNlcik7ICRlbnRpdHlEYXRhID0gZmFsc2U7ICR3aGVyZV9sdiA9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdOyAkaXNfbGlzdHZpZXcgPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXTsgaWYgKCRmb3JMaXN0VmlldyA9PSBmYWxzZSkgeyAkd2hlcmVfbHYgPSAkR0xPQkFMU1siYnBtTlhQQWFOcFVNSFZ4S1FRYWwiXTsgJGlzX2xpc3R2aWV3ID0gJEdMT0JBTFNbImVackt6ZlVnQnhzYUlBSFZOWHdzIl07IH0gJHN0YXR1c19yZXMgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siVWVld1NaaXBvaklnWk51SEd0VFQiXSwgYXJyYXkoJGN1cnJlbnRfdXNlci0+aWQpKTsgJHN0YXR1c19hcnIgPSBhcnJheSgpOyB3aGlsZSAoJHN0YXR1c19yb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkc3RhdHVzX3JlcykpIHsgJHN0YXR1c19hcnJbJHN0YXR1c19yb3dbJEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl1dXVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPSAkc3RhdHVzX3Jvd1skR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV07ICRzdGF0dXNfYXJyWyRzdGF0dXNfcm93WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXV1bJEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl1dID0gJHN0YXR1c19yb3dbJEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl1dOyAkc3RhdHVzX2Fyclskc3RhdHVzX3Jvd1skR0xPQkFMU1siZGJlbWJiWExNWHdIZmdVdW5ZS28iXV1dWyRHTE9CQUxTWyJuUHhjUEJ6S1d6RVlsdVJRSVNQaiJdXSA9ICRzdGF0dXNfcm93WyRHTE9CQUxTWyJuUHhjUEJ6S1d6RVlsdVJRSVNQaiJdXTsgfSAkc3FsID0gJEdMT0JBTFNbIkZYVkFGVm1HemhScmhHeGxuc0VRIl0gLiAkd2hlcmVfbHYgLiAkR0xPQkFMU1siaGxKb1RrQURsamdHZWdiRWFlV0UiXTsgJHBhcmFtcyA9IGFycmF5KCRjdXJyTW9kdWxlKTsgaWYgKCRmb3JMaXN0VmlldyA9PSBmYWxzZSl7ICRwYXJhbXMgPSBhcnJheSgkY3Vyck1vZHVsZSwgJGlzX2xpc3R2aWV3KTsgaWYgKCRyZWNvcmRJZCkgeyAkZW50aXR5RGF0YSA9IFZURW50aXR5RGF0YTo6ZnJvbUVudGl0eUlkKCR0aGlzLT5kYiwgJHJlY29yZElkKTsgfSB9ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLCAkcGFyYW1zKTsgJHJldHVybl9hcnJheSA9IGFycmF5KCk7IHdoaWxlICgkcm93ID0gJHRoaXMtPmRiLT5mZXRjaEJ5QXNzb2MoJHJlc3VsdCkpIHsgJHRlbXBsYXRlaWQgPSAkcm93WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXTsgaWYgKCR0aGlzLT5DaGVja1RlbXBsYXRlUGVybWlzc2lvbnMoJGN1cnJNb2R1bGUsICR0ZW1wbGF0ZWlkLCBmYWxzZSkgPT0gZmFsc2UpIGNvbnRpbnVlOyBpZiAoJHJlY29yZElkICYmICEkZm9yTGlzdFZpZXcpIHsgJFBERk1ha2VyX0Rpc3BsYXlfTW9kZWwgPSBuZXcgUERGTWFrZXJfRGlzcGxheV9Nb2RlbCgpOyBpZiAoJFBERk1ha2VyX0Rpc3BsYXlfTW9kZWwtPkNoZWNrRGlzcGxheUNvbmRpdGlvbnMoJHJvdywkZW50aXR5RGF0YSwkY3Vyck1vZHVsZSwkZW50aXR5Q2FjaGUpID09IGZhbHNlKSBjb250aW51ZTsgfSAkcGRmdGVtcGxhdGVhcnJheSA9IGFycmF5KCk7IGlmIChpc3NldCgkc3RhdHVzX2FyclskdGVtcGxhdGVpZF0pKSB7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSA9ICRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV07ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJXV01jS3p4YVR3UG9zdVZyZGhmSCJdXSA9ICRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV07ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJBZlR6eXRqTXNQdEtaUmtFVVBZWSJdXSA9ICRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siblB4Y1BCektXekVZbHVSUUlTUGoiXV07IH0gZWxzZSB7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSA9ICRHTE9CQUxTWyJVdHhFd256R3dGU0JtZHhwcnpubiJdOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siV1dNY0t6eGFUd1Bvc3VWcmRoZkgiXV0gPSAkR0xPQkFMU1siZVpyS3pmVWdCeHNhSUFIVk5Yd3MiXTsgJHBkZnRlbXBsYXRlYXJyYXlbJEdMT0JBTFNbIkFmVHp5dGpNc1B0S1pSa0VVUFlZIl1dID0gJEdMT0JBTFNbIlV0eEV3bnpHd0ZTQm1keHByem5uIl07IH0gaWYgKCRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSA9PSAkR0xPQkFMU1siZVpyS3pmVWdCeHNhSUFIVk5Yd3MiXSkgY29udGludWU7ICRyZXR1cm5fYXJyYXlbJHJvd1skR0xPQkFMU1siZGJlbWJiWExNWHdIZmdVdW5ZS28iXV1dWyRHTE9CQUxTWyJNQkdHTHZHd1RYR0lGRHhEdWRLSSJdXSA9ICRyb3dbJEdMT0JBTFNbIlhzYkVSZ2pxT1ZydGx6Y0p6dUlFIl1dOyAkcmV0dXJuX2FycmF5WyRyb3dbJEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl1dXVskR0xPQkFMU1sienlXZ3hrUFVkalV6eW5ZSURZZFgiXV0gPSAkcm93WyRHTE9CQUxTWyJBb2hkQlRMS0x4RFhESnZ6S09BTiJdXTsgJHJldHVybl9hcnJheVskcm93WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXV1bJEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl1dID0gJHBkZnRlbXBsYXRlYXJyYXlbJEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl1dOyAkcmV0dXJuX2FycmF5WyRyb3dbJEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl1dXVskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV0gPSAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV07IH0gaWYgKGNvdW50KCRyZXR1cm5fYXJyYXkpID09IDEpIHsgJHRtcF9hcnIgPSAkcmV0dXJuX2FycmF5OyByZXNldCgkdG1wX2Fycik7ICRrZXkgPSBrZXkoJHRtcF9hcnIpOyAkcmV0dXJuX2FycmF5WyRrZXldWyRHTE9CQUxTWyJNQkdHTHZHd1RYR0lGRHhEdWRLSSJdXSA9ICR0bXBfYXJyWyRrZXldWyRHTE9CQUxTWyJNQkdHTHZHd1RYR0lGRHhEdWRLSSJdXTsgJHJldHVybl9hcnJheVska2V5XVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV0gPSAkR0xPQkFMU1siaFhKWG55cEJrTktFb0F4a2hjWWsiXTsgfSByZXR1cm4gJHJldHVybl9hcnJheTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0QWxsTW9kdWxlcygpIHsgJE1vZHVsZW5hbWVzID0gQXJyYXkoJEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siaE9HbVVWaUZZaHJ5UXBIekxaVE4iXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pKTsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJ6eWxHcGVxZVNSa3dmYVlHRGlGSyJdLGFycmF5KCRHTE9CQUxTWyJJU0pYdWZoYmtHWEt2cWVIS1FMdCJdLCAkR0xPQkFMU1sibnZpUExIWGN4bWVlcllBbHFIS2QiXSkpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQpKSB7IGlmIChmaWxlX2V4aXN0cygkR0xPQkFMU1siWXRjV0Zybmx1cGx5eUd5Q3l0UHYiXSAuICRyb3dbJEdMT0JBTFNbIkJvV3VCZmF2S3FKeGVMZ0N1TEEiXV0pKSB7IGlmIChpc1Blcm1pdHRlZCgkcm93WyRHTE9CQUxTWyJCb1d1QmZhdktxSnhlTGdDdUxBIl1dLCAkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSkgIT0gJEdMT0JBTFNbInlyeHhZRFZIclJzWE1zZXZvU2dWIl0pIGNvbnRpbnVlOyBpZiAoaW5fYXJyYXkoJHJvd1skR0xPQkFMU1siU1lFbVBKcHhMQ0habVlCcElOWWgiXV0sICR0aGlzLT5iYXNpY01vZHVsZXMpID09IHRydWUgfHwgJHRoaXMtPnZlcnNpb25fdHlwZSA9PSAkR0xPQkFMU1siZG9MU3RjUVlhVlNZTE9GR3F3Il0pICRNb2R1bGVuYW1lc1skcm93WyRHTE9CQUxTWyJCb1d1QmZhdktxSnhlTGdDdUxBIl1dXSA9IHZ0cmFuc2xhdGUoJHJvd1skR0xPQkFMU1siYUZpd2FCS0N0V2ZLemFneW9XU04iXV0sICRyb3dbJEdMT0JBTFNbIkJvV3VCZmF2S3FKeGVMZ0N1TEEiXV0pOyAkTW9kdWxlSURTWyRyb3dbJEdMT0JBTFNbIkJvV3VCZmF2S3FKeGVMZ0N1TEEiXV1dID0gJHJvd1skR0xPQkFMU1siZnhreEt3SVNXR1lHS3V2RFZQeXMiXV07IH0gfSByZXR1cm4gYXJyYXkoJE1vZHVsZW5hbWVzLCAkTW9kdWxlSURTKTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0UHJlcGFyZWRNUERGKCYkbXBkZiwgJHJlY29yZHMsICR0ZW1wbGF0ZXMsICRtb2R1bGUsICRsYW5ndWFnZSwgJHByZUNvbnRlbnQgPSAiIikgeyByZXF1aXJlX29uY2UoJEdMT0JBTFNbIlJQbnRtR1dCV2lNTUlFb1hIUSJdKTsgJGZvY3VzID0gQ1JNRW50aXR5OjpnZXRJbnN0YW5jZSgkbW9kdWxlKTsgJFRlbXBsYXRlQ29udGVudCA9IGFycmF5KCk7ICRuYW1lID0gJyc7IGZvcmVhY2ggKCRyZWNvcmRzIGFzICRyZWNvcmQpIHsgZm9yZWFjaCAoJGZvY3VzLT5jb2x1bW5fZmllbGRzIGFzICRjZl9rZXkgPT4gJGNmX3ZhbHVlKSB7ICRmb2N1cy0+Y29sdW1uX2ZpZWxkc1skY2Zfa2V5XSA9ICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdOyB9IGlmICgkbW9kdWxlID09ICRHTE9CQUxTWyJnVkpDZ3hKTUtldERFR1h4c3JmUSJdKSB7ICRjYWxfcmVzID0gJHRoaXMtPmRiLT5wcXVlcnkoJEdMT0JBTFNbIkZ0V2xjWWJEaFlpclB1cURiWWhMIl0sIGFycmF5KCRyZWNvcmQpKTsgJGNhbF9yb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkY2FsX3Jlcyk7IGlmICgkY2FsX3Jvd1skR0xPQkFMU1siSWdBSFBlSURZanNUS21Ibk51ZlUiXV0gPT0gJEdMT0JBTFNbIldZcWdZSHJOWnNlVlNUeHp1ZG5MIl0pICRmb2N1cy0+cmV0cmlldmVfZW50aXR5X2luZm8oJHJlY29yZCwgJG1vZHVsZSk7IGVsc2UgJGZvY3VzLT5yZXRyaWV2ZV9lbnRpdHlfaW5mbygkcmVjb3JkLCAkR0xPQkFMU1siR1FJV1FFUENwZExLZHlaUmRtQ28iXSk7IH0gZWxzZSAkZm9jdXMtPnJldHJpZXZlX2VudGl0eV9pbmZvKCRyZWNvcmQsICRtb2R1bGUpOyAkZm9jdXMtPmlkID0gJHJlY29yZDsgZm9yZWFjaCAoJHRlbXBsYXRlcyBBUyAkdGVtcGxhdGVpZCkgeyAkUERGQ29udGVudCA9ICR0aGlzLT5HZXRQREZDb250ZW50UmVmKCR0ZW1wbGF0ZWlkLCAkbW9kdWxlLCAkZm9jdXMsICRsYW5ndWFnZSk7ICRTZXR0aW5ncyA9ICRQREZDb250ZW50LT5nZXRTZXR0aW5ncygpOyBpZiAoJG5hbWUgPT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pICRuYW1lID0gJFBERkNvbnRlbnQtPmdldEZpbGVuYW1lKCk7IGlmICgkdGhpcy0+Q2hlY2tUZW1wbGF0ZVBlcm1pc3Npb25zKCRtb2R1bGUsICR0ZW1wbGF0ZWlkLCBmYWxzZSkgPT0gZmFsc2UpIHsgJGhlYWRlcl9odG1sID0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl07ICRib2R5X2h0bWwgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJZeHVLbFJUTmRTZktlemZBV2tjcSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7ICRmb290ZXJfaHRtbCA9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdOyB9IGVsc2UgeyBpZiAoJHByZUNvbnRlbnQgIT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pIHsgJFBERkNvbnRlbnQtPmdldENvbnRlbnQoKTsgJGhlYWRlcl9odG1sID0gJHByZUNvbnRlbnRbJEdMT0JBTFNbIk5UeVFIanNaekVJY0N0c2lUSmZ3Il0gLiAkdGVtcGxhdGVpZF07ICRib2R5X2h0bWwgPSAkcHJlQ29udGVudFskR0xPQkFMU1sia3ZCY3RUUEFiUnNoZ09mSnhJQnAiXSAuICR0ZW1wbGF0ZWlkXTsgJGZvb3Rlcl9odG1sID0gJHByZUNvbnRlbnRbJEdMT0JBTFNbIkJFVERFU2hyQ3pJZnBGclFoaVBNIl0gLiAkdGVtcGxhdGVpZF07IH0gZWxzZSB7ICRwZGZfY29udGVudCA9ICRQREZDb250ZW50LT5nZXRDb250ZW50KCk7ICRoZWFkZXJfaHRtbCA9ICRwZGZfY29udGVudFskR0xPQkFMU1siTlR5UUhqc1p6RUljQ3RzaVRKZnciXV07ICRib2R5X2h0bWwgPSAkcGRmX2NvbnRlbnRbJEdMT0JBTFNbImt2QmN0VFBBYlJzaGdPZkp4SUJwIl1dOyAkZm9vdGVyX2h0bWwgPSAkcGRmX2NvbnRlbnRbJEdMT0JBTFNbIkJFVERFU2hyQ3pJZnBGclFoaVBNIl1dOyB9IH0gaWYgKCRTZXR0aW5nc1skR0xPQkFMU1siTHpPSUh0RFVpSldOcHNkZm9sSyJdXSA9PSAkR0xPQkFMU1siek5FSkZ5b3lSSURsUmdieWdRQ2ciXSkgJG9yaWVudGF0aW9uID0gJEdMT0JBTFNbInV5UURMYk5QU1doSGprR2VkdXJNIl07IGVsc2UgJG9yaWVudGF0aW9uID0gJEdMT0JBTFNbImdwamhueVNTd1dqYWJkb0NTUXlOIl07ICRmb3JtYXQgPSAkU2V0dGluZ3NbJEdMT0JBTFNbIk5xbHpDUlVucW5UZWlCd1BudXlTIl1dOyAkZm9ybWF0UEIgPSAkZm9ybWF0OyBpZiAoc3RycG9zKCRmb3JtYXQsICRHTE9CQUxTWyJ5S0pZRUFzcFlHV2VRdWFQcUNySiJdKSA+IDApIHsgJHRtcEFyciA9IGV4cGxvZGUoJEdMT0JBTFNbInlLSllFQXNwWUdXZVF1YVBxQ3JKIl0sICRmb3JtYXQpOyAkZm9ybWF0ID0gYXJyYXkoJHRtcEFyclswXSwgJHRtcEFyclsxXSk7ICRmb3JtYXRQQiA9ICRmb3JtYXRbMF0gLiAkR0xPQkFMU1sid2NMeHdreGJmclp4V2pHR2FNU2MiXSAuICRmb3JtYXRbMV0gLiAkR0xPQkFMU1sibVNoYlhnUnhYT0ZMVXBuU3hjeFMiXTsgfSBlbHNlaWYgKCRTZXR0aW5nc1skR0xPQkFMU1siTHpPSUh0RFVpSldOcHNkZm9sSyJdXSA9PSAkR0xPQkFMU1siek5FSkZ5b3lSSURsUmdieWdRQ2ciXSkgeyAkZm9ybWF0IC49ICRHTE9CQUxTWyJnb2thbklwUGxMWUJtWXNTR0FWZyJdOyAkZm9ybWF0UEIgLj0gJEdMT0JBTFNbImdva2FuSXBQbExZQm1Zc1NHQVZnIl07IH0gJExpc3RWaWV3QmxvY2tzID0gYXJyYXkoKTsgaWYgKHN0cnBvcygkYm9keV9odG1sLCAiI0xJU1RWSUVXQkxPQ0tfU1RBUlQjIikgIT09IGZhbHNlICYmIHN0cnBvcygkYm9keV9odG1sLCAkR0xPQkFMU1siZ3hOSE51bEFYZk1OalFMWmhGc0giXSkgIT09IGZhbHNlKSBwcmVnX21hdGNoX2FsbCgkR0xPQkFMU1sicE9IUnRZWkV2Z21Ua0tyeWxXY1oiXSwgJGJvZHlfaHRtbCwgJExpc3RWaWV3QmxvY2tzLCBQUkVHX1BBVFRFUk5fT1JERVIpOyBpZiAoY291bnQoJExpc3RWaWV3QmxvY2tzKSA+IDApIHsgJFRlbXBsYXRlQ29udGVudFskdGVtcGxhdGVpZF0gPSAkcGRmX2NvbnRlbnQ7ICRUZW1wbGF0ZVNldHRpbmdzWyR0ZW1wbGF0ZWlkXSA9ICRTZXR0aW5nczsgJG51bV9saXN0dmlld19ibG9ja3MgPSBjb3VudCgkTGlzdFZpZXdCbG9ja3NbMF0pOyBmb3IgKCRpID0gMDsgJGkgPCAkbnVtX2xpc3R2aWV3X2Jsb2NrczsgJGkrKykgeyAkTGlzdFZpZXdCbG9ja1skdGVtcGxhdGVpZF1bJGldID0gJExpc3RWaWV3QmxvY2tzWzBdWyRpXTsgJExpc3RWaWV3QmxvY2tDb250ZW50WyR0ZW1wbGF0ZWlkXVskaV1bJHJlY29yZF1bXSA9ICRMaXN0Vmlld0Jsb2Nrc1sxXVskaV07IH0gfSBlbHNlIHsgaWYgKCFpc19vYmplY3QoJG1wZGYpKSB7ICRtcGRmID0gbmV3IElUUzRZb3VfUERGTWFrZXJfSmF2YVNjcmlwdCgkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSwgJGZvcm1hdCwgJEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl0sICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdLCAkU2V0dGluZ3NbJEdMT0JBTFNbIkhwRHhZTklGWWtRclBmQkpUcEhYIl1dLCAkU2V0dGluZ3NbJEdMT0JBTFNbIlJzZEtOUU1BbE5ZRFVlRUlpTGZ4Il1dLCAwLCAwLCAkU2V0dGluZ3NbJEdMT0JBTFNbImxaRFdmTUFKbmpTaWpXWkZpbnJVIl1dLCAkU2V0dGluZ3NbJEdMT0JBTFNbImxNak15UEZJVFdpaXFIWmZ4dHh2Il1dLCAkb3JpZW50YXRpb24pOyBpZiAobVBERl9WRVJTSU9OID09IDUuNikgeyAkbXBkZi0+U2V0QXV0b0ZvbnQoKTsgfSAkdGhpcy0+bXBkZl9wcmVwcm9jZXNzKCRtcGRmLCAkdGVtcGxhdGVpZCwgJFBERkNvbnRlbnQtPmJyaWRnZTJtcGRmKTsgJHRoaXMtPm1wZGZfcHJlcGFyZV9oZWFkZXJfZm9vdGVyX3NldHRpbmdzKCRtcGRmLCAkdGVtcGxhdGVpZCwgJFNldHRpbmdzKTsgQCRtcGRmLT5TZXRIVE1MSGVhZGVyKCRoZWFkZXJfaHRtbCk7IH0gZWxzZSB7ICR0aGlzLT5tcGRmX3ByZXByb2Nlc3MoJG1wZGYsICR0ZW1wbGF0ZWlkLCAkUERGQ29udGVudC0+YnJpZGdlMm1wZGYpOyBAJG1wZGYtPlNldEhUTUxIZWFkZXIoJGhlYWRlcl9odG1sKTsgQCRtcGRmLT5Xcml0ZUhUTUwoJEdMT0JBTFNbImFXZ2NsWmxPVm9rYU5rZUdaTGlvIl0gLiAkZm9ybWF0UEIgLiAkR0xPQkFMU1siT0RBTGNHTHpwdFRnbHZ2ZHBzb0UiXSAuICRvcmllbnRhdGlvbiAuICRHTE9CQUxTWyJaSkJkR09JT29hcGF4cVlra3RpWCJdIC4gJFNldHRpbmdzWyRHTE9CQUxTWyJIcER4WU5JRllrUXJQZkJKVHBIWCJdXSAuICRHTE9CQUxTWyJ2SWl3endUd2lDY3NZQ1p6VnV6dyJdIC4gJFNldHRpbmdzWyRHTE9CQUxTWyJSc2RLTlFNQWxOWURVZUVJaUxmeCJdXSAuICRHTE9CQUxTWyJyZ0VNdURobm1XdGlmYmRBRVhaQyJdIC4gJFNldHRpbmdzWyRHTE9CQUxTWyJsWkRXZk1BSm5qU2lqV1pGaW5yVSJdXSAuICRHTE9CQUxTWyJmQkRTdnZMbVlvb09QaXFZRnFWRiJdIC4gJFNldHRpbmdzWyRHTE9CQUxTWyJsTWpNeVBGSVRXaWlxSFpmeHR4diJdXSAuICRHTE9CQUxTWyJGSWVjclRDdlphRHNmUWxKYXNVYyJdKTsgfSBAJG1wZGYtPlNldEhUTUxGb290ZXIoJGZvb3Rlcl9odG1sKTsgaWYgKHZ0bGliX2lzTW9kdWxlQWN0aXZlKCRHTE9CQUxTWyJ3dVRVYUpYWkN2a0dZTHdNWVdhaCJdKSl7ICRJVFM0WW91U3R5bGVzTW9kdWxlTW9kZWwgPSBuZXcgSVRTNFlvdVN0eWxlc19Nb2R1bGVfTW9kZWwoKTsgJGJvZHlfaHRtbCA9ICRJVFM0WW91U3R5bGVzTW9kdWxlTW9kZWwtPmFkZFN0eWxlcygkYm9keV9odG1sLCR0ZW1wbGF0ZWlkLCRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgfSBAJG1wZGYtPldyaXRlSFRNTCgkYm9keV9odG1sKTsgJHRoaXMtPm1wZGZfcG9zdHByb2Nlc3MoJG1wZGYsICR0ZW1wbGF0ZWlkLCAkUERGQ29udGVudC0+YnJpZGdlMm1wZGYpOyB9IH0gfSBpZiAoY291bnQoJFRlbXBsYXRlQ29udGVudCkgPiAwKSB7IGZvcmVhY2ggKCRUZW1wbGF0ZUNvbnRlbnQgQVMgJHRlbXBsYXRlaWQgPT4gJFRDb250ZW50KSB7ICRoZWFkZXJfaHRtbCA9ICRUQ29udGVudFskR0xPQkFMU1siTlR5UUhqc1p6RUljQ3RzaVRKZnciXV07ICRib2R5X2h0bWwgPSAkVENvbnRlbnRbJEdMT0JBTFNbImt2QmN0VFBBYlJzaGdPZkp4SUJwIl1dOyAkZm9vdGVyX2h0bWwgPSAkVENvbnRlbnRbJEdMT0JBTFNbIkJFVERFU2hyQ3pJZnBGclFoaVBNIl1dOyAkU2V0dGluZ3MgPSAkVGVtcGxhdGVTZXR0aW5nc1skdGVtcGxhdGVpZF07IGZvcmVhY2ggKCRMaXN0Vmlld0Jsb2NrWyR0ZW1wbGF0ZWlkXSBBUyAkaWQgPT4gJHRleHQpIHsgJHJlcGxhY2UgPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXTsgJGNyaWR4ID0gMTsgZm9yZWFjaCAoJHJlY29yZHMgYXMgJHJlY29yZCkgeyAkcmVwbGFjZSAuPSBpbXBsb2RlKCRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdLCAkTGlzdFZpZXdCbG9ja0NvbnRlbnRbJHRlbXBsYXRlaWRdWyRpZF1bJHJlY29yZF0pOyAkcmVwbGFjZSA9IHN0cl9pcmVwbGFjZSgkR0xPQkFMU1siRXNzWEdsRVJSbWNwUktMYmlWc3kiXSwgJGNyaWR4KyssICRyZXBsYWNlKTsgfSAkYm9keV9odG1sID0gc3RyX3JlcGxhY2UoJHRleHQsICRyZXBsYWNlLCAkYm9keV9odG1sKTsgfSBpZiAoJFNldHRpbmdzWyRHTE9CQUxTWyJMek9JSHREVWlKV05wc2Rmb2xLIl1dID09ICRHTE9CQUxTWyJ6TkVKRnlveVJJRGxSZ2J5Z1FDZyJdKSAkb3JpZW50YXRpb24gPSAkR0xPQkFMU1sidXlRRExiTlBTV2hIamtHZWR1ck0iXTsgZWxzZSAkb3JpZW50YXRpb24gPSAkR0xPQkFMU1siZ3BqaG55U1N3V2phYmRvQ1NReU4iXTsgJGZvcm1hdCA9ICRTZXR0aW5nc1skR0xPQkFMU1siTnFsekNSVW5xblRlaUJ3UG51eVMiXV07ICRmb3JtYXRQQiA9ICRmb3JtYXQ7IGlmIChzdHJwb3MoJGZvcm1hdCwgJEdMT0JBTFNbInlLSllFQXNwWUdXZVF1YVBxQ3JKIl0pID4gMCkgeyAkdG1wQXJyID0gZXhwbG9kZSgkR0xPQkFMU1sieUtKWUVBc3BZR1dlUXVhUHFDckoiXSwgJGZvcm1hdCk7ICRmb3JtYXQgPSBhcnJheSgkdG1wQXJyWzBdLCAkdG1wQXJyWzFdKTsgJGZvcm1hdFBCID0gJGZvcm1hdFswXSAuICRHTE9CQUxTWyJ3Y0x4d2t4YmZyWnhXakdHYU1TYyJdIC4gJGZvcm1hdFsxXSAuICRHTE9CQUxTWyJtU2hiWGdSeFhPRkxVcG5TeGN4UyJdOyB9IGVsc2VpZiAoJFNldHRpbmdzWyRHTE9CQUxTWyJMek9JSHREVWlKV05wc2Rmb2xLIl1dID09ICRHTE9CQUxTWyJ6TkVKRnlveVJJRGxSZ2J5Z1FDZyJdKSB7ICRmb3JtYXQgLj0gJEdMT0JBTFNbImdva2FuSXBQbExZQm1Zc1NHQVZnIl07ICRmb3JtYXRQQiAuPSAkR0xPQkFMU1siZ29rYW5JcFBsTFlCbVlzU0dBVmciXTsgfSBpZiAoIWlzX29iamVjdCgkbXBkZikpIHsgJG1wZGYgPSBuZXcgSVRTNFlvdV9QREZNYWtlcl9KYXZhU2NyaXB0KCRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdLCAkZm9ybWF0LCAkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSwgJEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl0sICRTZXR0aW5nc1skR0xPQkFMU1siSHBEeFlOSUZZa1FyUGZCSlRwSFgiXV0sICRTZXR0aW5nc1skR0xPQkFMU1siUnNkS05RTUFsTllEVWVFSWlMZngiXV0sIDAsIDAsICRTZXR0aW5nc1skR0xPQkFMU1sibFpEV2ZNQUpualNpaldaRmluclUiXV0sICRTZXR0aW5nc1skR0xPQkFMU1sibE1qTXlQRklUV2lpcUhaZnh0eHYiXV0sICRvcmllbnRhdGlvbik7IGlmIChtUERGX1ZFUlNJT04gPT0gNS42KSB7ICRtcGRmLT5TZXRBdXRvRm9udCgpOyB9ICR0aGlzLT5tcGRmX3ByZXByb2Nlc3MoJG1wZGYsICR0ZW1wbGF0ZWlkKTsgJHRoaXMtPm1wZGZfcHJlcGFyZV9oZWFkZXJfZm9vdGVyX3NldHRpbmdzKCRtcGRmLCAkdGVtcGxhdGVpZCwgJFNldHRpbmdzKTsgQCRtcGRmLT5TZXRIVE1MSGVhZGVyKCRoZWFkZXJfaHRtbCk7IH0gZWxzZSB7ICR0aGlzLT5tcGRmX3ByZXByb2Nlc3MoJG1wZGYsICR0ZW1wbGF0ZWlkKTsgQCRtcGRmLT5TZXRIVE1MSGVhZGVyKCRoZWFkZXJfaHRtbCk7IEAkbXBkZi0+V3JpdGVIVE1MKCRHTE9CQUxTWyJhV2djbFpsT1Zva2FOa2VHWkxpbyJdIC4gJGZvcm1hdFBCIC4gJEdMT0JBTFNbIk9EQUxjR0x6cHRUZ2x2dmRwc29FIl0gLiAkb3JpZW50YXRpb24gLiAkR0xPQkFMU1siWkpCZEdPSU9vYXBheHFZa2t0aVgiXSAuICRTZXR0aW5nc1skR0xPQkFMU1siSHBEeFlOSUZZa1FyUGZCSlRwSFgiXV0gLiAkR0xPQkFMU1sidklpd3p3VHdpQ2NzWUNaelZ1enciXSAuICRTZXR0aW5nc1skR0xPQkFMU1siUnNkS05RTUFsTllEVWVFSWlMZngiXV0gLiAkR0xPQkFMU1sicmdFTXVEaG5tV3RpZmJkQUVYWkMiXSAuICRTZXR0aW5nc1skR0xPQkFMU1sibFpEV2ZNQUpualNpaldaRmluclUiXV0gLiAkR0xPQkFMU1siZkJEU3Z2TG1Zb29PUGlxWUZxVkYiXSAuICRTZXR0aW5nc1skR0xPQkFMU1sibE1qTXlQRklUV2lpcUhaZnh0eHYiXV0gLiAkR0xPQkFMU1siRkllY3JUQ3ZaYURzZlFsSmFzVWMiXSk7IH0gQCRtcGRmLT5TZXRIVE1MRm9vdGVyKCRmb290ZXJfaHRtbCk7IEAkbXBkZi0+V3JpdGVIVE1MKCRib2R5X2h0bWwpOyAkdGhpcy0+bXBkZl9wb3N0cHJvY2VzcygkbXBkZiwgJHRlbXBsYXRlaWQpOyB9IH0gaWYgKCFpc19vYmplY3QoJG1wZGYpKSB7IEAkbXBkZiA9IG5ldyBJVFM0WW91X1BERk1ha2VyX0phdmFTY3JpcHQoKTsgQCRtcGRmLT5Xcml0ZUhUTUwodnRyYW5zbGF0ZSgkR0xPQkFMU1siWXh1S2xSVE5kU2ZLZXpmQVdrY3EiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pKTsgfSBpZiAoJG5hbWUgPT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pIHsgJG5hbWUgPSAkdGhpcy0+R2VuZXJhdGVOYW1lKCRyZWNvcmRzLCAkdGVtcGxhdGVzLCAkbW9kdWxlKTsgfSAkbmFtZSA9IHN0cl9yZXBsYWNlKGFycmF5KCRHTE9CQUxTWyJpS0x5U2hGUWxwam1KcEZmYW9lYyJdLCAkR0xPQkFMU1siSnhuZWJ5amRGaWRYZFZ6TnFuRWIiXSwgJEdMT0JBTFNbImxSQnp2ekJTRVFrSnhkQkl0YmciXSksIGFycmF5KCctJywgJy0nLCAnLScpLCAkbmFtZSk7IHJldHVybiAkbmFtZTsgfSBwdWJsaWMgZnVuY3Rpb24gR2VuZXJhdGVOYW1lKCRyZWNvcmRzLCAkdGVtcGxhdGVzLCAkbW9kdWxlKSB7ICRmb2N1cyA9IENSTUVudGl0eTo6Z2V0SW5zdGFuY2UoJG1vZHVsZSk7ICRmb2N1cy0+cmV0cmlldmVfZW50aXR5X2luZm8oJHJlY29yZHNbMF0sICRtb2R1bGUpOyBpZiAoY291bnQoJHJlY29yZHMpID4gMSkgeyAkbmFtZSA9ICRHTE9CQUxTWyJpUHBBSlpnWGNxemx3S1hreGZZIl07IH0gZWxzZSB7ICRtb2R1bGVfdGFiaWQgPSBnZXRUYWJJZCgkbW9kdWxlKTsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJFdElsY0R2b05ZWXR2RE5LSWRnWSJdLCBhcnJheSgnNCcsJG1vZHVsZV90YWJpZCkpOyAkZmllbGRuYW1lID0gJHRoaXMtPmRiLT5xdWVyeV9yZXN1bHQoJHJlc3VsdCwgMCwgJEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il0pOyBpZiAoaXNzZXQoJGZvY3VzLT5jb2x1bW5fZmllbGRzWyRmaWVsZG5hbWVdKSAmJiAkZm9jdXMtPmNvbHVtbl9maWVsZHNbJGZpZWxkbmFtZV0gIT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pIHsgJG5hbWUgPSAkdGhpcy0+Z2VuZXJhdGVfY29vbF91cmkoJGZvY3VzLT5jb2x1bW5fZmllbGRzWyRmaWVsZG5hbWVdKTsgfSBlbHNlIHsgJHRlbXBsYXRlc1N0ciA9IGltcGxvZGUoJEdMT0JBTFNbIk1iYWpETkpSaG1NT3dHb2pzY3ZVIl0sICR0ZW1wbGF0ZXMpOyAkcmVjb3Jkc1N0ciA9IGltcGxvZGUoJEdMT0JBTFNbIk1iYWpETkpSaG1NT3dHb2pzY3ZVIl0sICRyZWNvcmRzKTsgJG5hbWUgPSAkdGVtcGxhdGVzU3RyIC4gJHJlY29yZHNTdHIgLiBkYXRlKCRHTE9CQUxTWyJaRWZLZ3dqcUhBckd0THdUWEZXUyJdKTsgfSB9IHJldHVybiAkbmFtZTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0UERGQ29udGVudFJlZigkdGVtcGxhdGVpZCwgJG1vZHVsZSwgJGZvY3VzLCAkbGFuZ3VhZ2UpIHsgcmV0dXJuIG5ldyBQREZNYWtlcl9QREZDb250ZW50X01vZGVsKCR0ZW1wbGF0ZWlkLCAkbW9kdWxlLCAkZm9jdXMsICRsYW5ndWFnZSk7IH0gcHVibGljIGZ1bmN0aW9uIERlbGV0ZUFsbFJlZkxpbmtzKCkgeyByZXF1aXJlX29uY2UoJEdMT0JBTFNbIk5VaUhHT0phRm1ET3FrdkRWWExMIl0pOyAkbGlua19yZXMgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siR0JCYmd1blRZUVJ3SFJYS3JQS1giXSwgYXJyYXkoJzEnKSk7IHdoaWxlICgkbGlua19yb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkbGlua19yZXMpKSB7IFZ0aWdlcl9MaW5rOjpkZWxldGVMaW5rKCRsaW5rX3Jvd1skR0xPQkFMU1siU1lFbVBKcHhMQ0habVlCcElOWWgiXV0sICRHTE9CQUxTWyJhWVJMd1BlUGVGQ3RkR2NQWHZ2VyJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IFZ0aWdlcl9MaW5rOjpkZWxldGVMaW5rKCRsaW5rX3Jvd1skR0xPQkFMU1siU1lFbVBKcHhMQ0habVlCcElOWWgiXV0sICRHTE9CQUxTWyJUcVBUc2dGd2lmcXFqeW1OcFFXVCJdLCAkR0xPQkFMU1siSmVoV01ucE9qdEJBeVVTY3NjckMiXSwgJEdMT0JBTFNbIlhCRGNDTm9YaFRKa0NQS3NlaGp2Il0pOyB9IH0gcHVibGljIGZ1bmN0aW9uIEFkZExpbmtzKCRtb2R1bGVuYW1lKSB7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siSkJIU3VFd3NnVndxTmpuaHhqYkwiXSk7ICRsaW5rX21vZHVsZSA9IFZ0aWdlcl9Nb2R1bGU6OmdldEluc3RhbmNlKCRtb2R1bGVuYW1lKTsgJGxpbmtfbW9kdWxlLT5hZGRMaW5rKCRHTE9CQUxTWyJWVkNxREZvS0h6SERBQW1lRHBjbCJdLCAkR0xPQkFMU1siRkVkVWp4dmZjblR3RHdrbVJmbyJdLCAkR0xPQkFMU1siR1pIRURRWGxTeHZCQ0dxa2ZFSXEiXSk7IGlmICgkbW9kdWxlbmFtZSAhPSAkR0xPQkFMU1siVExJVE15a2F5eVJnaXpuQ2NZbmMiXSkgJGxpbmtfbW9kdWxlLT5hZGRMaW5rKCRHTE9CQUxTWyJIWGZrWWtCWVNBamdYYVptUlpoUiJdLCAkR0xPQkFMU1siRGFOZHJGcmJydVV4QldGVmFjIl0sICRHTE9CQUxTWyJNcHpTWnNScXV1VnNDdUZ1cEFLciJdKTsgZ2xvYmFsICRhZGI7ICR0YWJpZCA9IGdldFRhYklkKCRtb2R1bGVuYW1lKTsgJHJlcyA9ICRhZGItPnBxdWVyeSgkR0xPQkFMU1siU2JlTXpxcXRvcWxLb2thcXdoaE4iXSwgYXJyYXkoJHRhYmlkLCAnREVUQUlMVklFV1dJREdFVCcsICdQREZNYWtlcicsICdtb2R1bGU9UERGTWFrZXImYWN0aW9uPVBERk1ha2VyQWpheCZmaWxlPWdldFBERkFjdGlvbnMmcmVjb3JkPSRSRUNPUkQkJykpOyAkaSA9IDA7IHdoaWxlICgkcm93ID0gJGFkYi0+ZmV0Y2hCeUFzc29jKCRyZXMpKSB7ICRpKys7IGlmICgkaSA+IDEpICRhZGItPnBxdWVyeSgkR0xPQkFMU1siWXladElFWFVXbWpaVlNkWnR1VWEiXSwgYXJyYXkoJHJvd1snbGlua2lkJ10pKTsgfSAkcmVzID0gJGFkYi0+cHF1ZXJ5KCRHTE9CQUxTWyJTYmVNenFxdG9xbEtva2Fxd2hoTiJdLCBhcnJheSgkdGFiaWQsICdMSVNUVklFV01BU1NBQ1RJT04nLCAnUERGIEV4cG9ydCcsICdqYXZhc2NyaXB0OmdldFBERkxpc3RWaWV3UG9wdXAyKHRoaXMsXCckTU9EVUxFJFwnKTsnKSk7ICRpID0gMDsgd2hpbGUgKCRyb3cgPSAkYWRiLT5mZXRjaEJ5QXNzb2MoJHJlcykpIHsgJGkrKzsgaWYgKCRpID4gMSkgJGFkYi0+cHF1ZXJ5KCRHTE9CQUxTWyJZeVp0SUVYVVdtalpWU2RadHVVYSJdLCBhcnJheSgkcm93WydsaW5raWQnXSkpOyB9IGlmICgkbW9kdWxlbmFtZSA9PSAkR0xPQkFMU1siSkJDS3B5elhpTHZlemhwTFluY2MiXSkgJHRoaXMtPkFkZExpbmtzKCRHTE9CQUxTWyJHUUlXUUVQQ3BkTEtkeVpSZG1DbyJdKTsgfSBwdWJsaWMgZnVuY3Rpb24gQWRkSGVhZGVyTGlua3MoKSB7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siSkJIU3VFd3NnVndxTmpuaHhqYkwiXSk7ICRsaW5rX21vZHVsZSA9IFZ0aWdlcl9Nb2R1bGU6OmdldEluc3RhbmNlKCRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgJGxpbmtfbW9kdWxlLT5hZGRMaW5rKCRHTE9CQUxTWyJpbU1oWk1XUEJoQnBpY1J3TFp4cSJdLCAkR0xPQkFMU1sidkhnR2NrVUpjTGtGemN1T0phTWIiXSwgJEdMT0JBTFNbInd0b1V6R3VmZkdrbmlzbXVlcVZ3Il0sICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdLCAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXSk7IH0gcHVibGljIGZ1bmN0aW9uIGFjdHVhbGl6ZUxpbmtzKCkgeyAkdGhpcy0+QWRkSGVhZGVyTGlua3MoKTsgfSBwdWJsaWMgZnVuY3Rpb24gRGllRHVlUGVybWlzc2lvbigpIHsgZ2xvYmFsICRkZWZhdWx0X3RoZW1lOyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7IGlmIChpc3NldCgkX1NFU1NJT05bJEdMT0JBTFNbImxSbGtMU0F5TXBPaFpuZUJYSkFsIl1dKSAmJiAkX1NFU1NJT05bJEdMT0JBTFNbImxSbGtMU0F5TXBPaFpuZUJYSkFsIl1dICE9ICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdKSAkdGhlbWUgPSAkX1NFU1NJT05bJEdMT0JBTFNbImxSbGtMU0F5TXBPaFpuZUJYSkFsIl1dOyBlbHNlIHsgaWYgKCFlbXB0eSgkY3VycmVudF91c2VyLT50aGVtZSkpIHsgJHRoZW1lID0gJGN1cnJlbnRfdXNlci0+dGhlbWU7IH0gZWxzZSB7ICR0aGVtZSA9ICRkZWZhdWx0X3RoZW1lOyB9IH0gJG91dHB1dCA9ICRHTE9CQUxTWyJXSkJXTmtubE55eFZaTml0R0V6SCJdLiR0aGVtZS4kR0xPQkFMU1siS1d4TW1YY09oVk5hTGtsWXZrbmsiXTsgJG91dHB1dCAuPSAkR0xPQkFMU1siTmNWQ3FpTHdzS0dYUnlva1dNS3IiXTsgJG91dHB1dCAuPSAkR0xPQkFMU1sidmN6RnR2YU9nSFd4UWZDbnJhZ0siXSAuIHZ0aWdlcl9pbWFnZXVybCgkR0xPQkFMU1sibFhOc0VmVVFhWVJudXpWQkdMUFkiXSwgJHRoZW1lKSAuICRHTE9CQUxTWyJUZnN2UVR3dWFUQ0dxTVl4Qm9XVCJdIC4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siWXh1S2xSVE5kU2ZLZXpmQVdrY3EiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pIC4gJEdMT0JBTFNbIk1QZFphUllpSFpIeW5yb2FNWnFDIl0gLiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ1d25NSHpFSUZ4ZWRtVGpBeVdDVCJdKSAuICRHTE9CQUxTWyJyeHhKZ3FDTFFYb2xORnNLTk1GUyJdOyAkb3V0cHV0IC49ICRHTE9CQUxTWyJGVmxicE1YZE1QQVZMSmhQd2ZYTSJdOyBkaWUoJG91dHB1dCk7IH0gcHVibGljIGZ1bmN0aW9uIENoZWNrVGVtcGxhdGVQZXJtaXNzaW9ucygkc2VsZWN0ZWRfbW9kdWxlLCAkdGVtcGxhdGVpZCwgJGRpZSA9IHRydWUpIHsgJGN1cnJlbnRfdXNlciA9IFVzZXJzX1JlY29yZF9Nb2RlbDo6Z2V0Q3VycmVudFVzZXJNb2RlbCgpOyAkcmVzdWx0ID0gdHJ1ZTsgaWYgKCFpc19hZG1pbigkY3VycmVudF91c2VyKSkgeyBpZiAoJHNlbGVjdGVkX21vZHVsZSAhPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXSAmJiBpc1Blcm1pdHRlZCgkc2VsZWN0ZWRfbW9kdWxlLCAkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSkgIT0gJEdMT0JBTFNbInlyeHhZRFZIclJzWE1zZXZvU2dWIl0pIHsgJHJlc3VsdCA9IGZhbHNlOyB9IGVsc2VpZiAoJHRlbXBsYXRlaWQgIT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0gJiYgJHRoaXMtPkNoZWNrU2hhcmluZygkdGVtcGxhdGVpZCkgPT09IGZhbHNlKSB7ICRyZXN1bHQgPSBmYWxzZTsgfSBpZiAoJHJlc3VsdCA9PT0gZmFsc2UpIHsgcmVxdWlyZSgkR0xPQkFMU1siellBVXhNa2NVanFVaW5HdWtQSHUiXS4kY3VycmVudF91c2VyLT5pZC4kR0xPQkFMU1siRkxJb3Z4VmVwdnJQRmVsVUhHZ2ciXSk7IHJlcXVpcmUoJEdMT0JBTFNbIlVsY1BqUFBSZ05LWXR0SmpVUnBMIl0uJGN1cnJlbnRfdXNlci0+aWQuJEdMT0JBTFNbIkZMSW92eFZlcHZyUEZlbFVIR2dnIl0pOyBpZigkcHJvZmlsZUdsb2JhbFBlcm1pc3Npb25bMV0gPT0wKSB7ICRyZXN1bHQgPSB0cnVlOyB9IH0gaWYgKCRkaWUgPT09IHRydWUgJiYgJHJlc3VsdCA9PT0gZmFsc2UpIHsgJHRoaXMtPkRpZUR1ZVBlcm1pc3Npb24oKTsgfSB9IHJldHVybiAkcmVzdWx0OyB9IHB1YmxpYyBmdW5jdGlvbiByZXR1cm5UZW1wbGF0ZVBlcm1pc3Npb25zRGF0YSgkc2VsZWN0ZWRfbW9kdWxlLCAkdGVtcGxhdGVpZCkgeyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICRyZXN1bHQgPSB0cnVlOyBpZiAoIWlzX2FkbWluKCRjdXJyZW50X3VzZXIpKSB7IGlmICgkc2VsZWN0ZWRfbW9kdWxlICE9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdICYmIGlzUGVybWl0dGVkKCRzZWxlY3RlZF9tb2R1bGUsICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdKSAhPSAkR0xPQkFMU1sieXJ4eFlEVkhyUnNYTXNldm9TZ1YiXSkgeyAkcmVzdWx0ID0gZmFsc2U7IH0gZWxzZWlmICgkdGVtcGxhdGVpZCAhPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXSAmJiAkdGhpcy0+Q2hlY2tTaGFyaW5nKCR0ZW1wbGF0ZWlkKSA9PT0gZmFsc2UpIHsgJHJlc3VsdCA9IGZhbHNlOyB9ICRkZXRhaWxfcmVzdWx0ID0gJHJlc3VsdDsgaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9ucygkR0xPQkFMU1siQVl0cEZHakNZUFdoR1hlRmluWVQiXSkpIHsgJGVkaXRfcmVzdWx0ID0gZmFsc2U7IH0gZWxzZSB7ICRlZGl0X3Jlc3VsdCA9ICRyZXN1bHQ7IH0gaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9ucygkR0xPQkFMU1siUERmdmpnS3hRZUVZTldOSmxSWmQiXSkpIHsgJGRlbGV0ZV9yZXN1bHQgPSBmYWxzZTsgfSBlbHNlIHsgJGRlbGV0ZV9yZXN1bHQgPSAkcmVzdWx0OyB9IGlmICgkZGV0YWlsX3Jlc3VsdCA9PT0gZmFsc2UgfHwgJGVkaXRfcmVzdWx0ID09PSBmYWxzZSB8fCAkZGVsZXRlX3Jlc3VsdCA9PT0gZmFsc2UpIHsgcmVxdWlyZSgkR0xPQkFMU1siellBVXhNa2NVanFVaW5HdWtQSHUiXS4kY3VycmVudF91c2VyLT5pZC4kR0xPQkFMU1siRkxJb3Z4VmVwdnJQRmVsVUhHZ2ciXSk7IHJlcXVpcmUoJEdMT0JBTFNbIlVsY1BqUFBSZ05LWXR0SmpVUnBMIl0uJGN1cnJlbnRfdXNlci0+aWQuJEdMT0JBTFNbIkZMSW92eFZlcHZyUEZlbFVIR2dnIl0pOyBpZigkcHJvZmlsZUdsb2JhbFBlcm1pc3Npb25bMV0gPT0gMCkgeyAkZGV0YWlsX3Jlc3VsdCA9IHRydWU7IH0gaWYoJHByb2ZpbGVHbG9iYWxQZXJtaXNzaW9uWzJdID09IDApIHsgJGVkaXRfcmVzdWx0ID0gdHJ1ZTsgJGRlbGV0ZV9yZXN1bHQgPSB0cnVlOyB9IH0gfSBlbHNlIHsgJGRldGFpbF9yZXN1bHQgPSAkZWRpdF9yZXN1bHQgPSAkZGVsZXRlX3Jlc3VsdCA9ICRyZXN1bHQ7IH0gcmV0dXJuIGFycmF5KCJkZXRhaWwiPT4kZGV0YWlsX3Jlc3VsdCwiZWRpdCI9PiRlZGl0X3Jlc3VsdCAsImRlbGV0ZSI9PiRkZWxldGVfcmVzdWx0KTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0UHJvZmlsZXNQZXJtaXNzaW9ucygpIHsgaWYgKGNvdW50KCR0aGlzLT5wcm9maWxlc1Blcm1pc3Npb25zKSA9PSAwKSB7ICRwcm9maWxlcyA9IFNldHRpbmdzX1Byb2ZpbGVzX1JlY29yZF9Nb2RlbDo6Z2V0QWxsKCk7ICRyZXMgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1sieFZGRm95UGhueXJ0T0xQSEtPUUwiXSxhcnJheSgpKTsgJHBlcm1pc3Npb25zID0gYXJyYXkoKTsgd2hpbGUgKCRyb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkcmVzKSkgeyBpZiAoaXNzZXQoJHByb2ZpbGVzWyRyb3dbJEdMT0JBTFNbInNvU2dZUHFJZXpkSmJ2Q3lKWm9nIl1dXSkpICRwZXJtaXNzaW9uc1skcm93WyRHTE9CQUxTWyJzb1NnWVBxSWV6ZEpidkN5SlpvZyJdXV1bJHJvd1skR0xPQkFMU1sieUFBa2JVY0V3cGpzc1N2SVdRZE4iXV1dID0gJHJvd1skR0xPQkFMU1sid0Fwa1lzamtmRk5tRHRLbnJrbGUiXV07IH0gZm9yZWFjaCAoJHByb2ZpbGVzIGFzICRwcm9maWxlaWQgPT4gJHByb2ZpbGVuYW1lKSB7IGZvcmVhY2ggKCR0aGlzLT5wcm9maWxlc0FjdGlvbnMgYXMgJGFjdGlvbk5hbWUpIHsgJGFjdGlvbklkID0gZ2V0QWN0aW9uaWQoJGFjdGlvbk5hbWUpOyBpZiAoIWlzc2V0KCRwZXJtaXNzaW9uc1skcHJvZmlsZWlkXVskYWN0aW9uSWRdKSkgeyAkcGVybWlzc2lvbnNbJHByb2ZpbGVpZF1bJGFjdGlvbklkXSA9ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdOyB9IH0gfSBrc29ydCgkcGVybWlzc2lvbnMpOyAkdGhpcy0+cHJvZmlsZXNQZXJtaXNzaW9ucyA9ICRwZXJtaXNzaW9uczsgfSByZXR1cm4gJHRoaXMtPnByb2ZpbGVzUGVybWlzc2lvbnM7IH0gcHVibGljIGZ1bmN0aW9uIENoZWNrUGVybWlzc2lvbnMoJGFjdGlvbktleSkgeyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICRwcm9maWxlaWQgPSBnZXRVc2VyUHJvZmlsZSgkY3VycmVudF91c2VyLT5pZCk7ICRyZXN1bHQgPSBmYWxzZTsgaWYgKCRhY3Rpb25LZXkgPT0gJEdMT0JBTFNbImNyb0JYZHVTUk5KS2dhVU9jYWJuIl0pIHsgJFJURl9BY3RpdmF0ZWQgPSAkdGhpcy0+aXNSVEZBY3RpdmF0ZWQoKTsgaWYgKCEkUlRGX0FjdGl2YXRlZCkgcmV0dXJuICRyZXN1bHQ7IH0gaWYgKGlzc2V0KCR0aGlzLT5wcm9maWxlc0FjdGlvbnNbJGFjdGlvbktleV0pKSB7ICRhY3Rpb25pZCA9IGdldEFjdGlvbmlkKCR0aGlzLT5wcm9maWxlc0FjdGlvbnNbJGFjdGlvbktleV0pOyAkcGVybWlzc2lvbnMgPSAkdGhpcy0+R2V0UHJvZmlsZXNQZXJtaXNzaW9ucygpOyBpZiAoaXNzZXQoJHBlcm1pc3Npb25zWyRwcm9maWxlaWRbMF1dWyRhY3Rpb25pZF0pICYmICRwZXJtaXNzaW9uc1skcHJvZmlsZWlkWzBdXVskYWN0aW9uaWRdID09ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdKSAkcmVzdWx0ID0gdHJ1ZTsgfSByZXR1cm4gJHJlc3VsdDsgfSBwdWJsaWMgZnVuY3Rpb24gQ2hlY2tTaGFyaW5nKCR0ZW1wbGF0ZWlkKSB7ICRjdXJyZW50X3VzZXIgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJZRElNTWNMTXBxZndkWUpmQnNqSSJdLCBhcnJheSgkdGVtcGxhdGVpZCkpOyAkcm93ID0gJHRoaXMtPmRiLT5mZXRjaEJ5QXNzb2MoJHJlc3VsdCk7ICRvd25lciA9ICRyb3dbJEdMT0JBTFNbImNJWmFXbkpadVhBbGtKVUZwS0lFIl1dOyAkc2hhcmluZ3R5cGUgPSAkcm93WyRHTE9CQUxTWyJ3Uk5qUHpDeHJZUkNGdE1LVEVEcCJdXTsgJHJlc3VsdCA9IGZhbHNlOyBpZiAoJG93bmVyID09ICRjdXJyZW50X3VzZXItPmlkKSB7ICRyZXN1bHQgPSB0cnVlOyB9IGVsc2UgeyBzd2l0Y2ggKCRzaGFyaW5ndHlwZSkgeyBjYXNlICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdOiBjYXNlICRHTE9CQUxTWyJRVG5HS1pyT0Vjdk9Ra0JDaFVnZiJdOiAkcmVzdWx0ID0gdHJ1ZTsgYnJlYWs7IGNhc2UgJEdMT0JBTFNbInJFQnJXaGNnV1Zsc0trZ3d6Il06ICRzdWJvcmRpbmF0ZVVzZXJzID0gJHRoaXMtPmdldFN1YlJvbGVVc2VySWRzKCRjdXJyZW50X3VzZXItPnJvbGVpZCk7IGlmICghZW1wdHkoJHN1Ym9yZGluYXRlVXNlcnMpICYmIGNvdW50KCRzdWJvcmRpbmF0ZVVzZXJzKSA+IDApIHsgJHJlc3VsdCA9IGluX2FycmF5KCRvd25lciwgJHN1Ym9yZGluYXRlVXNlcnMpOyB9IGVsc2UgJHJlc3VsdCA9IGZhbHNlOyBicmVhazsgY2FzZSAkR0xPQkFMU1sia1ppem5lVXBlZ0VxWEtqem1ZemciXTogJHN1Ym9yZGluYXRlVXNlcnMgPSAkdGhpcy0+Z2V0U3ViUm9sZVVzZXJJZHMoJGN1cnJlbnRfdXNlci0+cm9sZWlkKTsgaWYgKCFlbXB0eSgkc3Vib3JkaW5hdGVVc2VycykgJiYgY291bnQoJHN1Ym9yZGluYXRlVXNlcnMpID4gMCAmJiBpbl9hcnJheSgkb3duZXIsICRzdWJvcmRpbmF0ZVVzZXJzKSkgJHJlc3VsdCA9IHRydWU7IGVsc2UgeyAkbWVtYmVyX2FycmF5ID0gJHRoaXMtPkdldFNoYXJpbmdNZW1iZXJBcnJheSgkdGVtcGxhdGVpZCk7IGlmIChpc3NldCgkbWVtYmVyX2FycmF5WyRHTE9CQUxTWyJqbHZDWnV2TEpQZ2xvYWlGZVRqUCJdXSkgJiYgaW5fYXJyYXkoJGN1cnJlbnRfdXNlci0+aWQsICRtZW1iZXJfYXJyYXlbJEdMT0JBTFNbImpsdkNadXZMSlBnbG9haUZlVGpQIl1dKSkgJHJlc3VsdCA9IHRydWU7IGVsc2VpZiAoaXNzZXQoJG1lbWJlcl9hcnJheVskR0xPQkFMU1sia3RyWFBxdml6dE5QU29SUUNyeFYiXV0pICYmIGluX2FycmF5KCRjdXJyZW50X3VzZXItPnJvbGVpZCwgJG1lbWJlcl9hcnJheVskR0xPQkFMU1sia3RyWFBxdml6dE5QU29SUUNyeFYiXV0pKSAkcmVzdWx0ID0gdHJ1ZTsgZWxzZSB7IGlmIChpc3NldCgkbWVtYmVyX2FycmF5WyRHTE9CQUxTWyJTQ1RIRkxZTEdlUVRhQ0ZVQlJEdyJdXSkpIHsgZm9yZWFjaCAoJG1lbWJlcl9hcnJheVskR0xPQkFMU1siU0NUSEZMWUxHZVFUYUNGVUJSRHciXV0gYXMgJHJvbGVpZCkgeyAkcm9sZUFuZHN1Ym9yZGluYXRlUm9sZXMgPSBnZXRSb2xlQW5kU3Vib3JkaW5hdGVzUm9sZUlkcygkcm9sZWlkKTsgaWYgKGluX2FycmF5KCRjdXJyZW50X3VzZXItPnJvbGVpZCwgJHJvbGVBbmRzdWJvcmRpbmF0ZVJvbGVzKSkgeyAkcmVzdWx0ID0gdHJ1ZTsgYnJlYWs7IH0gfSB9IGlmICgkcmVzdWx0ID09IGZhbHNlICYmIGlzc2V0KCRtZW1iZXJfYXJyYXlbJEdMT0JBTFNbImhQR3ZvSHlwUElBSXNEdUxlamdGIl1dKSkgeyAkY3VycmVudF91c2VyX2dyb3VwcyA9IGV4cGxvZGUoJEdMT0JBTFNbInR1Ylhid01nS1RVR1BlS0FtcUNGIl0sIGZldGNoVXNlckdyb3VwaWRzKCRjdXJyZW50X3VzZXItPmlkKSk7ICRyZXNfYXJyYXkgPSBhcnJheV9pbnRlcnNlY3QoJG1lbWJlcl9hcnJheVsiZ3JvdXBzIl0sICRjdXJyZW50X3VzZXJfZ3JvdXBzKTsgaWYgKCFlbXB0eSgkcmVzX2FycmF5KSAmJiBjb3VudCgkcmVzX2FycmF5KSA+IDApICRyZXN1bHQgPSB0cnVlOyBlbHNlICRyZXN1bHQgPSBmYWxzZTsgfSBpZiAoaXNzZXQoJG1lbWJlcl9hcnJheVskR0xPQkFMU1sidExOYkNHdFhCQ3prc2ltUkhSekYiXV0pKSB7IGZvcmVhY2ggKCRtZW1iZXJfYXJyYXlbJEdMT0JBTFNbInRMTmJDR3RYQkN6a3NpbVJIUnpGIl1dIGFzICRjb21wYW55SWQpIHsgaWYgKElUUzRZb3VNdWx0aUNvbXBhbnlfUmVjb3JkX01vZGVsOjppc1JvbGVJbkNvbXBhbnkoJGNvbXBhbnlJZCwgJGN1cnJlbnRfdXNlci0+cm9sZWlkKSkgeyAkcmVzdWx0ID0gdHJ1ZTsgYnJlYWs7IH0gfSB9IH0gfSBicmVhazsgfSB9IHJldHVybiAkcmVzdWx0OyB9IHByaXZhdGUgZnVuY3Rpb24gZ2V0U3ViUm9sZVVzZXJJZHMoJHJvbGVpZCkgeyAkc3ViUm9sZVVzZXJJZHMgPSBhcnJheSgpOyAkc3Vib3JkaW5hdGVVc2VycyA9IGdldFJvbGVBbmRTdWJvcmRpbmF0ZVVzZXJzKCRyb2xlaWQpOyBpZiAoIWVtcHR5KCRzdWJvcmRpbmF0ZVVzZXJzKSAmJiBjb3VudCgkc3Vib3JkaW5hdGVVc2VycykgPiAwKSB7ICRjdXJyUm9sZVVzZXJJZHMgPSBnZXRSb2xlVXNlcklkcygkcm9sZWlkKTsgJHN1YlJvbGVVc2VySWRzID0gYXJyYXlfZGlmZigkc3Vib3JkaW5hdGVVc2VycywgJGN1cnJSb2xlVXNlcklkcyk7IH0gcmV0dXJuICRzdWJSb2xlVXNlcklkczsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0U2hhcmluZ01lbWJlckFycmF5KCR0ZW1wbGF0ZWlkLCRmb3JlZGl0ID0gZmFsc2UpIHsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJGQ2h6WmpsRWt2aU5WZVJOY0ZUdyJdLCBhcnJheSgkdGVtcGxhdGVpZCkpOyAkbWVtYmVyQXJyYXkgPSBhcnJheSgpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQpKSB7ICRzZXR5cGUgPSAkcm93WyRHTE9CQUxTWyJ0aGtxR3dhUlRmbVdGTnFMTXlpViJdXTsgJHR5cGUgPSAoJHNldHlwZSA9PSAkR0xPQkFMU1siU0NUSEZMWUxHZVFUYUNGVUJSRHciXT8kR0xPQkFMU1sicXNoVFlad2FmaGdNZGZGbFFxV3giXTp1Y2ZpcnN0KCRzZXR5cGUpKTsgaWYgKCRmb3JlZGl0KSAkc2V0eXBlID0gJHR5cGU7ICRtZW1iZXJBcnJheVskc2V0eXBlXVskdHlwZS4kR0xPQkFMU1siSllOdFZkVGZIbGdKa1RPak12dEwiXS4kcm93WyRHTE9CQUxTWyJQS1RTV3FiVGxaSXFId0NheEZucyJdXV0gPSAkcm93WyRHTE9CQUxTWyJQS1RTV3FiVGxaSXFId0NheEZucyJdXTsgfSByZXR1cm4gJG1lbWJlckFycmF5OyB9IHByaXZhdGUgZnVuY3Rpb24gc2V0TGljZW5zZUluZm8oKSB7ICR0aGlzLT52ZXJzaW9uX25vID0gUERGTWFrZXJfVmVyc2lvbl9IZWxwZXI6OiR2ZXJzaW9uOyAkcmVzdWx0ID0gJHRoaXMtPmRiLT5wcXVlcnkoJEdMT0JBTFNbIlhkRktVVGJiU29naXlFYVhHQWdQIl0sYXJyYXkoKSk7IGlmICgkdGhpcy0+ZGItPm51bV9yb3dzKCRyZXN1bHQpID4gMCkgeyAkdGhpcy0+dmVyc2lvbl90eXBlID0gJHRoaXMtPmRiLT5xdWVyeV9yZXN1bHQoJHJlc3VsdCwgMCwgJEdMT0JBTFNbInBmbmNycFFrc2VsVEdwcUp1aFlZIl0pOyAkdGhpcy0+bGljZW5zZV9rZXkgPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAwLCAkR0xPQkFMU1siQ2hXRWVCZE1LTktxbHdMdVJ5U0QiXSk7IH0gZWxzZSB7ICR0aGlzLT52ZXJzaW9uX3R5cGUgPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXTsgJHRoaXMtPmxpY2Vuc2Vfa2V5ID0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl07IH0gfSBwcml2YXRlIGZ1bmN0aW9uIGdldFVzZXJTdGF0dXNEYXRhKCR0ZW1wbGF0ZWlkKSB7ICRjdXJyZW50X3VzZXIgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJVaWtFV1hCVEVpTXllVUxyTUl4QiJdLCBhcnJheSgkdGVtcGxhdGVpZCwgJGN1cnJlbnRfdXNlci0+aWQpKTsgJGRhdGEgPSBhcnJheSgpOyBpZiAoJHRoaXMtPmRiLT5udW1fcm93cygkcmVzdWx0KSA+IDApIHsgJGRhdGFbJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il1dID0gJHRoaXMtPmRiLT5xdWVyeV9yZXN1bHQoJHJlc3VsdCwgMCwgJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il0pOyAkZGF0YVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV0gPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAwLCAkR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXSk7ICRkYXRhWyRHTE9CQUxTWyJjdlBpTlFGYndERnNyZFFISkRReSJdXSA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsIDAsICRHTE9CQUxTWyJuUHhjUEJ6S1d6RVlsdVJRSVNQaiJdKTsgfSByZXR1cm4gJGRhdGE7IH0gcHJpdmF0ZSBmdW5jdGlvbiBtcGRmX3ByZXByb2Nlc3MoJiRtcGRmLCAkdGVtcGxhdGVpZCwgJGJyaWRnZSA9ICcnKSB7IGlmICgkYnJpZGdlICE9ICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdICYmIGlzX2FycmF5KCRicmlkZ2UpKSB7ICRtcGRmLT5QREZNYWtlclJlY29yZCA9ICRicmlkZ2VbJEdMT0JBTFNbImFjQ3RwREtqRnJGWkhTTnR5RUxIIl1dOyAkbXBkZi0+UERGTWFrZXJUZW1wbGF0ZWlkID0gJGJyaWRnZVskR0xPQkFMU1siZGJlbWJiWExNWHdIZmdVdW5ZS28iXV07IGlmIChpc3NldCgkYnJpZGdlWyRHTE9CQUxTWyJVSEJTRXJVRUxhTVpIY2lIUGFiSCJdXSkpICRtcGRmLT5QREZNYWtlclN1YnRvdGFsc0FycmF5ID0gJGJyaWRnZVskR0xPQkFMU1siVUhCU0VyVUVMYU1aSGNpSFBhYkgiXV07IH0gJHRoaXMtPm1wZGZfcHJvY2Vzc2luZygkbXBkZiwgJHRlbXBsYXRlaWQsICRHTE9CQUxTWyJlSlVMYkljQWRCeFpJTHNyTmpBIl0pOyB9IHByaXZhdGUgZnVuY3Rpb24gbXBkZl9wb3N0cHJvY2VzcygmJG1wZGYsICR0ZW1wbGF0ZWlkLCAkYnJpZGdlID0gJycpIHsgJHRoaXMtPm1wZGZfcHJvY2Vzc2luZygkbXBkZiwgJHRlbXBsYXRlaWQsICRHTE9CQUxTWyJreFp4SFFHeUNaemh0ZXBXbndFIl0pOyB9IHByaXZhdGUgZnVuY3Rpb24gbXBkZl9wcm9jZXNzaW5nKCYkbXBkZiwgJHRlbXBsYXRlaWQsICR3aGVuKSB7ICRwYXRoID0gJEdMT0JBTFNbIkNqTFBZbkR2R2ZJcUZMRk1VdlhIIl07IHN3aXRjaCAoJHdoZW4pIHsgY2FzZSAkR0xPQkFMU1siV2lndXFhbXV6RHhzdm9HR3l0dlkiXTogJGZpbGVuYW1lID0gJEdMT0JBTFNbIm5WaG5VdHVBUlBMYnBsanNjeGFZIl07ICRmdW5jdGlvbm5hbWUgPSAkR0xPQkFMU1siVGZKVlN4WHh6YU1IQkx6aExiYXkiXTsgYnJlYWs7IGNhc2UgJEdMT0JBTFNbInJFUk5PaUZOenRudUJLVG9ucGhuIl06ICRmaWxlbmFtZSA9ICRHTE9CQUxTWyJSWmlaSFh0elhaUGx4YUx5Z2dIViJdOyAkZnVuY3Rpb25uYW1lID0gJEdMT0JBTFNbIk1idEppUHZUVWt4a0xmUXlhT1pBIl07IGJyZWFrOyB9IGlmIChpc19maWxlKCRwYXRoIC4gJGZpbGVuYW1lKSAmJiBpc19yZWFkYWJsZSgkcGF0aCAuICRmaWxlbmFtZSkpIHsgcmVxdWlyZV9vbmNlKCRwYXRoIC4gJGZpbGVuYW1lKTsgJGZ1bmN0aW9ubmFtZSgkbXBkZiwgJHRlbXBsYXRlaWQpOyB9IH0gcHJpdmF0ZSBmdW5jdGlvbiBtcGRmX3ByZXBhcmVfaGVhZGVyX2Zvb3Rlcl9zZXR0aW5ncygmJG1wZGYsICR0ZW1wbGF0ZWlkLCAmJFNldHRpbmdzKSB7ICRtcGRmLT5QREZNYWtlclRlbXBsYXRlaWQgPSAkdGVtcGxhdGVpZDsgJGRpc3BfaGVhZGVyID0gJFNldHRpbmdzWyRHTE9CQUxTWyJXTXpIb2ZNZHZrZW5zZmppRWhDTyJdXTsgJGRpc3Bfb3B0aW9uc0FyciA9IGFycmF5KCJkaF9maXJzdCIsICJkaF9vdGhlciIpOyAkZGlzcF9oZWFkZXJfYmluID0gc3RyX3BhZChiYXNlX2NvbnZlcnQoJGRpc3BfaGVhZGVyLCAxMCwgMiksIDIsICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdLCBTVFJfUEFEX0xFRlQpOyBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZGlzcF9vcHRpb25zQXJyKTsgJGkrKykgeyBpZiAoc3Vic3RyKCRkaXNwX2hlYWRlcl9iaW4sICRpLCAxKSA9PSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXSkgJG1wZGYtPlBERk1ha2VyRGlzcEhlYWRlclskZGlzcF9vcHRpb25zQXJyWyRpXV0gPSB0cnVlOyBlbHNlICRtcGRmLT5QREZNYWtlckRpc3BIZWFkZXJbJGRpc3Bfb3B0aW9uc0FyclskaV1dID0gZmFsc2U7IH0gJGRpc3BfZm9vdGVyID0gJFNldHRpbmdzWyRHTE9CQUxTWyJRU2pHUktsSktTclJHVHBiWm8iXV07ICRkaXNwX29wdGlvbnNBcnIgPSBhcnJheSgiZGZfZmlyc3QiLCAiZGZfbGFzdCIsICJkZl9vdGhlciIpOyAkZGlzcF9mb290ZXJfYmluID0gc3RyX3BhZChiYXNlX2NvbnZlcnQoJGRpc3BfZm9vdGVyLCAxMCwgMiksIDMsICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdLCBTVFJfUEFEX0xFRlQpOyBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZGlzcF9vcHRpb25zQXJyKTsgJGkrKykgeyBpZiAoc3Vic3RyKCRkaXNwX2Zvb3Rlcl9iaW4sICRpLCAxKSA9PSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXSkgJG1wZGYtPlBERk1ha2VyRGlzcEZvb3RlclskZGlzcF9vcHRpb25zQXJyWyRpXV0gPSB0cnVlOyBlbHNlICRtcGRmLT5QREZNYWtlckRpc3BGb290ZXJbJGRpc3Bfb3B0aW9uc0FyclskaV1dID0gZmFsc2U7IH0gfSBwdWJsaWMgZnVuY3Rpb24gR2V0UmVsZWFzZXNOb3RpZigpIHsgJG5vdGlmID0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl07IHJldHVybiAkbm90aWY7IH0gcHVibGljIGZ1bmN0aW9uIEdldEN1c3RvbUxhYmVscygpIHsgcmVxdWlyZV9vbmNlKCRHTE9CQUxTWyJUYWpCaWZGV0l3WEhaTnRGbFVjIl0pOyAkb0xibEFyciA9IGFycmF5KCk7ICRsYW5ndWFnZXMgPSBhcnJheSgpOyBpZiAoJHRoaXMtPnZlcnNpb25fdHlwZSA9PSAicHJvZmVzc2lvbmFsIikgeyAkc3FsID0gJEdMT0JBTFNbInNOcFFneERKTkx4cE5LV0hOdERxIl07ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLGFycmF5KCkpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQpKSB7IGlmICghaXNzZXQoJG9MYmxBcnJbJHJvd1skR0xPQkFMU1siQVJsQ21MbUhDWnZndGNiSXVUZyJdXV0pKSB7ICRvTGJsID0gbmV3IFBERk1ha2VyTGFiZWwoJHJvd1skR0xPQkFMU1siQVJsQ21MbUhDWnZndGNiSXVUZyJdXSwgJHJvd1skR0xPQkFMU1siZEZad0xlUVhYaEx2bmFmUiJdXSk7ICRvTGJsQXJyWyRyb3dbJEdMT0JBTFNbIkFSbENtTG1IQ1p2Z3RjYkl1VGciXV1dID0gJG9MYmw7IH0gZWxzZSB7ICRvTGJsID0gJG9MYmxBcnJbJHJvd1skR0xPQkFMU1siQVJsQ21MbUhDWnZndGNiSXVUZyJdXV07IH0gJG9MYmwtPlNldExhbmdWYWx1ZSgkcm93WyRHTE9CQUxTWyJ0a0RwVFJEdnlLa1hrWkNCZmN5UyJdXSwgJHJvd1skR0xPQkFMU1siRmNZclVKWlV4aGZTRlFtTEV6bkIiXV0pOyB9ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siT1VORlVRcGJkTXFHY2dCZWMiXSxhcnJheSgkR0xPQkFMU1siU0hsUkNOTHpHdENHeUhoaGV0TGwiXSkpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQpKSB7ICRsYW5ndWFnZXNbJHJvd1skR0xPQkFMU1siRVdoc0NPTVdzWEtFcGlSa3l2em0iXV1dWyRHTE9CQUxTWyJYY2trSWFoalZPZWRWTmxkVU5ySCJdXSA9ICRyb3dbJEdMT0JBTFNbIlhja2tJYWhqVk9lZFZObGRVTnJIIl1dOyAkbGFuZ3VhZ2VzWyRyb3dbJEdMT0JBTFNbIkVXaHNDT01Xc1hLRXBpUmt5dnptIl1dXVskR0xPQkFMU1siZkl5bGN5SGxUdm1pVHhTZ3NZcm0iXV0gPSAkcm93WyRHTE9CQUxTWyJmSXlsY3lIbFR2bWlUeFNnc1lybSJdXTsgJGxhbmd1YWdlc1skcm93WyRHTE9CQUxTWyJFV2hzQ09NV3NYS0VwaVJreXZ6bSJdXV1bJEdMT0JBTFNbImR4bXl0eEZiUlhvZlNmeFViR1JnIl1dID0gJHJvd1skR0xPQkFMU1siZHhteXR4RmJSWG9mU2Z4VWJHUmciXV07IGZvcmVhY2ggKCRvTGJsQXJyIGFzICRvYmpMYmwpIHsgaWYgKCRvYmpMYmwtPklzTGFuZ1ZhbFNldCgkcm93WyRHTE9CQUxTWyJFV2hzQ09NV3NYS0VwaVJreXZ6bSJdXSkgPT0gZmFsc2UpICRvYmpMYmwtPlNldExhbmdWYWx1ZSgkcm93WyRHTE9CQUxTWyJFV2hzQ09NV3NYS0VwaVJreXZ6bSJdXSwgJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pOyB9IH0gfSByZXR1cm4gYXJyYXkoJG9MYmxBcnIsICRsYW5ndWFnZXMpOyB9IHB1YmxpYyBmdW5jdGlvbiBHZXRBdmFpbGFibGVTZXR0aW5ncygpIHsgJG1lbnVfYXJyYXkgPSBhcnJheSgpOyByZXR1cm4gJG1lbnVfYXJyYXk7IH0gcHVibGljIGZ1bmN0aW9uIEdldFByb2R1Y3RCbG9ja0ZpZWxkcygkc2VsZWN0X21vZHVsZSA9ICIiKSB7ICRjdXJyZW50X3VzZXIgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJHJlc3VsdCA9IGFycmF5KCk7ICRBcnRpY2xlX1N0cmluZ3MgPSBhcnJheSgiIiA9PiB2dHJhbnNsYXRlKCJMQkxfUExTX1NFTEVDVCIsICJQREZNYWtlciIpLCB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ3R1BsckRiS0ZnYkxQaWhiUGZsUCJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgPT4gYXJyYXkoICJQUk9EVUNUQkxPQ19TVEFSVCIgPT4gdnRyYW5zbGF0ZSgiTEJMX0FSVElDTEVfU1RBUlQiLCAiUERGTWFrZXIiKSwgJEdMT0JBTFNbInRleVhWdnBqYVp3YXlKUUtEWmFqIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siRmtkb1FVZGdNVm9qQktGUG1ieGciXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pKSwgdnRyYW5zbGF0ZSgkR0xPQkFMU1siaGR5QWhYTXB3QW9wVXFBQmlUWG0iXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pID0+IGFycmF5KCAiUFJPRFVDVEJMT0NfUFJPRFVDVFNfU1RBUlQiID0+IHZ0cmFuc2xhdGUoIkxCTF9BUlRJQ0xFX1NUQVJUIiwgIlBERk1ha2VyIiksICRHTE9CQUxTWyJWcHZ1VUVZdmZXb2J5RFFsa3RNIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siRmtkb1FVZGdNVm9qQktGUG1ieGciXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pKSwgdnRyYW5zbGF0ZSgkR0xPQkFMU1siTGtxdEViWXhYdVVYZkt5R1pGTlUiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pID0+IGFycmF5KCAiUFJPRFVDVEJMT0NfU0VSVklDRVNfU1RBUlQiID0+IHZ0cmFuc2xhdGUoIkxCTF9BUlRJQ0xFX1NUQVJUIiwgIlBERk1ha2VyIiksICRHTE9CQUxTWyJMRWVNRHBqRVJTS0xraVRSTFladSJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIkZrZG9RVWRnTVZvakJLRlBtYnhnIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSksICk7ICRyZXN1bHRbJEdMT0JBTFNbIkdPWFRlQkxpSm55RmhFR0dRZVR0Il1dID0gJEFydGljbGVfU3RyaW5nczsgJFByb2R1Y3RfRmllbGRzID0gYXJyYXkoIlBTX0NSTUlEIiA9PiB2dHJhbnNsYXRlKCJMQkxfUkVDT1JEX0lEIiwgIlBERk1ha2VyIiksICRHTE9CQUxTWyJhb01KRkdVdURDS1dzZWZnR2ZGdSJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIkNjUGxNcW5YYkJUQXJVcmVuZkh1Il0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSwgJEdMT0JBTFNbInV0RU9BT1Voc1J3VWxDd0VCVFAiXSA9PiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJQdUpEYmhwZVBTSUlKUHRlYU5iZiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSksICRHTE9CQUxTWyJjSkJvdEt5eWhxT3h3UnV6andUeSJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImltU0REc2pXTWVYQ2JUdnh3TFd3Il0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSwgJEdMT0JBTFNbIlZKZGNURUN2YU15Y0RwQWZmWGxsIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1sia0dxeEtZTVp4eFpBTVdJV2JwQXciXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pLCAkR0xPQkFMU1sic2dLelNWcWlKSmJRRU5HWHZqSm8iXSA9PiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJVV2NOQlJkS3hpTnVNbUxRT1hqZSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSksICRHTE9CQUxTWyJZdUdnWmhGRld2SGRYS2pkdnFuRyJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIklOWGtEaGlUTGNrSnJJWW5xWUJpIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSwgJEdMT0JBTFNbImNkRElBS3JqZGZ5VWxiZkpuZXFtIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1sidkd1cHRacUVQS0VyQUpJWnFsdk4iXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pLCAkR0xPQkFMU1siWk9uY1hHcUlpY2RabnVVb1lSZ2giXSA9PiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJjT0pmS3VxWmlrTExCZW5wdE5scSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSksICRHTE9CQUxTWyJlYWJscnRvS1RRb2R1Tkt0RnpSWiJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInJlamhYeExFZXJFdUxKRU9mbW8iXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pICk7IGlmICgkdGhpcy0+ZGItPm51bV9yb3dzKCR0aGlzLT5kYi0+cXVlcnkoJEdMT0JBTFNbIkRkY1lDT21YZXphTUZlWkxTU05DIl0pKSA+IDApICRQcm9kdWN0X0ZpZWxkc1skR0xPQkFMU1siZU91aG5Cbmtvd3luZmxjTyJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImRvUkV1U0l3Tk50alpJam1MUkMiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbIlFmdlNSWFJBUWJ4SU14ZmthZFJGIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siU3lvV29JQWFseE5iUFlhU09rbVUiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbIkRsTGhtenNPTHd5d0Nhc0ZkdW9rIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siS3lDU01CWmZYVnh1aE9SdEtlZlUiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbIlVoSHBubWJqQ3JTaGhHZGYiXV0gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ1dldXRnpDR2lWeVdSTGxLeHciXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbIkRITWpsenFDRURJVWRUQ1BlTUJKIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siSmxUck1pRWROclRQZktEbWZmVSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7ICRQcm9kdWN0X0ZpZWxkc1skR0xPQkFMU1sianBHdFpieHp6U1BvV0dBYyJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInJFckNRS0h5R3BNYkpSdG5XU0dYIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgJFByb2R1Y3RfRmllbGRzWyRHTE9CQUxTWyJ1dHdweGFmaFNUYkpXWWlOZFFidyJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIldodGpsSWNVaFlrQWFYdm9rekFsIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgJFByb2R1Y3RfRmllbGRzWyRHTE9CQUxTWyJ1d2RpRkFRbGhEVlV0blZEU2VGeiJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIlpQc3diSGtCcGRVTkVRU1pLUUtsIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgJFByb2R1Y3RfRmllbGRzWyRHTE9CQUxTWyJTTVJ3Rm9OakdRVlBOcEl5ZlNDaSJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInl4dGJMRE95S1Zxa3JVUGNBc1UiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbInJhbmtDTGl2QURQbFZkdHZnT3JMIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siaUtBcHNqSXFTTVR0SnBxVVN5a0giXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbInhOckRQb2hpT3JIbUVWRlBMTmJsIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siRERKT0pSWFhXWWN2eE9uVkNpbkUiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyBpZiAoJHNlbGVjdF9tb2R1bGUgIT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pIHsgJHJlc3VsdDEgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siRXpsWlJSalBRSW50a1RnWURsZkMiXSwgYXJyYXkoKSk7IHdoaWxlICgkcm93MSA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQxKSkgeyAkVGF4ZXNbJHJvdzFbJEdMT0JBTFNbImRPTERjWWlDV2pkZmJSYVBPZ25LIl1dXSA9ICRyb3cxWyRHTE9CQUxTWyJHVGxaeGdMZ05Va1laVmlKTWhvaCJdXTsgfSAkc2VsZWN0X21vZHVsZWlkID0gZ2V0VGFiaWQoJHNlbGVjdF9tb2R1bGUpOyAkcmVzdWx0MiA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJFRXpwVEh1VWpRa05GRGVhTURZIl0sIGFycmF5KCJ2dGlnZXJfaW52ZW50b3J5cHJvZHVjdHJlbCIsJHNlbGVjdF9tb2R1bGVpZCkpOyB3aGlsZSAoJHJvdzIgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkcmVzdWx0MikpIHsgaWYgKCRyb3cyWyRHTE9CQUxTWyJYeUl3elRadVFuY3RPaWN3UGd3QiJdXSA9PSAkR0xPQkFMU1siRnpNQndzT0ZNd05yVFBrRFVEQ1EiXSkgeyAkbGFiZWwgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJKV0NlZkxTZFJOS0FhdEZUdk9CeiJdKTsgJGxhYmVsIC49ICRHTE9CQUxTWyJVVG1LUkhFc1NiZE9IbUx4SWRTYiJdOyAkbGFiZWwgLj0gdnRyYW5zbGF0ZSgkVGF4ZXNbJHJvdzJbJEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il1dXSwgJHNlbGVjdF9tb2R1bGUpOyAkbGFiZWwgLj0gJEdMT0JBTFNbIlFmZVh4cVl0Q0xheWxlUVBXIl07IH0gZWxzZSB7ICRsYWJlbCA9IHZ0cmFuc2xhdGUoJHJvdzJbJEdMT0JBTFNbIkFMYUJ6R2pqZExLaURmdXhIZHJJIl1dLCAkc2VsZWN0X21vZHVsZSk7IH0gJFByb2R1Y3RfRmllbGRzWyRHTE9CQUxTWyJPbXp2Z3BMZ2JXdm9laGNwUkxoTCJdLnN0cnRvdXBwZXIoJHJvdzJbJEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il1dKV0gPSAkbGFiZWw7IH0gfSAkcmVzdWx0WyRHTE9CQUxTWyJPUUNjZFlIc2NPcWRvZXF5bU9uSyJdXSA9ICRQcm9kdWN0X0ZpZWxkczsgJHByb2RfZmllbGRzID0gJHNlcnZfZmllbGRzID0gYXJyYXkoKTsgJGluID0gZ2V0VGFiSWQoJ1Byb2R1Y3RzJyk7ICRpbiAuPSAkR0xPQkFMU1siVUVyWEVTVmdpWEVUYk1hVXNBdm0iXSAuIGdldFRhYklkKCRHTE9CQUxTWyJhbHlOamJIQWF0RVpCTWx6cVZIbiJdKTsgJHNxbCA9ICRHTE9CQUxTWyJpRmdETVdQV3lobWR3ZlZua295UiJdIC4gJGluIC4gJEdMT0JBTFNbImlBUFpQYVdydlJhWVFsbENacmRNIl07ICRyZXMgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLGFycmF5KCkpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXMpKSB7ICRtb2R1bGUgPSAkcm93WyRHTE9CQUxTWyJYY2trSWFoalZPZWRWTmxkVU5ySCJdXTsgJGZpZWxkbmFtZSA9ICRyb3dbJEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il1dOyBpZiAoZ2V0RmllbGRWaXNpYmlsaXR5UGVybWlzc2lvbigkbW9kdWxlLCAkY3VycmVudF91c2VyLT5pZCwgJGZpZWxkbmFtZSkgIT0gJEdMT0JBTFNbImFhVlNuZ2Z5S0hMUWd4WnZ3clkiXSkgY29udGludWU7ICR0cmFuc19maWVsZF9uYW0gPSBzdHJ0b3VwcGVyKCRtb2R1bGUpIC4gJEdMT0JBTFNbIk1iYWpETkpSaG1NT3dHb2pzY3ZVIl0gLiBzdHJ0b3VwcGVyKCRmaWVsZG5hbWUpOyBzd2l0Y2ggKCRtb2R1bGUpIHsgY2FzZSAkR0xPQkFMU1siaEduYWRWZFNNUERKdHZiTW54Sk0iXTogJHRyYW5zX2Jsb2NrX2xibCA9IHZ0cmFuc2xhdGUoJHJvd1skR0xPQkFMU1sidGxwYmZqS0dkSk51Q25aVGx5UnciXV0sICRHTE9CQUxTWyJ6TW9CZXN1ZGVQTXN0blB6VFJadSJdKTsgJHRyYW5zX2ZpZWxkX2xibCA9IHZ0cmFuc2xhdGUoJHJvd1skR0xPQkFMU1siQUxhQnpHampkTEtpRGZ1eEhkckkiXV0sICRHTE9CQUxTWyJ6TW9CZXN1ZGVQTXN0blB6VFJadSJdKTsgJHByb2RfZmllbGRzWyR0cmFuc19ibG9ja19sYmxdWyR0cmFuc19maWVsZF9uYW1dID0gJHRyYW5zX2ZpZWxkX2xibDsgYnJlYWs7IGNhc2UgJEdMT0JBTFNbInFlcEhJSmhERktGeUV4cXZlUUJEIl06ICR0cmFuc19ibG9ja19sYmwgPSB2dHJhbnNsYXRlKCRyb3dbJEdMT0JBTFNbInRscGJmaktHZEpOdUNuWlRseVJ3Il1dLCAkR0xPQkFMU1siYWx5TmpiSEFhdEVaQk1senFWSG4iXSk7ICR0cmFuc19maWVsZF9sYmwgPSB2dHJhbnNsYXRlKCRyb3dbJEdMT0JBTFNbIkFMYUJ6R2pqZExLaURmdXhIZHJJIl1dLCAkR0xPQkFMU1siYWx5TmpiSEFhdEVaQk1senFWSG4iXSk7ICRzZXJ2X2ZpZWxkc1skdHJhbnNfYmxvY2tfbGJsXVskdHJhbnNfZmllbGRfbmFtXSA9ICR0cmFuc19maWVsZF9sYmw7IGJyZWFrOyBkZWZhdWx0OiBjb250aW51ZTsgfSB9ICRyZXN1bHRbJEdMT0JBTFNbInhiS0lreVZBeGRURkVSUlJ4ZyJdXSA9ICRwcm9kX2ZpZWxkczsgJHJlc3VsdFskR0xPQkFMU1siZHRVRHNMVHh4eHZvckVEekJVZXQiXV0gPSAkc2Vydl9maWVsZHM7IHJldHVybiAkcmVzdWx0OyB9IHB1YmxpYyBmdW5jdGlvbiBHZXRSZWxhdGVkQmxvY2tzKCRzZWxlY3RfbW9kdWxlLCRzZWxlY3RfdG9vID0gdHJ1ZSkgeyAkUmVsYXRlZF9CbG9ja3MgPSBhcnJheSgpOyBpZigkc2VsZWN0X3RvbykgJFJlbGF0ZWRfQmxvY2tzWyRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImhPR21VVmlGWWhyeVFwSHpMWlROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgaWYgKCRzZWxlY3RfbW9kdWxlICE9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdKSB7ICRSZWxhdGVkX01vZHVsZXMgPSBQREZNYWtlcl9SZWxhdGVkQmxvY2tfTW9kZWw6OmdldFJlbGF0ZWRNb2R1bGVzTGlzdCgkc2VsZWN0X21vZHVsZSk7IGlmIChjb3VudCgkUmVsYXRlZF9Nb2R1bGVzKSA+IDApIHsgJHNxbCA9ICRHTE9CQUxTWyJVakJreG1GeG11QVVDWkxHU3hGUiJdIC4gZ2VuZXJhdGVRdWVzdGlvbk1hcmtzKCRSZWxhdGVkX01vZHVsZXMpIC4gJEdMT0JBTFNbIklqQXlNVlpsbk1tWUh0dWNtZVNwIl07ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLCAkUmVsYXRlZF9Nb2R1bGVzKTsgd2hpbGUgKCRyb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkcmVzdWx0KSkgeyBpZiAoJHJvd1skR0xPQkFMU1siRUVWU0VLQXhnYVFWak9NS1NGYVEiXV0gPT0gJEdMT0JBTFNbIkRQanhmd1Z4SXR6U0J1RGlPSGlsIl0gJiYgJHJvd1skR0xPQkFMU1siRUVWU0VLQXhnYVFWak9NS1NGYVEiXV0gIT0gJHNlbGVjdF9tb2R1bGUpIHsgJGNzcWwgPSAkR0xPQkFMU1siZ0t4bFNtT05XZmlDcVVTc1ZVZ0kiXTsgJGNyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkY3NxbCwgYXJyYXkoJHJvd1sicmVsYmxvY2tpZCJdLCJ2dGlnZXJfcHJpY2Vib29rcHJvZHVjdHJlbHRtcCUiKSk7IGlmICgkdGhpcy0+ZGItPm51bV9yb3dzKCRjcmVzdWx0KSA+IDApIGNvbnRpbnVlOyB9ICRSZWxhdGVkX0Jsb2Nrc1skcm93WyRHTE9CQUxTWyJBaWJpc3BuelFFa1NpTURBZmpWbiJdXV0gPSAkcm93WyRHTE9CQUxTWyJYY2trSWFoalZPZWRWTmxkVU5ySCJdXTsgfSB9IH0gcmV0dXJuICRSZWxhdGVkX0Jsb2NrczsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0VXNlclNldHRpbmdzKCR1c2VyaWQgPSAiIikgeyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICR1c2VyaWQgPSAoJHVzZXJpZCA9PSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXSA/ICRjdXJyZW50X3VzZXItPmlkIDogJHVzZXJpZCk7ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1sidmNmWElEYlJPZWFvU09HVWF1eE0iXSwgYXJyYXkoJHVzZXJpZCkpOyAkc2V0dGluZ3MgPSBhcnJheSgpOyBpZiAoJHRoaXMtPmRiLT5udW1fcm93cygkcmVzdWx0KSA+IDApIHsgd2hpbGUgKCRyb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkcmVzdWx0KSkgeyAkc2V0dGluZ3NbJEdMT0JBTFNbInd3YXVmSEVOb1ZuSEtOYkFEZnZlIl1dID0gJHJvd1skR0xPQkFMU1sid3dhdWZIRU5vVm5IS05iQURmdmUiXV07IH0gfSBlbHNlIHsgJHNldHRpbmdzWyRHTE9CQUxTWyJ3d2F1ZkhFTm9WbkhLTmJBRGZ2ZSJdXSA9ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdOyB9IHJldHVybiAkc2V0dGluZ3M7IH0gcHVibGljIGZ1bmN0aW9uIGdldFNpZGVCYXJMaW5rcygkbGlua1BhcmFtcykgeyAkY3VycmVudFVzZXJNb2RlbCA9IFVzZXJzX1JlY29yZF9Nb2RlbDo6Z2V0Q3VycmVudFVzZXJNb2RlbCgpOyAkdHlwZSA9ICRHTE9CQUxTWyJnVUVoT3hKZHRjZWhQUUhBY1EiXTsgJHF1aWNrTGlua3MgPSBhcnJheSgpOyBpZiAoJGxpbmtQYXJhbXNbIkFDVElPTiJdID09ICJQcm9maWxlc1ByaXZpbGVnaWVzIikgeyAkcXVpY2tTTGlua3MgPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAiU0lERUJBUkxJTksiLCAnbGlua2xhYmVsJyA9PiAiTEJMX1JFQ09SRFNfTElTVCIsICdsaW5rdXJsJyA9PiAiaW5kZXgucGhwP21vZHVsZT1QREZNYWtlciZ2aWV3PUxpc3QiLCAnbGlua2ljb24nID0+ICcnKTsgJGxpbmtzWyRHTE9CQUxTWyJnVUVoT3hKZHRjZWhQUUhBY1EiXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJHF1aWNrU0xpbmtzKTsgfSBlbHNlaWYgKCRsaW5rUGFyYW1zWyRHTE9CQUxTWyJoQnl3UVZMdWV1SnVyR0FrUHFQSSJdXSA9PSAkR0xPQkFMU1sidHpCVm1hcFBUUEl3U1VsZktSY3EiXSAmJiAkbGlua1BhcmFtc1skR0xPQkFMU1siUGRacXdrVXpNV3RHd2hTV1JGZU0iXV0gPT0gJEdMT0JBTFNbIlF5dXlxeUhXYmNzSkpaalRrVE5iIl0pIHsgaWYoJGN1cnJlbnRVc2VyTW9kZWwtPmlzQWRtaW5Vc2VyKCkpIHsgJFNldHRpbmdzTGlua3MgPSAkdGhpcy0+R2V0QXZhaWxhYmxlU2V0dGluZ3MoKTsgZm9yZWFjaCgkU2V0dGluZ3NMaW5rcyBhcyAkc3R5cGUgPT4gJHNkYXRhKSB7ICRxdWlja0xpbmtzW10gPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAnU0lERUJBUkxJTksnLCAnbGlua2xhYmVsJyA9PiAkc2RhdGFbImxhYmVsIl0sICdsaW5rdXJsJyA9PiAkc2RhdGFbImxvY2F0aW9uIl0sICdsaW5raWNvbicgPT4gJycpOyB9IH0gfSBlbHNlIHsgJGxpbmtUeXBlcyA9IGFycmF5KCdTSURFQkFSTElOSycsICdTSURFQkFSV0lER0VUJyk7ICRsaW5rcyA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRBbGxCeVR5cGUoJHRoaXMtPmdldElkKCksICRsaW5rVHlwZXMsICRsaW5rUGFyYW1zKTsgJHF1aWNrTGlua3NbXSA9IGFycmF5KCAnbGlua3R5cGUnID0+ICdTSURFQkFSTElOSycsICdsaW5rbGFiZWwnID0+ICdMQkxfUkVDT1JEU19MSVNUJywgJ2xpbmt1cmwnID0+ICR0aGlzLT5nZXRMaXN0Vmlld1VybCgpLCAnbGlua2ljb24nID0+ICcnLCApOyBpZiAodnRsaWJfaXNNb2R1bGVBY3RpdmUoJEdMT0JBTFNbInd1VFVhSlhaQ3ZrR1lMd01ZV2FoIl0pKXsgJHF1aWNrTGlua3NbXSA9IGFycmF5KCAnbGlua3R5cGUnID0+ICdTSURFQkFSTElOSycsICdsaW5rbGFiZWwnID0+ICdMQkxfU1RZTEVTX0xJU1QnLCAnbGlua3VybCcgPT4gImluZGV4LnBocD9tb2R1bGU9SVRTNFlvdVN0eWxlcyZ2aWV3PUxpc3QiLCAnbGlua2ljb24nID0+ICcnLCApOyB9IH0gaWYgKGNvdW50KCRxdWlja0xpbmtzKSA+IDApIHsgZm9yZWFjaCAoJHF1aWNrTGlua3MgYXMgJHF1aWNrTGluaykgeyAkbGlua3NbJHR5cGVdW10gPSBWdGlnZXJfTGlua19Nb2RlbDo6Z2V0SW5zdGFuY2VGcm9tVmFsdWVzKCRxdWlja0xpbmspOyB9IH0gaWYoJGN1cnJlbnRVc2VyTW9kZWwtPmlzQWRtaW5Vc2VyKCkgJiYgJGxpbmtQYXJhbXNbJEdMT0JBTFNbImhCeXdRVkx1ZXVKdXJHQWtQcVBJIl1dICE9ICRHTE9CQUxTWyJ5SXJwa3BTTllIbGVUdHdPTHRmRyJdICYmICRsaW5rUGFyYW1zWyRHTE9CQUxTWyJoQnl3UVZMdWV1SnVyR0FrUHFQSSJdXSAhPSAkR0xPQkFMU1siaEhIS3F4U3hYU1BMUmttV05vamIiXSkgeyAkcXVpY2tTMkxpbmtzID0gYXJyYXkoICdsaW5rdHlwZScgPT4gIlNJREVCQVJXSURHRVQiLCAnbGlua2xhYmVsJyA9PiAiTEJMX1NFVFRJTkdTIiwgJ2xpbmt1cmwnID0+ICJtb2R1bGU9UERGTWFrZXImdmlldz1JbmRleEFqYXgmbW9kZT1zaG93U2V0dGluZ3NMaXN0JnB2aWV3PSIuJGxpbmtQYXJhbXNbIkFDVElPTiJdLCAnbGlua2ljb24nID0+ICcnKTsgJGxpbmtzWyRHTE9CQUxTWyJtR0tOT2laenNrU1FiU1F1Z09xTyJdXVtdID0gVnRpZ2VyX0xpbmtfTW9kZWw6OmdldEluc3RhbmNlRnJvbVZhbHVlcygkcXVpY2tTMkxpbmtzKTsgfSByZXR1cm4gJGxpbmtzOyB9IHB1YmxpYyBmdW5jdGlvbiBnZXRMaXN0Vmlld0xpbmtzKCRsaW5rUGFyYW1zKSB7ICRjdXJyZW50VXNlck1vZGVsID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICRsaW5rVHlwZXMgPSBhcnJheSgnTElTVFZJRVdNQVNTQUNUSU9OJywnTElTVFZJRVdTRVRUSU5HJyk7ICRsaW5rcyA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRBbGxCeVR5cGUoJHRoaXMtPmdldElkKCksICRsaW5rVHlwZXMsICRsaW5rUGFyYW1zKTsgaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb25zKCRHTE9CQUxTWyJQRGZ2amdLeFFlRVlOV05KbFJaZCJdKSAmJiAkdGhpcy0+R2V0VmVyc2lvblR5cGUoKSAhPSAkR0xPQkFMU1sicUJ2Z0VlVFBQeGxBdXBIdktiaFUiXSkgeyAkbWFzc0FjdGlvbkxpbmsgPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAnTElTVFZJRVdNQVNTQUNUSU9OJywgJ2xpbmtsYWJlbCcgPT4gJ0xCTF9ERUxFVEUnLCAnbGlua3VybCcgPT4gJ2phdmFzY3JpcHQ6UERGTWFrZXJfTGlzdEpzLm1hc3NEZWxldGVUZW1wbGF0ZXMoKTsnLCAnbGlua2ljb24nID0+ICcnICk7ICRsaW5rc1skR0xPQkFMU1siSFhma1lrQllTQWpnWGFabVJaaFIiXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJG1hc3NBY3Rpb25MaW5rKTsgfSAkcXVpY2tMaW5rcyA9IGFycmF5KCk7IGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9ucygiRURJVCIpICYmICR0aGlzLT5HZXRWZXJzaW9uVHlwZSgpICE9ICRHTE9CQUxTWyJxQnZnRWVUUFB4bEF1cEh2S2JoVSJdKSB7ICRxdWlja0xpbmtzIFtdID0gYXJyYXkoICdsaW5rdHlwZScgPT4gJ0xJU1RWSUVXJywgJ2xpbmtsYWJlbCcgPT4gJ0xCTF9JTVBPUlQnLCAnbGlua3VybCcgPT4gJ2luZGV4LnBocD9tb2R1bGU9UERGTWFrZXImdmlldz1JbXBvcnRQREZUZW1wbGF0ZScsICdsaW5raWNvbicgPT4gJycpOyB9IGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9ucygkR0xPQkFMU1siQVl0cEZHakNZUFdoR1hlRmluWVQiXSkgKSB7ICRxdWlja0xpbmtzIFtdID0gYXJyYXkoICdsaW5rdHlwZScgPT4gJ0xJU1RWSUVXJywgJ2xpbmtsYWJlbCcgPT4gJ0xCTF9FWFBPUlQnLCAnbGlua3VybCcgPT4gJ2phdmFzY3JpcHQ6RXhwb3J0VGVtcGxhdGVzKCk7JywgJ2xpbmtpY29uJyA9PiAnJyk7IH0gZm9yZWFjaCgkcXVpY2tMaW5rcyBhcyAkcXVpY2tMaW5rKSB7ICRsaW5rc1skR0xPQkFMU1siS3FqdXNhWkhSQXBxdmJNcXlaRk8iXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJHF1aWNrTGluayk7IH0gaWYoJGN1cnJlbnRVc2VyTW9kZWwtPmlzQWRtaW5Vc2VyKCkpIHsgJHNldHRpbmdzTGlua3MgPSAkdGhpcy0+Z2V0U2V0dGluZ0xpbmtzKCk7IGZvcmVhY2goJHNldHRpbmdzTGlua3MgYXMgJHNldHRpbmdzTGluaykgeyAkbGlua3NbJEdMT0JBTFNbIm9VTENoUWxRT2pWQURudEFCUWsiXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJHNldHRpbmdzTGluayk7IH0gJFNldHRpbmdzTGlua3MgPSAkdGhpcy0+R2V0QXZhaWxhYmxlU2V0dGluZ3MoKTsgZm9yZWFjaCgkU2V0dGluZ3NMaW5rcyBhcyAkc3R5cGUgPT4gJHNkYXRhKSB7ICRzX3BhcnIgPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAnTElTVFZJRVdTRVRUSU5HJywgJ2xpbmtsYWJlbCcgPT4gJHNkYXRhWyJsYWJlbCJdLCAnbGlua3VybCcgPT4gJHNkYXRhWyJsb2NhdGlvbiJdLCAnbGlua2ljb24nID0+ICcnKTsgJGxpbmtzWyRHTE9CQUxTWyJvVUxDaFFsUU9qVkFEbnRBQlFrIl1dW10gPSBWdGlnZXJfTGlua19Nb2RlbDo6Z2V0SW5zdGFuY2VGcm9tVmFsdWVzKCRzX3BhcnIpOyB9IH0gcmV0dXJuICRsaW5rczsgfSBmdW5jdGlvbiBnZW5lcmF0ZV9jb29sX3VyaSgkbmFtZSkgeyAkU2VhcmNoID0gYXJyYXkoIiQiLCAi4oKsIiwgIiYiLCAiJSIsICIpIiwgIigiLCAiLiIsICIgLSAiLCAiLyIsICIgIiwgIiwiLCAixL4iLCAixaEiLCAixI0iLCAixaUiLCAixb4iLCAiw70iLCAiw6EiLCAiw60iLCAiw6kiLCAiw7MiLCAiw7YiLCAixa8iLCAiw7oiLCAiw7wiLCAiw6QiLCAixYgiLCAixI8iLCAiw7QiLCAixZUiLCAixL0iLCAixaAiLCAixIwiLCAixaQiLCAixb0iLCAiw50iLCAiw4EiLCAiw40iLCAiw4kiLCAiw5MiLCAiw5oiLCAixI4iLCAiXCIiLCAiwrAiLCAiw58iKTsgJFJlcGxhY2UgPSBhcnJheSgiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiLSIsICItIiwgIi0iLCAiLSIsICItIiwgImwiLCAicyIsICJjIiwgInQiLCAieiIsICJ5IiwgImEiLCAiaSIsICJlIiwgIm8iLCAibyIsICJ1IiwgInUiLCAidSIsICJhIiwgIm4iLCAiZCIsICJvIiwgInIiLCAibCIsICJzIiwgImMiLCAidCIsICJ6IiwgInkiLCAiYSIsICJpIiwgImUiLCAibyIsICJ1IiwgImQiLCAiIiwgIiIsICJzcyIpOyAkcmV0dXJuID0gc3RyX3JlcGxhY2UoJFNlYXJjaCwgJFJlcGxhY2UsICRuYW1lKTsgcmV0dXJuICRyZXR1cm47IH0gZnVuY3Rpb24gY3JlYXRlUERGQW5kU2F2ZUZpbGUoJHJlcXVlc3QsJHRlbXBsYXRlcywgJGZvY3VzLCAkUmVjb3JkcywgJGZpbGVfbmFtZSwgJG1vZHVsZU5hbWUsICRsYW5ndWFnZSkgeyAkY3UgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJGRsID0gVnRpZ2VyX0xhbmd1YWdlX0hhbmRsZXI6OmdldExhbmd1YWdlKCk7ICRkYXRlX3ZhciA9IGRhdGUoJEdMT0JBTFNbInJjckpLTFNGclNSdEdubnVmUk9JIl0pOyAkb3duZXJpZCA9ICRmb2N1cy0+Y29sdW1uX2ZpZWxkc1skR0xPQkFMU1siaGNsb3JsTnF1TE9CWXZFekt6dXIiXV07IGlmICghaXNzZXQoJG93bmVyaWQpIHx8ICRvd25lcmlkID09ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdKSAkb3duZXJpZCA9ICRjdS0+aWQ7ICRjdXJyZW50X2lkID0gJHRoaXMtPmRiLT5nZXRVbmlxdWVJRCgkR0xPQkFMU1siUk5xS0hSQ2NaTW9vRVBsT0pZdGkiXSk7IGlmIChpc19hcnJheSgkdGVtcGxhdGVzKSl7ICRUZW1wbGF0ZWlkcyA9ICR0ZW1wbGF0ZXM7IH0gZWxzZSB7ICR0ZW1wbGF0ZXMgPSBydHJpbSgkdGVtcGxhdGVzLCAkR0xPQkFMU1sieUtKWUVBc3BZR1dlUXVhUHFDckoiXSk7IGlmICgkdGVtcGxhdGVzICE9ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdKXsgJFRlbXBsYXRlaWRzID0gZXhwbG9kZSgkR0xPQkFMU1sieUtKWUVBc3BZR1dlUXVhUHFDckoiXSwgJHRlbXBsYXRlcyk7IH0gZWxzZXsgJFRlbXBsYXRlaWRzID0gYXJyYXkoKTsgfSB9IGlmICghJGxhbmd1YWdlIHx8ICRsYW5ndWFnZSA9PSAiIil7ICRsYW5ndWFnZSA9ICRkbDsgfSAkcHJlQ29udGVudCA9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdOyAkbW9kZSA9ICRyZXF1ZXN0LT5nZXQoJEdMT0JBTFNbIk9YRENZWVRtdEhaaEdPR2lhR2JJIl0pOyAkbW9kdWxlID0gJHJlcXVlc3QtPmdldCgkR0xPQkFMU1siTndranFra2JkbUJDV1pSd0tHQnoiXSk7IGlmIChpc3NldCgkbW9kZSkgJiYgJG1vZGUgPT0gJEdMT0JBTFNbInVMUm5WdE1oaWxrQlRGY1lDTkpJIl0gJiYgaXNzZXQoJG1vZHVsZSkgJiYgJG1vZHVsZSA9PSAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgeyBmb3JlYWNoICgkVGVtcGxhdGVpZHMgYXMgJHRlbXBsYXRlaWQpIHsgJHByZUNvbnRlbnRbJEdMT0JBTFNbIk5UeVFIanNaekVJY0N0c2lUSmZ3Il0gLiAkdGVtcGxhdGVpZF0gPSAkcmVxdWVzdC0+Z2V0KCRHTE9CQUxTWyJOVHlRSGpzWnpFSWNDdHNpVEpmdyJdIC4gJHRlbXBsYXRlaWQpOyAkcHJlQ29udGVudFskR0xPQkFMU1sia3ZCY3RUUEFiUnNoZ09mSnhJQnAiXSAuICR0ZW1wbGF0ZWlkXSA9ICRyZXF1ZXN0LT5nZXQoJEdMT0JBTFNbImt2QmN0VFBBYlJzaGdPZkp4SUJwIl0gLiAkdGVtcGxhdGVpZCk7ICRwcmVDb250ZW50WyRHTE9CQUxTWyJCRVRERVNockN6SWZwRnJRaGlQTSJdIC4gJHRlbXBsYXRlaWRdID0gJHJlcXVlc3QtPmdldCgkR0xPQkFMU1siQkVUREVTaHJDeklmcEZyUWhpUE0iXSAuICR0ZW1wbGF0ZWlkKTsgfSB9ICRtcGRmID0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl07ICRuYW1lID0gJHRoaXMtPkdldFByZXBhcmVkTVBERigkbXBkZiwgJFJlY29yZHMsICRUZW1wbGF0ZWlkcywgJG1vZHVsZU5hbWUsICRsYW5ndWFnZSwgJHByZUNvbnRlbnQpOyAkbmFtZSA9ICR0aGlzLT5nZW5lcmF0ZV9jb29sX3VyaSgkbmFtZSk7ICR1cGxvYWRfZmlsZV9wYXRoID0gZGVjaWRlRmlsZVBhdGgoKTsgaWYgKCRuYW1lICE9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdKSAkZmlsZV9uYW1lID0gJG5hbWUgLiAkR0xPQkFMU1siR2tIY1JPaU5DWmlHUW9RUXl2Y0EiXTsgJG1wZGYtPk91dHB1dCgkdXBsb2FkX2ZpbGVfcGF0aCAuICRjdXJyZW50X2lkIC4gJEdMT0JBTFNbIk1iYWpETkpSaG1NT3dHb2pzY3ZVIl0gLiAkZmlsZV9uYW1lKTsgJGZpbGVzaXplID0gZmlsZXNpemUoJHVwbG9hZF9maWxlX3BhdGggLiAkY3VycmVudF9pZCAuICRHTE9CQUxTWyJNYmFqRE5KUmhtTU93R29qc2N2VSJdIC4gJGZpbGVfbmFtZSk7ICRmaWxldHlwZSA9ICRHTE9CQUxTWyJPd0hIS2FpRGVpb2pXdE90WUJXSiJdOyAkcGFyYW1zMSA9IGFycmF5KCRjdXJyZW50X2lkLCAkY3UtPmlkLCAkb3duZXJpZCwgIkRvY3VtZW50cyBBdHRhY2htZW50IiwgJGZvY3VzLT5jb2x1bW5fZmllbGRzWyJkZXNjcmlwdGlvbiJdLCAkdGhpcy0+ZGItPmZvcm1hdERhdGUoJGRhdGVfdmFyLCB0cnVlKSwgJHRoaXMtPmRiLT5mb3JtYXREYXRlKCRkYXRlX3ZhciwgdHJ1ZSkpOyAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siRkNVc2l5RktiRHZKR25YRU5oRWQiXSwgJHBhcmFtczEpOyBpZihkZWZpbmVkKCRHTE9CQUxTWyJpUENHeXFZVUNnYnhyY25YYWJSZyJdKSl7ICR1cGxvYWRfZmlsZV9wYXRoID0gc3RyX3JlcGxhY2UoU1RPUkFHRV9ST09ULCAkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSwgJHVwbG9hZF9maWxlX3BhdGgpOyB9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJJcEpxeFBRaFdDclNWcmhlRGZ5ZSJdLCBhcnJheSgkY3VycmVudF9pZCwgJGZpbGVfbmFtZSwgJGZvY3VzLT5jb2x1bW5fZmllbGRzWyJkZXNjcmlwdGlvbiJdLCAkZmlsZXR5cGUsICR1cGxvYWRfZmlsZV9wYXRoKSk7ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJmRnRxd2J5REx6bUVCcndncnFqZiJdLCBhcnJheSgkZm9jdXMtPmlkLCAkY3VycmVudF9pZCkpOyAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siYVpndFBSb2p2WHdMUFZBS1BHUUIiXSwgYXJyYXkoJGZpbGVzaXplLCAkZmlsZV9uYW1lLCAkZm9jdXMtPmlkKSk7IGlmKHZ0bGliX2lzTW9kdWxlQWN0aXZlKCRHTE9CQUxTWyJMS1NpSkhXbG5EUXVYelZqVGFDUCJdKSkgeyByZXF1aXJlX29uY2UgJEdMT0JBTFNbInF2ZGZQUmpUa0J0V0VwQWxXdmxOIl07IE1vZFRyYWNrZXI6OmxpbmtSZWxhdGlvbigkbW9kdWxlTmFtZSwgJGZvY3VzLT5wYXJlbnRpZCwkR0xPQkFMU1siV0ZtY01XYWRHcHlhZFhSWHdLTVgiXSwgJGZvY3VzLT5pZCk7IH0gcmV0dXJuIHRydWU7IH0gcHVibGljIGZ1bmN0aW9uIEdldFdvcmtmbG93c0xpc3QoKSB7IHJldHVybiAkdGhpcy0+d29ya2Zsb3dzOyB9IHB1YmxpYyBmdW5jdGlvbiBjb250cm9sV29ya2Zsb3dzKCkgeyAkYWRiID0gUGVhckRhdGFiYXNlOjpnZXRJbnN0YW5jZSgpOyAkY29udHJvbCA9IDA7ICRXb3JrZmxvd3MgPSAkdGhpcy0+R2V0V29ya2Zsb3dzTGlzdCgpOyBmb3JlYWNoICgkV29ya2Zsb3dzIEFTICRuYW1lKSB7ICRkZXN0MSA9ICRHTE9CQUxTWyJyZ09FTGJqaFRDTk1nbVR3Z3liSSJdLiRuYW1lLiRHTE9CQUxTWyJacmNlc3h2cEdwa2JmYk1mcklzcSJdOyAkZGVzdDIgPSAkR0xPQkFMU1sid0FMWHN5QnV6VmNiU1pobmFQSG8iXS4kbmFtZS4kR0xPQkFMU1siaUlOcmNmVFhQR0loTWVkREl1UEQiXTsgaWYgKGZpbGVfZXhpc3RzKCRkZXN0MSkgJiYgZmlsZV9leGlzdHMoJGRlc3QyKSkgeyAkcmVzdWx0MSA9ICRhZGItPnBxdWVyeSgkR0xPQkFMU1siTWFBU0JYbXJtYkRKZ2h1SVRKbm0iXSxhcnJheSgkbmFtZSkpOyBpZiAoJGFkYi0+bnVtX3Jvd3MoJHJlc3VsdDEpID4gMCkgJGNvbnRyb2wrKzsgfSB9IGlmIChjb3VudCgkV29ya2Zsb3dzKSA9PSAkY29udHJvbCkgcmV0dXJuIHRydWU7IGVsc2UgcmV0dXJuIGZhbHNlOyB9IHB1YmxpYyBmdW5jdGlvbiBpc1RlbXBsYXRlRGVsZXRlZCgkdGVtcGxhdGVpZCkgeyAkcmVzdWx0ID0gJHRoaXMtPmRiLT5wcXVlcnkoJEdMT0JBTFNbImx4dmhkSkFDSmN4QmhtUk1JWmNlIl0sIGFycmF5KCR0ZW1wbGF0ZWlkLCIxIikpOyBpZiAoJHRoaXMtPmRiLT5udW1fcm93cygkcmVzdWx0KSA+IDApIHJldHVybiB0cnVlOyBlbHNlIHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gaXNSVEZBY3RpdmF0ZWQoKSB7IHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0RGV0YWlsVmlld0xpbmtzKCR0ZW1wbGF0ZWlkID0gJycpeyAkbGlua1R5cGVzID0gYXJyYXkoJ0RFVEFJTFZJRVdUQUInKTsgJGRldGFpbF91cmwgPSAkR0xPQkFMU1siZVVOa1hueXBFcEVnU1lSekJZSVUiXS4kdGVtcGxhdGVpZC4kR0xPQkFMU1siU291a0dHT2lLQ1l6eWpLbHlhdHYiXS4kdGVtcGxhdGVpZDsgJGRldGFpbFZpZXdMaW5rcyA9IGFycmF5KCBhcnJheSgnbGlua3R5cGUnID0+ICdERVRBSUxWSUVXVEFCJywgJ2xpbmtsYWJlbCcgPT4gdnRyYW5zbGF0ZSgnTEJMX1BST1BFUlRJRVMnLCdQREZNYWtlcicpLCAkR0xPQkFMU1siVWltWVdjbHRVUGhlSlZpUmdTakciXSA9PiAkZGV0YWlsX3VybCwgJEdMT0JBTFNbImhSTE11d3ZFekRWS0xtcnlleU1GIl0gPT4gJEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl0pICk7IGlmICh2dGxpYl9pc01vZHVsZUFjdGl2ZSgkR0xPQkFMU1sid3VUVWFKWFpDdmtHWUx3TVlXYWgiXSkpeyAkZGV0YWlsVmlld0xpbmtzW10gPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAnREVUQUlMVklFV1RBQicsICdsaW5rbGFiZWwnID0+IHZ0cmFuc2xhdGUoJ0xCTF9TVFlMRVNfTElTVCcsJ0lUUzRZb3VTdHlsZXMnKSwgJEdMT0JBTFNbIlVpbVlXY2x0VVBoZUpWaVJnU2pHIl0gPT4gJGRldGFpbF91cmwuJEdMT0JBTFNbInhka2lyd09paHdnZ1pnYlFzeWhQIl0sICRHTE9CQUxTWyJoUkxNdXd2RXpEVktMbXJ5ZXlNRiJdID0+ICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdICk7IH0gZm9yZWFjaCAoJGRldGFpbFZpZXdMaW5rcyBhcyAkZGV0YWlsVmlld0xpbmspeyAkbGlua01vZGVsTGlzdFskR0xPQkFMU1siSXFvd0xuUUxGc3hJUHBQd2xSWlQiXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJGRldGFpbFZpZXdMaW5rKTsgfSByZXR1cm4gJGxpbmtNb2RlbExpc3Q7IH0gfSA/Pg==').'<?php '); ?>
Did this file decode correctly?
Original Code
<?php
/* * *******************************************************************************
* The content of this file is subject to the PDF Maker license.
* ("License"); You may not use this file except in compliance with the License
* The Initial Developer of the Original Code is IT-Solutions4You s.r.o.
* Portions created by IT-Solutions4You s.r.o. are Copyright(C) IT-Solutions4You s.r.o.
* All Rights Reserved.
* ****************************************************************************** */
error_reporting(0);
function QJiBwmEDrBBydyuyOzXI($iFeGKfczGH){$r=base64_decode("YmFzZTY0X2RlY29kZSgkaUZlR0tmY3pHSCk=");return eval("return $r;");} eval('?>'.QJiBwmEDrBBydyuyOzXI('PD9waHANCiRHTE9CQUxTWyJ4ZGtpcndPaWh3Z2daZ2JRc3loUCJdPWJhc2U2NF9kZWNvZGUoIkpuSmxiR0YwWldSTmIyUjFiR1U5U1ZSVE5GbHZkVk4wZVd4bGN5WnRiMlJsUFhOb2IzZFNaV3hoZEdWa1RHbHpkQT09Iik7JEdMT0JBTFNbIm5HaUxiWmlTdmZJQ3VtU1hPUGJZIl09YmFzZTY0X2RlY29kZSgiU1ZSVE5GbHZkVk4wZVd4bGN3PT0iKTskR0xPQkFMU1sicURCZkJtSHZxVVRISUJ6RG9TUloiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFCU1QxQkZVbFJKUlZNPSIpOyRHTE9CQUxTWyJTb3VrR0dPaUtDWXp5aktseWF0diJdPWJhc2U2NF9kZWNvZGUoIkpuSmxZMjl5WkQxMCIpOyRHTE9CQUxTWyJlVU5rWG55cEVwRWdTWVJ6QllJVSJdPWJhc2U2NF9kZWNvZGUoImFXNWtaWGd1Y0dod1AyMXZaSFZzWlQxUVJFWk5ZV3RsY2laMmFXVjNQVVJsZEdGcGJDWjBaVzF3YkdGMFpXbGtQUT09Iik7JEdMT0JBTFNbIklxb3dMblFMRnN4SVBwUHdsUlpUIl09YmFzZTY0X2RlY29kZSgiUkVWVVFVbE1Wa2xGVjFSQlFnPT0iKTskR0xPQkFMU1sicXZkZlBSalRrQnRXRXBBbFd2bE4iXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bGN5OU5iMlJVY21GamEyVnlMMDF2WkZSeVlXTnJaWEl1Y0dodyIpOyRHTE9CQUxTWyJMS1NpSkhXbG5EUXVYelZqVGFDUCJdPWJhc2U2NF9kZWNvZGUoIlRXOWtWSEpoWTJ0bGNnPT0iKTskR0xPQkFMU1siZkZ0cXdieURMem1FQnJ3Z3JxamYiXT1iYXNlNjRfZGVjb2RlKCJhVzV6WlhKMElHbHVkRzhnZG5ScFoyVnlYM05sWVhSMFlXTm9iV1Z1ZEhOeVpXd2dkbUZzZFdWektEOHNQeWs9Iik7JEdMT0JBTFNbImlQQ0d5cVlVQ2dieHJjblhhYlJnIl09YmFzZTY0X2RlY29kZSgiVTFSUFVrRkhSVjlTVDA5VSIpOyRHTE9CQUxTWyJPWERDWVlUbXRIWmhHT0dpYUdiSSJdPWJhc2U2NF9kZWNvZGUoImJXOWtaUT09Iik7JEdMT0JBTFNbImtWVE9Lbmt1WEZLdVpQQk1pRUdaIl09YmFzZTY0X2RlY29kZSgiYW1GMllYTmpjbWx3ZERwRmVIQnZjblJVWlcxd2JHRjBaWE1vS1RzPSIpOyRHTE9CQUxTWyJLenl4UHpXakpkZVlLTHpCSkpmaCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMFZZVUU5U1ZBPT0iKTskR0xPQkFMU1siRmNSdEZYdExwcFNBcERISUpQWUgiXT1iYXNlNjRfZGVjb2RlKCJhVzVrWlhndWNHaHdQMjF2WkhWc1pUMVFSRVpOWVd0bGNpWjJhV1YzUFVsdGNHOXlkRkJFUmxSbGJYQnNZWFJsIik7JEdMT0JBTFNbInBOaVJJbUxmR0RCR1BCb2dPeHpUIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwbE5VRTlTVkE9PSIpOyRHTE9CQUxTWyJLcWp1c2FaSFJBcHF2Yk1xeVpGTyJdPWJhc2U2NF9kZWNvZGUoIlRFbFRWRlpKUlZjPSIpOyRHTE9CQUxTWyJua01jWUNCR3hJQVFGZVdLVk1mUiJdPWJhc2U2NF9kZWNvZGUoImFtRjJZWE5qY21sd2REcFFSRVpOWVd0bGNsOU1hWE4wU25NdWJXRnpjMFJsYkdWMFpWUmxiWEJzWVhSbGN5Z3BPdz09Iik7JEdMT0JBTFNbIm9VTENoUWxRT2pWQURudEFCUWsiXT1iYXNlNjRfZGVjb2RlKCJURWxUVkZaSlJWZFRSVlJVU1U1SCIpOyRHTE9CQUxTWyJQZ0lyZ09PWExpZXFDWGZzTXNrUCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMU5VV1V4RlUxOU1TVk5VIik7JEdMT0JBTFNbIk1pU0hSbVNieklSaFZZTFJlanVtIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxSkZRMDlTUkZOZlRFbFRWQT09Iik7JEdMT0JBTFNbInpIYkJwbnlmSm9wTGhGVFBjekZ4Il09YmFzZTY0X2RlY29kZSgiVTBsRVJVSkJVbGRKUkVkRlZBPT0iKTskR0xPQkFMU1siVUJzWEtvRmhuV29IYlZybWpOU2siXT1iYXNlNjRfZGVjb2RlKCJVMGxFUlVKQlVreEpUa3M9Iik7JEdMT0JBTFNbImhSTE11d3ZFekRWS0xtcnlleU1GIl09YmFzZTY0X2RlY29kZSgiYkdsdWEybGpiMjQ9Iik7JEdMT0JBTFNbIlVpbVlXY2x0VVBoZUpWaVJnU2pHIl09YmFzZTY0X2RlY29kZSgiYkdsdWEzVnliQT09Iik7JEdMT0JBTFNbInJrR0ppaHdkQ3FQQ2dZa2Z1d1JLIl09YmFzZTY0X2RlY29kZSgiYkdsdWEyeGhZbVZzIik7JEdMT0JBTFNbIkdRSXJQRnlqcXhIdExmSlZUaE9qIl09YmFzZTY0X2RlY29kZSgiYkdsdWEzUjVjR1U9Iik7JEdMT0JBTFNbImFhVlNuZ2Z5S0hMUWd4WnZ3clkiXT1iYXNlNjRfZGVjb2RlKCJNQT09Iik7JEdMT0JBTFNbImFseU5qYkhBYXRFWkJNbHpxVkhuIl09YmFzZTY0X2RlY29kZSgiVTJWeWRtbGpaWE09Iik7JEdMT0JBTFNbIlVFclhFU1ZnaVhFVGJNYVVzQXZtIl09YmFzZTY0X2RlY29kZSgiTENBPSIpOyRHTE9CQUxTWyJ6TW9CZXN1ZGVQTXN0blB6VFJadSJdPWJhc2U2NF9kZWNvZGUoIlVISnZaSFZqZEhNPSIpOyRHTE9CQUxTWyJNYnRKaVB2VFVreGtMZlF5YU9aQSJdPWJhc2U2NF9kZWNvZGUoImNHUm1iV0ZyWlhKZmJYQmtabDl3YjNOMGNISnZZMlZ6YzJsdVp3PT0iKTskR0xPQkFMU1siUlppWkhYdHpYWlBseGFMeWdnSFYiXT1iYXNlNjRfZGVjb2RlKCJjRzl6ZEhCeWIyTmxjM05wYm1jdWNHaHciKTskR0xPQkFMU1siVGZKVlN4WHh6YU1IQkx6aExiYXkiXT1iYXNlNjRfZGVjb2RlKCJjR1JtYldGclpYSmZiWEJrWmw5d2NtVndjbTlqWlhOemFXNW4iKTskR0xPQkFMU1siblZoblV0dUFSUExicGxqc2N4YVkiXT1iYXNlNjRfZGVjb2RlKCJjSEpsY0hKdlkyVnpjMmx1Wnk1d2FIQT0iKTskR0xPQkFMU1siQ2pMUFluRHZHZklxRkxGTVV2WEgiXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bGN5OVFSRVpOWVd0bGNpOXlaWE52ZFhKalpYTXZiWEJrWmw5d2NtOWpaWE56YVc1bkx3PT0iKTskR0xPQkFMU1sia3haeEhRR3lDWnpodGVwV253RSJdPWJhc2U2NF9kZWNvZGUoImNHOXpkQT09Iik7JEdMT0JBTFNbImVKVUxiSWNBZEJ4WklMc3JOakEiXT1iYXNlNjRfZGVjb2RlKCJjSEpsIik7JEdMT0JBTFNbIlVsY1BqUFBSZ05LWXR0SmpVUnBMIl09YmFzZTY0X2RlY29kZSgiZFhObGNsOXdjbWwyYVd4bFoyVnpMM05vWVhKcGJtZGZjSEpwZG1sc1pXZGxjMTg9Iik7JEdMT0JBTFNbIkZMSW92eFZlcHZyUEZlbFVIR2dnIl09YmFzZTY0X2RlY29kZSgiTG5Cb2NBPT0iKTskR0xPQkFMU1siellBVXhNa2NVanFVaW5HdWtQSHUiXT1iYXNlNjRfZGVjb2RlKCJkWE5sY2w5d2NtbDJhV3hsWjJWekwzVnpaWEpmY0hKcGRtbHNaV2RsYzE4PSIpOyRHTE9CQUxTWyJsWE5zRWZVUWFZUm51elZCR0xQWSJdPWJhc2U2NF9kZWNvZGUoIlpHVnVhV1ZrTG1kcFpnPT0iKTskR0xPQkFMU1sibFJsa0xTQXlNcE9oWm5lQlhKQWwiXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgyRjFkR2hsYm5ScFkyRjBaV1JmZFhObGNsOTBhR1Z0WlE9PSIpOyRHTE9CQUxTWyJ3dG9Vekd1ZmZHa25pc211ZXFWdyJdPWJhc2U2NF9kZWNvZGUoImJHRjViM1YwY3k5Mk55OXRiMlIxYkdWekwxQkVSazFoYTJWeUwzSmxjMjkxY21ObGN5OVFSRVpOWVd0bGNrRmpkR2x2Ym5NdWFuTT0iKTskR0xPQkFMU1sidkhnR2NrVUpjTGtGemN1T0phTWIiXT1iYXNlNjRfZGVjb2RlKCJVRVJHVFdGclpYSktVdz09Iik7JEdMT0JBTFNbImltTWhaTVdQQmhCcGljUndMWnhxIl09YmFzZTY0X2RlY29kZSgiU0VWQlJFVlNVME5TU1ZCVSIpOyRHTE9CQUxTWyJ1TU9naElJVVhIZ2hta1pWQSJdPWJhc2U2NF9kZWNvZGUoImJHbHVhMmxrIik7JEdMT0JBTFNbIkliV0FTemlIWVVWVnBFVnNJIl09YmFzZTY0X2RlY29kZSgiYlc5a2RXeGxQVkJFUmsxaGEyVnlKbUZqZEdsdmJqMVFSRVpOWVd0bGNrRnFZWGdtWm1sc1pUMW5aWFJRUkVaQlkzUnBiMjV6Sm5KbFkyOXlaRDBrVWtWRFQxSkVKQT09Iik7JEdMT0JBTFNbIkNtZUdQUVJkcWVnYkFnYVVydkVPIl09YmFzZTY0X2RlY29kZSgiUkVWVVFVbE1Wa2xGVjFkSlJFZEZWQT09Iik7JEdMT0JBTFNbIk1welNac1JxdXVWc0N1RnVwQUtyIl09YmFzZTY0X2RlY29kZSgiYW1GMllYTmpjbWx3ZERwUVJFWk5ZV3RsY2w5QlkzUnBiMjV6WDBwekxtZGxkRkJFUmt4cGMzUldhV1YzVUc5d2RYQXlLSFJvYVhNc0p5Uk5UMFJWVEVVa0p5azciKTskR0xPQkFMU1siRGFOZHJGcmJydVV4QldGVmFjIl09YmFzZTY0X2RlY29kZSgiVUVSR0lFVjRjRzl5ZEE9PSIpOyRHTE9CQUxTWyJIWGZrWWtCWVNBamdYYVptUlpoUiJdPWJhc2U2NF9kZWNvZGUoIlRFbFRWRlpKUlZkTlFWTlRRVU5VU1U5TyIpOyRHTE9CQUxTWyJHWkhFRFFYbFN4dkJDR3FrZkVJcSJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsUFZCRVJrMWhhMlZ5Sm5acFpYYzlSMlYwVUVSR1FXTjBhVzl1Y3laeVpXTnZjbVE5SkZKRlEwOVNSQ1E9Iik7JEdMT0JBTFNbIlZWQ3FERm9LSHpIREFBbWVEcGNsIl09YmFzZTY0X2RlY29kZSgiUkVWVVFVbE1Wa2xGVjFOSlJFVkNRVkpYU1VSSFJWUT0iKTskR0xPQkFMU1siSkJIU3VFd3NnVndxTmpuaHhqYkwiXT1iYXNlNjRfZGVjb2RlKCJkblJzYVdJdlZuUnBaMlZ5TDAxdlpIVnNaUzV3YUhBPSIpOyRHTE9CQUxTWyJYQkRjQ05vWGhUSmtDUEtzZWhqdiJdPWJhc2U2NF9kZWNvZGUoImFtRjJZWE5qY21sd2REcG5aWFJRUkVaTWFYTjBWbWxsZDFCdmNIVndNaWgwYUdsekxDY2tUVTlFVlV4RkpDY3BPdz09Iik7JEdMT0JBTFNbIlNIbFJDTkx6R3RDR3lIaGhldExsIl09YmFzZTY0X2RlY29kZSgiTVE9PSIpOyRHTE9CQUxTWyJOVWlIR09KYUZtRE9xa3ZEVlhMTCJdPWJhc2U2NF9kZWNvZGUoImRuUnNhV0l2Vm5ScFoyVnlMMHhwYm1zdWNHaHciKTskR0xPQkFMU1siTU90VFVtblh3UnpOTldLZGtjIl09YmFzZTY0X2RlY29kZSgiTkE9PSIpOyRHTE9CQUxTWyJFTGtkV25YbnRselpvTWVLWWluVSJdPWJhc2U2NF9kZWNvZGUoIkxRPT0iKTskR0xPQkFMU1sibFJCenZ6QlNFUWtKeGRCSXRiZyJdPWJhc2U2NF9kZWNvZGUoIkxBPT0iKTskR0xPQkFMU1siSnhuZWJ5amRGaWRYZFZ6TnFuRWIiXT1iYXNlNjRfZGVjb2RlKCJMdz09Iik7JEdMT0JBTFNbImlLTHlTaEZRbHBqbUpwRmZhb2VjIl09YmFzZTY0X2RlY29kZSgiSUE9PSIpOyRHTE9CQUxTWyJFc3NYR2xFUlJtY3BSS0xiaVZzeSJdPWJhc2U2NF9kZWNvZGUoIkpFTlNTVVJZSkE9PSIpOyRHTE9CQUxTWyJGSWVjclRDdlphRHNmUWxKYXNVYyJdPWJhc2U2NF9kZWNvZGUoImJXMGlJQzgrIik7JEdMT0JBTFNbImZCRFN2dkxtWW9vT1BpcVlGcVZGIl09YmFzZTY0X2RlY29kZSgiYlcwaUlHMWhjbWRwYmkxbWIyOTBaWEk5SWc9PSIpOyRHTE9CQUxTWyJyZ0VNdURobm1XdGlmYmRBRVhaQyJdPWJhc2U2NF9kZWNvZGUoImJXMGlJRzFoY21kcGJpMTBiM0E5SWpCdGJTSWdiV0Z5WjJsdUxXSnZkSFJ2YlQwaU1HMXRJaUJ0WVhKbmFXNHRhR1ZoWkdWeVBTST0iKTskR0xPQkFMU1sidklpd3p3VHdpQ2NzWUNaelZ1enciXT1iYXNlNjRfZGVjb2RlKCJiVzBpSUcxaGNtZHBiaTF5YVdkb2REMGkiKTskR0xPQkFMU1siWkpCZEdPSU9vYXBheHFZa2t0aVgiXT1iYXNlNjRfZGVjb2RlKCJJaUJ0WVhKbmFXNHRiR1ZtZEQwaSIpOyRHTE9CQUxTWyJPREFMY0dMenB0VGdsdnZkcHNvRSJdPWJhc2U2NF9kZWNvZGUoIklpQnZjbWxsYm5SaGRHbHZiajBpIik7JEdMT0JBTFNbImFXZ2NsWmxPVm9rYU5rZUdaTGlvIl09YmFzZTY0X2RlY29kZSgiUEhCaFoyVmljbVZoYXlCemFHVmxkQzF6YVhwbFBTST0iKTskR0xPQkFMU1siR1FJV1FFUENwZExLZHlaUmRtQ28iXT1iYXNlNjRfZGVjb2RlKCJSWFpsYm5SeiIpOyRHTE9CQUxTWyJXWXFnWUhyTlpzZVZTVHh6dWRuTCJdPWJhc2U2NF9kZWNvZGUoIlZHRnphdz09Iik7JEdMT0JBTFNbIklnQUhQZUlEWWpzVEttSG5OdWZVIl09YmFzZTY0X2RlY29kZSgiWVdOMGFYWnBkSGwwZVhCbCIpOyRHTE9CQUxTWyJnVkpDZ3hKTUtldERFR1h4c3JmUSJdPWJhc2U2NF9kZWNvZGUoIlEyRnNaVzVrWVhJPSIpOyRHTE9CQUxTWyJmeGt4S3dJU1dHWUdLdXZEVlB5cyJdPWJhc2U2NF9kZWNvZGUoImRHRmlhV1E9Iik7JEdMT0JBTFNbImFGaXdhQktDdFdmS3phZ3lvV1NOIl09YmFzZTY0X2RlY29kZSgiZEdGaWJHRmlaV3c9Iik7JEdMT0JBTFNbIkJvV3VCZmF2S3FKeGVMZ0N1TEEiXT1iYXNlNjRfZGVjb2RlKCJibUZ0WlE9PSIpOyRHTE9CQUxTWyJudmlQTEhYY3htZWVyWUFscUhLZCJdPWJhc2U2NF9kZWNvZGUoIk1qZz0iKTskR0xPQkFMU1siSVNKWHVmaGJrR1hLdnFlSEtRTHQiXT1iYXNlNjRfZGVjb2RlKCJNVEE9Iik7JEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl09YmFzZTY0X2RlY29kZSgiIik7JEdMT0JBTFNbIldXTWNLenhhVHdQb3N1VnJkaGZIIl09YmFzZTY0X2RlY29kZSgiYVhOZlpHVm1ZWFZzZEE9PSIpOyRHTE9CQUxTWyJZcUt5TWtPaFZSV2h2aHZJVFBBIl09YmFzZTY0X2RlY29kZSgiSm01aWMzQTdKbTVpYzNBNyIpOyRHTE9CQUxTWyJNd2NYaFBOZFNweXVQbGhWY00iXT1iYXNlNjRfZGVjb2RlKCJJaUJoYkhROUlubGxjeUlnTHo0PSIpOyRHTE9CQUxTWyJyRFNDa3FhSEhzVEtpdm56dmVIcSJdPWJhc2U2NF9kZWNvZGUoIklpQmhiSFE5SW01dklpQXZQZz09Iik7JEdMT0JBTFNbIkVibFJ0TUNuQU1lZWlNRlFBd3BCIl09YmFzZTY0X2RlY29kZSgiSm01aWMzQTdQR2x0WnlCemNtTTlJZz09Iik7JEdMT0JBTFNbIkZFZFVqeHZmY25Ud0R3a21SZm8iXT1iYXNlNjRfZGVjb2RlKCJVRVJHVFdGclpYST0iKTskR0xPQkFMU1siUXJzSnZDeVNWT1paTnlKeVh2bUIiXT1iYXNlNjRfZGVjb2RlKCJjMmhoY21sdVp3PT0iKTskR0xPQkFMU1siSHZlcG9MSXlPaW5hcmhVRUFoUHciXT1iYXNlNjRfZGVjb2RlKCJjMmhoY21sdVozUjVjR1U9Iik7JEdMT0JBTFNbIlhTYktXakhXWVBDSUF5Q2lEdHJPIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwUkZURVZVUlE9PSIpOyRHTE9CQUxTWyJKQmJrdkVYRUR5bHNBemx3TXl6aCJdPWJhc2U2NF9kZWNvZGUoIlpXUnBkQT09Iik7JEdMT0JBTFNbIkdYbE52aERZbUNHc1dmcUxNenBQIl09YmFzZTY0X2RlY29kZSgiWm1sc1pXNWhiV1U9Iik7JEdMT0JBTFNbIkViWElhd3FuSERiRFBQcHhYUnAiXT1iYXNlNjRfZGVjb2RlKCJaR1Z6WTNKcGNIUnBiMjQ9Iik7JEdMT0JBTFNbIklhbEhrVUl6UUlWSVZOVUtkQSJdPWJhc2U2NF9kZWNvZGUoImMzUmhkSFZ6WDJ4aWJBPT0iKTskR0xPQkFMU1siR2ZnQk9FY2lEVlFtVGpQeGNjd2MiXT1iYXNlNjRfZGVjb2RlKCJjMlZoY21Ob1gzTjBZWFIxY3c9PSIpOyRHTE9CQUxTWyJBZlR6eXRqTXNQdEtaUmtFVVBZWSJdPWJhc2U2NF9kZWNvZGUoImIzSmtaWEk9Iik7JEdMT0JBTFNbImp2TlVadUFyRGxEYlZzREtLTmpUIl09YmFzZTY0X2RlY29kZSgiYzNSaGRIVnoiKTskR0xPQkFMU1siTFpSRnJUQ3VLcFhSV0NjU3ZqSnYiXT1iYXNlNjRfZGVjb2RlKCJjMlZoY21Ob1h3PT0iKTskR0xPQkFMU1siZGlFekRqT1Bsb2JLSEZUYWIiXT1iYXNlNjRfZGVjb2RlKCJiM2R1WlhJPSIpOyRHTE9CQUxTWyJtV3pIT1VJd1dvc2tDTld1SERPRSJdPWJhc2U2NF9kZWNvZGUoImRHVnRjR3hoZEdWcFpBPT0iKTskR0xPQkFMU1siTndranFra2JkbUJDV1pSd0tHQnoiXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bCIpOyRHTE9CQUxTWyJScEZieFVQV3FoWldWVGlwem5QRCJdPWJhc2U2NF9kZWNvZGUoImRYQnNiMkZrUkdseSIpOyRHTE9CQUxTWyJ1bktDU2Zod1dCbkpEU2JHUVZiYiJdPWJhc2U2NF9kZWNvZGUoImRYQnNiMkZrVlZKTSIpOyRHTE9CQUxTWyJnSkNRcENkRkVMVGF1ZlFwQ2NwQSJdPWJhc2U2NF9kZWNvZGUoIlMwTkdTVTVFUlZJPSIpOyRHTE9CQUxTWyJlZ3h2bXhiemFFVmlhTEZWSWpsRSJdPWJhc2U2NF9kZWNvZGUoIllXTmpiM1Z1ZEE9PSIpOyRHTE9CQUxTWyJSS0hxdEh4QXFvZFdFclJURXp2YiJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5amIyMWZkblJwWjJWeVgzZHZjbXRtYkc5M0wxWlVWMjl5YTJac2IzZFZkR2xzY3k1d2FIQT0iKTskR0xPQkFMU1siTW5xU1dBSnlhYkxraWdqaURlR2ciXT1iYXNlNjRfZGVjb2RlKCJhVzVqYkhWa1pTOVhaV0p6WlhKMmFXTmxjeTlXZEdsblpYSlhaV0p6WlhKMmFXTmxUMkpxWldOMExuQm9jQT09Iik7JEdMT0JBTFNbIkZYQlJ4WUJPUmVFcWJLakhBZkxpIl09YmFzZTY0X2RlY29kZSgiYVc1amJIVmtaUzlYWldKelpYSjJhV05sY3k5RmJuUnBkSGxOWlhSaExuQm9jQT09Iik7JEdMT0JBTFNbImJ2ekhhaktOb2hTZnFwVm9jSHpQIl09YmFzZTY0X2RlY29kZSgiYVc1amJIVmtaUzlYWldKelpYSjJhV05sY3k5WFpXSnpaWEoyYVdObFJtbGxiR1F1Y0dodyIpOyRHTE9CQUxTWyJkZE1wV2RmelhiR3ZqaVFLdVZuciJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5WFpXSnpaWEoyYVdObGN5OVZjR1JoZEdVdWNHaHciKTskR0xPQkFMU1sieVBhbW5YU2JoeWZOeGd2ZkFjcEwiXT1iYXNlNjRfZGVjb2RlKCJhVzVqYkhWa1pTOVhaV0p6WlhKMmFXTmxjeTlTWlhSeWFXVjJaUzV3YUhBPSIpOyRHTE9CQUxTWyJ1Q0ROTEV4amJDcVZCS0xwZXVRTCJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5WFpXSnpaWEoyYVdObGN5OU5iMlIxYkdWVWVYQmxjeTV3YUhBPSIpOyRHTE9CQUxTWyJ3WURueERiUlJCenpKdk9jVlNBUCJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5MWRHbHNjeTkxZEdsc2N5NXdhSEE9Iik7JEdMT0JBTFNbIlVSUFl2SW9TSm1kWllSS0xBU2FzIl09YmFzZTY0X2RlY29kZSgiYVc1amJIVmtaUzlYWldKelpYSjJhV05sY3k5VmRHbHNjeTV3YUhBPSIpOyRHTE9CQUxTWyJSU1JUV09NbEZRTUJCS0VaWnd6RiJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5amIyMWZkblJwWjJWeVgzZHZjbXRtYkc5M0wxWlVSVzUwYVhSNVEyRmphR1V1YVc1aiIpOyRHTE9CQUxTWyJFekJNRXRpVGRCS3dGcElublB2bSJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5bGRtVnVkSE12VTNGc1VtVnpkV3gwU1hSbGNtRjBiM0l1YVc1aiIpOyRHTE9CQUxTWyJseHZoZEpBQ0pjeEJobVJNSVpjZSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSWdWMGhGVWtVZ2RHVnRjR3hoZEdWcFpDQTlJRDhnUVU1RUlHUmxiR1YwWldRZ1BTQS8iKTskR0xPQkFMU1siTWFBU0JYbXJtYkRKZ2h1SVRKbm0iXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlDb2dSbEpQVFNCamIyMWZkblJwWjJWeVgzZHZjbXRtYkc5M1gzUmhjMnQwZVhCbGN5QlhTRVZTUlNCMFlYTnJkSGx3Wlc1aGJXVWdQU0EvIik7JEdMT0JBTFNbImlJTnJjZlRYUEdJaE1lZERJdVBEIl09YmFzZTY0X2RlY29kZSgiTG5Sd2JBPT0iKTskR0xPQkFMU1sid0FMWHN5QnV6VmNiU1pobmFQSG8iXT1iYXNlNjRfZGVjb2RlKCJiR0Y1YjNWMGN5OTJOeTl0YjJSMWJHVnpMMU5sZEhScGJtZHpMMWR2Y210bWJHOTNjeTlVWVhOcmN5OD0iKTskR0xPQkFMU1siWnJjZXN4dnBHcGtiZmJNZnJJc3EiXT1iYXNlNjRfZGVjb2RlKCJMbWx1WXc9PSIpOyRHTE9CQUxTWyJyZ09FTGJqaFRDTk1nbVR3Z3liSSJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5amIyMWZkblJwWjJWeVgzZHZjbXRtYkc5M0wzUmhjMnR6THc9PSIpOyRHTE9CQUxTWyJXRm1jTVdhZEdweWFkWFJYd0tNWCJdPWJhc2U2NF9kZWNvZGUoIlJHOWpkVzFsYm5SeiIpOyRHTE9CQUxTWyJhWmd0UFJvanZYd0xQVkFLUEdRQiJdPWJhc2U2NF9kZWNvZGUoIlZWQkVRVlJGSUhaMGFXZGxjbDl1YjNSbGN5QlRSVlFnWm1sc1pYTnBlbVU5UHl3Z1ptbHNaVzVoYldVOVB5QlhTRVZTUlNCdWIzUmxjMmxrUFQ4PSIpOyRHTE9CQUxTWyJJcEpxeFBRaFdDclNWcmhlRGZ5ZSJdPWJhc2U2NF9kZWNvZGUoImFXNXpaWEowSUdsdWRHOGdkblJwWjJWeVgyRjBkR0ZqYUcxbGJuUnpLR0YwZEdGamFHMWxiblJ6YVdRc0lHNWhiV1VzSUdSbGMyTnlhWEIwYVc5dUxDQjBlWEJsTENCd1lYUm9LU0IyWVd4MVpYTW9QeXdnUHl3Z1B5d2dQeXdnUHlrPSIpOyRHTE9CQUxTWyJGQ1VzaXlGS2JEdkpHblhFTmhFZCJdPWJhc2U2NF9kZWNvZGUoImFXNXpaWEowSUdsdWRHOGdkblJwWjJWeVgyTnliV1Z1ZEdsMGVTQW9ZM0p0YVdRc2MyMWpjbVZoZEc5eWFXUXNjMjF2ZDI1bGNtbGtMSE5sZEhsd1pTeGtaWE5qY21sd2RHbHZiaXhqY21WaGRHVmtkR2x0WlN4dGIyUnBabWxsWkhScGJXVXBJSFpoYkhWbGN5Zy9MQ0EvTENBL0xDQS9MQ0EvTENBL0xDQS9LUT09Iik7JEdMT0JBTFNbIkhhVE5PUktGcFlCbHl5amFNRUxwIl09YmFzZTY0X2RlY29kZSgiUkc5amRXMWxiblJ6SUVGMGRHRmphRzFsYm5RPSIpOyRHTE9CQUxTWyJPd0hIS2FpRGVpb2pXdE90WUJXSiJdPWJhc2U2NF9kZWNvZGUoIllYQndiR2xqWVhScGIyNHZjR1JtIik7JEdMT0JBTFNbIkdrSGNST2lOQ1ppR1FvUVF5dmNBIl09YmFzZTY0X2RlY29kZSgiTG5Ca1pnPT0iKTskR0xPQkFMU1siUk5xS0hSQ2NaTW9vRVBsT0pZdGkiXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgyTnliV1Z1ZEdsMGVRPT0iKTskR0xPQkFMU1siaGNsb3JsTnF1TE9CWXZFekt6dXIiXT1iYXNlNjRfZGVjb2RlKCJZWE56YVdkdVpXUmZkWE5sY2w5cFpBPT0iKTskR0xPQkFMU1sicmNySktMU0ZyU1J0R25udWZST0kiXT1iYXNlNjRfZGVjb2RlKCJXUzF0TFdRZ1NEcHBPbk09Iik7JEdMT0JBTFNbIlhKcWNzeHlqQ0VURlVjeHNGdE9PIl09YmFzZTY0X2RlY29kZSgiYzNNPSIpOyRHTE9CQUxTWyJrb1hDdEdzUnFaUk1mbFFUVWdwYyJdPWJhc2U2NF9kZWNvZGUoImNnPT0iKTskR0xPQkFMU1siQWNTSFRmbmloRVh0ZU5RUmtLSGsiXT1iYXNlNjRfZGVjb2RlKCJaQT09Iik7JEdMT0JBTFNbInhSV1VCdmlCcUl1R0NCRkVocmpGIl09YmFzZTY0X2RlY29kZSgiYmc9PSIpOyRHTE9CQUxTWyJYZlR4bkRETXNESkRhSUhra0RPTiJdPWJhc2U2NF9kZWNvZGUoImRRPT0iKTskR0xPQkFMU1siYnR2d3lKZ0RxS3Z2RmlIWGJoSSJdPWJhc2U2NF9kZWNvZGUoImJ3PT0iKTskR0xPQkFMU1sielNkUFRxakFmSFZQaEVta2VSQk8iXT1iYXNlNjRfZGVjb2RlKCJaUT09Iik7JEdMT0JBTFNbImRmV3RVV3RFV0NoVkR1V2tZYXZIIl09YmFzZTY0X2RlY29kZSgiYVE9PSIpOyRHTE9CQUxTWyJlenptaXd2ZldmYUNFT09hZmxxZyJdPWJhc2U2NF9kZWNvZGUoIllRPT0iKTskR0xPQkFMU1siVHVIckxUYmtNbVZvRVRocVlDTGoiXT1iYXNlNjRfZGVjb2RlKCJlUT09Iik7JEdMT0JBTFNbIk5NcUJpWWJ2aFVXWHZ6bFFYVWJBIl09YmFzZTY0X2RlY29kZSgiZWc9PSIpOyRHTE9CQUxTWyJoWmFXR01oVEx6dGhYTnVkdVhVeiJdPWJhc2U2NF9kZWNvZGUoImRBPT0iKTskR0xPQkFMU1siZGRrTkdVS2hjaGZMSmd6ZFpGQ1EiXT1iYXNlNjRfZGVjb2RlKCJZdz09Iik7JEdMT0JBTFNbInVncVBZb2JQUU1WUVd0VUFjd2pOIl09YmFzZTY0X2RlY29kZSgiY3c9PSIpOyRHTE9CQUxTWyJxamlXbVBVaHdxTkhlRU9hWW9sZSJdPWJhc2U2NF9kZWNvZGUoImJBPT0iKTskR0xPQkFMU1siU0haRUxUc2NWUXJyd2l4aGd4b2wiXT1iYXNlNjRfZGVjb2RlKCJMUT09Iik7JEdMT0JBTFNbIlJRaW5sUXJEYkNXR3N2cnlHTURFIl09YmFzZTY0X2RlY29kZSgidzU4PSIpOyRHTE9CQUxTWyJOaHdpRlVCZ3V0UmFOUU9VQVBYayJdPWJhc2U2NF9kZWNvZGUoIndyQT0iKTskR0xPQkFMU1sielJzSEJMZk5mdFBBRU5tVVpBalYiXT1iYXNlNjRfZGVjb2RlKCJJZz09Iik7JEdMT0JBTFNbIkZXR1REbFZaeXNHQXFRU09DY00iXT1iYXNlNjRfZGVjb2RlKCJ4STQ9Iik7JEdMT0JBTFNbIm1Wa3ZtaGpkc2xvVXNqdWpEZXpiIl09YmFzZTY0X2RlY29kZSgidzVvPSIpOyRHTE9CQUxTWyJ3b0RISWdjYXZERFJkRHZZU2VlSSJdPWJhc2U2NF9kZWNvZGUoInc1TT0iKTskR0xPQkFMU1siSU56cmtjWHN1TGxtaXZYVkpBbWMiXT1iYXNlNjRfZGVjb2RlKCJ3NGs9Iik7JEdMT0JBTFNbInNqbXZ5RWFPYXNYWkFzdHZZeWVVIl09YmFzZTY0X2RlY29kZSgidzQwPSIpOyRHTE9CQUxTWyJob2Ntd2xHbmhveEJ4cmZ0Wm5ESyJdPWJhc2U2NF9kZWNvZGUoInc0RT0iKTskR0xPQkFMU1siZEVDc3NkREZrRXB6V1lkTWd3Il09YmFzZTY0X2RlY29kZSgidzUwPSIpOyRHTE9CQUxTWyJiQWtFVFVaUnZkUm92Q1RYZ01wWCJdPWJhc2U2NF9kZWNvZGUoInhiMD0iKTskR0xPQkFMU1siSkVKeVRaWXljYnVlSHhvV0Z5cGUiXT1iYXNlNjRfZGVjb2RlKCJ4YVE9Iik7JEdMT0JBTFNbIkprUWV6WGt0SEVGcENTY1hlVlNkIl09YmFzZTY0X2RlY29kZSgieEl3PSIpOyRHTE9CQUxTWyJ2UXdmQ3JNUHZCR2djRkFrc1hJVCJdPWJhc2U2NF9kZWNvZGUoInhhQT0iKTskR0xPQkFMU1siZm54Y254RHFKUlNERlBqZGppaWciXT1iYXNlNjRfZGVjb2RlKCJ4TDA9Iik7JEdMT0JBTFNbIktOdnJlcFdnVmVGYmJiemJQbGciXT1iYXNlNjRfZGVjb2RlKCJ4WlU9Iik7JEdMT0JBTFNbImlhTndwQmdIc3dyaEpSQ0t6QkRFIl09YmFzZTY0X2RlY29kZSgidzdRPSIpOyRHTE9CQUxTWyJzR2xBQ3ZkeXNFUFBYS0tzTUlyQSJdPWJhc2U2NF9kZWNvZGUoInhJOD0iKTskR0xPQkFMU1siQ29Hc1dYaE9tZE1hbUpacXZqZ0ciXT1iYXNlNjRfZGVjb2RlKCJ4WWc9Iik7JEdMT0JBTFNbIllCQWZpVFVIU015YXVTZWpvYyJdPWJhc2U2NF9kZWNvZGUoInc2UT0iKTskR0xPQkFMU1sieE9UbnRHSGFnU3hDZ2FYRUdXc0wiXT1iYXNlNjRfZGVjb2RlKCJ3N3c9Iik7JEdMT0JBTFNbIkVvbW5XTXhseVZXVlZtdG53Tm9HIl09YmFzZTY0X2RlY29kZSgidzdvPSIpOyRHTE9CQUxTWyJLRk5qY0NQTXdmVWZubWl3WkdPdSJdPWJhc2U2NF9kZWNvZGUoInhhOD0iKTskR0xPQkFMU1siTHFUUVRNbkVuT21uWldnYk1SWEciXT1iYXNlNjRfZGVjb2RlKCJ3N1k9Iik7JEdMT0JBTFNbImZFSGFLV0RzbkF0Q2pab25VUnNwIl09YmFzZTY0X2RlY29kZSgidzdNPSIpOyRHTE9CQUxTWyJQYlFSVFFLb0VCYUNWc3puSm1xUCJdPWJhc2U2NF9kZWNvZGUoInc2az0iKTskR0xPQkFMU1sia1lXWWJydnFNWkFrTURmV2hJTm8iXT1iYXNlNjRfZGVjb2RlKCJ3NjA9Iik7JEdMT0JBTFNbIkl4dE5TQm1Ub3d0TUtRcnZuakYiXT1iYXNlNjRfZGVjb2RlKCJ3NkU9Iik7JEdMT0JBTFNbIlFqd3ROZUdkREpxVkVaWXRQdWtNIl09YmFzZTY0X2RlY29kZSgidzcwPSIpOyRHTE9CQUxTWyJyWkRlWWRvQ2JHZm5UV05EU1hHRyJdPWJhc2U2NF9kZWNvZGUoInhiND0iKTskR0xPQkFMU1siSFppRWpCcWZwbGFVTVVJc3h4Il09YmFzZTY0X2RlY29kZSgieGFVPSIpOyRHTE9CQUxTWyJNS01MbXFFcW5Eb2lkSWt5emVjayJdPWJhc2U2NF9kZWNvZGUoInhJMD0iKTskR0xPQkFMU1sibWFodmlYcnpuWlJyWnNrbHRSaHkiXT1iYXNlNjRfZGVjb2RlKCJ4YUU9Iik7JEdMT0JBTFNbImR6b0JDWFNQRlliQmZuY1dJSkVaIl09YmFzZTY0X2RlY29kZSgieEw0PSIpOyRHTE9CQUxTWyJKc1B1UVhvcEFHSHNxUndVUmlVUyJdPWJhc2U2NF9kZWNvZGUoIkx3PT0iKTskR0xPQkFMU1siRlVwTWJZdGxzQVFLdU5lYVFFIl09YmFzZTY0X2RlY29kZSgiSUMwZyIpOyRHTE9CQUxTWyJpU1V5R3ZNVkpSZk9PYkVnS0tVIl09YmFzZTY0X2RlY29kZSgiS0E9PSIpOyRHTE9CQUxTWyJTRHdEU1JIbnVIaXVQVXJ4R09IQSJdPWJhc2U2NF9kZWNvZGUoIkpnPT0iKTskR0xPQkFMU1siRnVHdUFjb0FuZGFaU3ZCdXpib3EiXT1iYXNlNjRfZGVjb2RlKCI0b0tzIik7JEdMT0JBTFNbImdHR0xDVkZRdFpaUG1QdWZCU1p5Il09YmFzZTY0X2RlY29kZSgiSkE9PSIpOyRHTE9CQUxTWyJxQnZnRWVUUFB4bEF1cEh2S2JoVSJdPWJhc2U2NF9kZWNvZGUoIlpHVmhZM1JwZG1GMFpRPT0iKTskR0xPQkFMU1siak9RWmZiSmtSVWVHd3FETUZCbUEiXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bFBWQkVSazFoYTJWeUpuWnBaWGM5U1c1a1pYaEJhbUY0Sm0xdlpHVTljMmh2ZDFObGRIUnBibWR6VEdsemRDWndkbWxsZHowPSIpOyRHTE9CQUxTWyJ5UnRnZURIcWd2eW5JYkxhR0hlRyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMU5GVkZSSlRrZFQiKTskR0xPQkFMU1sibUdLTk9pWnpza1NRYlNRdWdPcU8iXT1iYXNlNjRfZGVjb2RlKCJVMGxFUlVKQlVsZEpSRWRGVkE9PSIpOyRHTE9CQUxTWyJoSEhLcXhTeFhTUExSa21XTm9qYiJdPWJhc2U2NF9kZWNvZGUoIlJHVjBZV2xzIik7JEdMT0JBTFNbInlJcnBrcFNOWUhsZVR0d09MdGZHIl09YmFzZTY0X2RlY29kZSgiUldScGRBPT0iKTskR0xPQkFMU1siY25LQ0JhTGN3cWRPS1NxdElDdE8iXT1iYXNlNjRfZGVjb2RlKCJhVzVrWlhndWNHaHdQMjF2WkhWc1pUMUpWRk0wV1c5MVUzUjViR1Z6Sm5acFpYYzlUR2x6ZEE9PSIpOyRHTE9CQUxTWyJqVWxBbGhud3NlTkVRVHZjU1BYTSJdPWJhc2U2NF9kZWNvZGUoImJHOWpZWFJwYjI0PSIpOyRHTE9CQUxTWyJReXV5cXlIV2Jjc0pKWmpUa1ROYiJdPWJhc2U2NF9kZWNvZGUoImMyaHZkMU5sZEhScGJtZHpUR2x6ZEE9PSIpOyRHTE9CQUxTWyJQZFpxd2tVek1XdEd3aFNXUkZlTSJdPWJhc2U2NF9kZWNvZGUoIlRVOUVSUT09Iik7JEdMT0JBTFNbInR6QlZtYXBQVFBJd1NVbGZLUmNxIl09YmFzZTY0X2RlY29kZSgiU1c1a1pYaEJhbUY0Iik7JEdMT0JBTFNbInJYWnZlSWhiUXFKa1RyVUZxeHBNIl09YmFzZTY0X2RlY29kZSgiYVc1a1pYZ3VjR2h3UDIxdlpIVnNaVDFRUkVaTllXdGxjaVoyYVdWM1BVeHBjM1E9Iik7JEdMT0JBTFNbImlSUXBCbnhKSENNWElKVmpkVG9sIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxSkZRMDlTUkZOZlRFbFRWQT09Iik7JEdMT0JBTFNbIkJVdlBZeE9RUU1wd2pSV2pJSVptIl09YmFzZTY0X2RlY29kZSgiVUhKdlptbHNaWE5RY21sMmFXeGxaMmxsY3c9PSIpOyRHTE9CQUxTWyJoQnl3UVZMdWV1SnVyR0FrUHFQSSJdPWJhc2U2NF9kZWNvZGUoIlFVTlVTVTlPIik7JEdMT0JBTFNbImdVRWhPeEpkdGNlaFBRSEFjUSJdPWJhc2U2NF9kZWNvZGUoIlUwbEVSVUpCVWt4SlRrcz0iKTskR0xPQkFMU1sid3dhdWZIRU5vVm5IS05iQURmdmUiXT1iYXNlNjRfZGVjb2RlKCJhWE5mYm05MGFXWnBaV1E9Iik7JEdMT0JBTFNbInZjZlhJRGJST2Vhb1NPR1VhdXhNIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJQ29nUmxKUFRTQjJkR2xuWlhKZmNHUm1iV0ZyWlhKZmRYTmxjbk5sZEhScGJtZHpJRmRJUlZKRklIVnpaWEpwWkNBOUlEOD0iKTskR0xPQkFMU1siYnJOckFIWW5GeUdiTmVWT0F1SmIiXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgzQnlhV05sWW05dmEzQnliMlIxWTNSeVpXeDBiWEFsIik7JEdMT0JBTFNbIkFpYmlzcG56UUVrU2lNREFmalZuIl09YmFzZTY0X2RlY29kZSgiY21Wc1lteHZZMnRwWkE9PSIpOyRHTE9CQUxTWyJnS3hsU21PTldmaUNxVVNzVlVnSSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSmZjbVZzWW14dlkydGpiMndnVjBoRlVrVWdjbVZzWW14dlkydHBaQ0E5SUQ4Z1FVNUVJR052YkhWdGJtNWhiV1VnVEVsTFJTQS8iKTskR0xPQkFMU1siRFBqeGZ3VnhJdHpTQnVEaU9IaWwiXT1iYXNlNjRfZGVjb2RlKCJVSEpwWTJWQ2IyOXJjdz09Iik7JEdMT0JBTFNbIklqQXlNVlpsbk1tWUh0dWNtZVNwIl09YmFzZTY0X2RlY29kZSgiS1FvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1FVNUVJR1JsYkdWMFpXUWdQU0F3Q2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRTlTUkVWU0lFSlpJSEpsYkdKc2IyTnJhV1E9Iik7JEdMT0JBTFNbIlVqQmt4bUZ4bXVBVUNaTEdTeEZSIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJQ29nUmxKUFRTQjJkR2xuWlhKZmNHUm1iV0ZyWlhKZmNtVnNZbXh2WTJ0ekNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUZkSVJWSkZJSE5sWTIxdlpIVnNaU0JKVGlnPSIpOyRHTE9CQUxTWyJkdFVEc0xUeHh4dm9yRUR6QlVldCJdPWJhc2U2NF9kZWNvZGUoIlUwVlNWa2xEUlZOZlJrbEZURVJUIik7JEdMT0JBTFNbInhiS0lreVZBeGRURkVSUlJ4ZyJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkZOZlJrbEZURVJUIik7JEdMT0JBTFNbInFlcEhJSmhERktGeUV4cXZlUUJEIl09YmFzZTY0X2RlY29kZSgiVTJWeWRtbGpaWE09Iik7JEdMT0JBTFNbInRscGJmaktHZEpOdUNuWlRseVJ3Il09YmFzZTY0X2RlY29kZSgiWW14dlkydHNZV0psYkE9PSIpOyRHTE9CQUxTWyJoR25hZFZkU01QREp0dmJNbnhKTSJdPWJhc2U2NF9kZWNvZGUoIlVISnZaSFZqZEhNPSIpOyRHTE9CQUxTWyJpQVBaUGFXcnZSYVlRbGxDWnJkTSJdPWJhc2U2NF9kZWNvZGUoIktRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJRUZPUkNBb1ppNWthWE53YkdGNWRIbHdaU0FoUFNBeklFOVNJR1l1ZFdsMGVYQmxJRDBnTlRVcENpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUFVrUkZVaUJDV1NCMExtNWhiV1VnUVZORExDQmlMbk5sY1hWbGJtTmxJRUZUUXl3Z1ppNXpaWEYxWlc1alpTQkJVME1zSUdZdVptbGxiR1JwWkNCQlUwTT0iKTskR0xPQkFMU1siaUZnRE1XUFd5aG1kd2ZWbmtveVIiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlDQjBMblJoWW1sa0xDQjBMbTVoYldVc0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUdJdVlteHZZMnRwWkN3Z1lpNWliRzlqYTJ4aFltVnNMQW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQm1MbVpwWld4a2JtRnRaU3dnWmk1bWFXVnNaR3hoWW1Wc0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCR1VrOU5JSFowYVdkbGNsOTBZV0lnUVZNZ2RBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1NVNU9SVklnU2s5SlRpQjJkR2xuWlhKZllteHZZMnR6SUVGVElHSWdWVk5KVGtjb2RHRmlhV1FwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKVGs1RlVpQktUMGxPSUhaMGFXZGxjbDltYVdWc1pDQkJVeUJtSUU5T0lHSXVZbXh2WTJ0cFpDQTlJR1l1WW14dlkyc0tJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lGZElSVkpGSUhRdWRHRmlhV1FnU1U0Z0tBPT0iKTskR0xPQkFMU1siT1FDY2RZSHNjT3Fkb2VxeW1PbksiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVVgxQlNUMFJWUTFSZlJrbEZURVE9Iik7JEdMT0JBTFNbIk9tenZncExnYld2b2VoY3BSTGhMIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRjg9Iik7JEdMT0JBTFNbIkFMYUJ6R2pqZExLaURmdXhIZHJJIl09YmFzZTY0X2RlY29kZSgiWm1sbGJHUnNZV0psYkE9PSIpOyRHTE9CQUxTWyJKV0NlZkxTZFJOS0FhdEZUdk9CeiJdPWJhc2U2NF9kZWNvZGUoIlZHRjQiKTskR0xPQkFMU1siRnpNQndzT0ZNd05yVFBrRFVEQ1EiXT1iYXNlNjRfZGVjb2RlKCJPRE09Iik7JEdMT0JBTFNbIlh5SXd6VFp1UW5jdE9pY3dQZ3dCIl09YmFzZTY0X2RlY29kZSgiZFdsMGVYQmwiKTskR0xPQkFMU1sienZwTGtjc3d1ZGNEQUpDZndhU2EiXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgybHVkbVZ1ZEc5eWVYQnliMlIxWTNSeVpXdz0iKTskR0xPQkFMU1siRUV6cFRIdVVqUWtORkRlYU1EWSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUdacFpXeGtibUZ0WlN3Z1ptbGxiR1JzWVdKbGJDd2dkV2wwZVhCbElFWlNUMDBnZG5ScFoyVnlYMlpwWld4a0lGZElSVkpGSUhSaFlteGxibUZ0WlNBOUlEOGdRVTVFSUhSaFltbGtJRDBnUHlCQlRrUWdabWxsYkdSdVlXMWxJRTVQVkNCSlRpQW9KM0J5YjJSMVkzUnBaQ2NzSjNGMVlXNTBhWFI1Snl3bmJHbHpkSEJ5YVdObEp5d25ZMjl0YldWdWRDY3NKMlJwYzJOdmRXNTBYMkZ0YjNWdWRDY3NKMlJwYzJOdmRXNTBYM0JsY21ObGJuUW5LUT09Iik7JEdMT0JBTFNbIkdUbFp4Z0xnTlVrWVpWaUpNaG9oIl09YmFzZTY0X2RlY29kZSgiZEdGNGJHRmlaV3c9Iik7JEdMT0JBTFNbImRPTERjWWlDV2pkZmJSYVBPZ25LIl09YmFzZTY0X2RlY29kZSgiZEdGNGJtRnRaUT09Iik7JEdMT0JBTFNbIkV6bFpSUmpQUUludGtUZ1lEbGZDIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJQ29nUmxKUFRTQjJkR2xuWlhKZmFXNTJaVzUwYjNKNWRHRjRhVzVtYnc9PSIpOyRHTE9CQUxTWyJEREpPSlJYWFdZY3Z4T25WQ2luRSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUmZWRTlVUVV4ZlZrRlUiKTskR0xPQkFMU1sieE5yRFBvaGlPckhtRVZGUExOYmwiXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGUlBWRUZNVTFWTiIpOyRHTE9CQUxTWyJpS0Fwc2pJcVNNVHRKcHFVU3lrSCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUmZWa0ZVWDFOVlRRPT0iKTskR0xPQkFMU1sicmFua0NMaXZBRFBsVmR0dmdPckwiXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGWkJWRk5WVFE9PSIpOyRHTE9CQUxTWyJ5eHRiTERPeUtWcWtyVVBjQXNVIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxQlNUMFJWUTFSZlZrRlVYMUJGVWtORlRsUT0iKTskR0xPQkFMU1siU01Sd0ZvTmpHUVZQTnBJeWZTQ2kiXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGWkJWRkJGVWtORlRsUT0iKTskR0xPQkFMU1siWlBzd2JIa0JwZFVORVFTWktRS2wiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFaQlVrbEJRa3hGWDFCU1QwUlZRMVJVVDFSQlRFRkdWRVZTUkVsVFEwOVZUbFE9Iik7JEdMT0JBTFNbInV3ZGlGQVFsaERWVXRuVkRTZUZ6Il09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRk5VVDFSQlRFRkdWRVZTUkVsVFEwOVZUbFE9Iik7JEdMT0JBTFNbIldodGpsSWNVaFlrQWFYdm9rekFsIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgwUkpVME5QVlU1VVgxQkZVa05GVGxRPSIpOyRHTE9CQUxTWyJ1dHdweGFmaFNUYkpXWWlOZFFidyJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkVSSlUwTlBWVTVVVUVWU1EwVk9WQT09Iik7JEdMT0JBTFNbInJFckNRS0h5R3BNYkpSdG5XU0dYIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgwUkpVME5QVlU1VSIpOyRHTE9CQUxTWyJqcEd0WmJ4enpTUG9XR0FjIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRVJKVTBOUFZVNVUiKTskR0xPQkFMU1siSmxUck1pRWROclRQZktEbWZmVSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUmZWRTlVUVV3PSIpOyRHTE9CQUxTWyJESE1qbHpxQ0VESVVkVENQZU1CSiJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkZSUFZFRk0iKTskR0xPQkFMU1sidXZXV0Z6Q0dpVnlXUkxsS3h3Il09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgweEpVMVJRVWtsRFJRPT0iKTskR0xPQkFMU1siVWhIcG5tYmpDclNoaEdkZiJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkV4SlUxUlFVa2xEUlE9PSIpOyRHTE9CQUxTWyJLeUNTTUJaZlhWeHVoT1J0S2VmVSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMVpCVWtsQlFreEZYMVZUUVVkRlZVNUpWQT09Iik7JEdMT0JBTFNbIkRsTGhtenNPTHd5d0Nhc0ZkdW9rIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRlZUUVVkRlZVNUpWQT09Iik7JEdMT0JBTFNbIlN5b1dvSUFhbHhOYlBZYVNPa21VIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgxRlZRVTVVU1ZSWiIpOyRHTE9CQUxTWyJRZnZTUlhSQVFieElNeGZrYWRSRiJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkZGVlFVNVVTVlJaIik7JEdMT0JBTFNbImRvUkV1U0l3Tk50alpJam1MUkMiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDBOU1RVNVBWMTlFUlZORFVrbFFWRWxQVGc9PSIpOyRHTE9CQUxTWyJlT3VobkJua293eW5mbGNPIl09YmFzZTY0X2RlY29kZSgiUTFKTlRrOVhVRkpQUkZWRFZFUkZVME5TU1ZCVVNVOU8iKTskR0xPQkFMU1siRGRjWUNPbVhlemFNRmVaTFNTTkMiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlIUmhZbWxrSUVaU1QwMGdkblJwWjJWeVgzUmhZaUJYU0VWU1JTQnVZVzFsUFNkUVpHWnpaWFIwYVc1bmN5Yz0iKTskR0xPQkFMU1sicmVqaFh4TEVlckV1TEpFT2ZtbyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMVpCVWtsQlFreEZYMUJTVDBSVlExUkVSVk5EVWtsUVZFbFBUZz09Iik7JEdMT0JBTFNbImVhYmxydG9LVFFvZHVOS3RGelJaIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRVJGVTBOU1NWQlVTVTlPIik7JEdMT0JBTFNbImNPSmZLdXFaaWtMTEJlbnB0TmxxIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgxQlNUMFJWUTFSRlJFbFVSRVZUUTFKSlVGUkpUMDQ9Iik7JEdMT0JBTFNbIlpPbmNYR3FJaWNkWm51VW9ZUmdoIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRVZFU1ZSRVJWTkRVa2xRVkVsUFRnPT0iKTskR0xPQkFMU1sidkd1cHRacUVQS0VyQUpJWnFsdk4iXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFaQlVrbEJRa3hGWDFCU1QwUlZRMVJVU1ZSTVJRPT0iKTskR0xPQkFMU1siY2RESUFLcmpkZnlVbGJmSm5lcW0iXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGUkpWRXhGIik7JEdMT0JBTFNbIklOWGtEaGlUTGNrSnJJWW5xWUJpIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxWkJVa2xCUWt4RlgxQlNUMFJWUTFST1FVMUYiKTskR0xPQkFMU1siWXVHZ1poRkZXdkhkWEtqZHZxbkciXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZFNUJUVVU9Iik7JEdMT0JBTFNbIlVXY05CUmRLeGlOdU1tTFFPWGplIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwTlZVbEpGVGtOWlgxTlpUVUpQVEE9PSIpOyRHTE9CQUxTWyJzZ0t6U1ZxaUpKYlFFTkdYdmpKbyJdPWJhc2U2NF9kZWNvZGUoIlExVlNVa1ZPUTFsVFdVMUNUMHc9Iik7JEdMT0JBTFNbImtHcXhLWU1aeHhaQU1XSVdicEF3Il09YmFzZTY0X2RlY29kZSgiVEVKTVgwTlZVbEpGVGtOWlgwTlBSRVU9Iik7JEdMT0JBTFNbIlZKZGNURUN2YU15Y0RwQWZmWGxsIl09YmFzZTY0X2RlY29kZSgiUTFWU1VrVk9RMWxEVDBSRiIpOyRHTE9CQUxTWyJpbVNERHNqV01lWENiVHZ4d0xXdyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YME5WVWxKRlRrTlpYMDVCVFVVPSIpOyRHTE9CQUxTWyJjSkJvdEt5eWhxT3h3UnV6andUeSJdPWJhc2U2NF9kZWNvZGUoIlExVlNVa1ZPUTFsT1FVMUYiKTskR0xPQkFMU1siUHVKRGJocGVQU0lJSlB0ZWFOYmYiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFCU1QwUlZRMVJmVUU5VFNWUkpUMDQ9Iik7JEdMT0JBTFNbInV0RU9BT1Voc1J3VWxDd0VCVFAiXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZGQlBVMGxVU1U5TyIpOyRHTE9CQUxTWyJDY1BsTXFuWGJCVEFyVXJlbmZIdSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJUWDA1UCIpOyRHTE9CQUxTWyJhb01KRkdVdURDS1dzZWZnR2ZGdSJdPWJhc2U2NF9kZWNvZGUoIlVGTmZUazg9Iik7JEdMT0JBTFNbInNldGF5Z216cEZWdVZJS0ZFd2ppIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxSkZRMDlTUkY5SlJBPT0iKTskR0xPQkFMU1siZFZIaU9PWm1lcExKVXRSY0lCQlEiXT1iYXNlNjRfZGVjb2RlKCJVRk5mUTFKTlNVUT0iKTskR0xPQkFMU1siR09YVGVCTGlKbnlGaEVHR1FlVHQiXT1iYXNlNjRfZGVjb2RlKCJRVkpVU1VOTVJWOVRWRkpKVGtkVCIpOyRHTE9CQUxTWyJMRWVNRHBqRVJTS0xraVRSTFladSJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkVKTVQwTmZVMFZTVmtsRFJWTmZSVTVFIik7JEdMT0JBTFNbIkJ6Snp6dXF2b3h4SU5YSWd6cXJxIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRUpNVDBOZlUwVlNWa2xEUlZOZlUxUkJVbFE9Iik7JEdMT0JBTFNbIkxrcXRFYll4WHVVWGZLeUdaRk5VIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxTkZVbFpKUTBWVFgwOU9URms9Iik7JEdMT0JBTFNbIlZwdnVVRVl2ZldvYnlEUWxrdE0iXT1iYXNlNjRfZGVjb2RlKCJVRkpQUkZWRFZFSk1UME5mVUZKUFJGVkRWRk5mUlU1RSIpOyRHTE9CQUxTWyJaTXB4bmhNRm13bFdxWWhQb3pUYiJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkVKTVQwTmZVRkpQUkZWRFZGTmZVMVJCVWxRPSIpOyRHTE9CQUxTWyJoZHlBaFhNcHdBb3BVcUFCaVRYbSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUlRYMDlPVEZrPSIpOyRHTE9CQUxTWyJGa2RvUVVkZ01Wb2pCS0ZQbWJ4ZyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMEZTVkVsRFRFVmZSVTVFIik7JEdMT0JBTFNbInRleVhWdnBqYVp3YXlKUUtEWmFqIl09YmFzZTY0X2RlY29kZSgiVUZKUFJGVkRWRUpNVDBOZlJVNUUiKTskR0xPQkFMU1siY3VUc21Cc0pvbnhmaHlPZ1RmUyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMEZTVkVsRFRFVmZVMVJCVWxRPSIpOyRHTE9CQUxTWyJqeFdVdXF0RXZMUU5JZkxYTXBYYSJdPWJhc2U2NF9kZWNvZGUoIlVGSlBSRlZEVkVKTVQwTmZVMVJCVWxRPSIpOyRHTE9CQUxTWyJ3R1BsckRiS0ZnYkxQaWhiUGZsUCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMUJTVDBSVlExUlRYMEZPUkY5VFJWSldTVU5GVXc9PSIpOyRHTE9CQUxTWyJkeG15dHhGYlJYb2ZTZnhVYkdSZyJdPWJhc2U2NF9kZWNvZGUoImJHRmlaV3c9Iik7JEdMT0JBTFNbImZJeWxjeUhsVHZtaVR4U2dzWXJtIl09YmFzZTY0X2RlY29kZSgiY0hKbFptbDQiKTskR0xPQkFMU1siWGNra0lhaGpWT2VkVk5sZFVOckgiXT1iYXNlNjRfZGVjb2RlKCJibUZ0WlE9PSIpOyRHTE9CQUxTWyJFV2hzQ09NV3NYS0VwaVJreXZ6bSJdPWJhc2U2NF9kZWNvZGUoImFXUT0iKTskR0xPQkFMU1siT1VORlVRcGJkTXFHY2dCZWMiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlDb2dSbEpQVFNCMmRHbG5aWEpmYkdGdVozVmhaMlVnVjBoRlVrVWdZV04wYVhabElEMGdQeUJQVWtSRlVpQkNXU0JwWkNCQlUwTT0iKTskR0xPQkFMU1siRmNZclVKWlV4aGZTRlFtTEV6bkIiXT1iYXNlNjRfZGVjb2RlKCJiR0ZpWld4ZmRtRnNkV1U9Iik7JEdMT0JBTFNbInRrRHBUUkR2eUtrWGtaQ0JmY3lTIl09YmFzZTY0X2RlY29kZSgiYkdGdVoxOXBaQT09Iik7JEdMT0JBTFNbImRGWndMZVFYWGhMdm5hZlIiXT1iYXNlNjRfZGVjb2RlKCJiR0ZpWld4ZmEyVjUiKTskR0xPQkFMU1siQVJsQ21MbUhDWnZndGNiSXVUZyJdPWJhc2U2NF9kZWNvZGUoImJHRmlaV3hmYVdRPSIpOyRHTE9CQUxTWyJzTnBRZ3hESk5MeHBOS1dITnREcSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUdzdWJHRmlaV3hmYVdRc0lHc3ViR0ZpWld4ZmEyVjVMQ0IyTG14aGJtZGZhV1FzSUhZdWJHRmlaV3hmZG1Gc2RXVUtJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JHVWs5TklIWjBhV2RsY2w5d1pHWnRZV3RsY2w5c1lXSmxiRjlyWlhseklFRlRJR3NLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCTVJVWlVJRXBQU1U0Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5WDJ4aFltVnNYM1poYkhNZ1FWTWdkZ29nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQlZVMGxPUnloc1lXSmxiRjlwWkNrPSIpOyRHTE9CQUxTWyJUYWpCaWZGV0l3WEhaTnRGbFVjIl09YmFzZTY0X2RlY29kZSgiYlc5a2RXeGxjeTlRUkVaTllXdGxjaTl5WlhOdmRYSmpaWE12WTJ4aGMzTmxjeTlRUkVaTllXdGxja3hoWW1Wc0xtTnNZWE56TG5Cb2NBPT0iKTskR0xPQkFMU1siZmdidkVmSlRvSGdlWU9kWmVadmciXT1iYXNlNjRfZGVjb2RlKCJaR1pmYjNSb1pYST0iKTskR0xPQkFMU1siR1ZtSUxLdFpCSXR5Snh3SUV3amoiXT1iYXNlNjRfZGVjb2RlKCJaR1pmYkdGemRBPT0iKTskR0xPQkFMU1sieWd1WWtkbGdIRGZwdWpmWVNrUHQiXT1iYXNlNjRfZGVjb2RlKCJaR1pmWm1seWMzUT0iKTskR0xPQkFMU1siUVNqR1JLbEpLU3JSR1RwYlpvIl09YmFzZTY0X2RlY29kZSgiWkdsemNGOW1iMjkwWlhJPSIpOyRHTE9CQUxTWyJJdFVwZm52cXZad0hqTFlxUU1rUSJdPWJhc2U2NF9kZWNvZGUoIlpHaGZiM1JvWlhJPSIpOyRHTE9CQUxTWyJ4T0dkbVZ1dUVyekVVRWxPcFliUyJdPWJhc2U2NF9kZWNvZGUoIlpHaGZabWx5YzNRPSIpOyRHTE9CQUxTWyJXTXpIb2ZNZHZrZW5zZmppRWhDTyJdPWJhc2U2NF9kZWNvZGUoIlpHbHpjRjlvWldGa1pYST0iKTskR0xPQkFMU1sickVSTk9pRk56dG51QktUb25waG4iXT1iYXNlNjRfZGVjb2RlKCJjRzl6ZEE9PSIpOyRHTE9CQUxTWyJXaWd1cWFtdXpEeHN2b0dHeXR2WSJdPWJhc2U2NF9kZWNvZGUoImNISmwiKTskR0xPQkFMU1siVUhCU0VyVUVMYU1aSGNpSFBhYkgiXT1iYXNlNjRfZGVjb2RlKCJjM1ZpZEc5MFlXeHpRWEp5WVhrPSIpOyRHTE9CQUxTWyJhY0N0cERLakZyRlpIU050eUVMSCJdPWJhc2U2NF9kZWNvZGUoImNtVmpiM0prIik7JEdMT0JBTFNbIlVpa0VXWEJURWlNeWVVTHJNSXhCIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJR2x6WDJGamRHbDJaU3dnYVhOZlpHVm1ZWFZzZEN3Z2MyVnhkV1Z1WTJVZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSmZkWE5sY25OMFlYUjFjeUJYU0VWU1JTQjBaVzF3YkdGMFpXbGtQVDhnUVU1RUlIVnpaWEpwWkQwLyIpOyRHTE9CQUxTWyJDaFdFZUJkTUtOS3Fsd0x1UnlTRCJdPWJhc2U2NF9kZWNvZGUoImJHbGpaVzV6WlY5clpYaz0iKTskR0xPQkFMU1sicGZuY3JwUWtzZWxUR3BxSnVoWVkiXT1iYXNlNjRfZGVjb2RlKCJkbVZ5YzJsdmJsOTBlWEJsIik7JEdMT0JBTFNbIlhkRktVVGJiU29naXlFYVhHQWdQIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJSFpsY25OcGIyNWZkSGx3WlN3Z2JHbGpaVzV6WlY5clpYa2dSbEpQVFNCMmRHbG5aWEpmY0dSbWJXRnJaWEpmYkdsalpXNXpaUT09Iik7JEdMT0JBTFNbIlBLVFNXcWJUbFpJcUh3Q2F4Rm5zIl09YmFzZTY0X2RlY29kZSgiYzJoaGNtVnBaQT09Iik7JEdMT0JBTFNbIkpZTnRWZFRmSGxnSmtUT2pNdnRMIl09YmFzZTY0X2RlY29kZSgiT2c9PSIpOyRHTE9CQUxTWyJxc2hUWVp3YWZoZ01kZkZsUXFXeCJdPWJhc2U2NF9kZWNvZGUoIlVtOXNaVUZ1WkZOMVltOXlaR2x1WVhSbGN3PT0iKTskR0xPQkFMU1sidGhrcUd3YVJUZm1XRk5xTE15aVYiXT1iYXNlNjRfZGVjb2RlKCJjMlYwZVhCbCIpOyRHTE9CQUxTWyJGQ2h6WmpsRWt2aU5WZVJOY0ZUdyJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUhOb1lYSmxhV1FzSUhObGRIbHdaU0JHVWs5TklIWjBhV2RsY2w5d1pHWnRZV3RsY2w5emFHRnlhVzVuSUZkSVJWSkZJSFJsYlhCc1lYUmxhV1FnUFNBL0lFOVNSRVZTSUVKWklITmxkSGx3WlNCQlUwTT0iKTskR0xPQkFMU1sidExOYkNHdFhCQ3prc2ltUkhSekYiXT1iYXNlNjRfZGVjb2RlKCJZMjl0Y0dGdWFXVnoiKTskR0xPQkFMU1sidHViWGJ3TWdLVFVHUGVLQW1xQ0YiXT1iYXNlNjRfZGVjb2RlKCJMQT09Iik7JEdMT0JBTFNbImhQR3ZvSHlwUElBSXNEdUxlamdGIl09YmFzZTY0X2RlY29kZSgiWjNKdmRYQnoiKTskR0xPQkFMU1siU0NUSEZMWUxHZVFUYUNGVUJSRHciXT1iYXNlNjRfZGVjb2RlKCJjbk09Iik7JEdMT0JBTFNbImt0clhQcXZpenROUFNvUlFDcnhWIl09YmFzZTY0X2RlY29kZSgiY205c1pYTT0iKTskR0xPQkFMU1siamx2Q1p1dkxKUGdsb2FpRmVUalAiXT1iYXNlNjRfZGVjb2RlKCJkWE5sY25NPSIpOyRHTE9CQUxTWyJrWml6bmVVcGVnRXFYS2p6bVl6ZyJdPWJhc2U2NF9kZWNvZGUoImMyaGhjbVU9Iik7JEdMT0JBTFNbInJFQnJXaGNnV1Zsc0trZ3d6Il09YmFzZTY0X2RlY29kZSgiY0hKcGRtRjBaUT09Iik7JEdMT0JBTFNbIlFUbkdLWnJPRWN2T1FrQkNoVWdmIl09YmFzZTY0X2RlY29kZSgiY0hWaWJHbGoiKTskR0xPQkFMU1siWURJTU1jTE1wcWZ3ZFlKZkJzakkiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlHOTNibVZ5TENCemFHRnlhVzVuZEhsd1pTQkdVazlOSUhaMGFXZGxjbDl3WkdadFlXdGxjbDl6WlhSMGFXNW5jeUJYU0VWU1JTQjBaVzF3YkdGMFpXbGtJRDBnUHc9PSIpOyRHTE9CQUxTWyJ5QUFrYlVjRXdwanNzU3ZJV1FkTiJdPWJhc2U2NF9kZWNvZGUoImIzQmxjbUYwYVc5dSIpOyRHTE9CQUxTWyJzb1NnWVBxSWV6ZEpidkN5SlpvZyJdPWJhc2U2NF9kZWNvZGUoImNISnZabWxzWldsayIpOyRHTE9CQUxTWyJ4VkZGb3lQaG55cnRPTFBIS09RTCJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSmZjSEp2Wm1sc1pYTndaWEp0YVhOemFXOXVjdz09Iik7JEdMT0JBTFNbIkZWbGJwTVhkTVBBVkxKaFB3ZlhNIl09YmFzZTY0X2RlY29kZSgiUEM5MFpENDhMM1J5UGp3dmRHRmliR1UrIik7JEdMT0JBTFNbInJ4eEpncUNMUVhvbE5Gc0tOTUZTIl09YmFzZTY0X2RlY29kZSgiUEM5aFBqeGljajQ4TDNSa1Bnb2dJQ0FnSUNBSkNUd3ZkSEkrQ2lBZ0lDQWdJQWtKUEM5MFltOWtlVDQ4TDNSaFlteGxQZ29nSUNBZ0lDQUpDVHd2WkdsMlBnPT0iKTskR0xPQkFMU1sidXduTUh6RUlGeGVkbVRqQXlXQ1QiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDBkUFgwSkJRMHM9Iik7JEdMT0JBTFNbIk1QZFphUllpSFpIeW5yb2FNWnFDIl09YmFzZTY0X2RlY29kZSgiUEM5emNHRnVQand2ZEdRK0NpQWdJQ0FnSUFrSlBDOTBjajRLSUNBZ0lDQWdDUWs4ZEhJK0NpQWdJQ0FnSUFrSlBIUmtJR05zWVhOelBTZHpiV0ZzYkNjZ1lXeHBaMjQ5SjNKcFoyaDBKeUJ1YjNkeVlYQTlKMjV2ZDNKaGNDYytDaUFnSUNBZ0lBa0pQR0VnYUhKbFpqMG5hbUYyWVhOamNtbHdkRHAzYVc1a2IzY3VhR2x6ZEc5eWVTNWlZV05yS0NrN0p6ND0iKTskR0xPQkFMU1siVGZzdlFUd3VhVENHcU1ZeEJvV1QiXT1iYXNlNjRfZGVjb2RlKCJKeUErUEM5MFpENEtJQ0FnSUNBZ0NRazhkR1FnYzNSNWJHVTlKMkp2Y21SbGNpMWliM1IwYjIwNklERndlQ0J6YjJ4cFpDQnlaMklvTWpBMExDQXlNRFFzSURJd05DazdKeUJ1YjNkeVlYQTlKMjV2ZDNKaGNDY2dkMmxrZEdnOUp6Y3dKU2MrUEhOd1lXNGdZMnhoYzNNOUoyZGxia2hsWVdSbGNsTnRZV3hzSno0PSIpOyRHTE9CQUxTWyJ2Y3pGdHZhT2dIV3hRZkNucmFnSyJdPWJhc2U2NF9kZWNvZGUoIlBHUnBkaUJ6ZEhsc1pUMG5ZbTl5WkdWeU9pQXpjSGdnYzI5c2FXUWdjbWRpS0RFMU15d2dNVFV6TENBeE5UTXBPeUJpWVdOclozSnZkVzVrTFdOdmJHOXlPaUJ5WjJJb01qVTFMQ0F5TlRVc0lESTFOU2s3SUhkcFpIUm9PaUExTlNVN0lIQnZjMmwwYVc5dU9pQnlaV3hoZEdsMlpUc2dlaTFwYm1SbGVEb2dNVEF3TURBd01EQTdKejRLSUNBZ0lDQWdDUWs4ZEdGaWJHVWdZbTl5WkdWeVBTY3dKeUJqWld4c2NHRmtaR2x1Wnowbk5TY2dZMlZzYkhOd1lXTnBibWM5SnpBbklIZHBaSFJvUFNjNU9DVW5QZ29nSUNBZ0lDQUpDVHgwWW05a2VUNDhkSEkrQ2lBZ0lDQWdJQWtKUEhSa0lISnZkM053WVc0OUp6SW5JSGRwWkhSb1BTY3hNU1VuUGp4cGJXY2djM0pqUFNjPSIpOyRHTE9CQUxTWyJOY1ZDcWlMd3NLR1hSeW9rV01LciJdPWJhc2U2NF9kZWNvZGUoIlBIUmhZbXhsSUdKdmNtUmxjajBuTUNjZ1kyVnNiSEJoWkdScGJtYzlKelVuSUdObGJHeHpjR0ZqYVc1blBTY3dKeUIzYVdSMGFEMG5NVEF3SlNjZ2FHVnBaMmgwUFNjME5UQndlQ2MrUEhSeVBqeDBaQ0JoYkdsbmJqMG5ZMlZ1ZEdWeUp6ND0iKTskR0xPQkFMU1siS1d4TW1YY09oVk5hTGtsWXZrbmsiXT1iYXNlNjRfZGVjb2RlKCJMM04wZVd4bExtTnpjeWMrIik7JEdMT0JBTFNbIldKQldOa25sTnl4VlpOaXRHRXpIIl09YmFzZTY0X2RlY29kZSgiUEd4cGJtc2djbVZzUFNkemRIbHNaWE5vWldWMEp5QjBlWEJsUFNkMFpYaDBMMk56Y3ljZ2FISmxaajBuZEdobGJXVnpMdz09Iik7JEdMT0JBTFNbIkpCQ0tweXpYaUx2ZXpocExZbmNjIl09YmFzZTY0X2RlY29kZSgiUTJGc1pXNWtZWEk9Iik7JEdMT0JBTFNbIll5WnRJRVhVV21qWlZTZFp0dVVhIl09YmFzZTY0X2RlY29kZSgiUkVWTVJWUkZJRVpTVDAwZ2RuUnBaMlZ5WDJ4cGJtdHpJRmRJUlZKRklHeHBibXRwWkQwLyIpOyRHTE9CQUxTWyJTYmVNenFxdG9xbEtva2Fxd2hoTiJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZiR2x1YTNNZ1YwaEZVa1VnZEdGaWFXUTlQeUJCVGtRZ2JHbHVhM1I1Y0dVOVB5QkJUa1FnYkdsdWEyeGhZbVZzUFQ4Z1FVNUVJR3hwYm10MWNtdzlQeUJQVWtSRlVpQkNXU0JzYVc1cmFXUWdSRVZUUXc9PSIpOyRHTE9CQUxTWyJUTElUTXlrYXl5Umdpem5DY1luYyJdPWJhc2U2NF9kZWNvZGUoIlJYWmxiblJ6Iik7JEdMT0JBTFNbIkplaFdNbnBPanRCQXlVU2NzY3JDIl09YmFzZTY0X2RlY29kZSgiVUVSR0lFVjRjRzl5ZEE9PSIpOyRHTE9CQUxTWyJUcVBUc2dGd2lmcXFqeW1OcFFXVCJdPWJhc2U2NF9kZWNvZGUoIlRFbFRWRlpKUlZkTlFWTlRRVU5VU1U5TyIpOyRHTE9CQUxTWyJhWVJMd1BlUGVGQ3RkR2NQWHZ2VyJdPWJhc2U2NF9kZWNvZGUoIlJFVlVRVWxNVmtsRlYxZEpSRWRGVkE9PSIpOyRHTE9CQUxTWyJHQkJiZ3VuVFlRUndIUlhLclBLWCJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUhSaFltbGtJRVpTVDAwZ2RuUnBaMlZ5WDNSaFlpQlhTRVZTUlNCcGMyVnVkR2wwZVhSNWNHVTlQdz09Iik7JEdMT0JBTFNbIlpFZktnd2pxSEFyR3RMd1RYRldTIl09YmFzZTY0X2RlY29kZSgiZVcxa1NHaz0iKTskR0xPQkFMU1siTWJhakROSlJobU1Pd0dvanNjdlUiXT1iYXNlNjRfZGVjb2RlKCJYdz09Iik7JEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il09YmFzZTY0X2RlY29kZSgiWm1sbGJHUnVZVzFsIik7JEdMT0JBTFNbIkV0SWxjRHZvTllZdHZETktJZGdZIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJR1pwWld4a2JtRnRaU0JHVWs5TklIWjBhV2RsY2w5bWFXVnNaQ0JYU0VWU1JTQjFhWFI1Y0dVOVB5QkJUa1FnZEdGaWFXUTlQdz09Iik7JEdMT0JBTFNbImlQcEFKWmdYY3F6bHdLWGt4ZlkiXT1iYXNlNjRfZGVjb2RlKCJRbUYwWTJoUVJFWT0iKTskR0xPQkFMU1sid3VUVWFKWFpDdmtHWUx3TVlXYWgiXT1iYXNlNjRfZGVjb2RlKCJTVlJUTkZsdmRWTjBlV3hsY3c9PSIpOyRHTE9CQUxTWyJsTWpNeVBGSVRXaWlxSFpmeHR4diJdPWJhc2U2NF9kZWNvZGUoImJXRnlaMmx1WDJKdmRIUnZiUT09Iik7JEdMT0JBTFNbImxaRFdmTUFKbmpTaWpXWkZpbnJVIl09YmFzZTY0X2RlY29kZSgiYldGeVoybHVYM1J2Y0E9PSIpOyRHTE9CQUxTWyJSc2RLTlFNQWxOWURVZUVJaUxmeCJdPWJhc2U2NF9kZWNvZGUoImJXRnlaMmx1WDNKcFoyaDAiKTskR0xPQkFMU1siSHBEeFlOSUZZa1FyUGZCSlRwSFgiXT1iYXNlNjRfZGVjb2RlKCJiV0Z5WjJsdVgyeGxablE9Iik7JEdMT0JBTFNbInBPSFJ0WVpFdmdtVGtLcnlsV2NaIl09YmFzZTY0X2RlY29kZSgiZkNOTVNWTlVWa2xGVjBKTVQwTkxYMU5VUVZKVUl5Z3VLaWtqVEVsVFZGWkpSVmRDVEU5RFMxOUZUa1FqZkhOViIpOyRHTE9CQUxTWyJneE5ITnVsQVhmTU5qUUxaaEZzSCJdPWJhc2U2NF9kZWNvZGUoIkkweEpVMVJXU1VWWFFreFBRMHRmUlU1RUl3PT0iKTskR0xPQkFMU1siaWttU3BKVnF3VUVBT0R1RmRTY1AiXT1iYXNlNjRfZGVjb2RlKCJJMHhKVTFSV1NVVlhRa3hQUTB0ZlUxUkJVbFFqIik7JEdMT0JBTFNbImdva2FuSXBQbExZQm1Zc1NHQVZnIl09YmFzZTY0X2RlY29kZSgiTFV3PSIpOyRHTE9CQUxTWyJtU2hiWGdSeFhPRkxVcG5TeGN4UyJdPWJhc2U2NF9kZWNvZGUoImJXMD0iKTskR0xPQkFMU1sid2NMeHdreGJmclp4V2pHR2FNU2MiXT1iYXNlNjRfZGVjb2RlKCJiVzBnIik7JEdMT0JBTFNbInlLSllFQXNwWUdXZVF1YVBxQ3JKIl09YmFzZTY0X2RlY29kZSgiT3c9PSIpOyRHTE9CQUxTWyJOcWx6Q1JVbnFuVGVpQndQbnV5UyJdPWJhc2U2NF9kZWNvZGUoIlptOXliV0YwIik7JEdMT0JBTFNbImdwamhueVNTd1dqYWJkb0NTUXlOIl09YmFzZTY0X2RlY29kZSgiVUE9PSIpOyRHTE9CQUxTWyJ1eVFETGJOUFNXaEhqa0dlZHVyTSJdPWJhc2U2NF9kZWNvZGUoIlRBPT0iKTskR0xPQkFMU1siek5FSkZ5b3lSSURsUmdieWdRQ2ciXT1iYXNlNjRfZGVjb2RlKCJiR0Z1WkhOallYQmwiKTskR0xPQkFMU1siTHpPSUh0RFVpSldOcHNkZm9sSyJdPWJhc2U2NF9kZWNvZGUoImIzSnBaVzUwWVhScGIyND0iKTskR0xPQkFMU1siQkVUREVTaHJDeklmcEZyUWhpUE0iXT1iYXNlNjRfZGVjb2RlKCJabTl2ZEdWeSIpOyRHTE9CQUxTWyJrdkJjdFRQQWJSc2hnT2ZKeElCcCJdPWJhc2U2NF9kZWNvZGUoIlltOWtlUT09Iik7JEdMT0JBTFNbIk5UeVFIanNaekVJY0N0c2lUSmZ3Il09YmFzZTY0X2RlY29kZSgiYUdWaFpHVnkiKTskR0xPQkFMU1siWXh1S2xSVE5kU2ZLZXpmQVdrY3EiXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFCRlVrMUpVMU5KVDA0PSIpOyRHTE9CQUxTWyJGdFdsY1liRGhZaXJQdXFEYlloTCJdPWJhc2U2NF9kZWNvZGUoImMyVnNaV04wSUdGamRHbDJhWFI1ZEhsd1pTQm1jbTl0SUhaMGFXZGxjbDloWTNScGRtbDBlU0IzYUdWeVpTQmhZM1JwZG1sMGVXbGtQVDg9Iik7JEdMT0JBTFNbIlJQbnRtR1dCV2lNTUlFb1hIUSJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5UVJFWk5ZV3RsY2k5eVpYTnZkWEpqWlhNdmNHUm1hbk11Y0dodyIpOyRHTE9CQUxTWyJkb0xTdGNRWWFWU1lMT0ZHcXciXT1iYXNlNjRfZGVjb2RlKCJjSEp2Wm1WemMybHZibUZzIik7JEdMT0JBTFNbIlNZRW1QSnB4TENIWm1ZQnBJTlloIl09YmFzZTY0X2RlY29kZSgiZEdGaWFXUT0iKTskR0xPQkFMU1sieXJ4eFlEVkhyUnNYTXNldm9TZ1YiXT1iYXNlNjRfZGVjb2RlKCJlV1Z6Iik7JEdMT0JBTFNbIll0Y1dGcm5sdXBseXlHeUN5dFB2Il09YmFzZTY0X2RlY29kZSgiYlc5a2RXeGxjeTg9Iik7JEdMT0JBTFNbInp5bEdwZXFlU1Jrd2ZhWUdEaUZLIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJSFJoWW1sa0xDQnVZVzFsTENCMFlXSnNZV0psYkNCR1VrOU5JSFowYVdkbGNsOTBZV0lnVjBoRlVrVWdhWE5sYm5ScGRIbDBlWEJsUFRFZ1FVNUVJSEJ5WlhObGJtTmxQVEFnUVU1RUlIUmhZbWxrSUU1UFZDQkpUaUFvUHl3L0tTQlBVa1JGVWlCQ1dTQnVZVzFsSUVGVFF3PT0iKTskR0xPQkFMU1siaE9HbVVWaUZZaHJ5UXBIekxaVE4iXT1iYXNlNjRfZGVjb2RlKCJURUpNWDFCTVUxOVRSVXhGUTFRPSIpOyRHTE9CQUxTWyJ6eVdneGtQVWRqVXp5bllJRFlkWCJdPWJhc2U2NF9kZWNvZGUoImRHbDBiR1U9Iik7JEdMT0JBTFNbIk1CR0dMdkd3VFhHSUZEeER1ZEtJIl09YmFzZTY0X2RlY29kZSgiZEdWdGNHeGhkR1Z1WVcxbCIpOyRHTE9CQUxTWyJobEpvVGtBRGxqZ0dlZ2JFYWVXRSJdPWJhc2U2NF9kZWNvZGUoIklDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0NpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCUFVrUkZVaUJDV1NCMmRHbG5aWEpmY0dSbWJXRnJaWEl1Wm1sc1pXNWhiV1VnUVZORCIpOyRHTE9CQUxTWyJGWFZBRlZtR3poUnJoR3hsbnNFUSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUhaMGFXZGxjbDl3WkdadFlXdGxjbDlrYVhOd2JHRjVaV1F1S2l3Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5TG5SbGJYQnNZWFJsYVdRc0lIWjBhV2RsY2w5d1pHWnRZV3RsY2k1bWFXeGxibUZ0WlN3Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5TG1SbGMyTnlhWEIwYVc5dUlDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUFvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnUmxKUFRTQjJkR2xuWlhKZmNHUm1iV0ZyWlhJS0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUVsT1RrVlNJRXBQU1U0Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5WDNObGRIUnBibWR6SUZWVFNVNUhLSFJsYlhCc1lYUmxhV1FwQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JNUlVaVUlFcFBTVTRnZG5ScFoyVnlYM0JrWm0xaGEyVnlYMlJwYzNCc1lYbGxaQ0JWVTBsT1J5aDBaVzF3YkdGMFpXbGtLUW9nSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdWMGhGVWtVZ2RuUnBaMlZ5WDNCa1ptMWhhMlZ5TG0xdlpIVnNaVDAvIik7JEdMT0JBTFNbIlVlZXdTWmlwb2pJZ1pOdUhHdFRUIl09YmFzZTY0X2RlY29kZSgiVTBWTVJVTlVJSFJsYlhCc1lYUmxhV1FzSUdselgyRmpkR2wyWlN3Z2FYTmZaR1ZtWVhWc2RDd2djMlZ4ZFdWdVkyVWdSbEpQVFNCMmRHbG5aWEpmY0dSbWJXRnJaWEpmZFhObGNuTjBZWFIxY3dvZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JKVGs1RlVpQktUMGxPSUhaMGFXZGxjbDl3WkdadFlXdGxjaUJWVTBsT1J5aDBaVzF3YkdGMFpXbGtLU0JYU0VWU1JTQjFjMlZ5YVdROVB3PT0iKTskR0xPQkFMU1siYnBtTlhQQWFOcFVNSFZ4S1FRYWwiXT1iYXNlNjRfZGVjb2RlKCJJRUZPUkNCcGMxOXNhWE4wZG1sbGR6MC8iKTskR0xPQkFMU1siWWtVZHV6a1VRWWdWSktsYldxd1kiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlIWjBhV2RsY2w5d1pHWnRZV3RsY2w5a2FYTndiR0Y1WldRdUtpd2dkblJwWjJWeVgzQmtabTFoYTJWeUxpb3NJSFowYVdkbGNsOXdaR1p0WVd0bGNsOXpaWFIwYVc1bmN5NHFDaUFnSUNBSkNRbEdVazlOSUhaMGFXZGxjbDl3WkdadFlXdGxjZ29nSUNBZ0NRa0pURVZHVkNCS1QwbE9JSFowYVdkbGNsOXdaR1p0WVd0bGNsOXpaWFIwYVc1bmN5QlZVMGxPUnloMFpXMXdiR0YwWldsa0tRb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNCTVJVWlVJRXBQU1U0Z2RuUnBaMlZ5WDNCa1ptMWhhMlZ5WDJScGMzQnNZWGxsWkNCVlUwbE9SeWgwWlcxd2JHRjBaV2xrS1FvZ0lDQWdDUWtKVjBoRlVrVWdkblJwWjJWeVgzQmtabTFoYTJWeUxuUmxiWEJzWVhSbGFXUTlQdz09Iik7JEdMT0JBTFNbIndBcGtZc2prZkZObUR0S25ya2xlIl09YmFzZTY0X2RlY29kZSgiY0dWeWJXbHpjMmx2Ym5NPSIpOyRHTE9CQUxTWyJ3anp0ZUZxRHpGUEd6VlJZQnJuTSJdPWJhc2U2NF9kZWNvZGUoIlpHVm1ZWFZzZEVKMWRIUnZiZz09Iik7JEdMT0JBTFNbIkJXR094S1lvbmxKeHdVYXdsQVciXT1iYXNlNjRfZGVjb2RlKCJZV04wYVhaaGRHVkNkWFIwYjI0PSIpOyRHTE9CQUxTWyJhQXpraVl1QkRGV1pHUW5mVWpMQiJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMVZPVTBWVVFWTkVSVVpCVlV4VSIpOyRHTE9CQUxTWyJweVJFaFB6U0xUR0ZkTGJ4UGZnQSJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMU5GVkVGVFJFVkdRVlZNVkE9PSIpOyRHTE9CQUxTWyJPR09JQk91eEZGb0xQZ3phR3NTRCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMU5GVkVGVFFVTlVTVlpGIik7JEdMT0JBTFNbInltcGR2U2R6dnd4WUdRR1RGSmdQIl09YmFzZTY0X2RlY29kZSgiVEVKTVgxTkZWRUZUU1U1QlExUkpWa1U9Iik7JEdMT0JBTFNbIk9kV0VpdWN5Y3F6bERwWFdFbXJkIl09YmFzZTY0X2RlY29kZSgiUlc1aFlteGxMbkJ1Wnc9PSIpOyRHTE9CQUxTWyJXZEFOWk5jV01CTElPUVNiUFBsTiJdPWJhc2U2NF9kZWNvZGUoIlJHbHpZV0pzWlM1d2JtYz0iKTskR0xPQkFMU1siWnZpUEd5T3BuZm9qeHNUbnVVclIiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlIWjBhV2RsY2w5d1pHWnRZV3RsY2w5a2FYTndiR0Y1WldRdUtpd2dkblJwWjJWeVgzQmtabTFoYTJWeUxpb3NJSFowYVdkbGNsOXdaR1p0WVd0bGNsOXpaWFIwYVc1bmN5NHFDZ2tKQ1VaU1QwMGdkblJwWjJWeVgzQmtabTFoYTJWeUNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUV4RlJsUWdTazlKVGlCMmRHbG5aWEpmY0dSbWJXRnJaWEpmYzJWMGRHbHVaM01nVlZOSlRrY29kR1Z0Y0d4aGRHVnBaQ2tLSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdURVZHVkNCS1QwbE9JSFowYVdkbGNsOXdaR1p0WVd0bGNsOWthWE53YkdGNVpXUWdWVk5KVGtjb2RHVnRjR3hoZEdWcFpDa0tDUWtKVjBoRlVrVWdkblJwWjJWeVgzQmtabTFoYTJWeUxuUmxiWEJzWVhSbGFXUTlQdz09Iik7JEdMT0JBTFNbIkNYcmh3ZlJXSnlDTmhJT0V6a2pxIl09YmFzZTY0X2RlY29kZSgiWDBaSlRGUkZVZz09Iik7JEdMT0JBTFNbImlqZXplYURVbUpBQ3V2R25kWm5EIl09YmFzZTY0X2RlY29kZSgiSWlCb2NtVm1QU0pxWVhaaGMyTnlhWEIwT25admFXUW9NQ2s3SWlCamJHRnpjejBpWkdWc1pYUmxVbVZqYjNKa1FuVjBkRzl1SWo0PSIpOyRHTE9CQUxTWyJuWVJ0Y0JJcG1qVFd6VWVacU9WeSJdPWJhc2U2NF9kZWNvZGUoIlBHeHBQanhoSUdSaGRHRXRhV1E5SWc9PSIpOyRHTE9CQUxTWyJ3YW5Udk1KbWdmb1BCTGdSR25UeiJdPWJhc2U2NF9kZWNvZGUoIlpHVnNaWFJsIik7JEdMT0JBTFNbIkpVU3NRQllrZ2l3TXFPWW9pUURpIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwUlZVRXhKUTBGVVJRPT0iKTskR0xPQkFMU1sic1hTcW51Wk5DSkxFU1R2RkNMV1QiXT1iYXNlNjRfZGVjb2RlKCJKbWx6UkhWd2JHbGpZWFJsUFhSeWRXVWlQZz09Iik7JEdMT0JBTFNbIll0UW96V1p3Y2FpTFViWER1ZCJdPWJhc2U2NF9kZWNvZGUoIlBDOWhQand2YkdrKyIpOyRHTE9CQUxTWyJ0dmt2ZFBVckRUc2lSYlJNaXJsSCJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMFZFU1ZRPSIpOyRHTE9CQUxTWyJwWG1XTkdHYmtudmRycFl5Vm9PbyJdPWJhc2U2NF9kZWNvZGUoIlBHeHBQanhoSUdoeVpXWTlJbWx1WkdWNExuQm9jRDl0YjJSMWJHVTlVRVJHVFdGclpYSW1kbWxsZHoxRlpHbDBKbkpsZEhWeWJsOTJhV1YzUFV4cGMzUW1kR1Z0Y0d4aGRHVnBaRDA9Iik7JEdMT0JBTFNbInVMUm5WdE1oaWxrQlRGY1lDTkpJIl09YmFzZTY0X2RlY29kZSgiWldScGRBPT0iKTskR0xPQkFMU1sieU5sSW9PYUhPVkNobGJBWkJsY0oiXT1iYXNlNjRfZGVjb2RlKCJQQzloUGc9PSIpOyRHTE9CQUxTWyJCU0hvd0FCd0tSdW5TdU5GcHdxdyJdPWJhc2U2NF9kZWNvZGUoIklqND0iKTskR0xPQkFMU1siV0phRHlHTG93RnRNYkFKdWF1eEYiXT1iYXNlNjRfZGVjb2RlKCJQR0VnYUhKbFpqMGlhVzVrWlhndWNHaHdQMjF2WkhWc1pUMVFSRVpOWVd0bGNpWjJhV1YzUFVSbGRHRnBiQ1owWlcxd2JHRjBaV2xrUFE9PSIpOyRHTE9CQUxTWyJSVUJMaHVGRm5iZ1NXYXRBZ2xnbCJdPWJhc2U2NF9kZWNvZGUoIlNXNWhZM1JwZG1VPSIpOyRHTE9CQUxTWyJ0cFlEVGladlNqS1FnZGpCTldFZiJdPWJhc2U2NF9kZWNvZGUoIlFXTjBhWFpsIik7JEdMT0JBTFNbIk10a3dySVB6WGh4QmVBdnFDRnoiXT1iYXNlNjRfZGVjb2RlKCJjM1JoZEhWelh3PT0iKTskR0xPQkFMU1siaFhKWG55cEJrTktFb0F4a2hjWWsiXT1iYXNlNjRfZGVjb2RlKCJNdz09Iik7JEdMT0JBTFNbImpUVUlhZXJRcnNZVmh0eW90RkJpIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwWlBVbDlNVmc9PSIpOyRHTE9CQUxTWyJ2TW9lV25leXh5THFQcnhwa3ZLSiJdPWJhc2U2NF9kZWNvZGUoIk1nPT0iKTskR0xPQkFMU1siUWZlWHhxWXRDTGF5bGVRUFciXT1iYXNlNjRfZGVjb2RlKCJLUT09Iik7JEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl09YmFzZTY0X2RlY29kZSgiVEVKTVgwWlBVbDlFVmc9PSIpOyRHTE9CQUxTWyJHSVdRbHNramhXTHVDUmp6QXVaUyJdPWJhc2U2NF9kZWNvZGUoIlRFSk1YMFJGUmtGVlRGUmZUazlRUVZJPSIpOyRHTE9CQUxTWyJVVG1LUkhFc1NiZE9IbUx4SWRTYiJdPWJhc2U2NF9kZWNvZGUoIklDZz0iKTskR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXT1iYXNlNjRfZGVjb2RlKCJNUT09Iik7JEdMT0JBTFNbImVackt6ZlVnQnhzYUlBSFZOWHdzIl09YmFzZTY0X2RlY29kZSgiTUE9PSIpOyRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdPWJhc2U2NF9kZWNvZGUoIiIpOyRHTE9CQUxTWyJaVUtydWdPT0dOc1VEWXB5SWx6RyJdPWJhc2U2NF9kZWNvZGUoIklBPT0iKTskR0xPQkFMU1siZ1lUWGhqeGRieUdEZEdjbE9RbXEiXT1iYXNlNjRfZGVjb2RlKCJMZz09Iik7JEdMT0JBTFNbImdVbmZUdkVPZWpBQUJiYVRRb0hNIl09YmFzZTY0X2RlY29kZSgiZG5ScFoyVnlYM0JrWm0xaGEyVnkiKTskR0xPQkFMU1sidG1qenZEWU5QYUp3ekZNRXZNS04iXT1iYXNlNjRfZGVjb2RlKCJkblJwWjJWeVgzQmtabTFoYTJWeVgzTmxkSFJwYm1keiIpOyRHTE9CQUxTWyJQYUJXcW1kcVJ5ZFlRTElXeVVtaSJdPWJhc2U2NF9kZWNvZGUoIklFOVNSRVZTSUVKWklBPT0iKTskR0xPQkFMU1siUlZrQ1hFSWdkRUJ5a0dJQm96dCJdPWJhc2U2NF9kZWNvZGUoIklFRk9SQ0E9Iik7JEdMT0JBTFNbIldyUk5CT21wdmpNQkxMZmRCeElqIl09YmFzZTY0X2RlY29kZSgiSUZkSVJWSkZJQT09Iik7JEdMT0JBTFNbInRTQUtHeG9MTFZvS0FCd2x6TE5FIl09YmFzZTY0X2RlY29kZSgiSUQwZ1B3PT0iKTskR0xPQkFMU1sib0t1VEpOdGpXc3BMeWxwVldrIl09YmFzZTY0X2RlY29kZSgiZG5ScFoyVnlYM0JrWm0xaGEyVnlYM05sZEhScGJtZHpMZz09Iik7JEdMT0JBTFNbIlNRb0lZbGJ4QXNSdHpFVURsRnJTIl09YmFzZTY0X2RlY29kZSgiSUV4SlMwVWdQdz09Iik7JEdMT0JBTFNbIm9QYkpQTWx4Q1dGb3VNSm1hdUtVIl09YmFzZTY0X2RlY29kZSgiZG5ScFoyVnlYM0JrWm0xaGEyVnlMZz09Iik7JEdMT0JBTFNbImRpVWFzamt6TWRWWWlxSnRsZHpoIl09YmFzZTY0X2RlY29kZSgiSlE9PSIpOyRHTE9CQUxTWyJjSVphV25KWnVYQWxrSlVGcEtJRSJdPWJhc2U2NF9kZWNvZGUoImIzZHVaWEk9Iik7JEdMT0JBTFNbIndSTmpQekN4cllSQ0Z0TUtURURwIl09YmFzZTY0X2RlY29kZSgiYzJoaGNtbHVaM1I1Y0dVPSIpOyRHTE9CQUxTWyJBb2hkQlRMS0x4RFhESnZ6S09BTiJdPWJhc2U2NF9kZWNvZGUoIlpHVnpZM0pwY0hScGIyND0iKTskR0xPQkFMU1siWHNiRVJnanFPVnJ0bHpjSnp1SUUiXT1iYXNlNjRfZGVjb2RlKCJabWxzWlc1aGJXVT0iKTskR0xPQkFMU1siRUVWU0VLQXhnYVFWak9NS1NGYVEiXT1iYXNlNjRfZGVjb2RlKCJiVzlrZFd4bCIpOyRHTE9CQUxTWyJjdlBpTlFGYndERnNyZFFISkRReSJdPWJhc2U2NF9kZWNvZGUoImIzSmtaWEk9Iik7JEdMT0JBTFNbIm5QeGNQQnpLV3pFWWx1UlFJU1BqIl09YmFzZTY0X2RlY29kZSgiYzJWeGRXVnVZMlU9Iik7JEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl09YmFzZTY0X2RlY29kZSgiYVhOZlpHVm1ZWFZzZEE9PSIpOyRHTE9CQUxTWyJPVVNJbW5ZZE1QSURoc0NDWUJsdyJdPWJhc2U2NF9kZWNvZGUoImFYTmZZV04wYVhabCIpOyRHTE9CQUxTWyJObmh0eXVaUlNzQ1d5dVF1bHNoeSJdPWJhc2U2NF9kZWNvZGUoIlUwVk1SVU5VSUNvZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSmZkWE5sY25OMFlYUjFjeUJKVGs1RlVpQktUMGxPSUhaMGFXZGxjbDl3WkdadFlXdGxjaUJWVTBsT1J5aDBaVzF3YkdGMFpXbGtLU0JYU0VWU1JTQjFjMlZ5YVdROVB3PT0iKTskR0xPQkFMU1sic3FzbXV1dlJIekNwS0dVeEhBcFMiXT1iYXNlNjRfZGVjb2RlKCJZWE5qIik7JEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl09YmFzZTY0X2RlY29kZSgiZEdWdGNHeGhkR1ZwWkE9PSIpOyRHTE9CQUxTWyJTQ0VQTXBzS2JvQmFjcEhZRiJdPWJhc2U2NF9kZWNvZGUoImIzZHVaWEp6Iik7JEdMT0JBTFNbInVMSUJTalZyaUZtQ0ZUaWttTUFBIl09YmFzZTY0X2RlY29kZSgiYlc5a2RXeGxjdz09Iik7JEdMT0JBTFNbIk95T0F4UFlkYUVQRW93bEhPZ1p2Il09YmFzZTY0X2RlY29kZSgiWkdWMFlXbHMiKTskR0xPQkFMU1siTW16WnJlV1VseEdSSlRlSnJ3SEYiXT1iYXNlNjRfZGVjb2RlKCJVMFZNUlVOVUlIWjBhV2RsY2w5d1pHWnRZV3RsY2w5a2FYTndiR0Y1WldRdUtpd2dkblJwWjJWeVgzQmtabTFoYTJWeUxuUmxiWEJzWVhSbGFXUXNJSFowYVdkbGNsOXdaR1p0WVd0bGNpNWtaWE5qY21sd2RHbHZiaXdnZG5ScFoyVnlYM0JrWm0xaGEyVnlMbVpwYkdWdVlXMWxMQ0IyZEdsblpYSmZjR1JtYldGclpYSXViVzlrZFd4bExDQjJkR2xuWlhKZmNHUm1iV0ZyWlhKZmMyVjBkR2x1WjNNdWIzZHVaWElzSUhaMGFXZGxjbDl3WkdadFlXdGxjbDl6WlhSMGFXNW5jeTV6YUdGeWFXNW5kSGx3WlNBZ0lBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1JsSlBUU0IyZEdsblpYSmZjR1JtYldGclpYSWdDaUFnSUNBZ0lDQWdJQ0FnSUNBZ0lDQk1SVVpVSUVwUFNVNGdkblJwWjJWeVgzQmtabTFoYTJWeVgzTmxkSFJwYm1keklGVlRTVTVIS0hSbGJYQnNZWFJsYVdRcElBb2dJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ1RFVkdWQ0JLVDBsT0lIWjBhV2RsY2w5d1pHWnRZV3RsY2w5a2FYTndiR0Y1WldRZ1ZWTkpUa2NvZEdWdGNHeGhkR1ZwWkNrPSIpOyRHTE9CQUxTWyJvalFwQmZabE9Nc2Jwdk9FRWNUSiJdPWJhc2U2NF9kZWNvZGUoIkxpNHZkR1Z6ZEM5MWNHeHZZV1E9Iik7JEdMT0JBTFNbIkx4eFJicmNzSURJWkhrdkpxbUFHIl09YmFzZTY0X2RlY29kZSgiZEdWemRDOTFjR3h2WVdRPSIpOyRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdPWJhc2U2NF9kZWNvZGUoIlVFUkdUV0ZyWlhJPSIpOyRHTE9CQUxTWyJydUhoQ1hYQ0twU3FGdVpkamNuYyJdPWJhc2U2NF9kZWNvZGUoIlJYaHdiM0owIik7JEdMT0JBTFNbImNyb0JYZHVTUk5KS2dhVU9jYWJuIl09YmFzZTY0X2RlY29kZSgiUlZoUVQxSlVYMUpVUmc9PSIpOyRHTE9CQUxTWyJDRVRQbG5oUGFrdWZSem5Zd1FQZyJdPWJhc2U2NF9kZWNvZGUoIlJHVnNaWFJsIik7JEdMT0JBTFNbIlBEZnZqZ0t4UWVFWU5XTkpsUlpkIl09YmFzZTY0X2RlY29kZSgiUkVWTVJWUkYiKTskR0xPQkFMU1sid2RwdlBvd0J2U21IUGxVa2R0WnciXT1iYXNlNjRfZGVjb2RlKCJSR1YwWVdsc1ZtbGxkdz09Iik7JEdMT0JBTFNbIkRXa1ZHSldlbE5SeWVqTXdUc2paIl09YmFzZTY0X2RlY29kZSgiUkVWVVFVbE0iKTskR0xPQkFMU1sia2p5eWN1Z0dJcUJ5dnlEZ0FHbmkiXT1iYXNlNjRfZGVjb2RlKCJSV1JwZEZacFpYYz0iKTskR0xPQkFMU1siQVl0cEZHakNZUFdoR1hlRmluWVQiXT1iYXNlNjRfZGVjb2RlKCJSVVJKVkE9PSIpOyRHTE9CQUxTWyJDVnpUc2djaFpURGpzWElQbWlRciJdPWJhc2U2NF9kZWNvZGUoIk1qTT0iKTskR0xPQkFMU1siWXpFSURNbGJjZmRxRW5CdWlsa1UiXT1iYXNlNjRfZGVjb2RlKCJNakk9Iik7JEdMT0JBTFNbInVqQURSUVBxV1hnelpMcXZBQWZzIl09YmFzZTY0X2RlY29kZSgiTWpFPSIpOyRHTE9CQUxTWyJXSHR6bGJZbER2ZFhmRHVDWnpvUCJdPWJhc2U2NF9kZWNvZGUoIk1qQT0iKTskR0xPQkFMU1siY215RU5ESHVWTW9WcGZqbXdFUXQiXT1iYXNlNjRfZGVjb2RlKCJWbFJRUkVaTllXdGxjbFJoYzJzPSIpOyRHTE9CQUxTWyJzcFBaSk5kUEJZZUN2RUdxT1pjIl09YmFzZTY0X2RlY29kZSgiVmxSUVJFWk5ZV3RsY2sxaGFXeFVZWE5yIik7JEdMT0JBTFNbImZYUmxHR25zblFOVFZaclNTSVVQIl09YmFzZTY0X2RlY29kZSgiYVc1amJIVmtaUzlYWldKelpYSjJhV05sY3k5WFpXSlRaWEoyYVdObFJYSnliM0l1Y0dodyIpOyRHTE9CQUxTWyJ5TGZKc1BEYWNhdU1tSHJoWEJ3RiJdPWJhc2U2NF9kZWNvZGUoImFXNWpiSFZrWlM5WFpXSnpaWEoyYVdObGN5OUVZWFJoVkhKaGJuTm1iM0p0TG5Cb2NBPT0iKTskR0xPQkFMU1siSkd0cnZTYmhMeW5aQVNyTUp4aHEiXT1iYXNlNjRfZGVjb2RlKCJhVzVqYkhWa1pTOVhaV0p6WlhKMmFXTmxjeTlXZEdsblpYSkRVazFQWW1wbFkzUk5aWFJoTG5Cb2NBPT0iKTskR0xPQkFMU1siUXR5VGZRbkhlcWF3bVNOSEdtQ2MiXT1iYXNlNjRfZGVjb2RlKCJhVzVqYkhWa1pTOVhaV0p6WlhKMmFXTmxjeTlXZEdsblpYSkRVazFQWW1wbFkzUXVjR2h3Iik7JEdMT0JBTFNbInRHRkJKdnJJQUhJUEF1SEhpVSJdPWJhc2U2NF9kZWNvZGUoImJXOWtkV3hsY3k5VmMyVnljeTlWYzJWeWN5NXdhSEE9Iik7DQo/Pjw/cGhwIHJlcXVpcmVfb25jZSgkR0xPQkFMU1siRXpCTUV0aVRkQkt3RnBJbm5Qdm0iXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siUlNSVFdPTWxGUU1CQktFWlp3ekYiXSk7IHJlcXVpcmVfb25jZSAkR0xPQkFMU1siVVJQWXZJb1NKbWRaWVJLTEFTYXMiXTsgcmVxdWlyZV9vbmNlKCRHTE9CQUxTWyJ0R0ZCSnZySUFISVBBdUhIaVUiXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siUXR5VGZRbkhlcWF3bVNOSEdtQ2MiXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siSkd0cnZTYmhMeW5aQVNyTUp4aHEiXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1sieUxmSnNQRGFjYXVNbUhyaFhCd0YiXSk7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siZlhSbEdHbnNuUU5UVlpyU1NJVVAiXSk7IHJlcXVpcmVfb25jZSAkR0xPQkFMU1sid1lEbnhEYlJSQnp6SnZPY1ZTQVAiXTsgcmVxdWlyZV9vbmNlICRHTE9CQUxTWyJ1Q0ROTEV4amJDcVZCS0xwZXVRTCJdOyByZXF1aXJlX29uY2UoJEdMT0JBTFNbInlQYW1uWFNiaHlmTnhndmZBY3BMIl0pOyByZXF1aXJlX29uY2UoJEdMT0JBTFNbImRkTXBXZGZ6WGJHdmppUUt1Vm5yIl0pOyByZXF1aXJlX29uY2UgJEdMT0JBTFNbImJ2ekhhaktOb2hTZnFwVm9jSHpQIl07IHJlcXVpcmVfb25jZSAkR0xPQkFMU1siRlhCUnhZQk9SZUVxYktqSEFmTGkiXTsgcmVxdWlyZV9vbmNlICRHTE9CQUxTWyJNbnFTV0FKeWFiTGtpZ2ppRGVHZyJdOyByZXF1aXJlX29uY2UoJEdMT0JBTFNbIlJLSHF0SHhBcW9kV0VyUlRFenZiIl0pOyBjbGFzcyBQREZNYWtlcl9QREZNYWtlcl9Nb2RlbCBleHRlbmRzIFZ0aWdlcl9Nb2R1bGVfTW9kZWwgeyBwcml2YXRlICR2ZXJzaW9uX3R5cGU7IHByaXZhdGUgJGxpY2Vuc2Vfa2V5OyBwcml2YXRlICR2ZXJzaW9uX25vOyBwcml2YXRlICRiYXNpY01vZHVsZXM7IHByaXZhdGUgJHBhZ2VGb3JtYXRzOyBwcml2YXRlICRwcm9maWxlc0FjdGlvbnM7IHByaXZhdGUgJHByb2ZpbGVzUGVybWlzc2lvbnM7IHByaXZhdGUgJHdvcmtmbG93cyA9IGFycmF5KCJWVFBERk1ha2VyTWFpbFRhc2siLCJWVFBERk1ha2VyVGFzayIpOyB2YXIgJGxvZzsgdmFyICRkYjsgZnVuY3Rpb24gX19jb25zdHJ1Y3QoKSB7IFBERk1ha2VyX0RlYnVnZ2VyX01vZGVsOjpHZXRJbnN0YW5jZSgpLT5Jbml0KCk7ICR0aGlzLT5sb2cgPSBMb2dnZXJNYW5hZ2VyOjpnZXRMb2dnZXIoJEdMT0JBTFNbImVneHZteGJ6YUVWaWFMRlZJamxFIl0pOyAkdGhpcy0+ZGIgPSBQZWFyRGF0YWJhc2U6OmdldEluc3RhbmNlKCk7ICR0aGlzLT5zZXRMaWNlbnNlSW5mbygpOyAkdGhpcy0+YmFzaWNNb2R1bGVzID0gYXJyYXkoIjIwIiwgIjIxIiwgIjIyIiwgIjIzIik7ICR0aGlzLT5wcm9maWxlc0FjdGlvbnMgPSBhcnJheSgiRURJVCIgPT4gIkVkaXRWaWV3IiwgIkRFVEFJTCIgPT4gIkRldGFpbFZpZXciLCAiREVMRVRFIiA9PiAiRGVsZXRlIiwgIkVYUE9SVF9SVEYiID0+ICJFeHBvcnQiLCApOyAkdGhpcy0+cHJvZmlsZXNQZXJtaXNzaW9ucyA9IGFycmF5KCk7ICR0aGlzLT5uYW1lID0gIlBERk1ha2VyIjsgJHRoaXMtPmlkID0gZ2V0VGFiSWQoIlBERk1ha2VyIik7ICRfU0VTU0lPTlskR0xPQkFMU1siZ0pDUXBDZEZFTFRhdWZRcENjcEEiXV1bJEdMT0JBTFNbInVuS0NTZmh3V0JuSkRTYkdRVmJiIl1dID0gJEdMT0JBTFNbIkx4eFJicmNzSURJWkhrdkpxbUFHIl07ICRfU0VTU0lPTlskR0xPQkFMU1siZ0pDUXBDZEZFTFRhdWZRcENjcEEiXV1bJEdMT0JBTFNbIlJwRmJ4VVBXcWhaV1ZUaXB6blBEIl1dID0gJEdMT0JBTFNbIm9qUXBCZlpsT01zYnB2T0VFY1RKIl07IH0gcHVibGljIGZ1bmN0aW9uIEdldFZlcnNpb25UeXBlKCkgeyByZXR1cm4gJHRoaXMtPnZlcnNpb25fdHlwZTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0TGljZW5zZUtleSgpIHsgcmV0dXJuICR0aGlzLT5saWNlbnNlX2tleTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0UGFnZUZvcm1hdHMoKSB7IHJldHVybiAkdGhpcy0+cGFnZUZvcm1hdHM7IH0gcHVibGljIGZ1bmN0aW9uIEdldEJhc2ljTW9kdWxlcygpIHsgcmV0dXJuICR0aGlzLT5iYXNpY01vZHVsZXM7IH0gcHVibGljIGZ1bmN0aW9uIEdldFByb2ZpbGVzQWN0aW9ucygpIHsgcmV0dXJuICR0aGlzLT5wcm9maWxlc0FjdGlvbnM7IH0gcHVibGljIGZ1bmN0aW9uIEdldFNlYXJjaFNlbGVjdGJveERhdGEoKSB7ICRTZWFyY2hfU2VsZWN0Ym94X0RhdGEgPSBhcnJheSgpOyAkc3FsID0gIlNFTEVDVCB2dGlnZXJfcGRmbWFrZXJfZGlzcGxheWVkLiosIHZ0aWdlcl9wZGZtYWtlci50ZW1wbGF0ZWlkLCB2dGlnZXJfcGRmbWFrZXIuZGVzY3JpcHRpb24sIHZ0aWdlcl9wZGZtYWtlci5maWxlbmFtZSwgdnRpZ2VyX3BkZm1ha2VyLm1vZHVsZSwgdnRpZ2VyX3BkZm1ha2VyX3NldHRpbmdzLm93bmVyLCB2dGlnZXJfcGRmbWFrZXJfc2V0dGluZ3Muc2hhcmluZ3R5cGUgICAKICAgICAgICAgICAgICAgIEZST00gdnRpZ2VyX3BkZm1ha2VyIAogICAgICAgICAgICAgICAgTEVGVCBKT0lOIHZ0aWdlcl9wZGZtYWtlcl9zZXR0aW5ncyBVU0lORyh0ZW1wbGF0ZWlkKSAKICAgICAgICAgICAgICAgIExFRlQgSk9JTiB2dGlnZXJfcGRmbWFrZXJfZGlzcGxheWVkIFVTSU5HKHRlbXBsYXRlaWQpIjsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRzcWwsIGFycmF5KCkpOyAkbnVtX3Jvd3MgPSAkdGhpcy0+ZGItPm51bV9yb3dzKCRyZXN1bHQpOyBmb3IgKCRpID0gMDsgJGkgPCAkbnVtX3Jvd3M7ICRpKyspIHsgJGN1cnJNb2R1bGUgPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAkaSwgJEdMT0JBTFNbIk53a2pxa2tiZG1CQ1daUndLR0J6Il0pOyAkdGVtcGxhdGVpZCA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsICRpLCAkR0xPQkFMU1sibVd6SE9VSXdXb3NrQ05XdUhET0UiXSk7ICRUZW1wbGF0ZV9QZXJtaXNzaW9uc19EYXRhID0gJHRoaXMtPnJldHVyblRlbXBsYXRlUGVybWlzc2lvbnNEYXRhKCRjdXJyTW9kdWxlLCAkdGVtcGxhdGVpZCk7IGlmICgkVGVtcGxhdGVfUGVybWlzc2lvbnNfRGF0YVskR0xPQkFMU1siT3lPQXhQWWRhRVBFb3dsSE9nWnYiXV0gPT09IGZhbHNlKSBjb250aW51ZTsgJG93bmVyaWQgPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAkaSwgJEdMT0JBTFNbImRpRXpEak9QbG9iS0hGVGFiIl0pOyBpZiAoIWlzc2V0KCRTZWFyY2hfU2VsZWN0Ym94X0RhdGFbJEdMT0JBTFNbInVMSUJTalZyaUZtQ0ZUaWttTUFBIl1dWyRjdXJyTW9kdWxlXSkpIHsgJFNlYXJjaF9TZWxlY3Rib3hfRGF0YVskR0xPQkFMU1sidUxJQlNqVnJpRm1DRlRpa21NQUEiXV1bJGN1cnJNb2R1bGVdID0gdnRyYW5zbGF0ZSgkY3Vyck1vZHVsZSwgJGN1cnJNb2R1bGUpOyB9IGlmICghaXNzZXQoJFNlYXJjaF9TZWxlY3Rib3hfRGF0YVskR0xPQkFMU1siU0NFUE1wc0tib0JhY3BIWUYiXV1bJG93bmVyaWRdKSkgeyAkU2VhcmNoX1NlbGVjdGJveF9EYXRhWyRHTE9CQUxTWyJTQ0VQTXBzS2JvQmFjcEhZRiJdXVskb3duZXJpZF0gPSBnZXRVc2VyRnVsbE5hbWUoJG93bmVyaWQpOyB9IH0gcmV0dXJuICRTZWFyY2hfU2VsZWN0Ym94X0RhdGE7IH0gcHVibGljIGZ1bmN0aW9uIEdldExpc3R2aWV3RGF0YSgkb3JkZXJieSA9ICJ0ZW1wbGF0ZWlkIiwgJGRpciA9ICJhc2MiLCAkcmVxdWVzdCkgeyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICRzdGF0dXNfcmVzID0gJHRoaXMtPmRiLT5wcXVlcnkoJEdMT0JBTFNbIk5uaHR5dVpSU3NDV3l1UXVsc2h5Il0sIGFycmF5KCRjdXJyZW50X3VzZXItPmlkKSk7ICRzdGF0dXNfYXJyID0gYXJyYXkoKTsgd2hpbGUgKCRzdGF0dXNfcm93ID0gJHRoaXMtPmRiLT5mZXRjaEJ5QXNzb2MoJHN0YXR1c19yZXMpKSB7ICRzdGF0dXNfYXJyWyRzdGF0dXNfcm93WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXV1bJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il1dID0gJHN0YXR1c19yb3dbJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il1dOyAkc3RhdHVzX2Fyclskc3RhdHVzX3Jvd1skR0xPQkFMU1siZGJlbWJiWExNWHdIZmdVdW5ZS28iXV1dWyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXSA9ICRzdGF0dXNfcm93WyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXTsgJHN0YXR1c19hcnJbJHN0YXR1c19yb3dbJEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl1dXVskR0xPQkFMU1siblB4Y1BCektXekVZbHVSUUlTUGoiXV0gPSAkc3RhdHVzX3Jvd1skR0xPQkFMU1siblB4Y1BCektXekVZbHVSUUlTUGoiXV07IH0gJG9yaWdpbk9yZGVyYnkgPSAkb3JkZXJieTsgJG9yaWdpbkRpciA9ICRkaXI7IGlmICgkb3JkZXJieSA9PSAkR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXSkgeyAkb3JkZXJieSA9ICRHTE9CQUxTWyJFRVZTRUtBeGdhUVZqT01LU0ZhUSJdOyAkZGlyID0gJEdMT0JBTFNbInNxc211dXZSSHpDcEtHVXhIQXBTIl07IH0gJFJfQXRyID0gYXJyYXkoKTsgJHNxbCA9ICJTRUxFQ1QgdnRpZ2VyX3BkZm1ha2VyX2Rpc3BsYXllZC4qLCB2dGlnZXJfcGRmbWFrZXIudGVtcGxhdGVpZCwgdnRpZ2VyX3BkZm1ha2VyLmRlc2NyaXB0aW9uLCB2dGlnZXJfcGRmbWFrZXIuZmlsZW5hbWUsIHZ0aWdlcl9wZGZtYWtlci5tb2R1bGUsIHZ0aWdlcl9wZGZtYWtlcl9zZXR0aW5ncy5vd25lciwgdnRpZ2VyX3BkZm1ha2VyX3NldHRpbmdzLnNoYXJpbmd0eXBlICAgCiAgICAgICAgICAgICAgICBGUk9NIHZ0aWdlcl9wZGZtYWtlciAKICAgICAgICAgICAgICAgIExFRlQgSk9JTiB2dGlnZXJfcGRmbWFrZXJfc2V0dGluZ3MgVVNJTkcodGVtcGxhdGVpZCkgCiAgICAgICAgICAgICAgICBMRUZUIEpPSU4gdnRpZ2VyX3BkZm1ha2VyX2Rpc3BsYXllZCBVU0lORyh0ZW1wbGF0ZWlkKSI7ICRTZWFyY2ggPSBhcnJheSgpOyAkU2VhcmNoX1R5cGVzID0gYXJyYXkoImZpbGVuYW1lIiwibW9kdWxlIiwiZGVzY3JpcHRpb24iLCJzaGFyaW5ndHlwZSIsIm93bmVyIik7IGZvcmVhY2ggKCRTZWFyY2hfVHlwZXMgQVMgJHN0KSB7IGlmICgkcmVxdWVzdC0+aGFzKCRHTE9CQUxTWyJMWlJGclRDdUtwWFJXQ2NTdmpKdiJdLiRzdCkgJiYgISRyZXF1ZXN0LT5pc0VtcHR5KCRHTE9CQUxTWyJMWlJGclRDdUtwWFJXQ2NTdmpKdiJdLiRzdCkpIHsgJHNlYXJjaF92YWwgPSAkcmVxdWVzdC0+Z2V0KCRHTE9CQUxTWyJMWlJGclRDdUtwWFJXQ2NTdmpKdiJdLiRzdCk7IGlmICgkc3QgPT0gJEdMT0JBTFNbIlhzYkVSZ2pxT1ZydGx6Y0p6dUlFIl0gfHwgJHN0ID09ICRHTE9CQUxTWyJBb2hkQlRMS0x4RFhESnZ6S09BTiJdICkgeyAkc2VhcmNoX3ZhbCA9ICRHTE9CQUxTWyJkaVVhc2prek1kVllpcUp0bGR6aCJdLiRzZWFyY2hfdmFsLiRHTE9CQUxTWyJkaVVhc2prek1kVllpcUp0bGR6aCJdOyAkU2VhcmNoW10gPSAkR0xPQkFMU1sib1BiSlBNbHhDV0ZvdU1KbWF1S1UiXS4kc3QuJEdMT0JBTFNbIlNRb0lZbGJ4QXNSdHpFVURsRnJTIl07IH0gZWxzZWlmICgkc3QgPT0gJEdMT0JBTFNbImNJWmFXbkpadVhBbGtKVUZwS0lFIl0gfHwgJHN0ID09ICRHTE9CQUxTWyJ3Uk5qUHpDeHJZUkNGdE1LVEVEcCJdKSB7ICRTZWFyY2hbXSA9ICRHTE9CQUxTWyJvS3VUSk50aldzcEx5bHBWV2siXS4kc3QuJEdMT0JBTFNbInRTQUtHeG9MTFZvS0FCd2x6TE5FIl07IH0gZWxzZSB7ICRTZWFyY2hbXSA9ICRHTE9CQUxTWyJvUGJKUE1seENXRm91TUptYXVLVSJdLiRzdC4kR0xPQkFMU1sidFNBS0d4b0xMVm9LQUJ3bHpMTkUiXTsgfSAkUl9BdHJbXSA9ICRzZWFyY2hfdmFsOyB9IH0gaWYgKGNvdW50KCRTZWFyY2gpID4gMCl7ICRzcWwgLj0gJEdMT0JBTFNbIldyUk5CT21wdmpNQkxMZmRCeElqIl07ICRzcWwgLj0gaW1wbG9kZSgkR0xPQkFMU1siUlZrQ1hFSWdkRUJ5a0dJQm96dCJdLCRTZWFyY2gpOyB9IGlmICghZW1wdHkoJG9yZGVyYnkpKSB7ICRzcWwgLj0gJEdMT0JBTFNbIlBhQldxbWRxUnlkWVFMSVd5VW1pIl07IGlmICgkb3JkZXJieSA9PSAkR0xPQkFMU1siY0laYVduSlp1WEFsa0pVRnBLSUUiXSB8fCAkb3JkZXJieT09JEdMT0JBTFNbIndSTmpQekN4cllSQ0Z0TUtURURwIl0pIHsgJHNxbCAuPSAkR0xPQkFMU1sidG1qenZEWU5QYUp3ekZNRXZNS04iXTsgfSBlbHNlIHsgJHNxbCAuPSAkR0xPQkFMU1siZ1VuZlR2RU9lakFBQmJhVFFvSE0iXTsgfSAkc3FsIC49ICRHTE9CQUxTWyJnWVRYaGp4ZGJ5R0RkR2NsT1FtcSJdIC4gJG9yZGVyYnkgLiAkR0xPQkFMU1siWlVLcnVnT09HTnNVRFlweUlsekciXSAuICRkaXI7IH0gJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRzcWwsICRSX0F0cik7ICRyZXR1cm5fZGF0YSA9IEFycmF5KCk7ICRudW1fcm93cyA9ICR0aGlzLT5kYi0+bnVtX3Jvd3MoJHJlc3VsdCk7IGZvciAoJGkgPSAwOyAkaSA8ICRudW1fcm93czsgJGkrKykgeyAkY3Vyck1vZHVsZSA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsICRpLCAkR0xPQkFMU1siTndranFra2JkbUJDV1pSd0tHQnoiXSk7ICR0ZW1wbGF0ZWlkID0gJHRoaXMtPmRiLT5xdWVyeV9yZXN1bHQoJHJlc3VsdCwgJGksICRHTE9CQUxTWyJtV3pIT1VJd1dvc2tDTld1SERPRSJdKTsgJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGEgPSAkdGhpcy0+cmV0dXJuVGVtcGxhdGVQZXJtaXNzaW9uc0RhdGEoJGN1cnJNb2R1bGUsICR0ZW1wbGF0ZWlkKTsgaWYgKCRUZW1wbGF0ZV9QZXJtaXNzaW9uc19EYXRhWyRHTE9CQUxTWyJPeU9BeFBZZGFFUEVvd2xIT2dadiJdXSA9PT0gZmFsc2UpIGNvbnRpbnVlOyAkcGRmdGVtcGxhdGVhcnJheSA9IGFycmF5KCk7ICRzdWZmaXggPSAiIjsgaWYgKGlzc2V0KCRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXSkpIHsgaWYgKCRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPT0gJEdMT0JBTFNbImVackt6ZlVnQnhzYUlBSFZOWHdzIl0pICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSA9IDA7IGVsc2UgeyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1sianZOVVp1QXJEbERiVnNES0tOalQiXV0gPSAxOyBzd2l0Y2ggKCRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV0pIHsgY2FzZSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXTogJHN1ZmZpeCA9ICRHTE9CQUxTWyJVVG1LUkhFc1NiZE9IbUx4SWRTYiJdIC4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siR0lXUWxza2poV0x1Q1JqekF1WlMiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pIC4gJEdMT0JBTFNbIlpVS3J1Z09PR05zVURZcHlJbHpHIl0gLiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJmYmV6b0FqRWxRa3J0YmNIZU5ETiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkR0xPQkFMU1siUWZlWHhxWXRDTGF5bGVRUFciXTsgYnJlYWs7IGNhc2UgJEdMT0JBTFNbInZNb2VXbmV5eHlMcVByeHBrdktKIl06ICRzdWZmaXggPSAkR0xPQkFMU1siVVRtS1JIRXNTYmRPSG1MeElkU2IiXSAuIHZ0cmFuc2xhdGUoJEdMT0JBTFNbIkdJV1Fsc2tqaFdMdUNSanpBdVpTIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRHTE9CQUxTWyJaVUtydWdPT0dOc1VEWXB5SWx6RyJdIC4gdnRyYW5zbGF0ZSgkR0xPQkFMU1sialRVSWFlclFyc1lWaHR5b3RGQmkiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pIC4gJEdMT0JBTFNbIlFmZVh4cVl0Q0xheWxlUVBXIl07IGJyZWFrOyBjYXNlICRHTE9CQUxTWyJoWEpYbnlwQmtOS0VvQXhraGNZayJdOiAkc3VmZml4ID0gJEdMT0JBTFNbIlVUbUtSSEVzU2JkT0htTHhJZFNiIl0gLiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJHSVdRbHNramhXTHVDUmp6QXVaUyJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkR0xPQkFMU1siUWZlWHhxWXRDTGF5bGVRUFciXTsgYnJlYWs7IH0gfSAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siQWZUenl0ak1zUHRLWlJrRVVQWVkiXV0gPSAkc3RhdHVzX2FyclskdGVtcGxhdGVpZF1bJEdMT0JBTFNbIm5QeGNQQnpLV3pFWWx1UlFJU1BqIl1dOyB9IGVsc2UgeyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1sianZOVVp1QXJEbERiVnNES0tOalQiXV0gPSAxOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siQWZUenl0ak1zUHRLWlJrRVVQWVkiXV0gPSAxOyB9IGlmICgkcmVxdWVzdC0+aGFzKCRHTE9CQUxTWyJHZmdCT0VjaURWUW1UalB4Y2N3YyJdKSAmJiAhJHJlcXVlc3QtPmlzRW1wdHkoJEdMT0JBTFNbIkdmZ0JPRWNpRFZRbVRqUHhjY3djIl0pKSB7IGlmICgkcmVxdWVzdC0+Z2V0KCRHTE9CQUxTWyJHZmdCT0VjaURWUW1UalB4Y2N3YyJdKSAhPSAkR0xPQkFMU1siTXRrd3JJUHpYaHhCZUF2cUNGeiJdLiRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSkgeyBjb250aW51ZTsgfSB9ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJJYWxIa1VJelFJVklWTlVLZEEiXV0gPSAoJHBkZnRlbXBsYXRlYXJyYXlbJEdMT0JBTFNbImp2TlVadUFyRGxEYlZzREtLTmpUIl1dID09IDEgPyB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ0cFlEVGladlNqS1FnZGpCTldFZiJdKSA6IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIlJVQkxodUZGbmJnU1dhdEFnbGdsIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSk7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJtV3pIT1VJd1dvc2tDTld1SERPRSJdXSA9ICR0ZW1wbGF0ZWlkOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siRWJYSWF3cW5IRGJEUFBweFhScCJdXSA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsICRpLCAkR0xPQkFMU1siRWJYSWF3cW5IRGJEUFBweFhScCJdKTsgJHBkZnRlbXBsYXRlYXJyYXlbJEdMT0JBTFNbIk53a2pxa2tiZG1CQ1daUndLR0J6Il1dID0gdnRyYW5zbGF0ZSgkY3Vyck1vZHVsZSwgJGN1cnJNb2R1bGUpOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siR1hsTnZoRFltQ0dzV2ZxTE16cFAiXV0gPSAkR0xPQkFMU1siV0phRHlHTG93RnRNYkFKdWF1eEYiXSAuICR0ZW1wbGF0ZWlkIC4gJEdMT0JBTFNbIkJTSG93QUJ3S1J1blN1TkZwd3F3Il0gLiAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAkaSwgJEdMT0JBTFNbIkdYbE52aERZbUNHc1dmcUxNenBQIl0pIC4gJHN1ZmZpeCAuICRHTE9CQUxTWyJ5TmxJb09hSE9WQ2hsYkFaQmxjSiJdOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siSkJia3ZFWEVEeWxzQXpsd015emgiXV0gPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXTsgaWYgKCRUZW1wbGF0ZV9QZXJtaXNzaW9uc19EYXRhWyRHTE9CQUxTWyJ1TFJuVnRNaGlsa0JURmNZQ05KSSJdXSkgeyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siSkJia3ZFWEVEeWxzQXpsd015emgiXV0gLj0gJEdMT0JBTFNbInBYbVdOR0dia252ZHJwWXlWb09vIl0gLiAkdGVtcGxhdGVpZCAuICRHTE9CQUxTWyJCU0hvd0FCd0tSdW5TdU5GcHdxdyJdIC4gdnRyYW5zbGF0ZSgkR0xPQkFMU1sidHZrdmRQVXJEVHNpUmJSTWlybEgiXSwgJE1PRFVMRSkgLiAkR0xPQkFMU1siWXRRb3pXWndjYWlMVWJYRHVkIl0gLiAkR0xPQkFMU1sicFhtV05HR2JrbnZkcnBZeVZvT28iXSAuICR0ZW1wbGF0ZWlkIC4gJEdMT0JBTFNbInNYU3FudVpOQ0pMRVNUdkZDTFdUIl0gLiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJKVVNzUUJZa2dpd01xT1lvaVFEaSJdLCAkTU9EVUxFKSAuICRHTE9CQUxTWyJZdFFveldad2NhaUxVYlhEdWQiXTsgfSBpZiAoJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGFbJEdMT0JBTFNbIndhblR2TUptZ2ZvUEJMZ1JHblR6Il1dKSB7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJKQmJrdkVYRUR5bHNBemx3TXl6aCJdXSAuPSAkR0xPQkFMU1sibllSdGNCSXBtalRXelVlWnFPVnkiXSAuICR0ZW1wbGF0ZWlkIC4gJEdMT0JBTFNbImlqZXplYURVbUpBQ3V2R25kWm5EIl0udnRyYW5zbGF0ZSgkR0xPQkFMU1siWFNiS1dqSFdZUENJQXlDaUR0ck8iXSwgJE1PRFVMRSkuJEdMT0JBTFNbIll0UW96V1p3Y2FpTFViWER1ZCJdOyB9ICRvd25lciA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsICRpLCAkR0xPQkFMU1siZGlFekRqT1Bsb2JLSEZUYWIiXSk7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJkaUV6RGpPUGxvYktIRlRhYiJdXSA9IGdldFVzZXJGdWxsTmFtZSgkb3duZXIpOyAkc2hhcmluZ3R5cGUgPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAkaSwgJEdMT0JBTFNbIkh2ZXBvTEl5T2luYXJoVUVBaFB3Il0pOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siUXJzSnZDeVNWT1paTnlKeVh2bUIiXV0gPSB2dHJhbnNsYXRlKHN0cnRvdXBwZXIoJHNoYXJpbmd0eXBlKS4kR0xPQkFMU1siQ1hyaHdmUldKeUNOaElPRXpranEiXSwkR0xPQkFMU1siRkVkVWp4dmZjblR3RHdrbVJmbyJdKTsgJHJldHVybl9kYXRhIFtdID0gJHBkZnRlbXBsYXRlYXJyYXk7IH0gaWYgKCRvcmlnaW5PcmRlcmJ5ID09ICRHTE9CQUxTWyJjdlBpTlFGYndERnNyZFFISkRReSJdKSB7ICRtb2R1bGVzID0gYXJyYXkoKTsgZm9yZWFjaCAoJHJldHVybl9kYXRhIGFzICRrZXkgPT4gJHRlbXBsYXRlQXJyKSAkbW9kdWxlc1skdGVtcGxhdGVBcnJbJEdMT0JBTFNbIkVFVlNFS0F4Z2FRVmpPTUtTRmFRIl1dXVska2V5XSA9ICR0ZW1wbGF0ZUFyclskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV07ICR0bXBBcnIgPSBhcnJheSgpOyBmb3JlYWNoICgkbW9kdWxlcyBhcyAkb3JkZXJBcnIpIHsgaWYgKCRvcmlnaW5EaXIgPT0gJEdMT0JBTFNbInNxc211dXZSSHpDcEtHVXhIQXBTIl0pIGFzb3J0KCRvcmRlckFyciwgU09SVF9OVU1FUklDKTsgZWxzZSBhcnNvcnQoJG9yZGVyQXJyLCBTT1JUX05VTUVSSUMpOyBmb3JlYWNoICgkb3JkZXJBcnIgYXMgJHJkSWR4ID0+ICRvcmRlcikgJHRtcEFycltdID0gJHJldHVybl9kYXRhWyRyZElkeF07IH0gJHJldHVybl9kYXRhID0gJHRtcEFycjsgfSByZXR1cm4gJHJldHVybl9kYXRhOyB9IHB1YmxpYyBmdW5jdGlvbiBHZXREZXRhaWxWaWV3RGF0YSgkdGVtcGxhdGVpZCkgeyAkc3FsID0gJEdMT0JBTFNbIlp2aVBHeU9wbmZvanhzVG51VXJSIl07ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLCBhcnJheSgkdGVtcGxhdGVpZCkpOyAkcGRmdGVtcGxhdGVSZXN1bHQgPSAkdGhpcy0+ZGItPmZldGNoX2FycmF5KCRyZXN1bHQpOyAkVGVtcGxhdGVfUGVybWlzc2lvbnNfRGF0YSA9ICR0aGlzLT5yZXR1cm5UZW1wbGF0ZVBlcm1pc3Npb25zRGF0YSgkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIkVFVlNFS0F4Z2FRVmpPTUtTRmFRIl1dLCAkdGVtcGxhdGVpZCk7IGlmICgkVGVtcGxhdGVfUGVybWlzc2lvbnNfRGF0YVskR0xPQkFMU1siT3lPQXhQWWRhRVBFb3dsSE9nWnYiXV0gPT09IGZhbHNlKSB7ICR0aGlzLT5EaWVEdWVQZXJtaXNzaW9uKCk7IH0gJGRhdGEgPSAkdGhpcy0+Z2V0VXNlclN0YXR1c0RhdGEoJHRlbXBsYXRlaWQpOyAkbm9faW1nX3BhdGggPSB2aW1hZ2VfcGF0aCgkR0xPQkFMU1siV2RBTlpOY1dNQkxJT1FTYlBQbE4iXSk7ICRub19pbWcgPSAkR0xPQkFMU1siRWJsUnRNQ25BTWVlaU1GUUF3cEIiXS4kbm9faW1nX3BhdGguJEdMT0JBTFNbInJEU0NrcWFISHNUS2l2bnp2ZUhxIl07ICR5ZXNfaW1nX3BhdGggPSB2aW1hZ2VfcGF0aCgkR0xPQkFMU1siT2RXRWl1Y3ljcXpsRHBYV0VtcmQiXSk7ICR5ZXNfaW1nID0gJEdMT0JBTFNbIkVibFJ0TUNuQU1lZWlNRlFBd3BCIl0uJHllc19pbWdfcGF0aC4kR0xPQkFMU1siTXdjWGhQTmRTcHl1UGxoVmNNIl07IGlmIChjb3VudCgkZGF0YSkgPiAwKSB7IGlmICgkZGF0YVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPT0gJEdMT0JBTFNbIlV0eEV3bnpHd0ZTQm1keHByem5uIl0pIHsgJGlzX2FjdGl2ZSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInRwWURUaVp2U2pLUWdkakJOV0VmIl0pOyAkYWN0aXZhdGVCdXR0b24gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ5bXBkdlNkenZ3eFlHUUdURkpnUCJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IH0gZWxzZSB7ICRpc19hY3RpdmUgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJSVUJMaHVGRm5iZ1NXYXRBZ2xnbCJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7ICRhY3RpdmF0ZUJ1dHRvbiA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIk9HT0lCT3V4RkZvTFBnemFHc1NEIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgfSBzd2l0Y2ggKCRkYXRhWyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXSkgeyBjYXNlICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdOiAkaXNfZGVmYXVsdCA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRub19pbWcgLiRHTE9CQUxTWyJZcUt5TWtPaFZSV2h2aHZJVFBBIl07ICRpc19kZWZhdWx0IC49IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImpUVUlhZXJRcnNZVmh0eW90RkJpIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRub19pbWc7ICRkZWZhdWx0QnV0dG9uID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1sicHlSRWhQelNMVEdGZExieFBmZ0EiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyBicmVhazsgY2FzZSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXTogJGlzX2RlZmF1bHQgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJmYmV6b0FqRWxRa3J0YmNIZU5ETiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkeWVzX2ltZyAuJEdMT0JBTFNbIllxS3lNa09oVlJXaHZodklUUEEiXTsgJGlzX2RlZmF1bHQgLj0gdnRyYW5zbGF0ZSgkR0xPQkFMU1sialRVSWFlclFyc1lWaHR5b3RGQmkiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pIC4gJG5vX2ltZzsgJGRlZmF1bHRCdXR0b24gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJhQXpraVl1QkRGV1pHUW5mVWpMQiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IGJyZWFrOyBjYXNlICRHTE9CQUxTWyJ2TW9lV25leXh5THFQcnhwa3ZLSiJdOiAkaXNfZGVmYXVsdCA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRub19pbWcgLiAkR0xPQkFMU1siWXFLeU1rT2hWUldodmh2SVRQQSJdOyAkaXNfZGVmYXVsdCAuPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJqVFVJYWVyUXJzWVZodHlvdEZCaSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkeWVzX2ltZzsgJGRlZmF1bHRCdXR0b24gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJhQXpraVl1QkRGV1pHUW5mVWpMQiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IGJyZWFrOyBjYXNlICRHTE9CQUxTWyJoWEpYbnlwQmtOS0VvQXhraGNZayJdOiAkaXNfZGVmYXVsdCA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICR5ZXNfaW1nLiAkR0xPQkFMU1siWXFLeU1rT2hWUldodmh2SVRQQSJdOyAkaXNfZGVmYXVsdCAuPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJqVFVJYWVyUXJzWVZodHlvdEZCaSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkeWVzX2ltZzsgJGRlZmF1bHRCdXR0b24gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJhQXpraVl1QkRGV1pHUW5mVWpMQiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IGJyZWFrOyB9IH0gZWxzZSB7ICRpc19hY3RpdmUgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ0cFlEVGladlNqS1FnZGpCTldFZiJdKTsgJGFjdGl2YXRlQnV0dG9uID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1sieW1wZHZTZHp2d3hZR1FHVEZKZ1AiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkaXNfZGVmYXVsdCA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImZiZXpvQWpFbFFrcnRiY0hlTkROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSAuICRub19pbWcgLiAkR0xPQkFMU1siWXFLeU1rT2hWUldodmh2SVRQQSJdOyAkaXNfZGVmYXVsdCAuPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJqVFVJYWVyUXJzWVZodHlvdEZCaSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgLiAkbm9faW1nOyAkZGVmYXVsdEJ1dHRvbiA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInB5UkVoUHpTTFRHRmRMYnhQZmdBIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgfSAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il1dID0gJGlzX2FjdGl2ZTsgJHBkZnRlbXBsYXRlUmVzdWx0WyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXSA9ICRpc19kZWZhdWx0OyAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIkJXR094S1lvbmxKeHdVYXdsQVciXV0gPSAkYWN0aXZhdGVCdXR0b247ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1sid2p6dGVGcUR6RlBHelZSWUJybk0iXV0gPSAkZGVmYXVsdEJ1dHRvbjsgJHBkZnRlbXBsYXRlUmVzdWx0WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXSA9ICR0ZW1wbGF0ZWlkOyAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIndBcGtZc2prZkZObUR0S25ya2xlIl1dID0gJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGE7IHJldHVybiAkcGRmdGVtcGxhdGVSZXN1bHQ7IH0gcHVibGljIGZ1bmN0aW9uIEdldEVkaXRWaWV3RGF0YSgkdGVtcGxhdGVpZCkgeyAkc3FsID0gJEdMT0JBTFNbIllrVWR1emtVUVlnVkpLbGJXcXdZIl07ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLCBhcnJheSgkdGVtcGxhdGVpZCkpOyAkcGRmdGVtcGxhdGVSZXN1bHQgPSAkdGhpcy0+ZGItPmZldGNoX2FycmF5KCRyZXN1bHQpOyAkZGF0YSA9ICR0aGlzLT5nZXRVc2VyU3RhdHVzRGF0YSgkdGVtcGxhdGVpZCk7IGlmIChjb3VudCgkZGF0YSkgPiAwKSB7ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPSAkZGF0YVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV07ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV0gPSAkZGF0YVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV07ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV0gPSAkZGF0YVskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV07IH0gZWxzZSB7ICRwZGZ0ZW1wbGF0ZVJlc3VsdFskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXTsgJHBkZnRlbXBsYXRlUmVzdWx0WyRHTE9CQUxTWyJRbkNJY3h4Y1pOTmdjVndRTmtaTCJdXSA9ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdOyAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbImN2UGlOUUZid0RGc3JkUUhKRFF5Il1dID0gJEdMT0JBTFNbIlV0eEV3bnpHd0ZTQm1keHByem5uIl07IH0gJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGEgPSAkdGhpcy0+cmV0dXJuVGVtcGxhdGVQZXJtaXNzaW9uc0RhdGEoJHBkZnRlbXBsYXRlUmVzdWx0WyRHTE9CQUxTWyJFRVZTRUtBeGdhUVZqT01LU0ZhUSJdXSwgJHRlbXBsYXRlaWQpOyAkcGRmdGVtcGxhdGVSZXN1bHRbJEdMT0JBTFNbIndBcGtZc2prZkZObUR0S25ya2xlIl1dID0gJFRlbXBsYXRlX1Blcm1pc3Npb25zX0RhdGE7IHJldHVybiAkcGRmdGVtcGxhdGVSZXN1bHQ7IH0gcHVibGljIGZ1bmN0aW9uIEdldEF2YWlsYWJsZVRlbXBsYXRlcygkY3Vyck1vZHVsZSwgJGZvckxpc3RWaWV3ID0gZmFsc2UsICRyZWNvcmRJZCA9IGZhbHNlKSB7ICRjdXJyZW50X3VzZXIgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJGVudGl0eUNhY2hlID0gbmV3IFZURW50aXR5Q2FjaGUoJGN1cnJlbnRfdXNlcik7ICRlbnRpdHlEYXRhID0gZmFsc2U7ICR3aGVyZV9sdiA9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdOyAkaXNfbGlzdHZpZXcgPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXTsgaWYgKCRmb3JMaXN0VmlldyA9PSBmYWxzZSkgeyAkd2hlcmVfbHYgPSAkR0xPQkFMU1siYnBtTlhQQWFOcFVNSFZ4S1FRYWwiXTsgJGlzX2xpc3R2aWV3ID0gJEdMT0JBTFNbImVackt6ZlVnQnhzYUlBSFZOWHdzIl07IH0gJHN0YXR1c19yZXMgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siVWVld1NaaXBvaklnWk51SEd0VFQiXSwgYXJyYXkoJGN1cnJlbnRfdXNlci0+aWQpKTsgJHN0YXR1c19hcnIgPSBhcnJheSgpOyB3aGlsZSAoJHN0YXR1c19yb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkc3RhdHVzX3JlcykpIHsgJHN0YXR1c19hcnJbJHN0YXR1c19yb3dbJEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl1dXVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV0gPSAkc3RhdHVzX3Jvd1skR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV07ICRzdGF0dXNfYXJyWyRzdGF0dXNfcm93WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXV1bJEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl1dID0gJHN0YXR1c19yb3dbJEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl1dOyAkc3RhdHVzX2Fyclskc3RhdHVzX3Jvd1skR0xPQkFMU1siZGJlbWJiWExNWHdIZmdVdW5ZS28iXV1dWyRHTE9CQUxTWyJuUHhjUEJ6S1d6RVlsdVJRSVNQaiJdXSA9ICRzdGF0dXNfcm93WyRHTE9CQUxTWyJuUHhjUEJ6S1d6RVlsdVJRSVNQaiJdXTsgfSAkc3FsID0gJEdMT0JBTFNbIkZYVkFGVm1HemhScmhHeGxuc0VRIl0gLiAkd2hlcmVfbHYgLiAkR0xPQkFMU1siaGxKb1RrQURsamdHZWdiRWFlV0UiXTsgJHBhcmFtcyA9IGFycmF5KCRjdXJyTW9kdWxlKTsgaWYgKCRmb3JMaXN0VmlldyA9PSBmYWxzZSl7ICRwYXJhbXMgPSBhcnJheSgkY3Vyck1vZHVsZSwgJGlzX2xpc3R2aWV3KTsgaWYgKCRyZWNvcmRJZCkgeyAkZW50aXR5RGF0YSA9IFZURW50aXR5RGF0YTo6ZnJvbUVudGl0eUlkKCR0aGlzLT5kYiwgJHJlY29yZElkKTsgfSB9ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLCAkcGFyYW1zKTsgJHJldHVybl9hcnJheSA9IGFycmF5KCk7IHdoaWxlICgkcm93ID0gJHRoaXMtPmRiLT5mZXRjaEJ5QXNzb2MoJHJlc3VsdCkpIHsgJHRlbXBsYXRlaWQgPSAkcm93WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXTsgaWYgKCR0aGlzLT5DaGVja1RlbXBsYXRlUGVybWlzc2lvbnMoJGN1cnJNb2R1bGUsICR0ZW1wbGF0ZWlkLCBmYWxzZSkgPT0gZmFsc2UpIGNvbnRpbnVlOyBpZiAoJHJlY29yZElkICYmICEkZm9yTGlzdFZpZXcpIHsgJFBERk1ha2VyX0Rpc3BsYXlfTW9kZWwgPSBuZXcgUERGTWFrZXJfRGlzcGxheV9Nb2RlbCgpOyBpZiAoJFBERk1ha2VyX0Rpc3BsYXlfTW9kZWwtPkNoZWNrRGlzcGxheUNvbmRpdGlvbnMoJHJvdywkZW50aXR5RGF0YSwkY3Vyck1vZHVsZSwkZW50aXR5Q2FjaGUpID09IGZhbHNlKSBjb250aW51ZTsgfSAkcGRmdGVtcGxhdGVhcnJheSA9IGFycmF5KCk7IGlmIChpc3NldCgkc3RhdHVzX2FyclskdGVtcGxhdGVpZF0pKSB7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSA9ICRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siT1VTSW1uWWRNUElEaHNDQ1lCbHciXV07ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJXV01jS3p4YVR3UG9zdVZyZGhmSCJdXSA9ICRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV07ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJBZlR6eXRqTXNQdEtaUmtFVVBZWSJdXSA9ICRzdGF0dXNfYXJyWyR0ZW1wbGF0ZWlkXVskR0xPQkFMU1siblB4Y1BCektXekVZbHVSUUlTUGoiXV07IH0gZWxzZSB7ICRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSA9ICRHTE9CQUxTWyJVdHhFd256R3dGU0JtZHhwcnpubiJdOyAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siV1dNY0t6eGFUd1Bvc3VWcmRoZkgiXV0gPSAkR0xPQkFMU1siZVpyS3pmVWdCeHNhSUFIVk5Yd3MiXTsgJHBkZnRlbXBsYXRlYXJyYXlbJEdMT0JBTFNbIkFmVHp5dGpNc1B0S1pSa0VVUFlZIl1dID0gJEdMT0JBTFNbIlV0eEV3bnpHd0ZTQm1keHByem5uIl07IH0gaWYgKCRwZGZ0ZW1wbGF0ZWFycmF5WyRHTE9CQUxTWyJqdk5VWnVBckRsRGJWc0RLS05qVCJdXSA9PSAkR0xPQkFMU1siZVpyS3pmVWdCeHNhSUFIVk5Yd3MiXSkgY29udGludWU7ICRyZXR1cm5fYXJyYXlbJHJvd1skR0xPQkFMU1siZGJlbWJiWExNWHdIZmdVdW5ZS28iXV1dWyRHTE9CQUxTWyJNQkdHTHZHd1RYR0lGRHhEdWRLSSJdXSA9ICRyb3dbJEdMT0JBTFNbIlhzYkVSZ2pxT1ZydGx6Y0p6dUlFIl1dOyAkcmV0dXJuX2FycmF5WyRyb3dbJEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl1dXVskR0xPQkFMU1sienlXZ3hrUFVkalV6eW5ZSURZZFgiXV0gPSAkcm93WyRHTE9CQUxTWyJBb2hkQlRMS0x4RFhESnZ6S09BTiJdXTsgJHJldHVybl9hcnJheVskcm93WyRHTE9CQUxTWyJkYmVtYmJYTE1Yd0hmZ1V1bllLbyJdXV1bJEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl1dID0gJHBkZnRlbXBsYXRlYXJyYXlbJEdMT0JBTFNbIlFuQ0ljeHhjWk5OZ2NWd1FOa1pMIl1dOyAkcmV0dXJuX2FycmF5WyRyb3dbJEdMT0JBTFNbImRiZW1iYlhMTVh3SGZnVXVuWUtvIl1dXVskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV0gPSAkcGRmdGVtcGxhdGVhcnJheVskR0xPQkFMU1siY3ZQaU5RRmJ3REZzcmRRSEpEUXkiXV07IH0gaWYgKGNvdW50KCRyZXR1cm5fYXJyYXkpID09IDEpIHsgJHRtcF9hcnIgPSAkcmV0dXJuX2FycmF5OyByZXNldCgkdG1wX2Fycik7ICRrZXkgPSBrZXkoJHRtcF9hcnIpOyAkcmV0dXJuX2FycmF5WyRrZXldWyRHTE9CQUxTWyJNQkdHTHZHd1RYR0lGRHhEdWRLSSJdXSA9ICR0bXBfYXJyWyRrZXldWyRHTE9CQUxTWyJNQkdHTHZHd1RYR0lGRHhEdWRLSSJdXTsgJHJldHVybl9hcnJheVska2V5XVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV0gPSAkR0xPQkFMU1siaFhKWG55cEJrTktFb0F4a2hjWWsiXTsgfSByZXR1cm4gJHJldHVybl9hcnJheTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0QWxsTW9kdWxlcygpIHsgJE1vZHVsZW5hbWVzID0gQXJyYXkoJEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siaE9HbVVWaUZZaHJ5UXBIekxaVE4iXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pKTsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJ6eWxHcGVxZVNSa3dmYVlHRGlGSyJdLGFycmF5KCRHTE9CQUxTWyJJU0pYdWZoYmtHWEt2cWVIS1FMdCJdLCAkR0xPQkFMU1sibnZpUExIWGN4bWVlcllBbHFIS2QiXSkpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQpKSB7IGlmIChmaWxlX2V4aXN0cygkR0xPQkFMU1siWXRjV0Zybmx1cGx5eUd5Q3l0UHYiXSAuICRyb3dbJEdMT0JBTFNbIkJvV3VCZmF2S3FKeGVMZ0N1TEEiXV0pKSB7IGlmIChpc1Blcm1pdHRlZCgkcm93WyRHTE9CQUxTWyJCb1d1QmZhdktxSnhlTGdDdUxBIl1dLCAkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSkgIT0gJEdMT0JBTFNbInlyeHhZRFZIclJzWE1zZXZvU2dWIl0pIGNvbnRpbnVlOyBpZiAoaW5fYXJyYXkoJHJvd1skR0xPQkFMU1siU1lFbVBKcHhMQ0habVlCcElOWWgiXV0sICR0aGlzLT5iYXNpY01vZHVsZXMpID09IHRydWUgfHwgJHRoaXMtPnZlcnNpb25fdHlwZSA9PSAkR0xPQkFMU1siZG9MU3RjUVlhVlNZTE9GR3F3Il0pICRNb2R1bGVuYW1lc1skcm93WyRHTE9CQUxTWyJCb1d1QmZhdktxSnhlTGdDdUxBIl1dXSA9IHZ0cmFuc2xhdGUoJHJvd1skR0xPQkFMU1siYUZpd2FCS0N0V2ZLemFneW9XU04iXV0sICRyb3dbJEdMT0JBTFNbIkJvV3VCZmF2S3FKeGVMZ0N1TEEiXV0pOyAkTW9kdWxlSURTWyRyb3dbJEdMT0JBTFNbIkJvV3VCZmF2S3FKeGVMZ0N1TEEiXV1dID0gJHJvd1skR0xPQkFMU1siZnhreEt3SVNXR1lHS3V2RFZQeXMiXV07IH0gfSByZXR1cm4gYXJyYXkoJE1vZHVsZW5hbWVzLCAkTW9kdWxlSURTKTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0UHJlcGFyZWRNUERGKCYkbXBkZiwgJHJlY29yZHMsICR0ZW1wbGF0ZXMsICRtb2R1bGUsICRsYW5ndWFnZSwgJHByZUNvbnRlbnQgPSAiIikgeyByZXF1aXJlX29uY2UoJEdMT0JBTFNbIlJQbnRtR1dCV2lNTUlFb1hIUSJdKTsgJGZvY3VzID0gQ1JNRW50aXR5OjpnZXRJbnN0YW5jZSgkbW9kdWxlKTsgJFRlbXBsYXRlQ29udGVudCA9IGFycmF5KCk7ICRuYW1lID0gJyc7IGZvcmVhY2ggKCRyZWNvcmRzIGFzICRyZWNvcmQpIHsgZm9yZWFjaCAoJGZvY3VzLT5jb2x1bW5fZmllbGRzIGFzICRjZl9rZXkgPT4gJGNmX3ZhbHVlKSB7ICRmb2N1cy0+Y29sdW1uX2ZpZWxkc1skY2Zfa2V5XSA9ICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdOyB9IGlmICgkbW9kdWxlID09ICRHTE9CQUxTWyJnVkpDZ3hKTUtldERFR1h4c3JmUSJdKSB7ICRjYWxfcmVzID0gJHRoaXMtPmRiLT5wcXVlcnkoJEdMT0JBTFNbIkZ0V2xjWWJEaFlpclB1cURiWWhMIl0sIGFycmF5KCRyZWNvcmQpKTsgJGNhbF9yb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkY2FsX3Jlcyk7IGlmICgkY2FsX3Jvd1skR0xPQkFMU1siSWdBSFBlSURZanNUS21Ibk51ZlUiXV0gPT0gJEdMT0JBTFNbIldZcWdZSHJOWnNlVlNUeHp1ZG5MIl0pICRmb2N1cy0+cmV0cmlldmVfZW50aXR5X2luZm8oJHJlY29yZCwgJG1vZHVsZSk7IGVsc2UgJGZvY3VzLT5yZXRyaWV2ZV9lbnRpdHlfaW5mbygkcmVjb3JkLCAkR0xPQkFMU1siR1FJV1FFUENwZExLZHlaUmRtQ28iXSk7IH0gZWxzZSAkZm9jdXMtPnJldHJpZXZlX2VudGl0eV9pbmZvKCRyZWNvcmQsICRtb2R1bGUpOyAkZm9jdXMtPmlkID0gJHJlY29yZDsgZm9yZWFjaCAoJHRlbXBsYXRlcyBBUyAkdGVtcGxhdGVpZCkgeyAkUERGQ29udGVudCA9ICR0aGlzLT5HZXRQREZDb250ZW50UmVmKCR0ZW1wbGF0ZWlkLCAkbW9kdWxlLCAkZm9jdXMsICRsYW5ndWFnZSk7ICRTZXR0aW5ncyA9ICRQREZDb250ZW50LT5nZXRTZXR0aW5ncygpOyBpZiAoJG5hbWUgPT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pICRuYW1lID0gJFBERkNvbnRlbnQtPmdldEZpbGVuYW1lKCk7IGlmICgkdGhpcy0+Q2hlY2tUZW1wbGF0ZVBlcm1pc3Npb25zKCRtb2R1bGUsICR0ZW1wbGF0ZWlkLCBmYWxzZSkgPT0gZmFsc2UpIHsgJGhlYWRlcl9odG1sID0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl07ICRib2R5X2h0bWwgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJZeHVLbFJUTmRTZktlemZBV2tjcSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7ICRmb290ZXJfaHRtbCA9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdOyB9IGVsc2UgeyBpZiAoJHByZUNvbnRlbnQgIT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pIHsgJFBERkNvbnRlbnQtPmdldENvbnRlbnQoKTsgJGhlYWRlcl9odG1sID0gJHByZUNvbnRlbnRbJEdMT0JBTFNbIk5UeVFIanNaekVJY0N0c2lUSmZ3Il0gLiAkdGVtcGxhdGVpZF07ICRib2R5X2h0bWwgPSAkcHJlQ29udGVudFskR0xPQkFMU1sia3ZCY3RUUEFiUnNoZ09mSnhJQnAiXSAuICR0ZW1wbGF0ZWlkXTsgJGZvb3Rlcl9odG1sID0gJHByZUNvbnRlbnRbJEdMT0JBTFNbIkJFVERFU2hyQ3pJZnBGclFoaVBNIl0gLiAkdGVtcGxhdGVpZF07IH0gZWxzZSB7ICRwZGZfY29udGVudCA9ICRQREZDb250ZW50LT5nZXRDb250ZW50KCk7ICRoZWFkZXJfaHRtbCA9ICRwZGZfY29udGVudFskR0xPQkFMU1siTlR5UUhqc1p6RUljQ3RzaVRKZnciXV07ICRib2R5X2h0bWwgPSAkcGRmX2NvbnRlbnRbJEdMT0JBTFNbImt2QmN0VFBBYlJzaGdPZkp4SUJwIl1dOyAkZm9vdGVyX2h0bWwgPSAkcGRmX2NvbnRlbnRbJEdMT0JBTFNbIkJFVERFU2hyQ3pJZnBGclFoaVBNIl1dOyB9IH0gaWYgKCRTZXR0aW5nc1skR0xPQkFMU1siTHpPSUh0RFVpSldOcHNkZm9sSyJdXSA9PSAkR0xPQkFMU1siek5FSkZ5b3lSSURsUmdieWdRQ2ciXSkgJG9yaWVudGF0aW9uID0gJEdMT0JBTFNbInV5UURMYk5QU1doSGprR2VkdXJNIl07IGVsc2UgJG9yaWVudGF0aW9uID0gJEdMT0JBTFNbImdwamhueVNTd1dqYWJkb0NTUXlOIl07ICRmb3JtYXQgPSAkU2V0dGluZ3NbJEdMT0JBTFNbIk5xbHpDUlVucW5UZWlCd1BudXlTIl1dOyAkZm9ybWF0UEIgPSAkZm9ybWF0OyBpZiAoc3RycG9zKCRmb3JtYXQsICRHTE9CQUxTWyJ5S0pZRUFzcFlHV2VRdWFQcUNySiJdKSA+IDApIHsgJHRtcEFyciA9IGV4cGxvZGUoJEdMT0JBTFNbInlLSllFQXNwWUdXZVF1YVBxQ3JKIl0sICRmb3JtYXQpOyAkZm9ybWF0ID0gYXJyYXkoJHRtcEFyclswXSwgJHRtcEFyclsxXSk7ICRmb3JtYXRQQiA9ICRmb3JtYXRbMF0gLiAkR0xPQkFMU1sid2NMeHdreGJmclp4V2pHR2FNU2MiXSAuICRmb3JtYXRbMV0gLiAkR0xPQkFMU1sibVNoYlhnUnhYT0ZMVXBuU3hjeFMiXTsgfSBlbHNlaWYgKCRTZXR0aW5nc1skR0xPQkFMU1siTHpPSUh0RFVpSldOcHNkZm9sSyJdXSA9PSAkR0xPQkFMU1siek5FSkZ5b3lSSURsUmdieWdRQ2ciXSkgeyAkZm9ybWF0IC49ICRHTE9CQUxTWyJnb2thbklwUGxMWUJtWXNTR0FWZyJdOyAkZm9ybWF0UEIgLj0gJEdMT0JBTFNbImdva2FuSXBQbExZQm1Zc1NHQVZnIl07IH0gJExpc3RWaWV3QmxvY2tzID0gYXJyYXkoKTsgaWYgKHN0cnBvcygkYm9keV9odG1sLCAiI0xJU1RWSUVXQkxPQ0tfU1RBUlQjIikgIT09IGZhbHNlICYmIHN0cnBvcygkYm9keV9odG1sLCAkR0xPQkFMU1siZ3hOSE51bEFYZk1OalFMWmhGc0giXSkgIT09IGZhbHNlKSBwcmVnX21hdGNoX2FsbCgkR0xPQkFMU1sicE9IUnRZWkV2Z21Ua0tyeWxXY1oiXSwgJGJvZHlfaHRtbCwgJExpc3RWaWV3QmxvY2tzLCBQUkVHX1BBVFRFUk5fT1JERVIpOyBpZiAoY291bnQoJExpc3RWaWV3QmxvY2tzKSA+IDApIHsgJFRlbXBsYXRlQ29udGVudFskdGVtcGxhdGVpZF0gPSAkcGRmX2NvbnRlbnQ7ICRUZW1wbGF0ZVNldHRpbmdzWyR0ZW1wbGF0ZWlkXSA9ICRTZXR0aW5nczsgJG51bV9saXN0dmlld19ibG9ja3MgPSBjb3VudCgkTGlzdFZpZXdCbG9ja3NbMF0pOyBmb3IgKCRpID0gMDsgJGkgPCAkbnVtX2xpc3R2aWV3X2Jsb2NrczsgJGkrKykgeyAkTGlzdFZpZXdCbG9ja1skdGVtcGxhdGVpZF1bJGldID0gJExpc3RWaWV3QmxvY2tzWzBdWyRpXTsgJExpc3RWaWV3QmxvY2tDb250ZW50WyR0ZW1wbGF0ZWlkXVskaV1bJHJlY29yZF1bXSA9ICRMaXN0Vmlld0Jsb2Nrc1sxXVskaV07IH0gfSBlbHNlIHsgaWYgKCFpc19vYmplY3QoJG1wZGYpKSB7ICRtcGRmID0gbmV3IElUUzRZb3VfUERGTWFrZXJfSmF2YVNjcmlwdCgkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSwgJGZvcm1hdCwgJEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl0sICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdLCAkU2V0dGluZ3NbJEdMT0JBTFNbIkhwRHhZTklGWWtRclBmQkpUcEhYIl1dLCAkU2V0dGluZ3NbJEdMT0JBTFNbIlJzZEtOUU1BbE5ZRFVlRUlpTGZ4Il1dLCAwLCAwLCAkU2V0dGluZ3NbJEdMT0JBTFNbImxaRFdmTUFKbmpTaWpXWkZpbnJVIl1dLCAkU2V0dGluZ3NbJEdMT0JBTFNbImxNak15UEZJVFdpaXFIWmZ4dHh2Il1dLCAkb3JpZW50YXRpb24pOyBpZiAobVBERl9WRVJTSU9OID09IDUuNikgeyAkbXBkZi0+U2V0QXV0b0ZvbnQoKTsgfSAkdGhpcy0+bXBkZl9wcmVwcm9jZXNzKCRtcGRmLCAkdGVtcGxhdGVpZCwgJFBERkNvbnRlbnQtPmJyaWRnZTJtcGRmKTsgJHRoaXMtPm1wZGZfcHJlcGFyZV9oZWFkZXJfZm9vdGVyX3NldHRpbmdzKCRtcGRmLCAkdGVtcGxhdGVpZCwgJFNldHRpbmdzKTsgQCRtcGRmLT5TZXRIVE1MSGVhZGVyKCRoZWFkZXJfaHRtbCk7IH0gZWxzZSB7ICR0aGlzLT5tcGRmX3ByZXByb2Nlc3MoJG1wZGYsICR0ZW1wbGF0ZWlkLCAkUERGQ29udGVudC0+YnJpZGdlMm1wZGYpOyBAJG1wZGYtPlNldEhUTUxIZWFkZXIoJGhlYWRlcl9odG1sKTsgQCRtcGRmLT5Xcml0ZUhUTUwoJEdMT0JBTFNbImFXZ2NsWmxPVm9rYU5rZUdaTGlvIl0gLiAkZm9ybWF0UEIgLiAkR0xPQkFMU1siT0RBTGNHTHpwdFRnbHZ2ZHBzb0UiXSAuICRvcmllbnRhdGlvbiAuICRHTE9CQUxTWyJaSkJkR09JT29hcGF4cVlra3RpWCJdIC4gJFNldHRpbmdzWyRHTE9CQUxTWyJIcER4WU5JRllrUXJQZkJKVHBIWCJdXSAuICRHTE9CQUxTWyJ2SWl3endUd2lDY3NZQ1p6VnV6dyJdIC4gJFNldHRpbmdzWyRHTE9CQUxTWyJSc2RLTlFNQWxOWURVZUVJaUxmeCJdXSAuICRHTE9CQUxTWyJyZ0VNdURobm1XdGlmYmRBRVhaQyJdIC4gJFNldHRpbmdzWyRHTE9CQUxTWyJsWkRXZk1BSm5qU2lqV1pGaW5yVSJdXSAuICRHTE9CQUxTWyJmQkRTdnZMbVlvb09QaXFZRnFWRiJdIC4gJFNldHRpbmdzWyRHTE9CQUxTWyJsTWpNeVBGSVRXaWlxSFpmeHR4diJdXSAuICRHTE9CQUxTWyJGSWVjclRDdlphRHNmUWxKYXNVYyJdKTsgfSBAJG1wZGYtPlNldEhUTUxGb290ZXIoJGZvb3Rlcl9odG1sKTsgaWYgKHZ0bGliX2lzTW9kdWxlQWN0aXZlKCRHTE9CQUxTWyJ3dVRVYUpYWkN2a0dZTHdNWVdhaCJdKSl7ICRJVFM0WW91U3R5bGVzTW9kdWxlTW9kZWwgPSBuZXcgSVRTNFlvdVN0eWxlc19Nb2R1bGVfTW9kZWwoKTsgJGJvZHlfaHRtbCA9ICRJVFM0WW91U3R5bGVzTW9kdWxlTW9kZWwtPmFkZFN0eWxlcygkYm9keV9odG1sLCR0ZW1wbGF0ZWlkLCRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgfSBAJG1wZGYtPldyaXRlSFRNTCgkYm9keV9odG1sKTsgJHRoaXMtPm1wZGZfcG9zdHByb2Nlc3MoJG1wZGYsICR0ZW1wbGF0ZWlkLCAkUERGQ29udGVudC0+YnJpZGdlMm1wZGYpOyB9IH0gfSBpZiAoY291bnQoJFRlbXBsYXRlQ29udGVudCkgPiAwKSB7IGZvcmVhY2ggKCRUZW1wbGF0ZUNvbnRlbnQgQVMgJHRlbXBsYXRlaWQgPT4gJFRDb250ZW50KSB7ICRoZWFkZXJfaHRtbCA9ICRUQ29udGVudFskR0xPQkFMU1siTlR5UUhqc1p6RUljQ3RzaVRKZnciXV07ICRib2R5X2h0bWwgPSAkVENvbnRlbnRbJEdMT0JBTFNbImt2QmN0VFBBYlJzaGdPZkp4SUJwIl1dOyAkZm9vdGVyX2h0bWwgPSAkVENvbnRlbnRbJEdMT0JBTFNbIkJFVERFU2hyQ3pJZnBGclFoaVBNIl1dOyAkU2V0dGluZ3MgPSAkVGVtcGxhdGVTZXR0aW5nc1skdGVtcGxhdGVpZF07IGZvcmVhY2ggKCRMaXN0Vmlld0Jsb2NrWyR0ZW1wbGF0ZWlkXSBBUyAkaWQgPT4gJHRleHQpIHsgJHJlcGxhY2UgPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXTsgJGNyaWR4ID0gMTsgZm9yZWFjaCAoJHJlY29yZHMgYXMgJHJlY29yZCkgeyAkcmVwbGFjZSAuPSBpbXBsb2RlKCRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdLCAkTGlzdFZpZXdCbG9ja0NvbnRlbnRbJHRlbXBsYXRlaWRdWyRpZF1bJHJlY29yZF0pOyAkcmVwbGFjZSA9IHN0cl9pcmVwbGFjZSgkR0xPQkFMU1siRXNzWEdsRVJSbWNwUktMYmlWc3kiXSwgJGNyaWR4KyssICRyZXBsYWNlKTsgfSAkYm9keV9odG1sID0gc3RyX3JlcGxhY2UoJHRleHQsICRyZXBsYWNlLCAkYm9keV9odG1sKTsgfSBpZiAoJFNldHRpbmdzWyRHTE9CQUxTWyJMek9JSHREVWlKV05wc2Rmb2xLIl1dID09ICRHTE9CQUxTWyJ6TkVKRnlveVJJRGxSZ2J5Z1FDZyJdKSAkb3JpZW50YXRpb24gPSAkR0xPQkFMU1sidXlRRExiTlBTV2hIamtHZWR1ck0iXTsgZWxzZSAkb3JpZW50YXRpb24gPSAkR0xPQkFMU1siZ3BqaG55U1N3V2phYmRvQ1NReU4iXTsgJGZvcm1hdCA9ICRTZXR0aW5nc1skR0xPQkFMU1siTnFsekNSVW5xblRlaUJ3UG51eVMiXV07ICRmb3JtYXRQQiA9ICRmb3JtYXQ7IGlmIChzdHJwb3MoJGZvcm1hdCwgJEdMT0JBTFNbInlLSllFQXNwWUdXZVF1YVBxQ3JKIl0pID4gMCkgeyAkdG1wQXJyID0gZXhwbG9kZSgkR0xPQkFMU1sieUtKWUVBc3BZR1dlUXVhUHFDckoiXSwgJGZvcm1hdCk7ICRmb3JtYXQgPSBhcnJheSgkdG1wQXJyWzBdLCAkdG1wQXJyWzFdKTsgJGZvcm1hdFBCID0gJGZvcm1hdFswXSAuICRHTE9CQUxTWyJ3Y0x4d2t4YmZyWnhXakdHYU1TYyJdIC4gJGZvcm1hdFsxXSAuICRHTE9CQUxTWyJtU2hiWGdSeFhPRkxVcG5TeGN4UyJdOyB9IGVsc2VpZiAoJFNldHRpbmdzWyRHTE9CQUxTWyJMek9JSHREVWlKV05wc2Rmb2xLIl1dID09ICRHTE9CQUxTWyJ6TkVKRnlveVJJRGxSZ2J5Z1FDZyJdKSB7ICRmb3JtYXQgLj0gJEdMT0JBTFNbImdva2FuSXBQbExZQm1Zc1NHQVZnIl07ICRmb3JtYXRQQiAuPSAkR0xPQkFMU1siZ29rYW5JcFBsTFlCbVlzU0dBVmciXTsgfSBpZiAoIWlzX29iamVjdCgkbXBkZikpIHsgJG1wZGYgPSBuZXcgSVRTNFlvdV9QREZNYWtlcl9KYXZhU2NyaXB0KCRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdLCAkZm9ybWF0LCAkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSwgJEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl0sICRTZXR0aW5nc1skR0xPQkFMU1siSHBEeFlOSUZZa1FyUGZCSlRwSFgiXV0sICRTZXR0aW5nc1skR0xPQkFMU1siUnNkS05RTUFsTllEVWVFSWlMZngiXV0sIDAsIDAsICRTZXR0aW5nc1skR0xPQkFMU1sibFpEV2ZNQUpualNpaldaRmluclUiXV0sICRTZXR0aW5nc1skR0xPQkFMU1sibE1qTXlQRklUV2lpcUhaZnh0eHYiXV0sICRvcmllbnRhdGlvbik7IGlmIChtUERGX1ZFUlNJT04gPT0gNS42KSB7ICRtcGRmLT5TZXRBdXRvRm9udCgpOyB9ICR0aGlzLT5tcGRmX3ByZXByb2Nlc3MoJG1wZGYsICR0ZW1wbGF0ZWlkKTsgJHRoaXMtPm1wZGZfcHJlcGFyZV9oZWFkZXJfZm9vdGVyX3NldHRpbmdzKCRtcGRmLCAkdGVtcGxhdGVpZCwgJFNldHRpbmdzKTsgQCRtcGRmLT5TZXRIVE1MSGVhZGVyKCRoZWFkZXJfaHRtbCk7IH0gZWxzZSB7ICR0aGlzLT5tcGRmX3ByZXByb2Nlc3MoJG1wZGYsICR0ZW1wbGF0ZWlkKTsgQCRtcGRmLT5TZXRIVE1MSGVhZGVyKCRoZWFkZXJfaHRtbCk7IEAkbXBkZi0+V3JpdGVIVE1MKCRHTE9CQUxTWyJhV2djbFpsT1Zva2FOa2VHWkxpbyJdIC4gJGZvcm1hdFBCIC4gJEdMT0JBTFNbIk9EQUxjR0x6cHRUZ2x2dmRwc29FIl0gLiAkb3JpZW50YXRpb24gLiAkR0xPQkFMU1siWkpCZEdPSU9vYXBheHFZa2t0aVgiXSAuICRTZXR0aW5nc1skR0xPQkFMU1siSHBEeFlOSUZZa1FyUGZCSlRwSFgiXV0gLiAkR0xPQkFMU1sidklpd3p3VHdpQ2NzWUNaelZ1enciXSAuICRTZXR0aW5nc1skR0xPQkFMU1siUnNkS05RTUFsTllEVWVFSWlMZngiXV0gLiAkR0xPQkFMU1sicmdFTXVEaG5tV3RpZmJkQUVYWkMiXSAuICRTZXR0aW5nc1skR0xPQkFMU1sibFpEV2ZNQUpualNpaldaRmluclUiXV0gLiAkR0xPQkFMU1siZkJEU3Z2TG1Zb29PUGlxWUZxVkYiXSAuICRTZXR0aW5nc1skR0xPQkFMU1sibE1qTXlQRklUV2lpcUhaZnh0eHYiXV0gLiAkR0xPQkFMU1siRkllY3JUQ3ZaYURzZlFsSmFzVWMiXSk7IH0gQCRtcGRmLT5TZXRIVE1MRm9vdGVyKCRmb290ZXJfaHRtbCk7IEAkbXBkZi0+V3JpdGVIVE1MKCRib2R5X2h0bWwpOyAkdGhpcy0+bXBkZl9wb3N0cHJvY2VzcygkbXBkZiwgJHRlbXBsYXRlaWQpOyB9IH0gaWYgKCFpc19vYmplY3QoJG1wZGYpKSB7IEAkbXBkZiA9IG5ldyBJVFM0WW91X1BERk1ha2VyX0phdmFTY3JpcHQoKTsgQCRtcGRmLT5Xcml0ZUhUTUwodnRyYW5zbGF0ZSgkR0xPQkFMU1siWXh1S2xSVE5kU2ZLZXpmQVdrY3EiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pKTsgfSBpZiAoJG5hbWUgPT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pIHsgJG5hbWUgPSAkdGhpcy0+R2VuZXJhdGVOYW1lKCRyZWNvcmRzLCAkdGVtcGxhdGVzLCAkbW9kdWxlKTsgfSAkbmFtZSA9IHN0cl9yZXBsYWNlKGFycmF5KCRHTE9CQUxTWyJpS0x5U2hGUWxwam1KcEZmYW9lYyJdLCAkR0xPQkFMU1siSnhuZWJ5amRGaWRYZFZ6TnFuRWIiXSwgJEdMT0JBTFNbImxSQnp2ekJTRVFrSnhkQkl0YmciXSksIGFycmF5KCctJywgJy0nLCAnLScpLCAkbmFtZSk7IHJldHVybiAkbmFtZTsgfSBwdWJsaWMgZnVuY3Rpb24gR2VuZXJhdGVOYW1lKCRyZWNvcmRzLCAkdGVtcGxhdGVzLCAkbW9kdWxlKSB7ICRmb2N1cyA9IENSTUVudGl0eTo6Z2V0SW5zdGFuY2UoJG1vZHVsZSk7ICRmb2N1cy0+cmV0cmlldmVfZW50aXR5X2luZm8oJHJlY29yZHNbMF0sICRtb2R1bGUpOyBpZiAoY291bnQoJHJlY29yZHMpID4gMSkgeyAkbmFtZSA9ICRHTE9CQUxTWyJpUHBBSlpnWGNxemx3S1hreGZZIl07IH0gZWxzZSB7ICRtb2R1bGVfdGFiaWQgPSBnZXRUYWJJZCgkbW9kdWxlKTsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJFdElsY0R2b05ZWXR2RE5LSWRnWSJdLCBhcnJheSgnNCcsJG1vZHVsZV90YWJpZCkpOyAkZmllbGRuYW1lID0gJHRoaXMtPmRiLT5xdWVyeV9yZXN1bHQoJHJlc3VsdCwgMCwgJEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il0pOyBpZiAoaXNzZXQoJGZvY3VzLT5jb2x1bW5fZmllbGRzWyRmaWVsZG5hbWVdKSAmJiAkZm9jdXMtPmNvbHVtbl9maWVsZHNbJGZpZWxkbmFtZV0gIT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pIHsgJG5hbWUgPSAkdGhpcy0+Z2VuZXJhdGVfY29vbF91cmkoJGZvY3VzLT5jb2x1bW5fZmllbGRzWyRmaWVsZG5hbWVdKTsgfSBlbHNlIHsgJHRlbXBsYXRlc1N0ciA9IGltcGxvZGUoJEdMT0JBTFNbIk1iYWpETkpSaG1NT3dHb2pzY3ZVIl0sICR0ZW1wbGF0ZXMpOyAkcmVjb3Jkc1N0ciA9IGltcGxvZGUoJEdMT0JBTFNbIk1iYWpETkpSaG1NT3dHb2pzY3ZVIl0sICRyZWNvcmRzKTsgJG5hbWUgPSAkdGVtcGxhdGVzU3RyIC4gJHJlY29yZHNTdHIgLiBkYXRlKCRHTE9CQUxTWyJaRWZLZ3dqcUhBckd0THdUWEZXUyJdKTsgfSB9IHJldHVybiAkbmFtZTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0UERGQ29udGVudFJlZigkdGVtcGxhdGVpZCwgJG1vZHVsZSwgJGZvY3VzLCAkbGFuZ3VhZ2UpIHsgcmV0dXJuIG5ldyBQREZNYWtlcl9QREZDb250ZW50X01vZGVsKCR0ZW1wbGF0ZWlkLCAkbW9kdWxlLCAkZm9jdXMsICRsYW5ndWFnZSk7IH0gcHVibGljIGZ1bmN0aW9uIERlbGV0ZUFsbFJlZkxpbmtzKCkgeyByZXF1aXJlX29uY2UoJEdMT0JBTFNbIk5VaUhHT0phRm1ET3FrdkRWWExMIl0pOyAkbGlua19yZXMgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siR0JCYmd1blRZUVJ3SFJYS3JQS1giXSwgYXJyYXkoJzEnKSk7IHdoaWxlICgkbGlua19yb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkbGlua19yZXMpKSB7IFZ0aWdlcl9MaW5rOjpkZWxldGVMaW5rKCRsaW5rX3Jvd1skR0xPQkFMU1siU1lFbVBKcHhMQ0habVlCcElOWWgiXV0sICRHTE9CQUxTWyJhWVJMd1BlUGVGQ3RkR2NQWHZ2VyJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7IFZ0aWdlcl9MaW5rOjpkZWxldGVMaW5rKCRsaW5rX3Jvd1skR0xPQkFMU1siU1lFbVBKcHhMQ0habVlCcElOWWgiXV0sICRHTE9CQUxTWyJUcVBUc2dGd2lmcXFqeW1OcFFXVCJdLCAkR0xPQkFMU1siSmVoV01ucE9qdEJBeVVTY3NjckMiXSwgJEdMT0JBTFNbIlhCRGNDTm9YaFRKa0NQS3NlaGp2Il0pOyB9IH0gcHVibGljIGZ1bmN0aW9uIEFkZExpbmtzKCRtb2R1bGVuYW1lKSB7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siSkJIU3VFd3NnVndxTmpuaHhqYkwiXSk7ICRsaW5rX21vZHVsZSA9IFZ0aWdlcl9Nb2R1bGU6OmdldEluc3RhbmNlKCRtb2R1bGVuYW1lKTsgJGxpbmtfbW9kdWxlLT5hZGRMaW5rKCRHTE9CQUxTWyJWVkNxREZvS0h6SERBQW1lRHBjbCJdLCAkR0xPQkFMU1siRkVkVWp4dmZjblR3RHdrbVJmbyJdLCAkR0xPQkFMU1siR1pIRURRWGxTeHZCQ0dxa2ZFSXEiXSk7IGlmICgkbW9kdWxlbmFtZSAhPSAkR0xPQkFMU1siVExJVE15a2F5eVJnaXpuQ2NZbmMiXSkgJGxpbmtfbW9kdWxlLT5hZGRMaW5rKCRHTE9CQUxTWyJIWGZrWWtCWVNBamdYYVptUlpoUiJdLCAkR0xPQkFMU1siRGFOZHJGcmJydVV4QldGVmFjIl0sICRHTE9CQUxTWyJNcHpTWnNScXV1VnNDdUZ1cEFLciJdKTsgZ2xvYmFsICRhZGI7ICR0YWJpZCA9IGdldFRhYklkKCRtb2R1bGVuYW1lKTsgJHJlcyA9ICRhZGItPnBxdWVyeSgkR0xPQkFMU1siU2JlTXpxcXRvcWxLb2thcXdoaE4iXSwgYXJyYXkoJHRhYmlkLCAnREVUQUlMVklFV1dJREdFVCcsICdQREZNYWtlcicsICdtb2R1bGU9UERGTWFrZXImYWN0aW9uPVBERk1ha2VyQWpheCZmaWxlPWdldFBERkFjdGlvbnMmcmVjb3JkPSRSRUNPUkQkJykpOyAkaSA9IDA7IHdoaWxlICgkcm93ID0gJGFkYi0+ZmV0Y2hCeUFzc29jKCRyZXMpKSB7ICRpKys7IGlmICgkaSA+IDEpICRhZGItPnBxdWVyeSgkR0xPQkFMU1siWXladElFWFVXbWpaVlNkWnR1VWEiXSwgYXJyYXkoJHJvd1snbGlua2lkJ10pKTsgfSAkcmVzID0gJGFkYi0+cHF1ZXJ5KCRHTE9CQUxTWyJTYmVNenFxdG9xbEtva2Fxd2hoTiJdLCBhcnJheSgkdGFiaWQsICdMSVNUVklFV01BU1NBQ1RJT04nLCAnUERGIEV4cG9ydCcsICdqYXZhc2NyaXB0OmdldFBERkxpc3RWaWV3UG9wdXAyKHRoaXMsXCckTU9EVUxFJFwnKTsnKSk7ICRpID0gMDsgd2hpbGUgKCRyb3cgPSAkYWRiLT5mZXRjaEJ5QXNzb2MoJHJlcykpIHsgJGkrKzsgaWYgKCRpID4gMSkgJGFkYi0+cHF1ZXJ5KCRHTE9CQUxTWyJZeVp0SUVYVVdtalpWU2RadHVVYSJdLCBhcnJheSgkcm93WydsaW5raWQnXSkpOyB9IGlmICgkbW9kdWxlbmFtZSA9PSAkR0xPQkFMU1siSkJDS3B5elhpTHZlemhwTFluY2MiXSkgJHRoaXMtPkFkZExpbmtzKCRHTE9CQUxTWyJHUUlXUUVQQ3BkTEtkeVpSZG1DbyJdKTsgfSBwdWJsaWMgZnVuY3Rpb24gQWRkSGVhZGVyTGlua3MoKSB7IHJlcXVpcmVfb25jZSgkR0xPQkFMU1siSkJIU3VFd3NnVndxTmpuaHhqYkwiXSk7ICRsaW5rX21vZHVsZSA9IFZ0aWdlcl9Nb2R1bGU6OmdldEluc3RhbmNlKCRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgJGxpbmtfbW9kdWxlLT5hZGRMaW5rKCRHTE9CQUxTWyJpbU1oWk1XUEJoQnBpY1J3TFp4cSJdLCAkR0xPQkFMU1sidkhnR2NrVUpjTGtGemN1T0phTWIiXSwgJEdMT0JBTFNbInd0b1V6R3VmZkdrbmlzbXVlcVZ3Il0sICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdLCAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXSk7IH0gcHVibGljIGZ1bmN0aW9uIGFjdHVhbGl6ZUxpbmtzKCkgeyAkdGhpcy0+QWRkSGVhZGVyTGlua3MoKTsgfSBwdWJsaWMgZnVuY3Rpb24gRGllRHVlUGVybWlzc2lvbigpIHsgZ2xvYmFsICRkZWZhdWx0X3RoZW1lOyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7IGlmIChpc3NldCgkX1NFU1NJT05bJEdMT0JBTFNbImxSbGtMU0F5TXBPaFpuZUJYSkFsIl1dKSAmJiAkX1NFU1NJT05bJEdMT0JBTFNbImxSbGtMU0F5TXBPaFpuZUJYSkFsIl1dICE9ICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdKSAkdGhlbWUgPSAkX1NFU1NJT05bJEdMT0JBTFNbImxSbGtMU0F5TXBPaFpuZUJYSkFsIl1dOyBlbHNlIHsgaWYgKCFlbXB0eSgkY3VycmVudF91c2VyLT50aGVtZSkpIHsgJHRoZW1lID0gJGN1cnJlbnRfdXNlci0+dGhlbWU7IH0gZWxzZSB7ICR0aGVtZSA9ICRkZWZhdWx0X3RoZW1lOyB9IH0gJG91dHB1dCA9ICRHTE9CQUxTWyJXSkJXTmtubE55eFZaTml0R0V6SCJdLiR0aGVtZS4kR0xPQkFMU1siS1d4TW1YY09oVk5hTGtsWXZrbmsiXTsgJG91dHB1dCAuPSAkR0xPQkFMU1siTmNWQ3FpTHdzS0dYUnlva1dNS3IiXTsgJG91dHB1dCAuPSAkR0xPQkFMU1sidmN6RnR2YU9nSFd4UWZDbnJhZ0siXSAuIHZ0aWdlcl9pbWFnZXVybCgkR0xPQkFMU1sibFhOc0VmVVFhWVJudXpWQkdMUFkiXSwgJHRoZW1lKSAuICRHTE9CQUxTWyJUZnN2UVR3dWFUQ0dxTVl4Qm9XVCJdIC4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siWXh1S2xSVE5kU2ZLZXpmQVdrY3EiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pIC4gJEdMT0JBTFNbIk1QZFphUllpSFpIeW5yb2FNWnFDIl0gLiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ1d25NSHpFSUZ4ZWRtVGpBeVdDVCJdKSAuICRHTE9CQUxTWyJyeHhKZ3FDTFFYb2xORnNLTk1GUyJdOyAkb3V0cHV0IC49ICRHTE9CQUxTWyJGVmxicE1YZE1QQVZMSmhQd2ZYTSJdOyBkaWUoJG91dHB1dCk7IH0gcHVibGljIGZ1bmN0aW9uIENoZWNrVGVtcGxhdGVQZXJtaXNzaW9ucygkc2VsZWN0ZWRfbW9kdWxlLCAkdGVtcGxhdGVpZCwgJGRpZSA9IHRydWUpIHsgJGN1cnJlbnRfdXNlciA9IFVzZXJzX1JlY29yZF9Nb2RlbDo6Z2V0Q3VycmVudFVzZXJNb2RlbCgpOyAkcmVzdWx0ID0gdHJ1ZTsgaWYgKCFpc19hZG1pbigkY3VycmVudF91c2VyKSkgeyBpZiAoJHNlbGVjdGVkX21vZHVsZSAhPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXSAmJiBpc1Blcm1pdHRlZCgkc2VsZWN0ZWRfbW9kdWxlLCAkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSkgIT0gJEdMT0JBTFNbInlyeHhZRFZIclJzWE1zZXZvU2dWIl0pIHsgJHJlc3VsdCA9IGZhbHNlOyB9IGVsc2VpZiAoJHRlbXBsYXRlaWQgIT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0gJiYgJHRoaXMtPkNoZWNrU2hhcmluZygkdGVtcGxhdGVpZCkgPT09IGZhbHNlKSB7ICRyZXN1bHQgPSBmYWxzZTsgfSBpZiAoJHJlc3VsdCA9PT0gZmFsc2UpIHsgcmVxdWlyZSgkR0xPQkFMU1siellBVXhNa2NVanFVaW5HdWtQSHUiXS4kY3VycmVudF91c2VyLT5pZC4kR0xPQkFMU1siRkxJb3Z4VmVwdnJQRmVsVUhHZ2ciXSk7IHJlcXVpcmUoJEdMT0JBTFNbIlVsY1BqUFBSZ05LWXR0SmpVUnBMIl0uJGN1cnJlbnRfdXNlci0+aWQuJEdMT0JBTFNbIkZMSW92eFZlcHZyUEZlbFVIR2dnIl0pOyBpZigkcHJvZmlsZUdsb2JhbFBlcm1pc3Npb25bMV0gPT0wKSB7ICRyZXN1bHQgPSB0cnVlOyB9IH0gaWYgKCRkaWUgPT09IHRydWUgJiYgJHJlc3VsdCA9PT0gZmFsc2UpIHsgJHRoaXMtPkRpZUR1ZVBlcm1pc3Npb24oKTsgfSB9IHJldHVybiAkcmVzdWx0OyB9IHB1YmxpYyBmdW5jdGlvbiByZXR1cm5UZW1wbGF0ZVBlcm1pc3Npb25zRGF0YSgkc2VsZWN0ZWRfbW9kdWxlLCAkdGVtcGxhdGVpZCkgeyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICRyZXN1bHQgPSB0cnVlOyBpZiAoIWlzX2FkbWluKCRjdXJyZW50X3VzZXIpKSB7IGlmICgkc2VsZWN0ZWRfbW9kdWxlICE9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdICYmIGlzUGVybWl0dGVkKCRzZWxlY3RlZF9tb2R1bGUsICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdKSAhPSAkR0xPQkFMU1sieXJ4eFlEVkhyUnNYTXNldm9TZ1YiXSkgeyAkcmVzdWx0ID0gZmFsc2U7IH0gZWxzZWlmICgkdGVtcGxhdGVpZCAhPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXSAmJiAkdGhpcy0+Q2hlY2tTaGFyaW5nKCR0ZW1wbGF0ZWlkKSA9PT0gZmFsc2UpIHsgJHJlc3VsdCA9IGZhbHNlOyB9ICRkZXRhaWxfcmVzdWx0ID0gJHJlc3VsdDsgaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9ucygkR0xPQkFMU1siQVl0cEZHakNZUFdoR1hlRmluWVQiXSkpIHsgJGVkaXRfcmVzdWx0ID0gZmFsc2U7IH0gZWxzZSB7ICRlZGl0X3Jlc3VsdCA9ICRyZXN1bHQ7IH0gaWYgKCEkdGhpcy0+Q2hlY2tQZXJtaXNzaW9ucygkR0xPQkFMU1siUERmdmpnS3hRZUVZTldOSmxSWmQiXSkpIHsgJGRlbGV0ZV9yZXN1bHQgPSBmYWxzZTsgfSBlbHNlIHsgJGRlbGV0ZV9yZXN1bHQgPSAkcmVzdWx0OyB9IGlmICgkZGV0YWlsX3Jlc3VsdCA9PT0gZmFsc2UgfHwgJGVkaXRfcmVzdWx0ID09PSBmYWxzZSB8fCAkZGVsZXRlX3Jlc3VsdCA9PT0gZmFsc2UpIHsgcmVxdWlyZSgkR0xPQkFMU1siellBVXhNa2NVanFVaW5HdWtQSHUiXS4kY3VycmVudF91c2VyLT5pZC4kR0xPQkFMU1siRkxJb3Z4VmVwdnJQRmVsVUhHZ2ciXSk7IHJlcXVpcmUoJEdMT0JBTFNbIlVsY1BqUFBSZ05LWXR0SmpVUnBMIl0uJGN1cnJlbnRfdXNlci0+aWQuJEdMT0JBTFNbIkZMSW92eFZlcHZyUEZlbFVIR2dnIl0pOyBpZigkcHJvZmlsZUdsb2JhbFBlcm1pc3Npb25bMV0gPT0gMCkgeyAkZGV0YWlsX3Jlc3VsdCA9IHRydWU7IH0gaWYoJHByb2ZpbGVHbG9iYWxQZXJtaXNzaW9uWzJdID09IDApIHsgJGVkaXRfcmVzdWx0ID0gdHJ1ZTsgJGRlbGV0ZV9yZXN1bHQgPSB0cnVlOyB9IH0gfSBlbHNlIHsgJGRldGFpbF9yZXN1bHQgPSAkZWRpdF9yZXN1bHQgPSAkZGVsZXRlX3Jlc3VsdCA9ICRyZXN1bHQ7IH0gcmV0dXJuIGFycmF5KCJkZXRhaWwiPT4kZGV0YWlsX3Jlc3VsdCwiZWRpdCI9PiRlZGl0X3Jlc3VsdCAsImRlbGV0ZSI9PiRkZWxldGVfcmVzdWx0KTsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0UHJvZmlsZXNQZXJtaXNzaW9ucygpIHsgaWYgKGNvdW50KCR0aGlzLT5wcm9maWxlc1Blcm1pc3Npb25zKSA9PSAwKSB7ICRwcm9maWxlcyA9IFNldHRpbmdzX1Byb2ZpbGVzX1JlY29yZF9Nb2RlbDo6Z2V0QWxsKCk7ICRyZXMgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1sieFZGRm95UGhueXJ0T0xQSEtPUUwiXSxhcnJheSgpKTsgJHBlcm1pc3Npb25zID0gYXJyYXkoKTsgd2hpbGUgKCRyb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkcmVzKSkgeyBpZiAoaXNzZXQoJHByb2ZpbGVzWyRyb3dbJEdMT0JBTFNbInNvU2dZUHFJZXpkSmJ2Q3lKWm9nIl1dXSkpICRwZXJtaXNzaW9uc1skcm93WyRHTE9CQUxTWyJzb1NnWVBxSWV6ZEpidkN5SlpvZyJdXV1bJHJvd1skR0xPQkFMU1sieUFBa2JVY0V3cGpzc1N2SVdRZE4iXV1dID0gJHJvd1skR0xPQkFMU1sid0Fwa1lzamtmRk5tRHRLbnJrbGUiXV07IH0gZm9yZWFjaCAoJHByb2ZpbGVzIGFzICRwcm9maWxlaWQgPT4gJHByb2ZpbGVuYW1lKSB7IGZvcmVhY2ggKCR0aGlzLT5wcm9maWxlc0FjdGlvbnMgYXMgJGFjdGlvbk5hbWUpIHsgJGFjdGlvbklkID0gZ2V0QWN0aW9uaWQoJGFjdGlvbk5hbWUpOyBpZiAoIWlzc2V0KCRwZXJtaXNzaW9uc1skcHJvZmlsZWlkXVskYWN0aW9uSWRdKSkgeyAkcGVybWlzc2lvbnNbJHByb2ZpbGVpZF1bJGFjdGlvbklkXSA9ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdOyB9IH0gfSBrc29ydCgkcGVybWlzc2lvbnMpOyAkdGhpcy0+cHJvZmlsZXNQZXJtaXNzaW9ucyA9ICRwZXJtaXNzaW9uczsgfSByZXR1cm4gJHRoaXMtPnByb2ZpbGVzUGVybWlzc2lvbnM7IH0gcHVibGljIGZ1bmN0aW9uIENoZWNrUGVybWlzc2lvbnMoJGFjdGlvbktleSkgeyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICRwcm9maWxlaWQgPSBnZXRVc2VyUHJvZmlsZSgkY3VycmVudF91c2VyLT5pZCk7ICRyZXN1bHQgPSBmYWxzZTsgaWYgKCRhY3Rpb25LZXkgPT0gJEdMT0JBTFNbImNyb0JYZHVTUk5KS2dhVU9jYWJuIl0pIHsgJFJURl9BY3RpdmF0ZWQgPSAkdGhpcy0+aXNSVEZBY3RpdmF0ZWQoKTsgaWYgKCEkUlRGX0FjdGl2YXRlZCkgcmV0dXJuICRyZXN1bHQ7IH0gaWYgKGlzc2V0KCR0aGlzLT5wcm9maWxlc0FjdGlvbnNbJGFjdGlvbktleV0pKSB7ICRhY3Rpb25pZCA9IGdldEFjdGlvbmlkKCR0aGlzLT5wcm9maWxlc0FjdGlvbnNbJGFjdGlvbktleV0pOyAkcGVybWlzc2lvbnMgPSAkdGhpcy0+R2V0UHJvZmlsZXNQZXJtaXNzaW9ucygpOyBpZiAoaXNzZXQoJHBlcm1pc3Npb25zWyRwcm9maWxlaWRbMF1dWyRhY3Rpb25pZF0pICYmICRwZXJtaXNzaW9uc1skcHJvZmlsZWlkWzBdXVskYWN0aW9uaWRdID09ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdKSAkcmVzdWx0ID0gdHJ1ZTsgfSByZXR1cm4gJHJlc3VsdDsgfSBwdWJsaWMgZnVuY3Rpb24gQ2hlY2tTaGFyaW5nKCR0ZW1wbGF0ZWlkKSB7ICRjdXJyZW50X3VzZXIgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJZRElNTWNMTXBxZndkWUpmQnNqSSJdLCBhcnJheSgkdGVtcGxhdGVpZCkpOyAkcm93ID0gJHRoaXMtPmRiLT5mZXRjaEJ5QXNzb2MoJHJlc3VsdCk7ICRvd25lciA9ICRyb3dbJEdMT0JBTFNbImNJWmFXbkpadVhBbGtKVUZwS0lFIl1dOyAkc2hhcmluZ3R5cGUgPSAkcm93WyRHTE9CQUxTWyJ3Uk5qUHpDeHJZUkNGdE1LVEVEcCJdXTsgJHJlc3VsdCA9IGZhbHNlOyBpZiAoJG93bmVyID09ICRjdXJyZW50X3VzZXItPmlkKSB7ICRyZXN1bHQgPSB0cnVlOyB9IGVsc2UgeyBzd2l0Y2ggKCRzaGFyaW5ndHlwZSkgeyBjYXNlICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdOiBjYXNlICRHTE9CQUxTWyJRVG5HS1pyT0Vjdk9Ra0JDaFVnZiJdOiAkcmVzdWx0ID0gdHJ1ZTsgYnJlYWs7IGNhc2UgJEdMT0JBTFNbInJFQnJXaGNnV1Zsc0trZ3d6Il06ICRzdWJvcmRpbmF0ZVVzZXJzID0gJHRoaXMtPmdldFN1YlJvbGVVc2VySWRzKCRjdXJyZW50X3VzZXItPnJvbGVpZCk7IGlmICghZW1wdHkoJHN1Ym9yZGluYXRlVXNlcnMpICYmIGNvdW50KCRzdWJvcmRpbmF0ZVVzZXJzKSA+IDApIHsgJHJlc3VsdCA9IGluX2FycmF5KCRvd25lciwgJHN1Ym9yZGluYXRlVXNlcnMpOyB9IGVsc2UgJHJlc3VsdCA9IGZhbHNlOyBicmVhazsgY2FzZSAkR0xPQkFMU1sia1ppem5lVXBlZ0VxWEtqem1ZemciXTogJHN1Ym9yZGluYXRlVXNlcnMgPSAkdGhpcy0+Z2V0U3ViUm9sZVVzZXJJZHMoJGN1cnJlbnRfdXNlci0+cm9sZWlkKTsgaWYgKCFlbXB0eSgkc3Vib3JkaW5hdGVVc2VycykgJiYgY291bnQoJHN1Ym9yZGluYXRlVXNlcnMpID4gMCAmJiBpbl9hcnJheSgkb3duZXIsICRzdWJvcmRpbmF0ZVVzZXJzKSkgJHJlc3VsdCA9IHRydWU7IGVsc2UgeyAkbWVtYmVyX2FycmF5ID0gJHRoaXMtPkdldFNoYXJpbmdNZW1iZXJBcnJheSgkdGVtcGxhdGVpZCk7IGlmIChpc3NldCgkbWVtYmVyX2FycmF5WyRHTE9CQUxTWyJqbHZDWnV2TEpQZ2xvYWlGZVRqUCJdXSkgJiYgaW5fYXJyYXkoJGN1cnJlbnRfdXNlci0+aWQsICRtZW1iZXJfYXJyYXlbJEdMT0JBTFNbImpsdkNadXZMSlBnbG9haUZlVGpQIl1dKSkgJHJlc3VsdCA9IHRydWU7IGVsc2VpZiAoaXNzZXQoJG1lbWJlcl9hcnJheVskR0xPQkFMU1sia3RyWFBxdml6dE5QU29SUUNyeFYiXV0pICYmIGluX2FycmF5KCRjdXJyZW50X3VzZXItPnJvbGVpZCwgJG1lbWJlcl9hcnJheVskR0xPQkFMU1sia3RyWFBxdml6dE5QU29SUUNyeFYiXV0pKSAkcmVzdWx0ID0gdHJ1ZTsgZWxzZSB7IGlmIChpc3NldCgkbWVtYmVyX2FycmF5WyRHTE9CQUxTWyJTQ1RIRkxZTEdlUVRhQ0ZVQlJEdyJdXSkpIHsgZm9yZWFjaCAoJG1lbWJlcl9hcnJheVskR0xPQkFMU1siU0NUSEZMWUxHZVFUYUNGVUJSRHciXV0gYXMgJHJvbGVpZCkgeyAkcm9sZUFuZHN1Ym9yZGluYXRlUm9sZXMgPSBnZXRSb2xlQW5kU3Vib3JkaW5hdGVzUm9sZUlkcygkcm9sZWlkKTsgaWYgKGluX2FycmF5KCRjdXJyZW50X3VzZXItPnJvbGVpZCwgJHJvbGVBbmRzdWJvcmRpbmF0ZVJvbGVzKSkgeyAkcmVzdWx0ID0gdHJ1ZTsgYnJlYWs7IH0gfSB9IGlmICgkcmVzdWx0ID09IGZhbHNlICYmIGlzc2V0KCRtZW1iZXJfYXJyYXlbJEdMT0JBTFNbImhQR3ZvSHlwUElBSXNEdUxlamdGIl1dKSkgeyAkY3VycmVudF91c2VyX2dyb3VwcyA9IGV4cGxvZGUoJEdMT0JBTFNbInR1Ylhid01nS1RVR1BlS0FtcUNGIl0sIGZldGNoVXNlckdyb3VwaWRzKCRjdXJyZW50X3VzZXItPmlkKSk7ICRyZXNfYXJyYXkgPSBhcnJheV9pbnRlcnNlY3QoJG1lbWJlcl9hcnJheVsiZ3JvdXBzIl0sICRjdXJyZW50X3VzZXJfZ3JvdXBzKTsgaWYgKCFlbXB0eSgkcmVzX2FycmF5KSAmJiBjb3VudCgkcmVzX2FycmF5KSA+IDApICRyZXN1bHQgPSB0cnVlOyBlbHNlICRyZXN1bHQgPSBmYWxzZTsgfSBpZiAoaXNzZXQoJG1lbWJlcl9hcnJheVskR0xPQkFMU1sidExOYkNHdFhCQ3prc2ltUkhSekYiXV0pKSB7IGZvcmVhY2ggKCRtZW1iZXJfYXJyYXlbJEdMT0JBTFNbInRMTmJDR3RYQkN6a3NpbVJIUnpGIl1dIGFzICRjb21wYW55SWQpIHsgaWYgKElUUzRZb3VNdWx0aUNvbXBhbnlfUmVjb3JkX01vZGVsOjppc1JvbGVJbkNvbXBhbnkoJGNvbXBhbnlJZCwgJGN1cnJlbnRfdXNlci0+cm9sZWlkKSkgeyAkcmVzdWx0ID0gdHJ1ZTsgYnJlYWs7IH0gfSB9IH0gfSBicmVhazsgfSB9IHJldHVybiAkcmVzdWx0OyB9IHByaXZhdGUgZnVuY3Rpb24gZ2V0U3ViUm9sZVVzZXJJZHMoJHJvbGVpZCkgeyAkc3ViUm9sZVVzZXJJZHMgPSBhcnJheSgpOyAkc3Vib3JkaW5hdGVVc2VycyA9IGdldFJvbGVBbmRTdWJvcmRpbmF0ZVVzZXJzKCRyb2xlaWQpOyBpZiAoIWVtcHR5KCRzdWJvcmRpbmF0ZVVzZXJzKSAmJiBjb3VudCgkc3Vib3JkaW5hdGVVc2VycykgPiAwKSB7ICRjdXJyUm9sZVVzZXJJZHMgPSBnZXRSb2xlVXNlcklkcygkcm9sZWlkKTsgJHN1YlJvbGVVc2VySWRzID0gYXJyYXlfZGlmZigkc3Vib3JkaW5hdGVVc2VycywgJGN1cnJSb2xlVXNlcklkcyk7IH0gcmV0dXJuICRzdWJSb2xlVXNlcklkczsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0U2hhcmluZ01lbWJlckFycmF5KCR0ZW1wbGF0ZWlkLCRmb3JlZGl0ID0gZmFsc2UpIHsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJGQ2h6WmpsRWt2aU5WZVJOY0ZUdyJdLCBhcnJheSgkdGVtcGxhdGVpZCkpOyAkbWVtYmVyQXJyYXkgPSBhcnJheSgpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQpKSB7ICRzZXR5cGUgPSAkcm93WyRHTE9CQUxTWyJ0aGtxR3dhUlRmbVdGTnFMTXlpViJdXTsgJHR5cGUgPSAoJHNldHlwZSA9PSAkR0xPQkFMU1siU0NUSEZMWUxHZVFUYUNGVUJSRHciXT8kR0xPQkFMU1sicXNoVFlad2FmaGdNZGZGbFFxV3giXTp1Y2ZpcnN0KCRzZXR5cGUpKTsgaWYgKCRmb3JlZGl0KSAkc2V0eXBlID0gJHR5cGU7ICRtZW1iZXJBcnJheVskc2V0eXBlXVskdHlwZS4kR0xPQkFMU1siSllOdFZkVGZIbGdKa1RPak12dEwiXS4kcm93WyRHTE9CQUxTWyJQS1RTV3FiVGxaSXFId0NheEZucyJdXV0gPSAkcm93WyRHTE9CQUxTWyJQS1RTV3FiVGxaSXFId0NheEZucyJdXTsgfSByZXR1cm4gJG1lbWJlckFycmF5OyB9IHByaXZhdGUgZnVuY3Rpb24gc2V0TGljZW5zZUluZm8oKSB7ICR0aGlzLT52ZXJzaW9uX25vID0gUERGTWFrZXJfVmVyc2lvbl9IZWxwZXI6OiR2ZXJzaW9uOyAkcmVzdWx0ID0gJHRoaXMtPmRiLT5wcXVlcnkoJEdMT0JBTFNbIlhkRktVVGJiU29naXlFYVhHQWdQIl0sYXJyYXkoKSk7IGlmICgkdGhpcy0+ZGItPm51bV9yb3dzKCRyZXN1bHQpID4gMCkgeyAkdGhpcy0+dmVyc2lvbl90eXBlID0gJHRoaXMtPmRiLT5xdWVyeV9yZXN1bHQoJHJlc3VsdCwgMCwgJEdMT0JBTFNbInBmbmNycFFrc2VsVEdwcUp1aFlZIl0pOyAkdGhpcy0+bGljZW5zZV9rZXkgPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAwLCAkR0xPQkFMU1siQ2hXRWVCZE1LTktxbHdMdVJ5U0QiXSk7IH0gZWxzZSB7ICR0aGlzLT52ZXJzaW9uX3R5cGUgPSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXTsgJHRoaXMtPmxpY2Vuc2Vfa2V5ID0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl07IH0gfSBwcml2YXRlIGZ1bmN0aW9uIGdldFVzZXJTdGF0dXNEYXRhKCR0ZW1wbGF0ZWlkKSB7ICRjdXJyZW50X3VzZXIgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJHJlc3VsdCA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJVaWtFV1hCVEVpTXllVUxyTUl4QiJdLCBhcnJheSgkdGVtcGxhdGVpZCwgJGN1cnJlbnRfdXNlci0+aWQpKTsgJGRhdGEgPSBhcnJheSgpOyBpZiAoJHRoaXMtPmRiLT5udW1fcm93cygkcmVzdWx0KSA+IDApIHsgJGRhdGFbJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il1dID0gJHRoaXMtPmRiLT5xdWVyeV9yZXN1bHQoJHJlc3VsdCwgMCwgJEdMT0JBTFNbIk9VU0ltbllkTVBJRGhzQ0NZQmx3Il0pOyAkZGF0YVskR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXV0gPSAkdGhpcy0+ZGItPnF1ZXJ5X3Jlc3VsdCgkcmVzdWx0LCAwLCAkR0xPQkFMU1siUW5DSWN4eGNaTk5nY1Z3UU5rWkwiXSk7ICRkYXRhWyRHTE9CQUxTWyJjdlBpTlFGYndERnNyZFFISkRReSJdXSA9ICR0aGlzLT5kYi0+cXVlcnlfcmVzdWx0KCRyZXN1bHQsIDAsICRHTE9CQUxTWyJuUHhjUEJ6S1d6RVlsdVJRSVNQaiJdKTsgfSByZXR1cm4gJGRhdGE7IH0gcHJpdmF0ZSBmdW5jdGlvbiBtcGRmX3ByZXByb2Nlc3MoJiRtcGRmLCAkdGVtcGxhdGVpZCwgJGJyaWRnZSA9ICcnKSB7IGlmICgkYnJpZGdlICE9ICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdICYmIGlzX2FycmF5KCRicmlkZ2UpKSB7ICRtcGRmLT5QREZNYWtlclJlY29yZCA9ICRicmlkZ2VbJEdMT0JBTFNbImFjQ3RwREtqRnJGWkhTTnR5RUxIIl1dOyAkbXBkZi0+UERGTWFrZXJUZW1wbGF0ZWlkID0gJGJyaWRnZVskR0xPQkFMU1siZGJlbWJiWExNWHdIZmdVdW5ZS28iXV07IGlmIChpc3NldCgkYnJpZGdlWyRHTE9CQUxTWyJVSEJTRXJVRUxhTVpIY2lIUGFiSCJdXSkpICRtcGRmLT5QREZNYWtlclN1YnRvdGFsc0FycmF5ID0gJGJyaWRnZVskR0xPQkFMU1siVUhCU0VyVUVMYU1aSGNpSFBhYkgiXV07IH0gJHRoaXMtPm1wZGZfcHJvY2Vzc2luZygkbXBkZiwgJHRlbXBsYXRlaWQsICRHTE9CQUxTWyJlSlVMYkljQWRCeFpJTHNyTmpBIl0pOyB9IHByaXZhdGUgZnVuY3Rpb24gbXBkZl9wb3N0cHJvY2VzcygmJG1wZGYsICR0ZW1wbGF0ZWlkLCAkYnJpZGdlID0gJycpIHsgJHRoaXMtPm1wZGZfcHJvY2Vzc2luZygkbXBkZiwgJHRlbXBsYXRlaWQsICRHTE9CQUxTWyJreFp4SFFHeUNaemh0ZXBXbndFIl0pOyB9IHByaXZhdGUgZnVuY3Rpb24gbXBkZl9wcm9jZXNzaW5nKCYkbXBkZiwgJHRlbXBsYXRlaWQsICR3aGVuKSB7ICRwYXRoID0gJEdMT0JBTFNbIkNqTFBZbkR2R2ZJcUZMRk1VdlhIIl07IHN3aXRjaCAoJHdoZW4pIHsgY2FzZSAkR0xPQkFMU1siV2lndXFhbXV6RHhzdm9HR3l0dlkiXTogJGZpbGVuYW1lID0gJEdMT0JBTFNbIm5WaG5VdHVBUlBMYnBsanNjeGFZIl07ICRmdW5jdGlvbm5hbWUgPSAkR0xPQkFMU1siVGZKVlN4WHh6YU1IQkx6aExiYXkiXTsgYnJlYWs7IGNhc2UgJEdMT0JBTFNbInJFUk5PaUZOenRudUJLVG9ucGhuIl06ICRmaWxlbmFtZSA9ICRHTE9CQUxTWyJSWmlaSFh0elhaUGx4YUx5Z2dIViJdOyAkZnVuY3Rpb25uYW1lID0gJEdMT0JBTFNbIk1idEppUHZUVWt4a0xmUXlhT1pBIl07IGJyZWFrOyB9IGlmIChpc19maWxlKCRwYXRoIC4gJGZpbGVuYW1lKSAmJiBpc19yZWFkYWJsZSgkcGF0aCAuICRmaWxlbmFtZSkpIHsgcmVxdWlyZV9vbmNlKCRwYXRoIC4gJGZpbGVuYW1lKTsgJGZ1bmN0aW9ubmFtZSgkbXBkZiwgJHRlbXBsYXRlaWQpOyB9IH0gcHJpdmF0ZSBmdW5jdGlvbiBtcGRmX3ByZXBhcmVfaGVhZGVyX2Zvb3Rlcl9zZXR0aW5ncygmJG1wZGYsICR0ZW1wbGF0ZWlkLCAmJFNldHRpbmdzKSB7ICRtcGRmLT5QREZNYWtlclRlbXBsYXRlaWQgPSAkdGVtcGxhdGVpZDsgJGRpc3BfaGVhZGVyID0gJFNldHRpbmdzWyRHTE9CQUxTWyJXTXpIb2ZNZHZrZW5zZmppRWhDTyJdXTsgJGRpc3Bfb3B0aW9uc0FyciA9IGFycmF5KCJkaF9maXJzdCIsICJkaF9vdGhlciIpOyAkZGlzcF9oZWFkZXJfYmluID0gc3RyX3BhZChiYXNlX2NvbnZlcnQoJGRpc3BfaGVhZGVyLCAxMCwgMiksIDIsICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdLCBTVFJfUEFEX0xFRlQpOyBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZGlzcF9vcHRpb25zQXJyKTsgJGkrKykgeyBpZiAoc3Vic3RyKCRkaXNwX2hlYWRlcl9iaW4sICRpLCAxKSA9PSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXSkgJG1wZGYtPlBERk1ha2VyRGlzcEhlYWRlclskZGlzcF9vcHRpb25zQXJyWyRpXV0gPSB0cnVlOyBlbHNlICRtcGRmLT5QREZNYWtlckRpc3BIZWFkZXJbJGRpc3Bfb3B0aW9uc0FyclskaV1dID0gZmFsc2U7IH0gJGRpc3BfZm9vdGVyID0gJFNldHRpbmdzWyRHTE9CQUxTWyJRU2pHUktsSktTclJHVHBiWm8iXV07ICRkaXNwX29wdGlvbnNBcnIgPSBhcnJheSgiZGZfZmlyc3QiLCAiZGZfbGFzdCIsICJkZl9vdGhlciIpOyAkZGlzcF9mb290ZXJfYmluID0gc3RyX3BhZChiYXNlX2NvbnZlcnQoJGRpc3BfZm9vdGVyLCAxMCwgMiksIDMsICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdLCBTVFJfUEFEX0xFRlQpOyBmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZGlzcF9vcHRpb25zQXJyKTsgJGkrKykgeyBpZiAoc3Vic3RyKCRkaXNwX2Zvb3Rlcl9iaW4sICRpLCAxKSA9PSAkR0xPQkFMU1siVXR4RXduekd3RlNCbWR4cHJ6bm4iXSkgJG1wZGYtPlBERk1ha2VyRGlzcEZvb3RlclskZGlzcF9vcHRpb25zQXJyWyRpXV0gPSB0cnVlOyBlbHNlICRtcGRmLT5QREZNYWtlckRpc3BGb290ZXJbJGRpc3Bfb3B0aW9uc0FyclskaV1dID0gZmFsc2U7IH0gfSBwdWJsaWMgZnVuY3Rpb24gR2V0UmVsZWFzZXNOb3RpZigpIHsgJG5vdGlmID0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl07IHJldHVybiAkbm90aWY7IH0gcHVibGljIGZ1bmN0aW9uIEdldEN1c3RvbUxhYmVscygpIHsgcmVxdWlyZV9vbmNlKCRHTE9CQUxTWyJUYWpCaWZGV0l3WEhaTnRGbFVjIl0pOyAkb0xibEFyciA9IGFycmF5KCk7ICRsYW5ndWFnZXMgPSBhcnJheSgpOyBpZiAoJHRoaXMtPnZlcnNpb25fdHlwZSA9PSAicHJvZmVzc2lvbmFsIikgeyAkc3FsID0gJEdMT0JBTFNbInNOcFFneERKTkx4cE5LV0hOdERxIl07ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLGFycmF5KCkpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQpKSB7IGlmICghaXNzZXQoJG9MYmxBcnJbJHJvd1skR0xPQkFMU1siQVJsQ21MbUhDWnZndGNiSXVUZyJdXV0pKSB7ICRvTGJsID0gbmV3IFBERk1ha2VyTGFiZWwoJHJvd1skR0xPQkFMU1siQVJsQ21MbUhDWnZndGNiSXVUZyJdXSwgJHJvd1skR0xPQkFMU1siZEZad0xlUVhYaEx2bmFmUiJdXSk7ICRvTGJsQXJyWyRyb3dbJEdMT0JBTFNbIkFSbENtTG1IQ1p2Z3RjYkl1VGciXV1dID0gJG9MYmw7IH0gZWxzZSB7ICRvTGJsID0gJG9MYmxBcnJbJHJvd1skR0xPQkFMU1siQVJsQ21MbUhDWnZndGNiSXVUZyJdXV07IH0gJG9MYmwtPlNldExhbmdWYWx1ZSgkcm93WyRHTE9CQUxTWyJ0a0RwVFJEdnlLa1hrWkNCZmN5UyJdXSwgJHJvd1skR0xPQkFMU1siRmNZclVKWlV4aGZTRlFtTEV6bkIiXV0pOyB9ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siT1VORlVRcGJkTXFHY2dCZWMiXSxhcnJheSgkR0xPQkFMU1siU0hsUkNOTHpHdENHeUhoaGV0TGwiXSkpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQpKSB7ICRsYW5ndWFnZXNbJHJvd1skR0xPQkFMU1siRVdoc0NPTVdzWEtFcGlSa3l2em0iXV1dWyRHTE9CQUxTWyJYY2trSWFoalZPZWRWTmxkVU5ySCJdXSA9ICRyb3dbJEdMT0JBTFNbIlhja2tJYWhqVk9lZFZObGRVTnJIIl1dOyAkbGFuZ3VhZ2VzWyRyb3dbJEdMT0JBTFNbIkVXaHNDT01Xc1hLRXBpUmt5dnptIl1dXVskR0xPQkFMU1siZkl5bGN5SGxUdm1pVHhTZ3NZcm0iXV0gPSAkcm93WyRHTE9CQUxTWyJmSXlsY3lIbFR2bWlUeFNnc1lybSJdXTsgJGxhbmd1YWdlc1skcm93WyRHTE9CQUxTWyJFV2hzQ09NV3NYS0VwaVJreXZ6bSJdXV1bJEdMT0JBTFNbImR4bXl0eEZiUlhvZlNmeFViR1JnIl1dID0gJHJvd1skR0xPQkFMU1siZHhteXR4RmJSWG9mU2Z4VWJHUmciXV07IGZvcmVhY2ggKCRvTGJsQXJyIGFzICRvYmpMYmwpIHsgaWYgKCRvYmpMYmwtPklzTGFuZ1ZhbFNldCgkcm93WyRHTE9CQUxTWyJFV2hzQ09NV3NYS0VwaVJreXZ6bSJdXSkgPT0gZmFsc2UpICRvYmpMYmwtPlNldExhbmdWYWx1ZSgkcm93WyRHTE9CQUxTWyJFV2hzQ09NV3NYS0VwaVJreXZ6bSJdXSwgJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pOyB9IH0gfSByZXR1cm4gYXJyYXkoJG9MYmxBcnIsICRsYW5ndWFnZXMpOyB9IHB1YmxpYyBmdW5jdGlvbiBHZXRBdmFpbGFibGVTZXR0aW5ncygpIHsgJG1lbnVfYXJyYXkgPSBhcnJheSgpOyByZXR1cm4gJG1lbnVfYXJyYXk7IH0gcHVibGljIGZ1bmN0aW9uIEdldFByb2R1Y3RCbG9ja0ZpZWxkcygkc2VsZWN0X21vZHVsZSA9ICIiKSB7ICRjdXJyZW50X3VzZXIgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJHJlc3VsdCA9IGFycmF5KCk7ICRBcnRpY2xlX1N0cmluZ3MgPSBhcnJheSgiIiA9PiB2dHJhbnNsYXRlKCJMQkxfUExTX1NFTEVDVCIsICJQREZNYWtlciIpLCB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ3R1BsckRiS0ZnYkxQaWhiUGZsUCJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgPT4gYXJyYXkoICJQUk9EVUNUQkxPQ19TVEFSVCIgPT4gdnRyYW5zbGF0ZSgiTEJMX0FSVElDTEVfU1RBUlQiLCAiUERGTWFrZXIiKSwgJEdMT0JBTFNbInRleVhWdnBqYVp3YXlKUUtEWmFqIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siRmtkb1FVZGdNVm9qQktGUG1ieGciXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pKSwgdnRyYW5zbGF0ZSgkR0xPQkFMU1siaGR5QWhYTXB3QW9wVXFBQmlUWG0iXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pID0+IGFycmF5KCAiUFJPRFVDVEJMT0NfUFJPRFVDVFNfU1RBUlQiID0+IHZ0cmFuc2xhdGUoIkxCTF9BUlRJQ0xFX1NUQVJUIiwgIlBERk1ha2VyIiksICRHTE9CQUxTWyJWcHZ1VUVZdmZXb2J5RFFsa3RNIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1siRmtkb1FVZGdNVm9qQktGUG1ieGciXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pKSwgdnRyYW5zbGF0ZSgkR0xPQkFMU1siTGtxdEViWXhYdVVYZkt5R1pGTlUiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pID0+IGFycmF5KCAiUFJPRFVDVEJMT0NfU0VSVklDRVNfU1RBUlQiID0+IHZ0cmFuc2xhdGUoIkxCTF9BUlRJQ0xFX1NUQVJUIiwgIlBERk1ha2VyIiksICRHTE9CQUxTWyJMRWVNRHBqRVJTS0xraVRSTFladSJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIkZrZG9RVWRnTVZvakJLRlBtYnhnIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSksICk7ICRyZXN1bHRbJEdMT0JBTFNbIkdPWFRlQkxpSm55RmhFR0dRZVR0Il1dID0gJEFydGljbGVfU3RyaW5nczsgJFByb2R1Y3RfRmllbGRzID0gYXJyYXkoIlBTX0NSTUlEIiA9PiB2dHJhbnNsYXRlKCJMQkxfUkVDT1JEX0lEIiwgIlBERk1ha2VyIiksICRHTE9CQUxTWyJhb01KRkdVdURDS1dzZWZnR2ZGdSJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIkNjUGxNcW5YYkJUQXJVcmVuZkh1Il0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSwgJEdMT0JBTFNbInV0RU9BT1Voc1J3VWxDd0VCVFAiXSA9PiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJQdUpEYmhwZVBTSUlKUHRlYU5iZiJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSksICRHTE9CQUxTWyJjSkJvdEt5eWhxT3h3UnV6andUeSJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImltU0REc2pXTWVYQ2JUdnh3TFd3Il0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSwgJEdMT0JBTFNbIlZKZGNURUN2YU15Y0RwQWZmWGxsIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1sia0dxeEtZTVp4eFpBTVdJV2JwQXciXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pLCAkR0xPQkFMU1sic2dLelNWcWlKSmJRRU5HWHZqSm8iXSA9PiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJVV2NOQlJkS3hpTnVNbUxRT1hqZSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSksICRHTE9CQUxTWyJZdUdnWmhGRld2SGRYS2pkdnFuRyJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIklOWGtEaGlUTGNrSnJJWW5xWUJpIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKSwgJEdMT0JBTFNbImNkRElBS3JqZGZ5VWxiZkpuZXFtIl0gPT4gdnRyYW5zbGF0ZSgkR0xPQkFMU1sidkd1cHRacUVQS0VyQUpJWnFsdk4iXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pLCAkR0xPQkFMU1siWk9uY1hHcUlpY2RabnVVb1lSZ2giXSA9PiB2dHJhbnNsYXRlKCRHTE9CQUxTWyJjT0pmS3VxWmlrTExCZW5wdE5scSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSksICRHTE9CQUxTWyJlYWJscnRvS1RRb2R1Tkt0RnpSWiJdID0+IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInJlamhYeExFZXJFdUxKRU9mbW8iXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pICk7IGlmICgkdGhpcy0+ZGItPm51bV9yb3dzKCR0aGlzLT5kYi0+cXVlcnkoJEdMT0JBTFNbIkRkY1lDT21YZXphTUZlWkxTU05DIl0pKSA+IDApICRQcm9kdWN0X0ZpZWxkc1skR0xPQkFMU1siZU91aG5Cbmtvd3luZmxjTyJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImRvUkV1U0l3Tk50alpJam1MUkMiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbIlFmdlNSWFJBUWJ4SU14ZmthZFJGIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siU3lvV29JQWFseE5iUFlhU09rbVUiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbIkRsTGhtenNPTHd5d0Nhc0ZkdW9rIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siS3lDU01CWmZYVnh1aE9SdEtlZlUiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbIlVoSHBubWJqQ3JTaGhHZGYiXV0gPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJ1dldXRnpDR2lWeVdSTGxLeHciXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbIkRITWpsenFDRURJVWRUQ1BlTUJKIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siSmxUck1pRWROclRQZktEbWZmVSJdLCAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSk7ICRQcm9kdWN0X0ZpZWxkc1skR0xPQkFMU1sianBHdFpieHp6U1BvV0dBYyJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInJFckNRS0h5R3BNYkpSdG5XU0dYIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgJFByb2R1Y3RfRmllbGRzWyRHTE9CQUxTWyJ1dHdweGFmaFNUYkpXWWlOZFFidyJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIldodGpsSWNVaFlrQWFYdm9rekFsIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgJFByb2R1Y3RfRmllbGRzWyRHTE9CQUxTWyJ1d2RpRkFRbGhEVlV0blZEU2VGeiJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbIlpQc3diSGtCcGRVTkVRU1pLUUtsIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgJFByb2R1Y3RfRmllbGRzWyRHTE9CQUxTWyJTTVJ3Rm9OakdRVlBOcEl5ZlNDaSJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbInl4dGJMRE95S1Zxa3JVUGNBc1UiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbInJhbmtDTGl2QURQbFZkdHZnT3JMIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siaUtBcHNqSXFTTVR0SnBxVVN5a0giXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyAkUHJvZHVjdF9GaWVsZHNbJEdMT0JBTFNbInhOckRQb2hpT3JIbUVWRlBMTmJsIl1dID0gdnRyYW5zbGF0ZSgkR0xPQkFMU1siRERKT0pSWFhXWWN2eE9uVkNpbkUiXSwgJEdMT0JBTFNbImRQVk9XbXdHZ2NkWmVsdXplWlZZIl0pOyBpZiAoJHNlbGVjdF9tb2R1bGUgIT0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl0pIHsgJHJlc3VsdDEgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siRXpsWlJSalBRSW50a1RnWURsZkMiXSwgYXJyYXkoKSk7IHdoaWxlICgkcm93MSA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXN1bHQxKSkgeyAkVGF4ZXNbJHJvdzFbJEdMT0JBTFNbImRPTERjWWlDV2pkZmJSYVBPZ25LIl1dXSA9ICRyb3cxWyRHTE9CQUxTWyJHVGxaeGdMZ05Va1laVmlKTWhvaCJdXTsgfSAkc2VsZWN0X21vZHVsZWlkID0gZ2V0VGFiaWQoJHNlbGVjdF9tb2R1bGUpOyAkcmVzdWx0MiA9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJFRXpwVEh1VWpRa05GRGVhTURZIl0sIGFycmF5KCJ2dGlnZXJfaW52ZW50b3J5cHJvZHVjdHJlbCIsJHNlbGVjdF9tb2R1bGVpZCkpOyB3aGlsZSAoJHJvdzIgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkcmVzdWx0MikpIHsgaWYgKCRyb3cyWyRHTE9CQUxTWyJYeUl3elRadVFuY3RPaWN3UGd3QiJdXSA9PSAkR0xPQkFMU1siRnpNQndzT0ZNd05yVFBrRFVEQ1EiXSkgeyAkbGFiZWwgPSB2dHJhbnNsYXRlKCRHTE9CQUxTWyJKV0NlZkxTZFJOS0FhdEZUdk9CeiJdKTsgJGxhYmVsIC49ICRHTE9CQUxTWyJVVG1LUkhFc1NiZE9IbUx4SWRTYiJdOyAkbGFiZWwgLj0gdnRyYW5zbGF0ZSgkVGF4ZXNbJHJvdzJbJEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il1dXSwgJHNlbGVjdF9tb2R1bGUpOyAkbGFiZWwgLj0gJEdMT0JBTFNbIlFmZVh4cVl0Q0xheWxlUVBXIl07IH0gZWxzZSB7ICRsYWJlbCA9IHZ0cmFuc2xhdGUoJHJvdzJbJEdMT0JBTFNbIkFMYUJ6R2pqZExLaURmdXhIZHJJIl1dLCAkc2VsZWN0X21vZHVsZSk7IH0gJFByb2R1Y3RfRmllbGRzWyRHTE9CQUxTWyJPbXp2Z3BMZ2JXdm9laGNwUkxoTCJdLnN0cnRvdXBwZXIoJHJvdzJbJEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il1dKV0gPSAkbGFiZWw7IH0gfSAkcmVzdWx0WyRHTE9CQUxTWyJPUUNjZFlIc2NPcWRvZXF5bU9uSyJdXSA9ICRQcm9kdWN0X0ZpZWxkczsgJHByb2RfZmllbGRzID0gJHNlcnZfZmllbGRzID0gYXJyYXkoKTsgJGluID0gZ2V0VGFiSWQoJ1Byb2R1Y3RzJyk7ICRpbiAuPSAkR0xPQkFMU1siVUVyWEVTVmdpWEVUYk1hVXNBdm0iXSAuIGdldFRhYklkKCRHTE9CQUxTWyJhbHlOamJIQWF0RVpCTWx6cVZIbiJdKTsgJHNxbCA9ICRHTE9CQUxTWyJpRmdETVdQV3lobWR3ZlZua295UiJdIC4gJGluIC4gJEdMT0JBTFNbImlBUFpQYVdydlJhWVFsbENacmRNIl07ICRyZXMgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLGFycmF5KCkpOyB3aGlsZSAoJHJvdyA9ICR0aGlzLT5kYi0+ZmV0Y2hCeUFzc29jKCRyZXMpKSB7ICRtb2R1bGUgPSAkcm93WyRHTE9CQUxTWyJYY2trSWFoalZPZWRWTmxkVU5ySCJdXTsgJGZpZWxkbmFtZSA9ICRyb3dbJEdMT0JBTFNbIkdlTnhLSHZqcnJPR29uZ0R4ZU52Il1dOyBpZiAoZ2V0RmllbGRWaXNpYmlsaXR5UGVybWlzc2lvbigkbW9kdWxlLCAkY3VycmVudF91c2VyLT5pZCwgJGZpZWxkbmFtZSkgIT0gJEdMT0JBTFNbImFhVlNuZ2Z5S0hMUWd4WnZ3clkiXSkgY29udGludWU7ICR0cmFuc19maWVsZF9uYW0gPSBzdHJ0b3VwcGVyKCRtb2R1bGUpIC4gJEdMT0JBTFNbIk1iYWpETkpSaG1NT3dHb2pzY3ZVIl0gLiBzdHJ0b3VwcGVyKCRmaWVsZG5hbWUpOyBzd2l0Y2ggKCRtb2R1bGUpIHsgY2FzZSAkR0xPQkFMU1siaEduYWRWZFNNUERKdHZiTW54Sk0iXTogJHRyYW5zX2Jsb2NrX2xibCA9IHZ0cmFuc2xhdGUoJHJvd1skR0xPQkFMU1sidGxwYmZqS0dkSk51Q25aVGx5UnciXV0sICRHTE9CQUxTWyJ6TW9CZXN1ZGVQTXN0blB6VFJadSJdKTsgJHRyYW5zX2ZpZWxkX2xibCA9IHZ0cmFuc2xhdGUoJHJvd1skR0xPQkFMU1siQUxhQnpHampkTEtpRGZ1eEhkckkiXV0sICRHTE9CQUxTWyJ6TW9CZXN1ZGVQTXN0blB6VFJadSJdKTsgJHByb2RfZmllbGRzWyR0cmFuc19ibG9ja19sYmxdWyR0cmFuc19maWVsZF9uYW1dID0gJHRyYW5zX2ZpZWxkX2xibDsgYnJlYWs7IGNhc2UgJEdMT0JBTFNbInFlcEhJSmhERktGeUV4cXZlUUJEIl06ICR0cmFuc19ibG9ja19sYmwgPSB2dHJhbnNsYXRlKCRyb3dbJEdMT0JBTFNbInRscGJmaktHZEpOdUNuWlRseVJ3Il1dLCAkR0xPQkFMU1siYWx5TmpiSEFhdEVaQk1senFWSG4iXSk7ICR0cmFuc19maWVsZF9sYmwgPSB2dHJhbnNsYXRlKCRyb3dbJEdMT0JBTFNbIkFMYUJ6R2pqZExLaURmdXhIZHJJIl1dLCAkR0xPQkFMU1siYWx5TmpiSEFhdEVaQk1senFWSG4iXSk7ICRzZXJ2X2ZpZWxkc1skdHJhbnNfYmxvY2tfbGJsXVskdHJhbnNfZmllbGRfbmFtXSA9ICR0cmFuc19maWVsZF9sYmw7IGJyZWFrOyBkZWZhdWx0OiBjb250aW51ZTsgfSB9ICRyZXN1bHRbJEdMT0JBTFNbInhiS0lreVZBeGRURkVSUlJ4ZyJdXSA9ICRwcm9kX2ZpZWxkczsgJHJlc3VsdFskR0xPQkFMU1siZHRVRHNMVHh4eHZvckVEekJVZXQiXV0gPSAkc2Vydl9maWVsZHM7IHJldHVybiAkcmVzdWx0OyB9IHB1YmxpYyBmdW5jdGlvbiBHZXRSZWxhdGVkQmxvY2tzKCRzZWxlY3RfbW9kdWxlLCRzZWxlY3RfdG9vID0gdHJ1ZSkgeyAkUmVsYXRlZF9CbG9ja3MgPSBhcnJheSgpOyBpZigkc2VsZWN0X3RvbykgJFJlbGF0ZWRfQmxvY2tzWyRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdXSA9IHZ0cmFuc2xhdGUoJEdMT0JBTFNbImhPR21VVmlGWWhyeVFwSHpMWlROIl0sICRHTE9CQUxTWyJkUFZPV213R2djZFplbHV6ZVpWWSJdKTsgaWYgKCRzZWxlY3RfbW9kdWxlICE9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdKSB7ICRSZWxhdGVkX01vZHVsZXMgPSBQREZNYWtlcl9SZWxhdGVkQmxvY2tfTW9kZWw6OmdldFJlbGF0ZWRNb2R1bGVzTGlzdCgkc2VsZWN0X21vZHVsZSk7IGlmIChjb3VudCgkUmVsYXRlZF9Nb2R1bGVzKSA+IDApIHsgJHNxbCA9ICRHTE9CQUxTWyJVakJreG1GeG11QVVDWkxHU3hGUiJdIC4gZ2VuZXJhdGVRdWVzdGlvbk1hcmtzKCRSZWxhdGVkX01vZHVsZXMpIC4gJEdMT0JBTFNbIklqQXlNVlpsbk1tWUh0dWNtZVNwIl07ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkc3FsLCAkUmVsYXRlZF9Nb2R1bGVzKTsgd2hpbGUgKCRyb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkcmVzdWx0KSkgeyBpZiAoJHJvd1skR0xPQkFMU1siRUVWU0VLQXhnYVFWak9NS1NGYVEiXV0gPT0gJEdMT0JBTFNbIkRQanhmd1Z4SXR6U0J1RGlPSGlsIl0gJiYgJHJvd1skR0xPQkFMU1siRUVWU0VLQXhnYVFWak9NS1NGYVEiXV0gIT0gJHNlbGVjdF9tb2R1bGUpIHsgJGNzcWwgPSAkR0xPQkFMU1siZ0t4bFNtT05XZmlDcVVTc1ZVZ0kiXTsgJGNyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkY3NxbCwgYXJyYXkoJHJvd1sicmVsYmxvY2tpZCJdLCJ2dGlnZXJfcHJpY2Vib29rcHJvZHVjdHJlbHRtcCUiKSk7IGlmICgkdGhpcy0+ZGItPm51bV9yb3dzKCRjcmVzdWx0KSA+IDApIGNvbnRpbnVlOyB9ICRSZWxhdGVkX0Jsb2Nrc1skcm93WyRHTE9CQUxTWyJBaWJpc3BuelFFa1NpTURBZmpWbiJdXV0gPSAkcm93WyRHTE9CQUxTWyJYY2trSWFoalZPZWRWTmxkVU5ySCJdXTsgfSB9IH0gcmV0dXJuICRSZWxhdGVkX0Jsb2NrczsgfSBwdWJsaWMgZnVuY3Rpb24gR2V0VXNlclNldHRpbmdzKCR1c2VyaWQgPSAiIikgeyAkY3VycmVudF91c2VyID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICR1c2VyaWQgPSAoJHVzZXJpZCA9PSAkR0xPQkFMU1siU25zU1N3TUtaU1llTUZuRWlybmgiXSA/ICRjdXJyZW50X3VzZXItPmlkIDogJHVzZXJpZCk7ICRyZXN1bHQgPSAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1sidmNmWElEYlJPZWFvU09HVWF1eE0iXSwgYXJyYXkoJHVzZXJpZCkpOyAkc2V0dGluZ3MgPSBhcnJheSgpOyBpZiAoJHRoaXMtPmRiLT5udW1fcm93cygkcmVzdWx0KSA+IDApIHsgd2hpbGUgKCRyb3cgPSAkdGhpcy0+ZGItPmZldGNoQnlBc3NvYygkcmVzdWx0KSkgeyAkc2V0dGluZ3NbJEdMT0JBTFNbInd3YXVmSEVOb1ZuSEtOYkFEZnZlIl1dID0gJHJvd1skR0xPQkFMU1sid3dhdWZIRU5vVm5IS05iQURmdmUiXV07IH0gfSBlbHNlIHsgJHNldHRpbmdzWyRHTE9CQUxTWyJ3d2F1ZkhFTm9WbkhLTmJBRGZ2ZSJdXSA9ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdOyB9IHJldHVybiAkc2V0dGluZ3M7IH0gcHVibGljIGZ1bmN0aW9uIGdldFNpZGVCYXJMaW5rcygkbGlua1BhcmFtcykgeyAkY3VycmVudFVzZXJNb2RlbCA9IFVzZXJzX1JlY29yZF9Nb2RlbDo6Z2V0Q3VycmVudFVzZXJNb2RlbCgpOyAkdHlwZSA9ICRHTE9CQUxTWyJnVUVoT3hKZHRjZWhQUUhBY1EiXTsgJHF1aWNrTGlua3MgPSBhcnJheSgpOyBpZiAoJGxpbmtQYXJhbXNbIkFDVElPTiJdID09ICJQcm9maWxlc1ByaXZpbGVnaWVzIikgeyAkcXVpY2tTTGlua3MgPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAiU0lERUJBUkxJTksiLCAnbGlua2xhYmVsJyA9PiAiTEJMX1JFQ09SRFNfTElTVCIsICdsaW5rdXJsJyA9PiAiaW5kZXgucGhwP21vZHVsZT1QREZNYWtlciZ2aWV3PUxpc3QiLCAnbGlua2ljb24nID0+ICcnKTsgJGxpbmtzWyRHTE9CQUxTWyJnVUVoT3hKZHRjZWhQUUhBY1EiXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJHF1aWNrU0xpbmtzKTsgfSBlbHNlaWYgKCRsaW5rUGFyYW1zWyRHTE9CQUxTWyJoQnl3UVZMdWV1SnVyR0FrUHFQSSJdXSA9PSAkR0xPQkFMU1sidHpCVm1hcFBUUEl3U1VsZktSY3EiXSAmJiAkbGlua1BhcmFtc1skR0xPQkFMU1siUGRacXdrVXpNV3RHd2hTV1JGZU0iXV0gPT0gJEdMT0JBTFNbIlF5dXlxeUhXYmNzSkpaalRrVE5iIl0pIHsgaWYoJGN1cnJlbnRVc2VyTW9kZWwtPmlzQWRtaW5Vc2VyKCkpIHsgJFNldHRpbmdzTGlua3MgPSAkdGhpcy0+R2V0QXZhaWxhYmxlU2V0dGluZ3MoKTsgZm9yZWFjaCgkU2V0dGluZ3NMaW5rcyBhcyAkc3R5cGUgPT4gJHNkYXRhKSB7ICRxdWlja0xpbmtzW10gPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAnU0lERUJBUkxJTksnLCAnbGlua2xhYmVsJyA9PiAkc2RhdGFbImxhYmVsIl0sICdsaW5rdXJsJyA9PiAkc2RhdGFbImxvY2F0aW9uIl0sICdsaW5raWNvbicgPT4gJycpOyB9IH0gfSBlbHNlIHsgJGxpbmtUeXBlcyA9IGFycmF5KCdTSURFQkFSTElOSycsICdTSURFQkFSV0lER0VUJyk7ICRsaW5rcyA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRBbGxCeVR5cGUoJHRoaXMtPmdldElkKCksICRsaW5rVHlwZXMsICRsaW5rUGFyYW1zKTsgJHF1aWNrTGlua3NbXSA9IGFycmF5KCAnbGlua3R5cGUnID0+ICdTSURFQkFSTElOSycsICdsaW5rbGFiZWwnID0+ICdMQkxfUkVDT1JEU19MSVNUJywgJ2xpbmt1cmwnID0+ICR0aGlzLT5nZXRMaXN0Vmlld1VybCgpLCAnbGlua2ljb24nID0+ICcnLCApOyBpZiAodnRsaWJfaXNNb2R1bGVBY3RpdmUoJEdMT0JBTFNbInd1VFVhSlhaQ3ZrR1lMd01ZV2FoIl0pKXsgJHF1aWNrTGlua3NbXSA9IGFycmF5KCAnbGlua3R5cGUnID0+ICdTSURFQkFSTElOSycsICdsaW5rbGFiZWwnID0+ICdMQkxfU1RZTEVTX0xJU1QnLCAnbGlua3VybCcgPT4gImluZGV4LnBocD9tb2R1bGU9SVRTNFlvdVN0eWxlcyZ2aWV3PUxpc3QiLCAnbGlua2ljb24nID0+ICcnLCApOyB9IH0gaWYgKGNvdW50KCRxdWlja0xpbmtzKSA+IDApIHsgZm9yZWFjaCAoJHF1aWNrTGlua3MgYXMgJHF1aWNrTGluaykgeyAkbGlua3NbJHR5cGVdW10gPSBWdGlnZXJfTGlua19Nb2RlbDo6Z2V0SW5zdGFuY2VGcm9tVmFsdWVzKCRxdWlja0xpbmspOyB9IH0gaWYoJGN1cnJlbnRVc2VyTW9kZWwtPmlzQWRtaW5Vc2VyKCkgJiYgJGxpbmtQYXJhbXNbJEdMT0JBTFNbImhCeXdRVkx1ZXVKdXJHQWtQcVBJIl1dICE9ICRHTE9CQUxTWyJ5SXJwa3BTTllIbGVUdHdPTHRmRyJdICYmICRsaW5rUGFyYW1zWyRHTE9CQUxTWyJoQnl3UVZMdWV1SnVyR0FrUHFQSSJdXSAhPSAkR0xPQkFMU1siaEhIS3F4U3hYU1BMUmttV05vamIiXSkgeyAkcXVpY2tTMkxpbmtzID0gYXJyYXkoICdsaW5rdHlwZScgPT4gIlNJREVCQVJXSURHRVQiLCAnbGlua2xhYmVsJyA9PiAiTEJMX1NFVFRJTkdTIiwgJ2xpbmt1cmwnID0+ICJtb2R1bGU9UERGTWFrZXImdmlldz1JbmRleEFqYXgmbW9kZT1zaG93U2V0dGluZ3NMaXN0JnB2aWV3PSIuJGxpbmtQYXJhbXNbIkFDVElPTiJdLCAnbGlua2ljb24nID0+ICcnKTsgJGxpbmtzWyRHTE9CQUxTWyJtR0tOT2laenNrU1FiU1F1Z09xTyJdXVtdID0gVnRpZ2VyX0xpbmtfTW9kZWw6OmdldEluc3RhbmNlRnJvbVZhbHVlcygkcXVpY2tTMkxpbmtzKTsgfSByZXR1cm4gJGxpbmtzOyB9IHB1YmxpYyBmdW5jdGlvbiBnZXRMaXN0Vmlld0xpbmtzKCRsaW5rUGFyYW1zKSB7ICRjdXJyZW50VXNlck1vZGVsID0gVXNlcnNfUmVjb3JkX01vZGVsOjpnZXRDdXJyZW50VXNlck1vZGVsKCk7ICRsaW5rVHlwZXMgPSBhcnJheSgnTElTVFZJRVdNQVNTQUNUSU9OJywnTElTVFZJRVdTRVRUSU5HJyk7ICRsaW5rcyA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRBbGxCeVR5cGUoJHRoaXMtPmdldElkKCksICRsaW5rVHlwZXMsICRsaW5rUGFyYW1zKTsgaWYgKCR0aGlzLT5DaGVja1Blcm1pc3Npb25zKCRHTE9CQUxTWyJQRGZ2amdLeFFlRVlOV05KbFJaZCJdKSAmJiAkdGhpcy0+R2V0VmVyc2lvblR5cGUoKSAhPSAkR0xPQkFMU1sicUJ2Z0VlVFBQeGxBdXBIdktiaFUiXSkgeyAkbWFzc0FjdGlvbkxpbmsgPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAnTElTVFZJRVdNQVNTQUNUSU9OJywgJ2xpbmtsYWJlbCcgPT4gJ0xCTF9ERUxFVEUnLCAnbGlua3VybCcgPT4gJ2phdmFzY3JpcHQ6UERGTWFrZXJfTGlzdEpzLm1hc3NEZWxldGVUZW1wbGF0ZXMoKTsnLCAnbGlua2ljb24nID0+ICcnICk7ICRsaW5rc1skR0xPQkFMU1siSFhma1lrQllTQWpnWGFabVJaaFIiXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJG1hc3NBY3Rpb25MaW5rKTsgfSAkcXVpY2tMaW5rcyA9IGFycmF5KCk7IGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9ucygiRURJVCIpICYmICR0aGlzLT5HZXRWZXJzaW9uVHlwZSgpICE9ICRHTE9CQUxTWyJxQnZnRWVUUFB4bEF1cEh2S2JoVSJdKSB7ICRxdWlja0xpbmtzIFtdID0gYXJyYXkoICdsaW5rdHlwZScgPT4gJ0xJU1RWSUVXJywgJ2xpbmtsYWJlbCcgPT4gJ0xCTF9JTVBPUlQnLCAnbGlua3VybCcgPT4gJ2luZGV4LnBocD9tb2R1bGU9UERGTWFrZXImdmlldz1JbXBvcnRQREZUZW1wbGF0ZScsICdsaW5raWNvbicgPT4gJycpOyB9IGlmICgkdGhpcy0+Q2hlY2tQZXJtaXNzaW9ucygkR0xPQkFMU1siQVl0cEZHakNZUFdoR1hlRmluWVQiXSkgKSB7ICRxdWlja0xpbmtzIFtdID0gYXJyYXkoICdsaW5rdHlwZScgPT4gJ0xJU1RWSUVXJywgJ2xpbmtsYWJlbCcgPT4gJ0xCTF9FWFBPUlQnLCAnbGlua3VybCcgPT4gJ2phdmFzY3JpcHQ6RXhwb3J0VGVtcGxhdGVzKCk7JywgJ2xpbmtpY29uJyA9PiAnJyk7IH0gZm9yZWFjaCgkcXVpY2tMaW5rcyBhcyAkcXVpY2tMaW5rKSB7ICRsaW5rc1skR0xPQkFMU1siS3FqdXNhWkhSQXBxdmJNcXlaRk8iXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJHF1aWNrTGluayk7IH0gaWYoJGN1cnJlbnRVc2VyTW9kZWwtPmlzQWRtaW5Vc2VyKCkpIHsgJHNldHRpbmdzTGlua3MgPSAkdGhpcy0+Z2V0U2V0dGluZ0xpbmtzKCk7IGZvcmVhY2goJHNldHRpbmdzTGlua3MgYXMgJHNldHRpbmdzTGluaykgeyAkbGlua3NbJEdMT0JBTFNbIm9VTENoUWxRT2pWQURudEFCUWsiXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJHNldHRpbmdzTGluayk7IH0gJFNldHRpbmdzTGlua3MgPSAkdGhpcy0+R2V0QXZhaWxhYmxlU2V0dGluZ3MoKTsgZm9yZWFjaCgkU2V0dGluZ3NMaW5rcyBhcyAkc3R5cGUgPT4gJHNkYXRhKSB7ICRzX3BhcnIgPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAnTElTVFZJRVdTRVRUSU5HJywgJ2xpbmtsYWJlbCcgPT4gJHNkYXRhWyJsYWJlbCJdLCAnbGlua3VybCcgPT4gJHNkYXRhWyJsb2NhdGlvbiJdLCAnbGlua2ljb24nID0+ICcnKTsgJGxpbmtzWyRHTE9CQUxTWyJvVUxDaFFsUU9qVkFEbnRBQlFrIl1dW10gPSBWdGlnZXJfTGlua19Nb2RlbDo6Z2V0SW5zdGFuY2VGcm9tVmFsdWVzKCRzX3BhcnIpOyB9IH0gcmV0dXJuICRsaW5rczsgfSBmdW5jdGlvbiBnZW5lcmF0ZV9jb29sX3VyaSgkbmFtZSkgeyAkU2VhcmNoID0gYXJyYXkoIiQiLCAi4oKsIiwgIiYiLCAiJSIsICIpIiwgIigiLCAiLiIsICIgLSAiLCAiLyIsICIgIiwgIiwiLCAixL4iLCAixaEiLCAixI0iLCAixaUiLCAixb4iLCAiw70iLCAiw6EiLCAiw60iLCAiw6kiLCAiw7MiLCAiw7YiLCAixa8iLCAiw7oiLCAiw7wiLCAiw6QiLCAixYgiLCAixI8iLCAiw7QiLCAixZUiLCAixL0iLCAixaAiLCAixIwiLCAixaQiLCAixb0iLCAiw50iLCAiw4EiLCAiw40iLCAiw4kiLCAiw5MiLCAiw5oiLCAixI4iLCAiXCIiLCAiwrAiLCAiw58iKTsgJFJlcGxhY2UgPSBhcnJheSgiIiwgIiIsICIiLCAiIiwgIiIsICIiLCAiLSIsICItIiwgIi0iLCAiLSIsICItIiwgImwiLCAicyIsICJjIiwgInQiLCAieiIsICJ5IiwgImEiLCAiaSIsICJlIiwgIm8iLCAibyIsICJ1IiwgInUiLCAidSIsICJhIiwgIm4iLCAiZCIsICJvIiwgInIiLCAibCIsICJzIiwgImMiLCAidCIsICJ6IiwgInkiLCAiYSIsICJpIiwgImUiLCAibyIsICJ1IiwgImQiLCAiIiwgIiIsICJzcyIpOyAkcmV0dXJuID0gc3RyX3JlcGxhY2UoJFNlYXJjaCwgJFJlcGxhY2UsICRuYW1lKTsgcmV0dXJuICRyZXR1cm47IH0gZnVuY3Rpb24gY3JlYXRlUERGQW5kU2F2ZUZpbGUoJHJlcXVlc3QsJHRlbXBsYXRlcywgJGZvY3VzLCAkUmVjb3JkcywgJGZpbGVfbmFtZSwgJG1vZHVsZU5hbWUsICRsYW5ndWFnZSkgeyAkY3UgPSBVc2Vyc19SZWNvcmRfTW9kZWw6OmdldEN1cnJlbnRVc2VyTW9kZWwoKTsgJGRsID0gVnRpZ2VyX0xhbmd1YWdlX0hhbmRsZXI6OmdldExhbmd1YWdlKCk7ICRkYXRlX3ZhciA9IGRhdGUoJEdMT0JBTFNbInJjckpLTFNGclNSdEdubnVmUk9JIl0pOyAkb3duZXJpZCA9ICRmb2N1cy0+Y29sdW1uX2ZpZWxkc1skR0xPQkFMU1siaGNsb3JsTnF1TE9CWXZFekt6dXIiXV07IGlmICghaXNzZXQoJG93bmVyaWQpIHx8ICRvd25lcmlkID09ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdKSAkb3duZXJpZCA9ICRjdS0+aWQ7ICRjdXJyZW50X2lkID0gJHRoaXMtPmRiLT5nZXRVbmlxdWVJRCgkR0xPQkFMU1siUk5xS0hSQ2NaTW9vRVBsT0pZdGkiXSk7IGlmIChpc19hcnJheSgkdGVtcGxhdGVzKSl7ICRUZW1wbGF0ZWlkcyA9ICR0ZW1wbGF0ZXM7IH0gZWxzZSB7ICR0ZW1wbGF0ZXMgPSBydHJpbSgkdGVtcGxhdGVzLCAkR0xPQkFMU1sieUtKWUVBc3BZR1dlUXVhUHFDckoiXSk7IGlmICgkdGVtcGxhdGVzICE9ICRHTE9CQUxTWyJlWnJLemZVZ0J4c2FJQUhWTlh3cyJdKXsgJFRlbXBsYXRlaWRzID0gZXhwbG9kZSgkR0xPQkFMU1sieUtKWUVBc3BZR1dlUXVhUHFDckoiXSwgJHRlbXBsYXRlcyk7IH0gZWxzZXsgJFRlbXBsYXRlaWRzID0gYXJyYXkoKTsgfSB9IGlmICghJGxhbmd1YWdlIHx8ICRsYW5ndWFnZSA9PSAiIil7ICRsYW5ndWFnZSA9ICRkbDsgfSAkcHJlQ29udGVudCA9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdOyAkbW9kZSA9ICRyZXF1ZXN0LT5nZXQoJEdMT0JBTFNbIk9YRENZWVRtdEhaaEdPR2lhR2JJIl0pOyAkbW9kdWxlID0gJHJlcXVlc3QtPmdldCgkR0xPQkFMU1siTndranFra2JkbUJDV1pSd0tHQnoiXSk7IGlmIChpc3NldCgkbW9kZSkgJiYgJG1vZGUgPT0gJEdMT0JBTFNbInVMUm5WdE1oaWxrQlRGY1lDTkpJIl0gJiYgaXNzZXQoJG1vZHVsZSkgJiYgJG1vZHVsZSA9PSAkR0xPQkFMU1siZFBWT1dtd0dnY2RaZWx1emVaVlkiXSkgeyBmb3JlYWNoICgkVGVtcGxhdGVpZHMgYXMgJHRlbXBsYXRlaWQpIHsgJHByZUNvbnRlbnRbJEdMT0JBTFNbIk5UeVFIanNaekVJY0N0c2lUSmZ3Il0gLiAkdGVtcGxhdGVpZF0gPSAkcmVxdWVzdC0+Z2V0KCRHTE9CQUxTWyJOVHlRSGpzWnpFSWNDdHNpVEpmdyJdIC4gJHRlbXBsYXRlaWQpOyAkcHJlQ29udGVudFskR0xPQkFMU1sia3ZCY3RUUEFiUnNoZ09mSnhJQnAiXSAuICR0ZW1wbGF0ZWlkXSA9ICRyZXF1ZXN0LT5nZXQoJEdMT0JBTFNbImt2QmN0VFBBYlJzaGdPZkp4SUJwIl0gLiAkdGVtcGxhdGVpZCk7ICRwcmVDb250ZW50WyRHTE9CQUxTWyJCRVRERVNockN6SWZwRnJRaGlQTSJdIC4gJHRlbXBsYXRlaWRdID0gJHJlcXVlc3QtPmdldCgkR0xPQkFMU1siQkVUREVTaHJDeklmcEZyUWhpUE0iXSAuICR0ZW1wbGF0ZWlkKTsgfSB9ICRtcGRmID0gJEdMT0JBTFNbIlNuc1NTd01LWlNZZU1GbkVpcm5oIl07ICRuYW1lID0gJHRoaXMtPkdldFByZXBhcmVkTVBERigkbXBkZiwgJFJlY29yZHMsICRUZW1wbGF0ZWlkcywgJG1vZHVsZU5hbWUsICRsYW5ndWFnZSwgJHByZUNvbnRlbnQpOyAkbmFtZSA9ICR0aGlzLT5nZW5lcmF0ZV9jb29sX3VyaSgkbmFtZSk7ICR1cGxvYWRfZmlsZV9wYXRoID0gZGVjaWRlRmlsZVBhdGgoKTsgaWYgKCRuYW1lICE9ICRHTE9CQUxTWyJTbnNTU3dNS1pTWWVNRm5FaXJuaCJdKSAkZmlsZV9uYW1lID0gJG5hbWUgLiAkR0xPQkFMU1siR2tIY1JPaU5DWmlHUW9RUXl2Y0EiXTsgJG1wZGYtPk91dHB1dCgkdXBsb2FkX2ZpbGVfcGF0aCAuICRjdXJyZW50X2lkIC4gJEdMT0JBTFNbIk1iYWpETkpSaG1NT3dHb2pzY3ZVIl0gLiAkZmlsZV9uYW1lKTsgJGZpbGVzaXplID0gZmlsZXNpemUoJHVwbG9hZF9maWxlX3BhdGggLiAkY3VycmVudF9pZCAuICRHTE9CQUxTWyJNYmFqRE5KUmhtTU93R29qc2N2VSJdIC4gJGZpbGVfbmFtZSk7ICRmaWxldHlwZSA9ICRHTE9CQUxTWyJPd0hIS2FpRGVpb2pXdE90WUJXSiJdOyAkcGFyYW1zMSA9IGFycmF5KCRjdXJyZW50X2lkLCAkY3UtPmlkLCAkb3duZXJpZCwgIkRvY3VtZW50cyBBdHRhY2htZW50IiwgJGZvY3VzLT5jb2x1bW5fZmllbGRzWyJkZXNjcmlwdGlvbiJdLCAkdGhpcy0+ZGItPmZvcm1hdERhdGUoJGRhdGVfdmFyLCB0cnVlKSwgJHRoaXMtPmRiLT5mb3JtYXREYXRlKCRkYXRlX3ZhciwgdHJ1ZSkpOyAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siRkNVc2l5RktiRHZKR25YRU5oRWQiXSwgJHBhcmFtczEpOyBpZihkZWZpbmVkKCRHTE9CQUxTWyJpUENHeXFZVUNnYnhyY25YYWJSZyJdKSl7ICR1cGxvYWRfZmlsZV9wYXRoID0gc3RyX3JlcGxhY2UoU1RPUkFHRV9ST09ULCAkR0xPQkFMU1sidHVna213S1FtcmR5ZmdoUW5SSmoiXSwgJHVwbG9hZF9maWxlX3BhdGgpOyB9ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJJcEpxeFBRaFdDclNWcmhlRGZ5ZSJdLCBhcnJheSgkY3VycmVudF9pZCwgJGZpbGVfbmFtZSwgJGZvY3VzLT5jb2x1bW5fZmllbGRzWyJkZXNjcmlwdGlvbiJdLCAkZmlsZXR5cGUsICR1cGxvYWRfZmlsZV9wYXRoKSk7ICR0aGlzLT5kYi0+cHF1ZXJ5KCRHTE9CQUxTWyJmRnRxd2J5REx6bUVCcndncnFqZiJdLCBhcnJheSgkZm9jdXMtPmlkLCAkY3VycmVudF9pZCkpOyAkdGhpcy0+ZGItPnBxdWVyeSgkR0xPQkFMU1siYVpndFBSb2p2WHdMUFZBS1BHUUIiXSwgYXJyYXkoJGZpbGVzaXplLCAkZmlsZV9uYW1lLCAkZm9jdXMtPmlkKSk7IGlmKHZ0bGliX2lzTW9kdWxlQWN0aXZlKCRHTE9CQUxTWyJMS1NpSkhXbG5EUXVYelZqVGFDUCJdKSkgeyByZXF1aXJlX29uY2UgJEdMT0JBTFNbInF2ZGZQUmpUa0J0V0VwQWxXdmxOIl07IE1vZFRyYWNrZXI6OmxpbmtSZWxhdGlvbigkbW9kdWxlTmFtZSwgJGZvY3VzLT5wYXJlbnRpZCwkR0xPQkFMU1siV0ZtY01XYWRHcHlhZFhSWHdLTVgiXSwgJGZvY3VzLT5pZCk7IH0gcmV0dXJuIHRydWU7IH0gcHVibGljIGZ1bmN0aW9uIEdldFdvcmtmbG93c0xpc3QoKSB7IHJldHVybiAkdGhpcy0+d29ya2Zsb3dzOyB9IHB1YmxpYyBmdW5jdGlvbiBjb250cm9sV29ya2Zsb3dzKCkgeyAkYWRiID0gUGVhckRhdGFiYXNlOjpnZXRJbnN0YW5jZSgpOyAkY29udHJvbCA9IDA7ICRXb3JrZmxvd3MgPSAkdGhpcy0+R2V0V29ya2Zsb3dzTGlzdCgpOyBmb3JlYWNoICgkV29ya2Zsb3dzIEFTICRuYW1lKSB7ICRkZXN0MSA9ICRHTE9CQUxTWyJyZ09FTGJqaFRDTk1nbVR3Z3liSSJdLiRuYW1lLiRHTE9CQUxTWyJacmNlc3h2cEdwa2JmYk1mcklzcSJdOyAkZGVzdDIgPSAkR0xPQkFMU1sid0FMWHN5QnV6VmNiU1pobmFQSG8iXS4kbmFtZS4kR0xPQkFMU1siaUlOcmNmVFhQR0loTWVkREl1UEQiXTsgaWYgKGZpbGVfZXhpc3RzKCRkZXN0MSkgJiYgZmlsZV9leGlzdHMoJGRlc3QyKSkgeyAkcmVzdWx0MSA9ICRhZGItPnBxdWVyeSgkR0xPQkFMU1siTWFBU0JYbXJtYkRKZ2h1SVRKbm0iXSxhcnJheSgkbmFtZSkpOyBpZiAoJGFkYi0+bnVtX3Jvd3MoJHJlc3VsdDEpID4gMCkgJGNvbnRyb2wrKzsgfSB9IGlmIChjb3VudCgkV29ya2Zsb3dzKSA9PSAkY29udHJvbCkgcmV0dXJuIHRydWU7IGVsc2UgcmV0dXJuIGZhbHNlOyB9IHB1YmxpYyBmdW5jdGlvbiBpc1RlbXBsYXRlRGVsZXRlZCgkdGVtcGxhdGVpZCkgeyAkcmVzdWx0ID0gJHRoaXMtPmRiLT5wcXVlcnkoJEdMT0JBTFNbImx4dmhkSkFDSmN4QmhtUk1JWmNlIl0sIGFycmF5KCR0ZW1wbGF0ZWlkLCIxIikpOyBpZiAoJHRoaXMtPmRiLT5udW1fcm93cygkcmVzdWx0KSA+IDApIHJldHVybiB0cnVlOyBlbHNlIHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gaXNSVEZBY3RpdmF0ZWQoKSB7IHJldHVybiBmYWxzZTsgfSBwdWJsaWMgZnVuY3Rpb24gZ2V0RGV0YWlsVmlld0xpbmtzKCR0ZW1wbGF0ZWlkID0gJycpeyAkbGlua1R5cGVzID0gYXJyYXkoJ0RFVEFJTFZJRVdUQUInKTsgJGRldGFpbF91cmwgPSAkR0xPQkFMU1siZVVOa1hueXBFcEVnU1lSekJZSVUiXS4kdGVtcGxhdGVpZC4kR0xPQkFMU1siU291a0dHT2lLQ1l6eWpLbHlhdHYiXS4kdGVtcGxhdGVpZDsgJGRldGFpbFZpZXdMaW5rcyA9IGFycmF5KCBhcnJheSgnbGlua3R5cGUnID0+ICdERVRBSUxWSUVXVEFCJywgJ2xpbmtsYWJlbCcgPT4gdnRyYW5zbGF0ZSgnTEJMX1BST1BFUlRJRVMnLCdQREZNYWtlcicpLCAkR0xPQkFMU1siVWltWVdjbHRVUGhlSlZpUmdTakciXSA9PiAkZGV0YWlsX3VybCwgJEdMT0JBTFNbImhSTE11d3ZFekRWS0xtcnlleU1GIl0gPT4gJEdMT0JBTFNbInR1Z2ttd0tRbXJkeWZnaFFuUkpqIl0pICk7IGlmICh2dGxpYl9pc01vZHVsZUFjdGl2ZSgkR0xPQkFMU1sid3VUVWFKWFpDdmtHWUx3TVlXYWgiXSkpeyAkZGV0YWlsVmlld0xpbmtzW10gPSBhcnJheSggJ2xpbmt0eXBlJyA9PiAnREVUQUlMVklFV1RBQicsICdsaW5rbGFiZWwnID0+IHZ0cmFuc2xhdGUoJ0xCTF9TVFlMRVNfTElTVCcsJ0lUUzRZb3VTdHlsZXMnKSwgJEdMT0JBTFNbIlVpbVlXY2x0VVBoZUpWaVJnU2pHIl0gPT4gJGRldGFpbF91cmwuJEdMT0JBTFNbInhka2lyd09paHdnZ1pnYlFzeWhQIl0sICRHTE9CQUxTWyJoUkxNdXd2RXpEVktMbXJ5ZXlNRiJdID0+ICRHTE9CQUxTWyJ0dWdrbXdLUW1yZHlmZ2hRblJKaiJdICk7IH0gZm9yZWFjaCAoJGRldGFpbFZpZXdMaW5rcyBhcyAkZGV0YWlsVmlld0xpbmspeyAkbGlua01vZGVsTGlzdFskR0xPQkFMU1siSXFvd0xuUUxGc3hJUHBQd2xSWlQiXV1bXSA9IFZ0aWdlcl9MaW5rX01vZGVsOjpnZXRJbnN0YW5jZUZyb21WYWx1ZXMoJGRldGFpbFZpZXdMaW5rKTsgfSByZXR1cm4gJGxpbmtNb2RlbExpc3Q7IH0gfSA/Pg==').'<?php '); ?>
Function Calls
| base64_decode | 1 |
| error_reporting | 1 |
| QJiBwmEDrBBydyuyOzXI | 1 |
Stats
| MD5 | 8502994d30887f64c5ee06da78f5624d |
| Eval Count | 1 |
| Decode Time | 17712 ms |