1688054432
waR3U4bTeM%3Ad3a4c23b681c1203686d8d38dadccba7-62dea703fd8c0a31add9c99a7cc1bb28
s:38568:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NTU6IkNoZWNrcyB0aGF0IHRoZXJlIGlzIGFkZXF1YXRlIHNwYWNpbmcgYmV0d2VlbiBjb21tZW50cy4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvciI6NDp7czo3OiIAKgBuYW1lIjtzOjY6ImF1dGhvciI7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEF1dGhvcgBhdXRob3JOYW1lIjtzOjEzOiJHcmVnIFNoZXJ3b29kIjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjE5OiJnc2hlcndvb2RAc3F1aXoubmV0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQ0OiIyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoibGljZW5zZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6ODA6Imh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MDoiIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI2MmRlYTcwM2ZkOGMwYTMxYWRkOWM5OWE3Y2MxYmIyOCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjIyOiJJbmxpbmVDb21tZW50U25pZmYucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6OTM6InZlbmRvci9zcXVpemxhYnMvcGhwX2NvZGVzbmlmZmVyL3NyYy9TdGFuZGFyZHMvU3F1aXovU25pZmZzL0NvbW1lbnRpbmcvSW5saW5lQ29tbWVudFNuaWZmLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6MTI2NTM6Ijw/cGhwCi8qKgogKiBDaGVja3MgdGhhdCB0aGVyZSBpcyBhZGVxdWF0ZSBzcGFjaW5nIGJldHdlZW4gY29tbWVudHMuCiAqCiAqIEBhdXRob3IgICAgR3JlZyBTaGVyd29vZCA8Z3NoZXJ3b29kQHNxdWl6Lm5ldD4KICogQGNvcHlyaWdodCAyMDA2LTIwMTUgU3F1aXogUHR5IEx0ZCAoQUJOIDc3IDA4NCA2NzAgNjAwKQogKiBAbGljZW5zZSAgIGh0dHBzOi8vZ2l0aHViLmNvbS9zcXVpemxhYnMvUEhQX0NvZGVTbmlmZmVyL2Jsb2IvbWFzdGVyL2xpY2VuY2UudHh0IEJTRCBMaWNlbmNlCiAqLwoKbmFtZXNwYWNlIFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcU3F1aXpcU25pZmZzXENvbW1lbnRpbmc7Cgp1c2UgUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGU7CnVzZSBQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmOwp1c2UgUEhQX0NvZGVTbmlmZmVyXFV0aWxcVG9rZW5zOwoKY2xhc3MgSW5saW5lQ29tbWVudFNuaWZmIGltcGxlbWVudHMgU25pZmYKewoKICAgIC8qKgogICAgICogQSBsaXN0IG9mIHRva2VuaXplcnMgdGhpcyBzbmlmZiBzdXBwb3J0cy4KICAgICAqCiAgICAgKiBAdmFyIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyAkc3VwcG9ydGVkVG9rZW5pemVycyA9IFsKICAgICAgICAnUEhQJywKICAgICAgICAnSlMnLAogICAgXTsKCgogICAgLyoqCiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIHRva2VucyB0aGlzIHRlc3Qgd2FudHMgdG8gbGlzdGVuIGZvci4KICAgICAqCiAgICAgKiBAcmV0dXJuIGFycmF5CiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiByZWdpc3RlcigpCiAgICB7CiAgICAgICAgcmV0dXJuIFsKICAgICAgICAgICAgVF9DT01NRU5ULAogICAgICAgICAgICBUX0RPQ19DT01NRU5UX09QRU5fVEFHLAogICAgICAgIF07CgogICAgfS8vZW5kIHJlZ2lzdGVyKCkKCgogICAgLyoqCiAgICAgKiBQcm9jZXNzZXMgdGhpcyB0ZXN0LCB3aGVuIG9uZSBvZiBpdHMgdG9rZW5zIGlzIGVuY291bnRlcmVkLgogICAgICoKICAgICAqIEBwYXJhbSBcUEhQX0NvZGVTbmlmZmVyXEZpbGVzXEZpbGUgJHBocGNzRmlsZSBUaGUgZmlsZSBiZWluZyBzY2FubmVkLgogICAgICogQHBhcmFtIGludCAgICAgICAgICAgICAgICAgICAgICAgICAkc3RhY2tQdHIgIFRoZSBwb3NpdGlvbiBvZiB0aGUgY3VycmVudCB0b2tlbiBpbiB0aGUKICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFjayBwYXNzZWQgaW4gJHRva2Vucy4KICAgICAqCiAgICAgKiBAcmV0dXJuIHZvaWQKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHByb2Nlc3MoRmlsZSAkcGhwY3NGaWxlLCAkc3RhY2tQdHIpCiAgICB7CiAgICAgICAgJHRva2VucyA9ICRwaHBjc0ZpbGUtPmdldFRva2VucygpOwoKICAgICAgICAvLyBJZiB0aGlzIGlzIGEgZnVuY3Rpb24vY2xhc3MvaW50ZXJmYWNlIGRvYyBibG9jayBjb21tZW50LCBza2lwIGl0LgogICAgICAgIC8vIFdlIGFyZSBvbmx5IGludGVyZXN0ZWQgaW4gaW5saW5lIGRvYyBibG9jayBjb21tZW50cywgd2hpY2ggYXJlCiAgICAgICAgLy8gbm90IGFsbG93ZWQuCiAgICAgICAgaWYgKCR0b2tlbnNbJHN0YWNrUHRyXVsnY29kZSddID09PSBUX0RPQ19DT01NRU5UX09QRU5fVEFHKSB7CiAgICAgICAgICAgICRuZXh0VG9rZW4gPSAkc3RhY2tQdHI7CiAgICAgICAgICAgIGRvIHsKICAgICAgICAgICAgICAgICRuZXh0VG9rZW4gPSAkcGhwY3NGaWxlLT5maW5kTmV4dChUb2tlbnM6OiRlbXB0eVRva2VucywgKCRuZXh0VG9rZW4gKyAxKSwgbnVsbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1skbmV4dFRva2VuXVsnY29kZSddID09PSBUX0FUVFJJQlVURSkgewogICAgICAgICAgICAgICAgICAgICRuZXh0VG9rZW4gPSAkdG9rZW5zWyRuZXh0VG9rZW5dWydhdHRyaWJ1dGVfY2xvc2VyJ107CiAgICAgICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0gd2hpbGUgKHRydWUpOwoKICAgICAgICAgICAgJGlnbm9yZSA9IFsKICAgICAgICAgICAgICAgIFRfQ0xBU1MsCiAgICAgICAgICAgICAgICBUX0lOVEVSRkFDRSwKICAgICAgICAgICAgICAgIFRfVFJBSVQsCiAgICAgICAgICAgICAgICBUX0VOVU0sCiAgICAgICAgICAgICAgICBUX0ZVTkNUSU9OLAogICAgICAgICAgICAgICAgVF9DTE9TVVJFLAogICAgICAgICAgICAgICAgVF9QVUJMSUMsCiAgICAgICAgICAgICAgICBUX1BSSVZBVEUsCiAgICAgICAgICAgICAgICBUX1BST1RFQ1RFRCwKICAgICAgICAgICAgICAgIFRfRklOQUwsCiAgICAgICAgICAgICAgICBUX1NUQVRJQywKICAgICAgICAgICAgICAgIFRfQUJTVFJBQ1QsCiAgICAgICAgICAgICAgICBUX0NPTlNULAogICAgICAgICAgICAgICAgVF9QUk9QRVJUWSwKICAgICAgICAgICAgICAgIFRfSU5DTFVERSwKICAgICAgICAgICAgICAgIFRfSU5DTFVERV9PTkNFLAogICAgICAgICAgICAgICAgVF9SRVFVSVJFLAogICAgICAgICAgICAgICAgVF9SRVFVSVJFX09OQ0UsCiAgICAgICAgICAgIF07CgogICAgICAgICAgICBpZiAoaW5fYXJyYXkoJHRva2Vuc1skbmV4dFRva2VuXVsnY29kZSddLCAkaWdub3JlLCB0cnVlKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHBocGNzRmlsZS0+dG9rZW5pemVyVHlwZSA9PT0gJ0pTJykgewogICAgICAgICAgICAgICAgLy8gV2UgYWxsb3cgYmxvY2sgY29tbWVudHMgaWYgYSBmdW5jdGlvbiBvciBvYmplY3QKICAgICAgICAgICAgICAgIC8vIGlzIGJlaW5nIGFzc2lnbmVkIHRvIGEgdmFyaWFibGUuCiAgICAgICAgICAgICAgICAkaWdub3JlICAgID0gVG9rZW5zOjokZW1wdHlUb2tlbnM7CiAgICAgICAgICAgICAgICAkaWdub3JlW10gID0gVF9FUVVBTDsKICAgICAgICAgICAgICAgICRpZ25vcmVbXSAgPSBUX1NUUklORzsKICAgICAgICAgICAgICAgICRpZ25vcmVbXSAgPSBUX09CSkVDVF9PUEVSQVRPUjsKICAgICAgICAgICAgICAgICRuZXh0VG9rZW4gPSAkcGhwY3NGaWxlLT5maW5kTmV4dCgkaWdub3JlLCAoJG5leHRUb2tlbiArIDEpLCBudWxsLCB0cnVlKTsKICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRuZXh0VG9rZW5dWydjb2RlJ10gPT09IFRfRlVOQ1RJT04KICAgICAgICAgICAgICAgICAgICB8fCAkdG9rZW5zWyRuZXh0VG9rZW5dWydjb2RlJ10gPT09IFRfQ0xPU1VSRQogICAgICAgICAgICAgICAgICAgIHx8ICR0b2tlbnNbJG5leHRUb2tlbl1bJ2NvZGUnXSA9PT0gVF9PQkpFQ1QKICAgICAgICAgICAgICAgICAgICB8fCAkdG9rZW5zWyRuZXh0VG9rZW5dWydjb2RlJ10gPT09IFRfUFJPVE9UWVBFCiAgICAgICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRwcmV2VG9rZW4gPSAkcGhwY3NGaWxlLT5maW5kUHJldmlvdXMoCiAgICAgICAgICAgICAgICBUb2tlbnM6OiRlbXB0eVRva2VucywKICAgICAgICAgICAgICAgICgkc3RhY2tQdHIgLSAxKSwKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICB0cnVlCiAgICAgICAgICAgICk7CgogICAgICAgICAgICBpZiAoJHRva2Vuc1skcHJldlRva2VuXVsnY29kZSddID09PSBUX09QRU5fVEFHKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRzdGFja1B0cl1bJ2NvbnRlbnQnXSA9PT0gJy8qKicpIHsKICAgICAgICAgICAgICAgICRlcnJvciA9ICdJbmxpbmUgZG9jIGJsb2NrIGNvbW1lbnRzIGFyZSBub3QgYWxsb3dlZDsgdXNlICIvKiBDb21tZW50ICovIiBvciAiLy8gQ29tbWVudCIgaW5zdGVhZCc7CiAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5hZGRFcnJvcigkZXJyb3IsICRzdGFja1B0ciwgJ0RvY0Jsb2NrJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgaWYgKCR0b2tlbnNbJHN0YWNrUHRyXVsnY29udGVudCddWzBdID09PSAnIycpIHsKICAgICAgICAgICAgJGVycm9yID0gJ1Blcmwtc3R5bGUgY29tbWVudHMgYXJlIG5vdCBhbGxvd2VkOyB1c2UgIi8vIENvbW1lbnQiIGluc3RlYWQnOwogICAgICAgICAgICAkZml4ICAgPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkc3RhY2tQdHIsICdXcm9uZ1N0eWxlJyk7CiAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkY29tbWVudCA9IGx0cmltKCR0b2tlbnNbJHN0YWNrUHRyXVsnY29udGVudCddLCAiIyBcdCIpOwogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigkc3RhY2tQdHIsICIvLyAkY29tbWVudCIpOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICAvLyBXZSBkb24ndCB3YW50IGVuZCBvZiBibG9jayBjb21tZW50cy4gQ2hlY2sgaWYgdGhlIGxhc3QgdG9rZW4gYmVmb3JlIHRoZQogICAgICAgIC8vIGNvbW1lbnQgaXMgYSBjbG9zaW5nIGN1cmx5IGJyYWNlLgogICAgICAgICRwcmV2aW91c0NvbnRlbnQgPSAkcGhwY3NGaWxlLT5maW5kUHJldmlvdXMoVF9XSElURVNQQUNFLCAoJHN0YWNrUHRyIC0gMSksIG51bGwsIHRydWUpOwogICAgICAgIGlmICgkdG9rZW5zWyRwcmV2aW91c0NvbnRlbnRdWydsaW5lJ10gPT09ICR0b2tlbnNbJHN0YWNrUHRyXVsnbGluZSddKSB7CiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRwcmV2aW91c0NvbnRlbnRdWydjb2RlJ10gPT09IFRfQ0xPU0VfQ1VSTFlfQlJBQ0tFVCkgewogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBTcGVjaWFsIGNhc2UgZm9yIEpTIGZpbGVzLgogICAgICAgICAgICBpZiAoJHRva2Vuc1skcHJldmlvdXNDb250ZW50XVsnY29kZSddID09PSBUX0NPTU1BCiAgICAgICAgICAgICAgICB8fCAkdG9rZW5zWyRwcmV2aW91c0NvbnRlbnRdWydjb2RlJ10gPT09IFRfU0VNSUNPTE9OCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgJGxhc3RDb250ZW50ID0gJHBocGNzRmlsZS0+ZmluZFByZXZpb3VzKFRfV0hJVEVTUEFDRSwgKCRwcmV2aW91c0NvbnRlbnQgLSAxKSwgbnVsbCwgdHJ1ZSk7CiAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1skbGFzdENvbnRlbnRdWydjb2RlJ10gPT09IFRfQ0xPU0VfQ1VSTFlfQlJBQ0tFVCkgewogICAgICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgLy8gT25seSB3YW50IGlubGluZSBjb21tZW50cy4KICAgICAgICBpZiAoc3Vic3RyKCR0b2tlbnNbJHN0YWNrUHRyXVsnY29udGVudCddLCAwLCAyKSAhPT0gJy8vJykgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkY29tbWVudFRva2VucyA9IFskc3RhY2tQdHJdOwoKICAgICAgICAkbmV4dENvbW1lbnQgPSAkc3RhY2tQdHI7CiAgICAgICAgJGxhc3RDb21tZW50ID0gJHN0YWNrUHRyOwogICAgICAgIHdoaWxlICgoJG5leHRDb21tZW50ID0gJHBocGNzRmlsZS0+ZmluZE5leHQoVF9DT01NRU5ULCAoJG5leHRDb21tZW50ICsgMSksIG51bGwsIGZhbHNlKSkgIT09IGZhbHNlKSB7CiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRuZXh0Q29tbWVudF1bJ2xpbmUnXSAhPT0gKCR0b2tlbnNbJGxhc3RDb21tZW50XVsnbGluZSddICsgMSkpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAvLyBPbmx5IHdhbnQgaW5saW5lIGNvbW1lbnRzLgogICAgICAgICAgICBpZiAoc3Vic3RyKCR0b2tlbnNbJG5leHRDb21tZW50XVsnY29udGVudCddLCAwLCAyKSAhPT0gJy8vJykgewogICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIC8vIFRoZXJlIGlzIGEgY29tbWVudCBvbiB0aGUgdmVyeSBuZXh0IGxpbmUuIElmIHRoZXJlIGlzCiAgICAgICAgICAgIC8vIG5vIGNvZGUgYmV0d2VlbiB0aGUgY29tbWVudHMsIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHNhbWUKICAgICAgICAgICAgLy8gY29tbWVudCBibG9jay4KICAgICAgICAgICAgJHByZXZOb25XaGl0ZXNwYWNlID0gJHBocGNzRmlsZS0+ZmluZFByZXZpb3VzKFRfV0hJVEVTUEFDRSwgKCRuZXh0Q29tbWVudCAtIDEpLCAkbGFzdENvbW1lbnQsIHRydWUpOwogICAgICAgICAgICBpZiAoJHByZXZOb25XaGl0ZXNwYWNlICE9PSAkbGFzdENvbW1lbnQpIHsKICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkY29tbWVudFRva2Vuc1tdID0gJG5leHRDb21tZW50OwogICAgICAgICAgICAkbGFzdENvbW1lbnQgICAgID0gJG5leHRDb21tZW50OwogICAgICAgIH0vL2VuZCB3aGlsZQoKICAgICAgICAkY29tbWVudFRleHQgPSAnJzsKICAgICAgICBmb3JlYWNoICgkY29tbWVudFRva2VucyBhcyAkbGFzdENvbW1lbnRUb2tlbikgewogICAgICAgICAgICAkY29tbWVudCA9IHJ0cmltKCR0b2tlbnNbJGxhc3RDb21tZW50VG9rZW5dWydjb250ZW50J10pOwoKICAgICAgICAgICAgaWYgKHRyaW0oc3Vic3RyKCRjb21tZW50LCAyKSkgPT09ICcnKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJHNwYWNlQ291bnQgPSAwOwogICAgICAgICAgICAkdGFiRm91bmQgICA9IGZhbHNlOwoKICAgICAgICAgICAgJGNvbW1lbnRMZW5ndGggPSBzdHJsZW4oJGNvbW1lbnQpOwogICAgICAgICAgICBmb3IgKCRpID0gMjsgJGkgPCAkY29tbWVudExlbmd0aDsgJGkrKykgewogICAgICAgICAgICAgICAgaWYgKCRjb21tZW50WyRpXSA9PT0gIlx0IikgewogICAgICAgICAgICAgICAgICAgICR0YWJGb3VuZCA9IHRydWU7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgaWYgKCRjb21tZW50WyRpXSAhPT0gJyAnKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJHNwYWNlQ291bnQrKzsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgJGZpeCA9IGZhbHNlOwogICAgICAgICAgICBpZiAoJHRhYkZvdW5kID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnVGFiIGZvdW5kIGJlZm9yZSBjb21tZW50IHRleHQ7IGV4cGVjdGVkICIvLyAlcyIgYnV0IGZvdW5kICIlcyInOwogICAgICAgICAgICAgICAgJGRhdGEgID0gWwogICAgICAgICAgICAgICAgICAgIGx0cmltKHN1YnN0cigkY29tbWVudCwgMikpLAogICAgICAgICAgICAgICAgICAgICRjb21tZW50LAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgICRmaXggICA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICRsYXN0Q29tbWVudFRva2VuLCAnVGFiQmVmb3JlJywgJGRhdGEpOwogICAgICAgICAgICB9IGVsc2UgaWYgKCRzcGFjZUNvdW50ID09PSAwKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnTm8gc3BhY2UgZm91bmQgYmVmb3JlIGNvbW1lbnQgdGV4dDsgZXhwZWN0ZWQgIi8vICVzIiBidXQgZm91bmQgIiVzIic7CiAgICAgICAgICAgICAgICAkZGF0YSAgPSBbCiAgICAgICAgICAgICAgICAgICAgc3Vic3RyKCRjb21tZW50LCAyKSwKICAgICAgICAgICAgICAgICAgICAkY29tbWVudCwKICAgICAgICAgICAgICAgIF07CiAgICAgICAgICAgICAgICAkZml4ICAgPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkbGFzdENvbW1lbnRUb2tlbiwgJ05vU3BhY2VCZWZvcmUnLCAkZGF0YSk7CiAgICAgICAgICAgIH0gZWxzZSBpZiAoJHNwYWNlQ291bnQgPiAxKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnRXhwZWN0ZWQgMSBzcGFjZSBiZWZvcmUgY29tbWVudCB0ZXh0IGJ1dCBmb3VuZCAlczsgdXNlIGJsb2NrIGNvbW1lbnQgaWYgeW91IG5lZWQgaW5kZW50YXRpb24nOwogICAgICAgICAgICAgICAgJGRhdGEgID0gWwogICAgICAgICAgICAgICAgICAgICRzcGFjZUNvdW50LAogICAgICAgICAgICAgICAgICAgIHN1YnN0cigkY29tbWVudCwgKDIgKyAkc3BhY2VDb3VudCkpLAogICAgICAgICAgICAgICAgICAgICRjb21tZW50LAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgICRmaXggICA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICRsYXN0Q29tbWVudFRva2VuLCAnU3BhY2luZ0JlZm9yZScsICRkYXRhKTsKICAgICAgICAgICAgfS8vZW5kIGlmCgogICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJG5ld0NvbW1lbnQgPSAnLy8gJy5sdHJpbSgkdG9rZW5zWyRsYXN0Q29tbWVudFRva2VuXVsnY29udGVudCddLCAiL1x0ICIpOwogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigkbGFzdENvbW1lbnRUb2tlbiwgJG5ld0NvbW1lbnQpOwogICAgICAgICAgICB9CgogICAgICAgICAgICAkY29tbWVudFRleHQgLj0gdHJpbShzdWJzdHIoJHRva2Vuc1skbGFzdENvbW1lbnRUb2tlbl1bJ2NvbnRlbnQnXSwgMikpOwogICAgICAgIH0vL2VuZCBmb3JlYWNoCgogICAgICAgIGlmICgkY29tbWVudFRleHQgPT09ICcnKSB7CiAgICAgICAgICAgICRlcnJvciA9ICdCbGFuayBjb21tZW50cyBhcmUgbm90IGFsbG93ZWQnOwogICAgICAgICAgICAkZml4ICAgPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkc3RhY2tQdHIsICdFbXB0eScpOwogICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigkc3RhY2tQdHIsICcnKTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgcmV0dXJuICgkbGFzdENvbW1lbnRUb2tlbiArIDEpOwogICAgICAgIH0KCiAgICAgICAgaWYgKHByZWdfbWF0Y2goJy9eXHB7TGx9L3UnLCAkY29tbWVudFRleHQpID09PSAxKSB7CiAgICAgICAgICAgICRlcnJvciA9ICdJbmxpbmUgY29tbWVudHMgbXVzdCBzdGFydCB3aXRoIGEgY2FwaXRhbCBsZXR0ZXInOwogICAgICAgICAgICAkcGhwY3NGaWxlLT5hZGRFcnJvcigkZXJyb3IsICRzdGFja1B0ciwgJ05vdENhcGl0YWwnKTsKICAgICAgICB9CgogICAgICAgIC8vIE9ubHkgY2hlY2sgdGhlIGVuZCBvZiBjb21tZW50IGNoYXJhY3RlciBpZiB0aGUgc3RhcnQgb2YgdGhlIGNvbW1lbnQKICAgICAgICAvLyBpcyBhIGxldHRlciwgaW5kaWNhdGluZyB0aGF0IHRoZSBjb21tZW50IGlzIGp1c3Qgc3RhbmRhcmQgdGV4dC4KICAgICAgICBpZiAocHJlZ19tYXRjaCgnL15ccHtMfS91JywgJGNvbW1lbnRUZXh0KSA9PT0gMSkgewogICAgICAgICAgICAkY29tbWVudENsb3NlciAgID0gJGNvbW1lbnRUZXh0WyhzdHJsZW4oJGNvbW1lbnRUZXh0KSAtIDEpXTsKICAgICAgICAgICAgJGFjY2VwdGVkQ2xvc2VycyA9IFsKICAgICAgICAgICAgICAgICdmdWxsLXN0b3BzJyAgICAgICAgPT4gJy4nLAogICAgICAgICAgICAgICAgJ2V4Y2xhbWF0aW9uIG1hcmtzJyA9PiAnIScsCiAgICAgICAgICAgICAgICAnb3IgcXVlc3Rpb24gbWFya3MnID0+ICc/JywKICAgICAgICAgICAgXTsKCiAgICAgICAgICAgIGlmIChpbl9hcnJheSgkY29tbWVudENsb3NlciwgJGFjY2VwdGVkQ2xvc2VycywgdHJ1ZSkgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnSW5saW5lIGNvbW1lbnRzIG11c3QgZW5kIGluICVzJzsKICAgICAgICAgICAgICAgICRlbmRlciA9ICcnOwogICAgICAgICAgICAgICAgZm9yZWFjaCAoJGFjY2VwdGVkQ2xvc2VycyBhcyAkY2xvc2VyTmFtZSA9PiAkc3ltYm9sKSB7CiAgICAgICAgICAgICAgICAgICAgJGVuZGVyIC49ICcgJy4kY2xvc2VyTmFtZS4nLCc7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGVuZGVyID0gdHJpbSgkZW5kZXIsICcgLCcpOwogICAgICAgICAgICAgICAgJGRhdGEgID0gWyRlbmRlcl07CiAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5hZGRFcnJvcigkZXJyb3IsICRsYXN0Q29tbWVudFRva2VuLCAnSW52YWxpZEVuZENoYXInLCAkZGF0YSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEZpbmFsbHksIHRoZSBsaW5lIGJlbG93IHRoZSBsYXN0IGNvbW1lbnQgY2Fubm90IGJlIGVtcHR5IGlmIHRoaXMgaW5saW5lCiAgICAgICAgLy8gY29tbWVudCBpcyBvbiBhIGxpbmUgYnkgaXRzZWxmLgogICAgICAgIGlmICgkdG9rZW5zWyRwcmV2aW91c0NvbnRlbnRdWydsaW5lJ10gPCAkdG9rZW5zWyRzdGFja1B0cl1bJ2xpbmUnXSkgewogICAgICAgICAgICAkbmV4dCA9ICRwaHBjc0ZpbGUtPmZpbmROZXh0KFRfV0hJVEVTUEFDRSwgKCRsYXN0Q29tbWVudFRva2VuICsgMSksIG51bGwsIHRydWUpOwogICAgICAgICAgICBpZiAoJG5leHQgPT09IGZhbHNlKSB7CiAgICAgICAgICAgICAgICAvLyBJZ25vcmUgaWYgdGhlIGNvbW1lbnQgaXMgdGhlIGxhc3Qgbm9uLXdoaXRlc3BhY2UgdG9rZW4gaW4gYSBmaWxlLgogICAgICAgICAgICAgICAgcmV0dXJuICgkbGFzdENvbW1lbnRUb2tlbiArIDEpOwogICAgICAgICAgICB9CgogICAgICAgICAgICBpZiAoJHRva2Vuc1skbmV4dF1bJ2NvZGUnXSA9PT0gVF9ET0NfQ09NTUVOVF9PUEVOX1RBRykgewogICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpbmxpbmUgY29tbWVudCBpcyBmb2xsb3dlZCBieSBhIGRvY2Jsb2NrLAogICAgICAgICAgICAgICAgLy8gaWdub3JlIHNwYWNpbmcgYXMgZG9jYmxvY2svZnVuY3Rpb24gZXRjIHNwYWNpbmcgcnVsZXMKICAgICAgICAgICAgICAgIC8vIGFyZSBsaWtlbHkgdG8gY29uZmxpY3Qgd2l0aCBvdXIgcnVsZXMuCiAgICAgICAgICAgICAgICByZXR1cm4gKCRsYXN0Q29tbWVudFRva2VuICsgMSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRlcnJvckNvZGUgPSAnU3BhY2luZ0FmdGVyJzsKCiAgICAgICAgICAgIGlmIChpc3NldCgkdG9rZW5zWyRzdGFja1B0cl1bJ2NvbmRpdGlvbnMnXSkgPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICRjb25kaXRpb25zICAgPSAkdG9rZW5zWyRzdGFja1B0cl1bJ2NvbmRpdGlvbnMnXTsKICAgICAgICAgICAgICAgICR0eXBlICAgICAgICAgPSBlbmQoJGNvbmRpdGlvbnMpOwogICAgICAgICAgICAgICAgJGNvbmRpdGlvblB0ciA9IGtleSgkY29uZGl0aW9ucyk7CgogICAgICAgICAgICAgICAgaWYgKCgkdHlwZSA9PT0gVF9GVU5DVElPTiB8fCAkdHlwZSA9PT0gVF9DTE9TVVJFKQogICAgICAgICAgICAgICAgICAgICYmICR0b2tlbnNbJGNvbmRpdGlvblB0cl1bJ3Njb3BlX2Nsb3NlciddID09PSAkbmV4dAogICAgICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAgICAgJGVycm9yQ29kZSA9ICdTcGFjaW5nQWZ0ZXJBdEZ1bmN0aW9uRW5kJzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yICgkaSA9ICgkbGFzdENvbW1lbnRUb2tlbiArIDEpOyAkaSA8ICRwaHBjc0ZpbGUtPm51bVRva2VuczsgJGkrKykgewogICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGldWydsaW5lJ10gPT09ICgkdG9rZW5zWyRsYXN0Q29tbWVudFRva2VuXVsnbGluZSddICsgMSkpIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1skaV1bJ2NvZGUnXSAhPT0gVF9XSElURVNQQUNFKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoJGxhc3RDb21tZW50VG9rZW4gKyAxKTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCR0b2tlbnNbJGldWydsaW5lJ10gPiAoJHRva2Vuc1skbGFzdENvbW1lbnRUb2tlbl1bJ2xpbmUnXSArIDEpKSB7CiAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRlcnJvciA9ICdUaGVyZSBtdXN0IGJlIG5vIGJsYW5rIGxpbmUgZm9sbG93aW5nIGFuIGlubGluZSBjb21tZW50JzsKICAgICAgICAgICAgJGZpeCAgID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZUVycm9yKCRlcnJvciwgJGxhc3RDb21tZW50VG9rZW4sICRlcnJvckNvZGUpOwogICAgICAgICAgICBpZiAoJGZpeCA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmJlZ2luQ2hhbmdlc2V0KCk7CiAgICAgICAgICAgICAgICBmb3IgKCRpID0gKCRsYXN0Q29tbWVudFRva2VuICsgMSk7ICRpIDwgJG5leHQ7ICRpKyspIHsKICAgICAgICAgICAgICAgICAgICBpZiAoJHRva2Vuc1skaV1bJ2xpbmUnXSA9PT0gJHRva2Vuc1skbmV4dF1bJ2xpbmUnXSkgewogICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5yZXBsYWNlVG9rZW4oJGksICcnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+ZW5kQ2hhbmdlc2V0KCk7CiAgICAgICAgICAgIH0KICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgcmV0dXJuICgkbGFzdENvbW1lbnRUb2tlbiArIDEpOwoKICAgIH0vL2VuZCBwcm9jZXNzKCkKCgp9Ly9lbmQgY2xhc3MKIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czo1MDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcU3F1aXpcU25pZmZzXENvbW1lbnRpbmciO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo1MDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcU3F1aXpcU25pZmZzXENvbW1lbnRpbmciO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiQ29tbWVudGluZyI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YToxOntzOjY5OiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xTcXVpelxTbmlmZnNcQ29tbWVudGluZ1xJbmxpbmVDb21tZW50U25pZmYiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Njk6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xDb21tZW50aW5nXElubGluZUNvbW1lbnRTbmlmZiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJJbmxpbmVDb21tZW50U25pZmYiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHBhcmVudCI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YToxOntzOjI5OiJcUEhQX0NvZGVTbmlmZmVyXFNuaWZmc1xTbmlmZiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI5OiJcUEhQX0NvZGVTbmlmZmVyXFNuaWZmc1xTbmlmZiI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjU6IlNuaWZmIjt9fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBjb25zdGFudHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwcm9wZXJ0aWVzIjthOjE6e3M6OTE6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xDb21tZW50aW5nXElubGluZUNvbW1lbnRTbmlmZjo6JHN1cHBvcnRlZFRva2VuaXplcnMiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkiOjExOntzOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjkxOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xTcXVpelxTbmlmZnNcQ29tbWVudGluZ1xJbmxpbmVDb21tZW50U25pZmY6OiRzdXBwb3J0ZWRUb2tlbml6ZXJzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6InN1cHBvcnRlZFRva2VuaXplcnMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDE6IkEgbGlzdCBvZiB0b2tlbml6ZXJzIHRoaXMgc25pZmYgc3VwcG9ydHMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjQ5OiJQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xDb21tZW50aW5nIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTozOntzOjQ6IkZpbGUiO3M6MjY6IlBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjU6IlNuaWZmIjtzOjI4OiJQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtzOjY6IlRva2VucyI7czoyNzoiUEhQX0NvZGVTbmlmZmVyXFV0aWxcVG9rZW5zIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MTM6IlsnUEhQJywgJ0pTJ10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjI6e3M6ODE6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xDb21tZW50aW5nXElubGluZUNvbW1lbnRTbmlmZjo6cmVnaXN0ZXIoKSI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QiOjEyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjU3OiJSZXR1cm5zIGFuIGFycmF5IG9mIHRva2VucyB0aGlzIHRlc3Qgd2FudHMgdG8gbGlzdGVuIGZvci4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFJldHVybl8iOjM6e3M6NzoiACoAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFycmF5XyI6Mzp7czoxMjoiACoAdmFsdWVUeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czoxMDoiACoAa2V5VHlwZSI7TjtzOjE3OiIAKgBkZWZhdWx0S2V5VHlwZSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbXBvdW5kIjoyOntzOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHR5cGVzIjthOjI6e2k6MDtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcU3RyaW5nXyI6MDp7fWk6MTtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcSW50ZWdlciI6MDp7fX1zOjUyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEFnZ3JlZ2F0ZWRUeXBlAHRva2VuIjtzOjE6InwiO319czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo3OTtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjgxOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xTcXVpelxTbmlmZnNcQ29tbWVudGluZ1xJbmxpbmVDb21tZW50U25pZmY6OnJlZ2lzdGVyKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJyZWdpc3RlciI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQyO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319czo4MDoiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcU3F1aXpcU25pZmZzXENvbW1lbnRpbmdcSW5saW5lQ29tbWVudFNuaWZmOjpwcm9jZXNzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1OToiUHJvY2Vzc2VzIHRoaXMgdGVzdCwgd2hlbiBvbmUgb2YgaXRzIHRva2VucyBpcyBlbmNvdW50ZXJlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjk6InBocGNzRmlsZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOiJUaGUgZmlsZSBiZWluZyBzY2FubmVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo4OiJzdGFja1B0ciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NToiVGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHRva2VuIGluIHRoZQpzdGFjayBwYXNzZWQgaW4gJHRva2Vucy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6ODA6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xDb21tZW50aW5nXElubGluZUNvbW1lbnRTbmlmZjo6cHJvY2VzcygpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NzoicHJvY2VzcyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToyOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJwaHBjc0ZpbGUiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo4OiJzdGFja1B0ciI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU0O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MzQ4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";