1688054432
waR3U4bTeM%3A94729afcb1296eb3247a42f673be98a2-5063452a683673a5187c315b8df02a90
s:40032:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NzI6IkNoZWNrcyB0aGF0IGNvbnRyb2wgc3RydWN0dXJlcyBoYXZlIHRoZSBjb3JyZWN0IHNwYWNpbmcgYXJvdW5kIGJyYWNrZXRzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YTozOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTM6IkdyZWcgU2hlcndvb2QiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MTk6ImdzaGVyd29vZEBzcXVpei5uZXQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO31pOjE7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDQ6IjIwMDYtMjAxNSBTcXVpeiBQdHkgTHRkIChBQk4gNzcgMDg0IDY3MCA2MDApIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToyO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo4MDoiaHR0cHM6Ly9naXRodWIuY29tL3NxdWl6bGFicy9QSFBfQ29kZVNuaWZmZXIvYmxvYi9tYXN0ZXIvbGljZW5jZS50eHQgQlNEIExpY2VuY2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dCI6Mjp7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZSI7czowOiIiO3M6NTY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2VBbGlhc2VzIjthOjA6e319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjUwNjM0NTJhNjgzNjczYTUxODdjMzE1YjhkZjAyYTkwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWUiO3M6MzI6IkNvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmYucGhwIjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MTAzOiJ2ZW5kb3Ivc3F1aXpsYWJzL3BocF9jb2Rlc25pZmZlci9zcmMvU3RhbmRhcmRzL1NxdWl6L1NuaWZmcy9XaGl0ZVNwYWNlL0NvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmYucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxMzYxOToiPD9waHAKLyoqCiAqIENoZWNrcyB0aGF0IGNvbnRyb2wgc3RydWN0dXJlcyBoYXZlIHRoZSBjb3JyZWN0IHNwYWNpbmcgYXJvdW5kIGJyYWNrZXRzLgogKgogKiBAYXV0aG9yICAgIEdyZWcgU2hlcndvb2QgPGdzaGVyd29vZEBzcXVpei5uZXQ+CiAqIEBjb3B5cmlnaHQgMjAwNi0yMDE1IFNxdWl6IFB0eSBMdGQgKEFCTiA3NyAwODQgNjcwIDYwMCkKICogQGxpY2Vuc2UgICBodHRwczovL2dpdGh1Yi5jb20vc3F1aXpsYWJzL1BIUF9Db2RlU25pZmZlci9ibG9iL21hc3Rlci9saWNlbmNlLnR4dCBCU0QgTGljZW5jZQogKi8KCm5hbWVzcGFjZSBQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xXaGl0ZVNwYWNlOwoKdXNlIFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlOwp1c2UgUEhQX0NvZGVTbmlmZmVyXFNuaWZmc1xTbmlmZjsKdXNlIFBIUF9Db2RlU25pZmZlclxVdGlsXFRva2VuczsKCmNsYXNzIENvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmYgaW1wbGVtZW50cyBTbmlmZgp7CgogICAgLyoqCiAgICAgKiBBIGxpc3Qgb2YgdG9rZW5pemVycyB0aGlzIHNuaWZmIHN1cHBvcnRzLgogICAgICoKICAgICAqIEB2YXIgYXJyYXkKICAgICAqLwogICAgcHVibGljICRzdXBwb3J0ZWRUb2tlbml6ZXJzID0gWwogICAgICAgICdQSFAnLAogICAgICAgICdKUycsCiAgICBdOwoKCiAgICAvKioKICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgdG9rZW5zIHRoaXMgdGVzdCB3YW50cyB0byBsaXN0ZW4gZm9yLgogICAgICoKICAgICAqIEByZXR1cm4gYXJyYXkKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHJlZ2lzdGVyKCkKICAgIHsKICAgICAgICByZXR1cm4gWwogICAgICAgICAgICBUX0lGLAogICAgICAgICAgICBUX1dISUxFLAogICAgICAgICAgICBUX0ZPUkVBQ0gsCiAgICAgICAgICAgIFRfRk9SLAogICAgICAgICAgICBUX1NXSVRDSCwKICAgICAgICAgICAgVF9ETywKICAgICAgICAgICAgVF9FTFNFLAogICAgICAgICAgICBUX0VMU0VJRiwKICAgICAgICAgICAgVF9UUlksCiAgICAgICAgICAgIFRfQ0FUQ0gsCiAgICAgICAgICAgIFRfRklOQUxMWSwKICAgICAgICAgICAgVF9NQVRDSCwKICAgICAgICBdOwoKICAgIH0vL2VuZCByZWdpc3RlcigpCgoKICAgIC8qKgogICAgICogUHJvY2Vzc2VzIHRoaXMgdGVzdCwgd2hlbiBvbmUgb2YgaXRzIHRva2VucyBpcyBlbmNvdW50ZXJlZC4KICAgICAqCiAgICAgKiBAcGFyYW0gXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlICRwaHBjc0ZpbGUgVGhlIGZpbGUgYmVpbmcgc2Nhbm5lZC4KICAgICAqIEBwYXJhbSBpbnQgICAgICAgICAgICAgICAgICAgICAgICAgJHN0YWNrUHRyICBUaGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgdG9rZW4KICAgICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbiB0aGUgc3RhY2sgcGFzc2VkIGluICR0b2tlbnMuCiAgICAgKgogICAgICogQHJldHVybiB2b2lkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBwcm9jZXNzKEZpbGUgJHBocGNzRmlsZSwgJHN0YWNrUHRyKQogICAgewogICAgICAgICR0b2tlbnMgPSAkcGhwY3NGaWxlLT5nZXRUb2tlbnMoKTsKCiAgICAgICAgaWYgKGlzc2V0KCR0b2tlbnNbJHN0YWNrUHRyXVsncGFyZW50aGVzaXNfb3BlbmVyJ10pID09PSB0cnVlCiAgICAgICAgICAgICYmIGlzc2V0KCR0b2tlbnNbJHN0YWNrUHRyXVsncGFyZW50aGVzaXNfY2xvc2VyJ10pID09PSB0cnVlCiAgICAgICAgKSB7CiAgICAgICAgICAgICRwYXJlbk9wZW5lciA9ICR0b2tlbnNbJHN0YWNrUHRyXVsncGFyZW50aGVzaXNfb3BlbmVyJ107CiAgICAgICAgICAgICRwYXJlbkNsb3NlciA9ICR0b2tlbnNbJHN0YWNrUHRyXVsncGFyZW50aGVzaXNfY2xvc2VyJ107CiAgICAgICAgICAgIGlmICgkdG9rZW5zWygkcGFyZW5PcGVuZXIgKyAxKV1bJ2NvZGUnXSA9PT0gVF9XSElURVNQQUNFKSB7CiAgICAgICAgICAgICAgICAkZ2FwID0gJHRva2Vuc1soJHBhcmVuT3BlbmVyICsgMSldWydsZW5ndGgnXTsKCiAgICAgICAgICAgICAgICBpZiAoJGdhcCA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPnJlY29yZE1ldHJpYygkc3RhY2tQdHIsICdTcGFjZXMgYWZ0ZXIgY29udHJvbCBzdHJ1Y3R1cmUgb3BlbiBwYXJlbnRoZXNpcycsICduZXdsaW5lJyk7CiAgICAgICAgICAgICAgICAgICAgJGdhcCA9ICduZXdsaW5lJzsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+cmVjb3JkTWV0cmljKCRzdGFja1B0ciwgJ1NwYWNlcyBhZnRlciBjb250cm9sIHN0cnVjdHVyZSBvcGVuIHBhcmVudGhlc2lzJywgJGdhcCk7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgJGVycm9yID0gJ0V4cGVjdGVkIDAgc3BhY2VzIGFmdGVyIG9wZW5pbmcgYnJhY2tldDsgJXMgZm91bmQnOwogICAgICAgICAgICAgICAgJGRhdGEgID0gWyRnYXBdOwogICAgICAgICAgICAgICAgJGZpeCAgID0gJHBocGNzRmlsZS0+YWRkRml4YWJsZUVycm9yKCRlcnJvciwgKCRwYXJlbk9wZW5lciArIDEpLCAnU3BhY2luZ0FmdGVyT3BlbkJyYWNlJywgJGRhdGEpOwogICAgICAgICAgICAgICAgaWYgKCRmaXggPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+cmVwbGFjZVRva2VuKCgkcGFyZW5PcGVuZXIgKyAxKSwgJycpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+cmVjb3JkTWV0cmljKCRzdGFja1B0ciwgJ1NwYWNlcyBhZnRlciBjb250cm9sIHN0cnVjdHVyZSBvcGVuIHBhcmVudGhlc2lzJywgMCk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRwYXJlbk9wZW5lcl1bJ2xpbmUnXSA9PT0gJHRva2Vuc1skcGFyZW5DbG9zZXJdWydsaW5lJ10KICAgICAgICAgICAgICAgICYmICR0b2tlbnNbKCRwYXJlbkNsb3NlciAtIDEpXVsnY29kZSddID09PSBUX1dISVRFU1BBQ0UKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAkZ2FwICAgPSAkdG9rZW5zWygkcGFyZW5DbG9zZXIgLSAxKV1bJ2xlbmd0aCddOwogICAgICAgICAgICAgICAgJGVycm9yID0gJ0V4cGVjdGVkIDAgc3BhY2VzIGJlZm9yZSBjbG9zaW5nIGJyYWNrZXQ7ICVzIGZvdW5kJzsKICAgICAgICAgICAgICAgICRkYXRhICA9IFskZ2FwXTsKICAgICAgICAgICAgICAgICRmaXggICA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICgkcGFyZW5DbG9zZXIgLSAxKSwgJ1NwYWNlQmVmb3JlQ2xvc2VCcmFjZScsICRkYXRhKTsKICAgICAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigoJHBhcmVuQ2xvc2VyIC0gMSksICcnKTsKICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICBpZiAoJGdhcCA9PT0gMCkgewogICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPnJlY29yZE1ldHJpYygkc3RhY2tQdHIsICdTcGFjZXMgYmVmb3JlIGNvbnRyb2wgc3RydWN0dXJlIGNsb3NlIHBhcmVudGhlc2lzJywgJ25ld2xpbmUnKTsKICAgICAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+cmVjb3JkTWV0cmljKCRzdGFja1B0ciwgJ1NwYWNlcyBiZWZvcmUgY29udHJvbCBzdHJ1Y3R1cmUgY2xvc2UgcGFyZW50aGVzaXMnLCAkZ2FwKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPnJlY29yZE1ldHJpYygkc3RhY2tQdHIsICdTcGFjZXMgYmVmb3JlIGNvbnRyb2wgc3RydWN0dXJlIGNsb3NlIHBhcmVudGhlc2lzJywgMCk7CiAgICAgICAgICAgIH0KICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgaWYgKGlzc2V0KCR0b2tlbnNbJHN0YWNrUHRyXVsnc2NvcGVfY2xvc2VyJ10pID09PSBmYWxzZSkgewogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICAkc2NvcGVPcGVuZXIgPSAkdG9rZW5zWyRzdGFja1B0cl1bJ3Njb3BlX29wZW5lciddOwogICAgICAgICRzY29wZUNsb3NlciA9ICR0b2tlbnNbJHN0YWNrUHRyXVsnc2NvcGVfY2xvc2VyJ107CgogICAgICAgIGZvciAoJGZpcnN0Q29udGVudCA9ICgkc2NvcGVPcGVuZXIgKyAxKTsgJGZpcnN0Q29udGVudCA8ICRwaHBjc0ZpbGUtPm51bVRva2VuczsgJGZpcnN0Q29udGVudCsrKSB7CiAgICAgICAgICAgICRjb2RlID0gJHRva2Vuc1skZmlyc3RDb250ZW50XVsnY29kZSddOwoKICAgICAgICAgICAgaWYgKCRjb2RlID09PSBUX1dISVRFU1BBQ0UKICAgICAgICAgICAgICAgIHx8ICgkY29kZSA9PT0gVF9JTkxJTkVfSFRNTAogICAgICAgICAgICAgICAgJiYgdHJpbSgkdG9rZW5zWyRmaXJzdENvbnRlbnRdWydjb250ZW50J10pID09PSAnJykKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQoKICAgICAgICAgICAgLy8gU2tpcCBhbGwgZW1wdHkgdG9rZW5zIG9uIHRoZSBzYW1lIGxpbmUgYXMgdGhlIG9wZW5lci4KICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGZpcnN0Q29udGVudF1bJ2xpbmUnXSA9PT0gJHRva2Vuc1skc2NvcGVPcGVuZXJdWydsaW5lJ10KICAgICAgICAgICAgICAgICYmIChpc3NldChUb2tlbnM6OiRlbXB0eVRva2Vuc1skY29kZV0pID09PSB0cnVlCiAgICAgICAgICAgICAgICB8fCAkY29kZSA9PT0gVF9DTE9TRV9UQUcpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGJyZWFrOwogICAgICAgIH0KCiAgICAgICAgLy8gV2UgaWdub3JlIHNwYWNpbmcgZm9yIHNvbWUgc3RydWN0dXJlcyB0aGF0IHRlbmQgdG8gaGF2ZSB0aGVpciBvd24gcnVsZXMuCiAgICAgICAgJGlnbm9yZSA9IFsKICAgICAgICAgICAgVF9GVU5DVElPTiAgICAgICAgICAgICA9PiB0cnVlLAogICAgICAgICAgICBUX0NMQVNTICAgICAgICAgICAgICAgID0+IHRydWUsCiAgICAgICAgICAgIFRfSU5URVJGQUNFICAgICAgICAgICAgPT4gdHJ1ZSwKICAgICAgICAgICAgVF9UUkFJVCAgICAgICAgICAgICAgICA9PiB0cnVlLAogICAgICAgICAgICBUX0VOVU0gICAgICAgICAgICAgICAgID0+IHRydWUsCiAgICAgICAgICAgIFRfRE9DX0NPTU1FTlRfT1BFTl9UQUcgPT4gdHJ1ZSwKICAgICAgICBdOwoKICAgICAgICBpZiAoaXNzZXQoJGlnbm9yZVskdG9rZW5zWyRmaXJzdENvbnRlbnRdWydjb2RlJ11dKSA9PT0gZmFsc2UKICAgICAgICAgICAgJiYgJHRva2Vuc1skZmlyc3RDb250ZW50XVsnbGluZSddID49ICgkdG9rZW5zWyRzY29wZU9wZW5lcl1bJ2xpbmUnXSArIDIpCiAgICAgICAgKSB7CiAgICAgICAgICAgICRnYXAgPSAoJHRva2Vuc1skZmlyc3RDb250ZW50XVsnbGluZSddIC0gJHRva2Vuc1skc2NvcGVPcGVuZXJdWydsaW5lJ10gLSAxKTsKICAgICAgICAgICAgJHBocGNzRmlsZS0+cmVjb3JkTWV0cmljKCRzdGFja1B0ciwgJ0JsYW5rIGxpbmVzIGF0IHN0YXJ0IG9mIGNvbnRyb2wgc3RydWN0dXJlJywgJGdhcCk7CgogICAgICAgICAgICAkZXJyb3IgPSAnQmxhbmsgbGluZSBmb3VuZCBhdCBzdGFydCBvZiBjb250cm9sIHN0cnVjdHVyZSc7CiAgICAgICAgICAgICRmaXggICA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICRzY29wZU9wZW5lciwgJ1NwYWNpbmdBZnRlck9wZW4nKTsKCiAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YmVnaW5DaGFuZ2VzZXQoKTsKICAgICAgICAgICAgICAgICRpID0gKCRzY29wZU9wZW5lciArIDEpOwogICAgICAgICAgICAgICAgd2hpbGUgKCR0b2tlbnNbJGldWydsaW5lJ10gIT09ICR0b2tlbnNbJGZpcnN0Q29udGVudF1bJ2xpbmUnXSkgewogICAgICAgICAgICAgICAgICAgIC8vIFN0YXJ0IHJlbW92aW5nIGNvbnRlbnQgZnJvbSB0aGUgbGluZSBhZnRlciB0aGUgb3BlbmVyLgogICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRpXVsnbGluZSddICE9PSAkdG9rZW5zWyRzY29wZU9wZW5lcl1bJ2xpbmUnXSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+cmVwbGFjZVRva2VuKCRpLCAnJyk7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkaSsrOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5lbmRDaGFuZ2VzZXQoKTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICRwaHBjc0ZpbGUtPnJlY29yZE1ldHJpYygkc3RhY2tQdHIsICdCbGFuayBsaW5lcyBhdCBzdGFydCBvZiBjb250cm9sIHN0cnVjdHVyZScsIDApOwogICAgICAgIH0vL2VuZCBpZgoKICAgICAgICBpZiAoJGZpcnN0Q29udGVudCAhPT0gJHNjb3BlQ2xvc2VyKSB7CiAgICAgICAgICAgICRsYXN0Q29udGVudCA9ICRwaHBjc0ZpbGUtPmZpbmRQcmV2aW91cygKICAgICAgICAgICAgICAgIFRfV0hJVEVTUEFDRSwKICAgICAgICAgICAgICAgICgkc2NvcGVDbG9zZXIgLSAxKSwKICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICB0cnVlCiAgICAgICAgICAgICk7CgogICAgICAgICAgICAkbGFzdE5vbkVtcHR5Q29udGVudCA9ICRwaHBjc0ZpbGUtPmZpbmRQcmV2aW91cygKICAgICAgICAgICAgICAgIFRva2Vuczo6JGVtcHR5VG9rZW5zLAogICAgICAgICAgICAgICAgKCRzY29wZUNsb3NlciAtIDEpLAogICAgICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgICAgIHRydWUKICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICRjaGVja1Rva2VuID0gJGxhc3RDb250ZW50OwogICAgICAgICAgICBpZiAoaXNzZXQoJHRva2Vuc1skbGFzdE5vbkVtcHR5Q29udGVudF1bJ3Njb3BlX2NvbmRpdGlvbiddKSA9PT0gdHJ1ZSkgewogICAgICAgICAgICAgICAgJGNoZWNrVG9rZW4gPSAkdG9rZW5zWyRsYXN0Tm9uRW1wdHlDb250ZW50XVsnc2NvcGVfY29uZGl0aW9uJ107CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChpc3NldCgkaWdub3JlWyR0b2tlbnNbJGNoZWNrVG9rZW5dWydjb2RlJ11dKSA9PT0gZmFsc2UKICAgICAgICAgICAgICAgICYmICR0b2tlbnNbJGxhc3RDb250ZW50XVsnbGluZSddIDw9ICgkdG9rZW5zWyRzY29wZUNsb3Nlcl1bJ2xpbmUnXSAtIDIpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgJGVycm9yVG9rZW4gPSAkc2NvcGVDbG9zZXI7CiAgICAgICAgICAgICAgICBmb3IgKCRpID0gKCRzY29wZUNsb3NlciAtIDEpOyAkaSA+ICRsYXN0Q29udGVudDsgJGktLSkgewogICAgICAgICAgICAgICAgICAgIGlmICgkdG9rZW5zWyRpXVsnbGluZSddIDwgJHRva2Vuc1skc2NvcGVDbG9zZXJdWydsaW5lJ10pIHsKICAgICAgICAgICAgICAgICAgICAgICAgJGVycm9yVG9rZW4gPSAkaTsKICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRnYXAgPSAoJHRva2Vuc1skc2NvcGVDbG9zZXJdWydsaW5lJ10gLSAkdG9rZW5zWyRsYXN0Q29udGVudF1bJ2xpbmUnXSAtIDEpOwogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+cmVjb3JkTWV0cmljKCRzdGFja1B0ciwgJ0JsYW5rIGxpbmVzIGF0IGVuZCBvZiBjb250cm9sIHN0cnVjdHVyZScsICRnYXApOwoKICAgICAgICAgICAgICAgICRlcnJvciA9ICdCbGFuayBsaW5lIGZvdW5kIGF0IGVuZCBvZiBjb250cm9sIHN0cnVjdHVyZSc7CiAgICAgICAgICAgICAgICAkZml4ICAgPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkZXJyb3JUb2tlbiwgJ1NwYWNpbmdCZWZvcmVDbG9zZScpOwoKICAgICAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmJlZ2luQ2hhbmdlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgZm9yICgkaSA9ICgkc2NvcGVDbG9zZXIgLSAxKTsgJGkgPiAkbGFzdENvbnRlbnQ7ICRpLS0pIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGldWydsaW5lJ10gPT09ICR0b2tlbnNbJHNjb3BlQ2xvc2VyXVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCR0b2tlbnNbJGldWydsaW5lJ10gPT09ICR0b2tlbnNbJGxhc3RDb250ZW50XVsnbGluZSddKSB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPnJlcGxhY2VUb2tlbigkaSwgJycpOwogICAgICAgICAgICAgICAgICAgIH0KCiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmVuZENoYW5nZXNldCgpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+cmVjb3JkTWV0cmljKCRzdGFja1B0ciwgJ0JsYW5rIGxpbmVzIGF0IGVuZCBvZiBjb250cm9sIHN0cnVjdHVyZScsIDApOwogICAgICAgICAgICB9Ly9lbmQgaWYKICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgaWYgKCR0b2tlbnNbJHN0YWNrUHRyXVsnY29kZSddID09PSBUX01BVENIKSB7CiAgICAgICAgICAgIC8vIE1vdmUgdGhlIHNjb3BlIGNsb3NlciB0byB0aGUgc2VtaWNvbG9uL2NvbW1hLgogICAgICAgICAgICAkbmV4dCA9ICRwaHBjc0ZpbGUtPmZpbmROZXh0KFRva2Vuczo6JGVtcHR5VG9rZW5zLCAoJHNjb3BlQ2xvc2VyICsgMSksIG51bGwsIHRydWUpOwogICAgICAgICAgICBpZiAoJG5leHQgIT09IGZhbHNlCiAgICAgICAgICAgICAgICAmJiAoJHRva2Vuc1skbmV4dF1bJ2NvZGUnXSA9PT0gVF9TRU1JQ09MT04gfHwgJHRva2Vuc1skbmV4dF1bJ2NvZGUnXSA9PT0gVF9DT01NQSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICAkc2NvcGVDbG9zZXIgPSAkbmV4dDsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHRyYWlsaW5nQ29udGVudCA9ICRwaHBjc0ZpbGUtPmZpbmROZXh0KAogICAgICAgICAgICBUX1dISVRFU1BBQ0UsCiAgICAgICAgICAgICgkc2NvcGVDbG9zZXIgKyAxKSwKICAgICAgICAgICAgbnVsbCwKICAgICAgICAgICAgdHJ1ZQogICAgICAgICk7CgogICAgICAgIGlmICgkdG9rZW5zWyR0cmFpbGluZ0NvbnRlbnRdWydjb2RlJ10gPT09IFRfQ09NTUVOVAogICAgICAgICAgICB8fCBpc3NldChUb2tlbnM6OiRwaHBjc0NvbW1lbnRUb2tlbnNbJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnY29kZSddXSkgPT09IHRydWUKICAgICAgICApIHsKICAgICAgICAgICAgLy8gU3BlY2lhbCBleGNlcHRpb24gZm9yIGNvZGUgd2hlcmUgdGhlIGNvbW1lbnQgYWJvdXQKICAgICAgICAgICAgLy8gYW4gRUxTRSBvciBFTFNFSUYgaXMgd3JpdHRlbiBiZXR3ZWVuIHRoZSBjb250cm9sIHN0cnVjdHVyZXMuCiAgICAgICAgICAgICRuZXh0Q29kZSA9ICRwaHBjc0ZpbGUtPmZpbmROZXh0KAogICAgICAgICAgICAgICAgVG9rZW5zOjokZW1wdHlUb2tlbnMsCiAgICAgICAgICAgICAgICAoJHNjb3BlQ2xvc2VyICsgMSksCiAgICAgICAgICAgICAgICBudWxsLAogICAgICAgICAgICAgICAgdHJ1ZQogICAgICAgICAgICApOwoKICAgICAgICAgICAgaWYgKCR0b2tlbnNbJG5leHRDb2RlXVsnY29kZSddID09PSBUX0VMU0UKICAgICAgICAgICAgICAgIHx8ICR0b2tlbnNbJG5leHRDb2RlXVsnY29kZSddID09PSBUX0VMU0VJRgogICAgICAgICAgICAgICAgfHwgJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnbGluZSddID09PSAkdG9rZW5zWyRzY29wZUNsb3Nlcl1bJ2xpbmUnXQogICAgICAgICAgICApIHsKICAgICAgICAgICAgICAgICR0cmFpbGluZ0NvbnRlbnQgPSAkbmV4dENvZGU7CiAgICAgICAgICAgIH0KICAgICAgICB9Ly9lbmQgaWYKCiAgICAgICAgaWYgKCR0b2tlbnNbJHRyYWlsaW5nQ29udGVudF1bJ2NvZGUnXSA9PT0gVF9FTFNFKSB7CiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRzdGFja1B0cl1bJ2NvZGUnXSA9PT0gVF9JRikgewogICAgICAgICAgICAgICAgLy8gSUYgd2l0aCBFTFNFLgogICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBpZiAoJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnY29kZSddID09PSBUX1dISUxFCiAgICAgICAgICAgICYmICR0b2tlbnNbJHN0YWNrUHRyXVsnY29kZSddID09PSBUX0RPCiAgICAgICAgKSB7CiAgICAgICAgICAgIC8vIERPIHdpdGggV0hJTEUuCiAgICAgICAgICAgIHJldHVybjsKICAgICAgICB9CgogICAgICAgIGlmICgkdG9rZW5zWyR0cmFpbGluZ0NvbnRlbnRdWydjb2RlJ10gPT09IFRfQ0xPU0VfVEFHKSB7CiAgICAgICAgICAgIC8vIEF0IHRoZSBlbmQgb2YgdGhlIHNjcmlwdCBvciBlbWJlZGRlZCBjb2RlLgogICAgICAgICAgICByZXR1cm47CiAgICAgICAgfQoKICAgICAgICBpZiAoaXNzZXQoJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnc2NvcGVfY29uZGl0aW9uJ10pID09PSB0cnVlCiAgICAgICAgICAgICYmICR0b2tlbnNbJHRyYWlsaW5nQ29udGVudF1bJ3Njb3BlX2NvbmRpdGlvbiddICE9PSAkdHJhaWxpbmdDb250ZW50CiAgICAgICAgICAgICYmIGlzc2V0KCR0b2tlbnNbJHRyYWlsaW5nQ29udGVudF1bJ3Njb3BlX29wZW5lciddKSA9PT0gdHJ1ZQogICAgICAgICAgICAmJiAkdG9rZW5zWyR0cmFpbGluZ0NvbnRlbnRdWydzY29wZV9vcGVuZXInXSAhPT0gJHRyYWlsaW5nQ29udGVudAogICAgICAgICkgewogICAgICAgICAgICAvLyBBbm90aGVyIGNvbnRyb2wgc3RydWN0dXJlJ3MgY2xvc2luZyBicmFjZS4KICAgICAgICAgICAgJG93bmVyID0gJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnc2NvcGVfY29uZGl0aW9uJ107CiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRvd25lcl1bJ2NvZGUnXSA9PT0gVF9GVU5DVElPTikgewogICAgICAgICAgICAgICAgLy8gVGhlIG5leHQgY29udGVudCBpcyB0aGUgY2xvc2luZyBicmFjZSBvZiBhIGZ1bmN0aW9uCiAgICAgICAgICAgICAgICAvLyBzbyBub3JtYWwgZnVuY3Rpb24gcnVsZXMgYXBwbHkgYW5kIHdlIGNhbiBpZ25vcmUgaXQuCiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkdG9rZW5zWyRvd25lcl1bJ2NvZGUnXSA9PT0gVF9DTE9TVVJFCiAgICAgICAgICAgICAgICAmJiAoJHBocGNzRmlsZS0+aGFzQ29uZGl0aW9uKCRzdGFja1B0ciwgW1RfRlVOQ1RJT04sIFRfQ0xPU1VSRV0pID09PSB0cnVlCiAgICAgICAgICAgICAgICB8fCBpc3NldCgkdG9rZW5zWyRzdGFja1B0cl1bJ25lc3RlZF9wYXJlbnRoZXNpcyddKSA9PT0gdHJ1ZSkKICAgICAgICAgICAgKSB7CiAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkdG9rZW5zWyR0cmFpbGluZ0NvbnRlbnRdWydsaW5lJ10gIT09ICgkdG9rZW5zWyRzY29wZUNsb3Nlcl1bJ2xpbmUnXSArIDEpKSB7CiAgICAgICAgICAgICAgICAkZXJyb3IgPSAnQmxhbmsgbGluZSBmb3VuZCBhZnRlciBjb250cm9sIHN0cnVjdHVyZSc7CiAgICAgICAgICAgICAgICAkZml4ICAgPSAkcGhwY3NGaWxlLT5hZGRGaXhhYmxlRXJyb3IoJGVycm9yLCAkc2NvcGVDbG9zZXIsICdMaW5lQWZ0ZXJDbG9zZScpOwoKICAgICAgICAgICAgICAgIGlmICgkZml4ID09PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAgICAgJHBocGNzRmlsZS0+Zml4ZXItPmJlZ2luQ2hhbmdlc2V0KCk7CiAgICAgICAgICAgICAgICAgICAgJGkgPSAoJHNjb3BlQ2xvc2VyICsgMSk7CiAgICAgICAgICAgICAgICAgICAgd2hpbGUgKCR0b2tlbnNbJGldWydsaW5lJ10gIT09ICR0b2tlbnNbJHRyYWlsaW5nQ29udGVudF1bJ2xpbmUnXSkgewogICAgICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+cmVwbGFjZVRva2VuKCRpLCAnJyk7CiAgICAgICAgICAgICAgICAgICAgICAgICRpKys7CiAgICAgICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YWRkTmV3bGluZSgkc2NvcGVDbG9zZXIpOwogICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5lbmRDaGFuZ2VzZXQoKTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSBpZiAoJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnY29kZSddICE9PSBUX0VMU0UKICAgICAgICAgICAgJiYgJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnY29kZSddICE9PSBUX0VMU0VJRgogICAgICAgICAgICAmJiAkdG9rZW5zWyR0cmFpbGluZ0NvbnRlbnRdWydjb2RlJ10gIT09IFRfQ0FUQ0gKICAgICAgICAgICAgJiYgJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnY29kZSddICE9PSBUX0ZJTkFMTFkKICAgICAgICAgICAgJiYgJHRva2Vuc1skdHJhaWxpbmdDb250ZW50XVsnbGluZSddID09PSAoJHRva2Vuc1skc2NvcGVDbG9zZXJdWydsaW5lJ10gKyAxKQogICAgICAgICkgewogICAgICAgICAgICAkZXJyb3IgPSAnTm8gYmxhbmsgbGluZSBmb3VuZCBhZnRlciBjb250cm9sIHN0cnVjdHVyZSc7CiAgICAgICAgICAgICRmaXggICA9ICRwaHBjc0ZpbGUtPmFkZEZpeGFibGVFcnJvcigkZXJyb3IsICRzY29wZUNsb3NlciwgJ05vTGluZUFmdGVyQ2xvc2UnKTsKICAgICAgICAgICAgaWYgKCRmaXggPT09IHRydWUpIHsKICAgICAgICAgICAgICAgICR0cmFpbGluZ0NvbnRlbnQgPSAkcGhwY3NGaWxlLT5maW5kTmV4dCgKICAgICAgICAgICAgICAgICAgICBUX1dISVRFU1BBQ0UsCiAgICAgICAgICAgICAgICAgICAgKCRzY29wZUNsb3NlciArIDEpLAogICAgICAgICAgICAgICAgICAgIG51bGwsCiAgICAgICAgICAgICAgICAgICAgdHJ1ZQogICAgICAgICAgICAgICAgKTsKCiAgICAgICAgICAgICAgICBpZiAoKCR0b2tlbnNbJHRyYWlsaW5nQ29udGVudF1bJ2NvZGUnXSA9PT0gVF9DT01NRU5UCiAgICAgICAgICAgICAgICAgICAgfHwgaXNzZXQoVG9rZW5zOjokcGhwY3NDb21tZW50VG9rZW5zWyR0b2tlbnNbJHRyYWlsaW5nQ29udGVudF1bJ2NvZGUnXV0pID09PSB0cnVlKQogICAgICAgICAgICAgICAgICAgICYmICR0b2tlbnNbJHRyYWlsaW5nQ29udGVudF1bJ2xpbmUnXSA9PT0gJHRva2Vuc1skc2NvcGVDbG9zZXJdWydsaW5lJ10KICAgICAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgICAgICRwaHBjc0ZpbGUtPmZpeGVyLT5hZGROZXdsaW5lKCR0cmFpbGluZ0NvbnRlbnQpOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICAkcGhwY3NGaWxlLT5maXhlci0+YWRkTmV3bGluZSgkc2NvcGVDbG9zZXIpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfS8vZW5kIGlmCgogICAgfS8vZW5kIHByb2Nlc3MoKQoKCn0vL2VuZCBjbGFzcwoiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjUwOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xTcXVpelxTbmlmZnNcV2hpdGVTcGFjZSI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjUwOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xTcXVpelxTbmlmZnNcV2hpdGVTcGFjZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjEwOiJXaGl0ZVNwYWNlIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6Nzk6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xXaGl0ZVNwYWNlXENvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmYiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfIjoxMzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Nzk6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xXaGl0ZVNwYWNlXENvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmYiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyODoiQ29udHJvbFN0cnVjdHVyZVNwYWNpbmdTbmlmZiI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtOO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjE6e3M6Mjk6IlxQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjk6IlxQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiU25pZmYiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MTp7czoxMDE6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xXaGl0ZVNwYWNlXENvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmY6OiRzdXBwb3J0ZWRUb2tlbml6ZXJzIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5IjoxMTp7czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoxMDE6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xXaGl0ZVNwYWNlXENvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmY6OiRzdXBwb3J0ZWRUb2tlbml6ZXJzIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTk6InN1cHBvcnRlZFRva2VuaXplcnMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDE6IkEgbGlzdCBvZiB0b2tlbml6ZXJzIHRoaXMgc25pZmYgc3VwcG9ydHMuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xWYXJfIjo0OntzOjE1OiIAKgB2YXJpYWJsZU5hbWUiO3M6MDoiIjtzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czozOiJ2YXIiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjQ5OiJQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xXaGl0ZVNwYWNlIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTozOntzOjQ6IkZpbGUiO3M6MjY6IlBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjU6IlNuaWZmIjtzOjI4OiJQSFBfQ29kZVNuaWZmZXJcU25pZmZzXFNuaWZmIjtzOjY6IlRva2VucyI7czoyNzoiUEhQX0NvZGVTbmlmZmVyXFV0aWxcVG9rZW5zIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZXMiO2E6MDp7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGRlZmF1bHQiO3M6MTM6IlsnUEhQJywgJ0pTJ10iO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHN0YXRpYyI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6Mjc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcUHJvcGVydHkAdHlwZSI7TjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxQcm9wZXJ0eQByZWFkT25seSI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFByb3BlcnR5AG1ldGFkYXRhIjthOjA6e319fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjI6e3M6OTE6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xXaGl0ZVNwYWNlXENvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmY6OnJlZ2lzdGVyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1NzoiUmV0dXJucyBhbiBhcnJheSBvZiB0b2tlbnMgdGhpcyB0ZXN0IHdhbnRzIHRvIGxpc3RlbiBmb3IuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xSZXR1cm5fIjozOntzOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBcnJheV8iOjM6e3M6MTI6IgAqAHZhbHVlVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6MTA6IgAqAGtleVR5cGUiO047czoxNzoiACoAZGVmYXVsdEtleVR5cGUiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb21wb3VuZCI6Mjp7czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0eXBlcyI7YToyOntpOjA7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31pOjE7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEludGVnZXIiOjA6e319czo1MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xBZ2dyZWdhdGVkVHlwZQB0b2tlbiI7czoxOiJ8Ijt9fXM6NzoiACoAbmFtZSI7czo2OiJyZXR1cm4iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6Nzk7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo5MToiXFBIUF9Db2RlU25pZmZlclxTdGFuZGFyZHNcU3F1aXpcU25pZmZzXFdoaXRlU3BhY2VcQ29udHJvbFN0cnVjdHVyZVNwYWNpbmdTbmlmZjo6cmVnaXN0ZXIoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjg6InJlZ2lzdGVyIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXJndW1lbnRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTI7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX1zOjkwOiJcUEhQX0NvZGVTbmlmZmVyXFN0YW5kYXJkc1xTcXVpelxTbmlmZnNcV2hpdGVTcGFjZVxDb250cm9sU3RydWN0dXJlU3BhY2luZ1NuaWZmOjpwcm9jZXNzKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1OToiUHJvY2Vzc2VzIHRoaXMgdGVzdCwgd2hlbiBvbmUgb2YgaXRzIHRva2VucyBpcyBlbmNvdW50ZXJlZC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mzp7aTowO086NDQ6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtIjo2OntzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AdmFyaWFibGVOYW1lIjtzOjk6InBocGNzRmlsZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUF9Db2RlU25pZmZlclxGaWxlc1xGaWxlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NDoiRmlsZSI7fX1zOjc6IgAqAG5hbWUiO3M6NToicGFyYW0iO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjIzOiJUaGUgZmlsZSBiZWluZyBzY2FubmVkLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ0OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xQYXJhbSI6Njp7czo1ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAHZhcmlhYmxlTmFtZSI7czo4OiJzdGFja1B0ciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFBhcmFtAGlzVmFyaWFkaWMiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUGFyYW0AaXNSZWZlcmVuY2UiO2I6MDtzOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xJbnRlZ2VyIjowOnt9czo3OiIAKgBuYW1lIjtzOjU6InBhcmFtIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2NToiVGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHRva2VuCmluIHRoZSBzdGFjayBwYXNzZWQgaW4gJHRva2Vucy4iO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgB0eXBlIjtPOjM2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcVm9pZF8iOjA6e31zOjc6IgAqAG5hbWUiO3M6NjoicmV0dXJuIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX19czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjc5O3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6OTA6IlxQSFBfQ29kZVNuaWZmZXJcU3RhbmRhcmRzXFNxdWl6XFNuaWZmc1xXaGl0ZVNwYWNlXENvbnRyb2xTdHJ1Y3R1cmVTcGFjaW5nU25pZmY6OnByb2Nlc3MoKSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjc6InByb2Nlc3MiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6Mjp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6OToicGhwY3NGaWxlIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6Mjc6IlxQSFBfQ29kZVNuaWZmZXJcRmlsZXNcRmlsZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjQ6IkZpbGUiO319czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAZGVmYXVsdCI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aToxO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6ODoic3RhY2tQdHIiO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2NDtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM1NjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9fX1zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AdXNlZFRyYWl0cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM1OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBtZXRhZGF0YSI7YTowOnt9fQ==";