1778692653
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A8e44dd5e2191ea4ca8fe05ddbbd4f2ae-760bbf49cdcefdd74ea34f3ae19c3f10
s:15908:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjk6IkxleGVyLnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjE6e3M6Mzc6IlxTeW1mb255XENvbXBvbmVudFxFeHByZXNzaW9uTGFuZ3VhZ2UiO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czozNzoiXFN5bWZvbnlcQ29tcG9uZW50XEV4cHJlc3Npb25MYW5ndWFnZSI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjE4OiJFeHByZXNzaW9uTGFuZ3VhZ2UiO319czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbmNsdWRlcyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBmdW5jdGlvbnMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY29uc3RhbnRzIjthOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNsYXNzZXMiO2E6MTp7czo0MzoiXFN5bWZvbnlcQ29tcG9uZW50XEV4cHJlc3Npb25MYW5ndWFnZVxMZXhlciI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjE1OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjE6e3M6NTU6IlxTeW1mb255XENvbXBvbmVudFxFeHByZXNzaW9uTGFuZ3VhZ2VcTGV4ZXI6OnRva2VuaXplKCkiO086MzU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kIjoxMzp7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGFyZ3VtZW50cyI7YToxOntpOjA7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjEwOiJleHByZXNzaW9uIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aToyNjtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTo0NzE7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjQ2MTE7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAByZXR1cm5UeXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcT2JqZWN0XyI6MTp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NDk6IlxTeW1mb255XENvbXBvbmVudFxFeHByZXNzaW9uTGFuZ3VhZ2VcVG9rZW5TdHJlYW0iO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czoxMToiVG9rZW5TdHJlYW0iO319czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGZxc2VuIjtPOjMwOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4iOjI6e3M6Mzc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AZnFzZW4iO3M6NTU6IlxTeW1mb255XENvbXBvbmVudFxFeHByZXNzaW9uTGFuZ3VhZ2VcTGV4ZXI6OnRva2VuaXplKCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo4OiJ0b2tlbml6ZSI7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZAB2aXNpYmlsaXR5IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkiOjE6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXFZpc2liaWxpdHkAdmlzaWJpbGl0eSI7czo2OiJwdWJsaWMiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjI0OiJUb2tlbml6ZXMgYW4gZXhwcmVzc2lvbi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MTp7aTowO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXFRocm93cyI6Mzp7czo3OiIAKgBuYW1lIjtzOjY6InRocm93cyI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjc6IgAqAHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xPYmplY3RfIjoxOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXE9iamVjdF8AZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0OToiXFN5bWZvbnlcQ29tcG9uZW50XEV4cHJlc3Npb25MYW5ndWFnZVxTeW50YXhFcnJvciI7czozNjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBuYW1lIjtzOjExOiJTeW50YXhFcnJvciI7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MzY6IlN5bWZvbnlcQ29tcG9uZW50XEV4cHJlc3Npb25MYW5ndWFnZSI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MDtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjE5O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTA3O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjQzOiJcU3ltZm9ueVxDb21wb25lbnRcRXhwcmVzc2lvbkxhbmd1YWdlXExleGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NToiTGV4ZXIiO31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AZG9jQmxvY2siO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jayI6Nzp7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBzdW1tYXJ5IjtzOjIwOiJMZXhlcyBhbiBleHByZXNzaW9uLiI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBkZXNjcmlwdGlvbiI7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uIjoyOntzOjU5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAGJvZHlUZW1wbGF0ZSI7czowOiIiO3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AdGFncyI7YTowOnt9fXM6Mzk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAdGFncyI7YToxOntpOjA7Tzo0NToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yIjo0OntzOjc6IgAqAG5hbWUiO3M6NjoiYXV0aG9yIjtzOjE0OiIAKgBkZXNjcmlwdGlvbiI7TjtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcQXV0aG9yAGF1dGhvck5hbWUiO3M6MTY6IkZhYmllbiBQb3RlbmNpZXIiO3M6NTg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xBdXRob3IAYXV0aG9yRW1haWwiO3M6MTg6ImZhYmllbkBzeW1mb255LmNvbSI7fX1zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGNvbnRleHQiO3I6NTQ7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBsb2NhdGlvbiI7TjtzOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGlzVGVtcGxhdGVTdGFydCI7YjowO3M6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZUVuZCI7YjowO31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AcGFyZW50IjtOO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBhYnN0cmFjdCI7YjowO3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmaW5hbCI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwByZWFkT25seSI7YjowO3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRhZGF0YSI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGF0dHJpYnV0ZXMiO2E6MDp7fX19czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiI3NjBiYmY0OWNkY2VmZGQ3NGVhMzRmM2FlMTljM2YxMCI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjQ0OiJ2ZW5kb3Ivc3ltZm9ueS9leHByZXNzaW9uLWxhbmd1YWdlL0xleGVyLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6NDYxNToiPD9waHAKCi8qCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBTeW1mb255IHBhY2thZ2UuCiAqCiAqIChjKSBGYWJpZW4gUG90ZW5jaWVyIDxmYWJpZW5Ac3ltZm9ueS5jb20+CiAqCiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgogKi8KCm5hbWVzcGFjZSBTeW1mb255XENvbXBvbmVudFxFeHByZXNzaW9uTGFuZ3VhZ2U7CgovKioKICogTGV4ZXMgYW4gZXhwcmVzc2lvbi4KICoKICogQGF1dGhvciBGYWJpZW4gUG90ZW5jaWVyIDxmYWJpZW5Ac3ltZm9ueS5jb20+CiAqLwpjbGFzcyBMZXhlcgp7CiAgICAvKioKICAgICAqIFRva2VuaXplcyBhbiBleHByZXNzaW9uLgogICAgICoKICAgICAqIEB0aHJvd3MgU3ludGF4RXJyb3IKICAgICAqLwogICAgcHVibGljIGZ1bmN0aW9uIHRva2VuaXplKHN0cmluZyAkZXhwcmVzc2lvbik6IFRva2VuU3RyZWFtCiAgICB7CiAgICAgICAgJGV4cHJlc3Npb24gPSBzdHJfcmVwbGFjZShbIlxyIiwgIlxuIiwgIlx0IiwgIlx2IiwgIlxmIl0sICcgJywgJGV4cHJlc3Npb24pOwogICAgICAgICRjdXJzb3IgPSAwOwogICAgICAgICR0b2tlbnMgPSBbXTsKICAgICAgICAkYnJhY2tldHMgPSBbXTsKICAgICAgICAkZW5kID0gXHN0cmxlbigkZXhwcmVzc2lvbik7CgogICAgICAgIHdoaWxlICgkY3Vyc29yIDwgJGVuZCkgewogICAgICAgICAgICBpZiAoJyAnID09ICRleHByZXNzaW9uWyRjdXJzb3JdKSB7CiAgICAgICAgICAgICAgICArKyRjdXJzb3I7CgogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmIChwcmVnX21hdGNoKCcvCiAgICAgICAgICAgICAgICAoPyhERUZJTkUpKD9QPExOVU0+WzAtOV0rKF9bMC05XSspKikpCiAgICAgICAgICAgICAgICAoPzpcLig/JkxOVU0pfCg/JkxOVU0pKD86XC4oPyFcLikoPyZMTlVNKT8pPykoPzpbZUVdWystXT8oPyZMTlVNKSk/L0F4JywKICAgICAgICAgICAgICAgICRleHByZXNzaW9uLCAkbWF0Y2gsIDAsICRjdXJzb3IpCiAgICAgICAgICAgICkgewogICAgICAgICAgICAgICAgLy8gbnVtYmVycwogICAgICAgICAgICAgICAgJHRva2Vuc1tdID0gbmV3IFRva2VuKFRva2VuOjpOVU1CRVJfVFlQRSwgMCArIHN0cl9yZXBsYWNlKCdfJywgJycsICRtYXRjaFswXSksICRjdXJzb3IgKyAxKTsKICAgICAgICAgICAgICAgICRjdXJzb3IgKz0gXHN0cmxlbigkbWF0Y2hbMF0pOwogICAgICAgICAgICB9IGVsc2VpZiAoc3RyX2NvbnRhaW5zKCcoW3snLCAkZXhwcmVzc2lvblskY3Vyc29yXSkpIHsKICAgICAgICAgICAgICAgIC8vIG9wZW5pbmcgYnJhY2tldAogICAgICAgICAgICAgICAgJGJyYWNrZXRzW10gPSBbJGV4cHJlc3Npb25bJGN1cnNvcl0sICRjdXJzb3JdOwoKICAgICAgICAgICAgICAgICR0b2tlbnNbXSA9IG5ldyBUb2tlbihUb2tlbjo6UFVOQ1RVQVRJT05fVFlQRSwgJGV4cHJlc3Npb25bJGN1cnNvcl0sICRjdXJzb3IgKyAxKTsKICAgICAgICAgICAgICAgICsrJGN1cnNvcjsKICAgICAgICAgICAgfSBlbHNlaWYgKHN0cl9jb250YWlucygnKV19JywgJGV4cHJlc3Npb25bJGN1cnNvcl0pKSB7CiAgICAgICAgICAgICAgICAvLyBjbG9zaW5nIGJyYWNrZXQKICAgICAgICAgICAgICAgIGlmICghJGJyYWNrZXRzKSB7CiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IFN5bnRheEVycm9yKFxzcHJpbnRmKCdVbmV4cGVjdGVkICIlcyIuJywgJGV4cHJlc3Npb25bJGN1cnNvcl0pLCAkY3Vyc29yLCAkZXhwcmVzc2lvbik7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgWyRleHBlY3QsICRjdXJdID0gYXJyYXlfcG9wKCRicmFja2V0cyk7CiAgICAgICAgICAgICAgICBpZiAoJGV4cHJlc3Npb25bJGN1cnNvcl0gIT0gc3RydHIoJGV4cGVjdCwgJyhbeycsICcpXX0nKSkgewogICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihcc3ByaW50ZignVW5jbG9zZWQgIiVzIi4nLCAkZXhwZWN0KSwgJGN1ciwgJGV4cHJlc3Npb24pOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICR0b2tlbnNbXSA9IG5ldyBUb2tlbihUb2tlbjo6UFVOQ1RVQVRJT05fVFlQRSwgJGV4cHJlc3Npb25bJGN1cnNvcl0sICRjdXJzb3IgKyAxKTsKICAgICAgICAgICAgICAgICsrJGN1cnNvcjsKICAgICAgICAgICAgfSBlbHNlaWYgKHByZWdfbWF0Y2goJy8iKFteIlxcXFxdKig/OlxcXFwuW14iXFxcXF0qKSopInxcJyhbXlwnXFxcXF0qKD86XFxcXC5bXlwnXFxcXF0qKSopXCcvQXMnLCAkZXhwcmVzc2lvbiwgJG1hdGNoLCAwLCAkY3Vyc29yKSkgewogICAgICAgICAgICAgICAgLy8gc3RyaW5ncwogICAgICAgICAgICAgICAgJHRva2Vuc1tdID0gbmV3IFRva2VuKFRva2VuOjpTVFJJTkdfVFlQRSwgc3RyaXBjc2xhc2hlcyhzdWJzdHIoJG1hdGNoWzBdLCAxLCAtMSkpLCAkY3Vyc29yICsgMSk7CiAgICAgICAgICAgICAgICAkY3Vyc29yICs9IFxzdHJsZW4oJG1hdGNoWzBdKTsKICAgICAgICAgICAgfSBlbHNlaWYgKHByZWdfbWF0Y2goJy8oPzw9XnxbXHMoXSlzdGFydHMgd2l0aCg/PVtccyhdKXwoPzw9XnxbXHMoXSllbmRzIHdpdGgoPz1bXHMoXSl8KD88PV58W1xzKF0pY29udGFpbnMoPz1bXHMoXSl8KD88PV58W1xzKF0pbWF0Y2hlcyg/PVtccyhdKXwoPzw9XnxbXHMoXSlub3QgaW4oPz1bXHMoXSl8KD88PV58W1xzKF0pbm90KD89W1xzKF0pfCg/PD1efFtccyhdKWFuZCg/PVtccyhdKXxcPVw9XD18XCFcPVw9fCg/PD1efFtccyhdKW9yKD89W1xzKF0pfFx8XHx8JiZ8XD1cPXxcIVw9fFw+XD18XDxcPXwoPzw9XnxbXHMoXSlpbig/PVtccyhdKXxcLlwufFwqXCp8XCF8XHx8XF58JnxcPHxcPnxcK3xcLXx+fFwqfFwvfCUvQScsICRleHByZXNzaW9uLCAkbWF0Y2gsIDAsICRjdXJzb3IpKSB7CiAgICAgICAgICAgICAgICAvLyBvcGVyYXRvcnMKICAgICAgICAgICAgICAgICR0b2tlbnNbXSA9IG5ldyBUb2tlbihUb2tlbjo6T1BFUkFUT1JfVFlQRSwgJG1hdGNoWzBdLCAkY3Vyc29yICsgMSk7CiAgICAgICAgICAgICAgICAkY3Vyc29yICs9IFxzdHJsZW4oJG1hdGNoWzBdKTsKICAgICAgICAgICAgfSBlbHNlaWYgKCc/JyA9PT0gJGV4cHJlc3Npb25bJGN1cnNvcl0gJiYgJy4nID09PSAoJGV4cHJlc3Npb25bJGN1cnNvciArIDFdID8/ICcnKSkgewogICAgICAgICAgICAgICAgLy8gbnVsbC1zYWZlCiAgICAgICAgICAgICAgICAkdG9rZW5zW10gPSBuZXcgVG9rZW4oVG9rZW46OlBVTkNUVUFUSU9OX1RZUEUsICc/LicsICsrJGN1cnNvcik7CiAgICAgICAgICAgICAgICArKyRjdXJzb3I7CiAgICAgICAgICAgIH0gZWxzZWlmICgnPycgPT09ICRleHByZXNzaW9uWyRjdXJzb3JdICYmICc/JyA9PT0gKCRleHByZXNzaW9uWyRjdXJzb3IgKyAxXSA/PyAnJykpIHsKICAgICAgICAgICAgICAgIC8vIG51bGwtY29hbGVzY2luZwogICAgICAgICAgICAgICAgJHRva2Vuc1tdID0gbmV3IFRva2VuKFRva2VuOjpQVU5DVFVBVElPTl9UWVBFLCAnPz8nLCArKyRjdXJzb3IpOwogICAgICAgICAgICAgICAgKyskY3Vyc29yOwogICAgICAgICAgICB9IGVsc2VpZiAoc3RyX2NvbnRhaW5zKCcuLD86JywgJGV4cHJlc3Npb25bJGN1cnNvcl0pKSB7CiAgICAgICAgICAgICAgICAvLyBwdW5jdHVhdGlvbgogICAgICAgICAgICAgICAgJHRva2Vuc1tdID0gbmV3IFRva2VuKFRva2VuOjpQVU5DVFVBVElPTl9UWVBFLCAkZXhwcmVzc2lvblskY3Vyc29yXSwgJGN1cnNvciArIDEpOwogICAgICAgICAgICAgICAgKyskY3Vyc29yOwogICAgICAgICAgICB9IGVsc2VpZiAocHJlZ19tYXRjaCgnL1thLXpBLVpfXHg3Zi1ceGZmXVthLXpBLVowLTlfXHg3Zi1ceGZmXSovQScsICRleHByZXNzaW9uLCAkbWF0Y2gsIDAsICRjdXJzb3IpKSB7CiAgICAgICAgICAgICAgICAvLyBuYW1lcwogICAgICAgICAgICAgICAgJHRva2Vuc1tdID0gbmV3IFRva2VuKFRva2VuOjpOQU1FX1RZUEUsICRtYXRjaFswXSwgJGN1cnNvciArIDEpOwogICAgICAgICAgICAgICAgJGN1cnNvciArPSBcc3RybGVuKCRtYXRjaFswXSk7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAvLyB1bmxleGFibGUKICAgICAgICAgICAgICAgIHRocm93IG5ldyBTeW50YXhFcnJvcihcc3ByaW50ZignVW5leHBlY3RlZCBjaGFyYWN0ZXIgIiVzIi4nLCAkZXhwcmVzc2lvblskY3Vyc29yXSksICRjdXJzb3IsICRleHByZXNzaW9uKTsKICAgICAgICAgICAgfQogICAgICAgIH0KCiAgICAgICAgJHRva2Vuc1tdID0gbmV3IFRva2VuKFRva2VuOjpFT0ZfVFlQRSwgbnVsbCwgJGN1cnNvciArIDEpOwoKICAgICAgICBpZiAoJGJyYWNrZXRzKSB7CiAgICAgICAgICAgIFskZXhwZWN0LCAkY3VyXSA9IGFycmF5X3BvcCgkYnJhY2tldHMpOwogICAgICAgICAgICB0aHJvdyBuZXcgU3ludGF4RXJyb3IoXHNwcmludGYoJ1VuY2xvc2VkICIlcyIuJywgJGV4cGVjdCksICRjdXIsICRleHByZXNzaW9uKTsKICAgICAgICB9CgogICAgICAgIHJldHVybiBuZXcgVG9rZW5TdHJlYW0oJHRva2VucywgJGV4cHJlc3Npb24pOwogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";