From a59cd42151e274b1feb18604907a7dfd16a58507 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Mon, 22 Feb 2016 20:06:44 -0800 Subject: [PATCH] Re-fork filemin from 1.783 release --- filemin/CHANGELOG | 194 + filemin/acl_security.pl | 61 + filemin/bookmark.cgi | 23 + filemin/chmod.cgi | 78 + filemin/chown.cgi | 42 + filemin/compress.cgi | 29 + filemin/config | 1 + filemin/config.cgi | 53 + filemin/config.info | 2 + filemin/copy.cgi | 19 + filemin/create_file.cgi | 21 + filemin/create_folder.cgi | 20 + filemin/cut.cgi | 19 + filemin/defaultacl | 3 + filemin/defaultuconf | 4 + filemin/delete.cgi | 20 + filemin/download.cgi | 25 + filemin/edit_file.cgi | 43 + filemin/extract.cgi | 25 + filemin/filemin-lib.pl | 404 + filemin/http_download.cgi | 47 + filemin/images/icon.gif | Bin 0 -> 2299 bytes filemin/images/icons/AUTHORS | 5 + filemin/images/icons/COPYING | 674 ++ .../images/icons/mime/application-7zip.png | Bin 0 -> 942 bytes .../icons/mime/application-atom+xml.png | Bin 0 -> 1076 bytes .../images/icons/mime/application-gzip.png | Bin 0 -> 934 bytes .../icons/mime/application-illustrator.png | Bin 0 -> 977 bytes .../icons/mime/application-javascript.png | Bin 0 -> 865 bytes .../images/icons/mime/application-mbox.png | Bin 0 -> 782 bytes .../images/icons/mime/application-msword.png | Bin 0 -> 971 bytes .../icons/mime/application-octet-stream.png | Bin 0 -> 793 bytes filemin/images/icons/mime/application-ogg.png | Bin 0 -> 769 bytes filemin/images/icons/mime/application-pdf.png | Bin 0 -> 1095 bytes .../icons/mime/application-pgp-encrypted.png | Bin 0 -> 707 bytes .../icons/mime/application-pgp-keys.png | Bin 0 -> 1253 bytes .../icons/mime/application-pkcs7-mime.png | Bin 0 -> 1253 bytes .../images/icons/mime/application-rss+xml.png | Bin 0 -> 1076 bytes filemin/images/icons/mime/application-rtf.png | Bin 0 -> 929 bytes .../images/icons/mime/application-text.png | Bin 0 -> 867 bytes .../icons/mime/application-vnd.ms-access.png | Bin 0 -> 651 bytes .../icons/mime/application-vnd.ms-excel.png | Bin 0 -> 799 bytes .../mime/application-vnd.ms-powerpoint.png | Bin 0 -> 979 bytes .../icons/mime/application-vnd.ms-word.png | Bin 0 -> 971 bytes ...cation-vnd.oasis.opendocument.database.png | Bin 0 -> 651 bytes ...ication-vnd.oasis.opendocument.formula.png | Bin 0 -> 845 bytes ...cation-vnd.oasis.opendocument.graphics.png | Bin 0 -> 977 bytes ...ion-vnd.oasis.opendocument.spreadsheet.png | Bin 0 -> 780 bytes ...cation-vnd.oasis.opendocument.text-web.png | Bin 0 -> 1022 bytes ...pplication-vnd.oasis.opendocument.text.png | Bin 0 -> 936 bytes ...cedocument.presentationml.presentation.png | Bin 0 -> 979 bytes ...fficedocument.presentationml.slideshow.png | Bin 0 -> 979 bytes ...ats-officedocument.spreadsheetml.sheet.png | Bin 0 -> 799 bytes ...ficedocument.wordprocessingml.document.png | Bin 0 -> 971 bytes .../mime/application-vnd.rn-realmedia.png | Bin 0 -> 1207 bytes .../icons/mime/application-vnd.scribus.png | Bin 0 -> 1186 bytes .../mime/application-vnd.sun.xml.calc.png | Bin 0 -> 780 bytes .../mime/application-vnd.sun.xml.draw.png | Bin 0 -> 977 bytes .../mime/application-vnd.sun.xml.writer.png | Bin 0 -> 936 bytes .../mime/application-vnd.wordperfect.png | Bin 0 -> 936 bytes .../mime/application-x-7z-compressed.png | Bin 0 -> 942 bytes .../images/icons/mime/application-x-7zip.png | Bin 0 -> 942 bytes .../images/icons/mime/application-x-ace.png | Bin 0 -> 929 bytes .../images/icons/mime/application-x-arc.png | Bin 0 -> 764 bytes .../icons/mime/application-x-archive.png | Bin 0 -> 764 bytes .../icons/mime/application-x-bittorrent.png | Bin 0 -> 1069 bytes .../icons/mime/application-x-cd-image.png | Bin 0 -> 1125 bytes .../icons/mime/application-x-class-file.png | Bin 0 -> 946 bytes .../icons/mime/application-x-compress.png | Bin 0 -> 764 bytes .../mime/application-x-compressed-tar.png | Bin 0 -> 934 bytes .../images/icons/mime/application-x-csh.png | Bin 0 -> 889 bytes .../icons/mime/application-x-csproj.png | Bin 0 -> 1312 bytes .../images/icons/mime/application-x-cue.png | Bin 0 -> 1185 bytes .../images/icons/mime/application-x-deb.png | Bin 0 -> 984 bytes .../icons/mime/application-x-designer.png | Bin 0 -> 922 bytes .../icons/mime/application-x-desktop.png | Bin 0 -> 1131 bytes .../icons/mime/application-x-executable.png | Bin 0 -> 1153 bytes .../mime/application-x-extension-html.png | Bin 0 -> 1022 bytes .../icons/mime/application-x-flash-video.png | Bin 0 -> 827 bytes .../images/icons/mime/application-x-glade.png | Bin 0 -> 922 bytes .../application-x-gnome-theme-package.png | Bin 0 -> 1131 bytes .../icons/mime/application-x-gnumeric.png | Bin 0 -> 780 bytes .../images/icons/mime/application-x-gzip.png | Bin 0 -> 934 bytes .../images/icons/mime/application-x-jar.png | Bin 0 -> 764 bytes .../icons/mime/application-x-java-archive.png | Bin 0 -> 764 bytes .../images/icons/mime/application-x-java.png | Bin 0 -> 946 bytes .../icons/mime/application-x-javascript.png | Bin 0 -> 865 bytes .../icons/mime/application-x-keepass.png | Bin 0 -> 1253 bytes .../images/icons/mime/application-x-lha.png | Bin 0 -> 764 bytes .../images/icons/mime/application-x-lhz.png | Bin 0 -> 764 bytes .../images/icons/mime/application-x-m4.png | Bin 0 -> 929 bytes .../icons/mime/application-x-matroska.png | Bin 0 -> 1207 bytes .../mime/application-x-ms-dos-executable.png | Bin 0 -> 1153 bytes .../icons/mime/application-x-msdownload.png | Bin 0 -> 933 bytes .../icons/mime/application-x-ole-storage.png | Bin 0 -> 793 bytes .../images/icons/mime/application-x-pak.png | Bin 0 -> 1096 bytes .../icons/mime/application-x-pem-key.png | Bin 0 -> 1253 bytes .../images/icons/mime/application-x-php.png | Bin 0 -> 1059 bytes .../mime/application-x-python-bytecode.png | Bin 0 -> 1086 bytes .../images/icons/mime/application-x-rar.png | Bin 0 -> 968 bytes .../images/icons/mime/application-x-rpm.png | Bin 0 -> 907 bytes .../images/icons/mime/application-x-ruby.png | Bin 0 -> 1153 bytes .../icons/mime/application-x-scribus.png | Bin 0 -> 1186 bytes .../icons/mime/application-x-shellscript.png | Bin 0 -> 889 bytes .../mime/application-x-shockwave-flash.png | Bin 0 -> 827 bytes .../images/icons/mime/application-x-sln.png | Bin 0 -> 1312 bytes .../icons/mime/application-x-sqlite2.png | Bin 0 -> 651 bytes .../icons/mime/application-x-sqlite3.png | Bin 0 -> 651 bytes .../images/icons/mime/application-x-tar.png | Bin 0 -> 600 bytes .../images/icons/mime/application-x-theme.png | Bin 0 -> 1131 bytes .../images/icons/mime/application-x-trash.png | Bin 0 -> 1231 bytes .../icons/mime/application-x-wais-source.png | Bin 0 -> 738 bytes .../images/icons/mime/application-x-zip.png | Bin 0 -> 926 bytes filemin/images/icons/mime/application-xml.png | Bin 0 -> 913 bytes filemin/images/icons/mime/application-zip.png | Bin 0 -> 926 bytes filemin/images/icons/mime/audio-mpeg.png | Bin 0 -> 769 bytes filemin/images/icons/mime/audio-x-adpcm.png | Bin 0 -> 1038 bytes .../images/icons/mime/audio-x-flac+ogg.png | Bin 0 -> 769 bytes filemin/images/icons/mime/audio-x-generic.png | Bin 0 -> 769 bytes filemin/images/icons/mime/audio-x-mod.png | Bin 0 -> 769 bytes .../icons/mime/audio-x-mp3-playlist.png | Bin 0 -> 886 bytes filemin/images/icons/mime/audio-x-mpeg.png | Bin 0 -> 769 bytes filemin/images/icons/mime/audio-x-mpegurl.png | Bin 0 -> 886 bytes filemin/images/icons/mime/audio-x-ms-wma.png | Bin 0 -> 769 bytes filemin/images/icons/mime/audio-x-s3m.png | Bin 0 -> 769 bytes filemin/images/icons/mime/audio-x-scpls.png | Bin 0 -> 886 bytes .../images/icons/mime/audio-x-speex+ogg.png | Bin 0 -> 769 bytes .../images/icons/mime/audio-x-vorbis+ogg.png | Bin 0 -> 769 bytes filemin/images/icons/mime/audio-x-wav.png | Bin 0 -> 1038 bytes filemin/images/icons/mime/audio-x-xm.png | Bin 0 -> 769 bytes filemin/images/icons/mime/authors.png | Bin 0 -> 738 bytes filemin/images/icons/mime/binary.png | Bin 0 -> 1153 bytes filemin/images/icons/mime/deb.png | Bin 0 -> 984 bytes filemin/images/icons/mime/document.png | Bin 0 -> 929 bytes filemin/images/icons/mime/empty.png | Bin 0 -> 471 bytes filemin/images/icons/mime/encrypted.png | Bin 0 -> 707 bytes filemin/images/icons/mime/exec.png | Bin 0 -> 1153 bytes filemin/images/icons/mime/extension.png | Bin 0 -> 937 bytes filemin/images/icons/mime/folder_tar.png | Bin 0 -> 600 bytes filemin/images/icons/mime/font-x-generic.png | Bin 0 -> 924 bytes filemin/images/icons/mime/font.png | Bin 0 -> 924 bytes filemin/images/icons/mime/font.xpm | 144 + filemin/images/icons/mime/font_bitmap.png | Bin 0 -> 924 bytes filemin/images/icons/mime/font_truetype.png | Bin 0 -> 924 bytes filemin/images/icons/mime/font_type1.png | Bin 0 -> 924 bytes filemin/images/icons/mime/gtk-file.png | Bin 0 -> 471 bytes filemin/images/icons/mime/html.png | Bin 0 -> 1022 bytes filemin/images/icons/mime/image-bmp.png | Bin 0 -> 985 bytes filemin/images/icons/mime/image-gif.png | Bin 0 -> 961 bytes filemin/images/icons/mime/image-jpeg.png | Bin 0 -> 1000 bytes filemin/images/icons/mime/image-jpeg2000.png | Bin 0 -> 1000 bytes filemin/images/icons/mime/image-png.png | Bin 0 -> 1005 bytes filemin/images/icons/mime/image-svg+xml.png | Bin 0 -> 977 bytes filemin/images/icons/mime/image-tiff.png | Bin 0 -> 968 bytes .../icons/mime/image-vnd.adobe.photoshop.png | Bin 0 -> 933 bytes .../icons/mime/image-vnd.microsoft.icon.png | Bin 0 -> 1156 bytes .../icons/mime/image-x-apple-ios-png.png | Bin 0 -> 995 bytes filemin/images/icons/mime/image-x-eps.png | Bin 0 -> 896 bytes filemin/images/icons/mime/image-x-generic.png | Bin 0 -> 995 bytes filemin/images/icons/mime/image-x-ico.png | Bin 0 -> 1156 bytes filemin/images/icons/mime/image-x-icon.png | Bin 0 -> 1156 bytes .../icons/mime/image-x-portable-bitmap.png | Bin 0 -> 985 bytes filemin/images/icons/mime/image-x-psd.png | Bin 0 -> 933 bytes .../icons/mime/image-x-psdimage-x-psd.png | Bin 0 -> 933 bytes filemin/images/icons/mime/image-x-svg+xml.png | Bin 0 -> 977 bytes filemin/images/icons/mime/image-x-tga.png | Bin 0 -> 995 bytes .../images/icons/mime/image-x-win-bitmap.png | Bin 0 -> 985 bytes filemin/images/icons/mime/image-x-xcf.png | Bin 0 -> 975 bytes filemin/images/icons/mime/image-x-xpixmap.png | Bin 0 -> 995 bytes filemin/images/icons/mime/image.png | Bin 0 -> 995 bytes filemin/images/icons/mime/inode-directory.png | Bin 0 -> 588 bytes .../images/icons/mime/inode-mount-point.png | Bin 0 -> 588 bytes filemin/images/icons/mime/inode-symlink.png | Bin 0 -> 750 bytes filemin/images/icons/mime/jpeg.png | Bin 0 -> 1000 bytes filemin/images/icons/mime/jpg.png | Bin 0 -> 1000 bytes filemin/images/icons/mime/kpresenter_kpr.png | Bin 0 -> 991 bytes filemin/images/icons/mime/media-audio.png | Bin 0 -> 769 bytes filemin/images/icons/mime/media-image.png | Bin 0 -> 995 bytes filemin/images/icons/mime/media-video.png | Bin 0 -> 1207 bytes filemin/images/icons/mime/message-rfc822.png | Bin 0 -> 782 bytes filemin/images/icons/mime/message.png | Bin 0 -> 782 bytes filemin/images/icons/mime/misc.png | Bin 0 -> 867 bytes .../images/icons/mime/multipart-encrypted.png | Bin 0 -> 793 bytes filemin/images/icons/mime/none.png | Bin 0 -> 772 bytes filemin/images/icons/mime/office-document.png | Bin 0 -> 936 bytes .../images/icons/mime/office-illustration.png | Bin 0 -> 977 bytes .../images/icons/mime/office-spreadsheet.png | Bin 0 -> 780 bytes .../icons/mime/openofficeorg3-database.png | Bin 0 -> 651 bytes .../icons/mime/openofficeorg3-drawing.png | Bin 0 -> 977 bytes .../icons/mime/openofficeorg3-extension.png | Bin 0 -> 937 bytes .../mime/openofficeorg3-oasis-database.png | Bin 0 -> 651 bytes .../mime/openofficeorg3-oasis-spreadsheet.png | Bin 0 -> 780 bytes filemin/images/icons/mime/opera-extension.png | Bin 0 -> 952 bytes .../icons/mime/opera-unite-application.png | Bin 0 -> 1107 bytes filemin/images/icons/mime/opera-widget.png | Bin 0 -> 1001 bytes .../images/icons/mime/package-x-generic.png | Bin 0 -> 1096 bytes filemin/images/icons/mime/package.png | Bin 0 -> 1096 bytes filemin/images/icons/mime/package_editors.png | Bin 0 -> 867 bytes .../icons/mime/package_wordprocessing.png | Bin 0 -> 936 bytes filemin/images/icons/mime/pdf.png | Bin 0 -> 1095 bytes .../images/icons/mime/phatch-actionlist.png | Bin 0 -> 1036 bytes .../images/icons/mime/playlist-automatic.png | Bin 0 -> 854 bytes filemin/images/icons/mime/playlist.png | Bin 0 -> 886 bytes filemin/images/icons/mime/rpm.png | Bin 0 -> 907 bytes filemin/images/icons/mime/shellscript.png | Bin 0 -> 889 bytes filemin/images/icons/mime/sound.png | Bin 0 -> 769 bytes filemin/images/icons/mime/source-playlist.png | Bin 0 -> 886 bytes .../icons/mime/source-smart-playlist.png | Bin 0 -> 854 bytes filemin/images/icons/mime/spreadsheet.png | Bin 0 -> 780 bytes .../images/icons/mime/stock_addressbook.png | Bin 0 -> 1239 bytes filemin/images/icons/mime/stock_calendar.png | Bin 0 -> 1033 bytes filemin/images/icons/mime/stock_script.png | Bin 0 -> 738 bytes filemin/images/icons/mime/svg.png | Bin 0 -> 977 bytes filemin/images/icons/mime/tar.png | Bin 0 -> 600 bytes filemin/images/icons/mime/template_source.png | Bin 0 -> 1044 bytes filemin/images/icons/mime/text-css.png | Bin 0 -> 853 bytes filemin/images/icons/mime/text-enriched.png | Bin 0 -> 929 bytes filemin/images/icons/mime/text-html.png | Bin 0 -> 1022 bytes filemin/images/icons/mime/text-htmlh.png | Bin 0 -> 1022 bytes filemin/images/icons/mime/text-mht.png | Bin 0 -> 1022 bytes filemin/images/icons/mime/text-plain.png | Bin 0 -> 867 bytes filemin/images/icons/mime/text-richtext.png | Bin 0 -> 929 bytes .../images/icons/mime/text-spreadsheet.png | Bin 0 -> 780 bytes filemin/images/icons/mime/text-x-authors.png | Bin 0 -> 738 bytes filemin/images/icons/mime/text-x-bak.png | Bin 0 -> 1231 bytes filemin/images/icons/mime/text-x-bibtex.png | Bin 0 -> 965 bytes filemin/images/icons/mime/text-x-c++.png | Bin 0 -> 914 bytes filemin/images/icons/mime/text-x-c++hdr.png | Bin 0 -> 797 bytes filemin/images/icons/mime/text-x-c++src.png | Bin 0 -> 914 bytes filemin/images/icons/mime/text-x-c.png | Bin 0 -> 848 bytes .../images/icons/mime/text-x-changelog.png | Bin 0 -> 705 bytes filemin/images/icons/mime/text-x-chdr.png | Bin 0 -> 740 bytes filemin/images/icons/mime/text-x-copying.png | Bin 0 -> 1081 bytes filemin/images/icons/mime/text-x-credits.png | Bin 0 -> 738 bytes filemin/images/icons/mime/text-x-csrc.png | Bin 0 -> 848 bytes filemin/images/icons/mime/text-x-css.png | Bin 0 -> 853 bytes .../icons/mime/text-x-generic-template.png | Bin 0 -> 1044 bytes filemin/images/icons/mime/text-x-generic.png | Bin 0 -> 867 bytes filemin/images/icons/mime/text-x-install.png | Bin 0 -> 1131 bytes .../images/icons/mime/text-x-java-source.png | Bin 0 -> 946 bytes filemin/images/icons/mime/text-x-java.png | Bin 0 -> 946 bytes .../images/icons/mime/text-x-javascript.png | Bin 0 -> 865 bytes filemin/images/icons/mime/text-x-makefile.png | Bin 0 -> 854 bytes filemin/images/icons/mime/text-x-preview.png | Bin 0 -> 471 bytes filemin/images/icons/mime/text-x-python.png | Bin 0 -> 1086 bytes filemin/images/icons/mime/text-x-readme.png | Bin 0 -> 727 bytes filemin/images/icons/mime/text-x-script.png | Bin 0 -> 889 bytes filemin/images/icons/mime/text-x-source.png | Bin 0 -> 738 bytes filemin/images/icons/mime/text-x-sql.png | Bin 0 -> 651 bytes filemin/images/icons/mime/text-x-tex.png | Bin 0 -> 1073 bytes filemin/images/icons/mime/text-xhtml+xml.png | Bin 0 -> 1022 bytes filemin/images/icons/mime/text-xml.png | Bin 0 -> 913 bytes filemin/images/icons/mime/txt.png | Bin 0 -> 867 bytes filemin/images/icons/mime/txt2.png | Bin 0 -> 867 bytes filemin/images/icons/mime/unknown.png | Bin 0 -> 772 bytes filemin/images/icons/mime/vcalendar.png | Bin 0 -> 1033 bytes filemin/images/icons/mime/video-mpeg.png | Bin 0 -> 1207 bytes filemin/images/icons/mime/video-x-generic.png | Bin 0 -> 1207 bytes filemin/images/icons/mime/video.png | Bin 0 -> 1207 bytes .../mime/vnd.oasis.opendocument.drawing.png | Bin 0 -> 977 bytes filemin/images/icons/mime/wordprocessing.png | Bin 0 -> 936 bytes filemin/images/icons/mime/www.png | Bin 0 -> 1022 bytes filemin/images/icons/mime/x-dia-diagram.png | Bin 0 -> 793 bytes .../icons/mime/x-office-address-book.png | Bin 0 -> 1239 bytes .../images/icons/mime/x-office-document.png | Bin 0 -> 936 bytes .../images/icons/mime/x-office-drawing.png | Bin 0 -> 977 bytes .../icons/mime/x-office-presentation.png | Bin 0 -> 991 bytes .../icons/mime/x-office-spreadsheet.png | Bin 0 -> 780 bytes filemin/images/icons/mime/zip.png | Bin 0 -> 926 bytes filemin/images/icons/quick/bookmark-new.png | Bin 0 -> 466 bytes filemin/images/icons/quick/browse.png | Bin 0 -> 944 bytes filemin/images/icons/quick/chmod.png | Bin 0 -> 956 bytes filemin/images/icons/quick/chown.png | Bin 0 -> 788 bytes filemin/images/icons/quick/compress.png | Bin 0 -> 738 bytes filemin/images/icons/quick/document-new.png | Bin 0 -> 529 bytes filemin/images/icons/quick/drive-harddisk.png | Bin 0 -> 864 bytes filemin/images/icons/quick/edit-copy.png | Bin 0 -> 589 bytes filemin/images/icons/quick/edit-cut.png | Bin 0 -> 981 bytes filemin/images/icons/quick/edit-find.png | Bin 0 -> 884 bytes filemin/images/icons/quick/edit-paste.png | Bin 0 -> 608 bytes filemin/images/icons/quick/edit.png | Bin 0 -> 702 bytes filemin/images/icons/quick/extract.png | Bin 0 -> 660 bytes filemin/images/icons/quick/folder-new.png | Bin 0 -> 557 bytes filemin/images/icons/quick/from-url.png | Bin 0 -> 1470 bytes filemin/images/icons/quick/go-down.png | Bin 0 -> 537 bytes filemin/images/icons/quick/go-next.png | Bin 0 -> 522 bytes filemin/images/icons/quick/invert.png | Bin 0 -> 356 bytes filemin/images/icons/quick/remove.png | Bin 0 -> 838 bytes filemin/images/icons/quick/rename.png | Bin 0 -> 736 bytes filemin/images/icons/quick/select-all.png | Bin 0 -> 294 bytes filemin/images/icons/quick/upload.png | Bin 0 -> 754 bytes filemin/index.cgi | 61 + filemin/lang/ca | 138 + filemin/lang/ca.UTF-8 | 138 + filemin/lang/de.UTF-8 | 138 + filemin/lang/en | 145 + filemin/lang/en.UTF-8 | 145 + filemin/lang/no | 145 + filemin/lang/no.UTF-8 | 145 + filemin/lang/ru.UTF-8 | 135 + filemin/lib/File/BaseDir.pm | 299 + filemin/lib/File/Basename.pm | 402 + filemin/lib/File/MimeInfo.pm | 482 + filemin/module.info | 10 + filemin/paste.cgi | 45 + filemin/rename.cgi | 19 + filemin/save_config.cgi | 27 + filemin/save_file.cgi | 30 + filemin/search.cgi | 28 + .../css/dataTables.bootstrap.css | 372 + filemin/unauthenticated/css/style.css | 154 + filemin/unauthenticated/dropdown/fg.menu.css | 114 + filemin/unauthenticated/dropdown/fg.menu.js | 645 ++ .../images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 212 bytes .../images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 208 bytes .../images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 335 bytes .../images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 207 bytes .../images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 262 bytes .../images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 280 bytes .../jquery/images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../jquery/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4549 bytes .../jquery/images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../jquery/images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes .../jquery/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4549 bytes .../unauthenticated/jquery/jquery-ui.min.css | 7 + .../unauthenticated/jquery/jquery-ui.min.js | 13 + .../jquery/jquery-ui.theme.min.css | 5 + filemin/unauthenticated/jquery/jquery.min.js | 6 + .../js/bootstrap-hover-dropdown.min.js | 12 + .../unauthenticated/js/chmod-calculator.js | 80 + filemin/unauthenticated/js/cmauto.js | 47 + .../js/dataTables.bootstrap.js | 206 + filemin/unauthenticated/js/legacy.js | 399 + .../unauthenticated/js/lib/codemirror/AUTHORS | 474 + .../js/lib/codemirror/CONTRIBUTING.md | 88 + .../unauthenticated/js/lib/codemirror/LICENSE | 19 + .../js/lib/codemirror/README.md | 27 + .../lib/codemirror/addon/comment/comment.js | 183 + .../addon/comment/continuecomment.js | 85 + .../js/lib/codemirror/addon/dialog/dialog.css | 32 + .../js/lib/codemirror/addon/dialog/dialog.js | 157 + .../codemirror/addon/display/fullscreen.css | 6 + .../codemirror/addon/display/fullscreen.js | 41 + .../js/lib/codemirror/addon/display/panel.js | 112 + .../codemirror/addon/display/placeholder.js | 58 + .../js/lib/codemirror/addon/display/rulers.js | 63 + .../codemirror/addon/edit/closebrackets.js | 185 + .../js/lib/codemirror/addon/edit/closetag.js | 169 + .../lib/codemirror/addon/edit/continuelist.js | 51 + .../codemirror/addon/edit/matchbrackets.js | 120 + .../js/lib/codemirror/addon/edit/matchtags.js | 66 + .../codemirror/addon/edit/trailingspace.js | 27 + .../lib/codemirror/addon/fold/brace-fold.js | 105 + .../lib/codemirror/addon/fold/comment-fold.js | 57 + .../js/lib/codemirror/addon/fold/foldcode.js | 149 + .../lib/codemirror/addon/fold/foldgutter.css | 20 + .../lib/codemirror/addon/fold/foldgutter.js | 146 + .../lib/codemirror/addon/fold/indent-fold.js | 44 + .../codemirror/addon/fold/markdown-fold.js | 49 + .../js/lib/codemirror/addon/fold/xml-fold.js | 182 + .../lib/codemirror/addon/hint/anyword-hint.js | 41 + .../js/lib/codemirror/addon/hint/css-hint.js | 60 + .../js/lib/codemirror/addon/hint/html-hint.js | 348 + .../codemirror/addon/hint/javascript-hint.js | 146 + .../lib/codemirror/addon/hint/show-hint.css | 38 + .../js/lib/codemirror/addon/hint/show-hint.js | 386 + .../js/lib/codemirror/addon/hint/sql-hint.js | 254 + .../js/lib/codemirror/addon/hint/xml-hint.js | 110 + .../addon/lint/coffeescript-lint.js | 41 + .../js/lib/codemirror/addon/lint/css-lint.js | 35 + .../codemirror/addon/lint/javascript-lint.js | 136 + .../js/lib/codemirror/addon/lint/json-lint.js | 31 + .../js/lib/codemirror/addon/lint/lint.css | 73 + .../js/lib/codemirror/addon/lint/lint.js | 213 + .../js/lib/codemirror/addon/lint/yaml-lint.js | 28 + .../js/lib/codemirror/addon/merge/merge.css | 112 + .../js/lib/codemirror/addon/merge/merge.js | 775 ++ .../js/lib/codemirror/addon/mode/loadmode.js | 64 + .../js/lib/codemirror/addon/mode/multiplex.js | 123 + .../codemirror/addon/mode/multiplex_test.js | 33 + .../js/lib/codemirror/addon/mode/overlay.js | 85 + .../js/lib/codemirror/addon/mode/simple.js | 213 + .../lib/codemirror/addon/runmode/colorize.js | 40 + .../addon/runmode/runmode-standalone.js | 157 + .../lib/codemirror/addon/runmode/runmode.js | 72 + .../codemirror/addon/runmode/runmode.node.js | 178 + .../addon/scroll/annotatescrollbar.js | 115 + .../codemirror/addon/scroll/scrollpastend.js | 46 + .../addon/scroll/simplescrollbars.css | 66 + .../addon/scroll/simplescrollbars.js | 147 + .../addon/search/match-highlighter.js | 128 + .../addon/search/matchesonscrollbar.css | 8 + .../addon/search/matchesonscrollbar.js | 97 + .../js/lib/codemirror/addon/search/search.js | 202 + .../codemirror/addon/search/searchcursor.js | 189 + .../codemirror/addon/selection/active-line.js | 71 + .../addon/selection/mark-selection.js | 118 + .../addon/selection/selection-pointer.js | 98 + .../js/lib/codemirror/addon/tern/tern.css | 87 + .../js/lib/codemirror/addon/tern/tern.js | 699 ++ .../js/lib/codemirror/addon/tern/worker.js | 44 + .../js/lib/codemirror/addon/wrap/hardwrap.js | 139 + .../js/lib/codemirror/bower.json | 17 + .../js/lib/codemirror/keymap/emacs.js | 412 + .../js/lib/codemirror/keymap/sublime.js | 555 ++ .../js/lib/codemirror/keymap/vim.js | 5060 ++++++++++ .../js/lib/codemirror/lib/codemirror.css | 332 + .../js/lib/codemirror/lib/codemirror.js | 8789 +++++++++++++++++ .../js/lib/codemirror/mode/apl/apl.js | 174 + .../js/lib/codemirror/mode/apl/index.html | 72 + .../codemirror/mode/asciiarmor/asciiarmor.js | 73 + .../lib/codemirror/mode/asciiarmor/index.html | 46 + .../js/lib/codemirror/mode/asn.1/asn.1.js | 204 + .../js/lib/codemirror/mode/asn.1/index.html | 78 + .../lib/codemirror/mode/asterisk/asterisk.js | 196 + .../lib/codemirror/mode/asterisk/index.html | 154 + .../codemirror/mode/brainfuck/brainfuck.js | 85 + .../lib/codemirror/mode/brainfuck/index.html | 85 + .../js/lib/codemirror/mode/clike/clike.js | 604 ++ .../js/lib/codemirror/mode/clike/index.html | 252 + .../js/lib/codemirror/mode/clike/scala.html | 767 ++ .../js/lib/codemirror/mode/clike/test.js | 33 + .../js/lib/codemirror/mode/clojure/clojure.js | 244 + .../js/lib/codemirror/mode/clojure/index.html | 88 + .../js/lib/codemirror/mode/cmake/cmake.js | 97 + .../js/lib/codemirror/mode/cmake/index.html | 129 + .../js/lib/codemirror/mode/cobol/cobol.js | 255 + .../js/lib/codemirror/mode/cobol/index.html | 210 + .../mode/coffeescript/coffeescript.js | 369 + .../codemirror/mode/coffeescript/index.html | 740 ++ .../codemirror/mode/commonlisp/commonlisp.js | 123 + .../lib/codemirror/mode/commonlisp/index.html | 177 + .../js/lib/codemirror/mode/css/css.js | 756 ++ .../js/lib/codemirror/mode/css/index.html | 75 + .../js/lib/codemirror/mode/css/less.html | 152 + .../js/lib/codemirror/mode/css/less_test.js | 54 + .../js/lib/codemirror/mode/css/scss.html | 157 + .../js/lib/codemirror/mode/css/scss_test.js | 110 + .../js/lib/codemirror/mode/css/test.js | 188 + .../js/lib/codemirror/mode/cypher/cypher.js | 146 + .../js/lib/codemirror/mode/cypher/index.html | 63 + .../js/lib/codemirror/mode/d/d.js | 218 + .../js/lib/codemirror/mode/d/index.html | 273 + .../js/lib/codemirror/mode/dart/dart.js | 50 + .../js/lib/codemirror/mode/dart/index.html | 71 + .../js/lib/codemirror/mode/diff/diff.js | 47 + .../js/lib/codemirror/mode/diff/index.html | 117 + .../js/lib/codemirror/mode/django/django.js | 350 + .../js/lib/codemirror/mode/django/index.html | 73 + .../codemirror/mode/dockerfile/dockerfile.js | 79 + .../lib/codemirror/mode/dockerfile/index.html | 73 + .../js/lib/codemirror/mode/dtd/dtd.js | 142 + .../js/lib/codemirror/mode/dtd/index.html | 89 + .../js/lib/codemirror/mode/dylan/dylan.js | 291 + .../js/lib/codemirror/mode/dylan/index.html | 407 + .../js/lib/codemirror/mode/ebnf/ebnf.js | 195 + .../js/lib/codemirror/mode/ebnf/index.html | 102 + .../js/lib/codemirror/mode/ecl/ecl.js | 206 + .../js/lib/codemirror/mode/ecl/index.html | 52 + .../js/lib/codemirror/mode/eiffel/eiffel.js | 160 + .../js/lib/codemirror/mode/eiffel/index.html | 429 + .../js/lib/codemirror/mode/elm/elm.js | 205 + .../js/lib/codemirror/mode/elm/index.html | 61 + .../js/lib/codemirror/mode/erlang/erlang.js | 618 ++ .../js/lib/codemirror/mode/erlang/index.html | 76 + .../js/lib/codemirror/mode/factor/factor.js | 83 + .../js/lib/codemirror/mode/factor/index.html | 77 + .../js/lib/codemirror/mode/forth/forth.js | 180 + .../js/lib/codemirror/mode/forth/index.html | 75 + .../js/lib/codemirror/mode/fortran/fortran.js | 188 + .../js/lib/codemirror/mode/fortran/index.html | 81 + .../js/lib/codemirror/mode/gas/gas.js | 345 + .../js/lib/codemirror/mode/gas/index.html | 68 + .../js/lib/codemirror/mode/gfm/gfm.js | 124 + .../js/lib/codemirror/mode/gfm/index.html | 93 + .../js/lib/codemirror/mode/gfm/test.js | 213 + .../js/lib/codemirror/mode/gherkin/gherkin.js | 178 + .../js/lib/codemirror/mode/gherkin/index.html | 48 + .../js/lib/codemirror/mode/go/go.js | 185 + .../js/lib/codemirror/mode/go/index.html | 85 + .../js/lib/codemirror/mode/groovy/groovy.js | 230 + .../js/lib/codemirror/mode/groovy/index.html | 84 + .../js/lib/codemirror/mode/haml/haml.js | 159 + .../js/lib/codemirror/mode/haml/index.html | 79 + .../js/lib/codemirror/mode/haml/test.js | 97 + .../codemirror/mode/handlebars/handlebars.js | 53 + .../lib/codemirror/mode/handlebars/index.html | 83 + .../js/lib/codemirror/mode/haskell/haskell.js | 267 + .../js/lib/codemirror/mode/haskell/index.html | 73 + .../js/lib/codemirror/mode/haxe/haxe.js | 518 + .../js/lib/codemirror/mode/haxe/index.html | 124 + .../mode/htmlembedded/htmlembedded.js | 28 + .../codemirror/mode/htmlembedded/index.html | 59 + .../codemirror/mode/htmlmixed/htmlmixed.js | 121 + .../lib/codemirror/mode/htmlmixed/index.html | 89 + .../js/lib/codemirror/mode/http/http.js | 113 + .../js/lib/codemirror/mode/http/index.html | 45 + .../js/lib/codemirror/mode/idl/idl.js | 290 + .../js/lib/codemirror/mode/idl/index.html | 64 + .../js/lib/codemirror/mode/index.html | 149 + .../js/lib/codemirror/mode/jade/index.html | 70 + .../js/lib/codemirror/mode/jade/jade.js | 590 ++ .../lib/codemirror/mode/javascript/index.html | 114 + .../codemirror/mode/javascript/javascript.js | 704 ++ .../codemirror/mode/javascript/json-ld.html | 72 + .../js/lib/codemirror/mode/javascript/test.js | 205 + .../mode/javascript/typescript.html | 61 + .../js/lib/codemirror/mode/jinja2/index.html | 54 + .../js/lib/codemirror/mode/jinja2/jinja2.js | 142 + .../js/lib/codemirror/mode/julia/index.html | 195 + .../js/lib/codemirror/mode/julia/julia.js | 299 + .../js/lib/codemirror/mode/kotlin/index.html | 89 + .../js/lib/codemirror/mode/kotlin/kotlin.js | 284 + .../lib/codemirror/mode/livescript/index.html | 459 + .../codemirror/mode/livescript/livescript.js | 280 + .../js/lib/codemirror/mode/lua/index.html | 85 + .../js/lib/codemirror/mode/lua/lua.js | 159 + .../lib/codemirror/mode/markdown/index.html | 359 + .../lib/codemirror/mode/markdown/markdown.js | 781 ++ .../js/lib/codemirror/mode/markdown/test.js | 792 ++ .../codemirror/mode/mathematica/index.html | 72 + .../mode/mathematica/mathematica.js | 175 + .../js/lib/codemirror/mode/meta.js | 191 + .../js/lib/codemirror/mode/mirc/index.html | 160 + .../js/lib/codemirror/mode/mirc/mirc.js | 193 + .../js/lib/codemirror/mode/mllike/index.html | 179 + .../js/lib/codemirror/mode/mllike/mllike.js | 205 + .../lib/codemirror/mode/modelica/index.html | 67 + .../lib/codemirror/mode/modelica/modelica.js | 245 + .../js/lib/codemirror/mode/mumps/index.html | 85 + .../js/lib/codemirror/mode/mumps/mumps.js | 148 + .../js/lib/codemirror/mode/nginx/index.html | 181 + .../js/lib/codemirror/mode/nginx/nginx.js | 178 + .../lib/codemirror/mode/ntriples/index.html | 45 + .../lib/codemirror/mode/ntriples/ntriples.js | 186 + .../js/lib/codemirror/mode/octave/index.html | 83 + .../js/lib/codemirror/mode/octave/octave.js | 135 + .../js/lib/codemirror/mode/pascal/index.html | 61 + .../js/lib/codemirror/mode/pascal/pascal.js | 109 + .../js/lib/codemirror/mode/pegjs/index.html | 66 + .../js/lib/codemirror/mode/pegjs/pegjs.js | 114 + .../js/lib/codemirror/mode/perl/index.html | 75 + .../js/lib/codemirror/mode/perl/perl.js | 837 ++ .../js/lib/codemirror/mode/php/index.html | 64 + .../js/lib/codemirror/mode/php/php.js | 230 + .../js/lib/codemirror/mode/php/test.js | 154 + .../js/lib/codemirror/mode/pig/index.html | 55 + .../js/lib/codemirror/mode/pig/pig.js | 178 + .../lib/codemirror/mode/properties/index.html | 53 + .../codemirror/mode/properties/properties.js | 78 + .../js/lib/codemirror/mode/puppet/index.html | 121 + .../js/lib/codemirror/mode/puppet/puppet.js | 220 + .../js/lib/codemirror/mode/python/index.html | 198 + .../js/lib/codemirror/mode/python/python.js | 358 + .../js/lib/codemirror/mode/q/index.html | 144 + .../js/lib/codemirror/mode/q/q.js | 139 + .../js/lib/codemirror/mode/r/index.html | 85 + .../js/lib/codemirror/mode/r/r.js | 162 + .../codemirror/mode/rpm/changes/index.html | 66 + .../js/lib/codemirror/mode/rpm/index.html | 149 + .../js/lib/codemirror/mode/rpm/rpm.js | 101 + .../js/lib/codemirror/mode/rst/index.html | 535 + .../js/lib/codemirror/mode/rst/rst.js | 557 ++ .../js/lib/codemirror/mode/ruby/index.html | 183 + .../js/lib/codemirror/mode/ruby/ruby.js | 285 + .../js/lib/codemirror/mode/ruby/test.js | 14 + .../js/lib/codemirror/mode/rust/index.html | 60 + .../js/lib/codemirror/mode/rust/rust.js | 451 + .../js/lib/codemirror/mode/sass/index.html | 66 + .../js/lib/codemirror/mode/sass/sass.js | 414 + .../js/lib/codemirror/mode/scheme/index.html | 77 + .../js/lib/codemirror/mode/scheme/scheme.js | 249 + .../js/lib/codemirror/mode/shell/index.html | 66 + .../js/lib/codemirror/mode/shell/shell.js | 139 + .../js/lib/codemirror/mode/shell/test.js | 58 + .../js/lib/codemirror/mode/sieve/index.html | 93 + .../js/lib/codemirror/mode/sieve/sieve.js | 193 + .../js/lib/codemirror/mode/slim/index.html | 96 + .../js/lib/codemirror/mode/slim/slim.js | 575 ++ .../js/lib/codemirror/mode/slim/test.js | 96 + .../lib/codemirror/mode/smalltalk/index.html | 68 + .../codemirror/mode/smalltalk/smalltalk.js | 168 + .../js/lib/codemirror/mode/smarty/index.html | 138 + .../js/lib/codemirror/mode/smarty/smarty.js | 225 + .../js/lib/codemirror/mode/solr/index.html | 57 + .../js/lib/codemirror/mode/solr/solr.js | 104 + .../js/lib/codemirror/mode/soy/index.html | 68 + .../js/lib/codemirror/mode/soy/soy.js | 198 + .../js/lib/codemirror/mode/sparql/index.html | 61 + .../js/lib/codemirror/mode/sparql/sparql.js | 174 + .../codemirror/mode/spreadsheet/index.html | 42 + .../mode/spreadsheet/spreadsheet.js | 109 + .../js/lib/codemirror/mode/sql/index.html | 84 + .../js/lib/codemirror/mode/sql/sql.js | 391 + .../js/lib/codemirror/mode/stex/index.html | 110 + .../js/lib/codemirror/mode/stex/stex.js | 251 + .../js/lib/codemirror/mode/stex/test.js | 123 + .../js/lib/codemirror/mode/stylus/index.html | 106 + .../js/lib/codemirror/mode/stylus/stylus.js | 768 ++ .../js/lib/codemirror/mode/swift/index.html | 88 + .../js/lib/codemirror/mode/swift/swift.js | 203 + .../js/lib/codemirror/mode/tcl/index.html | 142 + .../js/lib/codemirror/mode/tcl/tcl.js | 147 + .../js/lib/codemirror/mode/textile/index.html | 191 + .../js/lib/codemirror/mode/textile/test.js | 417 + .../js/lib/codemirror/mode/textile/textile.js | 469 + .../lib/codemirror/mode/tiddlywiki/index.html | 154 + .../codemirror/mode/tiddlywiki/tiddlywiki.css | 14 + .../codemirror/mode/tiddlywiki/tiddlywiki.js | 358 + .../js/lib/codemirror/mode/tiki/index.html | 95 + .../js/lib/codemirror/mode/tiki/tiki.css | 26 + .../js/lib/codemirror/mode/tiki/tiki.js | 312 + .../js/lib/codemirror/mode/toml/index.html | 73 + .../js/lib/codemirror/mode/toml/toml.js | 88 + .../js/lib/codemirror/mode/tornado/index.html | 63 + .../js/lib/codemirror/mode/tornado/tornado.js | 68 + .../js/lib/codemirror/mode/troff/index.html | 146 + .../js/lib/codemirror/mode/troff/troff.js | 82 + .../lib/codemirror/mode/ttcn-cfg/index.html | 115 + .../lib/codemirror/mode/ttcn-cfg/ttcn-cfg.js | 214 + .../js/lib/codemirror/mode/ttcn/index.html | 118 + .../js/lib/codemirror/mode/ttcn/ttcn.js | 283 + .../js/lib/codemirror/mode/turtle/index.html | 50 + .../js/lib/codemirror/mode/turtle/turtle.js | 162 + .../js/lib/codemirror/mode/twig/index.html | 45 + .../js/lib/codemirror/mode/twig/twig.js | 132 + .../js/lib/codemirror/mode/vb/index.html | 102 + .../js/lib/codemirror/mode/vb/vb.js | 276 + .../lib/codemirror/mode/vbscript/index.html | 55 + .../lib/codemirror/mode/vbscript/vbscript.js | 350 + .../lib/codemirror/mode/velocity/index.html | 118 + .../lib/codemirror/mode/velocity/velocity.js | 201 + .../js/lib/codemirror/mode/verilog/index.html | 120 + .../js/lib/codemirror/mode/verilog/test.js | 273 + .../js/lib/codemirror/mode/verilog/verilog.js | 537 + .../js/lib/codemirror/mode/vhdl/index.html | 95 + .../js/lib/codemirror/mode/vhdl/vhdl.js | 189 + .../js/lib/codemirror/mode/xml/index.html | 57 + .../js/lib/codemirror/mode/xml/test.js | 51 + .../js/lib/codemirror/mode/xml/xml.js | 385 + .../js/lib/codemirror/mode/xquery/index.html | 210 + .../js/lib/codemirror/mode/xquery/test.js | 67 + .../js/lib/codemirror/mode/xquery/xquery.js | 437 + .../js/lib/codemirror/mode/yaml/index.html | 80 + .../js/lib/codemirror/mode/yaml/yaml.js | 117 + .../js/lib/codemirror/mode/z80/index.html | 53 + .../js/lib/codemirror/mode/z80/z80.js | 116 + .../js/lib/codemirror/package.json | 20 + .../js/lib/codemirror/theme/3024-day.css | 41 + .../js/lib/codemirror/theme/3024-night.css | 39 + .../lib/codemirror/theme/ambiance-mobile.css | 5 + .../js/lib/codemirror/theme/ambiance.css | 76 + .../js/lib/codemirror/theme/base16-dark.css | 38 + .../js/lib/codemirror/theme/base16-light.css | 38 + .../js/lib/codemirror/theme/blackboard.css | 32 + .../js/lib/codemirror/theme/cobalt.css | 25 + .../js/lib/codemirror/theme/colorforth.css | 33 + .../js/lib/codemirror/theme/dracula.css | 87 + .../js/lib/codemirror/theme/eclipse.css | 23 + .../js/lib/codemirror/theme/elegant.css | 13 + .../js/lib/codemirror/theme/erlang-dark.css | 34 + .../js/lib/codemirror/theme/icecoder.css | 42 + .../js/lib/codemirror/theme/lesser-dark.css | 47 + .../js/lib/codemirror/theme/liquibyte.css | 95 + .../js/lib/codemirror/theme/material.css | 105 + .../js/lib/codemirror/theme/mbo.css | 37 + .../js/lib/codemirror/theme/mdn-like.css | 46 + .../js/lib/codemirror/theme/midnight.css | 47 + .../js/lib/codemirror/theme/monokai.css | 35 + .../js/lib/codemirror/theme/neat.css | 12 + .../js/lib/codemirror/theme/neo.css | 43 + .../js/lib/codemirror/theme/night.css | 28 + .../js/lib/codemirror/theme/paraiso-dark.css | 38 + .../js/lib/codemirror/theme/paraiso-light.css | 38 + .../lib/codemirror/theme/pastel-on-dark.css | 53 + .../js/lib/codemirror/theme/rubyblue.css | 25 + .../js/lib/codemirror/theme/seti.css | 88 + .../js/lib/codemirror/theme/solarized.css | 165 + .../js/lib/codemirror/theme/the-matrix.css | 30 + .../theme/tomorrow-night-bright.css | 35 + .../theme/tomorrow-night-eighties.css | 38 + .../js/lib/codemirror/theme/ttcn.css | 65 + .../js/lib/codemirror/theme/twilight.css | 32 + .../js/lib/codemirror/theme/vibrant-ink.css | 34 + .../js/lib/codemirror/theme/xq-dark.css | 53 + .../js/lib/codemirror/theme/xq-light.css | 43 + .../js/lib/codemirror/theme/yeti.css | 86 + .../js/lib/codemirror/theme/zenburn.css | 37 + filemin/unauthenticated/js/main.js | 325 + .../unauthenticated/templates/dialogs.html | 320 + .../templates/legacy_dialogs.html | 163 + .../templates/legacy_quicks.html | 26 + filemin/unauthenticated/templates/menu.html | 100 + filemin/unauthenticated/templates/quicks.html | 58 + filemin/upload.cgi | 108 + 697 files changed, 77298 insertions(+) create mode 100644 filemin/CHANGELOG create mode 100644 filemin/acl_security.pl create mode 100644 filemin/bookmark.cgi create mode 100644 filemin/chmod.cgi create mode 100644 filemin/chown.cgi create mode 100644 filemin/compress.cgi create mode 100644 filemin/config create mode 100644 filemin/config.cgi create mode 100644 filemin/config.info create mode 100644 filemin/copy.cgi create mode 100644 filemin/create_file.cgi create mode 100644 filemin/create_folder.cgi create mode 100644 filemin/cut.cgi create mode 100644 filemin/defaultacl create mode 100644 filemin/defaultuconf create mode 100644 filemin/delete.cgi create mode 100644 filemin/download.cgi create mode 100644 filemin/edit_file.cgi create mode 100644 filemin/extract.cgi create mode 100644 filemin/filemin-lib.pl create mode 100644 filemin/http_download.cgi create mode 100644 filemin/images/icon.gif create mode 100644 filemin/images/icons/AUTHORS create mode 100644 filemin/images/icons/COPYING create mode 100644 filemin/images/icons/mime/application-7zip.png create mode 100644 filemin/images/icons/mime/application-atom+xml.png create mode 100644 filemin/images/icons/mime/application-gzip.png create mode 100644 filemin/images/icons/mime/application-illustrator.png create mode 100644 filemin/images/icons/mime/application-javascript.png create mode 100644 filemin/images/icons/mime/application-mbox.png create mode 100644 filemin/images/icons/mime/application-msword.png create mode 100644 filemin/images/icons/mime/application-octet-stream.png create mode 100644 filemin/images/icons/mime/application-ogg.png create mode 100644 filemin/images/icons/mime/application-pdf.png create mode 100644 filemin/images/icons/mime/application-pgp-encrypted.png create mode 100644 filemin/images/icons/mime/application-pgp-keys.png create mode 100644 filemin/images/icons/mime/application-pkcs7-mime.png create mode 100644 filemin/images/icons/mime/application-rss+xml.png create mode 100644 filemin/images/icons/mime/application-rtf.png create mode 100644 filemin/images/icons/mime/application-text.png create mode 100644 filemin/images/icons/mime/application-vnd.ms-access.png create mode 100644 filemin/images/icons/mime/application-vnd.ms-excel.png create mode 100644 filemin/images/icons/mime/application-vnd.ms-powerpoint.png create mode 100644 filemin/images/icons/mime/application-vnd.ms-word.png create mode 100644 filemin/images/icons/mime/application-vnd.oasis.opendocument.database.png create mode 100644 filemin/images/icons/mime/application-vnd.oasis.opendocument.formula.png create mode 100644 filemin/images/icons/mime/application-vnd.oasis.opendocument.graphics.png create mode 100644 filemin/images/icons/mime/application-vnd.oasis.opendocument.spreadsheet.png create mode 100644 filemin/images/icons/mime/application-vnd.oasis.opendocument.text-web.png create mode 100644 filemin/images/icons/mime/application-vnd.oasis.opendocument.text.png create mode 100644 filemin/images/icons/mime/application-vnd.openxmlformats-officedocument.presentationml.presentation.png create mode 100644 filemin/images/icons/mime/application-vnd.openxmlformats-officedocument.presentationml.slideshow.png create mode 100644 filemin/images/icons/mime/application-vnd.openxmlformats-officedocument.spreadsheetml.sheet.png create mode 100644 filemin/images/icons/mime/application-vnd.openxmlformats-officedocument.wordprocessingml.document.png create mode 100644 filemin/images/icons/mime/application-vnd.rn-realmedia.png create mode 100644 filemin/images/icons/mime/application-vnd.scribus.png create mode 100644 filemin/images/icons/mime/application-vnd.sun.xml.calc.png create mode 100644 filemin/images/icons/mime/application-vnd.sun.xml.draw.png create mode 100644 filemin/images/icons/mime/application-vnd.sun.xml.writer.png create mode 100644 filemin/images/icons/mime/application-vnd.wordperfect.png create mode 100644 filemin/images/icons/mime/application-x-7z-compressed.png create mode 100644 filemin/images/icons/mime/application-x-7zip.png create mode 100644 filemin/images/icons/mime/application-x-ace.png create mode 100644 filemin/images/icons/mime/application-x-arc.png create mode 100644 filemin/images/icons/mime/application-x-archive.png create mode 100644 filemin/images/icons/mime/application-x-bittorrent.png create mode 100644 filemin/images/icons/mime/application-x-cd-image.png create mode 100644 filemin/images/icons/mime/application-x-class-file.png create mode 100644 filemin/images/icons/mime/application-x-compress.png create mode 100644 filemin/images/icons/mime/application-x-compressed-tar.png create mode 100644 filemin/images/icons/mime/application-x-csh.png create mode 100644 filemin/images/icons/mime/application-x-csproj.png create mode 100644 filemin/images/icons/mime/application-x-cue.png create mode 100644 filemin/images/icons/mime/application-x-deb.png create mode 100644 filemin/images/icons/mime/application-x-designer.png create mode 100644 filemin/images/icons/mime/application-x-desktop.png create mode 100644 filemin/images/icons/mime/application-x-executable.png create mode 100644 filemin/images/icons/mime/application-x-extension-html.png create mode 100644 filemin/images/icons/mime/application-x-flash-video.png create mode 100644 filemin/images/icons/mime/application-x-glade.png create mode 100644 filemin/images/icons/mime/application-x-gnome-theme-package.png create mode 100644 filemin/images/icons/mime/application-x-gnumeric.png create mode 100644 filemin/images/icons/mime/application-x-gzip.png create mode 100644 filemin/images/icons/mime/application-x-jar.png create mode 100644 filemin/images/icons/mime/application-x-java-archive.png create mode 100644 filemin/images/icons/mime/application-x-java.png create mode 100644 filemin/images/icons/mime/application-x-javascript.png create mode 100644 filemin/images/icons/mime/application-x-keepass.png create mode 100644 filemin/images/icons/mime/application-x-lha.png create mode 100644 filemin/images/icons/mime/application-x-lhz.png create mode 100644 filemin/images/icons/mime/application-x-m4.png create mode 100644 filemin/images/icons/mime/application-x-matroska.png create mode 100644 filemin/images/icons/mime/application-x-ms-dos-executable.png create mode 100644 filemin/images/icons/mime/application-x-msdownload.png create mode 100644 filemin/images/icons/mime/application-x-ole-storage.png create mode 100644 filemin/images/icons/mime/application-x-pak.png create mode 100644 filemin/images/icons/mime/application-x-pem-key.png create mode 100644 filemin/images/icons/mime/application-x-php.png create mode 100644 filemin/images/icons/mime/application-x-python-bytecode.png create mode 100644 filemin/images/icons/mime/application-x-rar.png create mode 100644 filemin/images/icons/mime/application-x-rpm.png create mode 100644 filemin/images/icons/mime/application-x-ruby.png create mode 100644 filemin/images/icons/mime/application-x-scribus.png create mode 100644 filemin/images/icons/mime/application-x-shellscript.png create mode 100644 filemin/images/icons/mime/application-x-shockwave-flash.png create mode 100644 filemin/images/icons/mime/application-x-sln.png create mode 100644 filemin/images/icons/mime/application-x-sqlite2.png create mode 100644 filemin/images/icons/mime/application-x-sqlite3.png create mode 100644 filemin/images/icons/mime/application-x-tar.png create mode 100644 filemin/images/icons/mime/application-x-theme.png create mode 100644 filemin/images/icons/mime/application-x-trash.png create mode 100644 filemin/images/icons/mime/application-x-wais-source.png create mode 100644 filemin/images/icons/mime/application-x-zip.png create mode 100644 filemin/images/icons/mime/application-xml.png create mode 100644 filemin/images/icons/mime/application-zip.png create mode 100644 filemin/images/icons/mime/audio-mpeg.png create mode 100644 filemin/images/icons/mime/audio-x-adpcm.png create mode 100644 filemin/images/icons/mime/audio-x-flac+ogg.png create mode 100644 filemin/images/icons/mime/audio-x-generic.png create mode 100644 filemin/images/icons/mime/audio-x-mod.png create mode 100644 filemin/images/icons/mime/audio-x-mp3-playlist.png create mode 100644 filemin/images/icons/mime/audio-x-mpeg.png create mode 100644 filemin/images/icons/mime/audio-x-mpegurl.png create mode 100644 filemin/images/icons/mime/audio-x-ms-wma.png create mode 100644 filemin/images/icons/mime/audio-x-s3m.png create mode 100644 filemin/images/icons/mime/audio-x-scpls.png create mode 100644 filemin/images/icons/mime/audio-x-speex+ogg.png create mode 100644 filemin/images/icons/mime/audio-x-vorbis+ogg.png create mode 100644 filemin/images/icons/mime/audio-x-wav.png create mode 100644 filemin/images/icons/mime/audio-x-xm.png create mode 100644 filemin/images/icons/mime/authors.png create mode 100644 filemin/images/icons/mime/binary.png create mode 100644 filemin/images/icons/mime/deb.png create mode 100644 filemin/images/icons/mime/document.png create mode 100644 filemin/images/icons/mime/empty.png create mode 100644 filemin/images/icons/mime/encrypted.png create mode 100644 filemin/images/icons/mime/exec.png create mode 100644 filemin/images/icons/mime/extension.png create mode 100644 filemin/images/icons/mime/folder_tar.png create mode 100644 filemin/images/icons/mime/font-x-generic.png create mode 100644 filemin/images/icons/mime/font.png create mode 100644 filemin/images/icons/mime/font.xpm create mode 100644 filemin/images/icons/mime/font_bitmap.png create mode 100644 filemin/images/icons/mime/font_truetype.png create mode 100644 filemin/images/icons/mime/font_type1.png create mode 100644 filemin/images/icons/mime/gtk-file.png create mode 100644 filemin/images/icons/mime/html.png create mode 100644 filemin/images/icons/mime/image-bmp.png create mode 100644 filemin/images/icons/mime/image-gif.png create mode 100644 filemin/images/icons/mime/image-jpeg.png create mode 100644 filemin/images/icons/mime/image-jpeg2000.png create mode 100644 filemin/images/icons/mime/image-png.png create mode 100644 filemin/images/icons/mime/image-svg+xml.png create mode 100644 filemin/images/icons/mime/image-tiff.png create mode 100644 filemin/images/icons/mime/image-vnd.adobe.photoshop.png create mode 100644 filemin/images/icons/mime/image-vnd.microsoft.icon.png create mode 100644 filemin/images/icons/mime/image-x-apple-ios-png.png create mode 100644 filemin/images/icons/mime/image-x-eps.png create mode 100644 filemin/images/icons/mime/image-x-generic.png create mode 100644 filemin/images/icons/mime/image-x-ico.png create mode 100644 filemin/images/icons/mime/image-x-icon.png create mode 100644 filemin/images/icons/mime/image-x-portable-bitmap.png create mode 100644 filemin/images/icons/mime/image-x-psd.png create mode 100644 filemin/images/icons/mime/image-x-psdimage-x-psd.png create mode 100644 filemin/images/icons/mime/image-x-svg+xml.png create mode 100644 filemin/images/icons/mime/image-x-tga.png create mode 100644 filemin/images/icons/mime/image-x-win-bitmap.png create mode 100644 filemin/images/icons/mime/image-x-xcf.png create mode 100644 filemin/images/icons/mime/image-x-xpixmap.png create mode 100644 filemin/images/icons/mime/image.png create mode 100644 filemin/images/icons/mime/inode-directory.png create mode 100644 filemin/images/icons/mime/inode-mount-point.png create mode 100644 filemin/images/icons/mime/inode-symlink.png create mode 100644 filemin/images/icons/mime/jpeg.png create mode 100644 filemin/images/icons/mime/jpg.png create mode 100644 filemin/images/icons/mime/kpresenter_kpr.png create mode 100644 filemin/images/icons/mime/media-audio.png create mode 100644 filemin/images/icons/mime/media-image.png create mode 100644 filemin/images/icons/mime/media-video.png create mode 100644 filemin/images/icons/mime/message-rfc822.png create mode 100644 filemin/images/icons/mime/message.png create mode 100644 filemin/images/icons/mime/misc.png create mode 100644 filemin/images/icons/mime/multipart-encrypted.png create mode 100644 filemin/images/icons/mime/none.png create mode 100644 filemin/images/icons/mime/office-document.png create mode 100644 filemin/images/icons/mime/office-illustration.png create mode 100644 filemin/images/icons/mime/office-spreadsheet.png create mode 100644 filemin/images/icons/mime/openofficeorg3-database.png create mode 100644 filemin/images/icons/mime/openofficeorg3-drawing.png create mode 100644 filemin/images/icons/mime/openofficeorg3-extension.png create mode 100644 filemin/images/icons/mime/openofficeorg3-oasis-database.png create mode 100644 filemin/images/icons/mime/openofficeorg3-oasis-spreadsheet.png create mode 100644 filemin/images/icons/mime/opera-extension.png create mode 100644 filemin/images/icons/mime/opera-unite-application.png create mode 100644 filemin/images/icons/mime/opera-widget.png create mode 100644 filemin/images/icons/mime/package-x-generic.png create mode 100644 filemin/images/icons/mime/package.png create mode 100644 filemin/images/icons/mime/package_editors.png create mode 100644 filemin/images/icons/mime/package_wordprocessing.png create mode 100644 filemin/images/icons/mime/pdf.png create mode 100644 filemin/images/icons/mime/phatch-actionlist.png create mode 100644 filemin/images/icons/mime/playlist-automatic.png create mode 100644 filemin/images/icons/mime/playlist.png create mode 100644 filemin/images/icons/mime/rpm.png create mode 100644 filemin/images/icons/mime/shellscript.png create mode 100644 filemin/images/icons/mime/sound.png create mode 100644 filemin/images/icons/mime/source-playlist.png create mode 100644 filemin/images/icons/mime/source-smart-playlist.png create mode 100644 filemin/images/icons/mime/spreadsheet.png create mode 100644 filemin/images/icons/mime/stock_addressbook.png create mode 100644 filemin/images/icons/mime/stock_calendar.png create mode 100644 filemin/images/icons/mime/stock_script.png create mode 100644 filemin/images/icons/mime/svg.png create mode 100644 filemin/images/icons/mime/tar.png create mode 100644 filemin/images/icons/mime/template_source.png create mode 100644 filemin/images/icons/mime/text-css.png create mode 100644 filemin/images/icons/mime/text-enriched.png create mode 100644 filemin/images/icons/mime/text-html.png create mode 100644 filemin/images/icons/mime/text-htmlh.png create mode 100644 filemin/images/icons/mime/text-mht.png create mode 100644 filemin/images/icons/mime/text-plain.png create mode 100644 filemin/images/icons/mime/text-richtext.png create mode 100644 filemin/images/icons/mime/text-spreadsheet.png create mode 100644 filemin/images/icons/mime/text-x-authors.png create mode 100644 filemin/images/icons/mime/text-x-bak.png create mode 100644 filemin/images/icons/mime/text-x-bibtex.png create mode 100644 filemin/images/icons/mime/text-x-c++.png create mode 100644 filemin/images/icons/mime/text-x-c++hdr.png create mode 100644 filemin/images/icons/mime/text-x-c++src.png create mode 100644 filemin/images/icons/mime/text-x-c.png create mode 100644 filemin/images/icons/mime/text-x-changelog.png create mode 100644 filemin/images/icons/mime/text-x-chdr.png create mode 100644 filemin/images/icons/mime/text-x-copying.png create mode 100644 filemin/images/icons/mime/text-x-credits.png create mode 100644 filemin/images/icons/mime/text-x-csrc.png create mode 100644 filemin/images/icons/mime/text-x-css.png create mode 100644 filemin/images/icons/mime/text-x-generic-template.png create mode 100644 filemin/images/icons/mime/text-x-generic.png create mode 100644 filemin/images/icons/mime/text-x-install.png create mode 100644 filemin/images/icons/mime/text-x-java-source.png create mode 100644 filemin/images/icons/mime/text-x-java.png create mode 100644 filemin/images/icons/mime/text-x-javascript.png create mode 100644 filemin/images/icons/mime/text-x-makefile.png create mode 100644 filemin/images/icons/mime/text-x-preview.png create mode 100644 filemin/images/icons/mime/text-x-python.png create mode 100644 filemin/images/icons/mime/text-x-readme.png create mode 100644 filemin/images/icons/mime/text-x-script.png create mode 100644 filemin/images/icons/mime/text-x-source.png create mode 100644 filemin/images/icons/mime/text-x-sql.png create mode 100644 filemin/images/icons/mime/text-x-tex.png create mode 100644 filemin/images/icons/mime/text-xhtml+xml.png create mode 100644 filemin/images/icons/mime/text-xml.png create mode 100644 filemin/images/icons/mime/txt.png create mode 100644 filemin/images/icons/mime/txt2.png create mode 100644 filemin/images/icons/mime/unknown.png create mode 100644 filemin/images/icons/mime/vcalendar.png create mode 100644 filemin/images/icons/mime/video-mpeg.png create mode 100644 filemin/images/icons/mime/video-x-generic.png create mode 100644 filemin/images/icons/mime/video.png create mode 100644 filemin/images/icons/mime/vnd.oasis.opendocument.drawing.png create mode 100644 filemin/images/icons/mime/wordprocessing.png create mode 100644 filemin/images/icons/mime/www.png create mode 100644 filemin/images/icons/mime/x-dia-diagram.png create mode 100644 filemin/images/icons/mime/x-office-address-book.png create mode 100644 filemin/images/icons/mime/x-office-document.png create mode 100644 filemin/images/icons/mime/x-office-drawing.png create mode 100644 filemin/images/icons/mime/x-office-presentation.png create mode 100644 filemin/images/icons/mime/x-office-spreadsheet.png create mode 100644 filemin/images/icons/mime/zip.png create mode 100644 filemin/images/icons/quick/bookmark-new.png create mode 100644 filemin/images/icons/quick/browse.png create mode 100644 filemin/images/icons/quick/chmod.png create mode 100644 filemin/images/icons/quick/chown.png create mode 100644 filemin/images/icons/quick/compress.png create mode 100644 filemin/images/icons/quick/document-new.png create mode 100644 filemin/images/icons/quick/drive-harddisk.png create mode 100644 filemin/images/icons/quick/edit-copy.png create mode 100644 filemin/images/icons/quick/edit-cut.png create mode 100644 filemin/images/icons/quick/edit-find.png create mode 100644 filemin/images/icons/quick/edit-paste.png create mode 100644 filemin/images/icons/quick/edit.png create mode 100644 filemin/images/icons/quick/extract.png create mode 100644 filemin/images/icons/quick/folder-new.png create mode 100644 filemin/images/icons/quick/from-url.png create mode 100644 filemin/images/icons/quick/go-down.png create mode 100644 filemin/images/icons/quick/go-next.png create mode 100644 filemin/images/icons/quick/invert.png create mode 100644 filemin/images/icons/quick/remove.png create mode 100644 filemin/images/icons/quick/rename.png create mode 100644 filemin/images/icons/quick/select-all.png create mode 100644 filemin/images/icons/quick/upload.png create mode 100644 filemin/index.cgi create mode 100644 filemin/lang/ca create mode 100644 filemin/lang/ca.UTF-8 create mode 100644 filemin/lang/de.UTF-8 create mode 100644 filemin/lang/en create mode 100644 filemin/lang/en.UTF-8 create mode 100644 filemin/lang/no create mode 100644 filemin/lang/no.UTF-8 create mode 100644 filemin/lang/ru.UTF-8 create mode 100644 filemin/lib/File/BaseDir.pm create mode 100644 filemin/lib/File/Basename.pm create mode 100644 filemin/lib/File/MimeInfo.pm create mode 100644 filemin/module.info create mode 100644 filemin/paste.cgi create mode 100644 filemin/rename.cgi create mode 100644 filemin/save_config.cgi create mode 100644 filemin/save_file.cgi create mode 100644 filemin/search.cgi create mode 100644 filemin/unauthenticated/css/dataTables.bootstrap.css create mode 100644 filemin/unauthenticated/css/style.css create mode 100644 filemin/unauthenticated/dropdown/fg.menu.css create mode 100644 filemin/unauthenticated/dropdown/fg.menu.js create mode 100644 filemin/unauthenticated/jquery/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 filemin/unauthenticated/jquery/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 filemin/unauthenticated/jquery/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 filemin/unauthenticated/jquery/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 filemin/unauthenticated/jquery/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 filemin/unauthenticated/jquery/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 filemin/unauthenticated/jquery/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 filemin/unauthenticated/jquery/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 filemin/unauthenticated/jquery/images/ui-icons_222222_256x240.png create mode 100644 filemin/unauthenticated/jquery/images/ui-icons_2e83ff_256x240.png create mode 100644 filemin/unauthenticated/jquery/images/ui-icons_454545_256x240.png create mode 100644 filemin/unauthenticated/jquery/images/ui-icons_888888_256x240.png create mode 100644 filemin/unauthenticated/jquery/images/ui-icons_cd0a0a_256x240.png create mode 100644 filemin/unauthenticated/jquery/jquery-ui.min.css create mode 100644 filemin/unauthenticated/jquery/jquery-ui.min.js create mode 100644 filemin/unauthenticated/jquery/jquery-ui.theme.min.css create mode 100644 filemin/unauthenticated/jquery/jquery.min.js create mode 100644 filemin/unauthenticated/js/bootstrap-hover-dropdown.min.js create mode 100644 filemin/unauthenticated/js/chmod-calculator.js create mode 100644 filemin/unauthenticated/js/cmauto.js create mode 100644 filemin/unauthenticated/js/dataTables.bootstrap.js create mode 100644 filemin/unauthenticated/js/legacy.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/AUTHORS create mode 100644 filemin/unauthenticated/js/lib/codemirror/CONTRIBUTING.md create mode 100644 filemin/unauthenticated/js/lib/codemirror/LICENSE create mode 100644 filemin/unauthenticated/js/lib/codemirror/README.md create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/comment/comment.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/comment/continuecomment.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/dialog/dialog.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/dialog/dialog.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/display/fullscreen.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/display/fullscreen.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/display/panel.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/display/placeholder.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/display/rulers.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/edit/closebrackets.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/edit/closetag.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/edit/continuelist.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/edit/matchbrackets.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/edit/matchtags.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/edit/trailingspace.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/fold/brace-fold.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/fold/comment-fold.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/fold/foldcode.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/fold/foldgutter.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/fold/foldgutter.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/fold/indent-fold.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/fold/markdown-fold.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/fold/xml-fold.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/hint/anyword-hint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/hint/css-hint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/hint/html-hint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/hint/javascript-hint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/hint/show-hint.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/hint/show-hint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/hint/sql-hint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/hint/xml-hint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/lint/coffeescript-lint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/lint/css-lint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/lint/javascript-lint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/lint/json-lint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/lint/lint.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/lint/lint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/lint/yaml-lint.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/merge/merge.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/merge/merge.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/mode/loadmode.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/mode/multiplex.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/mode/multiplex_test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/mode/overlay.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/mode/simple.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/runmode/colorize.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/runmode/runmode-standalone.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/runmode/runmode.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/runmode/runmode.node.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/scroll/annotatescrollbar.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/scroll/scrollpastend.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/scroll/simplescrollbars.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/scroll/simplescrollbars.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/search/match-highlighter.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/search/matchesonscrollbar.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/search/matchesonscrollbar.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/search/search.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/search/searchcursor.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/selection/active-line.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/selection/mark-selection.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/selection/selection-pointer.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/tern/tern.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/tern/tern.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/tern/worker.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/addon/wrap/hardwrap.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/bower.json create mode 100644 filemin/unauthenticated/js/lib/codemirror/keymap/emacs.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/keymap/sublime.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/keymap/vim.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/lib/codemirror.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/lib/codemirror.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/apl/apl.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/apl/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/asciiarmor/asciiarmor.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/asciiarmor/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/asn.1/asn.1.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/asn.1/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/asterisk/asterisk.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/asterisk/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/brainfuck/brainfuck.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/brainfuck/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/clike/clike.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/clike/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/clike/scala.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/clike/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/clojure/clojure.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/clojure/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/cmake/cmake.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/cmake/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/cobol/cobol.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/cobol/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/coffeescript/coffeescript.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/coffeescript/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/commonlisp/commonlisp.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/commonlisp/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/css/css.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/css/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/css/less.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/css/less_test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/css/scss.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/css/scss_test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/css/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/cypher/cypher.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/cypher/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/d/d.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/d/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/dart/dart.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/dart/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/diff/diff.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/diff/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/django/django.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/django/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/dockerfile/dockerfile.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/dockerfile/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/dtd/dtd.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/dtd/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/dylan/dylan.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/dylan/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ebnf/ebnf.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ebnf/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ecl/ecl.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ecl/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/eiffel/eiffel.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/eiffel/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/elm/elm.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/elm/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/erlang/erlang.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/erlang/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/factor/factor.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/factor/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/forth/forth.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/forth/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/fortran/fortran.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/fortran/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/gas/gas.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/gas/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/gfm/gfm.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/gfm/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/gfm/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/gherkin/gherkin.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/gherkin/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/go/go.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/go/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/groovy/groovy.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/groovy/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/haml/haml.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/haml/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/haml/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/handlebars/handlebars.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/handlebars/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/haskell/haskell.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/haskell/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/haxe/haxe.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/haxe/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/htmlembedded/htmlembedded.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/htmlembedded/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/htmlmixed/htmlmixed.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/htmlmixed/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/http/http.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/http/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/idl/idl.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/idl/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/jade/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/jade/jade.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/javascript/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/javascript/javascript.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/javascript/json-ld.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/javascript/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/javascript/typescript.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/jinja2/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/jinja2/jinja2.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/julia/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/julia/julia.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/kotlin/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/kotlin/kotlin.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/livescript/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/livescript/livescript.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/lua/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/lua/lua.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/markdown/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/markdown/markdown.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/markdown/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/mathematica/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/mathematica/mathematica.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/meta.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/mirc/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/mirc/mirc.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/mllike/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/mllike/mllike.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/modelica/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/modelica/modelica.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/mumps/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/mumps/mumps.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/nginx/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/nginx/nginx.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ntriples/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ntriples/ntriples.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/octave/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/octave/octave.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/pascal/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/pascal/pascal.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/pegjs/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/pegjs/pegjs.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/perl/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/perl/perl.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/php/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/php/php.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/php/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/pig/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/pig/pig.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/properties/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/properties/properties.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/puppet/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/puppet/puppet.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/python/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/python/python.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/q/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/q/q.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/r/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/r/r.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/rpm/changes/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/rpm/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/rpm/rpm.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/rst/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/rst/rst.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ruby/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ruby/ruby.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ruby/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/rust/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/rust/rust.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/sass/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/sass/sass.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/scheme/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/scheme/scheme.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/shell/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/shell/shell.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/shell/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/sieve/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/sieve/sieve.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/slim/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/slim/slim.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/slim/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/smalltalk/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/smalltalk/smalltalk.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/smarty/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/smarty/smarty.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/solr/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/solr/solr.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/soy/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/soy/soy.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/sparql/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/sparql/sparql.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/spreadsheet/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/spreadsheet/spreadsheet.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/sql/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/sql/sql.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/stex/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/stex/stex.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/stex/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/stylus/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/stylus/stylus.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/swift/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/swift/swift.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tcl/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tcl/tcl.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/textile/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/textile/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/textile/textile.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tiddlywiki/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tiddlywiki/tiddlywiki.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tiddlywiki/tiddlywiki.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tiki/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tiki/tiki.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tiki/tiki.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/toml/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/toml/toml.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tornado/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/tornado/tornado.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/troff/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/troff/troff.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ttcn-cfg/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ttcn-cfg/ttcn-cfg.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ttcn/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/ttcn/ttcn.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/turtle/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/turtle/turtle.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/twig/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/twig/twig.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/vb/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/vb/vb.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/vbscript/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/vbscript/vbscript.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/velocity/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/velocity/velocity.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/verilog/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/verilog/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/verilog/verilog.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/vhdl/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/vhdl/vhdl.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/xml/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/xml/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/xml/xml.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/xquery/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/xquery/test.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/xquery/xquery.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/yaml/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/yaml/yaml.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/z80/index.html create mode 100644 filemin/unauthenticated/js/lib/codemirror/mode/z80/z80.js create mode 100644 filemin/unauthenticated/js/lib/codemirror/package.json create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/3024-day.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/3024-night.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/ambiance-mobile.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/ambiance.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/base16-dark.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/base16-light.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/blackboard.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/cobalt.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/colorforth.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/dracula.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/eclipse.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/elegant.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/erlang-dark.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/icecoder.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/lesser-dark.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/liquibyte.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/material.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/mbo.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/mdn-like.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/midnight.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/monokai.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/neat.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/neo.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/night.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/paraiso-dark.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/paraiso-light.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/pastel-on-dark.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/rubyblue.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/seti.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/solarized.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/the-matrix.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/tomorrow-night-bright.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/tomorrow-night-eighties.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/ttcn.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/twilight.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/vibrant-ink.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/xq-dark.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/xq-light.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/yeti.css create mode 100644 filemin/unauthenticated/js/lib/codemirror/theme/zenburn.css create mode 100644 filemin/unauthenticated/js/main.js create mode 100644 filemin/unauthenticated/templates/dialogs.html create mode 100644 filemin/unauthenticated/templates/legacy_dialogs.html create mode 100644 filemin/unauthenticated/templates/legacy_quicks.html create mode 100644 filemin/unauthenticated/templates/menu.html create mode 100644 filemin/unauthenticated/templates/quicks.html create mode 100644 filemin/upload.cgi diff --git a/filemin/CHANGELOG b/filemin/CHANGELOG new file mode 100644 index 000000000..6c04ca2af --- /dev/null +++ b/filemin/CHANGELOG @@ -0,0 +1,194 @@ +-- Version 0.9.6 -- + - Fixed `Undefined subroutine &filemin::ceil + Caused on some systems by not including POSIX package in filemin-lib.pl. + - Major Authentic interface improvement by Ilia Rostovtsev + 1. Working sorting files by size (with next Authentic Theme - perfectly, now just alright). + This fix will also prevent fatal code breaks despite of user settings + 2. Store user chose on columns sorting upon page refresh + 3. Hide paginations when there is nothing to paginate. + 4. Let user navigate with arrows (left/right) when trying to do pagination + - Code cleanup and security tightening by Jamie Cameron + - Add ACL options to allowing running as a specific user, thanks Jamie :) + - WARNING: work as root is now DEFAULT behavior. + IF YOU GRANTED FILEMIN ACCESS TO ANY USERS NOT SUPPOSED TO WORK AS ROOT - GO AND CHECK ACL!!! + + #42 fixed: + - Fixing conflict with Authentic Theme codeMirror + By Ilia. + + #46 fixed: + - Module is now installable from Usermin. + When running in Usermin, access is always as the connected user. + + #52 fixed: + - Working as non UNIX user is now possible. By Jamie Cameron. + + #54 fixed: + - Pasting a directory either by copy or cut pasted not the directory, but it's content. + +-- Version 0.9.5 -- + - Made top level menu items translatable. + - Added https://github.com/Real-Gecko/filemin/pull/29 + Selected rows also highlight on hover + color tweaks, by https://github.com/qooob + - Some code cleanup, got rid of Regexp::Common and URI dependencies. + Thanks to Jamie Cameron. + - Added error message if file saving fails. + - Removed not working "Help" link for now. + + #35 fixed: + - Permissions column configurable and displayable. + + #36 fixed: + - README instructions for Debian/Ubuntu fixed. + +-- Version 0.9.4 -- + - Implemented "Search". + Users may search files and folders by name, wildcards supported. + - Symlinked inode-mount-point.png to inode-directory.png. + Mount points displayed with 'directory' icon. + - Made toolbar more compact under modern themes. + - Added per user configuration. + Users now can individually configure some display options. + * Items per page - how many entries to display in one page, OLD THEMES ONLY!. + * Columns - users can check which columns he/she wants to see. + * Authentic theme users may disable pagination completely. + * Choose toolbar style between menu with dropdowns or good old "all in one". + * Manage personal bookmarks + - Implemented "Bookmarks" functionality. + Users can now bookmark current directory. + Bookmarks are managed in per user module settings. + - Added "Save and close" button on file edit page. + Save button now saves and reopens file for editing again, + while save and close saves and redirects back to originated folder. + - Update Russian translation. + + #21 fixed: + - Added Codemirror to module for syntax highlighting, thanks to https://github.com/pabloko for solution. + - Under Authentic 14.01 now works too, thanks to https://github.com/qooob for fix. + + #24 fixed: + - Added zip compression method, user now can select between 'zip' and 'tar' compression methods. + + #27 fixed: + - Chmodding now have new option to apply new permissions to: + * Selected directories and files only + * Selected files and directorires and files in selected directories + * All (recursive) + * Selected files and files under selected directories and subdirectories + * Selected directories and subdirectories + + #28 fixed: + - Added new toolbar style - menu-like with dropdowns (Authentic only). + + #31 fixed: + - Removed Data::Dumper declaration. + +-- Version 0.9.3 -- + - Removed unused CGI dependency. + - "Increased" download speed by increasing buffer length in download.cgi. + - Some syntax errors fixed in english translation, thanks to https://github.com/Zen4All + - Specially for Fireserver developers http://www.fireserver.com.br/index_en.html + Added "Work as root" option to ACL, if enabled for any particular user he/she will work as 'root', + but directory access will still be limited to those listed in ACL. + BEWARE!!! DO NOT ENABLE THIS OPTION FOR ANYONE UNLESS YOU'RE REALLY SURE WHAT ARE YOU DOING!!! + + #17 fixed: + - YAML files are now editable. + + #20 fixed: + - Using Perl's `-d` to determine if entry is file or folder. + +-- Version 0.9.2 -- + - Switched to Webmin functions for HTTP/FTP Download, so download progress is shown now. Got rid of File::Fetch dependecy in module code. + - HTTP/FTP Download now prompts for username and password on remote server, if any required user can provide it. + - Removed "openlayers" folder. How did it get in here???? :D + - Completely rewrote upload.cgi. Now upload progress is shown with Webmin`s upload tracker. + Memory usage is low due to direct HD write, even with REALLY big uploads(tested with 3 files totalling 1.61 GB). + BEWARE: if user reaches his/her disk quota then Webmin simply resets connection with no errors, can do nothing with it right now. + - Fixed "select-unselect" checkbox behavior for old themes. + - Updated russian translation. + - THE LONG WAITED! THE MOST WANTED! THE ONE AND ONLY - ACL!!! + Default ACL behavior sets only one ACL entry '$HOME' for each user. This locks user in $HOME directory. + To grant full FS access to user replace '$HOME' with '$ROOT' in user`s ACL. + If there`s only one entry in ACL then it counts as "home" or "chroot", otherwise user will see accessible dirs relative to "/", just like it is in old FM. + Avoid trailing slash in ACL entries: "/usr/share/webmin" - gooooood, "/home/test/" - baaaaad. + Root bypasses ACL completely. + Note that even though user can be granted full FS access, he still works with his own privileges. + So anything that requires "root" permissions or "sudo" won't work. + - Folders go first. + Rewrote directory listing procedure, now folders appear before files in list as in any other adequate file manager. + As a result first and second entry in '/' are now visible :) + Note that sorting table with javascript under Authentic or Framed themes will mix everything again until page reload ;-) + - Major code cleanup of rendering procedure. + - Fixed copy/cut/paste functionality. + - FreeBSD support added. + Module uses Regexp::Common and URI packages to validate URIs in HTTP/FTP download functionality. + Be sure to install theese to make functionality work. + Admin user created during Webmin installation is not UNIX user, so module won't work for him. + If you want to provide some "system" file operations then convert "root" to Webmin user. + + #11 fixed: + - CRLF is replaced with UNIX style LF while saving a file. + +-- Version 0.9.1 -- +#8 fixed: + - Not sure if it was an issue, cause I was unable to reproduce "User without $HOME" scenario. However added some code to handle this, just in case. + +#7 fixed: + - Removed Archive::* dependencies, all archive extraction procedures now go through system calls. *.tar.gz, *.tar.xz, *.tar.bz2, *.zip archive types tested. + +#6 fixed: + - Switched to Regexp::Common for URI validation in "HTTP Download" operation to avoid additional dependencies. + +#5 fixed: + - Added HDD icon for "/" while under root for legacy themes. + + - Added BWTheme support. + - Changed license to BSD style. + - Chown now asks for group too. + - Slight interface improvements for modern dialogs. + - Major interface imprevements for legacy dialogs, jQuery and jQueryUI shipped with the module for this purpose. + - Added $in{'...'} parameters check in some operations to prevent errors if user submits emtpy form by hitting "Enter". + - Changed textarea font to monospace. + - Added sticky bit and setgid to chmod. + - Chmod and chown can be done recursively. + - Made list table more compact for Bootstrap enabled themes. + - Removed group column, group is displayed now within "Owner User" column: "root:root", "realgecko:users" etc. + - Modified date/time display format for better sorting under Authentic theme. + - Added "Refresh" quick button for modern themes, just for fun :D + - Added a work around to fix JS hell provided by Framed Theme family with "onmouseover" and "onmouseout" events, that led to unselectable rows by "Select All" and "Inverse Selection" operations. + - Using the same class to highlight rows as Authentic. + - Moved icons to images folder, as Authentic Theme author improved third party modules' files handling. + - Added .deb package for distribution flexibility. + +-- Version 0.9 -- +Mielstone reached: + - Checks for overwrites while using paste, new folder, new file, upload, http download ... at last :D + - If file exists it will not be overwritten. + - BEWARE: uncompressing archive still overwrites existing files! + +#1 fixed: + - After long discussion upper-left toolbar finally looks good in modern interface + - Thanks to https://github.com/Goeny for his brilliant solution and https://github.com/qooob for debugging + +#3 fixed: + - Some misspellings fixed + +#5 fix suggestion: + - Replaced '~' for '/' directory with FontAwesome's HDD icon, still open for discussion... + +Minor tweaks for modern interface +More verbose output on errors + +-- Version 0.8.3 -- +Added tooltips for icons on toolbar +Message appears if nothing selected and user tries copy/cut/compress/chmod/chown/delete + +-- Version 0.8.2 -- +Various bug fixes +Added Authentic Theme support +"root" is not locked in his "~" dir anymore +Check for overwrites during http download, and only there for now... + +-- Version 0.8.1 -- +Initial release diff --git a/filemin/acl_security.pl b/filemin/acl_security.pl new file mode 100644 index 000000000..751e0c73e --- /dev/null +++ b/filemin/acl_security.pl @@ -0,0 +1,61 @@ +require 'filemin-lib.pl'; + +sub acl_security_form { + my ($access) = @_; + + # Directories the user can access + print &ui_table_row($text{'acl_allowed_paths'}, + ui_textarea("allowed_paths", + join("\n", split(/\s+/, $access->{'allowed_paths'})), + 10, 80, undef, undef, "style='width: 100%'"), 2); + + # Mimetypes allowed to be edited + print &ui_table_row($text{'acl_allowed_for_edit'}, + ui_textarea("allowed_for_edit", + join("\n", split(/\s+/, $access->{'allowed_for_edit'})), + 10, 80, undef, undef, "style='width: 100%'"), 2); + + # Run as Unix user + print &ui_table_row($text{'acl_work_as'}, + ui_radio_table("user_mode", $access->{'work_as_root'} ? 0 : + $access->{'work_as_user'} ? 2 : 1, + [ [ 0, $text{'acl_root'} ], + [ 1, $text{'acl_same'} ], + [ 2, $text{'acl_user'}, + ui_user_textbox("acl_user", $access->{'work_as_user'}) ] ]), + 3); + + # Upload max + print &ui_table_row($text{'acl_max'}, + &ui_opt_textbox("max", $access->{'max'}, 10, $text{'acl_unlimited'}). + " ".$text{'acl_bytes'}, 3); +} + +sub acl_security_save { + my ($access, $in) = @_; + local @allowed_paths = split(/\s+/, $in->{'allowed_paths'}); + if (scalar(@allowed_paths) == 0) { &error("No allowed paths defined"); } + for $path(@allowed_paths) { + if (!-e $path && $path ne '$HOME' && $path ne '$ROOT') { + &error(&text('acl_epath', &html_escape($path))); + } + } + $access->{'allowed_paths'} = join(" ", @allowed_paths); + + local @allowed_for_edit = split(/\s+/, $in->{'allowed_for_edit'}); + if (scalar(@allowed_for_edit) == 0) { &error("No mimetypes allowed for edit defined"); } + $access->{'allowed_for_edit'} = join(" ", @allowed_for_edit); + + if ($in->{'user_mode'} == 0) { + $access->{'work_as_root'} = 1; + $access->{'work_as_user'} = undef; + } elsif ($in->{'user_mode'} == 1) { + $access->{'work_as_root'} = 0; + $access->{'work_as_user'} = undef; + } else { + defined(getpwnam($in->{'acl_user'})) || &error($text{'acl_euser'}); + $access->{'work_as_root'} = 0; + $access->{'work_as_user'} = $in->{'acl_user'}; + } + $access->{'max'} = $in->{'max_def'} ? undef : $in{'max'}; +} diff --git a/filemin/bookmark.cgi b/filemin/bookmark.cgi new file mode 100644 index 000000000..5384a5c99 --- /dev/null +++ b/filemin/bookmark.cgi @@ -0,0 +1,23 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +use lib './lib'; + +&ReadParse(); + +get_paths(); + +$confdir = "$remote_user_info[7]/.filemin"; +if(!-e $confdir) { + mkdir $confdir or &error("$text{'error_creating_conf'}: $!"); +} + +if(!-e "$confdir/.bookmarks") { + utime time, time, "$configdir/.bookmarks"; +} + +$bookmarks = &read_file_lines($confdir.'/.bookmarks'); +push @$bookmarks, $path; +&flush_file_lines("$confdir/.bookmarks"); + +&redirect("index.cgi?path=$path"); diff --git a/filemin/chmod.cgi b/filemin/chmod.cgi new file mode 100644 index 000000000..dc1588728 --- /dev/null +++ b/filemin/chmod.cgi @@ -0,0 +1,78 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; + +&ReadParse(); + +get_paths(); + +my @errors; + +my $perms = $in{'perms'}; + +# Selected directories and files only +if($in{'applyto'} eq '1') { + foreach $name (split(/\0/, $in{'name'})) { + if (system_logged("chmod ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) { + push @errors, "$name - $text{'error_chmod'}: $?"; + } + } +} + +# Selected files and directories and files in selected directories +if($in{'applyto'} eq '2') { + foreach $name (split(/\0/, $in{'name'})) { + if(system_logged("chmod ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) { + push @errors, "$name - $text{'error_chmod'}: $?"; + } + if(-d "$cwd/$name") { + if(system_logged("find ".quotemeta("$cwd/$name")." -maxdepth 1 -type f -exec chmod ".quotemeta($perms)." {} \\;") != 0) { + push @errors, "$name - $text{'error_chmod'}: $?"; + } + } + } +} + +# All (recursive) +if($in{'applyto'} eq '3') { + foreach $name (split(/\0/, $in{'name'})) { + if(system_logged("chmod -R ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) { + push @errors, "$name - $text{'error_chmod'}: $?"; + } + } +} + +# Selected files and files under selected directories and subdirectories +if($in{'applyto'} eq '4') { + foreach $name (split(/\0/, $in{'name'})) { + if(-f "$cwd/$name") { + if(system_logged("chmod ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) { + push @errors, "$name - $text{'error_chmod'}: $?"; + } + } else { + if(system_logged("find ".quotemeta("$cwd/$name")." -type f -exec chmod ".quotemeta($perms)." {} \\;") != 0) { + push @errors, "$name - $text{'error_chmod'}: $?"; + } + } + } +} + +# Selected directories and subdirectories +if($in{'applyto'} eq '5') { + foreach $name (split(/\0/, $in{'name'})) { + if(-d "$cwd/$name") { + if(system_logged("chmod ".quotemeta($perms)." ".quotemeta("$cwd/$name")) != 0) { + push @errors, "$name - $text{'error_chmod'}: $?"; + } + if(system_logged("find ".quotemeta("$cwd/$name")." -type d -exec chmod ".quotemeta($perms)." {} \\;") != 0) { + push @errors, "$name - $text{'error_chmod'}: $?"; + } + } + } +} + +if (scalar(@errors) > 0) { + print_errors(@errors); +} else { + &redirect("index.cgi?path=$path"); +} diff --git a/filemin/chown.cgi b/filemin/chown.cgi new file mode 100644 index 000000000..31d65e4d4 --- /dev/null +++ b/filemin/chown.cgi @@ -0,0 +1,42 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; + +&ReadParse(); + +get_paths(); + +if(!$in{'owner'} or !$in{'group'}) { + &redirect("index.cgi?path=$path"); +} + +(my $login, my $pass, my $uid, my $gid) = getpwnam($in{'owner'}); +my $grid = getgrnam($in{'group'}); +my $recursive; +if($in{'recursive'} eq 'true') { $recursive = '-R'; } else { $recursive = ''; } + +my @errors; + +if(! defined $login) { + push @errors, "$in{'owner'} $text{'error_user_not_found'}"; +} + +if(! defined $grid) { + push @errors, "$in{'group'} $text{'error_group_not_found'}"; +} + +if (scalar(@errors) > 0) { + print_errors(@errors); +} else { + foreach $name (split(/\0/, $in{'name'})) { +# if(!chown $uid, $grid, $cwd.'/'.$name) { + if(system_logged("chown $recursive $uid:$grid ".quotemeta("$cwd/$name")) != 0) { + push @errors, "$name - $text{'error_chown'}: $?"; + } + } + if (scalar(@errors) > 0) { + print_errors(@errors); + } else { + &redirect("index.cgi?path=$path"); + } +} diff --git a/filemin/compress.cgi b/filemin/compress.cgi new file mode 100644 index 000000000..e68ebead8 --- /dev/null +++ b/filemin/compress.cgi @@ -0,0 +1,29 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +&ReadParse(); +get_paths(); + +if(!$in{'arch'}) { + &redirect("index.cgi?path=$path"); +} + +my $command; + +if($in{'method'} eq 'tar') { + $command = "tar czf ".quotemeta("$cwd/$in{'arch'}.tar.gz"). + " -C ".quotemeta($cwd); +} elsif($in{'method'} eq 'zip') { + $command = "cd ".quotemeta($cwd)." && zip -r ". + quotemeta("$cwd/$in{'arch'}.zip"); +} + +foreach my $name(split(/\0/, $in{'name'})) +{ + $name =~ s/$in{'cwd'}\///ig; + $command .= " ".quotemeta($name); +} + +system_logged($command); + +&redirect("index.cgi?path=$path"); diff --git a/filemin/config b/filemin/config new file mode 100644 index 000000000..add87f6e4 --- /dev/null +++ b/filemin/config @@ -0,0 +1 @@ +allowed_paths=$HOME diff --git a/filemin/config.cgi b/filemin/config.cgi new file mode 100644 index 000000000..531198cd6 --- /dev/null +++ b/filemin/config.cgi @@ -0,0 +1,53 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +use lib './lib'; +use File::MimeInfo; + +&ReadParse(); + +get_paths(); + +&ui_print_header(undef, $text{'module_config'}, ""); +$head = ""; +print $head; + +$confdir = "$remote_user_info[7]/.filemin"; +if(!-e $confdir) { + mkdir $confdir or &error("$text{'error_creating_conf'}: $!"); +} + +if(!-e "$confdir/.config") { + &read_file("$module_root_directory/defaultuconf", \%config); +} else { + &read_file("$confdir/.config", \%config); +} + +if(!-e "$confdir/.bookmarks") { + $bookmarks = ''; +} else { + $bookmarks = &read_file_contents($confdir.'/.bookmarks', 1); +} + +print &ui_form_start("save_config.cgi", "post"); + +print &ui_table_start($text{'module_config'}, undef, 2); +print &ui_table_row($text{'config_columns_to_display'}, + &ui_checkbox('columns', 'type', $text{'type'}, $config{'columns'} =~ /type/). + &ui_checkbox('columns', 'size', $text{'size'}, $config{'columns'} =~ /size/). + &ui_checkbox('columns', 'owner_user', $text{'owner_user'}, $config{'columns'} =~ /owner_user/). + &ui_checkbox('columns', 'permissions', $text{'permissions'}, $config{'columns'} =~ /permissions/). + &ui_checkbox('columns', 'last_mod_time', $text{'last_mod_time'}, $config{'columns'} =~ /last_mod_time/) +); +print &ui_table_row($text{'config_per_page'}, ui_textbox("per_page", $config{'per_page'}, 80)); +print &ui_table_row($text{'config_disable_pagination'}, &ui_checkbox('disable_pagination', 1, '', $config{'disable_pagination'})); +print &ui_table_row($text{'config_toolbar_style'}, &ui_yesno_radio('menu_style', $config{'menu_style'}, 1, 0)); +print &ui_table_row($text{'config_bookmarks'}, &ui_textarea("bookmarks", $bookmarks, 5, 40)); + +print &ui_table_end(); + +print &ui_hidden('path', $path); + +print &ui_form_end([ [ save, $text{'save'} ] ]); + +&ui_print_footer("index.cgi?path=$path", $text{'previous_page'}); diff --git a/filemin/config.info b/filemin/config.info new file mode 100644 index 000000000..a8f52bf31 --- /dev/null +++ b/filemin/config.info @@ -0,0 +1,2 @@ +allowed_paths=Directories accessible to Usermin users,9,60,5,\t +max=Maximum size for uploaded files,3,Unlimited diff --git a/filemin/copy.cgi b/filemin/copy.cgi new file mode 100644 index 000000000..100d652d4 --- /dev/null +++ b/filemin/copy.cgi @@ -0,0 +1,19 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +&ReadParse(); + +get_paths(); + +open(my $fh, ">", &get_paste_buffer_file()) or die "Error: $!"; +print $fh "copy\n"; +print $fh "$path\n"; +#$info = "Copied ".scalar(@list)." files to buffer"; + +foreach $name (split(/\0/, $in{'name'})) { + print $fh "$name\n"; +} + +close($fh); + +&redirect("index.cgi?path=$path"); diff --git a/filemin/create_file.cgi b/filemin/create_file.cgi new file mode 100644 index 000000000..a4a4d84e0 --- /dev/null +++ b/filemin/create_file.cgi @@ -0,0 +1,21 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +&ReadParse(); + +get_paths(); + +if(!$in{'name'}) { + &redirect("index.cgi?path=$path"); +} + +if (-e "$cwd/$in{'name'}") { + print_errors("$in{'name'} $text{'error_exists'}"); +} else { + if (open my $fh, "> $cwd/$in{'name'}") { + close($fh); + &redirect("index.cgi?path=$path"); + } else { + print_errors("$in{'name'} - $text{'error_create'} $!"); + } +} diff --git a/filemin/create_folder.cgi b/filemin/create_folder.cgi new file mode 100644 index 000000000..fbbf9d476 --- /dev/null +++ b/filemin/create_folder.cgi @@ -0,0 +1,20 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +&ReadParse(); + +get_paths(); + +if(!$in{'name'}) { + &redirect("index.cgi?path=$path"); +} + +if (-e "$cwd/$in{'name'}") { + print_errors("$in{'name'} $text{'error_exists'}"); +} else { + if( mkdir ("$cwd/$in{'name'}", oct(755)) ) { + &redirect("index.cgi?path=$path"); + } else { + print_errors("$text{'error_create'} $in{'name'}: $!"); + } +} diff --git a/filemin/cut.cgi b/filemin/cut.cgi new file mode 100644 index 000000000..e00318367 --- /dev/null +++ b/filemin/cut.cgi @@ -0,0 +1,19 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +&ReadParse(); + +get_paths(); + +open(my $fh, ">", &get_paste_buffer_file()) or die "Error: $!"; +print $fh "cut\n"; +print $fh "$path\n"; +#$info = "Copied ".scalar(@list)." files to buffer"; + +foreach $name (split(/\0/, $in{'name'})) { + print $fh "$name\n"; +} + +close($fh); + +&redirect("index.cgi?path=$path"); diff --git a/filemin/defaultacl b/filemin/defaultacl new file mode 100644 index 000000000..50f91dd82 --- /dev/null +++ b/filemin/defaultacl @@ -0,0 +1,3 @@ +allowed_paths=$HOME +work_as_root=1 +allowed_for_edit=application-x-php application-x-ruby application-xml application-javascript application-x-shellscript application-x-perl application-x-yaml diff --git a/filemin/defaultuconf b/filemin/defaultuconf new file mode 100644 index 000000000..af6c83736 --- /dev/null +++ b/filemin/defaultuconf @@ -0,0 +1,4 @@ +columns=size,owner_user,permissions,last_mod_time +per_page=50 +disable_pagination=0 +menu_style=1 \ No newline at end of file diff --git a/filemin/delete.cgi b/filemin/delete.cgi new file mode 100644 index 000000000..639864908 --- /dev/null +++ b/filemin/delete.cgi @@ -0,0 +1,20 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +&ReadParse(); + +get_paths(); + +my @errors; + +foreach $name (split(/\0/, $in{'name'})) { + if(!&unlink_logged($cwd.'/'.$name)) { + push @errors, "$name - $text{'error_delete'}: $!"; + } +} + +if (scalar(@errors) > 0) { + print_errors(@errors); +} else { + &redirect("index.cgi?path=$path"); +} diff --git a/filemin/download.cgi b/filemin/download.cgi new file mode 100644 index 000000000..bcd368384 --- /dev/null +++ b/filemin/download.cgi @@ -0,0 +1,25 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +use lib './lib'; + +use File::Basename; +use Cwd 'abs_path'; + +&ReadParse(); + +get_paths(); + +my $file = $cwd.'/'.$in{'file'}; +my $size = -s "$file"; +(my $name, my $dir, my $ext) = fileparse($file, qr/\.[^.]*/); +print "Content-Type: application/x-download\n"; +print "Content-Disposition: attachment; filename=\"$name$ext\"\n"; +print "Content-Length: $size\n\n"; +open (FILE, "< $file") or die "can't open $file: $!"; +binmode FILE; +local $/ = \102400; +while () { + print $_; +} +close FILE; diff --git a/filemin/edit_file.cgi b/filemin/edit_file.cgi new file mode 100644 index 000000000..55f30ab07 --- /dev/null +++ b/filemin/edit_file.cgi @@ -0,0 +1,43 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +&ReadParse(); + +get_paths(); + +$data = &read_file_contents($cwd.'/'.$in{file}); + +&ui_print_header(undef, $text{'edit_file'}, ""); +$head = ""; + +if ($current_theme ne 'authentic-theme') { + $head.= ""; + $head.= ""; + $head.= ""; + + # Include Codemirror specific files + $head.= ""; + $head.= ""; + $head.= ""; + $head.= ""; + $head.= ""; + $head.= ""; + $head.= ""; +} + +print $head; + +print ui_table_start("$path/$in{'file'}", undef, 1); + +print &ui_form_start("save_file.cgi", "post"); +print &ui_hidden("file", $in{'file'}),"\n"; +print &ui_textarea("data", $data, 20, 80, undef, undef, "style='width: 100%' id='data'"); +print &ui_hidden("path", $path); +print &ui_form_end([ [ save, $text{'save'} ], [ save_close, $text{'save_close'} ] ]); + +print ui_table_end(); + +print ""; +print ""; + +&ui_print_footer("index.cgi?path=$path", $text{'previous_page'}); diff --git a/filemin/extract.cgi b/filemin/extract.cgi new file mode 100644 index 000000000..12f230794 --- /dev/null +++ b/filemin/extract.cgi @@ -0,0 +1,25 @@ +#!/usr/bin/perl + +require './filemin-lib.pl'; +use lib './lib'; +use File::MimeInfo; + +&ReadParse(); + +get_paths(); + +$archive_type = mimetype($cwd.'/'.$in{'file'}); + +if ($archive_type eq 'application/zip') { + &backquote_logged("unzip ".quotemeta("$cwd/$in{'file'}"). + " -d ".quotemeta($cwd)); + &redirect("index.cgi?path=$path"); +} elsif (index($archive_type, "tar") != -1) { + &backquote_logged("tar xf ".quotemeta("$cwd/$in{'file'}"). + " -C ".quotemeta($cwd)); + &redirect("index.cgi?path=$path"); +} else { + &ui_print_header(undef, "Filemin", ""); + print "$archive_type $text{'error_archive_type_not_supported'}"; + &ui_print_footer("index.cgi?path=$path", $text{'previous_page'}); +} diff --git a/filemin/filemin-lib.pl b/filemin/filemin-lib.pl new file mode 100644 index 000000000..529abf6f8 --- /dev/null +++ b/filemin/filemin-lib.pl @@ -0,0 +1,404 @@ +# filemin-lib.pl + +BEGIN { push(@INC, ".."); }; +use WebminCore; +&init_config(); +use Encode qw(decode encode); +use File::Basename; +use POSIX; + +sub get_paths { + %access = &get_module_acl(); + + # Switch to the correct user + if (&get_product_name() eq 'usermin') { + # In Usermin, the module only ever runs as the connected user + &switch_to_remote_user(); + &create_user_config_dirs(); + } + elsif ($access{'work_as_root'}) { + # Root user, so no switching + @remote_user_info = getpwnam('root'); + } + elsif ($access{'work_as_user'}) { + # A specific user + @remote_user_info = getpwnam($access{'work_as_user'}); + @remote_user_info || + &error("Unix user $access{'work_as_user'} does not exist!"); + &switch_to_unix_user(\@remote_user_info); + } + else { + # The Webmin user we are connected as + &switch_to_remote_user(); + } + + # Get and check allowed paths + @allowed_paths = split(/\s+/, $access{'allowed_paths'}); + if (&get_product_name() eq 'usermin') { + # Add paths from Usermin config + push(@allowed_paths, split(/\t+/, $config{'allowed_paths'})); + } + if($remote_user_info[0] eq 'root' || $allowed_paths[0] eq '$ROOT') { + # Assume any directory can be accessed + $base = "/"; + @allowed_paths = ( $base ); + } else { + @allowed_paths = map { $_ eq '$HOME' ? @remote_user_info[7] : $_ } + @allowed_paths; + @allowed_paths = map { s/\$USER/$remote_user/g; $_ } @allowed_paths; + if (scalar(@allowed_paths == 1)) { + $base = $allowed_paths[0]; + } else { + $base = '/'; + } + } + $path = $in{'path'} ? $in{'path'} : ''; + $cwd = &simplify_path($base.$path); + + # Work out max upload size + if (&get_product_name() eq 'usermin') { + $upload_max = $config{'max'}; + } else { + $upload_max = $access{'max'}; + } + + # Check that current directory is one of those that is allowed + my $error = 1; + for $allowed_path (@allowed_paths) { + if (&is_under_directory($allowed_path, $cwd) || + $allowed_path =~ /^$cwd/) { + $error = 0; + } + } + if ($error) { + &error(&text('notallowed', &html_escape($cwd), + &html_escape(join(" , ", @allowed_paths)))); + } + + if (index($cwd, $base) == -1) + { + $cwd = $base; + } + + # Initiate per user config + $confdir = "$remote_user_info[7]/.filemin"; + if(!-e "$confdir/.config") { + &read_file_cached("$module_root_directory/defaultuconf", \%userconfig); + } else { + &read_file_cached("$confdir/.config", \%userconfig); + } +} + +sub print_template { + $template_name = @_[0]; + if (open(my $fh, '<:encoding(UTF-8)', $template_name)) { + while (my $row = <$fh>) { + print (eval "qq($row)"); + } + } else { + print "$text{'error_load_template'} '$template_name' $!"; + } +} + +sub print_errors { + my @errors = @_; + &ui_print_header(undef, "Filemin", ""); + print $text{'errors_occured'}; + print "