1778692646
441d63ebbc39eba359c9061ece8482bd-phpdoc%3A1effe12206160f496d8adc26bc5ba613-dc60ae3925425dab71251c18eb9366d3
s:8460:"TzozMzoicGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlIjoxNDp7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lIjtzOjk6ImluZGV4LnBocCI7czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBuYW1lc3BhY2VzIjthOjA6e31zOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGluY2x1ZGVzIjthOjA6e31zOjQ0OiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGZ1bmN0aW9ucyI7YTowOnt9czo0NDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBjb25zdGFudHMiO2E6MDp7fXM6NDI6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAY2xhc3NlcyI7YTowOnt9czo0NToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBpbnRlcmZhY2VzIjthOjA6e31zOjQxOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAHRyYWl0cyI7YTowOnt9czo0MDoiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBlbnVtcyI7YTowOnt9czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBoYXNoIjtzOjMyOiJkYzYwYWUzOTI1NDI1ZGFiNzEyNTFjMThlYjkzNjZkMyI7czozOToiAHBocERvY3VtZW50b3JcUmVmbGVjdGlvblxQaHBcRmlsZQBwYXRoIjtzOjYzOiJ2ZW5kb3Ivc3ltZm9ueS9jb250cmFjdHMvSHR0cENsaWVudC9UZXN0L0ZpeHR1cmVzL3dlYi9pbmRleC5waHAiO3M6NDE6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAc291cmNlIjtzOjU0MDU6Ijw/cGhwCgppZiAoJ2NsaS1zZXJ2ZXInICE9PSBcUEhQX1NBUEkpIHsKICAgIC8vIHNhZmUgZ3VhcmQgYWdhaW5zdCB1bndhbnRlZCBleGVjdXRpb24KICAgIHRocm93IG5ldyBcRXhjZXB0aW9uKCJZb3UgY2Fubm90IHJ1biB0aGlzIHNjcmlwdCBkaXJlY3RseSwgaXQncyBhIGZpeHR1cmUgZm9yIFRlc3RIdHRwU2VydmVyLiIpOwp9CgokdmFycyA9IFtdOwoKaWYgKCEkX1BPU1QpIHsKICAgICRfUE9TVCA9IGpzb25fZGVjb2RlKGZpbGVfZ2V0X2NvbnRlbnRzKCdwaHA6Ly9pbnB1dCcpLCB0cnVlKTsKICAgICRfUE9TVFsnY29udGVudC10eXBlJ10gPSAkX1NFUlZFUlsnSFRUUF9DT05URU5UX1RZUEUnXSA/PyAnPyc7Cn0KCiRoZWFkZXJzID0gWwogICAgJ1NFUlZFUl9QUk9UT0NPTCcsCiAgICAnU0VSVkVSX05BTUUnLAogICAgJ1JFUVVFU1RfVVJJJywKICAgICdSRVFVRVNUX01FVEhPRCcsCiAgICAnUEhQX0FVVEhfVVNFUicsCiAgICAnUEhQX0FVVEhfUFcnLAogICAgJ1JFTU9URV9BRERSJywKICAgICdSRU1PVEVfUE9SVCcsCl07Cgpmb3JlYWNoICgkaGVhZGVycyBhcyAkaykgewogICAgaWYgKGlzc2V0KCRfU0VSVkVSWyRrXSkpIHsKICAgICAgICAkdmFyc1ska10gPSAkX1NFUlZFUlska107CiAgICB9Cn0KCmZvcmVhY2ggKCRfU0VSVkVSIGFzICRrID0+ICR2KSB7CiAgICBpZiAoc3RyX3N0YXJ0c193aXRoKCRrLCAnSFRUUF8nKSkgewogICAgICAgICR2YXJzWyRrXSA9ICR2OwogICAgfQp9CgokanNvbiA9IGpzb25fZW5jb2RlKCR2YXJzLCBcSlNPTl9QUkVUVFlfUFJJTlQgfCBcSlNPTl9VTkVTQ0FQRURfU0xBU0hFUyB8IFxKU09OX1VORVNDQVBFRF9VTklDT0RFKTsKCnN3aXRjaCAocGFyc2VfdXJsKCR2YXJzWydSRVFVRVNUX1VSSSddLCBcUEhQX1VSTF9QQVRIKSkgewogICAgZGVmYXVsdDoKICAgICAgICBleGl0OwoKICAgIGNhc2UgJy9oZWFkJzoKICAgICAgICBoZWFkZXIoJ1gtUmVxdWVzdC1WYXJzOiAnLmpzb25fZW5jb2RlKCR2YXJzLCBcSlNPTl9VTkVTQ0FQRURfU0xBU0hFUyB8IFxKU09OX1VORVNDQVBFRF9VTklDT0RFKSk7CiAgICAgICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJy5zdHJsZW4oJGpzb24pLCB0cnVlKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICcvJzoKICAgIGNhc2UgJy8/YT1hJmI9Yic6CiAgICBjYXNlICdodHRwOi8vMTI3LjAuMC4xOjgwNTcvJzoKICAgIGNhc2UgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA1Ny8nOgogICAgICAgIG9iX3N0YXJ0KCdvYl9nemhhbmRsZXInKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICcvMTAzJzoKICAgICAgICBoZWFkZXIoJ0hUVFAvMS4xIDEwMyBFYXJseSBIaW50cycpOwogICAgICAgIGhlYWRlcignTGluazogPC9zdHlsZS5jc3M+OyByZWw9cHJlbG9hZDsgYXM9c3R5bGUnLCBmYWxzZSk7CiAgICAgICAgaGVhZGVyKCdMaW5rOiA8L3NjcmlwdC5qcz47IHJlbD1wcmVsb2FkOyBhcz1zY3JpcHQnLCBmYWxzZSk7CiAgICAgICAgZmx1c2goKTsKICAgICAgICB1c2xlZXAoMTAwMCk7CiAgICAgICAgZWNobyAiSFRUUC8xLjEgMjAwIE9LXHJcbiI7CiAgICAgICAgZWNobyAiRGF0ZTogRnJpLCAyNiBNYXkgMjAxNyAxMDowMjoxMSBHTVRcclxuIjsKICAgICAgICBlY2hvICJDb250ZW50LUxlbmd0aDogMTNcclxuIjsKICAgICAgICBlY2hvICJcclxuIjsKICAgICAgICBlY2hvICdIZXJlIHRoZSBib2R5JzsKICAgICAgICBleGl0OwoKICAgIGNhc2UgJy80MDQnOgogICAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJywgdHJ1ZSwgNDA0KTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICcvNDA0LWd6aXBwZWQnOgogICAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluJywgdHJ1ZSwgNDA0KTsKICAgICAgICBvYl9zdGFydCgnb2JfZ3poYW5kbGVyJyk7CiAgICAgICAgQG9iX2ZsdXNoKCk7CiAgICAgICAgZmx1c2goKTsKICAgICAgICB1c2xlZXAoMzAwMDAwKTsKICAgICAgICBlY2hvICdzb21lIHRleHQnOwogICAgICAgIGV4aXQ7CgogICAgY2FzZSAnLzMwMSc6CiAgICAgICAgaWYgKCdCYXNpYyBabTl2T21KaGNnPT0nID09PSAkdmFyc1snSFRUUF9BVVRIT1JJWkFUSU9OJ10pIHsKICAgICAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovLzEyNy4wLjAuMTo4MDU3LzMwMicsIHRydWUsIDMwMSk7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJy8zMDEvYmFkLXRsZCc6CiAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL2Zvby5leGFtcGxlLicsIHRydWUsIDMwMSk7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnLzMwMS9pbnZhbGlkJzoKICAgICAgICBoZWFkZXIoJ0xvY2F0aW9uOiAvLz9mb289YmFyJywgdHJ1ZSwgMzAxKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICcvMzAxL3Byb3h5JzoKICAgIGNhc2UgJ2h0dHA6Ly9sb2NhbGhvc3Q6ODA1Ny8zMDEvcHJveHknOgogICAgY2FzZSAnaHR0cDovLzEyNy4wLjAuMTo4MDU3LzMwMS9wcm94eSc6CiAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL2xvY2FsaG9zdDo4MDU3LycsIHRydWUsIDMwMSk7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnLzMwMic6CiAgICAgICAgaWYgKCFpc3NldCgkdmFyc1snSFRUUF9BVVRIT1JJWkFUSU9OJ10pKSB7CiAgICAgICAgICAgICRsb2NhdGlvbiA9ICRfR0VUWydsb2NhdGlvbiddID8/ICdodHRwOi8vbG9jYWxob3N0OjgwNTcvJzsKICAgICAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogJy4kbG9jYXRpb24sIHRydWUsIDMwMik7CiAgICAgICAgfQogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJy8zMDIvcmVsYXRpdmUnOgogICAgICAgIGhlYWRlcignTG9jYXRpb246IC4uJywgdHJ1ZSwgMzAyKTsKICAgICAgICBicmVhazsKCiAgICBjYXNlICcvMzA0JzoKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAxMCcsIHRydWUsIDMwNCk7CiAgICAgICAgZWNobyAnMTIzNDUnOwoKICAgICAgICByZXR1cm47CgogICAgY2FzZSAnLzMwNyc6CiAgICAgICAgaGVhZGVyKCdMb2NhdGlvbjogaHR0cDovL2xvY2FsaG9zdDo4MDU3L3Bvc3QnLCB0cnVlLCAzMDcpOwogICAgICAgIGJyZWFrOwoKICAgIGNhc2UgJy9sZW5ndGgtYnJva2VuJzoKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtTGVuZ3RoOiAxMDAwJyk7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnL3Bvc3QnOgogICAgICAgICRvdXRwdXQgPSBqc29uX2VuY29kZSgkX1BPU1QgKyBbJ1JFUVVFU1RfTUVUSE9EJyA9PiAkdmFyc1snUkVRVUVTVF9NRVRIT0QnXV0sIFxKU09OX1BSRVRUWV9QUklOVCB8IFxKU09OX1VORVNDQVBFRF9TTEFTSEVTIHwgXEpTT05fVU5FU0NBUEVEX1VOSUNPREUpOwogICAgICAgIGhlYWRlcignQ29udGVudC1UeXBlOiBhcHBsaWNhdGlvbi9qc29uJywgdHJ1ZSk7CiAgICAgICAgaGVhZGVyKCdDb250ZW50LUxlbmd0aDogJy5zdHJsZW4oJG91dHB1dCkpOwogICAgICAgIGVjaG8gJG91dHB1dDsKICAgICAgICBleGl0OwoKICAgIGNhc2UgJy90aW1lb3V0LWhlYWRlcic6CiAgICAgICAgdXNsZWVwKDMwMDAwMCk7CiAgICAgICAgYnJlYWs7CgogICAgY2FzZSAnL3RpbWVvdXQtYm9keSc6CiAgICAgICAgZWNobyAnPDE+JzsKICAgICAgICBAb2JfZmx1c2goKTsKICAgICAgICBmbHVzaCgpOwogICAgICAgIHVzbGVlcCg1MDAwMDApOwogICAgICAgIGVjaG8gJzwyPic7CiAgICAgICAgZXhpdDsKCiAgICBjYXNlICcvdGltZW91dC1sb25nJzoKICAgICAgICBpZ25vcmVfdXNlcl9hYm9ydChmYWxzZSk7CiAgICAgICAgc2xlZXAoMSk7CiAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgZWNobyAnPDE+JzsKICAgICAgICAgICAgQG9iX2ZsdXNoKCk7CiAgICAgICAgICAgIGZsdXNoKCk7CiAgICAgICAgICAgIHVzbGVlcCg1MDApOwogICAgICAgIH0KICAgICAgICBleGl0OwoKICAgIGNhc2UgJy9jaHVua2VkJzoKICAgICAgICBoZWFkZXIoJ1RyYW5zZmVyLUVuY29kaW5nOiBjaHVua2VkJyk7CiAgICAgICAgZWNobyAiOFxyXG5TeW1mb255IFxyXG41XHJcbmlzIGF3XHJcbjZcclxuZXNvbWUhXHJcbjBcclxuXHJcbiI7CiAgICAgICAgZXhpdDsKCiAgICBjYXNlICcvY2h1bmtlZC1icm9rZW4nOgogICAgICAgIGhlYWRlcignVHJhbnNmZXItRW5jb2Rpbmc6IGNodW5rZWQnKTsKICAgICAgICBlY2hvICI4XHJcblN5bWZvbnkgXHJcbjVcclxuaXMgYXdcclxuNlxyXG5lIjsKICAgICAgICBleGl0OwoKICAgIGNhc2UgJy9nemlwLWJyb2tlbic6CiAgICAgICAgaGVhZGVyKCdDb250ZW50LUVuY29kaW5nOiBnemlwJyk7CiAgICAgICAgZWNobyBzdHJfcmVwZWF0KCctJywgMTAwMCk7CiAgICAgICAgZXhpdDsKCiAgICBjYXNlICcvbWF4LWR1cmF0aW9uJzoKICAgICAgICBpZ25vcmVfdXNlcl9hYm9ydChmYWxzZSk7CiAgICAgICAgd2hpbGUgKHRydWUpIHsKICAgICAgICAgICAgZWNobyAnPDE+JzsKICAgICAgICAgICAgQG9iX2ZsdXNoKCk7CiAgICAgICAgICAgIGZsdXNoKCk7CiAgICAgICAgICAgIHVzbGVlcCg1MDApOwogICAgICAgIH0KICAgICAgICBleGl0OwoKICAgIGNhc2UgJy9qc29uJzoKICAgICAgICBoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicpOwogICAgICAgIGVjaG8ganNvbl9lbmNvZGUoWwogICAgICAgICAgICAnZG9jdW1lbnRzJyA9PiBbCiAgICAgICAgICAgICAgICBbJ2lkJyA9PiAnL2pzb24vMSddLAogICAgICAgICAgICAgICAgWydpZCcgPT4gJy9qc29uLzInXSwKICAgICAgICAgICAgICAgIFsnaWQnID0+ICcvanNvbi8zJ10sCiAgICAgICAgICAgIF0sCiAgICAgICAgXSk7CiAgICAgICAgZXhpdDsKCiAgICBjYXNlICcvanNvbi8xJzoKICAgIGNhc2UgJy9qc29uLzInOgogICAgY2FzZSAnL2pzb24vMyc6CiAgICAgICAgaGVhZGVyKCdDb250ZW50LVR5cGU6IGFwcGxpY2F0aW9uL2pzb24nKTsKICAgICAgICBlY2hvIGpzb25fZW5jb2RlKFsKICAgICAgICAgICAgJ3RpdGxlJyA9PiAkdmFyc1snUkVRVUVTVF9VUkknXSwKICAgICAgICBdKTsKCiAgICAgICAgZXhpdDsKCiAgICBjYXNlICcvY3VzdG9tJzoKICAgICAgICBpZiAoaXNzZXQoJF9HRVRbJ3N0YXR1cyddKSkgewogICAgICAgICAgICBodHRwX3Jlc3BvbnNlX2NvZGUoKGludCkgJF9HRVRbJ3N0YXR1cyddKTsKICAgICAgICB9CiAgICAgICAgaWYgKGlzc2V0KCRfR0VUWydoZWFkZXJzJ10pICYmIGlzX2FycmF5KCRfR0VUWydoZWFkZXJzJ10pKSB7CiAgICAgICAgICAgIGZvcmVhY2ggKCRfR0VUWydoZWFkZXJzJ10gYXMgJGhlYWRlcikgewogICAgICAgICAgICAgICAgaGVhZGVyKCRoZWFkZXIpOwogICAgICAgICAgICB9CiAgICAgICAgfQp9CgpoZWFkZXIoJ0NvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbicsIHRydWUpOwoKZWNobyAkanNvbjsKIjtzOjQzOiIAcGhwRG9jdW1lbnRvclxSZWZsZWN0aW9uXFBocFxGaWxlAGRvY0Jsb2NrIjtOO3M6NDM6IgBwaHBEb2N1bWVudG9yXFJlZmxlY3Rpb25cUGhwXEZpbGUAbWV0YWRhdGEiO2E6MDp7fX0=";