1778692639
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Accd69482daac643bf0a1152a93cff22e-e048c67b3baaa2a67f04962b44428118
s:6620:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjIxOiJSZWRpczYyUHJveHlUcmFpdC5waHAiO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbmFtZXNwYWNlcyI7YToxOntzOjMxOiJcU3ltZm9ueVxDb21wb25lbnRcQ2FjaGVcVHJhaXRzIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6MzE6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHMiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo2OiJUcmFpdHMiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MDp7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW50ZXJmYWNlcyI7YTowOnt9czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQB0cmFpdHMiO2E6MTp7czo0OToiXFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0c1xSZWRpczYyUHJveHlUcmFpdCI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8iOjEwOntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AcHJvcGVydGllcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAG1ldGhvZHMiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjQ5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6NTE7czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBjb2x1bW5OdW1iZXIiO2k6MDt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxTeW1mb255XENvbXBvbmVudFxDYWNoZVxUcmFpdHNcUmVkaXM2MlByb3h5VHJhaXQiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxNzoiUmVkaXM2MlByb3h5VHJhaXQiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxUcmFpdF8AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjA6IiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjg6ImludGVybmFsIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7Tjt9fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MzA6IlN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0cyI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFRyYWl0XwBtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVHJhaXRfAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJlMDQ4YzY3YjNiYWFhMmE2N2YwNDk2MmI0NDQyODExOCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjQ5OiJ2ZW5kb3Ivc3ltZm9ueS9jYWNoZS9UcmFpdHMvUmVkaXM2MlByb3h5VHJhaXQucGhwIjtzOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHNvdXJjZSI7czoxNjMwOiI8P3BocAoKLyoKICogVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFN5bWZvbnkgcGFja2FnZS4KICoKICogKGMpIEZhYmllbiBQb3RlbmNpZXIgPGZhYmllbkBzeW1mb255LmNvbT4KICoKICogRm9yIHRoZSBmdWxsIGNvcHlyaWdodCBhbmQgbGljZW5zZSBpbmZvcm1hdGlvbiwgcGxlYXNlIHZpZXcgdGhlIExJQ0VOU0UKICogZmlsZSB0aGF0IHdhcyBkaXN0cmlidXRlZCB3aXRoIHRoaXMgc291cmNlIGNvZGUuCiAqLwoKbmFtZXNwYWNlIFN5bWZvbnlcQ29tcG9uZW50XENhY2hlXFRyYWl0czsKCmlmICh2ZXJzaW9uX2NvbXBhcmUocGhwdmVyc2lvbigncmVkaXMnKSwgJzYuMi4wJywgJz49JykpIHsKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHRyYWl0IFJlZGlzNjJQcm94eVRyYWl0CiAgICB7CiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGV4cGlyZW1lbWJlcigka2V5LCAkZmllbGQsICR0dGwsICR1bml0ID0gbnVsbCk6IFxSZWRpc3xmYWxzZXxpbnQKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAoJHRoaXMtPmxhenlPYmplY3RTdGF0ZS0+cmVhbEluc3RhbmNlID8/PSAoJHRoaXMtPmxhenlPYmplY3RTdGF0ZS0+aW5pdGlhbGl6ZXIpKCkpLT5leHBpcmVtZW1iZXIoLi4uXGZ1bmNfZ2V0X2FyZ3MoKSk7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gZXhwaXJlbWVtYmVyYXQoJGtleSwgJGZpZWxkLCAkdGltZXN0YW1wKTogXFJlZGlzfGZhbHNlfGludAogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICgkdGhpcy0+bGF6eU9iamVjdFN0YXRlLT5yZWFsSW5zdGFuY2UgPz89ICgkdGhpcy0+bGF6eU9iamVjdFN0YXRlLT5pbml0aWFsaXplcikoKSktPmV4cGlyZW1lbWJlcmF0KC4uLlxmdW5jX2dldF9hcmdzKCkpOwogICAgICAgIH0KCiAgICAgICAgcHVibGljIGZ1bmN0aW9uIGdldFdpdGhNZXRhKCRrZXkpOiBcUmVkaXN8YXJyYXl8ZmFsc2UKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAoJHRoaXMtPmxhenlPYmplY3RTdGF0ZS0+cmVhbEluc3RhbmNlID8/PSAoJHRoaXMtPmxhenlPYmplY3RTdGF0ZS0+aW5pdGlhbGl6ZXIpKCkpLT5nZXRXaXRoTWV0YSguLi5cZnVuY19nZXRfYXJncygpKTsKICAgICAgICB9CgogICAgICAgIHB1YmxpYyBmdW5jdGlvbiBzZXJ2ZXJOYW1lKCk6IGZhbHNlfHN0cmluZwogICAgICAgIHsKICAgICAgICAgICAgcmV0dXJuICgkdGhpcy0+bGF6eU9iamVjdFN0YXRlLT5yZWFsSW5zdGFuY2UgPz89ICgkdGhpcy0+bGF6eU9iamVjdFN0YXRlLT5pbml0aWFsaXplcikoKSktPnNlcnZlck5hbWUoLi4uXGZ1bmNfZ2V0X2FyZ3MoKSk7CiAgICAgICAgfQoKICAgICAgICBwdWJsaWMgZnVuY3Rpb24gc2VydmVyVmVyc2lvbigpOiBmYWxzZXxzdHJpbmcKICAgICAgICB7CiAgICAgICAgICAgIHJldHVybiAoJHRoaXMtPmxhenlPYmplY3RTdGF0ZS0+cmVhbEluc3RhbmNlID8/PSAoJHRoaXMtPmxhenlPYmplY3RTdGF0ZS0+aW5pdGlhbGl6ZXIpKCkpLT5zZXJ2ZXJWZXJzaW9uKC4uLlxmdW5jX2dldF9hcmdzKCkpOwogICAgICAgIH0KICAgIH0KfSBlbHNlIHsKICAgIC8qKgogICAgICogQGludGVybmFsCiAgICAgKi8KICAgIHRyYWl0IFJlZGlzNjJQcm94eVRyYWl0CiAgICB7CiAgICB9Cn0KIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";