1752026088 waR3U4bTeM%3A3ecc09a09f119c0c1f472753688f8667-0a5a81fef0f8cb389831a27c5b97e698 s:23092:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDQ6IklMTCB0cmFpdCAoZm9yIHN1YmNsYXNzZXMgb2YgQWJzdHJhY3RSZWNvcmQpIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY3NjoiUEhQIHZlcnNpb24gOAoKQ29weXJpZ2h0IChDKSBWaWxsYW5vdmEgVW5pdmVyc2l0eSAyMDEwLgoKVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIsCmFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgoKVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCmJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCk1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUKR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KCllvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCmFsb25nIHdpdGggdGhpcyBwcm9ncmFtOyBpZiBub3QsIHdyaXRlIHRvIHRoZSBGcmVlIFNvZnR3YXJlCkZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsIEJvc3RvbiwgTUEgIDAyMTEwLTEzMDEgIFVTQSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjU6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6ODoiY2F0ZWdvcnkiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY6IlZ1RmluZCI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MTtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NzoicGFja2FnZSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MTA6IkNvbnRyb2xsZXIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTE6IkRlbWlhbiBLYXR6IjtzOjU4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvckVtYWlsIjtzOjI1OiJkZW1pYW4ua2F0ekB2aWxsYW5vdmEuZWR1Ijt9aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJsaWNlbnNlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo2OToiaHR0cDovL29wZW5zb3VyY2Uub3JnL2xpY2Vuc2VzL2dwbC0yLjAucGhwIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTo0O086NDM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsiOjM6e3M6NzoiACoAbmFtZSI7czo0OiJsaW5rIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czo5OiJNYWluIFNpdGUiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xMaW5rAGxpbmsiO3M6MTg6Imh0dHBzOi8vdnVmaW5kLm9yZyI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiMGE1YTgxZmVmMGY4Y2IzODk4MzFhMjdjNWI5N2U2OTgiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZSI7czoyMDoiSUxMUmVxdWVzdHNUcmFpdC5waHAiO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo0OToiVnVGaW5kL3NyYy9WdUZpbmQvQ29udHJvbGxlci9JTExSZXF1ZXN0c1RyYWl0LnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6Njc1NzoiPD9waHAKCi8qKgogKiBJTEwgdHJhaXQgKGZvciBzdWJjbGFzc2VzIG9mIEFic3RyYWN0UmVjb3JkKQogKgogKiBQSFAgdmVyc2lvbiA4CiAqCiAqIENvcHlyaWdodCAoQykgVmlsbGFub3ZhIFVuaXZlcnNpdHkgMjAxMC4KICoKICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKICogaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSB2ZXJzaW9uIDIsCiAqIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLgogKgogKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKICogYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZQogKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgogKgogKiBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBhbG9uZyB3aXRoIHRoaXMgcHJvZ3JhbTsgaWYgbm90LCB3cml0ZSB0byB0aGUgRnJlZSBTb2Z0d2FyZQogKiBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLCBCb3N0b24sIE1BICAwMjExMC0xMzAxICBVU0EKICoKICogQGNhdGVnb3J5IFZ1RmluZAogKiBAcGFja2FnZSAgQ29udHJvbGxlcgogKiBAYXV0aG9yICAgRGVtaWFuIEthdHogPGRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHU+CiAqIEBsaWNlbnNlICBodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UKICogQGxpbmsgICAgIGh0dHBzOi8vdnVmaW5kLm9yZyBNYWluIFNpdGUKICovCgpuYW1lc3BhY2UgVnVGaW5kXENvbnRyb2xsZXI7Cgp1c2UgZnVuY3Rpb24gaW5fYXJyYXk7CnVzZSBmdW5jdGlvbiBpc19hcnJheTsKCi8qKgogKiBJTEwgdHJhaXQgKGZvciBzdWJjbGFzc2VzIG9mIEFic3RyYWN0UmVjb3JkKQogKgogKiBAY2F0ZWdvcnkgVnVGaW5kCiAqIEBwYWNrYWdlICBDb250cm9sbGVyCiAqIEBhdXRob3IgICBEZW1pYW4gS2F0eiA8ZGVtaWFuLmthdHpAdmlsbGFub3ZhLmVkdT4KICogQGxpY2Vuc2UgIGh0dHA6Ly9vcGVuc291cmNlLm9yZy9saWNlbnNlcy9ncGwtMi4wLnBocCBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogKiBAbGluayAgICAgaHR0cHM6Ly92dWZpbmQub3JnIE1haW4gU2l0ZQogKi8KdHJhaXQgSUxMUmVxdWVzdHNUcmFpdAp7CiAgICAvKioKICAgICAqIEFjdGlvbiBmb3IgZGVhbGluZyB3aXRoIElMTCByZXF1ZXN0cy4KICAgICAqCiAgICAgKiBAcmV0dXJuIG1peGVkCiAgICAgKi8KICAgIHB1YmxpYyBmdW5jdGlvbiBpbGxSZXF1ZXN0QWN0aW9uKCkKICAgIHsKICAgICAgICAkZHJpdmVyID0gJHRoaXMtPmxvYWRSZWNvcmQoKTsKCiAgICAgICAgLy8gU3RvcCBub3cgaWYgdGhlIHVzZXIgZG9lcyBub3QgaGF2ZSB2YWxpZCBjYXRhbG9nIGNyZWRlbnRpYWxzIGF2YWlsYWJsZToKICAgICAgICBpZiAoIWlzX2FycmF5KCRwYXRyb24gPSAkdGhpcy0+Y2F0YWxvZ0xvZ2luKCkpKSB7CiAgICAgICAgICAgIHJldHVybiAkcGF0cm9uOwogICAgICAgIH0KCiAgICAgICAgLy8gSWYgd2UncmUgbm90IHN1cHBvc2VkIHRvIGJlIGhlcmUsIGdpdmUgdXAgbm93IQogICAgICAgICRjYXRhbG9nID0gJHRoaXMtPmdldElMUygpOwogICAgICAgICRjaGVja1JlcXVlc3RzID0gJGNhdGFsb2ctPmNoZWNrRnVuY3Rpb24oCiAgICAgICAgICAgICdJTExSZXF1ZXN0cycsCiAgICAgICAgICAgIFsKICAgICAgICAgICAgICAgICdpZCcgPT4gJGRyaXZlci0+Z2V0VW5pcXVlSUQoKSwKICAgICAgICAgICAgICAgICdwYXRyb24nID0+ICRwYXRyb24sCiAgICAgICAgICAgIF0KICAgICAgICApOwogICAgICAgIGlmICghJGNoZWNrUmVxdWVzdHMpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yZWRpcmVjdFRvUmVjb3JkKCk7CiAgICAgICAgfQoKICAgICAgICAvLyBEbyB3ZSBoYXZlIHZhbGlkIGluZm9ybWF0aW9uPwogICAgICAgIC8vIFNldHMgJHRoaXMtPmxvZ29uVVJMIGFuZCAkdGhpcy0+Z2F0aGVyZWREZXRhaWxzCiAgICAgICAgJGdhdGhlcmVkRGV0YWlscyA9ICR0aGlzLT5JTExSZXF1ZXN0cygpLT52YWxpZGF0ZVJlcXVlc3QoCiAgICAgICAgICAgICRjaGVja1JlcXVlc3RzWydITUFDS2V5cyddCiAgICAgICAgKTsKICAgICAgICBpZiAoISRnYXRoZXJlZERldGFpbHMpIHsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yZWRpcmVjdFRvUmVjb3JkKCk7CiAgICAgICAgfQoKICAgICAgICAvLyBCbG9jayBpbnZhbGlkIHJlcXVlc3RzOgogICAgICAgICR2YWxpZFJlcXVlc3QgPSAkY2F0YWxvZy0+Y2hlY2tJTExSZXF1ZXN0SXNWYWxpZCgKICAgICAgICAgICAgJGRyaXZlci0+Z2V0VW5pcXVlSUQoKSwKICAgICAgICAgICAgJGdhdGhlcmVkRGV0YWlscywKICAgICAgICAgICAgJHBhdHJvbgogICAgICAgICk7CiAgICAgICAgaWYgKChpc19hcnJheSgkdmFsaWRSZXF1ZXN0KSAmJiAhJHZhbGlkUmVxdWVzdFsndmFsaWQnXSkgfHwgISR2YWxpZFJlcXVlc3QpIHsKICAgICAgICAgICAgJHRoaXMtPmZsYXNoTWVzc2VuZ2VyKCktPmFkZEVycm9yTWVzc2FnZSgKICAgICAgICAgICAgICAgIGlzX2FycmF5KCR2YWxpZFJlcXVlc3QpCiAgICAgICAgICAgICAgICAgICAgPyAkdmFsaWRSZXF1ZXN0WydzdGF0dXMnXSA6ICdpbGxfcmVxdWVzdF9lcnJvcl9ibG9ja2VkJwogICAgICAgICAgICApOwogICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJlZGlyZWN0VG9SZWNvcmQoJyN0b3AnKTsKICAgICAgICB9CgogICAgICAgIC8vIFNlbmQgdmFyaW91cyB2YWx1ZXMgdG8gdGhlIHZpZXcgc28gd2UgY2FuIGJ1aWxkIHRoZSBmb3JtOgoKICAgICAgICAkZXh0cmFGaWVsZHMgPSBpc3NldCgkY2hlY2tSZXF1ZXN0c1snZXh0cmFGaWVsZHMnXSkKICAgICAgICAgICAgPyBleHBsb2RlKCc6JywgJGNoZWNrUmVxdWVzdHNbJ2V4dHJhRmllbGRzJ10pIDogW107CgogICAgICAgIC8vIFByb2Nlc3MgZm9ybSBzdWJtaXNzaW9ucyBpZiBuZWNlc3Nhcnk6CiAgICAgICAgaWYgKG51bGwgIT09ICR0aGlzLT5wYXJhbXMoKS0+ZnJvbVBvc3QoJ3BsYWNlSUxMUmVxdWVzdCcpKSB7CiAgICAgICAgICAgIC8vIElmIHdlIG1hZGUgaXQgdGhpcyBmYXIsIHdlJ3JlIHJlYWR5IHRvIHBsYWNlIHRoZSBob2xkOwogICAgICAgICAgICAvLyBpZiBzdWNjZXNzZnVsLCB3ZSB3aWxsIHJlZGlyZWN0IGFuZCBjYW4gc3RvcCBoZXJlLgoKICAgICAgICAgICAgLy8gQWRkIFBhdHJvbiBEYXRhIHRvIFN1Ym1pdHRlZCBEYXRhCiAgICAgICAgICAgICRkZXRhaWxzID0gJGdhdGhlcmVkRGV0YWlscyArIFsncGF0cm9uJyA9PiAkcGF0cm9uXTsKCiAgICAgICAgICAgIC8vIEF0dGVtcHQgdG8gcGxhY2UgdGhlIGhvbGQ6CiAgICAgICAgICAgICRmdW5jdGlvbiA9IChzdHJpbmcpJGNoZWNrUmVxdWVzdHNbJ2Z1bmN0aW9uJ107CiAgICAgICAgICAgICRyZXN1bHRzID0gJGNhdGFsb2ctPiRmdW5jdGlvbigkZGV0YWlscyk7CgogICAgICAgICAgICAvLyBTdWNjZXNzOiBHbyB0byBEaXNwbGF5IElMTCBSZXF1ZXN0cwogICAgICAgICAgICBpZiAoaXNzZXQoJHJlc3VsdHNbJ3N1Y2Nlc3MnXSkgJiYgJHJlc3VsdHNbJ3N1Y2Nlc3MnXSA9PSB0cnVlKSB7CiAgICAgICAgICAgICAgICAkbXNnID0gWwogICAgICAgICAgICAgICAgICAgICdodG1sJyA9PiB0cnVlLAogICAgICAgICAgICAgICAgICAgICdtc2cnID0+ICdpbGxfcmVxdWVzdF9wbGFjZV9zdWNjZXNzX2h0bWwnLAogICAgICAgICAgICAgICAgICAgICd0b2tlbnMnID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgJyUldXJsJSUnID0+ICR0aGlzLT51cmwoKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgLT5mcm9tUm91dGUoJ215cmVzZWFyY2gtaWxscmVxdWVzdHMnKSwKICAgICAgICAgICAgICAgICAgICBdLAogICAgICAgICAgICAgICAgXTsKICAgICAgICAgICAgICAgICR0aGlzLT5mbGFzaE1lc3NlbmdlcigpLT5hZGRNZXNzYWdlKCRtc2csICdzdWNjZXNzJyk7CiAgICAgICAgICAgICAgICAkdGhpcy0+Z2V0Vmlld1JlbmRlcmVyKCktPnBsdWdpbignc2Vzc2lvbicpLT5wdXQoJ3Jlc2V0X2FjY291bnRfc3RhdHVzJywgdHJ1ZSk7CiAgICAgICAgICAgICAgICByZXR1cm4gJHRoaXMtPnJlZGlyZWN0VG9SZWNvcmQoJHRoaXMtPmluTGlnaHRib3goKSA/ICc/bGF5b3V0PWxpZ2h0Ym94JyA6ICcnKTsKICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgIC8vIEZhaWx1cmU6IHVzZSBmbGFzaCBtZXNzZW5nZXIgdG8gZGlzcGxheSBtZXNzYWdlcywgc3RheSBvbgogICAgICAgICAgICAgICAgLy8gdGhlIGN1cnJlbnQgZm9ybS4KICAgICAgICAgICAgICAgIGlmIChpc3NldCgkcmVzdWx0c1snc3RhdHVzJ10pKSB7CiAgICAgICAgICAgICAgICAgICAgJHRoaXMtPmZsYXNoTWVzc2VuZ2VyKCkKICAgICAgICAgICAgICAgICAgICAgICAgLT5hZGRNZXNzYWdlKCRyZXN1bHRzWydzdGF0dXMnXSwgJ2Vycm9yJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBpZiAoaXNzZXQoJHJlc3VsdHNbJ3N5c01lc3NhZ2UnXSkpIHsKICAgICAgICAgICAgICAgICAgICAkdGhpcy0+Zmxhc2hNZXNzZW5nZXIoKQogICAgICAgICAgICAgICAgICAgICAgICAtPmFkZE1lc3NhZ2UoJHJlc3VsdHNbJ3N5c01lc3NhZ2UnXSwgJ2Vycm9yJyk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vIEZpbmQgYW5kIGZvcm1hdCB0aGUgZGVmYXVsdCByZXF1aXJlZCBkYXRlOgogICAgICAgICRkZWZhdWx0UmVxdWlyZWREYXRlID0gJHRoaXMtPklMTFJlcXVlc3RzKCkKICAgICAgICAgICAgLT5nZXREZWZhdWx0UmVxdWlyZWREYXRlKCRjaGVja1JlcXVlc3RzKTsKICAgICAgICAkZGVmYXVsdFJlcXVpcmVkRGF0ZQogICAgICAgICAgICA9ICR0aGlzLT5zZXJ2aWNlTG9jYXRvci0+Z2V0KFxWdUZpbmRcRGF0ZVxDb252ZXJ0ZXI6OmNsYXNzKQogICAgICAgICAgICAtPmNvbnZlcnRUb0Rpc3BsYXlEYXRlKCdVJywgJGRlZmF1bHRSZXF1aXJlZERhdGUpOwoKICAgICAgICAvLyBHZXQgcGlja3VwIGxpYnJhcmllcwogICAgICAgICRwaWNrdXBMaWJyYXJpZXMgPSAkY2F0YWxvZy0+Z2V0SUxMUGlja1VwTGlicmFyaWVzKAogICAgICAgICAgICAkZHJpdmVyLT5nZXRVbmlxdWVJRCgpLAogICAgICAgICAgICAkcGF0cm9uLAogICAgICAgICAgICAkZ2F0aGVyZWREZXRhaWxzCiAgICAgICAgKTsKCiAgICAgICAgLy8gR2V0IHBpY2t1cCBsb2NhdGlvbnMuIE5vdGUgdGhhdCB0aGVzZSBhcmUgaW5kZXBlbmRlbnQgb2YgcGlja3VwIGxpYnJhcnksCiAgICAgICAgLy8gYW5kIGxpYnJhcnkgc3BlY2lmaWMgbG9jYXRpb25zIG11c3QgYmUgcmV0cmlldmVkIHdoZW4gYSBsaWJyYXJ5IGlzCiAgICAgICAgLy8gc2VsZWN0ZWQuCiAgICAgICAgJHBpY2t1cExvY2F0aW9ucyA9ICRjYXRhbG9nLT5nZXRQaWNrVXBMb2NhdGlvbnMoJHBhdHJvbiwgJGdhdGhlcmVkRGV0YWlscyk7CgogICAgICAgIC8vIENoZWNrIHRoYXQgdGhlcmUgYXJlIHBpY2sgdXAgbG9jYXRpb25zIHRvIGNob29zZSBmcm9tIGlmIHRoZSBmaWVsZCBpcwogICAgICAgIC8vIHJlcXVpcmVkOgogICAgICAgIGlmIChpbl9hcnJheSgncGlja1VwTG9jYXRpb24nLCAkZXh0cmFGaWVsZHMpICYmICEkcGlja3VwTG9jYXRpb25zKSB7CiAgICAgICAgICAgICR0aGlzLT5mbGFzaE1lc3NlbmdlcigpCiAgICAgICAgICAgICAgICAtPmFkZEVycm9yTWVzc2FnZSgnTm8gcGlja3VwIGxvY2F0aW9ucyBhdmFpbGFibGUnKTsKICAgICAgICAgICAgcmV0dXJuICR0aGlzLT5yZWRpcmVjdFRvUmVjb3JkKCcjdG9wJyk7CiAgICAgICAgfQoKICAgICAgICAkY29uZmlnID0gJHRoaXMtPmdldENvbmZpZygpOwogICAgICAgICRob21lTGlicmFyeSA9ICgkY29uZmlnLT5BY2NvdW50LT5zZXRfaG9tZV9saWJyYXJ5ID8/IHRydWUpCiAgICAgICAgICAgID8gJHRoaXMtPmdldFVzZXIoKS0+Z2V0SG9tZUxpYnJhcnkoKSA6ICcnOwogICAgICAgIC8vIGhlbHBUZXh0IGlzIG9ubHkgZm9yIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6CiAgICAgICAgJGhlbHBUZXh0ID0gJGhlbHBUZXh0SHRtbCA9ICRjaGVja1JlcXVlc3RzWydoZWxwVGV4dCddOwoKICAgICAgICAkdmlldyA9ICR0aGlzLT5jcmVhdGVWaWV3TW9kZWwoCiAgICAgICAgICAgIGNvbXBhY3QoCiAgICAgICAgICAgICAgICAnZ2F0aGVyZWREZXRhaWxzJywKICAgICAgICAgICAgICAgICdwaWNrdXBMaWJyYXJpZXMnLAogICAgICAgICAgICAgICAgJ3BpY2t1cExvY2F0aW9ucycsCiAgICAgICAgICAgICAgICAnaG9tZUxpYnJhcnknLAogICAgICAgICAgICAgICAgJ2V4dHJhRmllbGRzJywKICAgICAgICAgICAgICAgICdkZWZhdWx0UmVxdWlyZWREYXRlJywKICAgICAgICAgICAgICAgICdoZWxwVGV4dCcsCiAgICAgICAgICAgICAgICAnaGVscFRleHRIdG1sJwogICAgICAgICAgICApCiAgICAgICAgKTsKICAgICAgICAkdmlldy0+c2V0VGVtcGxhdGUoJ3JlY29yZC9pbGxyZXF1ZXN0Jyk7CiAgICAgICAgcmV0dXJuICR2aWV3OwogICAgfQp9CiI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6MTg6IlxWdUZpbmRcQ29udHJvbGxlciI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjE4OiJcVnVGaW5kXENvbnRyb2xsZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMDoiQ29udHJvbGxlciI7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YToxOntzOjM1OiJcVnVGaW5kXENvbnRyb2xsZXJcSUxMUmVxdWVzdHNUcmFpdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8iOjg6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjM1OiJcVnVGaW5kXENvbnRyb2xsZXJcSUxMUmVxdWVzdHNUcmFpdCI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE2OiJJTExSZXF1ZXN0c1RyYWl0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NDoiSUxMIHRyYWl0IChmb3Igc3ViY2xhc3NlcyBvZiBBYnN0cmFjdFJlY29yZCkiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6NTp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo4OiJjYXRlZ29yeSI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NjoiVnVGaW5kIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo3OiJwYWNrYWdlIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMDoiQ29udHJvbGxlciI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319fWk6MjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IiOjQ6e3M6NzoiACoAbmFtZSI7czo2OiJhdXRob3IiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yTmFtZSI7czoxMToiRGVtaWFuIEthdHoiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MjU6ImRlbWlhbi5rYXR6QHZpbGxhbm92YS5lZHUiO31pOjM7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjc6ImxpY2Vuc2UiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjY5OiJodHRwOi8vb3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvZ3BsLTIuMC5waHAgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fX1pOjQ7Tzo0MzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcTGluayI6Mzp7czo3OiIAKgBuYW1lIjtzOjQ6ImxpbmsiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjk6Ik1haW4gU2l0ZSI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXExpbmsAbGluayI7czoxODoiaHR0cHM6Ly92dWZpbmQub3JnIjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MTc6IlZ1RmluZFxDb250cm9sbGVyIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTowOnt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBtZXRob2RzIjthOjE6e3M6NTU6IlxWdUZpbmRcQ29udHJvbGxlclxJTExSZXF1ZXN0c1RyYWl0OjppbGxSZXF1ZXN0QWN0aW9uKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czozNzoiQWN0aW9uIGZvciBkZWFsaW5nIHdpdGggSUxMIHJlcXVlc3RzLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcUmV0dXJuXyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InJldHVybiI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e319fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo5MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjU1OiJcVnVGaW5kXENvbnRyb2xsZXJcSUxMUmVxdWVzdHNUcmFpdDo6aWxsUmVxdWVzdEFjdGlvbigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6ImlsbFJlcXVlc3RBY3Rpb24iO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODc7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xNaXhlZF8iOjA6e31zOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fX19czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAHVzZWRUcmFpdHMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBsb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGVuZExvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToxODg7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAG1ldGFkYXRhIjthOjA6e319fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";