Further information on the data collected can be found at
You in our privacy policy.
CXZhciBtYXA7DQoJZnVuY3Rpb24gaW5pdE1hcCgpIHsNCgkgICAgdmFyIHN0eWxlQXJyYXkgPSBbDQogICAgew0KICAgICAgICAiZmVhdHVyZVR5cGUiOiAiYWRtaW5pc3RyYXRpdmUiLA0KICAgICAgICAiZWxlbWVudFR5cGUiOiAiYWxsIiwNCiAgICAgICAgInN0eWxlcnMiOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInNhdHVyYXRpb24iOiAiLTEwMCINCiAgICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgIH0sDQogICAgew0KICAgICAgICAiZmVhdHVyZVR5cGUiOiAiYWRtaW5pc3RyYXRpdmUucHJvdmluY2UiLA0KICAgICAgICAiZWxlbWVudFR5cGUiOiAiYWxsIiwNCiAgICAgICAgInN0eWxlcnMiOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInZpc2liaWxpdHkiOiAib2ZmIg0KICAgICAgICAgICAgfQ0KICAgICAgICBdDQogICAgfSwNCiAgICB7DQogICAgICAgICJmZWF0dXJlVHlwZSI6ICJsYW5kc2NhcGUiLA0KICAgICAgICAiZWxlbWVudFR5cGUiOiAiYWxsIiwNCiAgICAgICAgInN0eWxlcnMiOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInNhdHVyYXRpb24iOiAtMTAwDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJsaWdodG5lc3MiOiA2NQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidmlzaWJpbGl0eSI6ICJvbiINCiAgICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgIH0sDQogICAgew0KICAgICAgICAiZmVhdHVyZVR5cGUiOiAicG9pIiwNCiAgICAgICAgImVsZW1lbnRUeXBlIjogImFsbCIsDQogICAgICAgICJzdHlsZXJzIjogWw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJzYXR1cmF0aW9uIjogLTEwMA0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAibGlnaHRuZXNzIjogIjUwIg0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidmlzaWJpbGl0eSI6ICJzaW1wbGlmaWVkIg0KICAgICAgICAgICAgfQ0KICAgICAgICBdDQogICAgfSwNCiAgICB7DQogICAgICAgICJmZWF0dXJlVHlwZSI6ICJyb2FkIiwNCiAgICAgICAgImVsZW1lbnRUeXBlIjogImFsbCIsDQogICAgICAgICJzdHlsZXJzIjogWw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJzYXR1cmF0aW9uIjogIi0xMDAiDQogICAgICAgICAgICB9DQogICAgICAgIF0NCiAgICB9LA0KICAgIHsNCiAgICAgICAgImZlYXR1cmVUeXBlIjogInJvYWQuaGlnaHdheSIsDQogICAgICAgICJlbGVtZW50VHlwZSI6ICJhbGwiLA0KICAgICAgICAic3R5bGVycyI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAidmlzaWJpbGl0eSI6ICJzaW1wbGlmaWVkIg0KICAgICAgICAgICAgfQ0KICAgICAgICBdDQogICAgfSwNCiAgICB7DQogICAgICAgICJmZWF0dXJlVHlwZSI6ICJyb2FkLmFydGVyaWFsIiwNCiAgICAgICAgImVsZW1lbnRUeXBlIjogImFsbCIsDQogICAgICAgICJzdHlsZXJzIjogWw0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJsaWdodG5lc3MiOiAiMzAiDQogICAgICAgICAgICB9DQogICAgICAgIF0NCiAgICB9LA0KICAgIHsNCiAgICAgICAgImZlYXR1cmVUeXBlIjogInJvYWQubG9jYWwiLA0KICAgICAgICAiZWxlbWVudFR5cGUiOiAiYWxsIiwNCiAgICAgICAgInN0eWxlcnMiOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgImxpZ2h0bmVzcyI6ICI0MCINCiAgICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgIH0sDQogICAgew0KICAgICAgICAiZmVhdHVyZVR5cGUiOiAidHJhbnNpdCIsDQogICAgICAgICJlbGVtZW50VHlwZSI6ICJhbGwiLA0KICAgICAgICAic3R5bGVycyI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAic2F0dXJhdGlvbiI6IC0xMDANCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInZpc2liaWxpdHkiOiAic2ltcGxpZmllZCINCiAgICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgIH0sDQogICAgew0KICAgICAgICAiZmVhdHVyZVR5cGUiOiAid2F0ZXIiLA0KICAgICAgICAiZWxlbWVudFR5cGUiOiAiZ2VvbWV0cnkiLA0KICAgICAgICAic3R5bGVycyI6IFsNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAiaHVlIjogIiNmZmZmMDAiDQogICAgICAgICAgICB9LA0KICAgICAgICAgICAgew0KICAgICAgICAgICAgICAgICJsaWdodG5lc3MiOiAtMjUNCiAgICAgICAgICAgIH0sDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgInNhdHVyYXRpb24iOiAtOTcNCiAgICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgIH0sDQogICAgew0KICAgICAgICAiZmVhdHVyZVR5cGUiOiAid2F0ZXIiLA0KICAgICAgICAiZWxlbWVudFR5cGUiOiAibGFiZWxzIiwNCiAgICAgICAgInN0eWxlcnMiOiBbDQogICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgImxpZ2h0bmVzcyI6IC0yNQ0KICAgICAgICAgICAgfSwNCiAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAic2F0dXJhdGlvbiI6IC0xMDANCiAgICAgICAgICAgIH0NCiAgICAgICAgXQ0KICAgIH0NCl0NCjsNCg0KCSAgICB2YXIgbXlMYXRMbmc9IHsNCgkgICAgICAgIGxhdDogNTAuOTI0MDU3NiwgbG5nOiAxMC43MjkyNTg5DQoJICAgIH0NCgkgICAgOw0KCSAgICBtYXA9bmV3IGdvb2dsZS5tYXBzLk1hcChkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnbWFwJyksIHsNCgkgICAgICAgIGNlbnRlcjogbXlMYXRMbmcsIHN0eWxlczogc3R5bGVBcnJheSwgem9vbTogOCwgZGlzYWJsZURlZmF1bHRVSTogdHJ1ZSwgem9vbUNvbnRyb2w6IHRydWUsIHNjcm9sbHdoZWVsOiBmYWxzZSwgbmF2aWdhdGlvbkNvbnRyb2w6IHRydWUsIG1hcFR5cGVDb250cm9sOiBmYWxzZSwgc2NhbGVDb250cm9sOiBmYWxzZSwgZHJhZ2dhYmxlOiBmYWxzZSwNCgkgICAgfQ0KCSAgICApOw0KCSAgICB2YXIgaW5mb3dpbmRvdz1uZXcgZ29vZ2xlLm1hcHMuSW5mb1dpbmRvdyggew0KCSAgICAgICAgcG9zaXRpb246IG15TGF0TG5nLCBjb250ZW50OiAiPGRpdiBzdHlsZT1cImZvbnQtc2l6ZTogMTMwJTtcIj48c3Ryb25nPklXQiBJbmR1c3RyaWV0ZWNobmlrIEdtYkg8L3N0cm9uZz48YnI+PHNwYW4gc3R5bGU9XCJsaW5lLWhlaWdodDogMWVtO1wiPkxhbmdlbnNjaGVpZHRzdHIuIDc8YnI+OTk4NjcgR290aGE8L3NwYW4+PGJyPjxicj48YSB0aXRsZT1cIk1pdCBlaW5lbSBLbGljayBnZWxhbmdlbiBTaWUgenVtIFJvdXRlbnBsYW5lci4uLlwiIGhyZWY9XCJodHRwczovL3d3dy5nb29nbGUuZGUvbWFwcy9kaXIvL0lXQitJbmR1c3RyaWV0ZWNobmlrK0dtYkgsK0xhbmdlbnNjaGVpZHRzdHJhJUMzJTlGZSs3LCs5OTg2NytHb3RoYS9ANTAuOTg0MzAzMSw5LjU2NjYxMjIsOHovZGF0YT0hNG04ITRtNyExbTAhMW01ITFtMSExczB4NDdhNDc5NjliNGI2MTNlNToweGY0NzM5NmNiN2IzOGNkMjghMm0yITFkMTAuNzI5NzkhMmQ1MC45MjM5NjhcIiB0YXJnZXQ9XCJfYmxhbmtcIj5CZXN1Y2hlbiBTaWUgdW5zLi4uPC9hPjwvZGl2PiINCgkgICAgfQ0KCSAgICApOw0KCSAgICB2YXIgbGFzdFpvb209bWFwLmdldFpvb20oKTsNCgkgICAgdmFyIGNpcmNsZTsNCgkgICAgdmFyIHJNaW49MTAwMCwNCgkgICAgck1heD0xNTAwMCwNCgkgICAgc3RlcD0yNTA7DQoJICAgIHZhciBpbnRJRDsNCgkgICAgdmFyIGRvdD1uZXcgZ29vZ2xlLm1hcHMuQ2lyY2xlKCB7DQoJICAgICAgICBjZW50ZXI6IG15TGF0TG5nLCByYWRpdXM6IHJNaW4sIHN0cm9rZVdlaWdodDogMCwgZmlsbENvbG9yOiAicmdiKDIwNCwgNDQsIDM2KSIsIGZpbGxPcGFjaXR5OiAxLA0KCSAgICB9DQoJICAgICk7DQoJICAgIGRvdC5zZXRNYXAobWFwKTsNCgkgICAgdmFyIGNpcmNsZT1uZXcgZ29vZ2xlLm1hcHMuQ2lyY2xlKCB7DQoJICAgICAgICBjZW50ZXI6IG15TGF0TG5nLCByYWRpdXM6IHJNaW4sIHN0cm9rZUNvbG9yOiAicmdiKDIwNCwgNDQsIDM2KSIsIHN0cm9rZU9wYWNpdHk6IDEsIHN0cm9rZVdlaWdodDogMiwgZmlsbENvbG9yOiAicmdiKDIwNCwgNDQsIDM2KSIsIGZpbGxPcGFjaXR5OiAwLjQsDQoJICAgIH0NCgkgICAgKTsNCgkgICAgY2lyY2xlLnNldE1hcChtYXApOw0KCSAgICB2YXIgaW5mb0hhbmRsZT1uZXcgZ29vZ2xlLm1hcHMuQ2lyY2xlKCB7DQoJICAgICAgICBjZW50ZXI6IG15TGF0TG5nLCByYWRpdXM6IHJNYXgsIHN0cm9rZVdlaWdodDogMCwgZmlsbENvbG9yOiAiI2ZmZmZmZiIsIGZpbGxPcGFjaXR5OiAwLA0KCSAgICB9DQoJICAgICk7DQoJICAgIGluZm9IYW5kbGUuc2V0TWFwKG1hcCk7DQoJICAgIGdvb2dsZS5tYXBzLmV2ZW50LmFkZExpc3RlbmVyKGluZm9IYW5kbGUsICdjbGljaycsIGZ1bmN0aW9uKCkgew0KCSAgICAgICAgaW5mb3dpbmRvdy5vcGVuKG1hcCwgaW5mb0hhbmRsZSk7DQoJICAgIH0NCgkgICAgKTsNCgkgICAgZ29vZ2xlLm1hcHMuZXZlbnQuYWRkTGlzdGVuZXIobWFwLCAnem9vbV9jaGFuZ2VkJywgZnVuY3Rpb24oKSB7DQoJICAgICAgICBkb3Quc2V0UmFkaXVzKHJNaW4pOw0KCSAgICAgICAgY2lyY2xlLnNldFJhZGl1cyhyTWluKTsNCgkgICAgICAgIHZhciB6b29tPW1hcC5nZXRab29tKCk7DQoJICAgICAgICBpZih6b29tPmxhc3Rab29tKSB7DQoJICAgICAgICAgICAgck1heC89MjsNCgkgICAgICAgICAgICByTWluLz0yOw0KCSAgICAgICAgICAgIHN0ZXAvPTI7DQoJICAgICAgICB9DQoJICAgICAgICBlbHNlIHsNCgkgICAgICAgICAgICByTWF4Kj0yOw0KCSAgICAgICAgICAgIHJNaW4qPTI7DQoJICAgICAgICAgICAgc3RlcCo9MjsNCgkgICAgICAgIH0NCgkgICAgICAgIGxhc3Rab29tPXpvb207DQoJICAgIH0NCgkgICAgKTsNCgkgICAgaW50SUQ9c2V0SW50ZXJ2YWwoZnVuY3Rpb24oKSB7DQoJICAgICAgICB2YXIgcmFkaXVzPWNpcmNsZS5nZXRSYWRpdXMoKTsNCgkgICAgICAgIGlmKHJhZGl1cz5yTWF4KSB7DQoJICAgICAgICAgICAgY2lyY2xlLnNldFJhZGl1cyhyTWluKTsNCgkgICAgICAgIH0NCgkgICAgICAgIGVsc2Ugew0KCSAgICAgICAgICAgIGNpcmNsZS5zZXRSYWRpdXMocmFkaXVzKzEqc3RlcCk7DQoJICAgICAgICB9DQoJICAgICAgICBjaXJjbGUuc2V0T3B0aW9ucyggew0KCSAgICAgICAgICAgICdzdHJva2VPcGFjaXR5JzogMS0oKHJhZGl1cy9yTWF4KSowLjg1KQ0KCSAgICAgICAgfQ0KCSAgICAgICAgKTsNCgkgICAgICAgIGNpcmNsZS5zZXRPcHRpb25zKCB7DQoJICAgICAgICAgICAgJ2ZpbGxPcGFjaXR5JzogMS0oKHJhZGl1cy9yTWF4KSoxKQ0KCSAgICAgICAgfQ0KCSAgICAgICAgKTsNCgkgICAgfQ0KCSAgICAsIDMwKTsNCgkgICAgdmFyIG1hcEVsPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXAnKTsNCgkgICAgLy92YXIgbWFwQnRuPWRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdtYXBidXR0b24nKTsNCgkgICAgLy93aW5kb3cuc2V0VGltZW91dChmdW5jdGlvbigpIHsNCgkgICAgLy8gICAgbWFwRWwuYXBwZW5kQ2hpbGQobWFwQnRuKTsNCgkgICAgLy8gICAgbWFwQnRuLmNsYXNzTmFtZT1tYXBCdG4uY2xhc3NOYW1lLnJlcGxhY2UoL1xiaGlkZVxiLywgJycpOw0KCSAgICAvL30NCgkgICAgLy8sIDEwMDApOw0KCX0NCglkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCJET01Db250ZW50TG9hZGVkIiwgZnVuY3Rpb24oZXZlbnQpIHsNCgkJLy9jYWxsYmFjaygpOw0KCQkvKiQoZG9jdW1lbnQpLnJlYWR5KGZ1bmN0aW9uKCkgew0KCQkJJCgnLmxvYWRlcicpLmhpZGU7DQoJCQkkKCcuY3JlZGl0cycpLmhpZGU7DQoJCQkkKCcubG9hZF9nbWFwcycpLmNsaWNrKGZ1bmN0aW9uKCl7JCgnI2xvYWRfZ21hcHMnKS5wYXJlbnQoKS5oaWRlKCk7JCgnI2dtYXBzJykuYXR0cignc3JjJywgJCgnI2dtYXBzJykuYXR0cignZGF0YS1zcmMnKSl9KTsNCgkJfSk7Ki8NCgl9KTs=