1778692653
441d63ebbc39eba359c9061ece8482bd-phpdoc%3Ab6db6b7f043ad97a56568ef4e10d08ca-181e33ae690b5b806eb0507039c5c6d8
s:18340:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjg6Ikdsb2IucGhwIjtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG5hbWVzcGFjZXMiO2E6MTp7czoyNToiXFN5bWZvbnlcQ29tcG9uZW50XEZpbmRlciI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjI1OiJcU3ltZm9ueVxDb21wb25lbnRcRmluZGVyIjtzOjM2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAG5hbWUiO3M6NjoiRmluZGVyIjt9fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAaW5jbHVkZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAZnVuY3Rpb25zIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGNvbnN0YW50cyI7YTowOnt9czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjbGFzc2VzIjthOjE6e3M6MzA6IlxTeW1mb255XENvbXBvbmVudFxGaW5kZXJcR2xvYiI7TzozNToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18iOjE1OntzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AaW1wbGVtZW50cyI7YTowOnt9czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGNvbnN0YW50cyI7YTowOnt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHByb3BlcnRpZXMiO2E6MDp7fXM6NDQ6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBtZXRob2RzIjthOjE6e3M6NDE6IlxTeW1mb255XENvbXBvbmVudFxGaW5kZXJcR2xvYjo6dG9SZWdleCgpIjtPOjM1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZCI6MTM6e3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhcmd1bWVudHMiO2E6NDp7aTowO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo0OiJnbG9iIjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO31pOjE7TzozNzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudCI6NTp7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAdHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXEJvb2xlYW4iOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABuYW1lIjtzOjE2OiJzdHJpY3RMZWFkaW5nRG90IjtzOjQ2OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABkZWZhdWx0IjtPOjM5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24iOjI6e3M6NTE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AZXhwcmVzc2lvbiI7czo0NDoie3sgUEhQRE9DYjMyNmI1MDYyYjJmMGU2OTA0NjgxMDcxNzUzNGNiMDkgfX0iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEV4cHJlc3Npb24AcGFydHMiO2E6MTp7czo0NDoie3sgUEhQRE9DYjMyNmI1MDYyYjJmMGU2OTA0NjgxMDcxNzUzNGNiMDkgfX0iO086NDI6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQc2V1ZG9UeXBlc1xUcnVlXyI6MDp7fX19czo1MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAYnlSZWZlcmVuY2UiO2I6MDtzOjQ5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABpc1ZhcmlhZGljIjtiOjA7fWk6MjtPOjM3OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50Ijo1OntzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudAB0eXBlIjtPOjM4OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQm9vbGVhbiI6MDp7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AG5hbWUiO3M6MTk6InN0cmljdFdpbGRjYXJkU2xhc2giO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjQ0OiJ7eyBQSFBET0NiMzI2YjUwNjJiMmYwZTY5MDQ2ODEwNzE3NTM0Y2IwOSB9fSI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YToxOntzOjQ0OiJ7eyBQSFBET0NiMzI2YjUwNjJiMmYwZTY5MDQ2ODEwNzE3NTM0Y2IwOSB9fSI7Tzo0MjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBzZXVkb1R5cGVzXFRydWVfIjowOnt9fX1zOjUwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxBcmd1bWVudABieVJlZmVyZW5jZSI7YjowO3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGlzVmFyaWFkaWMiO2I6MDt9aTozO086Mzc6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQiOjU6e3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AHR5cGUiO086Mzg6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xTdHJpbmdfIjowOnt9czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAbmFtZSI7czo5OiJkZWxpbWl0ZXIiO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGRlZmF1bHQiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbiI6Mjp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBleHByZXNzaW9uIjtzOjM6IicjJyI7czo0NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRXhwcmVzc2lvbgBwYXJ0cyI7YTowOnt9fXM6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEFyZ3VtZW50AGJ5UmVmZXJlbmNlIjtiOjA7czo0OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQXJndW1lbnQAaXNWYXJpYWRpYyI7YjowO319czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAGxvY2F0aW9uIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24iOjI6e3M6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AbGluZU51bWJlciI7aTo0MTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aToxMTI1O31zOjQ4OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZW5kTG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjExNTtzOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGNvbHVtbk51bWJlciI7aTozODYxO31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAcmV0dXJuVHlwZSI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXFN0cmluZ18iOjA6e31zOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZnFzZW4iO086MzA6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbiI6Mjp7czozNzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxGcXNlbgBmcXNlbiI7czo0MToiXFN5bWZvbnlcQ29tcG9uZW50XEZpbmRlclxHbG9iOjp0b1JlZ2V4KCkiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo3OiJ0b1JlZ2V4Ijt9czo0NzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcTWV0aG9kAHZpc2liaWxpdHkiO086Mzk6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eSI6MTp7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcVmlzaWJpbGl0eQB2aXNpYmlsaXR5IjtzOjY6InB1YmxpYyI7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABkb2NCbG9jayI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrIjo3OntzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHN1bW1hcnkiO3M6NjE6IlJldHVybnMgYSByZWdleHAgd2hpY2ggaXMgdGhlIGVxdWl2YWxlbnQgb2YgdGhlIGdsb2IgcGF0dGVybi4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6MDoiIjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX1zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAHRhZ3MiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7TzozODoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFR5cGVzXENvbnRleHQiOjI6e3M6NDk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cVHlwZXNcQ29udGV4dABuYW1lc3BhY2UiO3M6MjQ6IlN5bWZvbnlcQ29tcG9uZW50XEZpbmRlciI7czo1NjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxUeXBlc1xDb250ZXh0AG5hbWVzcGFjZUFsaWFzZXMiO2E6MDp7fX1zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhYnN0cmFjdCI7YjowO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABzdGF0aWMiO2I6MTtzOjQyOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAZmluYWwiO2I6MDtzOjU3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAaGFzUmV0dXJuQnlSZWZlcmVuY2UiO2I6MDtzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxNZXRob2QAbWV0YWRhdGEiO2E6MDp7fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXE1ldGhvZABhdHRyaWJ1dGVzIjthOjA6e319fXM6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwB1c2VkVHJhaXRzIjthOjA6e31zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AbG9jYXRpb24iO086MzM6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbiI6Mjp7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxMb2NhdGlvbgBsaW5lTnVtYmVyIjtpOjM2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDg6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBlbmRMb2NhdGlvbiI7TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uIjoyOntzOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXExvY2F0aW9uAGxpbmVOdW1iZXIiO2k6MTE2O3M6NDc6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cTG9jYXRpb24AY29sdW1uTnVtYmVyIjtpOjA7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBmcXNlbiI7TzozMDoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuIjoyOntzOjM3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXEZxc2VuAGZxc2VuIjtzOjMwOiJcU3ltZm9ueVxDb21wb25lbnRcRmluZGVyXEdsb2IiO3M6MzY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRnFzZW4AbmFtZSI7czo0OiJHbG9iIjt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGRvY0Jsb2NrIjtPOjMzOiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2siOjc6e3M6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAc3VtbWFyeSI7czo0NDoiR2xvYiBtYXRjaGVzIGdsb2JiaW5nIHBhdHRlcm5zIGFnYWluc3QgdGV4dC4iO3M6NDY6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6Mzk4OiJpZiBtYXRjaF9nbG9iKCJmb28uKiIsICJmb28uYmFyIikgZWNobyAibWF0Y2hlZFxuIjsKCiAgICAvLyBwcmludHMgZm9vLmJhciBhbmQgZm9vLmJhegogICAgJHJlZ2V4ID0gZ2xvYl90b19yZWdleCgiZm9vLioiKTsKICAgIGZvciAoWydmb28uYmFyJywgJ2Zvby5iYXonLCAnZm9vJywgJ2JhciddIGFzICR0KQogICAgewogICAgICAgIGlmICgvJHJlZ2V4LykgZWNobyAibWF0Y2hlZDogJGNhclxuIjsKICAgIH0KCkdsb2IgaW1wbGVtZW50cyBnbG9iKDMpIHN0eWxlIG1hdGNoaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gbWF0Y2gKYWdhaW5zdCB0ZXh0LCByYXRoZXIgdGhhbiBmZXRjaGluZyBuYW1lcyBmcm9tIGEgZmlsZXN5c3RlbS4KCkJhc2VkIG9uIHRoZSBQZXJsIFRleHQ6Okdsb2IgbW9kdWxlLiI7czo1MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgB0YWdzIjthOjA6e319czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawB0YWdzIjthOjQ6e2k6MDtPOjQ5OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xJbnZhbGlkVGFnIjozOntzOjU1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcSW52YWxpZFRhZwBuYW1lIjtzOjY6ImF1dGhvciI7czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEludmFsaWRUYWcAYm9keSI7czo0NjoiRmFiaWVuIFBvdGVuY2llciA8ZmFiaWVuQHN5bWZvbnkuY29tPiBQSFAgcG9ydCI7czo2MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEludmFsaWRUYWcAdGhyb3dhYmxlIjtOO31pOjE7Tzo0OToicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcSW52YWxpZFRhZyI6Mzp7czo1NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEludmFsaWRUYWcAbmFtZSI7czo2OiJhdXRob3IiO3M6NTU6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcVGFnc1xJbnZhbGlkVGFnAGJvZHkiO3M6NTE6IlJpY2hhcmQgQ2xhbXAgPHJpY2hhcmRjQHVuaXhiZWFyZC5uZXQ+IFBlcmwgdmVyc2lvbiI7czo2MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEludmFsaWRUYWcAdGhyb3dhYmxlIjtOO31pOjI7Tzo0NjoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXFRhZ3NcR2VuZXJpYyI6Mjp7czo3OiIAKgBuYW1lIjtzOjk6ImNvcHlyaWdodCI7czoxNDoiACoAZGVzY3JpcHRpb24iO086NDU6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbiI6Mjp7czo1OToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xEZXNjcmlwdGlvbgBib2R5VGVtcGxhdGUiO3M6NDc6IjIwMDQtMjAwNSBGYWJpZW4gUG90ZW5jaWVyIDxmYWJpZW5Ac3ltZm9ueS5jb20+IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19aTozO086NDY6InBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9ja1xUYWdzXEdlbmVyaWMiOjI6e3M6NzoiACoAbmFtZSI7czo5OiJjb3B5cmlnaHQiO3M6MTQ6IgAqAGRlc2NyaXB0aW9uIjtPOjQ1OiJwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24iOjI6e3M6NTk6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2tcRGVzY3JpcHRpb24AYm9keVRlbXBsYXRlIjtzOjQzOiIyMDAyIFJpY2hhcmQgQ2xhbXAgPHJpY2hhcmRjQHVuaXhiZWFyZC5uZXQ+IjtzOjUxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrXERlc2NyaXB0aW9uAHRhZ3MiO2E6MDp7fX19fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAY29udGV4dCI7cjo2ODtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXERvY0Jsb2NrAGxvY2F0aW9uIjtOO3M6NTA6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cRG9jQmxvY2sAaXNUZW1wbGF0ZVN0YXJ0IjtiOjA7czo0ODoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxEb2NCbG9jawBpc1RlbXBsYXRlRW5kIjtiOjA7fXM6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXENsYXNzXwBwYXJlbnQiO047czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGFic3RyYWN0IjtiOjA7czo0MjoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAGZpbmFsIjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAHJlYWRPbmx5IjtiOjA7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcQ2xhc3NfAG1ldGFkYXRhIjthOjA6e31zOjQ3OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxDbGFzc18AYXR0cmlidXRlcyI7YTowOnt9fX1zOjQ1OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGludGVyZmFjZXMiO2E6MDp7fXM6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAdHJhaXRzIjthOjA6e31zOjQwOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGVudW1zIjthOjA6e31zOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGhhc2giO3M6MzI6IjE4MWUzM2FlNjkwYjViODA2ZWIwNTA3MDM5YzVjNmQ4IjtzOjM5OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHBhdGgiO3M6MzA6InZlbmRvci9zeW1mb255L2ZpbmRlci9HbG9iLnBocCI7czo0MToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBzb3VyY2UiO3M6Mzg2NToiPD9waHAKCi8qCiAqIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBTeW1mb255IHBhY2thZ2UuCiAqCiAqIChjKSBGYWJpZW4gUG90ZW5jaWVyIDxmYWJpZW5Ac3ltZm9ueS5jb20+CiAqCiAqIEZvciB0aGUgZnVsbCBjb3B5cmlnaHQgYW5kIGxpY2Vuc2UgaW5mb3JtYXRpb24sIHBsZWFzZSB2aWV3IHRoZSBMSUNFTlNFCiAqIGZpbGUgdGhhdCB3YXMgZGlzdHJpYnV0ZWQgd2l0aCB0aGlzIHNvdXJjZSBjb2RlLgogKi8KCm5hbWVzcGFjZSBTeW1mb255XENvbXBvbmVudFxGaW5kZXI7CgovKioKICogR2xvYiBtYXRjaGVzIGdsb2JiaW5nIHBhdHRlcm5zIGFnYWluc3QgdGV4dC4KICoKICogICAgIGlmIG1hdGNoX2dsb2IoImZvby4qIiwgImZvby5iYXIiKSBlY2hvICJtYXRjaGVkXG4iOwogKgogKiAgICAgLy8gcHJpbnRzIGZvby5iYXIgYW5kIGZvby5iYXoKICogICAgICRyZWdleCA9IGdsb2JfdG9fcmVnZXgoImZvby4qIik7CiAqICAgICBmb3IgKFsnZm9vLmJhcicsICdmb28uYmF6JywgJ2ZvbycsICdiYXInXSBhcyAkdCkKICogICAgIHsKICogICAgICAgICBpZiAoLyRyZWdleC8pIGVjaG8gIm1hdGNoZWQ6ICRjYXJcbiI7CiAqICAgICB9CiAqCiAqIEdsb2IgaW1wbGVtZW50cyBnbG9iKDMpIHN0eWxlIG1hdGNoaW5nIHRoYXQgY2FuIGJlIHVzZWQgdG8gbWF0Y2gKICogYWdhaW5zdCB0ZXh0LCByYXRoZXIgdGhhbiBmZXRjaGluZyBuYW1lcyBmcm9tIGEgZmlsZXN5c3RlbS4KICoKICogQmFzZWQgb24gdGhlIFBlcmwgVGV4dDo6R2xvYiBtb2R1bGUuCiAqCiAqIEBhdXRob3IgRmFiaWVuIFBvdGVuY2llciA8ZmFiaWVuQHN5bWZvbnkuY29tPiBQSFAgcG9ydAogKiBAYXV0aG9yICAgICBSaWNoYXJkIENsYW1wIDxyaWNoYXJkY0B1bml4YmVhcmQubmV0PiBQZXJsIHZlcnNpb24KICogQGNvcHlyaWdodCAgMjAwNC0yMDA1IEZhYmllbiBQb3RlbmNpZXIgPGZhYmllbkBzeW1mb255LmNvbT4KICogQGNvcHlyaWdodCAgMjAwMiBSaWNoYXJkIENsYW1wIDxyaWNoYXJkY0B1bml4YmVhcmQubmV0PgogKi8KY2xhc3MgR2xvYgp7CiAgICAvKioKICAgICAqIFJldHVybnMgYSByZWdleHAgd2hpY2ggaXMgdGhlIGVxdWl2YWxlbnQgb2YgdGhlIGdsb2IgcGF0dGVybi4KICAgICAqLwogICAgcHVibGljIHN0YXRpYyBmdW5jdGlvbiB0b1JlZ2V4KHN0cmluZyAkZ2xvYiwgYm9vbCAkc3RyaWN0TGVhZGluZ0RvdCA9IHRydWUsIGJvb2wgJHN0cmljdFdpbGRjYXJkU2xhc2ggPSB0cnVlLCBzdHJpbmcgJGRlbGltaXRlciA9ICcjJyk6IHN0cmluZwogICAgewogICAgICAgICRmaXJzdEJ5dGUgPSB0cnVlOwogICAgICAgICRlc2NhcGluZyA9IGZhbHNlOwogICAgICAgICRpbkN1cmxpZXMgPSAwOwogICAgICAgICRyZWdleCA9ICcnOwogICAgICAgIGlmICgkdW5hbmNob3JlZCA9IHN0cl9zdGFydHNfd2l0aCgkZ2xvYiwgJyoqLycpKSB7CiAgICAgICAgICAgICRnbG9iID0gJy8nLiRnbG9iOwogICAgICAgIH0KICAgICAgICAkc2l6ZUdsb2IgPSBcc3RybGVuKCRnbG9iKTsKICAgICAgICBmb3IgKCRpID0gMDsgJGkgPCAkc2l6ZUdsb2I7ICsrJGkpIHsKICAgICAgICAgICAgJGNhciA9ICRnbG9iWyRpXTsKICAgICAgICAgICAgaWYgKCRmaXJzdEJ5dGUgJiYgJHN0cmljdExlYWRpbmdEb3QgJiYgJy4nICE9PSAkY2FyKSB7CiAgICAgICAgICAgICAgICAkcmVnZXggLj0gJyg/PVteXC5dKSc7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgICRmaXJzdEJ5dGUgPSAnLycgPT09ICRjYXI7CgogICAgICAgICAgICBpZiAoJGZpcnN0Qnl0ZSAmJiAkc3RyaWN0V2lsZGNhcmRTbGFzaCAmJiBpc3NldCgkZ2xvYlskaSArIDJdKSAmJiAnKionID09PSAkZ2xvYlskaSArIDFdLiRnbG9iWyRpICsgMl0gJiYgKCFpc3NldCgkZ2xvYlskaSArIDNdKSB8fCAnLycgPT09ICRnbG9iWyRpICsgM10pKSB7CiAgICAgICAgICAgICAgICAkY2FyID0gJ1teL10rKy8nOwogICAgICAgICAgICAgICAgaWYgKCFpc3NldCgkZ2xvYlskaSArIDNdKSkgewogICAgICAgICAgICAgICAgICAgICRjYXIgLj0gJz8nOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgIGlmICgkc3RyaWN0TGVhZGluZ0RvdCkgewogICAgICAgICAgICAgICAgICAgICRjYXIgPSAnKD89W15cLl0pJy4kY2FyOwogICAgICAgICAgICAgICAgfQoKICAgICAgICAgICAgICAgICRjYXIgPSAnLyg/OicuJGNhci4nKSonOwogICAgICAgICAgICAgICAgJGkgKz0gMiArIGlzc2V0KCRnbG9iWyRpICsgM10pOwoKICAgICAgICAgICAgICAgIGlmICgnLycgPT09ICRkZWxpbWl0ZXIpIHsKICAgICAgICAgICAgICAgICAgICAkY2FyID0gc3RyX3JlcGxhY2UoJy8nLCAnXFwvJywgJGNhcik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIGlmICgkZGVsaW1pdGVyID09PSAkY2FyIHx8ICcuJyA9PT0gJGNhciB8fCAnKCcgPT09ICRjYXIgfHwgJyknID09PSAkY2FyIHx8ICd8JyA9PT0gJGNhciB8fCAnKycgPT09ICRjYXIgfHwgJ14nID09PSAkY2FyIHx8ICckJyA9PT0gJGNhcikgewogICAgICAgICAgICAgICAgJHJlZ2V4IC49ICJcXCRjYXIiOwogICAgICAgICAgICB9IGVsc2VpZiAoJyonID09PSAkY2FyKSB7CiAgICAgICAgICAgICAgICAkcmVnZXggLj0gJGVzY2FwaW5nID8gJ1xcKicgOiAoJHN0cmljdFdpbGRjYXJkU2xhc2ggPyAnW14vXSonIDogJy4qJyk7CiAgICAgICAgICAgIH0gZWxzZWlmICgnPycgPT09ICRjYXIpIHsKICAgICAgICAgICAgICAgICRyZWdleCAuPSAkZXNjYXBpbmcgPyAnXFw/JyA6ICgkc3RyaWN0V2lsZGNhcmRTbGFzaCA/ICdbXi9dJyA6ICcuJyk7CiAgICAgICAgICAgIH0gZWxzZWlmICgneycgPT09ICRjYXIpIHsKICAgICAgICAgICAgICAgICRyZWdleCAuPSAkZXNjYXBpbmcgPyAnXFx7JyA6ICcoJzsKICAgICAgICAgICAgICAgIGlmICghJGVzY2FwaW5nKSB7CiAgICAgICAgICAgICAgICAgICAgKyskaW5DdXJsaWVzOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9IGVsc2VpZiAoJ30nID09PSAkY2FyICYmICRpbkN1cmxpZXMpIHsKICAgICAgICAgICAgICAgICRyZWdleCAuPSAkZXNjYXBpbmcgPyAnfScgOiAnKSc7CiAgICAgICAgICAgICAgICBpZiAoISRlc2NhcGluZykgewogICAgICAgICAgICAgICAgICAgIC0tJGluQ3VybGllczsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfSBlbHNlaWYgKCcsJyA9PT0gJGNhciAmJiAkaW5DdXJsaWVzKSB7CiAgICAgICAgICAgICAgICAkcmVnZXggLj0gJGVzY2FwaW5nID8gJywnIDogJ3wnOwogICAgICAgICAgICB9IGVsc2VpZiAoJ1xcJyA9PT0gJGNhcikgewogICAgICAgICAgICAgICAgaWYgKCRlc2NhcGluZykgewogICAgICAgICAgICAgICAgICAgICRyZWdleCAuPSAnXFxcXCc7CiAgICAgICAgICAgICAgICAgICAgJGVzY2FwaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICRlc2NhcGluZyA9IHRydWU7CiAgICAgICAgICAgICAgICB9CgogICAgICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICAkcmVnZXggLj0gJGNhcjsKICAgICAgICAgICAgfQogICAgICAgICAgICAkZXNjYXBpbmcgPSBmYWxzZTsKICAgICAgICB9CgogICAgICAgIGlmICgkdW5hbmNob3JlZCkgewogICAgICAgICAgICAkcmVnZXggPSBzdWJzdHJfcmVwbGFjZSgkcmVnZXgsICc/JywgMSArICgnLycgPT09ICRkZWxpbWl0ZXIpICsgKCRzdHJpY3RMZWFkaW5nRG90ID8gXHN0cmxlbignKD89W15cLl0pJykgOiAwKSwgMCk7CiAgICAgICAgfQoKICAgICAgICByZXR1cm4gJGRlbGltaXRlci4nXicuJHJlZ2V4LickJy4kZGVsaW1pdGVyOwogICAgfQp9CiI7czo0MzoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBkb2NCbG9jayI7TjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAG1ldGFkYXRhIjthOjA6e319";