True,/* Enable thumbnails, text preview, tooltip */ "responsive" => True,/* Enable responsive design */ "icons" => True,/* File icons */ "displayDot" => False, /* Display files and folders start with "." */ "thumbMimes" => array("image"), /* MIME types that thumbnails are able to be generated. */ "thumbnailSize" => 220, /* Max PX of each side */ "previewMimes" => array("subtitle", "text", "python", "javascript", "script"/*, "html", "c++" */), "previewLimit" => 250, /* Bytes */ "displayRows" => 50, /* Default display rows */ "rowsSelection" => array(10 ,20, 30, 50, 100), /* Numbers of display rows for selection */ "indexFiles" => array("index.php", "index.html", "index.htm"),/* WARNING: Does not really prevent your files in a directory from being listed! */ //"indexFiles" => array(), /* Do if you want the index page list files of indexed directories instead. */ /* Cache Time To Live (TTL) settings. They are all in seconds. In case you don't know: Caches gets things faster, but things will not be updated real-time. If TTL is up, then cache expires, the page will have to generate the cache again, things would get a bit slower. */ "contentTTL" => 10, /* Content of a directory */ "hasIndexTTL" => 3600,/* Whether a directory has an index file */ "sizeTTL" => 180, /* Size of a file */ "lastModdedTTL" => 180, /* Last modified time of a file */ "thumbnailTTL" => 600, /* Thumbnail of a viewable image */ "previewTTL" => 180, /* Preview text of a file */ ); $localization = array( "filename" => "Filename", "filetype" => "Type", "filesize" => "File Size", "filemtime" => "Last Modification", "thumbnail" => "Thumbnail", "preview" => "Preview", "image" => "Image", "video" => "Video", "audio" => "Audio", "compressed" => "zipped", "cdimage" => "CD Image", "executable" => "Executable", "subtitle" => "Subtitle", "installer" => "Installer", "appext" => "Extention", "text" => "Text", "python" => "Python File", "javascript" => "Javascript", "script" => "Script", /* "html" => "Happy toffee milk lemon", */ "folder" => "=Folder=", "file" => "File", "goBackToParentDirectory" => "Back to parent directory", "measureWordOfEntitles" => " items", "entitles" => "Content", "firstPage" => "Index", "lastPage" => "Last Page", "nextPage" => "Next page", "previousPage" => "Previous Page", "all" => "All", "filter" => "Search", "show" => "Show", "sInfo" => "Total Number of Content:_TOTAL_. Displaying items _START_ to _END_", "sInfoFiltered" => "Filtered from _MAX_", "sInfoEmpty" => "No result", "sEmptyTable" => "No content", ); $mimeTypes = array( "image" => array("jpg", "jpeg", "png", "gif", "tif", "tiff", "pcd", "psd", "png", "ico"), "video" => array("avi", "wmv", "mov", "mp4", "mkv", "wtv", "rm", "rmvb", "rma", "m4v", "flv", "f4v", "ts", "mpg", "3gp", "webm", "pmp", "264"), "audio" => array("mp3", "ogg", "aac", "ape", "tta", "wav", "flac", "mid"), "compressed" => array("zip", "rar", "7z", "tar", "gz", "bz2", "lzw", "tgz"), "cdimage" => array("iso", "cue", "mds", "mdf"), "executable" => array("exe"), "subtitle" => array("ass", "srt"), "installer" => array("msi", "apk", "ipa"), "appext" => array("dll", "so"), "text" => array("txt", "nfo"), "python" => array("py"), "javascript" => array("js"), "script" => array("sh", "bat"), /* "html" => array("html", "htm"), */ ); $iconOfMimeTypes = array( /* Base64 encoded 24*24 PNG. Gnome icons are from Open Icon Library. I don't either understand or care about the licenses of them, but I am pretty sure I am permitted to used them without asking. */ "image" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAAsTAAALEwEAmpwYAAAACXZwQWcAAAAYAAAAGAB4TKWmAAACz0lEQVRIx+2UTUhUURiGn3Pu38zozL3Mn8loU9NIRSUkUlD0Q62CIKhd0KKIKIgWhgVtWlWU/diiXRBRmxYR1aZNtZQyKbR/CcNxbMxoQB2zGb2nhZo6hlq2aNG7ut/hnPf53vNxLvzXLBIAFy81PM4X8pv/prGhGw+O1h3bBsCFi+eG1F/WufNnFIAOIDUJwNmG0wgxv86VguP1J5By1FMv3pBpfzovQHly7ZR6GsC23Cl1b3aAD529LKkMEwn6R7tkbHjjXU+uhZoZ4C8CGI6JGA7Q3pFmMGezMllGe+cXqhaGJzWRI2R7kVIyUuQ3PYFHFdUaEcehOhGg5W0PN+49Y82KcmyPoudrjqa2NHaJhXRtEjGHrJgFUJxgXM/f97JxVYS29gxbaxYALgOmS8+XPrasXkosUgK4ZGdPMB0wMDRMsERy+/F7PMbEHiti4PdoLIt5kXJszTTnlkDTQTclQlOEhjXKHZtEmcmhy8/QRB6AWw87OLlnObo+dsb0EQ5EZgYELIXhFVSs24AvGgMhKAz20930CMcLdTuTHG5sIeqYNB6qxtQFoJCGF08wTp9vKkBOuyKfS2VtDb6yRWDEQK/AKI0SW78FJ6jYvSnKt/ww29dECJdCwONil1qEFsRxonGCwRCprk5c151IoJT6OXu7FKyyCtAchLAAUDKE7hnCXwIjBRelFOneHAHLRegeNDvOvqsZNO0z8XiGxOLEVACT3smGUzk4dZOZNCQd7r6yeHIFqpIxkksqMIwsBw7upzv9iVSqCylF8y8T7N29g7nIMAxCoQjhcBR/wKbwvZ/MpwypzhTAyMeOrl0TAHf0cR2vPzEn82K1vWwlmayiK5UGxcjbN+/2XLt2vfsnIF8ovDjbcLr2T8yVUgghEALVPzDYfO/O/SOtra2vYfSvMX41fiDxR+2PjQUoAH1Adtx8MqD4+7eDzOPsP64fQBsycjclrewAAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMTEtMTVUMjM6MDQ6MjUtMDc6MDBt/LoyAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAxLTExVDA5OjEwOjE5LTA3OjAw0PLOhAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMC0wMS0xMVQwOToxMDoxOS0wNzowMKGvdjgAAAA0dEVYdExpY2Vuc2UAaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvR1BMLzIuMC9sagaoAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5LTExLTE1VDIzOjA0OjI1LTA3OjAwMk3MBgAAABd0RVh0U291cmNlAEdOT01FIEljb24gVGhlbWXB+SZpAAAAIHRFWHRTb3VyY2VfVVJMAGh0dHA6Ly9hcnQuZ25vbWUub3JnLzLkkXkAAAAASUVORK5CYII=", "video" => "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", "audio" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAl2cEFnAAAAGAAAABgAeEylpgAAAxxJREFUSMftlU1oXFUUx3/n3vfezMtXP/JR/KofqWAUXClkkRZpzaIqutCViht3bhQVStBFwIUbty5Ed7pxoQt3GqQgaqUYKBaqJbaNaUUTJjOTmcy8mffuvcdFRh1KMBPciQcO53L53/M7517uvfC//edNBhGdfvPQ2aD6oKIGMKoYQHZi6BsjoCKIM87c98U7W9eiQQCF97OvP7tQHh85ynB5gqH4AKV4jMSWEbEELchdm65r0M6rvPXRy52NyuYkMBgAYDQ9hLEBEY8xQmRjyvEYSTRMt2juQLyhnIxBUA24ADAwoLK9QloaYSu7QWKHiKMUIwkAPjgKl+FDh0BO12UYZX8ARHjvk/fb9e1mWVUFEBECSABUjPjYWnn1uVdKIISd+X0AgGbWTkSjw8fTWnNxcafCfjt5ZkRVFSMW2+vADJxdFUE0TWvFbsn/lnnA4BPZH0BRRESbTP7jmqAeg4h4dH8ADRgxmuL3BKiI7HuLgnpAyOphD4CDoOL3OuRTC6PjAF++3az+BRC0JHsDVNBIdwE8eiY9GifpB4Xzc0Yw5dKwzi+YOI5ij3gMaNuoOb14eKzoFi/FUfxC4YppY2xhhFywhaqPFc+uHdi49M0Dx+65Zf6hJ+3dE7O40KGVV/mtftHmoYEPjkTUBKcfz9w1c/Lp4y8md0zeT+7aSSNbH/69cRGlg3deot0umvd+6tidt9ut7io/rlfwIafwGYXL+Xr5h0xVrwcbdyM186dm52w1v0Dl+jKKR8RgTcxPV3/WViezTkMTwPYDpk+Usitrv86NDqdxp2hRbdS4dOVq8dX3F7JKrb60cr7++PKHnWz6ROmJxnbj4NTByTgEod0pWPllLZw9f651efXaam29+9S377bWAN//XAuQPvz80Guj48kzEnOrKL6+4c41N9xnlz/vLAEe4MhMMn7vI8kb6YHoMVUMnmJrw13aXM2XbnyXf5rnVIE2ULsZkAATwG296IE6sAnkfToLDAFHgCmgBDSBjZ62CbSA6s0fjul53HN6EN+X/M9oegWVekDt6XLA9WJnoEv2b+wPYSaLU22dSJ8AAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMDUtMDdUMjI6NTc6MDEtMDQ6MDAC3CDyAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAxLTExVDA5OjEzOjIxLTA3OjAwhqU8AwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMC0wMS0xMVQwOToxMzoyMS0wNzowMPf4hL8AAAA0dEVYdExpY2Vuc2UAaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvR1BMLzIuMC9sagaoAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5LTA1LTA3VDIyOjU2OjI5LTA0OjAww2V04gAAABN0RVh0U291cmNlAEdOT01FLUNvbG9yc6qZROIAAAAxdEVYdFNvdXJjZV9VUkwAaHR0cDovL2NvZGUuZ29vZ2xlLmNvbS9wL2dub21lLWNvbG9ycy9QHbXrAAAAAElFTkSuQmCC", "compressed" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3XAAAN1wFCKJt4AAAACXZwQWcAAAAYAAAAGAB4TKWmAAADrElEQVRIx7WWXYhVVRTHf2vvfc791BnHq404FaWmPpihZZMTmhSIU0IfD4qJL0G9BQX1EkE+RxDpi0EvQ0L4kH2AJkUPRWEU9ZBl5ReR44Bf43jv3Llzz9l79XDPODed9DbQgs1ZnI//76y1/rC3qCr/Z7jZfLR3V+47lyvflzSufp1OpltfOqAT//aumQ1AbG7djtc+iVfev/nhKHaf7xmU3Kwr2LNdlnixG12+uL7ZrH/48v70kBiHyxW5d+DJXEiba3//6cvD774gm5/fp8ktAbt3i+n+w+50cfFpDWFDacGd+aX926R3WX/+yN5ntwNlAGMd1VNfsHrjtvxk42r/md9++Ah4/JaAypnSL8vWP7Fi+YPPMP+O1cTlCj4oNi7h08nS2zusGhchNsbFOaonPmPV2k2FC+dOD76zqzj04lB9101nkCSNFQNPvUJPpZe0do7ayDEmrgxD8AA89uo3zF90D7XLZ5nbtw5rhWT0FMuWLseEZOeth6yKrw7TuHictDpCSGqQ1kFbgDB2klUbtvPtwTdxcxaR7+7DimdBzxzSEKQjFyVjf0I6AZpijSWKC4S0gYhh7NeDFMaPUzt/gkNDbyD5CrnyApyLOneRaEKYHKc2dplG8yTj9TpnT/9MvmcJ8xavZP7Cbh7oWsrRrw7z8ftvsenRQQrlSmeAcnkOAhz59APGLv5FsCUaPiKhSG/fXaTVEdJ8lbTaoKtyOxdH6xz9/ke2bNnaGaBWq9JsNnhkYA3CGhCLLd2GK/fiSgtxxQq20EPZxixujDEwfoGkOoJv1kA6ALR6ZAjeIwhiIB2/QDoxCpdOImJRETQoqCf4JiFt4nJzQTsFYEmbddSnhJCiwROm8uwavEdDeu1+vufuzoesQPAJ6n0GaAmp+gwWCCGFDK4hYGzcKl7EqGqY0aYiknVRQAQxBmMsYhzGxRgbY1yMi2JclMfFRVyuSJQrEBW7p2SiaZ22CrKbJssxYsEIQQzWWDQE1Ho0KKoBEwKoRzUQQiAuXAPkgSRrxA0tilozNoiNEA1AQBRUFUVBW0s10NqsWnlc7GkH1GaagWQPAcEYASxG7bT7hGmnyD89GRW7ptIcbYa9oQIR8T6ZsKW+h0AEVb0OMD2m9sQndUTEA/ZmLgrna+69A/tef05VLf8lRMLwFbsf/ERbncjUpp8NOQbmAd1ZqSb7xfY1UygwCYwCl4CGZsLSfqrIIC5b5iaCM0Wg5Z5U20Tl+mNLu4dnE3qd4N8b9Ka8rSrEfwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMC0wMi0wOFQxMzoyNDo1Mi0wNzowMJhtlpsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTAtMDEtMTFUMDk6MTM6MjEtMDc6MDD3+IS/AAAANHRFWHRMaWNlbnNlAGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL0dQTC8yLjAvbGoGqAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATdEVYdFNvdXJjZQBHTk9NRS1Db2xvcnOqmUTiAAAAMXRFWHRTb3VyY2VfVVJMAGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nbm9tZS1jb2xvcnMvUB216wAAAABJRU5ErkJggg==", "cdimage" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAANkE3LLaAgAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAAl2cEFnAAAAGAAAABgAeEylpgAAA99JREFUSMeVlc2uFEUUx3/12d0z03fugIiIuGLhQ/gEJO5N3JC4daHxOXTlTp+AlTu2vAFrDSEQCGPM3Av0fHR3ddUpF8OMd2Cuwkk6lU6fqt85/3NOtQJ4/vz5l6enp79aa7/gPSznzDAM66ZpflksFj9fv3797xs3bhz1tQDDMEyMMWPn3Pucj4iQUhobY76pqur86dOnvz18+PB8Pp9z586dA18NkFJSOef3OvwCAO/9Z3VdfzeZTO42TXNy+/btd3z1LuUPNRFBa81sNrs1m81+nM1m37548WL24MGDdwEi8sGAnDMxRowxTKfTT6fT6Q91Xd8NIczu379/CLjM1D7aTEpCSkLOGa011lpCCCwWC5qmAbjlvf++KIqvz87Oyt0ZdhfNMZk2Xc9yuaEPw5vvCq0VZeGpSsd4PCaEwDAMaK2p6/pzEfnq/Pz8d2C+B4jIASClxOK8oVmuKQrPZFThnAUyXT+w2nS8btZMTyqqssJ7T0oJESHGWLqt82EGu1VEmP91xqvlhk8+vsqVWY01/yo5BWJMNMsNr14vAcVJPSLnTEqJrutQSnGpROcvl5y9XvHR1RlFWSBHpLPWcGVWUxSOxdmrbZbjChHh7Vk6yKAPA4uXDd57lFa0XU/OAqWHLCilMNailEIB41FJ349ZrVvKwqGU2qtwJANhtWppu8BoPGIIkWxBUiJ0HUZrtFb4wlNVJUopRDLWGvow0PWBwrvLASKZtuuRDFmEJIKWRE6CcRbZN0PAaI3znrbrWW06whDp+4B3lpQSKaXjNUgioOCi6sYYtDYUhdt2SRLatqcfEqt1y2q9YRgiInkf/aUAqzXWmK3WWuOdxRmNNRqRBCgkJTbtAEqx2nSsN+2FgZTjgN0cOG8pvMU5g/OWsiwovSPnxBACMUbaLtDHSBgi63VL2wfqUYm1et+qMcZjNRC81ZTe4rxnVBZUpcc7QxaDArROlAKrlz3L1YZN26G1Yjwq3mQpxwE7iDFbgHWGcVXgnQUF2iiqqiSlTDck+n5gvWnJOTOtJ5xMqr1EbwP0Re0gU3iLpEiMkSSyLd5O4yyEMNCHQAam9ZhrV04oCndQ4KMS7VatFdYoVqsVIRQURYH3FqP1PpCycIxLz+nJiFFVoC524mVtuit0zhmlQOVM37WE0GOtxVpDTIIic3U6wVmNcwbI7G6TSzN4M3kHfzelwBhFzkIcAnHYbnAGlDVc2HdwC8cY1TuAx48fN1rrJ1VVkbd2MPK79/95VEopz+fzJ8+ePesPAPfu3fvj5s2bP1VVdQ3IF+X6L8DbAYhIbprmz0ePHr3eAf4BS8zt+2hvfX0AAAAldEVYdGRhdGU6Y3JlYXRlADIwMTAtMDItMjNUMTg6MTQ6MjAtMDc6MDD1++xzAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDEwLTAyLTIzVDE4OjE0OjIwLTA3OjAwhKZUzwAAADV0RVh0TGljZW5zZQBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9MR1BMLzIuMS87wbQYAAAAFHRFWHRTb3VyY2UAQ3J5c3RhbCBDbGVhcvXi56gAAAA6dEVYdFNvdXJjZV9VUkwAaHR0cDovL2NvbW1vbnMud2lraW1lZGlhLm9yZy93aWtpL0NyeXN0YWxfQ2xlYXKvvkVjAAAAAElFTkSuQmCC", "executable" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3WAAAN1gGQb3mcAAAACXZwQWcAAAAYAAAAGAB4TKWmAAADsElEQVRIx9WVy28bVRTGv3vnjmfs+FmqxM+4cQtNSYKitKUEUaUSpGklBIuKVXe0gQVteS3gT2ADElt2ECGVZcWrFRJCIm2UkFTK063r1E79jBN74tiZiV8zLDJuTYhTIyQkjnR171zN/L7vnPsY4P8epNUXXzz3qQtAUn90T938LNXKd/SfwK+Mnt144/WTMoCkPvfvBerw994elrrcXvvQ8T7T+ZGBlkVoK/Arl4algM/nCMZXsRRL4/f5uOn06eeLrYjQp8GvXh6Wurw+RyiZAaMUPONw9a0zmA2vm18ePPpUEbof/Nrls9Ihj8+xnF4H4zgwjoJxHH6dCUHgeSyntsyvnunbV4Q2g78/OiL5PV5HNJMDoxSMUnDcTn/upWMQeAaBZzBb7eZro+eVZiJ0L/gH74xInW6PI7a+8dh1vaeE4LubMxjsD+DYYRdKlSq8zg7ja0N9hb1E6G74h++OSD6Xx5HM5XeguvO6+w67GQ6rCZqq4USPH85nbLj+0zSkombp7+nM7xZpzCB58c2BvNfpcaxuFHZcU/qkpztZ/DIehOugDe0HLNCqKoKhFATGIPI8zNaDNn+7QcGTAwnWIOD+9sbdZJWIpd7ugMBRArlUBSEAQGAycIgmcqjWVJzs7cRWqYLbf4QhGhgoIaCEYDUZ0VYyZSO06qk6lKsPEuHxoufIK18t3ot9ks3l5IDfy4ciGficdqzEsqhWVczfT8LAGKwWIzQVWF0rgOc48ByHTDqqzYXWCNHKXVO3Pl+sc/92F9XXovc5pzx4asC0vLIOAoBSAqNowOCJACghmF2Mo1DcBiUEqcRDbWohQYhW7pq89UV0322qX2LuhVDaNDU5LXcHOh5vSaga7oXSYJRCraoQeYZMKtIU3vSg1UVmQxnT5MSk/Oyhdog8jzZRgM/lAOM4mE0iMsmINjEXbwr/yxrsjkR4XG6zucYkRfi4JmeV/he6+WqlBqvFBItZRHBpQfv5zgOSS84dn7/zTRyABkBtVcAC4EA2tWQoKfkbCue5VNta2+7tOco0FXgUCWPs+xkSXfjxQuzBbQmAEYCg82qNQnsJtAGwArADcMiFjLiZe/RbSTh8oVJIlStlhRv74S7uT1//KJcOFXQwayi3CmB7PwGmOzLpzVJW8oJSzIYU3j8UjKxhaeLrLwtSfFMvSw1AGUBJByv6eO9tqoegZ1BvNr1sbQB43aUMoABgE8BGQys2glr5J9ezEQEY9FJoACq6UxnAlj7338efIoWKYDKL1gkAAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMTEtMTVUMjM6MDQ6MjUtMDc6MDBt/LoyAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAxLTExVDA5OjEwOjE5LTA3OjAw0PLOhAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMC0wMS0xMVQwOToxMDoxOS0wNzowMKGvdjgAAAA0dEVYdExpY2Vuc2UAaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvR1BMLzIuMC9sagaoAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5LTExLTE1VDIzOjA0OjI1LTA3OjAwMk3MBgAAABd0RVh0U291cmNlAEdOT01FIEljb24gVGhlbWXB+SZpAAAAIHRFWHRTb3VyY2VfVVJMAGh0dHA6Ly9hcnQuZ25vbWUub3JnLzLkkXkAAAAASUVORK5CYII=", "subtitle" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAABGdBTUEAANkE3LLaAgAAAAJiS0dEAACqjSMyAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAYAAAAGAB4TKWmAAACTElEQVQ4y23TS29bRRgG4OccO76kpY2Jy6UQLmIBAcIKsUAgUQmVFWLLZYPEFiQQf4IfgQSsWcEf6IKqJc2CBgqOwCQhtJKbtG6TNsWOz5lh4eMb5ft2M/POe/lm8NdrB6178f4+jLfubn5x4aFN01UmO14+VnF/5bJj6Qfz3c0vz3everdYTcmT6P8qyNQeX/j45Ie3TyyPV1P+ezwpmqCkudT8fPGjncb3E0lhBhJ1dCVSj4kyD1g8Pfgsc/3r7269MwTMMvSck2r42VnPOHRdFJcqn9Z721/pkRJm5HS01VX1XFFyQklQcvKJxbcbDSOGCUfwmzu2DAQbbmsqGcjlQq1angLEIoE71h1queeUm9oeUTMnyPUlo5SmTW/bsGvOsj03rOkrqaiqGU0qnWbIXLZl11POONJ1ScdoP8ongCDIRV2rrhl43nNO6/rVZUGQyYUinELSsP9wyQ2Lnlbzor4d5+zLBVEoGKZMH1nzp390fKNuy6G7ftT2UiFoDAgF3U3nHYjW/UKhuW3NslSQy6ZN54KWn0R1DQsaGhaU7fvBXiEom0ga5nxBR8Vb3jCv5Miub12xbkNTkBnMeui4qOdRbzqjLBEc2LHhbxe9rDQGpCMPLW1znrXiuIo5VU2velhuVUeclURuwXsGVjypOp77Kz6xpzFjujzMI7XiBaRKRXwkHvS+KJHKpz0E0iiVGgYw/EaT30eUGSRjQPsg3a6LMY5nPpn98GHGZBCvbV/tD69wtrn0+vypGGePT0BRFOL+71urrT7/AkHnQc6pFAmEAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAyLTIzVDE4OjE0OjIwLTA3OjAw9fvscwAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMC0wMi0yM1QxODoxNDoyMC0wNzowMISmVM8AAAA1dEVYdExpY2Vuc2UAaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvTEdQTC8yLjEvO8G0GAAAABR0RVh0U291cmNlAENyeXN0YWwgQ2xlYXL14ueoAAAAOnRFWHRTb3VyY2VfVVJMAGh0dHA6Ly9jb21tb25zLndpa2ltZWRpYS5vcmcvd2lraS9DcnlzdGFsX0NsZWFyr75FYwAAAABJRU5ErkJggg==", "installer" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3XAAAN1wFCKJt4AAAACXZwQWcAAAAYAAAAGAB4TKWmAAADrElEQVRIx7WWXYhVVRTHf2vvfc791BnHq404FaWmPpihZZMTmhSIU0IfD4qJL0G9BQX1EkE+RxDpi0EvQ0L4kH2AJkUPRWEU9ZBl5ReR44Bf43jv3Llzz9l79XDPODed9DbQgs1ZnI//76y1/rC3qCr/Z7jZfLR3V+47lyvflzSufp1OpltfOqAT//aumQ1AbG7djtc+iVfev/nhKHaf7xmU3Kwr2LNdlnixG12+uL7ZrH/48v70kBiHyxW5d+DJXEiba3//6cvD774gm5/fp8ktAbt3i+n+w+50cfFpDWFDacGd+aX926R3WX/+yN5ntwNlAGMd1VNfsHrjtvxk42r/md9++Ah4/JaAypnSL8vWP7Fi+YPPMP+O1cTlCj4oNi7h08nS2zusGhchNsbFOaonPmPV2k2FC+dOD76zqzj04lB9101nkCSNFQNPvUJPpZe0do7ayDEmrgxD8AA89uo3zF90D7XLZ5nbtw5rhWT0FMuWLseEZOeth6yKrw7TuHictDpCSGqQ1kFbgDB2klUbtvPtwTdxcxaR7+7DimdBzxzSEKQjFyVjf0I6AZpijSWKC4S0gYhh7NeDFMaPUzt/gkNDbyD5CrnyApyLOneRaEKYHKc2dplG8yTj9TpnT/9MvmcJ8xavZP7Cbh7oWsrRrw7z8ftvsenRQQrlSmeAcnkOAhz59APGLv5FsCUaPiKhSG/fXaTVEdJ8lbTaoKtyOxdH6xz9/ke2bNnaGaBWq9JsNnhkYA3CGhCLLd2GK/fiSgtxxQq20EPZxixujDEwfoGkOoJv1kA6ALR6ZAjeIwhiIB2/QDoxCpdOImJRETQoqCf4JiFt4nJzQTsFYEmbddSnhJCiwROm8uwavEdDeu1+vufuzoesQPAJ6n0GaAmp+gwWCCGFDK4hYGzcKl7EqGqY0aYiknVRQAQxBmMsYhzGxRgbY1yMi2JclMfFRVyuSJQrEBW7p2SiaZ22CrKbJssxYsEIQQzWWDQE1Ho0KKoBEwKoRzUQQiAuXAPkgSRrxA0tilozNoiNEA1AQBRUFUVBW0s10NqsWnlc7GkH1GaagWQPAcEYASxG7bT7hGmnyD89GRW7ptIcbYa9oQIR8T6ZsKW+h0AEVb0OMD2m9sQndUTEA/ZmLgrna+69A/tef05VLf8lRMLwFbsf/ERbncjUpp8NOQbmAd1ZqSb7xfY1UygwCYwCl4CGZsLSfqrIIC5b5iaCM0Wg5Z5U20Tl+mNLu4dnE3qd4N8b9Ka8rSrEfwAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMC0wMi0wOFQxMzoyNDo1Mi0wNzowMJhtlpsAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTAtMDEtMTFUMDk6MTM6MjEtMDc6MDD3+IS/AAAANHRFWHRMaWNlbnNlAGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL0dQTC8yLjAvbGoGqAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAATdEVYdFNvdXJjZQBHTk9NRS1Db2xvcnOqmUTiAAAAMXRFWHRTb3VyY2VfVVJMAGh0dHA6Ly9jb2RlLmdvb2dsZS5jb20vcC9nbm9tZS1jb2xvcnMvUB216wAAAABJRU5ErkJggg==", "appext" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAQAAABKfvVzAAAABGdBTUEAANkE3LLaAgAAAAJiS0dEAACqjSMyAAAACXBIWXMAAABIAAAASABGyWs+AAAACXZwQWcAAAAYAAAAGAB4TKWmAAACL0lEQVQ4y2XSS24jRRzH8U+Vux07jh2HOIMICWLLHWDLjj0Sm5HYsgBxCQ6BxB04A0LiBCMhlAloGGXIJE6ch1/dVSzc2A5TvWhVq779e/wLf346efGY330e8vj+7Idfn53ZXgXVXtFre3fVql78avf67Mdfrl/5svkaqUNuNpVLY9nSrVpS6ZwMv9l/fjP4ZP2bSF5vpv7xRmXmtQWSltHp6PvDr/86+HkDpDXStmegpaWQBFmlcHh8+N3w+bxBipXCVLJrx4eCKOqLgoUrU9H01Le7s/OfzNaWxi4kFFqYuHSrNnZvoXaj/Gj0xcFBo5BkhbCVJSpFURcDLXtKRadTrC0lXdEm/kC0p2Wk0pN8LLnbzCGrXXu0oy8jWBjr4d7SQKGtNv9/S0FuFLJkZtG8k9WJrN4oBEcqHbVaFBXe05J0BUk2FyTJVugdbVRe6zswd2OgcmGqreOlfbEBIlluRJNHj7Klt2YqE3emkjv36m1LSbViDZVqpSNEx+Z6+EBprtq2dGnhWO3OQNJ2IqvtN2X0BQ+WG4Vs4tah7FLdlLsqg2zuQmn51FJXLWFfqRIaAILKTP00Q62SLZr7WVuY6Os2WOl9wdtmdAVZ5cqDgeBSYejKhSMnjVLQk6RNhiToaykFA6WoUCqb3ldIrXoCxGeSiFMEQz1FA+QGWIY18Mcknnfl/N/4NoPMzT3LYZn/Pn81X6n5fHT62e5RzunJ4Q2cZSnf/v7ytxdz/gUmPCzciAyRsQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMC0wMi0yM1QxODoxNDoyMC0wNzowMPX77HMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTAtMDItMjNUMTg6MTQ6MjAtMDc6MDCEplTPAAAANXRFWHRMaWNlbnNlAGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL0xHUEwvMi4xLzvBtBgAAAAUdEVYdFNvdXJjZQBDcnlzdGFsIENsZWFy9eLnqAAAADp0RVh0U291cmNlX1VSTABodHRwOi8vY29tbW9ucy53aWtpbWVkaWEub3JnL3dpa2kvQ3J5c3RhbF9DbGVhcq++RWMAAAAASUVORK5CYII=", "text" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3WAAAN1gGQb3mcAAAACXZwQWcAAAAYAAAAGAB4TKWmAAADMklEQVRIx7WVzW4bVRTHf2dsxzb1CiUF27OgXytEqlCBirpgBQsWLUFCqqBQQOIReIA+AE9QaIHi8iXa8ABZsEGs2JQmhTZSW5PxoqRuSByPOzPnsJg7/kpsghBXM3Pn3pk5v3PO/5478D83GR58/V3jUC7nfZzEyWmDXDpr2YGI7Hgia2b2S6L6I1jj7bPnH+8b8O33V6+dWHhh8dAzRxCRXS8nSUJnZ5tOZ5sHfz7o3bx5Y1NVPzL48p233tN/BFz95ov47Jvncu3NDeI4xsxQVdQUU0VEyOcLFAoFkkg5UKnw2++r4crqr/c00VPvnvtgYxzgDQ9ULSciRFGUGlbFTFOQGXESs9Pt8GizTTO4x61bqywcP1F66cVTx8Tzlj+78ml5HJAfHpiZAynrwTrdbhczwwxMFTBEhJlikVzO4+HDNgCHDx/12puPnl1ZuXH98ucXX3v//Ic6AZDOqynVp6uApQD3zMwwtf791l9b/W8Xjj+fb7fbL99v3j0J/LQ3QC0jsb4eEIahg4AZYIo5aKFQYGurwyeXLhJHEWdOL+LX/GLzj7uvTASoS5GZUa1V+zBzffYsg8zOzTK78STN+02uL11j8fU3xBPvDHBhqgYYBK0WYdgFE5DUINZ/0a1BoVQqMT8/z0xxBlUliqLnJovsUmQYtVrVVZelqzkzOry6hQEUo16vk6jmJwOcyIjQClqEYUhab5JN74ZgVA5UOPjUwVEdp2mQ8zx8309NiPT7cdMD3/dI87QUeeKlGnR7ICDphT0DAErFMvV6bTQL00T2+hFIf08a78db5rhOjcDRRTyCoEWvFzqDkqngPJchBaBcLg0i2I8GIoLv1xGRwZlF4+5HCK4u9q2BiBAEAb2w1zeY2hZEPESEcrmM7/turzK3nPepAUC9Xh/1eiwaJN2z0p+R9UXQaSkCS8zSLdvMsiJGyIpNMOmrMfjKqeIcTCYBio+jaPnO2u1Xjx45NnG1TGpmxp2128RxvAwUgd4wwAPmGle+aux0upVK5YmTZoOfkWEj1TQqZLrbiohub3d+Xlr6oQHMAQGgw24WgRpQ+Feu726RM977j3b21/4GPBfM1+Kggw4AAAAldEVYdGNyZWF0ZS1kYXRlADIwMDktMTEtMTVUMjM6MDQ6MjUtMDc6MDBt/LoyAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDEwLTAxLTExVDA5OjEwOjE5LTA3OjAw0PLOhAAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxMC0wMS0xMVQwOToxMDoxOS0wNzowMKGvdjgAAAA0dEVYdExpY2Vuc2UAaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbGljZW5zZXMvR1BMLzIuMC9sagaoAAAAJXRFWHRtb2RpZnktZGF0ZQAyMDA5LTExLTE1VDIzOjA0OjI1LTA3OjAwMk3MBgAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAAXdEVYdFNvdXJjZQBHTk9NRSBJY29uIFRoZW1lwfkmaQAAACB0RVh0U291cmNlX1VSTABodHRwOi8vYXJ0Lmdub21lLm9yZy8y5JF5AAAAAElFTkSuQmCC", "folder" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABHNCSVQICAgIfAhkiAAAAk1JREFUSIntlb1rFEEYh5+Z3b27fCcXjWCn5IoUClqphfpH2ImgYJPCwkrBkAQTENGTaCVBsNTG2sbGQq3SqKWEILkYvNxH7rLn7s7OjIWE5G4vOS8KNj7VwL7ze3benZmF/3RAbA9uT1296Ej3Vax1trXI9dyNKIwvPbj3/G23And74HnpxSuXJ7PDQ4cTRaXy2qEXL589BSYOLIgidXxoMMva9yWMiXcKHI+x0ZOEkcp1G94kAOsI4aCUairQOkJKl1Qq7dy6c83uFyaEVK505ubvLs61EYAQAhWZxMTqZoEbk1MIKRLPmrDWyz+engb2FoSRTswrrC9TWF/ePxw4MXEBa01TZotAUqtv8fnjJ2IVQac3buH9uw94KY+pmesVpJyfn1nMu80lgpXlFc6eOc/pU+ewNrmaTggh0bEezi/M3gfyLSuAIAg4MnYU368ShI2uBZ7rkfL6AHxo9w3CiJ6eflQcYoxql9FJgd+o40i53lYQRQGZdIZGsNF0Hn4XIaBWqwLia0JgjEFKieu6qDjAmn23/Z7UamW0Nl8Sglq9wuBAllgrtD5Ie351oVQtK6PjlYSgt7efXC6H1iFaRwcSgEOlXIqMkKsJQV9vP+Pjx1AqwNju+2+tRQiXjVIRa2yTYADAGEsqlSbWIdYmr4xOSOlhjGWzuplaLXyr7BaMCCHiOPZd18ngeX30ZEa7FgjhYLRG69h783qpsVtAYyt48nBh9qaUorv7oQVjbOj7Px4Vi8UIdv5oA8AIIP8kfLcHqAD1v5T3D/kJir30caSVdCgAAAAASUVORK5CYII=", "file" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3WAAAN1gGQb3mcAAAACXZwQWcAAAAYAAAAGAB4TKWmAAAC0UlEQVRIx7WUTU9TQRSG3zNtKZQqLoQEKJHPREMMQaLBsHClS40LE6L4Ef+DP8O9kRg/oOBHBPwBLNy5cqMICiyICQlBApi2CPfec1zMTO9w6a01xmknc+e2eZ9z5j1ngP88yN28fJPvSiTUw8APrgqQ0G/FfkFEJUW0KiIfA+b3gORvjd49qBnw+u3UzNDg+etdnT0goiN/DoIAxVIBxWIBmz829xcWPu0y8wMBJm/fvMd/BEy9euGP3hhLbO9uwfd9iAiYGSwMYQYRIZlMIZVKIfAYjdksvn5b/PVl8fMaBzxyZ+z+VhSg3A2zJIgInudpYWaIsAaJwA98lPaK2Nndxvf1NSwtLWJwYKj+4oWRPlJq/tnEk4aqABExIB21nSICmN/syDRmsPNzGwDQ3d2rzpzu71dEs0+fj6sqAH2M+kiMqNUluxAIQF0yBeHw2AcHziVbW3OXWGQ4HsBiSRAzdQkJIGRKCQARAEIyVYf89CQejz/CxsYGcm25NBEux3tgjkFEoD9uEgIiHT8RgRShpeUkTnV24NjxLGbnZtDUdIIUqWuuZrKSB+VIzQORhplmAAlARMg0ZJDJZdCR68CBdwBmhud5Z+MBbGM1BCGADMT4oFcV+mJiqk/Xo729HQFzMh5gTAZZQTINp5UP957dHK6uso+VANaDhFJO1OEalUYFhEgVgKUrUkbYRO6ulSjiArgKwNCVCgH2Toqu0WED56oZGDqR0qXoeEBOJm4uoZzU7oErXp42G+foQl0pZ1+TB3HieionM4QdTxZQgwdR84QiL8X2CsLn8kVZJQNAAhF9ZYtIuc/IaTyxZkfiIJANMIgDpA88b35ldflKb09fbLXEDRHByuoyfN+fB5AGsO8CFIDm/MR0vlTcy2azmWGR8CIUSKTWD7UWRN9NXCgUP8zNvcsDaAawDoDdMNMA2gCk/ir0o8Mz4vv/qFPb+A0FdoALrAKQWQAAACV0RVh0Y3JlYXRlLWRhdGUAMjAwOS0xMS0xNVQyMzowNDoyNS0wNzowMG38ujIAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTAtMDEtMTFUMDk6MTA6MTgtMDc6MDB2hcUwAAAAJXRFWHRkYXRlOm1vZGlmeQAyMDEwLTAxLTExVDA5OjEwOjE4LTA3OjAwB9h9jAAAADR0RVh0TGljZW5zZQBodHRwOi8vY3JlYXRpdmVjb21tb25zLm9yZy9saWNlbnNlcy9HUEwvMi4wL2xqBqgAAAAldEVYdG1vZGlmeS1kYXRlADIwMDktMTEtMTVUMjM6MDQ6MjUtMDc6MDAyTcwGAAAAGXRFWHRTb2Z0d2FyZQB3d3cuaW5rc2NhcGUub3Jnm+48GgAAABd0RVh0U291cmNlAEdOT01FIEljb24gVGhlbWXB+SZpAAAAIHRFWHRTb3VyY2VfVVJMAGh0dHA6Ly9hcnQuZ25vbWUub3JnLzLkkXkAAAAASUVORK5CYII=", "python" => "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", "javascript" => "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", "script" => "iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAYAAADgdz34AAAABGdBTUEAANkE3LLaAgAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAAl2cEFnAAAAGAAAABgAeEylpgAAA3hJREFUSMeVVbtu40YUPfMQX5JWDyqAEUix4SKw4cJFim3yC2kNA2kCpE2RIL3/IKnSZYH0bhY20i2Qyp+wgLCGI9MGZVuLXVmSRZnkzHBSrIcQLXljDXBBkJi5Z86591wSALi4uPi20Wj8yTnfwjOW1hppmka3t7d/3Nzc/L62tvZ+c3Nz6V4OAFLKCue8bFnWc/JDKQUpZZlS+r3necNer/fq5ORkGIYh9vf3FwGUUkRr/azkAJBlGaSUcBynXa/XfxJCyMFg8Gp7e3vyeC81lFddWZaBMYZWq9VptVq/+r7/4+XlZeP4+HgRIMuylUAIIdBaQwgBzjl83//S9/1f6vX6D2maNo6OjooSrcqAUgrOOaIowmAwgNYaWuuOZVk/u64bB0HwF4C4wGCVRQiB4zioVqtgjOVy1Wq1r3zf/67RaDQWGKwqUalUgud54JxDCAGlFJRSyLLMsW2bLwV46G8IIZ4NppQCADiOAwBIkgSEkGINTJHjOMZwOESpVAKltLDxqZVlGZIkAaUUvu/jsZcKDKbTKQghGI1GCPt9VMrlpSCEEBBCIKUEAKyvr2MymaBSqRRYFQCMeQghOD09xb9BANdxcH11hVkUFWpkAIQQqFQq2NvbA2MMQog811KJzGGpFFIh8M3Llyi/eIG/X79GFEUFAHNuY2MD0+kUnuflt1/KwASlFFJKjCcTdLtddN++RRAEiOMYZu98gS3LQhRFeZEf5tRyiYBPJhJpin/evMHtcIgkSfD11hbatRquwhAXvR6klNBaI0kSNJvNgjRLGWRZlocp3rtuF7PZDJVqFR8/fMD9/T0mo1HexkIIJEmSe2AeYL7NCxIZFoQQ2Lb9yVCcY3B9DcZY3u+MMVBKoZTKnyaHlPJpiYy+lFJYlgVKKVzXhW3bYIzlCUzfzwOY20spFxmY5CZqtRp2dnagtYbjOAUAI00cx7i7u0O73QYhJM/xZJENiziOsbu7i4ODg1yyeZ+YSNM0Hwue5+UyfRYAAMIwBGMs13yevmljxhhs20apVIJSCrPZDOUH139OIup5HprNJsbjcX4LM5PMWDYXmfeDZVlotVpmWJIFgLOzswmlNHBdF1przRjL/1rzMj02pQkhBKIoIkII3e/3gzAMkwLA4eHhu06n85vneV9orfXjov/f+9x3PR6PT8/Pz8cG4D+xu+SRhHTxZQAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAxMC0wMi0yM1QxODoxNDoyMC0wNzowMPX77HMAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMTAtMDItMjNUMTg6MTQ6MjAtMDc6MDCEplTPAAAANXRFWHRMaWNlbnNlAGh0dHA6Ly9jcmVhdGl2ZWNvbW1vbnMub3JnL2xpY2Vuc2VzL0xHUEwvMi4xLzvBtBgAAAAUdEVYdFNvdXJjZQBDcnlzdGFsIENsZWFy9eLnqAAAADp0RVh0U291cmNlX1VSTABodHRwOi8vY29tbW9ucy53aWtpbWVkaWEub3JnL3dpa2kvQ3J5c3RhbF9DbGVhcq++RWMAAAAASUVORK5CYII=", /* "html" => "iAmAbAsE64ENCodEDPng", */ ); /* End of settings */ $GLOBALS["requestPath"] = explode('?', $_SERVER['REQUEST_URI'], 2)[0]; /* Fake APC function, 10x slower than APC. */ if (!function_exists("apc_exists") AND !function_exists("apc_store") AND !function_exists("apc_fetch")) { $fakeAPC = array(); function apc_exists($key) { global $fakeAPC; return array_key_exists($key, $fakeAPC); } function apc_store($key, $val, $ttl) { global $fakeAPC; $fakeAPC[$key] = $val; return True; } function apc_fetch($key) { global $fakeAPC; return $fakeAPC[$key]; } } function currentDir() { foreach ($_GET as $key => $val) { $key = base64_decode(preg_replace("/\_/", "+", $key)); while (!is_dir("./".$key) or isBadDir($key)) { $key = dirname($key); if ($key == "." or empty($key)) { /* prevent infinite loop */ return "./"; } } /* "./path/to////a//folder/" -> "./path/to/a/folder/" */ return preg_replace("/\/+/", "/", $key."/"); } return "./"; } function parentDirLink() { $parentDir = dirname($GLOBALS["currentDir"]); if ($GLOBALS["currentDir"] == "./") { return "Index of ".$GLOBALS["requestPath"].substr($GLOBALS["currentDir"], 2).""; } return "Index of ".$GLOBALS["requestPath"].substr($GLOBALS["currentDir"], 2).""; } function isBadDir($dir) { /* Unreliable trick to prevent parent directory of this index page from being listed. It can be bypassed easily I think?*/ if (empty($dir)) { return True; } elseif (strpos($dir, "../") !== false) { return True; } else { $tree = explode("/", $dir); $len = count($tree); if (empty($tree[$len-1])) { if ($tree[$len-2] == "." or $tree[$len-2] == "..") { return True; } } else { if ($tree[$len-1] == "." or $tree[$len-1] == "..") { return True; } } return False; } } function getURL($file) { global $settings; if (!apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_File_".base64_encode($file))) { $href = $GLOBALS["currentDir"].$file; $iconImg = ""; if (!is_file($href)) { if ($settings["icons"]) { $iconImg = ""; } $url = "".$iconImg." ".$file.""; } else { $href = str_replace("./", "", $href); if ($settings["icons"]) { $iconImg = ""; } $href = rawurlencode($href); $href = str_replace("%2F", "/", $href); $url = "$iconImg $file"; } apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_File_".base64_encode($file), $url, $settings["contentTTL"]); } else { $url = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_File_".base64_encode($file)); } return $url; } function getContent($dir) { global $settings; if (!apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_Content_".base64_encode($dir))) { $files = array(); if ($handle = opendir($dir)) { while (false !== ($file = readdir($handle))) { //scan the folder if ($settings["displayDot"]) { if ($file != "." AND $file != "..") { $files[] = $file; } } else { if (substr($file, 0, 1) != ".") { $files[] = $file; } } } closedir($handle); } apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_Content_".base64_encode($dir), $files, $settings["contentTTL"]); } else { $files = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_Content_".base64_encode($dir)); } return $files; } function getMimeType($file) { if (!apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_MimeType_".base64_encode($file))) { global $mimeTypes, $settings; if (!is_file($file)) { $mime = "folder"; } else { foreach ($mimeTypes as $key => $val) { $fileExt = pathinfo($file, PATHINFO_EXTENSION); if (in_array(strtolower($fileExt), $val)) { $mime = $key; break; } } if (!isset($mime)) { $mime = "file"; } } apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_MimeType_".base64_encode($file), $mime, $settings["contentTTL"]); } else { $mime = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_MimeType_".base64_encode($file)); } return $mime; } function hasIndex($dir) { /* If a directory contains index such as index.html, return the real path */ global $settings; if (!apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_hasIndex_".base64_encode($dir))) { $hasIndex = False; foreach (getContent($dir) as $childFile) { if (in_array($childFile, $settings["indexFiles"])) { $hasIndex = True; break; } } apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_hasIndex_".base64_encode($dir), $hasIndex, $settings["hasIndexTTL"]); } else { $hasIndex = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_hasIndex_".base64_encode($dir)); } return $hasIndex; } function getSize($file) { global $settings; if (!apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_filesizeString_".base64_encode($file))) { if (is_file($file)) { $filesize = filesize($file); $filesizeString = toHumanReadable($filesize); } else { $filesizeString = ""; } apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_filesizeString_".base64_encode($file), $filesizeString, $settings["sizeTTL"]); } else { $filesizeString = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_filesizeString_".base64_encode($file)); } return $filesizeString; } function toHumanReadable($filesize) { $sizeTexts = array("B", "KB", "MB", "GB", "TB", "PB"); $tmpfilesize = $filesize; foreach ($sizeTexts as $lvl => $sizeText) { if ($filesize <= pow(1024,$lvl+1)) { return round($tmpfilesize,2).$sizeText; } else { $tmpfilesize = $tmpfilesize/1024; } } } function getLastModded($file) { global $settings; if (!apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_lastModded_".base64_encode($file))) { $lastModded = date("Y-m-d h:i:s", filemtime($file)); apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_lastModded_".base64_encode($file), $lastModded, $settings["lastModdedTTL"]); } else { $lastModded = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_lastModded_".base64_encode($file)); } return $lastModded; } function getThumbnail($filepathEncoded) { global $settings; if (!apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_thumb_$filepathEncoded")) { $filepathDecoded = base64_decode($filepathEncoded); /* Unreliable trick to prevent parent directory of this index page from being listed, again. */ if (isBadDir($filepathDecoded)) { exit; } if (!in_array(getMimeType($filepathDecoded), $settings["thumbMimes"])) { exit; } $handle = fopen($filepathDecoded, "r"); list($width, $height) = getimagesize($filepathDecoded); $srcImageStr = fread($handle, filesize($filepathDecoded)); $srcImage = imagecreatefromstring($srcImageStr); $maxPx = max($width, $height); if ($maxPx >= $settings["thumbnailSize"]) { $percent = $settings["thumbnailSize"]/$maxPx; } else { /* Make sure the file is really an picture */ ob_start(); imagepng($srcImage); $srcImageStr = ob_get_contents(); ob_end_clean(); apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_thumb_$filepathEncoded", $srcImageStr, $settings["thumbnailTTL"]); return $srcImageStr; } $newwidth = $width * $percent; $newheight = $height * $percent; $thumb = imagecreatetruecolor($newwidth, $newheight); imagealphablending($thumb, false); imagesavealpha($thumb, true); imagecopyresampled($thumb, $srcImage, 0, 0, 0, 0, $newwidth, $newheight, $width, $height); ob_start(); imagepng($thumb); $thumbStr = ob_get_contents(); ob_end_clean(); apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_thumb_lastModded_$filepathEncoded", time(), $settings["thumbnailTTL"]); apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_thumb_$filepathEncoded", $thumbStr, $settings["thumbnailTTL"]); } else { $thumbStr = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_thumb_$filepathEncoded"); } return $thumbStr; } function getPreviewText($file) { global $settings; if (!apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_previewText_".base64_encode($file))) { $handle = fopen($file, "r"); $previewText = htmlentities(fread($handle, $settings["previewLimit"]), ENT_QUOTES | ENT_IGNORE, "UTF-8"); apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_previewText_".base64_encode($file), $previewText, $settings["previewTTL"]); } else { $previewText = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_previewText_".base64_encode($file)); } return $previewText; } if (isset($_GET["t"]) AND !empty($_GET["t"])): header('Content-Type: image/png'); $lastModded = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_thumb_lastModded_".$_GET["t"]); header("Last-Modified: " . gmdate("D, d M Y H:i:s", $lastModded) . " GMT"); if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModded && apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_thumb_".$_GET["t"])) { header("HTTP/1.1 304 Not Modified"); exit(); } echo getThumbnail($_GET["t"]); elseif (isset($_GET["i"]) AND !empty($_GET["i"])): header('Content-Type: image/png'); if (apc_exists($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_icon_lastModded_".$_GET["i"])) { $lastModded = apc_fetch($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_icon_lastModded_".$_GET["i"]); } else { $lastModded = time(); apc_store($_SERVER['HTTP_HOST'].$GLOBALS["requestPath"]."_icon_lastModded_".$_GET["i"], $lastModded); } header("Last-Modified: " . gmdate("D, d M Y H:i:s", $lastModded) . " GMT"); if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $lastModded) { header("HTTP/1.1 304 Not Modified"); exit(); } echo base64_decode($iconOfMimeTypes[$_GET["i"]]); elseif (hasIndex($GLOBALS["currentDir"] = currentDir()) && $GLOBALS["currentDir"] != "./"): $GLOBALS["currentDir"] = str_replace("./", "", $GLOBALS["currentDir"]); $GLOBALS["currentDir"] = rawurlencode($GLOBALS["currentDir"]); $GLOBALS["currentDir"] = str_replace("%2F", "/", $GLOBALS["currentDir"]); header("Location: ".$GLOBALS['currentDir'], true, 302); else: ?>

Online Content Explorer. All credit to Saren Arterius, Licensed under GPL v3

Index of <?php echo $GLOBALS["requestPath"].substr($GLOBALS["currentDir"], 2); ?>
" class="page-header" style="text-align: center; ">

"> >
"> "> " style="width: 90px;"> " style="width: 160px;">