1778692613
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Ac2aeee65d19ecf35a067f2a6cff50b40-2c767c82453decbcc13fda2b72848c27
s:25516:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjEzOiJHSDI2X1Rlc3QucGhwIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyOToiXFRlc3RzXFBhcnNpY2FcUGFyc2ljYVxJc3N1ZXMiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyOToiXFRlc3RzXFBhcnNpY2FcUGFyc2ljYVxJc3N1ZXMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJJc3N1ZXMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czozOToiXFRlc3RzXFBhcnNpY2FcUGFyc2ljYVxJc3N1ZXNcR0gyNl9UZXN0IjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXyI6MTU6e3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBpbXBsZW1lbnRzIjthOjA6e31zOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AY29uc3RhbnRzIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGhvZHMiO2E6NDp7czo1MzoiXFRlc3RzXFBhcnNpY2FcUGFyc2ljYVxJc3N1ZXNcR0gyNl9UZXN0OjpwYXRoUGFyc2VyKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo5NjU7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NDQ7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MTM1ODt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHJldHVyblR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyMzoiXFBhcnNpY2FcUGFyc2ljYVxQYXJzZXIiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJQYXJzZXIiO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTM6IlxUZXN0c1xQYXJzaWNhXFBhcnNpY2FcSXNzdWVzXEdIMjZfVGVzdDo6cGF0aFBhcnNlcigpIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTA6InBhdGhQYXJzZXIiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NzoicHJpdmF0ZSI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjE7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6NjQ6IlxUZXN0c1xQYXJzaWNhXFBhcnNpY2FcSXNzdWVzXEdIMjZfVGVzdDo6cGFyc2luZ19hX3NpbXBsZV9wYXRoKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxMzgyO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjU1O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjE2MDg7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NjQ6IlxUZXN0c1xQYXJzaWNhXFBhcnNpY2FcSXNzdWVzXEdIMjZfVGVzdDo6cGFyc2luZ19hX3NpbXBsZV9wYXRoKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoyMToicGFyc2luZ19hX3NpbXBsZV9wYXRoIjt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6MDoiIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjA6IiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjE6e2k6MDtPOjQ2OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xHZW5lcmljIjoyOntzOjc6IgAqAG5hbWUiO3M6NDoidGVzdCI7czoxNDoiACoAZGVzY3JpcHRpb24iO047fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjI4OiJUZXN0c1xQYXJzaWNhXFBhcnNpY2FcSXNzdWVzIjtzOjU2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlQWxpYXNlcyI7YTozOntzOjg6IlRlc3RDYXNlIjtzOjI2OiJQSFBVbml0XEZyYW1ld29ya1xUZXN0Q2FzZSI7czo2OiJQYXJzZXIiO3M6MjI6IlBhcnNpY2FcUGFyc2ljYVxQYXJzZXIiO3M6MTY6IlBhcnNlckFzc2VydGlvbnMiO3M6NDA6IlBhcnNpY2FcUGFyc2ljYVxQSFBVbml0XFBhcnNlckFzc2VydGlvbnMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYWJzdHJhY3QiO2I6MDtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAc3RhdGljIjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZpbmFsIjtiOjA7czo1NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGhhc1JldHVybkJ5UmVmZXJlbmNlIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAYXR0cmlidXRlcyI7YTowOnt9fXM6MTA1OiJcVGVzdHNcUGFyc2ljYVxQYXJzaWNhXElzc3Vlc1xHSDI2X1Rlc3Q6Om9ubHlfdGhlX2ZpcnN0X3N1Y2Nlc3NmdWxfcGFyc2VyX2luX2FuX2VpdGhlcl9zaG91bGRfY2FsbF9lbWl0KCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo2MjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxNzMyO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjg4O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjI1Mzc7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcTWl4ZWRfIjowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MTA1OiJcVGVzdHNcUGFyc2ljYVxQYXJzaWNhXElzc3Vlc1xHSDI2X1Rlc3Q6Om9ubHlfdGhlX2ZpcnN0X3N1Y2Nlc3NmdWxfcGFyc2VyX2luX2FuX2VpdGhlcl9zaG91bGRfY2FsbF9lbWl0KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2Mjoib25seV90aGVfZmlyc3Rfc3VjY2Vzc2Z1bF9wYXJzZXJfaW5fYW5fZWl0aGVyX3Nob3VsZF9jYWxsX2VtaXQiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo3MzoiaHR0cHM6Ly9naXRodWIuY29tL21hdGhpYXN2ZXJyYWVzL3BhcnNpY2EvaXNzdWVzLzYjaXNzdWVjb21tZW50LTY1Mzc3MjkyMCI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjQ6InRlc3QiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtOO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBjb250ZXh0IjtyOjYzO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAbG9jYXRpb24iO047czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlU3RhcnQiO2I6MDtzOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVFbmQiO2I6MDt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFic3RyYWN0IjtiOjA7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHN0YXRpYyI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmaW5hbCI7YjowO3M6NTc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABoYXNSZXR1cm5CeVJlZmVyZW5jZSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGF0dHJpYnV0ZXMiO2E6MDp7fX1zOjg0OiJcVGVzdHNcUGFyc2ljYVxQYXJzaWNhXElzc3Vlc1xHSDI2X1Rlc3Q6Oml0X3Nob3VsZF9wYXJzZV81MDBfdGltZXNfaW5fdW5kZXJfMTAwX21zKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo5NztzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToyNzM4O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE1OTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo0NDg5O31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE1peGVkXyI6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjg0OiJcVGVzdHNcUGFyc2ljYVxQYXJzaWNhXElzc3Vlc1xHSDI2X1Rlc3Q6Oml0X3Nob3VsZF9wYXJzZV81MDBfdGltZXNfaW5fdW5kZXJfMTAwX21zKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0MToiaXRfc2hvdWxkX3BhcnNlXzUwMF90aW1lc19pbl91bmRlcl8xMDBfbXMiO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAdmlzaWJpbGl0eSI7TzozOToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5IjoxOntzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxWaXNpYmlsaXR5AHZpc2liaWxpdHkiO3M6NjoicHVibGljIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czowOiIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6Mjp7aTowO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo0OiJUT0RPIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czoxMzE6IlNldCAkcmVwZWF0UGFyc2VyIGF0IDUwMCBhbmQgZml4IHRoZSBwZXJmb3JtYW5jZSBpc3N1ZXMuCgpodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc3ZlcnJhZXMvcGFyc2ljYS9pc3N1ZXMvNiNpc3N1ZWNvbW1lbnQtNjUzNzcyOTIwIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aToxO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo0OiJ0ZXN0IjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjE6e3M6NDE6IlxQYXJzaWNhXFBhcnNpY2FcUEhQVW5pdFxQYXJzZXJBc3NlcnRpb25zIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDE6IlxQYXJzaWNhXFBhcnNpY2FcUEhQVW5pdFxQYXJzZXJBc3NlcnRpb25zIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6MTY6IlBhcnNlckFzc2VydGlvbnMiO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTozMTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE2MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTowO31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozOToiXFRlc3RzXFBhcnNpY2FcUGFyc2ljYVxJc3N1ZXNcR0gyNl9UZXN0IjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6OToiR0gyNl9UZXN0Ijt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo1MDoiaHR0cHM6Ly9naXRodWIuY29tL21hdGhpYXN2ZXJyYWVzL3BhcnNpY2EvaXNzdWVzLzYiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2MztzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czoyNzoiXFBIUFVuaXRcRnJhbWV3b3JrXFRlc3RDYXNlIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6ODoiVGVzdENhc2UiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYWJzdHJhY3QiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZmluYWwiO2I6MTtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcmVhZE9ubHkiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhdHRyaWJ1dGVzIjthOjA6e319fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MDp7fXM6NDA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZW51bXMiO2E6MDp7fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaGFzaCI7czozMjoiMmM3NjdjODI0NTNkZWNiY2MxM2ZkYTJiNzI4NDhjMjciO3M6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAcGF0aCI7czo1MzoidmVuZG9yL3BhcnNpY2EtcGhwL3BhcnNpY2EvdGVzdHMvSXNzdWVzL0dIMjZfVGVzdC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjQ0OTQ6Ijw/cGhwIGRlY2xhcmUoc3RyaWN0X3R5cGVzPTEpOwovKioKICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFBhcnNpY2EgbGlicmFyeS4KICoKICogQ29weXJpZ2h0IChjKSAyMDIwIE1hdGhpYXMgVmVycmFlcyA8bWF0aGlhc0B2ZXJyYWVzLm5ldD4KICoKICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqLwoKbmFtZXNwYWNlIFRlc3RzXFBhcnNpY2FcUGFyc2ljYVxJc3N1ZXM7Cgp1c2UgUEhQVW5pdFxGcmFtZXdvcmtcVGVzdENhc2U7CnVzZSBQYXJzaWNhXFBhcnNpY2FcUGFyc2VyOwp1c2UgUGFyc2ljYVxQYXJzaWNhXFBIUFVuaXRcUGFyc2VyQXNzZXJ0aW9uczsKdXNlIGZ1bmN0aW9uIFBhcnNpY2FcUGFyc2ljYVxhbHBoYU51bUNoYXI7CnVzZSBmdW5jdGlvbiBQYXJzaWNhXFBhcnNpY2FcYW55Owp1c2UgZnVuY3Rpb24gUGFyc2ljYVxQYXJzaWNhXGF0TGVhc3RPbmU7CnVzZSBmdW5jdGlvbiBQYXJzaWNhXFBhcnNpY2FcYmV0d2VlbjsKdXNlIGZ1bmN0aW9uIFBhcnNpY2FcUGFyc2ljYVxjaGFyOwp1c2UgZnVuY3Rpb24gUGFyc2ljYVxQYXJzaWNhXGVpdGhlcjsKdXNlIGZ1bmN0aW9uIFBhcnNpY2FcUGFyc2ljYVxlbWl0Owp1c2UgZnVuY3Rpb24gUGFyc2ljYVxQYXJzaWNhXGVvZjsKdXNlIGZ1bmN0aW9uIFBhcnNpY2FcUGFyc2ljYVxmYWlsOwp1c2UgZnVuY3Rpb24gUGFyc2ljYVxQYXJzaWNhXG1hbnk7CnVzZSBmdW5jdGlvbiBQYXJzaWNhXFBhcnNpY2Fcc3VjY2VlZDsKCi8qKgogKiBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc3ZlcnJhZXMvcGFyc2ljYS9pc3N1ZXMvNgogKi8KZmluYWwgY2xhc3MgR0gyNl9UZXN0IGV4dGVuZHMgVGVzdENhc2UKewogICAgdXNlIFBhcnNlckFzc2VydGlvbnM7CgogICAgcHJpdmF0ZSBzdGF0aWMgZnVuY3Rpb24gcGF0aFBhcnNlcigpOiBQYXJzZXIKICAgIHsKICAgICAgICAkc2VwID0gY2hhcignLycpCiAgICAgICAgICAgIC0+bGFiZWwoJ2RpcmVjdG9yeSBzZXBhcmF0b3InKTsKICAgICAgICAvLyB1bml4IHN1cHBvcnRzIG90aGVyIGNoYXJhY3RlcnMsIHN1Y2ggYXMgc3BhY2UsIHNvIGFkYXB0IGlmIG5lZWRlZAogICAgICAgICRuYW1lID0gYXRMZWFzdE9uZShjaGFyKCcuJyktPm9yKGNoYXIoJ18nKSktPm9yKGFscGhhTnVtQ2hhcigpKSkKICAgICAgICAgICAgLT5sYWJlbCgiZGlyZWN0b3J5IG9yIGZpbGVuYW1lIik7CiAgICAgICAgJHBhcnNlciA9IG1hbnkoJHNlcC0+Zm9sbG93ZWRCeSgkbmFtZSkpOwogICAgICAgIHJldHVybiAkcGFyc2VyOwogICAgfQoKICAgIC8qKiBAdGVzdCAqLwogICAgcHVibGljIGZ1bmN0aW9uIHBhcnNpbmdfYV9zaW1wbGVfcGF0aCgpCiAgICB7CiAgICAgICAgJHBhcnNlciA9IHNlbGY6OnBhdGhQYXJzZXIoKTsKCiAgICAgICAgJGlucHV0ID0gIi9hL2IvYy9maWxlMSI7CiAgICAgICAgJGV4cGVjdGVkID0gWyJhIiwgImIiLCAiYyIsICJmaWxlMSJdOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0UGFyc2VzKCRpbnB1dCwgJHBhcnNlciwgJGV4cGVjdGVkKTsKICAgIH0KCiAgICAvKioKICAgICAqIGh0dHBzOi8vZ2l0aHViLmNvbS9tYXRoaWFzdmVycmFlcy9wYXJzaWNhL2lzc3Vlcy82I2lzc3VlY29tbWVudC02NTM3NzI5MjAKICAgICAqCiAgICAgKiBAdGVzdAogICAgICovCiAgICBwdWJsaWMgZnVuY3Rpb24gb25seV90aGVfZmlyc3Rfc3VjY2Vzc2Z1bF9wYXJzZXJfaW5fYW5fZWl0aGVyX3Nob3VsZF9jYWxsX2VtaXQoKQogICAgewogICAgICAgICR4ID0gbmV3IGNsYXNzIHsKICAgICAgICAgICAgcHVibGljIGJvb2wgJGZpcnN0ID0gZmFsc2U7CiAgICAgICAgICAgIHB1YmxpYyBib29sICRzZWNvbmQgPSBmYWxzZTsKICAgICAgICB9OwoKICAgICAgICAkcGFyc2VyID0gZWl0aGVyKAogICAgICAgICAgICBlbWl0KAogICAgICAgICAgICAgICAgc3VjY2VlZCgpLAogICAgICAgICAgICAgICAgZnVuY3Rpb24gKCRvdXRwdXQpIHVzZSAoJHgpIHsKICAgICAgICAgICAgICAgICAgICAkeC0+Zmlyc3QgPSB0cnVlOyAvLyBpcyBjYWxsZWQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKSwKICAgICAgICAgICAgZW1pdCgKICAgICAgICAgICAgICAgIHN1Y2NlZWQoKSwKICAgICAgICAgICAgICAgIGZ1bmN0aW9uICgkb3V0cHV0KSB1c2UgKCR4KSB7CiAgICAgICAgICAgICAgICAgICAgJHgtPnNlY29uZCA9IHRydWU7IC8vIGlzIG5vdCBjYWxsZWQKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgKQogICAgICAgICk7CiAgICAgICAgJHJlc3VsdCA9ICRwYXJzZXItPnRyeVN0cmluZygndGVzdCcpOwoKICAgICAgICAkdGhpcy0+YXNzZXJ0RXF1YWxzKHRydWUsICR4LT5maXJzdCk7CiAgICAgICAgJHRoaXMtPmFzc2VydEVxdWFscyhmYWxzZSwgJHgtPnNlY29uZCwgIkVpdGhlciBzaG91bGQgb25seSBjYWxsIGVtaXQgb24gdGhlIGZpcnN0IHN1Y2Nlc3NmdWwgcGFyc2VyIik7CgogICAgfQoKICAgIC8qKgogICAgICogQFRPRE8gU2V0ICRyZXBlYXRQYXJzZXIgYXQgNTAwIGFuZCBmaXggdGhlIHBlcmZvcm1hbmNlIGlzc3Vlcy4KICAgICAqCiAgICAgKiBodHRwczovL2dpdGh1Yi5jb20vbWF0aGlhc3ZlcnJhZXMvcGFyc2ljYS9pc3N1ZXMvNiNpc3N1ZWNvbW1lbnQtNjUzNzcyOTIwCiAgICAgKgogICAgICogQHRlc3QKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIGl0X3Nob3VsZF9wYXJzZV81MDBfdGltZXNfaW5fdW5kZXJfMTAwX21zKCkKICAgIHsKICAgICAgICAvLyBOdW1iZXIgb2YgdGltZXMgd2UgcnVuIHRoZSBwYXJzZXIKICAgICAgICAkcmVwZWF0UGFyc2VyID0gIDE7Ly81MDA7CgogICAgICAgICRwcm9wZXJ0eU5hbWUgPSBhdExlYXN0T25lKGFscGhhTnVtQ2hhcigpKTsKCiAgICAgICAgJHR5cGUgPSBlbWl0KAogICAgICAgICAgICBlaXRoZXIoCiAgICAgICAgICAgICAgICBlb2YoKSwKICAgICAgICAgICAgICAgIGNoYXIoJ0AnKQogICAgICAgICAgICAgICAgICAgIC0+Zm9sbG93ZWRCeSgkcHJvcGVydHlOYW1lKQogICAgICAgICAgICAgICAgICAgIC0+dGhlbklnbm9yZShlb2YoKSksCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9CiAgICAgICAgKTsKCiAgICAgICAgJG1hcCA9IGVtaXQoCiAgICAgICAgICAgIGNoYXIoJy4nKS0+Zm9sbG93ZWRCeSgkcHJvcGVydHlOYW1lKSwKICAgICAgICAgICAgZnVuY3Rpb24gKCkge30KICAgICAgICApOwoKICAgICAgICAkbGlzdCA9IGVtaXQoCiAgICAgICAgICAgIGJldHdlZW4oCiAgICAgICAgICAgICAgICBjaGFyKCdbJyksCiAgICAgICAgICAgICAgICBjaGFyKCddJyksCiAgICAgICAgICAgICAgICBlaXRoZXIoCiAgICAgICAgICAgICAgICAgICAgY2hhcignQCcpCiAgICAgICAgICAgICAgICAgICAgICAgIC0+Zm9sbG93ZWRCeSgkcHJvcGVydHlOYW1lKQogICAgICAgICAgICAgICAgICAgICAgICAtPm1hcChmbigkdmFsdWUpID0+IFsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdkaXNjcmltaW5hdG9yTmFtZScgPT4gJHZhbHVlLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2tlZXBLZXlzJyAgICAgICAgICA9PiB0cnVlCiAgICAgICAgICAgICAgICAgICAgICAgIF0pLAogICAgICAgICAgICAgICAgICAgICRwcm9wZXJ0eU5hbWUKICAgICAgICAgICAgICAgICAgICAgICAgLT5tYXAoZm4oJHZhbHVlKSA9PiBbCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAnZGlzY3JpbWluYXRvck5hbWUnID0+ICR2YWx1ZSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICdrZWVwS2V5cycgICAgICAgICAgPT4gZmFsc2UKICAgICAgICAgICAgICAgICAgICAgICAgXSksCiAgICAgICAgICAgICAgICApCiAgICAgICAgICAgICksCiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9CiAgICAgICAgKTsKCiAgICAgICAgJHJvb3QgPSBlbWl0KAogICAgICAgICAgICBjaGFyKCckJyksCiAgICAgICAgICAgIGZ1bmN0aW9uICgpIHt9CiAgICAgICAgKTsKCiAgICAgICAgJHJlc3QgPSBtYW55KGFueSgkbWFwLCAkbGlzdCkpLT5mb2xsb3dlZEJ5KCR0eXBlKTsKCiAgICAgICAgJHBhcnNlciA9IGVpdGhlcigKICAgICAgICAgICAgZmFpbCgibWVzc2FnZSIpLCAvLyAkY29udGV4dC0+cHJlZmxpZ2h0Q2FjaGVQYXJzZXIoKSwKICAgICAgICAgICAgJHJvb3QKICAgICAgICApLT5mb2xsb3dlZEJ5KCRyZXN0KTsKCiAgICAgICAgJHN0YXJ0ID0gbWljcm90aW1lKHRydWUpOwogICAgICAgIGZvciAoJGkgPSAwOyAkaSA8ICRyZXBlYXRQYXJzZXI7ICRpKyspIHsKICAgICAgICAgICAgJHBhcnNlci0+dHJ5U3RyaW5nKCckLnEud1tAMV0uZVsyXUBpbnQnKTsKICAgICAgICB9CiAgICAgICAgJGVuZCA9IG1pY3JvdGltZSh0cnVlKTsKCiAgICAgICAgJHRoaXMtPmFzc2VydExlc3NUaGFuKDAuMSwgJGVuZCAtICRzdGFydCk7CiAgICB9Cgp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NDE6IlRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBQYXJzaWNhIGxpYnJhcnkuIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjE3ODoiQ29weXJpZ2h0IChjKSAyMDIwIE1hdGhpYXMgVmVycmFlcyA8bWF0aGlhc0B2ZXJyYWVzLm5ldD4KCkZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCmZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0IjoyOntzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQAbmFtZXNwYWNlIjtzOjA6IiI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";