From 717c14c014e3c988bcb392599a47ffa92630da78 Mon Sep 17 00:00:00 2001 From: zuber Date: Thu, 5 Nov 2009 23:51:01 +0100 Subject: [PATCH 01/16] Dodanie aplikacji sorl.thumbnail i filebrowser. --- apps/filebrowser/.svn/all-wcprops | 71 + apps/filebrowser/.svn/entries | 414 +++ .../.svn/prop-base/fb_settings.py.svn-base | 5 + .../.svn/prop-base/functions.py.svn-base | 5 + .../.svn/prop-base/models.py.svn-base | 5 + .../.svn/text-base/LICENSE.svn-base | 24 + .../.svn/text-base/__init__.py.svn-base | 0 .../.svn/text-base/base.py.svn-base | 199 ++ .../.svn/text-base/decorators.py.svn-base | 29 + .../.svn/text-base/fb_settings.py.svn-base | 109 + .../.svn/text-base/fields.py.svn-base | 121 + .../.svn/text-base/forms.py.svn-base | 59 + .../.svn/text-base/functions.py.svn-base | 312 +++ .../.svn/text-base/models.py.svn-base | 1 + .../.svn/text-base/urls.py.svn-base | 16 + .../.svn/text-base/views.py.svn-base | 432 +++ apps/filebrowser/LICENSE | 24 + apps/filebrowser/__init__.py | 0 apps/filebrowser/base.py | 199 ++ apps/filebrowser/decorators.py | 29 + apps/filebrowser/fb_settings.py | 109 + apps/filebrowser/fields.py | 121 + apps/filebrowser/forms.py | 59 + apps/filebrowser/functions.py | 312 +++ apps/filebrowser/locale/.svn/all-wcprops | 5 + apps/filebrowser/locale/.svn/entries | 61 + apps/filebrowser/locale/ca/.svn/all-wcprops | 5 + apps/filebrowser/locale/ca/.svn/entries | 31 + .../locale/ca/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/ca/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 5071 bytes .../.svn/text-base/django.po.svn-base | 328 +++ .../locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 5071 bytes .../locale/ca/LC_MESSAGES/django.po | 328 +++ apps/filebrowser/locale/de/.svn/all-wcprops | 5 + apps/filebrowser/locale/de/.svn/entries | 31 + .../locale/de/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/de/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 5665 bytes .../.svn/text-base/django.po.svn-base | 361 +++ .../locale/de/LC_MESSAGES/django.mo | Bin 0 -> 5665 bytes .../locale/de/LC_MESSAGES/django.po | 361 +++ apps/filebrowser/locale/es/.svn/all-wcprops | 5 + apps/filebrowser/locale/es/.svn/entries | 31 + .../locale/es/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/es/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 5093 bytes .../.svn/text-base/django.po.svn-base | 328 +++ .../locale/es/LC_MESSAGES/django.mo | Bin 0 -> 5093 bytes .../locale/es/LC_MESSAGES/django.po | 328 +++ apps/filebrowser/locale/fr/.svn/all-wcprops | 5 + apps/filebrowser/locale/fr/.svn/entries | 31 + .../locale/fr/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/fr/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 5358 bytes .../.svn/text-base/django.po.svn-base | 336 +++ .../locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 5358 bytes .../locale/fr/LC_MESSAGES/django.po | 336 +++ apps/filebrowser/locale/it/.svn/all-wcprops | 5 + apps/filebrowser/locale/it/.svn/entries | 31 + .../locale/it/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/it/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 3542 bytes .../.svn/text-base/django.po.svn-base | 356 +++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 3542 bytes .../locale/it/LC_MESSAGES/django.po | 356 +++ apps/filebrowser/locale/nl/.svn/all-wcprops | 5 + apps/filebrowser/locale/nl/.svn/entries | 31 + .../locale/nl/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/nl/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 5152 bytes .../.svn/text-base/django.po.svn-base | 319 +++ .../locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 5152 bytes .../locale/nl/LC_MESSAGES/django.po | 319 +++ apps/filebrowser/locale/ru/.svn/all-wcprops | 5 + apps/filebrowser/locale/ru/.svn/entries | 31 + .../locale/ru/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/ru/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 6095 bytes .../.svn/text-base/django.po.svn-base | 317 +++ .../locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 6095 bytes .../locale/ru/LC_MESSAGES/django.po | 317 +++ apps/filebrowser/locale/sr/.svn/all-wcprops | 5 + apps/filebrowser/locale/sr/.svn/entries | 31 + .../locale/sr/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/sr/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 6582 bytes .../.svn/text-base/django.po.svn-base | 330 +++ .../locale/sr/LC_MESSAGES/django.mo | Bin 0 -> 6582 bytes .../locale/sr/LC_MESSAGES/django.po | 330 +++ .../locale/sr_Latn/.svn/all-wcprops | 5 + apps/filebrowser/locale/sr_Latn/.svn/entries | 31 + .../sr_Latn/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/sr_Latn/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 5283 bytes .../.svn/text-base/django.po.svn-base | 330 +++ .../locale/sr_Latn/LC_MESSAGES/django.mo | Bin 0 -> 5283 bytes .../locale/sr_Latn/LC_MESSAGES/django.po | 330 +++ .../filebrowser/locale/zh_CN/.svn/all-wcprops | 5 + apps/filebrowser/locale/zh_CN/.svn/entries | 31 + .../locale/zh_CN/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/zh_CN/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 5067 bytes .../.svn/text-base/django.po.svn-base | 345 +++ .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 0 -> 5067 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 345 +++ .../filebrowser/locale/zh_TW/.svn/all-wcprops | 5 + apps/filebrowser/locale/zh_TW/.svn/entries | 31 + .../locale/zh_TW/LC_MESSAGES/.svn/all-wcprops | 17 + .../locale/zh_TW/LC_MESSAGES/.svn/entries | 96 + .../.svn/prop-base/django.mo.svn-base | 5 + .../.svn/text-base/django.mo.svn-base | Bin 0 -> 4999 bytes .../.svn/text-base/django.po.svn-base | 346 +++ .../locale/zh_TW/LC_MESSAGES/django.mo | Bin 0 -> 4999 bytes .../locale/zh_TW/LC_MESSAGES/django.po | 346 +++ apps/filebrowser/media/.svn/all-wcprops | 5 + apps/filebrowser/media/.svn/entries | 31 + .../media/filebrowser/.svn/all-wcprops | 5 + .../media/filebrowser/.svn/entries | 40 + .../media/filebrowser/css/.svn/all-wcprops | 11 + .../media/filebrowser/css/.svn/entries | 62 + .../.svn/prop-base/filebrowser.css.svn-base | 5 + .../.svn/text-base/filebrowser.css.svn-base | 29 + .../media/filebrowser/css/filebrowser.css | 29 + .../media/filebrowser/img/.svn/all-wcprops | 203 ++ .../media/filebrowser/img/.svn/entries | 1150 ++++++++ .../filebrowser_icon_delete.gif.svn-base | 5 + ...filebrowser_icon_delete_hover.gif.svn-base | 5 + ...lebrowser_icon_imagegenerator.gif.svn-base | 5 + ...ser_icon_imagegenerator_hover.gif.svn-base | 5 + .../filebrowser_icon_makethumb.gif.svn-base | 5 + ...ebrowser_icon_makethumb_hover.gif.svn-base | 5 + .../filebrowser_icon_rename.gif.svn-base | 5 + ...filebrowser_icon_rename_hover.gif.svn-base | 5 + .../filebrowser_icon_select.gif.svn-base | 5 + ...ebrowser_icon_select_disabled.gif.svn-base | 5 + ...filebrowser_icon_select_hover.gif.svn-base | 5 + .../filebrowser_icon_show.gif.svn-base | 5 + .../filebrowser_icon_show_hover.gif.svn-base | 5 + ...filebrowser_icon_showversions.gif.svn-base | 5 + ...owser_icon_showversions_hover.gif.svn-base | 5 + ...ect-tools_icon_imagegenerator.gif.svn-base | 5 + ...ols_icon_imagegenerator_hover.gif.svn-base | 5 + ...ject-tools_icon_makedirectory.gif.svn-base | 5 + ...ools_icon_makedirectory_hover.gif.svn-base | 5 + ...r_object-tools_icon_makethumb.gif.svn-base | 5 + ...ct-tools_icon_makethumb_hover.gif.svn-base | 5 + ...ect-tools_icon_multipleupload.gif.svn-base | 5 + ...ols_icon_multipleupload_hover.gif.svn-base | 5 + .../prop-base/filebrowser_type_.gif.svn-base | 5 + .../filebrowser_type_code.gif.svn-base | 5 + .../filebrowser_type_document.gif.svn-base | 5 + .../filebrowser_type_folder.gif.svn-base | 5 + .../filebrowser_type_image.gif.svn-base | 5 + .../filebrowser_type_sound.gif.svn-base | 5 + .../filebrowser_type_video.gif.svn-base | 5 + .../tableheader_arrow_down.gif.svn-base | 5 + .../tableheader_arrow_up.gif.svn-base | 5 + .../prop-base/tableheader_arrows.gif.svn-base | 5 + .../filebrowser_icon_delete.gif.svn-base | Bin 0 -> 151 bytes ...filebrowser_icon_delete_hover.gif.svn-base | Bin 0 -> 151 bytes ...lebrowser_icon_imagegenerator.gif.svn-base | Bin 0 -> 433 bytes ...ser_icon_imagegenerator_hover.gif.svn-base | Bin 0 -> 433 bytes .../filebrowser_icon_makethumb.gif.svn-base | Bin 0 -> 378 bytes ...ebrowser_icon_makethumb_hover.gif.svn-base | Bin 0 -> 378 bytes .../filebrowser_icon_rename.gif.svn-base | Bin 0 -> 222 bytes ...filebrowser_icon_rename_hover.gif.svn-base | Bin 0 -> 222 bytes .../filebrowser_icon_select.gif.svn-base | Bin 0 -> 377 bytes ...ebrowser_icon_select_disabled.gif.svn-base | Bin 0 -> 3186 bytes ...filebrowser_icon_select_hover.gif.svn-base | Bin 0 -> 264 bytes .../filebrowser_icon_show.gif.svn-base | Bin 0 -> 427 bytes .../filebrowser_icon_show_hover.gif.svn-base | Bin 0 -> 426 bytes ...filebrowser_icon_showversions.gif.svn-base | Bin 0 -> 174 bytes ...owser_icon_showversions_hover.gif.svn-base | Bin 0 -> 174 bytes ...ect-tools_icon_imagegenerator.gif.svn-base | Bin 0 -> 433 bytes ...ols_icon_imagegenerator_hover.gif.svn-base | Bin 0 -> 433 bytes ...ject-tools_icon_makedirectory.gif.svn-base | Bin 0 -> 390 bytes ...ools_icon_makedirectory_hover.gif.svn-base | Bin 0 -> 378 bytes ...r_object-tools_icon_makethumb.gif.svn-base | Bin 0 -> 403 bytes ...ct-tools_icon_makethumb_hover.gif.svn-base | Bin 0 -> 284 bytes ...ect-tools_icon_multipleupload.gif.svn-base | Bin 0 -> 387 bytes ...ols_icon_multipleupload_hover.gif.svn-base | Bin 0 -> 263 bytes .../text-base/filebrowser_type_.gif.svn-base | Bin 0 -> 113 bytes .../filebrowser_type_code.gif.svn-base | Bin 0 -> 160 bytes .../filebrowser_type_document.gif.svn-base | Bin 0 -> 118 bytes .../filebrowser_type_folder.gif.svn-base | Bin 0 -> 228 bytes .../filebrowser_type_image.gif.svn-base | Bin 0 -> 127 bytes .../filebrowser_type_sound.gif.svn-base | Bin 0 -> 223 bytes .../filebrowser_type_video.gif.svn-base | Bin 0 -> 147 bytes .../tableheader_arrow_down.gif.svn-base | Bin 0 -> 292 bytes .../tableheader_arrow_up.gif.svn-base | Bin 0 -> 292 bytes .../text-base/tableheader_arrows.gif.svn-base | Bin 0 -> 296 bytes .../img/filebrowser_icon_delete.gif | Bin 0 -> 151 bytes .../img/filebrowser_icon_delete_hover.gif | Bin 0 -> 151 bytes .../img/filebrowser_icon_imagegenerator.gif | Bin 0 -> 433 bytes .../filebrowser_icon_imagegenerator_hover.gif | Bin 0 -> 433 bytes .../img/filebrowser_icon_makethumb.gif | Bin 0 -> 378 bytes .../img/filebrowser_icon_makethumb_hover.gif | Bin 0 -> 378 bytes .../img/filebrowser_icon_rename.gif | Bin 0 -> 222 bytes .../img/filebrowser_icon_rename_hover.gif | Bin 0 -> 222 bytes .../img/filebrowser_icon_select.gif | Bin 0 -> 377 bytes .../img/filebrowser_icon_select_disabled.gif | Bin 0 -> 3186 bytes .../img/filebrowser_icon_select_hover.gif | Bin 0 -> 264 bytes .../filebrowser/img/filebrowser_icon_show.gif | Bin 0 -> 427 bytes .../img/filebrowser_icon_show_hover.gif | Bin 0 -> 426 bytes .../img/filebrowser_icon_showversions.gif | Bin 0 -> 174 bytes .../filebrowser_icon_showversions_hover.gif | Bin 0 -> 174 bytes ...owser_object-tools_icon_imagegenerator.gif | Bin 0 -> 433 bytes ...object-tools_icon_imagegenerator_hover.gif | Bin 0 -> 433 bytes ...rowser_object-tools_icon_makedirectory.gif | Bin 0 -> 390 bytes ..._object-tools_icon_makedirectory_hover.gif | Bin 0 -> 378 bytes ...ilebrowser_object-tools_icon_makethumb.gif | Bin 0 -> 403 bytes ...wser_object-tools_icon_makethumb_hover.gif | Bin 0 -> 284 bytes ...owser_object-tools_icon_multipleupload.gif | Bin 0 -> 387 bytes ...object-tools_icon_multipleupload_hover.gif | Bin 0 -> 263 bytes .../filebrowser/img/filebrowser_type_.gif | Bin 0 -> 113 bytes .../filebrowser/img/filebrowser_type_code.gif | Bin 0 -> 160 bytes .../img/filebrowser_type_document.gif | Bin 0 -> 118 bytes .../img/filebrowser_type_folder.gif | Bin 0 -> 228 bytes .../img/filebrowser_type_image.gif | Bin 0 -> 127 bytes .../img/filebrowser_type_sound.gif | Bin 0 -> 223 bytes .../img/filebrowser_type_video.gif | Bin 0 -> 147 bytes .../img/tableheader_arrow_down.gif | Bin 0 -> 292 bytes .../filebrowser/img/tableheader_arrow_up.gif | Bin 0 -> 292 bytes .../filebrowser/img/tableheader_arrows.gif | Bin 0 -> 296 bytes .../media/filebrowser/js/.svn/all-wcprops | 41 + .../media/filebrowser/js/.svn/entries | 232 ++ .../prop-base/FB_FileBrowseField.js.svn-base | 5 + .../js/.svn/prop-base/FB_TinyMCE.js.svn-base | 5 + .../.svn/text-base/AddFileBrowser.js.svn-base | 30 + .../js/.svn/text-base/FB_CKEditor.js.svn-base | 24 + .../text-base/FB_FileBrowseField.js.svn-base | 32 + .../js/.svn/text-base/FB_TinyMCE.js.svn-base | 28 + .../.svn/text-base/TinyMCEAdmin.js.svn-base | 75 + .../text-base/jquery-1.3.2.min.js.svn-base | 19 + .../media/filebrowser/js/AddFileBrowser.js | 30 + .../media/filebrowser/js/FB_CKEditor.js | 24 + .../filebrowser/js/FB_FileBrowseField.js | 32 + .../media/filebrowser/js/FB_TinyMCE.js | 28 + .../media/filebrowser/js/TinyMCEAdmin.js | 75 + .../media/filebrowser/js/jquery-1.3.2.min.js | 19 + .../filebrowser/uploadify/.svn/all-wcprops | 83 + .../media/filebrowser/uploadify/.svn/entries | 476 ++++ .../Uploadify v2.1.0 Manual.pdf.svn-base | 9 + .../.svn/prop-base/cancel.png.svn-base | 9 + .../.svn/prop-base/check.php.svn-base | 5 + .../prop-base/expressInstall.swf.svn-base | 9 + .../prop-base/jquery-1.3.2.min.js.svn-base | 5 + .../jquery.uploadify.v2.1.0.js.svn-base | 5 + .../jquery.uploadify.v2.1.0.min.js.svn-base | 5 + .../.svn/prop-base/swfobject.js.svn-base | 5 + .../uploadify.allglyphs.swf.svn-base | 9 + .../.svn/prop-base/uploadify.css.svn-base | 5 + .../.svn/prop-base/uploadify.fla.svn-base | 9 + .../.svn/prop-base/uploadify.php.svn-base | 5 + .../.svn/prop-base/uploadify.swf.svn-base | 9 + .../Uploadify v2.1.0 Manual.pdf.svn-base | Bin 0 -> 556466 bytes .../.svn/text-base/cancel.png.svn-base | Bin 0 -> 603 bytes .../.svn/text-base/check.php.svn-base | 35 + .../text-base/expressInstall.swf.svn-base | Bin 0 -> 727 bytes .../text-base/jquery-1.3.2.min.js.svn-base | 19 + .../jquery.uploadify.v2.1.0.js.svn-base | 258 ++ .../jquery.uploadify.v2.1.0.min.js.svn-base | 26 + .../.svn/text-base/swfobject.js.svn-base | 4 + .../uploadify.allglyphs.swf.svn-base | Bin 0 -> 239838 bytes .../.svn/text-base/uploadify.css.svn-base | 53 + .../.svn/text-base/uploadify.fla.svn-base | Bin 0 -> 125952 bytes .../.svn/text-base/uploadify.php.svn-base | 46 + .../.svn/text-base/uploadify.swf.svn-base | Bin 0 -> 23118 bytes .../uploadify/Uploadify v2.1.0 Manual.pdf | Bin 0 -> 556466 bytes .../media/filebrowser/uploadify/cancel.png | Bin 0 -> 603 bytes .../media/filebrowser/uploadify/check.php | 35 + .../uploadify/com/.svn/all-wcprops | 5 + .../filebrowser/uploadify/com/.svn/entries | 31 + .../uploadify/com/adobe/.svn/all-wcprops | 5 + .../uploadify/com/adobe/.svn/entries | 58 + .../uploadify/com/adobe/air/.svn/all-wcprops | 5 + .../uploadify/com/adobe/air/.svn/entries | 31 + .../com/adobe/air/logging/.svn/all-wcprops | 11 + .../com/adobe/air/logging/.svn/entries | 62 + .../.svn/prop-base/FileTarget.as.svn-base | 5 + .../.svn/text-base/FileTarget.as.svn-base | 98 + .../com/adobe/air/logging/FileTarget.as | 98 + .../com/adobe/crypto/.svn/all-wcprops | 47 + .../uploadify/com/adobe/crypto/.svn/entries | 266 ++ .../crypto/.svn/prop-base/HMAC.as.svn-base | 5 + .../crypto/.svn/prop-base/MD5.as.svn-base | 5 + .../.svn/prop-base/MD5Stream.as.svn-base | 5 + .../crypto/.svn/prop-base/SHA1.as.svn-base | 5 + .../crypto/.svn/prop-base/SHA224.as.svn-base | 5 + .../crypto/.svn/prop-base/SHA256.as.svn-base | 5 + .../prop-base/WSSEUsernameToken.as.svn-base | 5 + .../crypto/.svn/text-base/HMAC.as.svn-base | 127 + .../crypto/.svn/text-base/MD5.as.svn-base | 281 ++ .../.svn/text-base/MD5Stream.as.svn-base | 402 +++ .../crypto/.svn/text-base/SHA1.as.svn-base | 271 ++ .../crypto/.svn/text-base/SHA224.as.svn-base | 257 ++ .../crypto/.svn/text-base/SHA256.as.svn-base | 261 ++ .../text-base/WSSEUsernameToken.as.svn-base | 114 + .../uploadify/com/adobe/crypto/HMAC.as | 127 + .../uploadify/com/adobe/crypto/MD5.as | 281 ++ .../uploadify/com/adobe/crypto/MD5Stream.as | 402 +++ .../uploadify/com/adobe/crypto/SHA1.as | 271 ++ .../uploadify/com/adobe/crypto/SHA224.as | 257 ++ .../uploadify/com/adobe/crypto/SHA256.as | 261 ++ .../com/adobe/crypto/WSSEUsernameToken.as | 114 + .../com/adobe/errors/.svn/all-wcprops | 11 + .../uploadify/com/adobe/errors/.svn/entries | 62 + .../prop-base/IllegalStateError.as.svn-base | 5 + .../text-base/IllegalStateError.as.svn-base | 63 + .../com/adobe/errors/IllegalStateError.as | 63 + .../com/adobe/fileformats/.svn/all-wcprops | 5 + .../com/adobe/fileformats/.svn/entries | 31 + .../adobe/fileformats/vcard/.svn/all-wcprops | 35 + .../com/adobe/fileformats/vcard/.svn/entries | 198 ++ .../vcard/.svn/prop-base/Address.as.svn-base | 5 + .../vcard/.svn/prop-base/Email.as.svn-base | 5 + .../vcard/.svn/prop-base/Phone.as.svn-base | 5 + .../vcard/.svn/prop-base/VCard.as.svn-base | 5 + .../.svn/prop-base/VCardParser.as.svn-base | 5 + .../vcard/.svn/text-base/Address.as.svn-base | 47 + .../vcard/.svn/text-base/Email.as.svn-base | 39 + .../vcard/.svn/text-base/Phone.as.svn-base | 39 + .../vcard/.svn/text-base/VCard.as.svn-base | 54 + .../.svn/text-base/VCardParser.as.svn-base | 246 ++ .../com/adobe/fileformats/vcard/Address.as | 47 + .../com/adobe/fileformats/vcard/Email.as | 39 + .../com/adobe/fileformats/vcard/Phone.as | 39 + .../com/adobe/fileformats/vcard/VCard.as | 54 + .../adobe/fileformats/vcard/VCardParser.as | 246 ++ .../com/adobe/images/.svn/all-wcprops | 23 + .../uploadify/com/adobe/images/.svn/entries | 130 + .../.svn/prop-base/BitString.as.svn-base | 5 + .../.svn/prop-base/JPGEncoder.as.svn-base | 5 + .../.svn/prop-base/PNGEncoder.as.svn-base | 5 + .../.svn/text-base/BitString.as.svn-base | 39 + .../.svn/text-base/JPGEncoder.as.svn-base | 648 +++++ .../.svn/text-base/PNGEncoder.as.svn-base | 141 + .../uploadify/com/adobe/images/BitString.as | 39 + .../uploadify/com/adobe/images/JPGEncoder.as | 648 +++++ .../uploadify/com/adobe/images/PNGEncoder.as | 141 + .../uploadify/com/adobe/net/.svn/all-wcprops | 35 + .../uploadify/com/adobe/net/.svn/entries | 201 ++ .../prop-base/DynamicURLLoader.as.svn-base | 5 + .../.svn/prop-base/IURIResolver.as.svn-base | 5 + .../.svn/prop-base/MimeTypeMap.as.svn-base | 5 + .../adobe/net/.svn/prop-base/URI.as.svn-base | 5 + .../prop-base/URIEncodingBitmap.as.svn-base | 5 + .../text-base/DynamicURLLoader.as.svn-base | 55 + .../.svn/text-base/IURIResolver.as.svn-base | 76 + .../.svn/text-base/MimeTypeMap.as.svn-base | 196 ++ .../adobe/net/.svn/text-base/URI.as.svn-base | 2466 +++++++++++++++++ .../text-base/URIEncodingBitmap.as.svn-base | 139 + .../com/adobe/net/DynamicURLLoader.as | 55 + .../uploadify/com/adobe/net/IURIResolver.as | 76 + .../uploadify/com/adobe/net/MimeTypeMap.as | 196 ++ .../uploadify/com/adobe/net/URI.as | 2466 +++++++++++++++++ .../com/adobe/net/URIEncodingBitmap.as | 139 + .../com/adobe/net/proxies/.svn/all-wcprops | 11 + .../com/adobe/net/proxies/.svn/entries | 62 + .../.svn/prop-base/RFC2817Socket.as.svn-base | 5 + .../.svn/text-base/RFC2817Socket.as.svn-base | 198 ++ .../com/adobe/net/proxies/RFC2817Socket.as | 198 ++ .../com/adobe/protocols/.svn/all-wcprops | 5 + .../com/adobe/protocols/.svn/entries | 31 + .../com/adobe/protocols/dict/.svn/all-wcprops | 41 + .../com/adobe/protocols/dict/.svn/entries | 238 ++ .../dict/.svn/prop-base/Database.as.svn-base | 5 + .../.svn/prop-base/Definition.as.svn-base | 5 + .../dict/.svn/prop-base/Dict.as.svn-base | 5 + .../prop-base/DictionaryServer.as.svn-base | 5 + .../.svn/prop-base/MatchStrategy.as.svn-base | 5 + .../dict/.svn/prop-base/Response.as.svn-base | 5 + .../dict/.svn/text-base/Database.as.svn-base | 34 + .../.svn/text-base/Definition.as.svn-base | 39 + .../dict/.svn/text-base/Dict.as.svn-base | 328 +++ .../text-base/DictionaryServer.as.svn-base | 28 + .../.svn/text-base/MatchStrategy.as.svn-base | 34 + .../dict/.svn/text-base/Response.as.svn-base | 39 + .../com/adobe/protocols/dict/Database.as | 34 + .../com/adobe/protocols/dict/Definition.as | 39 + .../com/adobe/protocols/dict/Dict.as | 328 +++ .../adobe/protocols/dict/DictionaryServer.as | 28 + .../com/adobe/protocols/dict/MatchStrategy.as | 34 + .../com/adobe/protocols/dict/Response.as | 39 + .../protocols/dict/events/.svn/all-wcprops | 65 + .../adobe/protocols/dict/events/.svn/entries | 368 +++ .../.svn/prop-base/ConnectedEvent.as.svn-base | 5 + .../.svn/prop-base/DatabaseEvent.as.svn-base | 5 + .../prop-base/DefinitionEvent.as.svn-base | 5 + .../DefinitionHeaderEvent.as.svn-base | 5 + .../DictionaryServerEvent.as.svn-base | 5 + .../prop-base/DisconnectedEvent.as.svn-base | 5 + .../.svn/prop-base/ErrorEvent.as.svn-base | 5 + .../.svn/prop-base/MatchEvent.as.svn-base | 5 + .../MatchStrategiesEvent.as.svn-base | 5 + .../.svn/prop-base/NoMatchEvent.as.svn-base | 5 + .../.svn/text-base/ConnectedEvent.as.svn-base | 14 + .../.svn/text-base/DatabaseEvent.as.svn-base | 26 + .../text-base/DefinitionEvent.as.svn-base | 27 + .../DefinitionHeaderEvent.as.svn-base | 26 + .../DictionaryServerEvent.as.svn-base | 26 + .../text-base/DisconnectedEvent.as.svn-base | 14 + .../.svn/text-base/ErrorEvent.as.svn-base | 37 + .../.svn/text-base/MatchEvent.as.svn-base | 26 + .../MatchStrategiesEvent.as.svn-base | 26 + .../.svn/text-base/NoMatchEvent.as.svn-base | 14 + .../protocols/dict/events/ConnectedEvent.as | 14 + .../protocols/dict/events/DatabaseEvent.as | 26 + .../protocols/dict/events/DefinitionEvent.as | 27 + .../dict/events/DefinitionHeaderEvent.as | 26 + .../dict/events/DictionaryServerEvent.as | 26 + .../dict/events/DisconnectedEvent.as | 14 + .../adobe/protocols/dict/events/ErrorEvent.as | 37 + .../adobe/protocols/dict/events/MatchEvent.as | 26 + .../dict/events/MatchStrategiesEvent.as | 26 + .../protocols/dict/events/NoMatchEvent.as | 14 + .../protocols/dict/util/.svn/all-wcprops | 17 + .../adobe/protocols/dict/util/.svn/entries | 96 + .../CompleteResponseEvent.as.svn-base | 5 + .../.svn/prop-base/SocketHelper.as.svn-base | 5 + .../CompleteResponseEvent.as.svn-base | 25 + .../.svn/text-base/SocketHelper.as.svn-base | 49 + .../dict/util/CompleteResponseEvent.as | 25 + .../adobe/protocols/dict/util/SocketHelper.as | 49 + .../com/adobe/serialization/.svn/all-wcprops | 5 + .../com/adobe/serialization/.svn/entries | 31 + .../adobe/serialization/json/.svn/all-wcprops | 47 + .../com/adobe/serialization/json/.svn/entries | 266 ++ .../json/.svn/prop-base/JSON.as.svn-base | 5 + .../.svn/prop-base/JSONDecoder.as.svn-base | 5 + .../.svn/prop-base/JSONEncoder.as.svn-base | 5 + .../.svn/prop-base/JSONParseError.as.svn-base | 5 + .../json/.svn/prop-base/JSONToken.as.svn-base | 5 + .../.svn/prop-base/JSONTokenType.as.svn-base | 5 + .../.svn/prop-base/JSONTokenizer.as.svn-base | 5 + .../json/.svn/text-base/JSON.as.svn-base | 85 + .../.svn/text-base/JSONDecoder.as.svn-base | 221 ++ .../.svn/text-base/JSONEncoder.as.svn-base | 299 ++ .../.svn/text-base/JSONParseError.as.svn-base | 87 + .../json/.svn/text-base/JSONToken.as.svn-base | 104 + .../.svn/text-base/JSONTokenType.as.svn-base | 67 + .../.svn/text-base/JSONTokenizer.as.svn-base | 583 ++++ .../com/adobe/serialization/json/JSON.as | 85 + .../adobe/serialization/json/JSONDecoder.as | 221 ++ .../adobe/serialization/json/JSONEncoder.as | 299 ++ .../serialization/json/JSONParseError.as | 87 + .../com/adobe/serialization/json/JSONToken.as | 104 + .../adobe/serialization/json/JSONTokenType.as | 67 + .../adobe/serialization/json/JSONTokenizer.as | 583 ++++ .../com/adobe/utils/.svn/all-wcprops | 47 + .../uploadify/com/adobe/utils/.svn/entries | 266 ++ .../.svn/prop-base/ArrayUtil.as.svn-base | 5 + .../utils/.svn/prop-base/DateUtil.as.svn-base | 5 + .../.svn/prop-base/DictionaryUtil.as.svn-base | 5 + .../utils/.svn/prop-base/IntUtil.as.svn-base | 5 + .../prop-base/NumberFormatter.as.svn-base | 5 + .../.svn/prop-base/StringUtil.as.svn-base | 5 + .../utils/.svn/prop-base/XMLUtil.as.svn-base | 5 + .../.svn/text-base/ArrayUtil.as.svn-base | 187 ++ .../utils/.svn/text-base/DateUtil.as.svn-base | 699 +++++ .../.svn/text-base/DictionaryUtil.as.svn-base | 87 + .../utils/.svn/text-base/IntUtil.as.svn-base | 99 + .../text-base/NumberFormatter.as.svn-base | 74 + .../.svn/text-base/StringUtil.as.svn-base | 270 ++ .../utils/.svn/text-base/XMLUtil.as.svn-base | 168 ++ .../uploadify/com/adobe/utils/ArrayUtil.as | 187 ++ .../uploadify/com/adobe/utils/DateUtil.as | 699 +++++ .../com/adobe/utils/DictionaryUtil.as | 87 + .../uploadify/com/adobe/utils/IntUtil.as | 99 + .../com/adobe/utils/NumberFormatter.as | 74 + .../uploadify/com/adobe/utils/StringUtil.as | 270 ++ .../uploadify/com/adobe/utils/XMLUtil.as | 168 ++ .../com/adobe/webapis/.svn/all-wcprops | 17 + .../uploadify/com/adobe/webapis/.svn/entries | 99 + .../.svn/prop-base/ServiceBase.as.svn-base | 5 + .../.svn/prop-base/URLLoaderBase.as.svn-base | 5 + .../.svn/text-base/ServiceBase.as.svn-base | 48 + .../.svn/text-base/URLLoaderBase.as.svn-base | 108 + .../com/adobe/webapis/ServiceBase.as | 48 + .../com/adobe/webapis/URLLoaderBase.as | 108 + .../com/adobe/webapis/events/.svn/all-wcprops | 11 + .../com/adobe/webapis/events/.svn/entries | 62 + .../.svn/prop-base/ServiceEvent.as.svn-base | 5 + .../.svn/text-base/ServiceEvent.as.svn-base | 75 + .../com/adobe/webapis/events/ServiceEvent.as | 75 + .../uploadify/example/.svn/all-wcprops | 17 + .../uploadify/example/.svn/entries | 108 + .../.svn/prop-base/cancel.png.svn-base | 9 + .../example/.svn/prop-base/index.php.svn-base | 5 + .../.svn/text-base/cancel.png.svn-base | Bin 0 -> 603 bytes .../example/.svn/text-base/index.php.svn-base | 31 + .../uploadify/example/_notes/.svn/all-wcprops | 11 + .../uploadify/example/_notes/.svn/entries | 62 + .../_notes/.svn/prop-base/dwsync.xml.svn-base | 5 + .../_notes/.svn/text-base/dwsync.xml.svn-base | 5 + .../uploadify/example/_notes/dwsync.xml | 5 + .../filebrowser/uploadify/example/cancel.png | Bin 0 -> 603 bytes .../uploadify/example/css/.svn/all-wcprops | 17 + .../uploadify/example/css/.svn/entries | 99 + .../css/.svn/prop-base/default.css.svn-base | 5 + .../css/.svn/prop-base/uploadify.css.svn-base | 5 + .../css/.svn/text-base/default.css.svn-base | 10 + .../css/.svn/text-base/uploadify.css.svn-base | 53 + .../example/css/_notes/.svn/all-wcprops | 11 + .../uploadify/example/css/_notes/.svn/entries | 62 + .../_notes/.svn/prop-base/dwsync.xml.svn-base | 5 + .../_notes/.svn/text-base/dwsync.xml.svn-base | 5 + .../uploadify/example/css/_notes/dwsync.xml | 5 + .../uploadify/example/css/default.css | 10 + .../uploadify/example/css/uploadify.css | 53 + .../filebrowser/uploadify/example/index.php | 31 + .../example/scripts/.svn/all-wcprops | 47 + .../uploadify/example/scripts/.svn/entries | 269 ++ .../scripts/.svn/prop-base/check.php.svn-base | 5 + .../prop-base/expressInstall.swf.svn-base | 9 + .../prop-base/jquery-1.3.2.min.js.svn-base | 5 + .../jquery.uploadify.v2.1.0.min.js.svn-base | 5 + .../.svn/prop-base/swfobject.js.svn-base | 5 + .../.svn/prop-base/uploadify.php.svn-base | 5 + .../.svn/prop-base/uploadify.swf.svn-base | 9 + .../scripts/.svn/text-base/check.php.svn-base | 35 + .../text-base/expressInstall.swf.svn-base | Bin 0 -> 727 bytes .../text-base/jquery-1.3.2.min.js.svn-base | 19 + .../jquery.uploadify.v2.1.0.min.js.svn-base | 26 + .../.svn/text-base/swfobject.js.svn-base | 4 + .../.svn/text-base/uploadify.php.svn-base | 46 + .../.svn/text-base/uploadify.swf.svn-base | Bin 0 -> 23119 bytes .../example/scripts/_notes/.svn/all-wcprops | 11 + .../example/scripts/_notes/.svn/entries | 62 + .../_notes/.svn/prop-base/dwsync.xml.svn-base | 5 + .../_notes/.svn/text-base/dwsync.xml.svn-base | 10 + .../example/scripts/_notes/dwsync.xml | 10 + .../uploadify/example/scripts/check.php | 35 + .../example/scripts/expressInstall.swf | Bin 0 -> 727 bytes .../example/scripts/jquery-1.3.2.min.js | 19 + .../scripts/jquery.uploadify.v2.1.0.min.js | 26 + .../uploadify/example/scripts/swfobject.js | 4 + .../uploadify/example/scripts/uploadify.php | 46 + .../uploadify/example/scripts/uploadify.swf | Bin 0 -> 23119 bytes .../example/uploads/.svn/all-wcprops | 5 + .../uploadify/example/uploads/.svn/entries | 28 + .../filebrowser/uploadify/expressInstall.swf | Bin 0 -> 727 bytes .../filebrowser/uploadify/jquery-1.3.2.min.js | 19 + .../uploadify/jquery.uploadify.v2.1.0.js | 258 ++ .../uploadify/jquery.uploadify.v2.1.0.min.js | 26 + .../media/filebrowser/uploadify/swfobject.js | 4 + .../uploadify/uploadify.allglyphs.swf | Bin 0 -> 239838 bytes .../media/filebrowser/uploadify/uploadify.css | 53 + .../media/filebrowser/uploadify/uploadify.fla | Bin 0 -> 125952 bytes .../media/filebrowser/uploadify/uploadify.php | 46 + .../media/filebrowser/uploadify/uploadify.swf | Bin 0 -> 23118 bytes apps/filebrowser/models.py | 1 + apps/filebrowser/templates/.svn/all-wcprops | 5 + apps/filebrowser/templates/.svn/entries | 31 + .../templates/filebrowser/.svn/all-wcprops | 47 + .../templates/filebrowser/.svn/entries | 269 ++ .../.svn/text-base/append.html.svn-base | 12 + .../.svn/text-base/custom_field.html.svn-base | 27 + .../.svn/text-base/index.html.svn-base | 70 + .../.svn/text-base/makedir.html.svn-base | 62 + .../.svn/text-base/rename.html.svn-base | 63 + .../.svn/text-base/upload.html.svn-base | 116 + .../.svn/text-base/versions.html.svn-base | 138 + .../templates/filebrowser/append.html | 12 + .../templates/filebrowser/custom_field.html | 27 + .../filebrowser/include/.svn/all-wcprops | 47 + .../filebrowser/include/.svn/entries | 266 ++ .../.svn/text-base/_response.html.svn-base | 1 + .../.svn/text-base/breadcrumbs.html.svn-base | 18 + .../.svn/text-base/filelisting.html.svn-base | 121 + .../.svn/text-base/filter.html.svn-base | 35 + .../.svn/text-base/paginator.html.svn-base | 17 + .../.svn/text-base/tableheader.html.svn-base | 38 + .../.svn/text-base/toolbar.html.svn-base | 25 + .../filebrowser/include/_response.html | 1 + .../filebrowser/include/breadcrumbs.html | 18 + .../filebrowser/include/filelisting.html | 121 + .../templates/filebrowser/include/filter.html | 35 + .../filebrowser/include/paginator.html | 17 + .../filebrowser/include/tableheader.html | 38 + .../filebrowser/include/toolbar.html | 25 + .../templates/filebrowser/index.html | 70 + .../templates/filebrowser/makedir.html | 62 + .../templates/filebrowser/rename.html | 63 + .../templates/filebrowser/upload.html | 116 + .../templates/filebrowser/versions.html | 138 + .../filebrowser/templatetags/.svn/all-wcprops | 23 + apps/filebrowser/templatetags/.svn/entries | 130 + .../.svn/text-base/__init__.py.svn-base | 0 .../.svn/text-base/fb_tags.py.svn-base | 133 + .../.svn/text-base/fb_versions.py.svn-base | 171 ++ apps/filebrowser/templatetags/__init__.py | 0 apps/filebrowser/templatetags/fb_tags.py | 133 + apps/filebrowser/templatetags/fb_versions.py | 171 ++ apps/filebrowser/urls.py | 16 + apps/filebrowser/views.py | 432 +++ apps/sorl/__init__.py | 0 apps/sorl/thumbnail/__init__.py | 0 apps/sorl/thumbnail/base.py | 285 ++ apps/sorl/thumbnail/defaults.py | 15 + apps/sorl/thumbnail/fields.py | 228 ++ apps/sorl/thumbnail/main.py | 115 + apps/sorl/thumbnail/management/__init__.py | 0 .../thumbnail/management/commands/__init__.py | 0 .../management/commands/thumbnail_cleanup.py | 75 + apps/sorl/thumbnail/models.py | 1 + apps/sorl/thumbnail/processors.py | 130 + apps/sorl/thumbnail/templatetags/__init__.py | 0 apps/sorl/thumbnail/templatetags/thumbnail.py | 251 ++ apps/sorl/thumbnail/tests/__init__.py | 16 + apps/sorl/thumbnail/tests/base.py | 105 + apps/sorl/thumbnail/tests/classes.py | 175 ++ apps/sorl/thumbnail/tests/fields.py | 131 + apps/sorl/thumbnail/tests/templatetags.py | 312 +++ apps/sorl/thumbnail/tests/utils.py | 149 + apps/sorl/thumbnail/utils.py | 170 ++ platforma/settings.py | 5 + platforma/static/filebrowser/.svn/all-wcprops | 5 + platforma/static/filebrowser/.svn/entries | 40 + .../static/filebrowser/css/.svn/all-wcprops | 11 + platforma/static/filebrowser/css/.svn/entries | 62 + .../.svn/prop-base/filebrowser.css.svn-base | 5 + .../.svn/text-base/filebrowser.css.svn-base | 29 + .../static/filebrowser/css/filebrowser.css | 29 + .../static/filebrowser/img/.svn/all-wcprops | 203 ++ platforma/static/filebrowser/img/.svn/entries | 1150 ++++++++ .../filebrowser_icon_delete.gif.svn-base | 5 + ...filebrowser_icon_delete_hover.gif.svn-base | 5 + ...lebrowser_icon_imagegenerator.gif.svn-base | 5 + ...ser_icon_imagegenerator_hover.gif.svn-base | 5 + .../filebrowser_icon_makethumb.gif.svn-base | 5 + ...ebrowser_icon_makethumb_hover.gif.svn-base | 5 + .../filebrowser_icon_rename.gif.svn-base | 5 + ...filebrowser_icon_rename_hover.gif.svn-base | 5 + .../filebrowser_icon_select.gif.svn-base | 5 + ...ebrowser_icon_select_disabled.gif.svn-base | 5 + ...filebrowser_icon_select_hover.gif.svn-base | 5 + .../filebrowser_icon_show.gif.svn-base | 5 + .../filebrowser_icon_show_hover.gif.svn-base | 5 + ...filebrowser_icon_showversions.gif.svn-base | 5 + ...owser_icon_showversions_hover.gif.svn-base | 5 + ...ect-tools_icon_imagegenerator.gif.svn-base | 5 + ...ols_icon_imagegenerator_hover.gif.svn-base | 5 + ...ject-tools_icon_makedirectory.gif.svn-base | 5 + ...ools_icon_makedirectory_hover.gif.svn-base | 5 + ...r_object-tools_icon_makethumb.gif.svn-base | 5 + ...ct-tools_icon_makethumb_hover.gif.svn-base | 5 + ...ect-tools_icon_multipleupload.gif.svn-base | 5 + ...ols_icon_multipleupload_hover.gif.svn-base | 5 + .../prop-base/filebrowser_type_.gif.svn-base | 5 + .../filebrowser_type_code.gif.svn-base | 5 + .../filebrowser_type_document.gif.svn-base | 5 + .../filebrowser_type_folder.gif.svn-base | 5 + .../filebrowser_type_image.gif.svn-base | 5 + .../filebrowser_type_sound.gif.svn-base | 5 + .../filebrowser_type_video.gif.svn-base | 5 + .../tableheader_arrow_down.gif.svn-base | 5 + .../tableheader_arrow_up.gif.svn-base | 5 + .../prop-base/tableheader_arrows.gif.svn-base | 5 + .../filebrowser_icon_delete.gif.svn-base | Bin 0 -> 151 bytes ...filebrowser_icon_delete_hover.gif.svn-base | Bin 0 -> 151 bytes ...lebrowser_icon_imagegenerator.gif.svn-base | Bin 0 -> 433 bytes ...ser_icon_imagegenerator_hover.gif.svn-base | Bin 0 -> 433 bytes .../filebrowser_icon_makethumb.gif.svn-base | Bin 0 -> 378 bytes ...ebrowser_icon_makethumb_hover.gif.svn-base | Bin 0 -> 378 bytes .../filebrowser_icon_rename.gif.svn-base | Bin 0 -> 222 bytes ...filebrowser_icon_rename_hover.gif.svn-base | Bin 0 -> 222 bytes .../filebrowser_icon_select.gif.svn-base | Bin 0 -> 377 bytes ...ebrowser_icon_select_disabled.gif.svn-base | Bin 0 -> 3186 bytes ...filebrowser_icon_select_hover.gif.svn-base | Bin 0 -> 264 bytes .../filebrowser_icon_show.gif.svn-base | Bin 0 -> 427 bytes .../filebrowser_icon_show_hover.gif.svn-base | Bin 0 -> 426 bytes ...filebrowser_icon_showversions.gif.svn-base | Bin 0 -> 174 bytes ...owser_icon_showversions_hover.gif.svn-base | Bin 0 -> 174 bytes ...ect-tools_icon_imagegenerator.gif.svn-base | Bin 0 -> 433 bytes ...ols_icon_imagegenerator_hover.gif.svn-base | Bin 0 -> 433 bytes ...ject-tools_icon_makedirectory.gif.svn-base | Bin 0 -> 390 bytes ...ools_icon_makedirectory_hover.gif.svn-base | Bin 0 -> 378 bytes ...r_object-tools_icon_makethumb.gif.svn-base | Bin 0 -> 403 bytes ...ct-tools_icon_makethumb_hover.gif.svn-base | Bin 0 -> 284 bytes ...ect-tools_icon_multipleupload.gif.svn-base | Bin 0 -> 387 bytes ...ols_icon_multipleupload_hover.gif.svn-base | Bin 0 -> 263 bytes .../text-base/filebrowser_type_.gif.svn-base | Bin 0 -> 113 bytes .../filebrowser_type_code.gif.svn-base | Bin 0 -> 160 bytes .../filebrowser_type_document.gif.svn-base | Bin 0 -> 118 bytes .../filebrowser_type_folder.gif.svn-base | Bin 0 -> 228 bytes .../filebrowser_type_image.gif.svn-base | Bin 0 -> 127 bytes .../filebrowser_type_sound.gif.svn-base | Bin 0 -> 223 bytes .../filebrowser_type_video.gif.svn-base | Bin 0 -> 147 bytes .../tableheader_arrow_down.gif.svn-base | Bin 0 -> 292 bytes .../tableheader_arrow_up.gif.svn-base | Bin 0 -> 292 bytes .../text-base/tableheader_arrows.gif.svn-base | Bin 0 -> 296 bytes .../img/filebrowser_icon_delete.gif | Bin 0 -> 151 bytes .../img/filebrowser_icon_delete_hover.gif | Bin 0 -> 151 bytes .../img/filebrowser_icon_imagegenerator.gif | Bin 0 -> 433 bytes .../filebrowser_icon_imagegenerator_hover.gif | Bin 0 -> 433 bytes .../img/filebrowser_icon_makethumb.gif | Bin 0 -> 378 bytes .../img/filebrowser_icon_makethumb_hover.gif | Bin 0 -> 378 bytes .../img/filebrowser_icon_rename.gif | Bin 0 -> 222 bytes .../img/filebrowser_icon_rename_hover.gif | Bin 0 -> 222 bytes .../img/filebrowser_icon_select.gif | Bin 0 -> 377 bytes .../img/filebrowser_icon_select_disabled.gif | Bin 0 -> 3186 bytes .../img/filebrowser_icon_select_hover.gif | Bin 0 -> 264 bytes .../filebrowser/img/filebrowser_icon_show.gif | Bin 0 -> 427 bytes .../img/filebrowser_icon_show_hover.gif | Bin 0 -> 426 bytes .../img/filebrowser_icon_showversions.gif | Bin 0 -> 174 bytes .../filebrowser_icon_showversions_hover.gif | Bin 0 -> 174 bytes ...owser_object-tools_icon_imagegenerator.gif | Bin 0 -> 433 bytes ...object-tools_icon_imagegenerator_hover.gif | Bin 0 -> 433 bytes ...rowser_object-tools_icon_makedirectory.gif | Bin 0 -> 390 bytes ..._object-tools_icon_makedirectory_hover.gif | Bin 0 -> 378 bytes ...ilebrowser_object-tools_icon_makethumb.gif | Bin 0 -> 403 bytes ...wser_object-tools_icon_makethumb_hover.gif | Bin 0 -> 284 bytes ...owser_object-tools_icon_multipleupload.gif | Bin 0 -> 387 bytes ...object-tools_icon_multipleupload_hover.gif | Bin 0 -> 263 bytes .../filebrowser/img/filebrowser_type_.gif | Bin 0 -> 113 bytes .../filebrowser/img/filebrowser_type_code.gif | Bin 0 -> 160 bytes .../img/filebrowser_type_document.gif | Bin 0 -> 118 bytes .../img/filebrowser_type_folder.gif | Bin 0 -> 228 bytes .../img/filebrowser_type_image.gif | Bin 0 -> 127 bytes .../img/filebrowser_type_sound.gif | Bin 0 -> 223 bytes .../img/filebrowser_type_video.gif | Bin 0 -> 147 bytes .../img/tableheader_arrow_down.gif | Bin 0 -> 292 bytes .../filebrowser/img/tableheader_arrow_up.gif | Bin 0 -> 292 bytes .../filebrowser/img/tableheader_arrows.gif | Bin 0 -> 296 bytes .../static/filebrowser/js/.svn/all-wcprops | 41 + platforma/static/filebrowser/js/.svn/entries | 232 ++ .../prop-base/FB_FileBrowseField.js.svn-base | 5 + .../js/.svn/prop-base/FB_TinyMCE.js.svn-base | 5 + .../.svn/text-base/AddFileBrowser.js.svn-base | 30 + .../js/.svn/text-base/FB_CKEditor.js.svn-base | 24 + .../text-base/FB_FileBrowseField.js.svn-base | 32 + .../js/.svn/text-base/FB_TinyMCE.js.svn-base | 28 + .../.svn/text-base/TinyMCEAdmin.js.svn-base | 75 + .../text-base/jquery-1.3.2.min.js.svn-base | 19 + .../static/filebrowser/js/AddFileBrowser.js | 30 + .../static/filebrowser/js/FB_CKEditor.js | 24 + .../filebrowser/js/FB_FileBrowseField.js | 32 + platforma/static/filebrowser/js/FB_TinyMCE.js | 28 + .../static/filebrowser/js/TinyMCEAdmin.js | 75 + .../static/filebrowser/js/jquery-1.3.2.min.js | 19 + .../filebrowser/uploadify/.svn/all-wcprops | 83 + .../static/filebrowser/uploadify/.svn/entries | 476 ++++ .../Uploadify v2.1.0 Manual.pdf.svn-base | 9 + .../.svn/prop-base/cancel.png.svn-base | 9 + .../.svn/prop-base/check.php.svn-base | 5 + .../prop-base/expressInstall.swf.svn-base | 9 + .../prop-base/jquery-1.3.2.min.js.svn-base | 5 + .../jquery.uploadify.v2.1.0.js.svn-base | 5 + .../jquery.uploadify.v2.1.0.min.js.svn-base | 5 + .../.svn/prop-base/swfobject.js.svn-base | 5 + .../uploadify.allglyphs.swf.svn-base | 9 + .../.svn/prop-base/uploadify.css.svn-base | 5 + .../.svn/prop-base/uploadify.fla.svn-base | 9 + .../.svn/prop-base/uploadify.php.svn-base | 5 + .../.svn/prop-base/uploadify.swf.svn-base | 9 + .../Uploadify v2.1.0 Manual.pdf.svn-base | Bin 0 -> 556466 bytes .../.svn/text-base/cancel.png.svn-base | Bin 0 -> 603 bytes .../.svn/text-base/check.php.svn-base | 35 + .../text-base/expressInstall.swf.svn-base | Bin 0 -> 727 bytes .../text-base/jquery-1.3.2.min.js.svn-base | 19 + .../jquery.uploadify.v2.1.0.js.svn-base | 258 ++ .../jquery.uploadify.v2.1.0.min.js.svn-base | 26 + .../.svn/text-base/swfobject.js.svn-base | 4 + .../uploadify.allglyphs.swf.svn-base | Bin 0 -> 239838 bytes .../.svn/text-base/uploadify.css.svn-base | 53 + .../.svn/text-base/uploadify.fla.svn-base | Bin 0 -> 125952 bytes .../.svn/text-base/uploadify.php.svn-base | 46 + .../.svn/text-base/uploadify.swf.svn-base | Bin 0 -> 23118 bytes .../uploadify/Uploadify v2.1.0 Manual.pdf | Bin 0 -> 556466 bytes .../static/filebrowser/uploadify/cancel.png | Bin 0 -> 603 bytes .../static/filebrowser/uploadify/check.php | 35 + .../uploadify/com/.svn/all-wcprops | 5 + .../filebrowser/uploadify/com/.svn/entries | 31 + .../uploadify/com/adobe/.svn/all-wcprops | 5 + .../uploadify/com/adobe/.svn/entries | 58 + .../uploadify/com/adobe/air/.svn/all-wcprops | 5 + .../uploadify/com/adobe/air/.svn/entries | 31 + .../com/adobe/air/logging/.svn/all-wcprops | 11 + .../com/adobe/air/logging/.svn/entries | 62 + .../.svn/prop-base/FileTarget.as.svn-base | 5 + .../.svn/text-base/FileTarget.as.svn-base | 98 + .../com/adobe/air/logging/FileTarget.as | 98 + .../com/adobe/crypto/.svn/all-wcprops | 47 + .../uploadify/com/adobe/crypto/.svn/entries | 266 ++ .../crypto/.svn/prop-base/HMAC.as.svn-base | 5 + .../crypto/.svn/prop-base/MD5.as.svn-base | 5 + .../.svn/prop-base/MD5Stream.as.svn-base | 5 + .../crypto/.svn/prop-base/SHA1.as.svn-base | 5 + .../crypto/.svn/prop-base/SHA224.as.svn-base | 5 + .../crypto/.svn/prop-base/SHA256.as.svn-base | 5 + .../prop-base/WSSEUsernameToken.as.svn-base | 5 + .../crypto/.svn/text-base/HMAC.as.svn-base | 127 + .../crypto/.svn/text-base/MD5.as.svn-base | 281 ++ .../.svn/text-base/MD5Stream.as.svn-base | 402 +++ .../crypto/.svn/text-base/SHA1.as.svn-base | 271 ++ .../crypto/.svn/text-base/SHA224.as.svn-base | 257 ++ .../crypto/.svn/text-base/SHA256.as.svn-base | 261 ++ .../text-base/WSSEUsernameToken.as.svn-base | 114 + .../uploadify/com/adobe/crypto/HMAC.as | 127 + .../uploadify/com/adobe/crypto/MD5.as | 281 ++ .../uploadify/com/adobe/crypto/MD5Stream.as | 402 +++ .../uploadify/com/adobe/crypto/SHA1.as | 271 ++ .../uploadify/com/adobe/crypto/SHA224.as | 257 ++ .../uploadify/com/adobe/crypto/SHA256.as | 261 ++ .../com/adobe/crypto/WSSEUsernameToken.as | 114 + .../com/adobe/errors/.svn/all-wcprops | 11 + .../uploadify/com/adobe/errors/.svn/entries | 62 + .../prop-base/IllegalStateError.as.svn-base | 5 + .../text-base/IllegalStateError.as.svn-base | 63 + .../com/adobe/errors/IllegalStateError.as | 63 + .../com/adobe/fileformats/.svn/all-wcprops | 5 + .../com/adobe/fileformats/.svn/entries | 31 + .../adobe/fileformats/vcard/.svn/all-wcprops | 35 + .../com/adobe/fileformats/vcard/.svn/entries | 198 ++ .../vcard/.svn/prop-base/Address.as.svn-base | 5 + .../vcard/.svn/prop-base/Email.as.svn-base | 5 + .../vcard/.svn/prop-base/Phone.as.svn-base | 5 + .../vcard/.svn/prop-base/VCard.as.svn-base | 5 + .../.svn/prop-base/VCardParser.as.svn-base | 5 + .../vcard/.svn/text-base/Address.as.svn-base | 47 + .../vcard/.svn/text-base/Email.as.svn-base | 39 + .../vcard/.svn/text-base/Phone.as.svn-base | 39 + .../vcard/.svn/text-base/VCard.as.svn-base | 54 + .../.svn/text-base/VCardParser.as.svn-base | 246 ++ .../com/adobe/fileformats/vcard/Address.as | 47 + .../com/adobe/fileformats/vcard/Email.as | 39 + .../com/adobe/fileformats/vcard/Phone.as | 39 + .../com/adobe/fileformats/vcard/VCard.as | 54 + .../adobe/fileformats/vcard/VCardParser.as | 246 ++ .../com/adobe/images/.svn/all-wcprops | 23 + .../uploadify/com/adobe/images/.svn/entries | 130 + .../.svn/prop-base/BitString.as.svn-base | 5 + .../.svn/prop-base/JPGEncoder.as.svn-base | 5 + .../.svn/prop-base/PNGEncoder.as.svn-base | 5 + .../.svn/text-base/BitString.as.svn-base | 39 + .../.svn/text-base/JPGEncoder.as.svn-base | 648 +++++ .../.svn/text-base/PNGEncoder.as.svn-base | 141 + .../uploadify/com/adobe/images/BitString.as | 39 + .../uploadify/com/adobe/images/JPGEncoder.as | 648 +++++ .../uploadify/com/adobe/images/PNGEncoder.as | 141 + .../uploadify/com/adobe/net/.svn/all-wcprops | 35 + .../uploadify/com/adobe/net/.svn/entries | 201 ++ .../prop-base/DynamicURLLoader.as.svn-base | 5 + .../.svn/prop-base/IURIResolver.as.svn-base | 5 + .../.svn/prop-base/MimeTypeMap.as.svn-base | 5 + .../adobe/net/.svn/prop-base/URI.as.svn-base | 5 + .../prop-base/URIEncodingBitmap.as.svn-base | 5 + .../text-base/DynamicURLLoader.as.svn-base | 55 + .../.svn/text-base/IURIResolver.as.svn-base | 76 + .../.svn/text-base/MimeTypeMap.as.svn-base | 196 ++ .../adobe/net/.svn/text-base/URI.as.svn-base | 2466 +++++++++++++++++ .../text-base/URIEncodingBitmap.as.svn-base | 139 + .../com/adobe/net/DynamicURLLoader.as | 55 + .../uploadify/com/adobe/net/IURIResolver.as | 76 + .../uploadify/com/adobe/net/MimeTypeMap.as | 196 ++ .../uploadify/com/adobe/net/URI.as | 2466 +++++++++++++++++ .../com/adobe/net/URIEncodingBitmap.as | 139 + .../com/adobe/net/proxies/.svn/all-wcprops | 11 + .../com/adobe/net/proxies/.svn/entries | 62 + .../.svn/prop-base/RFC2817Socket.as.svn-base | 5 + .../.svn/text-base/RFC2817Socket.as.svn-base | 198 ++ .../com/adobe/net/proxies/RFC2817Socket.as | 198 ++ .../com/adobe/protocols/.svn/all-wcprops | 5 + .../com/adobe/protocols/.svn/entries | 31 + .../com/adobe/protocols/dict/.svn/all-wcprops | 41 + .../com/adobe/protocols/dict/.svn/entries | 238 ++ .../dict/.svn/prop-base/Database.as.svn-base | 5 + .../.svn/prop-base/Definition.as.svn-base | 5 + .../dict/.svn/prop-base/Dict.as.svn-base | 5 + .../prop-base/DictionaryServer.as.svn-base | 5 + .../.svn/prop-base/MatchStrategy.as.svn-base | 5 + .../dict/.svn/prop-base/Response.as.svn-base | 5 + .../dict/.svn/text-base/Database.as.svn-base | 34 + .../.svn/text-base/Definition.as.svn-base | 39 + .../dict/.svn/text-base/Dict.as.svn-base | 328 +++ .../text-base/DictionaryServer.as.svn-base | 28 + .../.svn/text-base/MatchStrategy.as.svn-base | 34 + .../dict/.svn/text-base/Response.as.svn-base | 39 + .../com/adobe/protocols/dict/Database.as | 34 + .../com/adobe/protocols/dict/Definition.as | 39 + .../com/adobe/protocols/dict/Dict.as | 328 +++ .../adobe/protocols/dict/DictionaryServer.as | 28 + .../com/adobe/protocols/dict/MatchStrategy.as | 34 + .../com/adobe/protocols/dict/Response.as | 39 + .../protocols/dict/events/.svn/all-wcprops | 65 + .../adobe/protocols/dict/events/.svn/entries | 368 +++ .../.svn/prop-base/ConnectedEvent.as.svn-base | 5 + .../.svn/prop-base/DatabaseEvent.as.svn-base | 5 + .../prop-base/DefinitionEvent.as.svn-base | 5 + .../DefinitionHeaderEvent.as.svn-base | 5 + .../DictionaryServerEvent.as.svn-base | 5 + .../prop-base/DisconnectedEvent.as.svn-base | 5 + .../.svn/prop-base/ErrorEvent.as.svn-base | 5 + .../.svn/prop-base/MatchEvent.as.svn-base | 5 + .../MatchStrategiesEvent.as.svn-base | 5 + .../.svn/prop-base/NoMatchEvent.as.svn-base | 5 + .../.svn/text-base/ConnectedEvent.as.svn-base | 14 + .../.svn/text-base/DatabaseEvent.as.svn-base | 26 + .../text-base/DefinitionEvent.as.svn-base | 27 + .../DefinitionHeaderEvent.as.svn-base | 26 + .../DictionaryServerEvent.as.svn-base | 26 + .../text-base/DisconnectedEvent.as.svn-base | 14 + .../.svn/text-base/ErrorEvent.as.svn-base | 37 + .../.svn/text-base/MatchEvent.as.svn-base | 26 + .../MatchStrategiesEvent.as.svn-base | 26 + .../.svn/text-base/NoMatchEvent.as.svn-base | 14 + .../protocols/dict/events/ConnectedEvent.as | 14 + .../protocols/dict/events/DatabaseEvent.as | 26 + .../protocols/dict/events/DefinitionEvent.as | 27 + .../dict/events/DefinitionHeaderEvent.as | 26 + .../dict/events/DictionaryServerEvent.as | 26 + .../dict/events/DisconnectedEvent.as | 14 + .../adobe/protocols/dict/events/ErrorEvent.as | 37 + .../adobe/protocols/dict/events/MatchEvent.as | 26 + .../dict/events/MatchStrategiesEvent.as | 26 + .../protocols/dict/events/NoMatchEvent.as | 14 + .../protocols/dict/util/.svn/all-wcprops | 17 + .../adobe/protocols/dict/util/.svn/entries | 96 + .../CompleteResponseEvent.as.svn-base | 5 + .../.svn/prop-base/SocketHelper.as.svn-base | 5 + .../CompleteResponseEvent.as.svn-base | 25 + .../.svn/text-base/SocketHelper.as.svn-base | 49 + .../dict/util/CompleteResponseEvent.as | 25 + .../adobe/protocols/dict/util/SocketHelper.as | 49 + .../com/adobe/serialization/.svn/all-wcprops | 5 + .../com/adobe/serialization/.svn/entries | 31 + .../adobe/serialization/json/.svn/all-wcprops | 47 + .../com/adobe/serialization/json/.svn/entries | 266 ++ .../json/.svn/prop-base/JSON.as.svn-base | 5 + .../.svn/prop-base/JSONDecoder.as.svn-base | 5 + .../.svn/prop-base/JSONEncoder.as.svn-base | 5 + .../.svn/prop-base/JSONParseError.as.svn-base | 5 + .../json/.svn/prop-base/JSONToken.as.svn-base | 5 + .../.svn/prop-base/JSONTokenType.as.svn-base | 5 + .../.svn/prop-base/JSONTokenizer.as.svn-base | 5 + .../json/.svn/text-base/JSON.as.svn-base | 85 + .../.svn/text-base/JSONDecoder.as.svn-base | 221 ++ .../.svn/text-base/JSONEncoder.as.svn-base | 299 ++ .../.svn/text-base/JSONParseError.as.svn-base | 87 + .../json/.svn/text-base/JSONToken.as.svn-base | 104 + .../.svn/text-base/JSONTokenType.as.svn-base | 67 + .../.svn/text-base/JSONTokenizer.as.svn-base | 583 ++++ .../com/adobe/serialization/json/JSON.as | 85 + .../adobe/serialization/json/JSONDecoder.as | 221 ++ .../adobe/serialization/json/JSONEncoder.as | 299 ++ .../serialization/json/JSONParseError.as | 87 + .../com/adobe/serialization/json/JSONToken.as | 104 + .../adobe/serialization/json/JSONTokenType.as | 67 + .../adobe/serialization/json/JSONTokenizer.as | 583 ++++ .../com/adobe/utils/.svn/all-wcprops | 47 + .../uploadify/com/adobe/utils/.svn/entries | 266 ++ .../.svn/prop-base/ArrayUtil.as.svn-base | 5 + .../utils/.svn/prop-base/DateUtil.as.svn-base | 5 + .../.svn/prop-base/DictionaryUtil.as.svn-base | 5 + .../utils/.svn/prop-base/IntUtil.as.svn-base | 5 + .../prop-base/NumberFormatter.as.svn-base | 5 + .../.svn/prop-base/StringUtil.as.svn-base | 5 + .../utils/.svn/prop-base/XMLUtil.as.svn-base | 5 + .../.svn/text-base/ArrayUtil.as.svn-base | 187 ++ .../utils/.svn/text-base/DateUtil.as.svn-base | 699 +++++ .../.svn/text-base/DictionaryUtil.as.svn-base | 87 + .../utils/.svn/text-base/IntUtil.as.svn-base | 99 + .../text-base/NumberFormatter.as.svn-base | 74 + .../.svn/text-base/StringUtil.as.svn-base | 270 ++ .../utils/.svn/text-base/XMLUtil.as.svn-base | 168 ++ .../uploadify/com/adobe/utils/ArrayUtil.as | 187 ++ .../uploadify/com/adobe/utils/DateUtil.as | 699 +++++ .../com/adobe/utils/DictionaryUtil.as | 87 + .../uploadify/com/adobe/utils/IntUtil.as | 99 + .../com/adobe/utils/NumberFormatter.as | 74 + .../uploadify/com/adobe/utils/StringUtil.as | 270 ++ .../uploadify/com/adobe/utils/XMLUtil.as | 168 ++ .../com/adobe/webapis/.svn/all-wcprops | 17 + .../uploadify/com/adobe/webapis/.svn/entries | 99 + .../.svn/prop-base/ServiceBase.as.svn-base | 5 + .../.svn/prop-base/URLLoaderBase.as.svn-base | 5 + .../.svn/text-base/ServiceBase.as.svn-base | 48 + .../.svn/text-base/URLLoaderBase.as.svn-base | 108 + .../com/adobe/webapis/ServiceBase.as | 48 + .../com/adobe/webapis/URLLoaderBase.as | 108 + .../com/adobe/webapis/events/.svn/all-wcprops | 11 + .../com/adobe/webapis/events/.svn/entries | 62 + .../.svn/prop-base/ServiceEvent.as.svn-base | 5 + .../.svn/text-base/ServiceEvent.as.svn-base | 75 + .../com/adobe/webapis/events/ServiceEvent.as | 75 + .../uploadify/example/.svn/all-wcprops | 17 + .../uploadify/example/.svn/entries | 108 + .../.svn/prop-base/cancel.png.svn-base | 9 + .../example/.svn/prop-base/index.php.svn-base | 5 + .../.svn/text-base/cancel.png.svn-base | Bin 0 -> 603 bytes .../example/.svn/text-base/index.php.svn-base | 31 + .../uploadify/example/_notes/.svn/all-wcprops | 11 + .../uploadify/example/_notes/.svn/entries | 62 + .../_notes/.svn/prop-base/dwsync.xml.svn-base | 5 + .../_notes/.svn/text-base/dwsync.xml.svn-base | 5 + .../uploadify/example/_notes/dwsync.xml | 5 + .../filebrowser/uploadify/example/cancel.png | Bin 0 -> 603 bytes .../uploadify/example/css/.svn/all-wcprops | 17 + .../uploadify/example/css/.svn/entries | 99 + .../css/.svn/prop-base/default.css.svn-base | 5 + .../css/.svn/prop-base/uploadify.css.svn-base | 5 + .../css/.svn/text-base/default.css.svn-base | 10 + .../css/.svn/text-base/uploadify.css.svn-base | 53 + .../example/css/_notes/.svn/all-wcprops | 11 + .../uploadify/example/css/_notes/.svn/entries | 62 + .../_notes/.svn/prop-base/dwsync.xml.svn-base | 5 + .../_notes/.svn/text-base/dwsync.xml.svn-base | 5 + .../uploadify/example/css/_notes/dwsync.xml | 5 + .../uploadify/example/css/default.css | 10 + .../uploadify/example/css/uploadify.css | 53 + .../filebrowser/uploadify/example/index.php | 31 + .../example/scripts/.svn/all-wcprops | 47 + .../uploadify/example/scripts/.svn/entries | 269 ++ .../scripts/.svn/prop-base/check.php.svn-base | 5 + .../prop-base/expressInstall.swf.svn-base | 9 + .../prop-base/jquery-1.3.2.min.js.svn-base | 5 + .../jquery.uploadify.v2.1.0.min.js.svn-base | 5 + .../.svn/prop-base/swfobject.js.svn-base | 5 + .../.svn/prop-base/uploadify.php.svn-base | 5 + .../.svn/prop-base/uploadify.swf.svn-base | 9 + .../scripts/.svn/text-base/check.php.svn-base | 35 + .../text-base/expressInstall.swf.svn-base | Bin 0 -> 727 bytes .../text-base/jquery-1.3.2.min.js.svn-base | 19 + .../jquery.uploadify.v2.1.0.min.js.svn-base | 26 + .../.svn/text-base/swfobject.js.svn-base | 4 + .../.svn/text-base/uploadify.php.svn-base | 46 + .../.svn/text-base/uploadify.swf.svn-base | Bin 0 -> 23119 bytes .../example/scripts/_notes/.svn/all-wcprops | 11 + .../example/scripts/_notes/.svn/entries | 62 + .../_notes/.svn/prop-base/dwsync.xml.svn-base | 5 + .../_notes/.svn/text-base/dwsync.xml.svn-base | 10 + .../example/scripts/_notes/dwsync.xml | 10 + .../uploadify/example/scripts/check.php | 35 + .../example/scripts/expressInstall.swf | Bin 0 -> 727 bytes .../example/scripts/jquery-1.3.2.min.js | 19 + .../scripts/jquery.uploadify.v2.1.0.min.js | 26 + .../uploadify/example/scripts/swfobject.js | 4 + .../uploadify/example/scripts/uploadify.php | 46 + .../uploadify/example/scripts/uploadify.swf | Bin 0 -> 23119 bytes .../example/uploads/.svn/all-wcprops | 5 + .../uploadify/example/uploads/.svn/entries | 28 + .../filebrowser/uploadify/expressInstall.swf | Bin 0 -> 727 bytes .../filebrowser/uploadify/jquery-1.3.2.min.js | 19 + .../uploadify/jquery.uploadify.v2.1.0.js | 258 ++ .../uploadify/jquery.uploadify.v2.1.0.min.js | 26 + .../static/filebrowser/uploadify/swfobject.js | 4 + .../uploadify/uploadify.allglyphs.swf | Bin 0 -> 239838 bytes .../filebrowser/uploadify/uploadify.css | 53 + .../filebrowser/uploadify/uploadify.fla | Bin 0 -> 125952 bytes .../filebrowser/uploadify/uploadify.php | 46 + .../filebrowser/uploadify/uploadify.swf | Bin 0 -> 23118 bytes platforma/templates/admin/index.html | 83 + platforma/urls.py | 1 + 1065 files changed, 76039 insertions(+) create mode 100644 apps/filebrowser/.svn/all-wcprops create mode 100644 apps/filebrowser/.svn/entries create mode 100644 apps/filebrowser/.svn/prop-base/fb_settings.py.svn-base create mode 100644 apps/filebrowser/.svn/prop-base/functions.py.svn-base create mode 100644 apps/filebrowser/.svn/prop-base/models.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/LICENSE.svn-base create mode 100644 apps/filebrowser/.svn/text-base/__init__.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/base.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/decorators.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/fb_settings.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/fields.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/forms.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/functions.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/models.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/urls.py.svn-base create mode 100644 apps/filebrowser/.svn/text-base/views.py.svn-base create mode 100644 apps/filebrowser/LICENSE create mode 100644 apps/filebrowser/__init__.py create mode 100644 apps/filebrowser/base.py create mode 100644 apps/filebrowser/decorators.py create mode 100755 apps/filebrowser/fb_settings.py create mode 100644 apps/filebrowser/fields.py create mode 100644 apps/filebrowser/forms.py create mode 100755 apps/filebrowser/functions.py create mode 100644 apps/filebrowser/locale/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/.svn/entries create mode 100644 apps/filebrowser/locale/ca/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/ca/.svn/entries create mode 100644 apps/filebrowser/locale/ca/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/ca/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/ca/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/ca/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/ca/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/ca/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/ca/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/de/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/de/.svn/entries create mode 100644 apps/filebrowser/locale/de/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/de/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/de/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/de/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/de/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/de/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/de/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/es/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/es/.svn/entries create mode 100644 apps/filebrowser/locale/es/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/es/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/es/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/es/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/es/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/es/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/es/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/fr/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/fr/.svn/entries create mode 100644 apps/filebrowser/locale/fr/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/fr/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/fr/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/fr/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/fr/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/fr/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/fr/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/it/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/it/.svn/entries create mode 100644 apps/filebrowser/locale/it/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/it/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/it/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/it/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/it/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/it/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/it/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/nl/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/nl/.svn/entries create mode 100644 apps/filebrowser/locale/nl/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/nl/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/nl/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/nl/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/nl/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/nl/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/nl/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/ru/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/ru/.svn/entries create mode 100644 apps/filebrowser/locale/ru/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/ru/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/ru/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/ru/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/ru/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/ru/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/ru/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/sr/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/sr/.svn/entries create mode 100644 apps/filebrowser/locale/sr/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/sr/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/sr/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/sr/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/sr/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/sr/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/sr/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/sr_Latn/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/sr_Latn/.svn/entries create mode 100644 apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/sr_Latn/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/sr_Latn/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/zh_CN/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/zh_CN/.svn/entries create mode 100644 apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/zh_CN/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/zh_CN/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/locale/zh_TW/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/zh_TW/.svn/entries create mode 100644 apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/all-wcprops create mode 100644 apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/entries create mode 100644 apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/prop-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/text-base/django.mo.svn-base create mode 100644 apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/text-base/django.po.svn-base create mode 100644 apps/filebrowser/locale/zh_TW/LC_MESSAGES/django.mo create mode 100644 apps/filebrowser/locale/zh_TW/LC_MESSAGES/django.po create mode 100644 apps/filebrowser/media/.svn/all-wcprops create mode 100644 apps/filebrowser/media/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/css/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/css/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/css/.svn/prop-base/filebrowser.css.svn-base create mode 100644 apps/filebrowser/media/filebrowser/css/.svn/text-base/filebrowser.css.svn-base create mode 100755 apps/filebrowser/media/filebrowser/css/filebrowser.css create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_delete.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_delete_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_rename.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_rename_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select_disabled.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_show.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_show_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_code.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_document.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_folder.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_image.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_sound.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_video.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrow_down.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrow_up.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrows.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_delete.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_delete_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_imagegenerator.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_imagegenerator_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_makethumb.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_makethumb_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_rename.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_rename_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select_disabled.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_show.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_show_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_showversions.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_showversions_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makethumb.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_code.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_document.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_folder.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_image.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_sound.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_video.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrow_down.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrow_up.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrows.gif.svn-base create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_delete.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_delete_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_imagegenerator.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_imagegenerator_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_makethumb.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_makethumb_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_rename.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_rename_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_select.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_select_disabled.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_select_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_show.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_show_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_showversions.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_icon_showversions_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_imagegenerator.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_imagegenerator_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makethumb.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makethumb_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload_hover.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_type_.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_type_code.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_type_document.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_type_folder.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_type_image.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_type_sound.gif create mode 100644 apps/filebrowser/media/filebrowser/img/filebrowser_type_video.gif create mode 100644 apps/filebrowser/media/filebrowser/img/tableheader_arrow_down.gif create mode 100644 apps/filebrowser/media/filebrowser/img/tableheader_arrow_up.gif create mode 100644 apps/filebrowser/media/filebrowser/img/tableheader_arrows.gif create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/prop-base/FB_FileBrowseField.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/prop-base/FB_TinyMCE.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/text-base/AddFileBrowser.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/text-base/FB_CKEditor.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/text-base/FB_FileBrowseField.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/text-base/FB_TinyMCE.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/text-base/TinyMCEAdmin.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/js/.svn/text-base/jquery-1.3.2.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/js/AddFileBrowser.js create mode 100644 apps/filebrowser/media/filebrowser/js/FB_CKEditor.js create mode 100755 apps/filebrowser/media/filebrowser/js/FB_FileBrowseField.js create mode 100755 apps/filebrowser/media/filebrowser/js/FB_TinyMCE.js create mode 100644 apps/filebrowser/media/filebrowser/js/TinyMCEAdmin.js create mode 100644 apps/filebrowser/media/filebrowser/js/jquery-1.3.2.min.js create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/Uploadify v2.1.0 Manual.pdf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/cancel.png.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/check.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/expressInstall.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/jquery-1.3.2.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/jquery.uploadify.v2.1.0.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/swfobject.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/uploadify.allglyphs.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/uploadify.css.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/uploadify.fla.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/uploadify.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/prop-base/uploadify.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/Uploadify v2.1.0 Manual.pdf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/cancel.png.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/check.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/expressInstall.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/jquery-1.3.2.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/jquery.uploadify.v2.1.0.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/swfobject.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/uploadify.allglyphs.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/uploadify.css.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/uploadify.fla.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/uploadify.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/.svn/text-base/uploadify.swf.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/Uploadify v2.1.0 Manual.pdf create mode 100755 apps/filebrowser/media/filebrowser/uploadify/cancel.png create mode 100755 apps/filebrowser/media/filebrowser/uploadify/check.php create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/air/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/air/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/air/logging/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/air/logging/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/air/logging/.svn/prop-base/FileTarget.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/air/logging/.svn/text-base/FileTarget.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/air/logging/FileTarget.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/HMAC.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/MD5.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/MD5Stream.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/SHA1.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/SHA224.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/SHA256.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/WSSEUsernameToken.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/HMAC.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/MD5.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/MD5Stream.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/SHA1.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/SHA224.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/SHA256.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/WSSEUsernameToken.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/HMAC.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/MD5.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/MD5Stream.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/SHA1.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/SHA224.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/SHA256.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/crypto/WSSEUsernameToken.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/errors/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/errors/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/errors/.svn/prop-base/IllegalStateError.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/errors/.svn/text-base/IllegalStateError.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/errors/IllegalStateError.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/Address.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/Email.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/Phone.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/VCard.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/VCardParser.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/Address.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/Email.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/Phone.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/VCard.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/VCardParser.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/Address.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/Email.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/Phone.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/VCard.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/fileformats/vcard/VCardParser.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/.svn/prop-base/BitString.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/.svn/prop-base/JPGEncoder.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/.svn/prop-base/PNGEncoder.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/.svn/text-base/BitString.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/.svn/text-base/JPGEncoder.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/.svn/text-base/PNGEncoder.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/BitString.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/JPGEncoder.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/images/PNGEncoder.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/prop-base/DynamicURLLoader.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/prop-base/IURIResolver.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/prop-base/MimeTypeMap.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/prop-base/URI.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/prop-base/URIEncodingBitmap.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/text-base/DynamicURLLoader.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/text-base/IURIResolver.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/text-base/MimeTypeMap.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/text-base/URI.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/.svn/text-base/URIEncodingBitmap.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/DynamicURLLoader.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/IURIResolver.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/MimeTypeMap.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/URI.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/URIEncodingBitmap.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/proxies/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/proxies/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/proxies/.svn/prop-base/RFC2817Socket.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/proxies/.svn/text-base/RFC2817Socket.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/net/proxies/RFC2817Socket.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/Database.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/Definition.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/Dict.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/DictionaryServer.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/MatchStrategy.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/Response.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/Database.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/Definition.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/Dict.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/DictionaryServer.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/MatchStrategy.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/Response.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/Database.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/Definition.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/Dict.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/DictionaryServer.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/MatchStrategy.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/Response.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/ConnectedEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DatabaseEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DefinitionEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DefinitionHeaderEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DictionaryServerEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DisconnectedEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/ErrorEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/MatchEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/MatchStrategiesEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/NoMatchEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/ConnectedEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DatabaseEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DefinitionEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DefinitionHeaderEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DictionaryServerEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DisconnectedEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/ErrorEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/MatchEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/MatchStrategiesEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/NoMatchEvent.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/ConnectedEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/DatabaseEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/DefinitionEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/DefinitionHeaderEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/DictionaryServerEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/DisconnectedEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/ErrorEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/MatchEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/MatchStrategiesEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/events/NoMatchEvent.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/prop-base/CompleteResponseEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/prop-base/SocketHelper.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/text-base/CompleteResponseEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/text-base/SocketHelper.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/CompleteResponseEvent.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/protocols/dict/util/SocketHelper.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSON.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONDecoder.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONEncoder.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONParseError.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONToken.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONTokenType.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONTokenizer.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSON.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONDecoder.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONEncoder.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONParseError.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONToken.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONTokenType.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONTokenizer.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/JSON.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/JSONDecoder.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/JSONEncoder.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/JSONParseError.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/JSONToken.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/JSONTokenType.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/serialization/json/JSONTokenizer.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/ArrayUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/DateUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/DictionaryUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/IntUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/NumberFormatter.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/StringUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/XMLUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/text-base/ArrayUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/text-base/DateUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/text-base/DictionaryUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/text-base/IntUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/text-base/NumberFormatter.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/text-base/StringUtil.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/.svn/text-base/XMLUtil.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/ArrayUtil.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/DateUtil.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/DictionaryUtil.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/IntUtil.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/NumberFormatter.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/StringUtil.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/utils/XMLUtil.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/.svn/prop-base/ServiceBase.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/.svn/prop-base/URLLoaderBase.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/.svn/text-base/ServiceBase.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/.svn/text-base/URLLoaderBase.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/ServiceBase.as create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/URLLoaderBase.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/events/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/events/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/events/.svn/prop-base/ServiceEvent.as.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/events/.svn/text-base/ServiceEvent.as.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/com/adobe/webapis/events/ServiceEvent.as create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/.svn/prop-base/cancel.png.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/.svn/prop-base/index.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/.svn/text-base/cancel.png.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/.svn/text-base/index.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/prop-base/dwsync.xml.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/text-base/dwsync.xml.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/_notes/dwsync.xml create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/cancel.png create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/prop-base/default.css.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/prop-base/uploadify.css.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/text-base/default.css.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/text-base/uploadify.css.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/prop-base/dwsync.xml.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/text-base/dwsync.xml.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/dwsync.xml create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/css/default.css create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/css/uploadify.css create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/index.php create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/check.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/expressInstall.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery-1.3.2.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/swfobject.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/check.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/expressInstall.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/jquery-1.3.2.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/swfobject.js.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/uploadify.php.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/uploadify.swf.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/entries create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/prop-base/dwsync.xml.svn-base create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/text-base/dwsync.xml.svn-base create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/dwsync.xml create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/scripts/check.php create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/scripts/expressInstall.swf create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/scripts/jquery-1.3.2.min.js create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/scripts/swfobject.js create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/scripts/uploadify.php create mode 100755 apps/filebrowser/media/filebrowser/uploadify/example/scripts/uploadify.swf create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/uploads/.svn/all-wcprops create mode 100644 apps/filebrowser/media/filebrowser/uploadify/example/uploads/.svn/entries create mode 100755 apps/filebrowser/media/filebrowser/uploadify/expressInstall.swf create mode 100755 apps/filebrowser/media/filebrowser/uploadify/jquery-1.3.2.min.js create mode 100755 apps/filebrowser/media/filebrowser/uploadify/jquery.uploadify.v2.1.0.js create mode 100755 apps/filebrowser/media/filebrowser/uploadify/jquery.uploadify.v2.1.0.min.js create mode 100755 apps/filebrowser/media/filebrowser/uploadify/swfobject.js create mode 100755 apps/filebrowser/media/filebrowser/uploadify/uploadify.allglyphs.swf create mode 100755 apps/filebrowser/media/filebrowser/uploadify/uploadify.css create mode 100755 apps/filebrowser/media/filebrowser/uploadify/uploadify.fla create mode 100755 apps/filebrowser/media/filebrowser/uploadify/uploadify.php create mode 100755 apps/filebrowser/media/filebrowser/uploadify/uploadify.swf create mode 100755 apps/filebrowser/models.py create mode 100644 apps/filebrowser/templates/.svn/all-wcprops create mode 100644 apps/filebrowser/templates/.svn/entries create mode 100644 apps/filebrowser/templates/filebrowser/.svn/all-wcprops create mode 100644 apps/filebrowser/templates/filebrowser/.svn/entries create mode 100644 apps/filebrowser/templates/filebrowser/.svn/text-base/append.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/.svn/text-base/custom_field.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/.svn/text-base/index.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/.svn/text-base/makedir.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/.svn/text-base/rename.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/.svn/text-base/upload.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/.svn/text-base/versions.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/append.html create mode 100644 apps/filebrowser/templates/filebrowser/custom_field.html create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/all-wcprops create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/entries create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/text-base/_response.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/text-base/breadcrumbs.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/text-base/filelisting.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/text-base/filter.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/text-base/paginator.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/text-base/tableheader.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/include/.svn/text-base/toolbar.html.svn-base create mode 100644 apps/filebrowser/templates/filebrowser/include/_response.html create mode 100644 apps/filebrowser/templates/filebrowser/include/breadcrumbs.html create mode 100644 apps/filebrowser/templates/filebrowser/include/filelisting.html create mode 100644 apps/filebrowser/templates/filebrowser/include/filter.html create mode 100644 apps/filebrowser/templates/filebrowser/include/paginator.html create mode 100644 apps/filebrowser/templates/filebrowser/include/tableheader.html create mode 100644 apps/filebrowser/templates/filebrowser/include/toolbar.html create mode 100644 apps/filebrowser/templates/filebrowser/index.html create mode 100644 apps/filebrowser/templates/filebrowser/makedir.html create mode 100644 apps/filebrowser/templates/filebrowser/rename.html create mode 100644 apps/filebrowser/templates/filebrowser/upload.html create mode 100644 apps/filebrowser/templates/filebrowser/versions.html create mode 100644 apps/filebrowser/templatetags/.svn/all-wcprops create mode 100644 apps/filebrowser/templatetags/.svn/entries create mode 100644 apps/filebrowser/templatetags/.svn/text-base/__init__.py.svn-base create mode 100644 apps/filebrowser/templatetags/.svn/text-base/fb_tags.py.svn-base create mode 100644 apps/filebrowser/templatetags/.svn/text-base/fb_versions.py.svn-base create mode 100644 apps/filebrowser/templatetags/__init__.py create mode 100644 apps/filebrowser/templatetags/fb_tags.py create mode 100644 apps/filebrowser/templatetags/fb_versions.py create mode 100644 apps/filebrowser/urls.py create mode 100644 apps/filebrowser/views.py create mode 100755 apps/sorl/__init__.py create mode 100644 apps/sorl/thumbnail/__init__.py create mode 100755 apps/sorl/thumbnail/base.py create mode 100644 apps/sorl/thumbnail/defaults.py create mode 100644 apps/sorl/thumbnail/fields.py create mode 100644 apps/sorl/thumbnail/main.py create mode 100644 apps/sorl/thumbnail/management/__init__.py create mode 100644 apps/sorl/thumbnail/management/commands/__init__.py create mode 100644 apps/sorl/thumbnail/management/commands/thumbnail_cleanup.py create mode 100644 apps/sorl/thumbnail/models.py create mode 100644 apps/sorl/thumbnail/processors.py create mode 100644 apps/sorl/thumbnail/templatetags/__init__.py create mode 100755 apps/sorl/thumbnail/templatetags/thumbnail.py create mode 100644 apps/sorl/thumbnail/tests/__init__.py create mode 100644 apps/sorl/thumbnail/tests/base.py create mode 100644 apps/sorl/thumbnail/tests/classes.py create mode 100644 apps/sorl/thumbnail/tests/fields.py create mode 100644 apps/sorl/thumbnail/tests/templatetags.py create mode 100644 apps/sorl/thumbnail/tests/utils.py create mode 100644 apps/sorl/thumbnail/utils.py create mode 100644 platforma/static/filebrowser/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/.svn/entries create mode 100644 platforma/static/filebrowser/css/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/css/.svn/entries create mode 100644 platforma/static/filebrowser/css/.svn/prop-base/filebrowser.css.svn-base create mode 100644 platforma/static/filebrowser/css/.svn/text-base/filebrowser.css.svn-base create mode 100755 platforma/static/filebrowser/css/filebrowser.css create mode 100644 platforma/static/filebrowser/img/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/img/.svn/entries create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_delete.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_delete_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_rename.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_rename_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select_disabled.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_show.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_show_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_code.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_document.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_folder.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_image.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_sound.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_video.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrow_down.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrow_up.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrows.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_delete.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_delete_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_imagegenerator.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_imagegenerator_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_makethumb.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_makethumb_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_rename.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_rename_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select_disabled.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_show.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_show_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_showversions.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_showversions_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makethumb.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_code.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_document.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_folder.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_image.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_sound.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_video.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/tableheader_arrow_down.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/tableheader_arrow_up.gif.svn-base create mode 100644 platforma/static/filebrowser/img/.svn/text-base/tableheader_arrows.gif.svn-base create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_delete.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_delete_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_imagegenerator.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_imagegenerator_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_makethumb.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_makethumb_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_rename.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_rename_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_select.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_select_disabled.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_select_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_show.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_show_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_showversions.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_icon_showversions_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_object-tools_icon_imagegenerator.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_object-tools_icon_imagegenerator_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_object-tools_icon_makedirectory.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_object-tools_icon_makedirectory_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_object-tools_icon_makethumb.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_object-tools_icon_makethumb_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_object-tools_icon_multipleupload.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_object-tools_icon_multipleupload_hover.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_type_.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_type_code.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_type_document.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_type_folder.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_type_image.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_type_sound.gif create mode 100644 platforma/static/filebrowser/img/filebrowser_type_video.gif create mode 100644 platforma/static/filebrowser/img/tableheader_arrow_down.gif create mode 100644 platforma/static/filebrowser/img/tableheader_arrow_up.gif create mode 100644 platforma/static/filebrowser/img/tableheader_arrows.gif create mode 100644 platforma/static/filebrowser/js/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/js/.svn/entries create mode 100644 platforma/static/filebrowser/js/.svn/prop-base/FB_FileBrowseField.js.svn-base create mode 100644 platforma/static/filebrowser/js/.svn/prop-base/FB_TinyMCE.js.svn-base create mode 100644 platforma/static/filebrowser/js/.svn/text-base/AddFileBrowser.js.svn-base create mode 100644 platforma/static/filebrowser/js/.svn/text-base/FB_CKEditor.js.svn-base create mode 100644 platforma/static/filebrowser/js/.svn/text-base/FB_FileBrowseField.js.svn-base create mode 100644 platforma/static/filebrowser/js/.svn/text-base/FB_TinyMCE.js.svn-base create mode 100644 platforma/static/filebrowser/js/.svn/text-base/TinyMCEAdmin.js.svn-base create mode 100644 platforma/static/filebrowser/js/.svn/text-base/jquery-1.3.2.min.js.svn-base create mode 100644 platforma/static/filebrowser/js/AddFileBrowser.js create mode 100644 platforma/static/filebrowser/js/FB_CKEditor.js create mode 100755 platforma/static/filebrowser/js/FB_FileBrowseField.js create mode 100755 platforma/static/filebrowser/js/FB_TinyMCE.js create mode 100644 platforma/static/filebrowser/js/TinyMCEAdmin.js create mode 100644 platforma/static/filebrowser/js/jquery-1.3.2.min.js create mode 100644 platforma/static/filebrowser/uploadify/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/Uploadify v2.1.0 Manual.pdf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/cancel.png.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/check.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/expressInstall.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/jquery-1.3.2.min.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/jquery.uploadify.v2.1.0.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/swfobject.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/uploadify.allglyphs.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/uploadify.css.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/uploadify.fla.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/uploadify.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/prop-base/uploadify.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/Uploadify v2.1.0 Manual.pdf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/cancel.png.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/check.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/expressInstall.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/jquery-1.3.2.min.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/jquery.uploadify.v2.1.0.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/swfobject.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/uploadify.allglyphs.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/uploadify.css.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/uploadify.fla.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/uploadify.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/.svn/text-base/uploadify.swf.svn-base create mode 100755 platforma/static/filebrowser/uploadify/Uploadify v2.1.0 Manual.pdf create mode 100755 platforma/static/filebrowser/uploadify/cancel.png create mode 100755 platforma/static/filebrowser/uploadify/check.php create mode 100644 platforma/static/filebrowser/uploadify/com/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/air/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/air/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/air/logging/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/air/logging/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/air/logging/.svn/prop-base/FileTarget.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/air/logging/.svn/text-base/FileTarget.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/air/logging/FileTarget.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/HMAC.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/MD5.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/MD5Stream.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/SHA1.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/SHA224.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/SHA256.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/prop-base/WSSEUsernameToken.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/HMAC.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/MD5.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/MD5Stream.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/SHA1.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/SHA224.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/SHA256.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/crypto/.svn/text-base/WSSEUsernameToken.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/crypto/HMAC.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/crypto/MD5.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/crypto/MD5Stream.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/crypto/SHA1.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/crypto/SHA224.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/crypto/SHA256.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/crypto/WSSEUsernameToken.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/errors/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/errors/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/errors/.svn/prop-base/IllegalStateError.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/errors/.svn/text-base/IllegalStateError.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/errors/IllegalStateError.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/Address.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/Email.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/Phone.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/VCard.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/prop-base/VCardParser.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/Address.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/Email.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/Phone.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/VCard.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/.svn/text-base/VCardParser.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/Address.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/Email.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/Phone.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/VCard.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/fileformats/vcard/VCardParser.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/images/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/images/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/images/.svn/prop-base/BitString.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/images/.svn/prop-base/JPGEncoder.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/images/.svn/prop-base/PNGEncoder.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/images/.svn/text-base/BitString.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/images/.svn/text-base/JPGEncoder.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/images/.svn/text-base/PNGEncoder.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/images/BitString.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/images/JPGEncoder.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/images/PNGEncoder.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/prop-base/DynamicURLLoader.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/prop-base/IURIResolver.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/prop-base/MimeTypeMap.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/prop-base/URI.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/prop-base/URIEncodingBitmap.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/text-base/DynamicURLLoader.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/text-base/IURIResolver.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/text-base/MimeTypeMap.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/text-base/URI.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/.svn/text-base/URIEncodingBitmap.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/net/DynamicURLLoader.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/net/IURIResolver.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/net/MimeTypeMap.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/net/URI.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/net/URIEncodingBitmap.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/proxies/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/proxies/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/proxies/.svn/prop-base/RFC2817Socket.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/net/proxies/.svn/text-base/RFC2817Socket.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/net/proxies/RFC2817Socket.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/Database.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/Definition.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/Dict.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/DictionaryServer.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/MatchStrategy.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/prop-base/Response.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/Database.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/Definition.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/Dict.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/DictionaryServer.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/MatchStrategy.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/.svn/text-base/Response.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/Database.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/Definition.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/Dict.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/DictionaryServer.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/MatchStrategy.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/Response.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/ConnectedEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DatabaseEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DefinitionEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DefinitionHeaderEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DictionaryServerEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/DisconnectedEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/ErrorEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/MatchEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/MatchStrategiesEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/prop-base/NoMatchEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/ConnectedEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DatabaseEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DefinitionEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DefinitionHeaderEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DictionaryServerEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/DisconnectedEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/ErrorEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/MatchEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/MatchStrategiesEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/.svn/text-base/NoMatchEvent.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/ConnectedEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/DatabaseEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/DefinitionEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/DefinitionHeaderEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/DictionaryServerEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/DisconnectedEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/ErrorEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/MatchEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/MatchStrategiesEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/events/NoMatchEvent.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/prop-base/CompleteResponseEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/prop-base/SocketHelper.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/text-base/CompleteResponseEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/text-base/SocketHelper.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/CompleteResponseEvent.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/SocketHelper.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSON.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONDecoder.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONEncoder.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONParseError.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONToken.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONTokenType.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/prop-base/JSONTokenizer.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSON.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONDecoder.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONEncoder.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONParseError.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONToken.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONTokenType.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/.svn/text-base/JSONTokenizer.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/JSON.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/JSONDecoder.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/JSONEncoder.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/JSONParseError.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/JSONToken.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/JSONTokenType.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/serialization/json/JSONTokenizer.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/ArrayUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/DateUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/DictionaryUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/IntUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/NumberFormatter.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/StringUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/prop-base/XMLUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/text-base/ArrayUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/text-base/DateUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/text-base/DictionaryUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/text-base/IntUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/text-base/NumberFormatter.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/text-base/StringUtil.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/utils/.svn/text-base/XMLUtil.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/utils/ArrayUtil.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/utils/DateUtil.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/utils/DictionaryUtil.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/utils/IntUtil.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/utils/NumberFormatter.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/utils/StringUtil.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/utils/XMLUtil.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/.svn/prop-base/ServiceBase.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/.svn/prop-base/URLLoaderBase.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/.svn/text-base/ServiceBase.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/.svn/text-base/URLLoaderBase.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/webapis/ServiceBase.as create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/webapis/URLLoaderBase.as create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/events/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/events/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/events/.svn/prop-base/ServiceEvent.as.svn-base create mode 100644 platforma/static/filebrowser/uploadify/com/adobe/webapis/events/.svn/text-base/ServiceEvent.as.svn-base create mode 100755 platforma/static/filebrowser/uploadify/com/adobe/webapis/events/ServiceEvent.as create mode 100644 platforma/static/filebrowser/uploadify/example/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/example/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/example/.svn/prop-base/cancel.png.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/.svn/prop-base/index.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/.svn/text-base/cancel.png.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/.svn/text-base/index.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/_notes/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/example/_notes/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/example/_notes/.svn/prop-base/dwsync.xml.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/_notes/.svn/text-base/dwsync.xml.svn-base create mode 100755 platforma/static/filebrowser/uploadify/example/_notes/dwsync.xml create mode 100755 platforma/static/filebrowser/uploadify/example/cancel.png create mode 100644 platforma/static/filebrowser/uploadify/example/css/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/example/css/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/example/css/.svn/prop-base/default.css.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/css/.svn/prop-base/uploadify.css.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/css/.svn/text-base/default.css.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/css/.svn/text-base/uploadify.css.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/css/_notes/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/example/css/_notes/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/example/css/_notes/.svn/prop-base/dwsync.xml.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/css/_notes/.svn/text-base/dwsync.xml.svn-base create mode 100755 platforma/static/filebrowser/uploadify/example/css/_notes/dwsync.xml create mode 100755 platforma/static/filebrowser/uploadify/example/css/default.css create mode 100755 platforma/static/filebrowser/uploadify/example/css/uploadify.css create mode 100755 platforma/static/filebrowser/uploadify/example/index.php create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/check.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/expressInstall.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery-1.3.2.min.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/swfobject.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/check.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/expressInstall.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/jquery-1.3.2.min.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/swfobject.js.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/uploadify.php.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/uploadify.swf.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/entries create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/prop-base/dwsync.xml.svn-base create mode 100644 platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/text-base/dwsync.xml.svn-base create mode 100755 platforma/static/filebrowser/uploadify/example/scripts/_notes/dwsync.xml create mode 100755 platforma/static/filebrowser/uploadify/example/scripts/check.php create mode 100755 platforma/static/filebrowser/uploadify/example/scripts/expressInstall.swf create mode 100755 platforma/static/filebrowser/uploadify/example/scripts/jquery-1.3.2.min.js create mode 100755 platforma/static/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js create mode 100755 platforma/static/filebrowser/uploadify/example/scripts/swfobject.js create mode 100755 platforma/static/filebrowser/uploadify/example/scripts/uploadify.php create mode 100755 platforma/static/filebrowser/uploadify/example/scripts/uploadify.swf create mode 100644 platforma/static/filebrowser/uploadify/example/uploads/.svn/all-wcprops create mode 100644 platforma/static/filebrowser/uploadify/example/uploads/.svn/entries create mode 100755 platforma/static/filebrowser/uploadify/expressInstall.swf create mode 100755 platforma/static/filebrowser/uploadify/jquery-1.3.2.min.js create mode 100755 platforma/static/filebrowser/uploadify/jquery.uploadify.v2.1.0.js create mode 100755 platforma/static/filebrowser/uploadify/jquery.uploadify.v2.1.0.min.js create mode 100755 platforma/static/filebrowser/uploadify/swfobject.js create mode 100755 platforma/static/filebrowser/uploadify/uploadify.allglyphs.swf create mode 100755 platforma/static/filebrowser/uploadify/uploadify.css create mode 100755 platforma/static/filebrowser/uploadify/uploadify.fla create mode 100755 platforma/static/filebrowser/uploadify/uploadify.php create mode 100755 platforma/static/filebrowser/uploadify/uploadify.swf create mode 100644 platforma/templates/admin/index.html diff --git a/apps/filebrowser/.svn/all-wcprops b/apps/filebrowser/.svn/all-wcprops new file mode 100644 index 00000000..0b4ed073 --- /dev/null +++ b/apps/filebrowser/.svn/all-wcprops @@ -0,0 +1,71 @@ +K 25 +svn:wc:ra_dav:version-url +V 52 +/svn/!svn/ver/466/branches/filebrowser_3/filebrowser +END +functions.py +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/!svn/ver/465/branches/filebrowser_3/filebrowser/functions.py +END +base.py +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/443/branches/filebrowser_3/filebrowser/base.py +END +LICENSE +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/LICENSE +END +views.py +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/!svn/ver/461/branches/filebrowser_3/filebrowser/views.py +END +__init__.py +K 25 +svn:wc:ra_dav:version-url +V 64 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/__init__.py +END +models.py +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/models.py +END +urls.py +K 25 +svn:wc:ra_dav:version-url +V 60 +/svn/!svn/ver/422/branches/filebrowser_3/filebrowser/urls.py +END +decorators.py +K 25 +svn:wc:ra_dav:version-url +V 66 +/svn/!svn/ver/444/branches/filebrowser_3/filebrowser/decorators.py +END +forms.py +K 25 +svn:wc:ra_dav:version-url +V 61 +/svn/!svn/ver/429/branches/filebrowser_3/filebrowser/forms.py +END +fields.py +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/439/branches/filebrowser_3/filebrowser/fields.py +END +fb_settings.py +K 25 +svn:wc:ra_dav:version-url +V 67 +/svn/!svn/ver/462/branches/filebrowser_3/filebrowser/fb_settings.py +END diff --git a/apps/filebrowser/.svn/entries b/apps/filebrowser/.svn/entries new file mode 100644 index 00000000..e43f70a6 --- /dev/null +++ b/apps/filebrowser/.svn/entries @@ -0,0 +1,414 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser +http://django-filebrowser.googlecode.com/svn + + + +2009-10-29T16:15:59.524671Z +466 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +media +dir + +LICENSE +file + + + + +2009-11-05T20:58:53.000000Z +532802c1bd753424e5d261b4bffcb0b2 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +1492 + +views.py +file + + + + +2009-11-05T20:58:53.000000Z +6b44e5ea8d514f8a5b5ff10f3919d5ae +2009-10-12T15:21:04.608284Z +461 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +17397 + +__init__.py +file + + + + +2009-11-05T20:58:53.000000Z +d41d8cd98f00b204e9800998ecf8427e +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +0 + +templatetags +dir + +decorators.py +file + + + + +2009-11-05T20:58:53.000000Z +359c79d0b20a4221de1baa7e8a73479a +2009-10-11T12:04:42.299426Z +444 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +984 + +fields.py +file + + + + +2009-11-05T20:58:53.000000Z +714900e2e7ed24f41ac0c39e6a97e02d +2009-09-03T11:11:52.997170Z +439 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +4229 + +fb_settings.py +file + + + + +2009-11-05T20:58:53.000000Z +cc0813d16aa849977c769937bfaac3ed +2009-10-12T17:44:24.405122Z +462 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +5334 + +templates +dir + +functions.py +file + + + + +2009-11-05T20:58:53.000000Z +0acc2a96db557874ba954ef7c989f211 +2009-10-14T16:20:12.275006Z +465 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +9302 + +locale +dir + +base.py +file + + + + +2009-11-05T20:58:53.000000Z +551196b16283ed0f2f9b95084bbcbd6b +2009-09-17T14:37:47.395733Z +443 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +5363 + +models.py +file + + + + +2009-11-05T20:58:53.000000Z +be8ad4246f98b8a44b2eef5150fbfe59 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +51 + +urls.py +file + + + + +2009-11-05T20:58:53.000000Z +909a9d7d6b85107630fb30d7938aec9d +2009-07-31T18:34:22.973253Z +422 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +679 + +forms.py +file + + + + +2009-11-05T20:58:53.000000Z +47abec059435b5d60377ff170f60a48c +2009-08-01T09:59:09.789309Z +429 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +2748 + diff --git a/apps/filebrowser/.svn/prop-base/fb_settings.py.svn-base b/apps/filebrowser/.svn/prop-base/fb_settings.py.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/.svn/prop-base/fb_settings.py.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/.svn/prop-base/functions.py.svn-base b/apps/filebrowser/.svn/prop-base/functions.py.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/.svn/prop-base/functions.py.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/.svn/prop-base/models.py.svn-base b/apps/filebrowser/.svn/prop-base/models.py.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/.svn/prop-base/models.py.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/.svn/text-base/LICENSE.svn-base b/apps/filebrowser/.svn/text-base/LICENSE.svn-base new file mode 100644 index 00000000..c42f6c2b --- /dev/null +++ b/apps/filebrowser/.svn/text-base/LICENSE.svn-base @@ -0,0 +1,24 @@ +Copyright (c) 2009, Patrick Kranzlmueller (vonautomatisch werkstaetten), +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. +3. Neither the name of FileBrowser nor the names of its contributors may be used +to endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/apps/filebrowser/.svn/text-base/__init__.py.svn-base b/apps/filebrowser/.svn/text-base/__init__.py.svn-base new file mode 100644 index 00000000..e69de29b diff --git a/apps/filebrowser/.svn/text-base/base.py.svn-base b/apps/filebrowser/.svn/text-base/base.py.svn-base new file mode 100644 index 00000000..e72b9ff0 --- /dev/null +++ b/apps/filebrowser/.svn/text-base/base.py.svn-base @@ -0,0 +1,199 @@ +# coding: utf-8 + +import os, re, datetime +from time import gmtime, strftime +from django.conf import settings + +# filebrowser imports +from filebrowser.fb_settings import * +from filebrowser.functions import _get_file_type, _url_join, _is_selectable, _get_version_path + +# PIL import +if STRICT_PIL: + from PIL import Image +else: + try: + from PIL import Image + except ImportError: + import Image + + +class FileObject(object): + """ + The FileObject represents a File on the Server. + + PATH has to be relative to MEDIA_ROOT. + """ + + def __init__(self, path): + self.path = path + self.head = os.path.split(path)[0] + self.filename = os.path.split(path)[1] + self.filename_lower = self.filename.lower() # important for sorting + self.filetype = _get_file_type(self.filename) + + def _filesize(self): + """ + Filesize. + """ + if os.path.isfile(os.path.join(MEDIA_ROOT, self.path)) or os.path.isdir(os.path.join(MEDIA_ROOT, self.path)): + return os.path.getsize(os.path.join(MEDIA_ROOT, self.path)) + return "" + filesize = property(_filesize) + + def _date(self): + """ + Date. + """ + if os.path.isfile(os.path.join(MEDIA_ROOT, self.path)) or os.path.isdir(os.path.join(MEDIA_ROOT, self.path)): + return os.path.getmtime(os.path.join(MEDIA_ROOT, self.path)) + return "" + date = property(_date) + + def _datetime(self): + """ + Datetime Object. + """ + return datetime.datetime.fromtimestamp(self.date) + datetime = property(_datetime) + + def _extension(self): + """ + Extension. + """ + return u"%s" % os.path.splitext(self.filename)[1] + extension = property(_extension) + + def _filetype_checked(self): + if self.filetype == "Folder" and os.path.isdir(self.path_full): + return self.filetype + elif self.filetype != "Folder" and os.path.isfile(self.path_full): + return self.filetype + else: + return "" + filetype_checked = property(_filetype_checked) + + def _path_full(self): + """ + Full server PATH including MEDIA_ROOT. + """ + return u"%s" % os.path.join(MEDIA_ROOT, self.path) + path_full = property(_path_full) + + def _path_relative(self): + return self.path + path_relative = property(_path_relative) + + def _path_relative_directory(self): + """ + Path relative to initial directory. + """ + directory_re = re.compile(r'^(%s)' % (DIRECTORY)) + value = directory_re.sub('', self.path) + return u"%s" % value + path_relative_directory = property(_path_relative_directory) + + def _url_relative(self): + return self.path + url_relative = property(_url_relative) + + def _url_full(self): + """ + Full URL including MEDIA_URL. + """ + return u"%s" % _url_join(MEDIA_URL, self.path) + url_full = property(_url_full) + + def _url_save(self): + """ + URL used for the filebrowsefield. + """ + if SAVE_FULL_URL: + return self.url_full + else: + return self.path + url_save = property(_url_save) + + def _url_thumbnail(self): + """ + Thumbnail URL. + """ + if self.filetype == "Image": + return u"%s" % _url_join(MEDIA_URL, _get_version_path(self.path, 'fb_thumb')) + else: + return "" + url_thumbnail = property(_url_thumbnail) + + def url_admin(self): + if self.filetype_checked == "Folder": + directory_re = re.compile(r'^(%s)' % (DIRECTORY)) + value = directory_re.sub('', self.path) + return u"%s" % value + else: + return u"%s" % _url_join(MEDIA_URL, self.path) + + def _dimensions(self): + """ + Image Dimensions. + """ + if self.filetype == 'Image': + try: + im = Image.open(os.path.join(MEDIA_ROOT, self.path)) + return im.size + except: + pass + else: + return False + dimensions = property(_dimensions) + + def _width(self): + """ + Image Width. + """ + return self.dimensions[0] + width = property(_width) + + def _height(self): + """ + Image Height. + """ + return self.dimensions[1] + height = property(_height) + + def _orientation(self): + """ + Image Orientation. + """ + if self.dimensions: + if self.dimensions[0] >= self.dimensions[1]: + return "Landscape" + else: + return "Portrait" + else: + return None + orientation = property(_orientation) + + def _is_empty(self): + """ + True if Folder is empty, False if not. + """ + if os.path.isdir(self.path_full): + if not os.listdir(self.path_full): + return True + else: + return False + else: + return None + is_empty = property(_is_empty) + + def __repr__(self): + return u"%s" % self.url_save + + def __str__(self): + return u"%s" % self.url_save + + def __unicode__(self): + return u"%s" % self.url_save + + + diff --git a/apps/filebrowser/.svn/text-base/decorators.py.svn-base b/apps/filebrowser/.svn/text-base/decorators.py.svn-base new file mode 100644 index 00000000..070fa2d0 --- /dev/null +++ b/apps/filebrowser/.svn/text-base/decorators.py.svn-base @@ -0,0 +1,29 @@ +# coding: utf-8 + +from django.contrib.sessions.models import Session +from django.shortcuts import get_object_or_404, render_to_response +from django.contrib.auth.models import User +from django.template import RequestContext +from django.conf import settings + + +def flash_login_required(function): + """ + Decorator to recognize a user by its session. + Used for Flash-Uploading. + """ + + def decorator(request, *args, **kwargs): + try: + engine = __import__(settings.SESSION_ENGINE, {}, {}, ['']) + except: + import django.contrib.sessions.backends.db + engine = django.contrib.sessions.backends.db + session_data = engine.SessionStore(request.POST.get('session_key')) + user_id = session_data['_auth_user_id'] + #will return 404 if the session ID does not resolve to a valid user + request.user = get_object_or_404(User, pk=user_id) + return function(request, *args, **kwargs) + return decorator + + diff --git a/apps/filebrowser/.svn/text-base/fb_settings.py.svn-base b/apps/filebrowser/.svn/text-base/fb_settings.py.svn-base new file mode 100644 index 00000000..502f109f --- /dev/null +++ b/apps/filebrowser/.svn/text-base/fb_settings.py.svn-base @@ -0,0 +1,109 @@ +# coding: utf-8 + +import os +from django.conf import settings +from django.utils.translation import ugettext_lazy as _ + +# settings for django-tinymce +try: + import tinymce.settings + DEFAULT_URL_TINYMCE = tinymce.settings.JS_BASE_URL + '/' + DEFAULT_PATH_TINYMCE = tinymce.settings.JS_ROOT + '/' +except ImportError: + DEFAULT_URL_TINYMCE = settings.ADMIN_MEDIA_PREFIX + "tinymce/jscripts/tiny_mce/" + DEFAULT_PATH_TINYMCE = os.path.join(settings.MEDIA_ROOT, 'admin/tinymce/jscripts/tiny_mce/') + +# Set to True in order to see the FileObject when Browsing. +DEBUG = getattr(settings, "FILEBROWSER_DEBUG", False) + +# Main Media Settings +MEDIA_ROOT = getattr(settings, "FILEBROWSER_MEDIA_ROOT", settings.MEDIA_ROOT) +MEDIA_URL = getattr(settings, "FILEBROWSER_MEDIA_URL", settings.MEDIA_URL) + +# Main FileBrowser Directory. This has to be a directory within MEDIA_ROOT. +# Leave empty in order to browse all files under MEDIA_ROOT. +# DO NOT USE A SLASH AT THE BEGINNING, DO NOT FORGET THE TRAILING SLASH AT THE END. +DIRECTORY = getattr(settings, "FILEBROWSER_DIRECTORY", 'uploads/') + +# The URL/PATH to your filebrowser media-files. +URL_FILEBROWSER_MEDIA = getattr(settings, "FILEBROWSER_URL_FILEBROWSER_MEDIA", "/media/filebrowser/") +PATH_FILEBROWSER_MEDIA = getattr(settings, "FILEBROWSER_PATH_FILEBROWSER_MEDIA", os.path.join(settings.MEDIA_ROOT, 'filebrowser/')) + +# The URL/PATH to your TinyMCE Installation. +URL_TINYMCE = getattr(settings, "FILEBROWSER_URL_TINYMCE", DEFAULT_URL_TINYMCE) +PATH_TINYMCE = getattr(settings, "FILEBROWSER_PATH_TINYMCE", DEFAULT_PATH_TINYMCE) + +# Allowed Extensions for File Upload. Lower case is important. +# Please be aware that there are Icons for the default extension settings. +# Therefore, if you add a category (e.g. "Misc"), you won't get an icon. +EXTENSIONS = getattr(settings, "FILEBROWSER_EXTENSIONS", { + 'Folder': [''], + 'Image': ['.jpg','.jpeg','.gif','.png','.tif','.tiff'], + 'Video': ['.mov','.wmv','.mpeg','.mpg','.avi','.rm'], + 'Document': ['.pdf','.doc','.rtf','.txt','.xls','.csv'], + 'Sound': ['.mp3','.mp4','.wav','.aiff','.midi','.m4p'], + 'Code': ['.html','.py','.js','.css'] +}) + +# Define different formats for allowed selections. +# This has to be a subset of EXTENSIONS. +SELECT_FORMATS = getattr(settings, "FILEBROWSER_SELECT_FORMATS", { + 'File': ['Folder','Document',], + 'Image': ['Image'], + 'Media': ['Video','Sound'], + 'Document': ['Document'], + # for TinyMCE we can also define lower-case items + 'image': ['Image'], + 'file': ['Folder','Image','Document',], +}) + +# Directory to Save Image Versions (and Thumbnails). Relative to MEDIA_ROOT. +# If no directory is given, versions are stored within the Image directory. +# VERSION URL: VERSIONS_BASEDIR/original_path/originalfilename_versionsuffix.extension +VERSIONS_BASEDIR = getattr(settings, 'FILEBROWSER_VERSIONS_BASEDIR', '') +# Versions Format. Available Attributes: verbose_name, width, height, opts +VERSIONS = getattr(settings, "FILEBROWSER_VERSIONS", { + 'fb_thumb': {'verbose_name': 'Admin Thumbnail', 'width': 60, 'height': 60, 'opts': 'crop upscale'}, + 'thumbnail': {'verbose_name': 'Thumbnail (140px)', 'width': 140, 'height': '', 'opts': ''}, + 'small': {'verbose_name': 'Small (300px)', 'width': 300, 'height': '', 'opts': ''}, + 'medium': {'verbose_name': 'Medium (460px)', 'width': 460, 'height': '', 'opts': ''}, + 'big': {'verbose_name': 'Big (620px)', 'width': 620, 'height': '', 'opts': ''}, + 'cropped': {'verbose_name': 'Cropped (60x60px)', 'width': 60, 'height': 60, 'opts': 'crop'}, + 'croppedthumbnail': {'verbose_name': 'Cropped Thumbnail (140x140px)', 'width': 140, 'height': 140, 'opts': 'crop'}, +}) +# Versions available within the Admin-Interface. +ADMIN_VERSIONS = getattr(settings, 'FILEBROWSER_ADMIN_VERSIONS', ['thumbnail','small', 'medium','big']) +# Which Version should be used as Admin-thumbnail. +ADMIN_THUMBNAIL = getattr(settings, 'FILEBROWSER_ADMIN_THUMBNAIL', 'fb_thumb') + +# EXTRA SETTINGS +# True to save the URL including MEDIA_URL to your model fields +# or False (default) to save path relative to MEDIA_URL. +# Note: Full URL does not necessarily means absolute URL. +SAVE_FULL_URL = getattr(settings, "FILEBROWSER_SAVE_FULL_URL", True) +# If set to True, the FileBrowser will not try to import a mis-installed PIL. +STRICT_PIL = getattr(settings, 'FILEBROWSER_STRICT_PIL', False) +# PIL's Error "Suspension not allowed here" work around: +# s. http://mail.python.org/pipermail/image-sig/1999-August/000816.html +IMAGE_MAXBLOCK = getattr(settings, 'FILEBROWSER_IMAGE_MAXBLOCK', 1024*1024) +# Exclude files matching any of the following regular expressions +# Default is to exclude 'thumbnail' style naming of image-thumbnails. +EXTENSION_LIST = [] +for exts in EXTENSIONS.values(): + EXTENSION_LIST += exts +EXCLUDE = getattr(settings, 'FILEBROWSER_EXCLUDE', (r'_(%(exts)s)_.*_q\d{1,3}\.(%(exts)s)' % {'exts': ('|'.join(EXTENSION_LIST))},)) +# Max. Upload Size in Bytes. +MAX_UPLOAD_SIZE = getattr(settings, "FILEBROWSER_MAX_UPLOAD_SIZE", 10485760) +# Convert Filename (replace spaces and convert to lowercase) +CONVERT_FILENAME = getattr(settings, "FILEBROWSER_CONVERT_FILENAME", True) + +# EXTRA TRANSLATION STRINGS +# The following strings are not availabe within views or templates +_('Folder') +_('Image') +_('Video') +_('Document') +_('Sound') +_('Code') + + diff --git a/apps/filebrowser/.svn/text-base/fields.py.svn-base b/apps/filebrowser/.svn/text-base/fields.py.svn-base new file mode 100644 index 00000000..85e981b9 --- /dev/null +++ b/apps/filebrowser/.svn/text-base/fields.py.svn-base @@ -0,0 +1,121 @@ +# coding: utf-8 + +import os + +# django imports +from django.db import models +from django import forms +from django.forms.widgets import Input +from django.db.models.fields import Field, CharField +from django.utils.encoding import force_unicode +from django.template.loader import render_to_string +from django.utils.translation import ugettext_lazy as _ + +# filebrowser imports +from filebrowser.functions import _url_to_path, _dir_from_url, _get_version_path, _url_join +from filebrowser.fb_settings import * +from filebrowser.base import FileObject + +class FileBrowseWidget(Input): + input_type = 'text' + + class Media: + js = (os.path.join(URL_FILEBROWSER_MEDIA, 'js/AddFileBrowser.js'), ) + + def __init__(self, attrs=None): + self.directory = attrs.get('directory', '') + self.extensions = attrs.get('extensions', '') + self.format = attrs.get('format', '') + if attrs is not None: + self.attrs = attrs.copy() + else: + self.attrs = {} + + def render(self, name, value, attrs=None): + if value is None: + value = "" + final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) + final_attrs['search_icon'] = URL_FILEBROWSER_MEDIA + 'img/filebrowser_icon_show.gif' + final_attrs['directory'] = self.directory + final_attrs['extensions'] = self.extensions + final_attrs['format'] = self.format + final_attrs['ADMIN_THUMBNAIL'] = ADMIN_THUMBNAIL + final_attrs['DEBUG'] = DEBUG + if value != "": + try: + final_attrs['directory'] = os.path.split(value.path_relative_directory)[0] + except: + pass + return render_to_string("filebrowser/custom_field.html", locals()) + + +class FileBrowseFormField(forms.CharField): + widget = FileBrowseWidget + + default_error_messages = { + 'extension': _(u'Extension %(ext)s is not allowed. Only %(allowed)s is allowed.'), + } + + def __init__(self, max_length=None, min_length=None, + directory=None, extensions=None, format=None, + *args, **kwargs): + self.max_length, self.min_length = max_length, min_length + self.directory = directory + self.extensions = extensions + if format: + self.format = format or '' + self.extensions = extensions or EXTENSIONS.get(format) + super(FileBrowseFormField, self).__init__(*args, **kwargs) + + def clean(self, value): + value = super(FileBrowseFormField, self).clean(value) + if value == '': + return value + file_extension = os.path.splitext(value)[1].lower() + if self.extensions and not file_extension in self.extensions: + raise forms.ValidationError(self.error_messages['extension'] % {'ext': file_extension, 'allowed': ", ".join(self.extensions)}) + return value + + +class FileBrowseField(Field): + __metaclass__ = models.SubfieldBase + + def __init__(self, *args, **kwargs): + self.directory = kwargs.pop('directory', '') + self.extensions = kwargs.pop('extensions', '') + self.format = kwargs.pop('format', '') + return super(FileBrowseField, self).__init__(*args, **kwargs) + + def to_python(self, value): + if not value or isinstance(value, FileObject): + return value + return FileObject(_url_to_path(value)) + + def get_db_prep_value(self, value): + if value is None: + return None + return unicode(value) + + + def get_manipulator_field_objs(self): + return [oldforms.TextField] + + def get_internal_type(self): + return "CharField" + + def formfield(self, **kwargs): + attrs = {} + attrs["directory"] = self.directory + attrs["extensions"] = self.extensions + attrs["format"] = self.format + defaults = { + 'form_class': FileBrowseFormField, + 'widget': FileBrowseWidget(attrs=attrs), + 'directory': self.directory, + 'extensions': self.extensions, + 'format': self.format + } + defaults.update(kwargs) + return super(FileBrowseField, self).formfield(**defaults) + + diff --git a/apps/filebrowser/.svn/text-base/forms.py.svn-base b/apps/filebrowser/.svn/text-base/forms.py.svn-base new file mode 100644 index 00000000..eef418cc --- /dev/null +++ b/apps/filebrowser/.svn/text-base/forms.py.svn-base @@ -0,0 +1,59 @@ +# coding: utf-8 + +import re, os + +from django import forms +from django.forms.formsets import BaseFormSet +from django.utils.translation import ugettext as _ + +# filebrowser imports +from filebrowser.fb_settings import MAX_UPLOAD_SIZE +from filebrowser.functions import _get_file_type, _convert_filename + +alnum_name_re = re.compile(r'^[\sa-zA-Z0-9._/-]+$') + +class MakeDirForm(forms.Form): + """ + Form for creating Directory. + """ + + def __init__(self, path, *args, **kwargs): + self.path = path + super(MakeDirForm, self).__init__(*args, **kwargs) + + dir_name = forms.CharField(widget=forms.TextInput(attrs=dict({ 'class': 'vTextField' }, max_length=50, min_length=3)), label=_(u'Name'), help_text=_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.'), required=True) + + def clean_dir_name(self): + if self.cleaned_data['dir_name']: + # only letters, numbers, underscores, spaces and hyphens are allowed. + if not alnum_name_re.search(self.cleaned_data['dir_name']): + raise forms.ValidationError(_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.')) + # directory must not already exist. + if os.path.isdir(os.path.join(self.path, _convert_filename(self.cleaned_data['dir_name']))): + raise forms.ValidationError(_(u'The Folder already exists.')) + return _convert_filename(self.cleaned_data['dir_name']) + + +class RenameForm(forms.Form): + """ + Form for renaming File/Directory. + """ + + def __init__(self, path, file_extension, *args, **kwargs): + self.path = path + self.file_extension = file_extension + super(RenameForm, self).__init__(*args, **kwargs) + + name = forms.CharField(widget=forms.TextInput(attrs=dict({ 'class': 'vTextField' }, max_length=50, min_length=3)), label=_(u'New Name'), help_text=_('Only letters, numbers, underscores, spaces and hyphens are allowed.'), required=True) + + def clean_name(self): + if self.cleaned_data['name']: + # only letters, numbers, underscores, spaces and hyphens are allowed. + if not alnum_name_re.search(self.cleaned_data['name']): + raise forms.ValidationError(_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.')) + # file/directory must not already exist. + if os.path.isdir(os.path.join(self.path, _convert_filename(self.cleaned_data['name']))) or os.path.isfile(os.path.join(self.path, _convert_filename(self.cleaned_data['name']) + self.file_extension)): + raise forms.ValidationError(_(u'The File/Folder already exists.')) + return _convert_filename(self.cleaned_data['name']) + + diff --git a/apps/filebrowser/.svn/text-base/functions.py.svn-base b/apps/filebrowser/.svn/text-base/functions.py.svn-base new file mode 100644 index 00000000..cef9dcd9 --- /dev/null +++ b/apps/filebrowser/.svn/text-base/functions.py.svn-base @@ -0,0 +1,312 @@ +# coding: utf-8 + +from django.utils.translation import ugettext as _ +from django.utils.safestring import mark_safe +from time import gmtime, strftime, localtime, mktime, time +from django.core.files import File +from django.core.files.storage import default_storage +import os, re, decimal +from urlparse import urlparse + +# filebrowser imports +from filebrowser.fb_settings import * + +# PIL import +if STRICT_PIL: + from PIL import Image +else: + try: + from PIL import Image + except ImportError: + import Image + + +def _url_to_path(value): + """ + Change URL to PATH. + Value has to be an URL relative to MEDIA URL or a full URL (including MEDIA_URL). + + Returns a PATH relative to MEDIA_ROOT. + """ + mediaurl_re = re.compile(r'^(%s)' % (MEDIA_URL)) + value = mediaurl_re.sub('', value) + return value + + +def _path_to_url(value): + """ + Change PATH to URL. + Value has to be a PATH relative to MEDIA_ROOT. + + Return an URL relative to MEDIA_ROOT. + """ + mediaroot_re = re.compile(r'^(%s)' % (MEDIA_ROOT)) + value = mediaroot_re.sub('', value) + return _url_join(MEDIA_URL, value) + + +def _dir_from_url(value): + """ + Get the relative server directory from a URL. + URL has to be an absolute URL including MEDIA_URL or + an URL relative to MEDIA_URL. + """ + + mediaurl_re = re.compile(r'^(%s)' % (MEDIA_URL)) + value = mediaurl_re.sub('', value) + directory_re = re.compile(r'^(%s)' % (DIRECTORY)) + value = directory_re.sub('', value) + return os.path.split(value)[0] + + +def _get_version_path(value, version_prefix): + """ + Construct the PATH to an Image version. + Value has to be server-path, relative to MEDIA_ROOT. + + version_filename = filename + version_prefix + ext + Returns a path relative to MEDIA_ROOT. + """ + if os.path.isfile(os.path.join(MEDIA_ROOT, value)): + path, filename = os.path.split(value) + filename, ext = os.path.splitext(filename) + version_filename = filename + "_" + version_prefix + ext + return os.path.join(VERSIONS_BASEDIR, path, version_filename) + else: + return None + + +def _sort_by_attr(seq, attr): + """ + Sort the sequence of objects by object's attribute + + Arguments: + seq - the list or any sequence (including immutable one) of objects to sort. + attr - the name of attribute to sort by + + Returns: + the sorted list of objects. + """ + import operator + + # Use the "Schwartzian transform" + # Create the auxiliary list of tuples where every i-th tuple has form + # (seq[i].attr, i, seq[i]) and sort it. The second item of tuple is needed not + # only to provide stable sorting, but mainly to eliminate comparison of objects + # (which can be expensive or prohibited) in case of equal attribute values. + intermed = map(None, map(getattr, seq, (attr,)*len(seq)), xrange(len(seq)), seq) + intermed.sort() + return map(operator.getitem, intermed, (-1,) * len(intermed)) + + +def _url_join(*args): + if args[0].startswith("http://"): + url = "http://" + else: + url = "/" + for arg in args: + arg = str(arg).replace("\\", "/") + arg_split = arg.split("/") + for elem in arg_split: + if elem != "" and elem != "http:": + url = url + elem + "/" + # remove trailing slash for filenames + if os.path.splitext(args[-1])[1]: + url = url.rstrip("/") + return url + + +def _get_path(path): + """ + Get Path. + """ + + if os.path.isabs(path) or not os.path.isdir(os.path.join(MEDIA_ROOT, DIRECTORY, path)): + return None + return path + + +def _get_file(path, filename): + """ + Get File. + """ + + if not os.path.isfile(os.path.join(MEDIA_ROOT, DIRECTORY, path, filename)) and not os.path.isdir(os.path.join(MEDIA_ROOT, DIRECTORY, path, filename)): + return None + return filename + + +def _get_breadcrumbs(query, path, title): + """ + Get breadcrumbs. + """ + + breadcrumbs = [] + dir_query = "" + if path: + for item in path.split(os.sep): + dir_query = os.path.join(dir_query,item) + breadcrumbs.append([item,dir_query]) + if title: + breadcrumbs.append([title,'']) + return breadcrumbs + + +def _get_filterdate(filterDate, dateTime): + """ + Get filterdate. + """ + + returnvalue = '' + dateYear = strftime("%Y", gmtime(dateTime)) + dateMonth = strftime("%m", gmtime(dateTime)) + dateDay = strftime("%d", gmtime(dateTime)) + if filterDate == 'today' and int(dateYear) == int(localtime()[0]) and int(dateMonth) == int(localtime()[1]) and int(dateDay) == int(localtime()[2]): returnvalue = 'true' + elif filterDate == 'thismonth' and dateTime >= time()-2592000: returnvalue = 'true' + elif filterDate == 'thisyear' and int(dateYear) == int(localtime()[0]): returnvalue = 'true' + elif filterDate == 'past7days' and dateTime >= time()-604800: returnvalue = 'true' + elif filterDate == '': returnvalue = 'true' + return returnvalue + + +def _get_settings_var(): + """ + Get settings variables used for FileBrowser listing. + """ + + settings_var = {} + # Main + settings_var['DEBUG'] = DEBUG + settings_var['MEDIA_ROOT'] = MEDIA_ROOT + settings_var['MEDIA_URL'] = MEDIA_URL + settings_var['DIRECTORY'] = DIRECTORY + # FileBrowser + settings_var['URL_FILEBROWSER_MEDIA'] = URL_FILEBROWSER_MEDIA + settings_var['PATH_FILEBROWSER_MEDIA'] = PATH_FILEBROWSER_MEDIA + # TinyMCE + settings_var['URL_TINYMCE'] = URL_TINYMCE + settings_var['PATH_TINYMCE'] = PATH_TINYMCE + # Extensions/Formats (for FileBrowseField) + settings_var['EXTENSIONS'] = EXTENSIONS + settings_var['SELECT_FORMATS'] = SELECT_FORMATS + # Versions + settings_var['VERSIONS_BASEDIR'] = VERSIONS_BASEDIR + settings_var['VERSIONS'] = VERSIONS + settings_var['ADMIN_VERSIONS'] = ADMIN_VERSIONS + settings_var['ADMIN_THUMBNAIL'] = ADMIN_THUMBNAIL + # FileBrowser Options + settings_var['MAX_UPLOAD_SIZE'] = MAX_UPLOAD_SIZE + # Convert Filenames + settings_var['CONVERT_FILENAME'] = CONVERT_FILENAME + return settings_var + + +def _handle_file_upload(path, file): + """ + Handle File Upload. + """ + + file_path = os.path.join(path, file.name) + uploadedfile = default_storage.save(file_path, file) + return uploadedfile + + +def _get_file_type(filename): + """ + Get file type as defined in EXTENSIONS. + """ + + file_extension = os.path.splitext(filename)[1].lower() + file_type = '' + for k,v in EXTENSIONS.iteritems(): + for extension in v: + if file_extension == extension.lower(): + file_type = k + return file_type + + +def _is_selectable(filename, selecttype): + """ + Get select type as defined in FORMATS. + """ + + file_extension = os.path.splitext(filename)[1].lower() + select_types = [] + for k,v in SELECT_FORMATS.iteritems(): + for extension in v: + if file_extension == extension.lower(): + select_types.append(k) + return select_types + + +def _version_generator(value, version_prefix, force=None): + """ + Generate Version for an Image. + value has to be a serverpath relative to MEDIA_ROOT. + """ + + # PIL's Error "Suspension not allowed here" work around: + # s. http://mail.python.org/pipermail/image-sig/1999-August/000816.html + if STRICT_PIL: + from PIL import ImageFile + else: + try: + from PIL import ImageFile + except ImportError: + import ImageFile + ImageFile.MAXBLOCK = IMAGE_MAXBLOCK # default is 64k + + try: + im = Image.open(os.path.join(MEDIA_ROOT, value)) + version_path = _get_version_path(value, version_prefix) + absolute_version_path = os.path.join(MEDIA_ROOT, version_path) + version_dir = os.path.split(absolute_version_path)[0] + if not os.path.isdir(version_dir): + os.makedirs(version_dir) + os.chmod(version_dir, 0775) + version = scale_and_crop(im, VERSIONS[version_prefix]['width'], VERSIONS[version_prefix]['height'], VERSIONS[version_prefix]['opts']) + try: + version.save(absolute_version_path, quality=90, optimize=1) + except IOError: + version.save(absolute_version_path, quality=90) + return version_path + except: + return None + + +def scale_and_crop(im, width, height, opts): + x, y = [float(v) for v in im.size] + if width: + xr = float(width) + else: + xr = float(x*height/y) + if height: + yr = float(height) + else: + yr = float(y*width/x) + + if 'crop' in opts: + r = max(xr/x, yr/y) + else: + r = min(xr/x, yr/y) + + if r < 1.0 or (r > 1.0 and 'upscale' in opts): + im = im.resize((int(x*r), int(y*r)), resample=Image.ANTIALIAS) + + if 'crop' in opts: + x, y = [float(v) for v in im.size] + ex, ey = (x-min(x, xr))/2, (y-min(y, yr))/2 + if ex or ey: + im = im.crop((int(ex), int(ey), int(x-ex), int(y-ey))) + return im +scale_and_crop.valid_options = ('crop', 'upscale') + + +def _convert_filename(value): + if CONVERT_FILENAME: + return value.replace(" ", "_").lower() + else: + return value + + + diff --git a/apps/filebrowser/.svn/text-base/models.py.svn-base b/apps/filebrowser/.svn/text-base/models.py.svn-base new file mode 100644 index 00000000..a11084e2 --- /dev/null +++ b/apps/filebrowser/.svn/text-base/models.py.svn-base @@ -0,0 +1 @@ +# This file is only necessary for the tests to work \ No newline at end of file diff --git a/apps/filebrowser/.svn/text-base/urls.py.svn-base b/apps/filebrowser/.svn/text-base/urls.py.svn-base new file mode 100644 index 00000000..5cfc2596 --- /dev/null +++ b/apps/filebrowser/.svn/text-base/urls.py.svn-base @@ -0,0 +1,16 @@ +from django.conf.urls.defaults import * + +urlpatterns = patterns('', + + # filebrowser urls + url(r'^browse/$', 'filebrowser.views.browse', name="fb_browse"), + url(r'^mkdir/', 'filebrowser.views.mkdir', name="fb_mkdir"), + url(r'^upload/', 'filebrowser.views.upload', name="fb_upload"), + url(r'^rename/$', 'filebrowser.views.rename', name="fb_rename"), + url(r'^delete/$', 'filebrowser.views.delete', name="fb_delete"), + url(r'^versions/$', 'filebrowser.views.versions', name="fb_versions"), + + url(r'^check_file/$', 'filebrowser.views._check_file', name="fb_check"), + url(r'^upload_file/$', 'filebrowser.views._upload_file', name="fb_do_upload"), + +) diff --git a/apps/filebrowser/.svn/text-base/views.py.svn-base b/apps/filebrowser/.svn/text-base/views.py.svn-base new file mode 100644 index 00000000..0976f11e --- /dev/null +++ b/apps/filebrowser/.svn/text-base/views.py.svn-base @@ -0,0 +1,432 @@ +# coding: utf-8 + +# general imports +import os, re +from time import gmtime, strftime + +# django imports +from django.shortcuts import render_to_response, HttpResponse +from django.template import RequestContext as Context +from django.http import HttpResponseRedirect +from django.contrib.admin.views.decorators import staff_member_required +from django.views.decorators.cache import never_cache +from django.utils.translation import ugettext as _ +from django.conf import settings +from django import forms +from django.core.urlresolvers import reverse +from django.core.exceptions import ImproperlyConfigured +from django.dispatch import Signal + +# filebrowser imports +from filebrowser.fb_settings import * +from filebrowser.functions import _url_to_path, _path_to_url, _sort_by_attr, _get_path, _get_file, _get_version_path, _get_breadcrumbs, _get_filterdate, _get_settings_var, _handle_file_upload, _get_file_type, _url_join, _convert_filename +from filebrowser.templatetags.fb_tags import query_helper +from filebrowser.base import FileObject +from filebrowser.decorators import flash_login_required + +# Precompile regular expressions +filter_re = [] +for exp in EXCLUDE: + filter_re.append(re.compile(exp)) +for k,v in VERSIONS.iteritems(): + exp = (r'_%s.(%s)') % (k, '|'.join(EXTENSION_LIST)) + filter_re.append(re.compile(exp)) + + +def browse(request): + """ + Browse Files/Directories. + """ + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + directory = _get_path('') + + if path is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + if directory is None: + # The DIRECTORY does not exist, raise an error to prevent eternal redirecting. + raise ImproperlyConfigured, _("Error finding upload directory. Maybe it does not exist?") + redirect_url = reverse("fb_browse") + query_helper(query, "", "dir") + return HttpResponseRedirect(redirect_url) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + # INITIAL VARIABLES + results_var = {'results_total': 0, 'results_current': 0, 'delete_total': 0, 'images_total': 0, 'select_total': 0 } + counter = {} + for k,v in EXTENSIONS.iteritems(): + counter[k] = 0 + + dir_list = os.listdir(abs_path) + files = [] + for file in dir_list: + + # EXCLUDE FILES MATCHING VERSIONS_PREFIX OR ANY OF THE EXCLUDE PATTERNS + filtered = file.startswith('.') + for re_prefix in filter_re: + if re_prefix.search(file): + filtered = True + if filtered: + continue + results_var['results_total'] += 1 + + # CREATE FILEOBJECT + fileobject = FileObject(os.path.join(DIRECTORY, path, file)) + + # FILTER / SEARCH + append = False + if fileobject.filetype == request.GET.get('filter_type', fileobject.filetype) and _get_filterdate(request.GET.get('filter_date', ''), fileobject.date): + append = True + if request.GET.get('q') and not re.compile(request.GET.get('q').lower(), re.M).search(file.lower()): + append = False + + # APPEND FILE_LIST + if append: + files.append(fileobject) + results_var['results_current'] += 1 + # COUNTER/RESULTS + if fileobject.filetype == 'Image': + results_var['images_total'] += 1 + if fileobject.filetype != 'Folder': + results_var['delete_total'] += 1 + elif fileobject.filetype == 'Folder' and fileobject.is_empty: + results_var['delete_total'] += 1 + if query.get('type') and query.get('type') in SELECT_FORMATS and fileobject.filetype in SELECT_FORMATS[query.get('type')]: + results_var['select_total'] += 1 + elif not query.get('type'): + results_var['select_total'] += 1 + + # COUNTER/RESULTS + if fileobject.filetype: + counter[fileobject.filetype] += 1 + + # SORTING + files = _sort_by_attr(files, request.GET.get('o', 'date')) + if request.GET.get('ot') == "desc": + files.reverse() + + return render_to_response('filebrowser/index.html', { + 'dir': path, + 'files': files, + 'results_var': results_var, + 'counter': counter, + 'query': query, + 'title': _(u'FileBrowser'), + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, ''), + }, context_instance=Context(request)) +browse = staff_member_required(never_cache(browse)) + + +# mkdir signals +filebrowser_pre_createdir = Signal(providing_args=["path", "dirname"]) +filebrowser_post_createdir = Signal(providing_args=["path", "dirname"]) + +def mkdir(request): + """ + Make Directory. + """ + + from filebrowser.forms import MakeDirForm + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + if path is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + if request.method == 'POST': + form = MakeDirForm(abs_path, request.POST) + if form.is_valid(): + server_path = os.path.join(abs_path, form.cleaned_data['dir_name']) + try: + # PRE CREATE SIGNAL + filebrowser_pre_createdir.send(sender=request, path=path, dirname=form.cleaned_data['dir_name']) + # CREATE FOLDER + os.mkdir(server_path) + os.chmod(server_path, 0775) + # POST CREATE SIGNAL + filebrowser_post_createdir.send(sender=request, path=path, dirname=form.cleaned_data['dir_name']) + # MESSAGE & REDIRECT + msg = _('The Folder %s was successfully created.') % (form.cleaned_data['dir_name']) + request.user.message_set.create(message=msg) + # on redirect, sort by date desc to see the new directory on top of the list + # remove filter in order to actually _see_ the new folder + redirect_url = reverse("fb_browse") + query_helper(query, "ot=desc,o=date", "ot,o,filter_type,filter_date,q") + return HttpResponseRedirect(redirect_url) + except OSError, (errno, strerror): + if errno == 13: + form.errors['dir_name'] = forms.util.ErrorList([_('Permission denied.')]) + else: + form.errors['dir_name'] = forms.util.ErrorList([_('Error creating directory.')]) + else: + form = MakeDirForm(abs_path) + + return render_to_response('filebrowser/makedir.html', { + 'form': form, + 'query': query, + 'title': _(u'New Folder'), + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, _(u'New Folder')), + }, context_instance=Context(request)) +mkdir = staff_member_required(never_cache(mkdir)) + + +def upload(request): + """ + Multipe File Upload. + """ + + from django.http import parse_cookie + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + if path is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + # SESSION (used for flash-uploading) + cookie_dict = parse_cookie(request.META.get('HTTP_COOKIE', '')) + engine = __import__(settings.SESSION_ENGINE, {}, {}, ['']) + session_key = cookie_dict.get(settings.SESSION_COOKIE_NAME, None) + + return render_to_response('filebrowser/upload.html', { + 'query': query, + 'title': _(u'Select files to upload'), + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, _(u'Upload')), + 'session_key': session_key, + }, context_instance=Context(request)) +upload = staff_member_required(never_cache(upload)) + + +def _check_file(request): + """ + Check if file already exists on the server. + """ + + from django.utils import simplejson + + folder = request.POST.get('folder') + fb_uploadurl_re = re.compile(r'^(%s)' % reverse("fb_upload")) + folder = fb_uploadurl_re.sub('', folder) + + fileArray = {} + if request.method == 'POST': + for k,v in request.POST.items(): + if k != "folder": + v = _convert_filename(v) + if os.path.isfile(os.path.join(MEDIA_ROOT, DIRECTORY, folder, v)): + fileArray[k] = v + + return HttpResponse(simplejson.dumps(fileArray)) + + +# upload signals +filebrowser_pre_upload = Signal(providing_args=["path", "file"]) +filebrowser_post_upload = Signal(providing_args=["path", "file"]) + +def _upload_file(request): + """ + Upload file to the server. + """ + + from django.core.files.move import file_move_safe + + if request.method == 'POST': + folder = request.POST.get('folder') + fb_uploadurl_re = re.compile(r'^(%s)' % reverse("fb_upload")) + folder = fb_uploadurl_re.sub('', folder) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, folder) + if request.FILES: + filedata = request.FILES['Filedata'] + filedata.name = _convert_filename(filedata.name) + # PRE UPLOAD SIGNAL + filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) + # HANDLE UPLOAD + uploadedfile = _handle_file_upload(abs_path, filedata) + # MOVE UPLOADED FILE + # if file already exists + if os.path.isfile(os.path.join(MEDIA_ROOT, DIRECTORY, folder, filedata.name)): + old_file = os.path.join(abs_path, filedata.name) + new_file = os.path.join(abs_path, uploadedfile) + file_move_safe(new_file, old_file) + # POST UPLOAD SIGNAL + filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject(os.path.join(DIRECTORY, folder, filedata.name))) + return HttpResponse('True') +_upload_file = flash_login_required(_upload_file) + + +# delete signals +filebrowser_pre_delete = Signal(providing_args=["path", "filename"]) +filebrowser_post_delete = Signal(providing_args=["path", "filename"]) + +def delete(request): + """ + Delete existing File/Directory. + + When trying to delete a Directory, the Directory has to be empty. + """ + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + filename = _get_file(query.get('dir', ''), query.get('filename', '')) + if path is None or filename is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + msg = "" + if request.GET: + if request.GET.get('filetype') != "Folder": + relative_server_path = os.path.join(DIRECTORY, path, filename) + try: + # PRE DELETE SIGNAL + filebrowser_pre_delete.send(sender=request, path=path, filename=filename) + # DELETE IMAGE VERSIONS/THUMBNAILS + for version in VERSIONS: + try: + os.unlink(os.path.join(MEDIA_ROOT, _get_version_path(relative_server_path, version))) + except: + pass + # DELETE FILE + os.unlink(os.path.join(abs_path, filename)) + # POST DELETE SIGNAL + filebrowser_post_delete.send(sender=request, path=path, filename=filename) + # MESSAGE & REDIRECT + msg = _('The file %s was successfully deleted.') % (filename.lower()) + request.user.message_set.create(message=msg) + redirect_url = reverse("fb_browse") + query_helper(query, "", "filename,filetype") + return HttpResponseRedirect(redirect_url) + except OSError: + # todo: define error message + msg = OSError + else: + try: + # PRE DELETE SIGNAL + filebrowser_pre_delete.send(sender=request, path=path, filename=filename) + # DELETE FOLDER + os.rmdir(os.path.join(abs_path, filename)) + # POST DELETE SIGNAL + filebrowser_post_delete.send(sender=request, path=path, filename=filename) + # MESSAGE & REDIRECT + msg = _('The directory %s was successfully deleted.') % (filename.lower()) + request.user.message_set.create(message=msg) + redirect_url = reverse("fb_browse") + query_helper(query, "", "filename,filetype") + return HttpResponseRedirect(redirect_url) + except OSError: + # todo: define error message + msg = OSError + + if msg: + request.user.message_set.create(message=msg) + + return render_to_response('filebrowser/index.html', { + 'dir': dir_name, + 'file': request.GET.get('filename', ''), + 'query': query, + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, dir_name, ''), + }, context_instance=Context(request)) +delete = staff_member_required(never_cache(delete)) + + +# delete signals +filebrowser_pre_rename = Signal(providing_args=["path", "filename"]) +filebrowser_post_rename = Signal(providing_args=["path", "filename"]) + +def rename(request): + """ + Rename existing File/Directory. + + Includes renaming existing Image Versions/Thumbnails. + """ + + from filebrowser.forms import RenameForm + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + filename = _get_file(query.get('dir', ''), query.get('filename', '')) + if path is None or filename is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + file_extension = os.path.splitext(filename)[1].lower() + + if request.method == 'POST': + form = RenameForm(abs_path, file_extension, request.POST) + if form.is_valid(): + relative_server_path = os.path.join(DIRECTORY, path, filename) + new_relative_server_path = os.path.join(DIRECTORY, path, form.cleaned_data['name'] + file_extension) + try: + # PRE RENAME SIGNAL + filebrowser_pre_delete.send(sender=request, path=path, filename=filename) + # DELETE IMAGE VERSIONS/THUMBNAILS + # regenerating versions/thumbs will be done automatically + for version in VERSIONS: + try: + os.unlink(os.path.join(MEDIA_ROOT, _get_version_path(relative_server_path, version))) + except: + pass + # RENAME ORIGINAL + os.rename(os.path.join(MEDIA_ROOT, relative_server_path), os.path.join(MEDIA_ROOT, new_relative_server_path)) + # POST RENAME SIGNAL + filebrowser_post_delete.send(sender=request, path=path, filename=filename) + # MESSAGE & REDIRECT + msg = _('Renaming was successful.') + request.user.message_set.create(message=msg) + redirect_url = reverse("fb_browse") + query_helper(query, "", "filename") + return HttpResponseRedirect(redirect_url) + except OSError, (errno, strerror): + form.errors['name'] = forms.util.ErrorList([_('Error.')]) + else: + form = RenameForm(abs_path, file_extension) + + return render_to_response('filebrowser/rename.html', { + 'form': form, + 'query': query, + 'file_extension': file_extension, + 'title': _(u'Rename "%s"') % filename, + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, _(u'Rename')), + }, context_instance=Context(request)) +rename = staff_member_required(never_cache(rename)) + + +def versions(request): + """ + Show all Versions for an Image according to ADMIN_VERSIONS. + """ + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + filename = _get_file(query.get('dir', ''), query.get('filename', '')) + if path is None or filename is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + return render_to_response('filebrowser/versions.html', { + 'original': _path_to_url(os.path.join(DIRECTORY, path, filename)), + 'query': query, + 'title': _(u'Versions for "%s"') % filename, + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, _(u'Versions for "%s"') % filename), + }, context_instance=Context(request)) +versions = staff_member_required(never_cache(versions)) + + diff --git a/apps/filebrowser/LICENSE b/apps/filebrowser/LICENSE new file mode 100644 index 00000000..c42f6c2b --- /dev/null +++ b/apps/filebrowser/LICENSE @@ -0,0 +1,24 @@ +Copyright (c) 2009, Patrick Kranzlmueller (vonautomatisch werkstaetten), +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + +1. Redistributions of source code must retain the above copyright notice, +this list of conditions and the following disclaimer. +2. Redistributions in binary form must reproduce the above copyright notice, +this list of conditions and the following disclaimer in the documentation and/or +other materials provided with the distribution. +3. Neither the name of FileBrowser nor the names of its contributors may be used +to endorse or promote products derived from this software without specific prior +written permission. + +THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS +OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL +THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, +EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF +SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, +OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/apps/filebrowser/__init__.py b/apps/filebrowser/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/apps/filebrowser/base.py b/apps/filebrowser/base.py new file mode 100644 index 00000000..e72b9ff0 --- /dev/null +++ b/apps/filebrowser/base.py @@ -0,0 +1,199 @@ +# coding: utf-8 + +import os, re, datetime +from time import gmtime, strftime +from django.conf import settings + +# filebrowser imports +from filebrowser.fb_settings import * +from filebrowser.functions import _get_file_type, _url_join, _is_selectable, _get_version_path + +# PIL import +if STRICT_PIL: + from PIL import Image +else: + try: + from PIL import Image + except ImportError: + import Image + + +class FileObject(object): + """ + The FileObject represents a File on the Server. + + PATH has to be relative to MEDIA_ROOT. + """ + + def __init__(self, path): + self.path = path + self.head = os.path.split(path)[0] + self.filename = os.path.split(path)[1] + self.filename_lower = self.filename.lower() # important for sorting + self.filetype = _get_file_type(self.filename) + + def _filesize(self): + """ + Filesize. + """ + if os.path.isfile(os.path.join(MEDIA_ROOT, self.path)) or os.path.isdir(os.path.join(MEDIA_ROOT, self.path)): + return os.path.getsize(os.path.join(MEDIA_ROOT, self.path)) + return "" + filesize = property(_filesize) + + def _date(self): + """ + Date. + """ + if os.path.isfile(os.path.join(MEDIA_ROOT, self.path)) or os.path.isdir(os.path.join(MEDIA_ROOT, self.path)): + return os.path.getmtime(os.path.join(MEDIA_ROOT, self.path)) + return "" + date = property(_date) + + def _datetime(self): + """ + Datetime Object. + """ + return datetime.datetime.fromtimestamp(self.date) + datetime = property(_datetime) + + def _extension(self): + """ + Extension. + """ + return u"%s" % os.path.splitext(self.filename)[1] + extension = property(_extension) + + def _filetype_checked(self): + if self.filetype == "Folder" and os.path.isdir(self.path_full): + return self.filetype + elif self.filetype != "Folder" and os.path.isfile(self.path_full): + return self.filetype + else: + return "" + filetype_checked = property(_filetype_checked) + + def _path_full(self): + """ + Full server PATH including MEDIA_ROOT. + """ + return u"%s" % os.path.join(MEDIA_ROOT, self.path) + path_full = property(_path_full) + + def _path_relative(self): + return self.path + path_relative = property(_path_relative) + + def _path_relative_directory(self): + """ + Path relative to initial directory. + """ + directory_re = re.compile(r'^(%s)' % (DIRECTORY)) + value = directory_re.sub('', self.path) + return u"%s" % value + path_relative_directory = property(_path_relative_directory) + + def _url_relative(self): + return self.path + url_relative = property(_url_relative) + + def _url_full(self): + """ + Full URL including MEDIA_URL. + """ + return u"%s" % _url_join(MEDIA_URL, self.path) + url_full = property(_url_full) + + def _url_save(self): + """ + URL used for the filebrowsefield. + """ + if SAVE_FULL_URL: + return self.url_full + else: + return self.path + url_save = property(_url_save) + + def _url_thumbnail(self): + """ + Thumbnail URL. + """ + if self.filetype == "Image": + return u"%s" % _url_join(MEDIA_URL, _get_version_path(self.path, 'fb_thumb')) + else: + return "" + url_thumbnail = property(_url_thumbnail) + + def url_admin(self): + if self.filetype_checked == "Folder": + directory_re = re.compile(r'^(%s)' % (DIRECTORY)) + value = directory_re.sub('', self.path) + return u"%s" % value + else: + return u"%s" % _url_join(MEDIA_URL, self.path) + + def _dimensions(self): + """ + Image Dimensions. + """ + if self.filetype == 'Image': + try: + im = Image.open(os.path.join(MEDIA_ROOT, self.path)) + return im.size + except: + pass + else: + return False + dimensions = property(_dimensions) + + def _width(self): + """ + Image Width. + """ + return self.dimensions[0] + width = property(_width) + + def _height(self): + """ + Image Height. + """ + return self.dimensions[1] + height = property(_height) + + def _orientation(self): + """ + Image Orientation. + """ + if self.dimensions: + if self.dimensions[0] >= self.dimensions[1]: + return "Landscape" + else: + return "Portrait" + else: + return None + orientation = property(_orientation) + + def _is_empty(self): + """ + True if Folder is empty, False if not. + """ + if os.path.isdir(self.path_full): + if not os.listdir(self.path_full): + return True + else: + return False + else: + return None + is_empty = property(_is_empty) + + def __repr__(self): + return u"%s" % self.url_save + + def __str__(self): + return u"%s" % self.url_save + + def __unicode__(self): + return u"%s" % self.url_save + + + diff --git a/apps/filebrowser/decorators.py b/apps/filebrowser/decorators.py new file mode 100644 index 00000000..070fa2d0 --- /dev/null +++ b/apps/filebrowser/decorators.py @@ -0,0 +1,29 @@ +# coding: utf-8 + +from django.contrib.sessions.models import Session +from django.shortcuts import get_object_or_404, render_to_response +from django.contrib.auth.models import User +from django.template import RequestContext +from django.conf import settings + + +def flash_login_required(function): + """ + Decorator to recognize a user by its session. + Used for Flash-Uploading. + """ + + def decorator(request, *args, **kwargs): + try: + engine = __import__(settings.SESSION_ENGINE, {}, {}, ['']) + except: + import django.contrib.sessions.backends.db + engine = django.contrib.sessions.backends.db + session_data = engine.SessionStore(request.POST.get('session_key')) + user_id = session_data['_auth_user_id'] + #will return 404 if the session ID does not resolve to a valid user + request.user = get_object_or_404(User, pk=user_id) + return function(request, *args, **kwargs) + return decorator + + diff --git a/apps/filebrowser/fb_settings.py b/apps/filebrowser/fb_settings.py new file mode 100755 index 00000000..502f109f --- /dev/null +++ b/apps/filebrowser/fb_settings.py @@ -0,0 +1,109 @@ +# coding: utf-8 + +import os +from django.conf import settings +from django.utils.translation import ugettext_lazy as _ + +# settings for django-tinymce +try: + import tinymce.settings + DEFAULT_URL_TINYMCE = tinymce.settings.JS_BASE_URL + '/' + DEFAULT_PATH_TINYMCE = tinymce.settings.JS_ROOT + '/' +except ImportError: + DEFAULT_URL_TINYMCE = settings.ADMIN_MEDIA_PREFIX + "tinymce/jscripts/tiny_mce/" + DEFAULT_PATH_TINYMCE = os.path.join(settings.MEDIA_ROOT, 'admin/tinymce/jscripts/tiny_mce/') + +# Set to True in order to see the FileObject when Browsing. +DEBUG = getattr(settings, "FILEBROWSER_DEBUG", False) + +# Main Media Settings +MEDIA_ROOT = getattr(settings, "FILEBROWSER_MEDIA_ROOT", settings.MEDIA_ROOT) +MEDIA_URL = getattr(settings, "FILEBROWSER_MEDIA_URL", settings.MEDIA_URL) + +# Main FileBrowser Directory. This has to be a directory within MEDIA_ROOT. +# Leave empty in order to browse all files under MEDIA_ROOT. +# DO NOT USE A SLASH AT THE BEGINNING, DO NOT FORGET THE TRAILING SLASH AT THE END. +DIRECTORY = getattr(settings, "FILEBROWSER_DIRECTORY", 'uploads/') + +# The URL/PATH to your filebrowser media-files. +URL_FILEBROWSER_MEDIA = getattr(settings, "FILEBROWSER_URL_FILEBROWSER_MEDIA", "/media/filebrowser/") +PATH_FILEBROWSER_MEDIA = getattr(settings, "FILEBROWSER_PATH_FILEBROWSER_MEDIA", os.path.join(settings.MEDIA_ROOT, 'filebrowser/')) + +# The URL/PATH to your TinyMCE Installation. +URL_TINYMCE = getattr(settings, "FILEBROWSER_URL_TINYMCE", DEFAULT_URL_TINYMCE) +PATH_TINYMCE = getattr(settings, "FILEBROWSER_PATH_TINYMCE", DEFAULT_PATH_TINYMCE) + +# Allowed Extensions for File Upload. Lower case is important. +# Please be aware that there are Icons for the default extension settings. +# Therefore, if you add a category (e.g. "Misc"), you won't get an icon. +EXTENSIONS = getattr(settings, "FILEBROWSER_EXTENSIONS", { + 'Folder': [''], + 'Image': ['.jpg','.jpeg','.gif','.png','.tif','.tiff'], + 'Video': ['.mov','.wmv','.mpeg','.mpg','.avi','.rm'], + 'Document': ['.pdf','.doc','.rtf','.txt','.xls','.csv'], + 'Sound': ['.mp3','.mp4','.wav','.aiff','.midi','.m4p'], + 'Code': ['.html','.py','.js','.css'] +}) + +# Define different formats for allowed selections. +# This has to be a subset of EXTENSIONS. +SELECT_FORMATS = getattr(settings, "FILEBROWSER_SELECT_FORMATS", { + 'File': ['Folder','Document',], + 'Image': ['Image'], + 'Media': ['Video','Sound'], + 'Document': ['Document'], + # for TinyMCE we can also define lower-case items + 'image': ['Image'], + 'file': ['Folder','Image','Document',], +}) + +# Directory to Save Image Versions (and Thumbnails). Relative to MEDIA_ROOT. +# If no directory is given, versions are stored within the Image directory. +# VERSION URL: VERSIONS_BASEDIR/original_path/originalfilename_versionsuffix.extension +VERSIONS_BASEDIR = getattr(settings, 'FILEBROWSER_VERSIONS_BASEDIR', '') +# Versions Format. Available Attributes: verbose_name, width, height, opts +VERSIONS = getattr(settings, "FILEBROWSER_VERSIONS", { + 'fb_thumb': {'verbose_name': 'Admin Thumbnail', 'width': 60, 'height': 60, 'opts': 'crop upscale'}, + 'thumbnail': {'verbose_name': 'Thumbnail (140px)', 'width': 140, 'height': '', 'opts': ''}, + 'small': {'verbose_name': 'Small (300px)', 'width': 300, 'height': '', 'opts': ''}, + 'medium': {'verbose_name': 'Medium (460px)', 'width': 460, 'height': '', 'opts': ''}, + 'big': {'verbose_name': 'Big (620px)', 'width': 620, 'height': '', 'opts': ''}, + 'cropped': {'verbose_name': 'Cropped (60x60px)', 'width': 60, 'height': 60, 'opts': 'crop'}, + 'croppedthumbnail': {'verbose_name': 'Cropped Thumbnail (140x140px)', 'width': 140, 'height': 140, 'opts': 'crop'}, +}) +# Versions available within the Admin-Interface. +ADMIN_VERSIONS = getattr(settings, 'FILEBROWSER_ADMIN_VERSIONS', ['thumbnail','small', 'medium','big']) +# Which Version should be used as Admin-thumbnail. +ADMIN_THUMBNAIL = getattr(settings, 'FILEBROWSER_ADMIN_THUMBNAIL', 'fb_thumb') + +# EXTRA SETTINGS +# True to save the URL including MEDIA_URL to your model fields +# or False (default) to save path relative to MEDIA_URL. +# Note: Full URL does not necessarily means absolute URL. +SAVE_FULL_URL = getattr(settings, "FILEBROWSER_SAVE_FULL_URL", True) +# If set to True, the FileBrowser will not try to import a mis-installed PIL. +STRICT_PIL = getattr(settings, 'FILEBROWSER_STRICT_PIL', False) +# PIL's Error "Suspension not allowed here" work around: +# s. http://mail.python.org/pipermail/image-sig/1999-August/000816.html +IMAGE_MAXBLOCK = getattr(settings, 'FILEBROWSER_IMAGE_MAXBLOCK', 1024*1024) +# Exclude files matching any of the following regular expressions +# Default is to exclude 'thumbnail' style naming of image-thumbnails. +EXTENSION_LIST = [] +for exts in EXTENSIONS.values(): + EXTENSION_LIST += exts +EXCLUDE = getattr(settings, 'FILEBROWSER_EXCLUDE', (r'_(%(exts)s)_.*_q\d{1,3}\.(%(exts)s)' % {'exts': ('|'.join(EXTENSION_LIST))},)) +# Max. Upload Size in Bytes. +MAX_UPLOAD_SIZE = getattr(settings, "FILEBROWSER_MAX_UPLOAD_SIZE", 10485760) +# Convert Filename (replace spaces and convert to lowercase) +CONVERT_FILENAME = getattr(settings, "FILEBROWSER_CONVERT_FILENAME", True) + +# EXTRA TRANSLATION STRINGS +# The following strings are not availabe within views or templates +_('Folder') +_('Image') +_('Video') +_('Document') +_('Sound') +_('Code') + + diff --git a/apps/filebrowser/fields.py b/apps/filebrowser/fields.py new file mode 100644 index 00000000..85e981b9 --- /dev/null +++ b/apps/filebrowser/fields.py @@ -0,0 +1,121 @@ +# coding: utf-8 + +import os + +# django imports +from django.db import models +from django import forms +from django.forms.widgets import Input +from django.db.models.fields import Field, CharField +from django.utils.encoding import force_unicode +from django.template.loader import render_to_string +from django.utils.translation import ugettext_lazy as _ + +# filebrowser imports +from filebrowser.functions import _url_to_path, _dir_from_url, _get_version_path, _url_join +from filebrowser.fb_settings import * +from filebrowser.base import FileObject + +class FileBrowseWidget(Input): + input_type = 'text' + + class Media: + js = (os.path.join(URL_FILEBROWSER_MEDIA, 'js/AddFileBrowser.js'), ) + + def __init__(self, attrs=None): + self.directory = attrs.get('directory', '') + self.extensions = attrs.get('extensions', '') + self.format = attrs.get('format', '') + if attrs is not None: + self.attrs = attrs.copy() + else: + self.attrs = {} + + def render(self, name, value, attrs=None): + if value is None: + value = "" + final_attrs = self.build_attrs(attrs, type=self.input_type, name=name) + final_attrs['search_icon'] = URL_FILEBROWSER_MEDIA + 'img/filebrowser_icon_show.gif' + final_attrs['directory'] = self.directory + final_attrs['extensions'] = self.extensions + final_attrs['format'] = self.format + final_attrs['ADMIN_THUMBNAIL'] = ADMIN_THUMBNAIL + final_attrs['DEBUG'] = DEBUG + if value != "": + try: + final_attrs['directory'] = os.path.split(value.path_relative_directory)[0] + except: + pass + return render_to_string("filebrowser/custom_field.html", locals()) + + +class FileBrowseFormField(forms.CharField): + widget = FileBrowseWidget + + default_error_messages = { + 'extension': _(u'Extension %(ext)s is not allowed. Only %(allowed)s is allowed.'), + } + + def __init__(self, max_length=None, min_length=None, + directory=None, extensions=None, format=None, + *args, **kwargs): + self.max_length, self.min_length = max_length, min_length + self.directory = directory + self.extensions = extensions + if format: + self.format = format or '' + self.extensions = extensions or EXTENSIONS.get(format) + super(FileBrowseFormField, self).__init__(*args, **kwargs) + + def clean(self, value): + value = super(FileBrowseFormField, self).clean(value) + if value == '': + return value + file_extension = os.path.splitext(value)[1].lower() + if self.extensions and not file_extension in self.extensions: + raise forms.ValidationError(self.error_messages['extension'] % {'ext': file_extension, 'allowed': ", ".join(self.extensions)}) + return value + + +class FileBrowseField(Field): + __metaclass__ = models.SubfieldBase + + def __init__(self, *args, **kwargs): + self.directory = kwargs.pop('directory', '') + self.extensions = kwargs.pop('extensions', '') + self.format = kwargs.pop('format', '') + return super(FileBrowseField, self).__init__(*args, **kwargs) + + def to_python(self, value): + if not value or isinstance(value, FileObject): + return value + return FileObject(_url_to_path(value)) + + def get_db_prep_value(self, value): + if value is None: + return None + return unicode(value) + + + def get_manipulator_field_objs(self): + return [oldforms.TextField] + + def get_internal_type(self): + return "CharField" + + def formfield(self, **kwargs): + attrs = {} + attrs["directory"] = self.directory + attrs["extensions"] = self.extensions + attrs["format"] = self.format + defaults = { + 'form_class': FileBrowseFormField, + 'widget': FileBrowseWidget(attrs=attrs), + 'directory': self.directory, + 'extensions': self.extensions, + 'format': self.format + } + defaults.update(kwargs) + return super(FileBrowseField, self).formfield(**defaults) + + diff --git a/apps/filebrowser/forms.py b/apps/filebrowser/forms.py new file mode 100644 index 00000000..eef418cc --- /dev/null +++ b/apps/filebrowser/forms.py @@ -0,0 +1,59 @@ +# coding: utf-8 + +import re, os + +from django import forms +from django.forms.formsets import BaseFormSet +from django.utils.translation import ugettext as _ + +# filebrowser imports +from filebrowser.fb_settings import MAX_UPLOAD_SIZE +from filebrowser.functions import _get_file_type, _convert_filename + +alnum_name_re = re.compile(r'^[\sa-zA-Z0-9._/-]+$') + +class MakeDirForm(forms.Form): + """ + Form for creating Directory. + """ + + def __init__(self, path, *args, **kwargs): + self.path = path + super(MakeDirForm, self).__init__(*args, **kwargs) + + dir_name = forms.CharField(widget=forms.TextInput(attrs=dict({ 'class': 'vTextField' }, max_length=50, min_length=3)), label=_(u'Name'), help_text=_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.'), required=True) + + def clean_dir_name(self): + if self.cleaned_data['dir_name']: + # only letters, numbers, underscores, spaces and hyphens are allowed. + if not alnum_name_re.search(self.cleaned_data['dir_name']): + raise forms.ValidationError(_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.')) + # directory must not already exist. + if os.path.isdir(os.path.join(self.path, _convert_filename(self.cleaned_data['dir_name']))): + raise forms.ValidationError(_(u'The Folder already exists.')) + return _convert_filename(self.cleaned_data['dir_name']) + + +class RenameForm(forms.Form): + """ + Form for renaming File/Directory. + """ + + def __init__(self, path, file_extension, *args, **kwargs): + self.path = path + self.file_extension = file_extension + super(RenameForm, self).__init__(*args, **kwargs) + + name = forms.CharField(widget=forms.TextInput(attrs=dict({ 'class': 'vTextField' }, max_length=50, min_length=3)), label=_(u'New Name'), help_text=_('Only letters, numbers, underscores, spaces and hyphens are allowed.'), required=True) + + def clean_name(self): + if self.cleaned_data['name']: + # only letters, numbers, underscores, spaces and hyphens are allowed. + if not alnum_name_re.search(self.cleaned_data['name']): + raise forms.ValidationError(_(u'Only letters, numbers, underscores, spaces and hyphens are allowed.')) + # file/directory must not already exist. + if os.path.isdir(os.path.join(self.path, _convert_filename(self.cleaned_data['name']))) or os.path.isfile(os.path.join(self.path, _convert_filename(self.cleaned_data['name']) + self.file_extension)): + raise forms.ValidationError(_(u'The File/Folder already exists.')) + return _convert_filename(self.cleaned_data['name']) + + diff --git a/apps/filebrowser/functions.py b/apps/filebrowser/functions.py new file mode 100755 index 00000000..cef9dcd9 --- /dev/null +++ b/apps/filebrowser/functions.py @@ -0,0 +1,312 @@ +# coding: utf-8 + +from django.utils.translation import ugettext as _ +from django.utils.safestring import mark_safe +from time import gmtime, strftime, localtime, mktime, time +from django.core.files import File +from django.core.files.storage import default_storage +import os, re, decimal +from urlparse import urlparse + +# filebrowser imports +from filebrowser.fb_settings import * + +# PIL import +if STRICT_PIL: + from PIL import Image +else: + try: + from PIL import Image + except ImportError: + import Image + + +def _url_to_path(value): + """ + Change URL to PATH. + Value has to be an URL relative to MEDIA URL or a full URL (including MEDIA_URL). + + Returns a PATH relative to MEDIA_ROOT. + """ + mediaurl_re = re.compile(r'^(%s)' % (MEDIA_URL)) + value = mediaurl_re.sub('', value) + return value + + +def _path_to_url(value): + """ + Change PATH to URL. + Value has to be a PATH relative to MEDIA_ROOT. + + Return an URL relative to MEDIA_ROOT. + """ + mediaroot_re = re.compile(r'^(%s)' % (MEDIA_ROOT)) + value = mediaroot_re.sub('', value) + return _url_join(MEDIA_URL, value) + + +def _dir_from_url(value): + """ + Get the relative server directory from a URL. + URL has to be an absolute URL including MEDIA_URL or + an URL relative to MEDIA_URL. + """ + + mediaurl_re = re.compile(r'^(%s)' % (MEDIA_URL)) + value = mediaurl_re.sub('', value) + directory_re = re.compile(r'^(%s)' % (DIRECTORY)) + value = directory_re.sub('', value) + return os.path.split(value)[0] + + +def _get_version_path(value, version_prefix): + """ + Construct the PATH to an Image version. + Value has to be server-path, relative to MEDIA_ROOT. + + version_filename = filename + version_prefix + ext + Returns a path relative to MEDIA_ROOT. + """ + if os.path.isfile(os.path.join(MEDIA_ROOT, value)): + path, filename = os.path.split(value) + filename, ext = os.path.splitext(filename) + version_filename = filename + "_" + version_prefix + ext + return os.path.join(VERSIONS_BASEDIR, path, version_filename) + else: + return None + + +def _sort_by_attr(seq, attr): + """ + Sort the sequence of objects by object's attribute + + Arguments: + seq - the list or any sequence (including immutable one) of objects to sort. + attr - the name of attribute to sort by + + Returns: + the sorted list of objects. + """ + import operator + + # Use the "Schwartzian transform" + # Create the auxiliary list of tuples where every i-th tuple has form + # (seq[i].attr, i, seq[i]) and sort it. The second item of tuple is needed not + # only to provide stable sorting, but mainly to eliminate comparison of objects + # (which can be expensive or prohibited) in case of equal attribute values. + intermed = map(None, map(getattr, seq, (attr,)*len(seq)), xrange(len(seq)), seq) + intermed.sort() + return map(operator.getitem, intermed, (-1,) * len(intermed)) + + +def _url_join(*args): + if args[0].startswith("http://"): + url = "http://" + else: + url = "/" + for arg in args: + arg = str(arg).replace("\\", "/") + arg_split = arg.split("/") + for elem in arg_split: + if elem != "" and elem != "http:": + url = url + elem + "/" + # remove trailing slash for filenames + if os.path.splitext(args[-1])[1]: + url = url.rstrip("/") + return url + + +def _get_path(path): + """ + Get Path. + """ + + if os.path.isabs(path) or not os.path.isdir(os.path.join(MEDIA_ROOT, DIRECTORY, path)): + return None + return path + + +def _get_file(path, filename): + """ + Get File. + """ + + if not os.path.isfile(os.path.join(MEDIA_ROOT, DIRECTORY, path, filename)) and not os.path.isdir(os.path.join(MEDIA_ROOT, DIRECTORY, path, filename)): + return None + return filename + + +def _get_breadcrumbs(query, path, title): + """ + Get breadcrumbs. + """ + + breadcrumbs = [] + dir_query = "" + if path: + for item in path.split(os.sep): + dir_query = os.path.join(dir_query,item) + breadcrumbs.append([item,dir_query]) + if title: + breadcrumbs.append([title,'']) + return breadcrumbs + + +def _get_filterdate(filterDate, dateTime): + """ + Get filterdate. + """ + + returnvalue = '' + dateYear = strftime("%Y", gmtime(dateTime)) + dateMonth = strftime("%m", gmtime(dateTime)) + dateDay = strftime("%d", gmtime(dateTime)) + if filterDate == 'today' and int(dateYear) == int(localtime()[0]) and int(dateMonth) == int(localtime()[1]) and int(dateDay) == int(localtime()[2]): returnvalue = 'true' + elif filterDate == 'thismonth' and dateTime >= time()-2592000: returnvalue = 'true' + elif filterDate == 'thisyear' and int(dateYear) == int(localtime()[0]): returnvalue = 'true' + elif filterDate == 'past7days' and dateTime >= time()-604800: returnvalue = 'true' + elif filterDate == '': returnvalue = 'true' + return returnvalue + + +def _get_settings_var(): + """ + Get settings variables used for FileBrowser listing. + """ + + settings_var = {} + # Main + settings_var['DEBUG'] = DEBUG + settings_var['MEDIA_ROOT'] = MEDIA_ROOT + settings_var['MEDIA_URL'] = MEDIA_URL + settings_var['DIRECTORY'] = DIRECTORY + # FileBrowser + settings_var['URL_FILEBROWSER_MEDIA'] = URL_FILEBROWSER_MEDIA + settings_var['PATH_FILEBROWSER_MEDIA'] = PATH_FILEBROWSER_MEDIA + # TinyMCE + settings_var['URL_TINYMCE'] = URL_TINYMCE + settings_var['PATH_TINYMCE'] = PATH_TINYMCE + # Extensions/Formats (for FileBrowseField) + settings_var['EXTENSIONS'] = EXTENSIONS + settings_var['SELECT_FORMATS'] = SELECT_FORMATS + # Versions + settings_var['VERSIONS_BASEDIR'] = VERSIONS_BASEDIR + settings_var['VERSIONS'] = VERSIONS + settings_var['ADMIN_VERSIONS'] = ADMIN_VERSIONS + settings_var['ADMIN_THUMBNAIL'] = ADMIN_THUMBNAIL + # FileBrowser Options + settings_var['MAX_UPLOAD_SIZE'] = MAX_UPLOAD_SIZE + # Convert Filenames + settings_var['CONVERT_FILENAME'] = CONVERT_FILENAME + return settings_var + + +def _handle_file_upload(path, file): + """ + Handle File Upload. + """ + + file_path = os.path.join(path, file.name) + uploadedfile = default_storage.save(file_path, file) + return uploadedfile + + +def _get_file_type(filename): + """ + Get file type as defined in EXTENSIONS. + """ + + file_extension = os.path.splitext(filename)[1].lower() + file_type = '' + for k,v in EXTENSIONS.iteritems(): + for extension in v: + if file_extension == extension.lower(): + file_type = k + return file_type + + +def _is_selectable(filename, selecttype): + """ + Get select type as defined in FORMATS. + """ + + file_extension = os.path.splitext(filename)[1].lower() + select_types = [] + for k,v in SELECT_FORMATS.iteritems(): + for extension in v: + if file_extension == extension.lower(): + select_types.append(k) + return select_types + + +def _version_generator(value, version_prefix, force=None): + """ + Generate Version for an Image. + value has to be a serverpath relative to MEDIA_ROOT. + """ + + # PIL's Error "Suspension not allowed here" work around: + # s. http://mail.python.org/pipermail/image-sig/1999-August/000816.html + if STRICT_PIL: + from PIL import ImageFile + else: + try: + from PIL import ImageFile + except ImportError: + import ImageFile + ImageFile.MAXBLOCK = IMAGE_MAXBLOCK # default is 64k + + try: + im = Image.open(os.path.join(MEDIA_ROOT, value)) + version_path = _get_version_path(value, version_prefix) + absolute_version_path = os.path.join(MEDIA_ROOT, version_path) + version_dir = os.path.split(absolute_version_path)[0] + if not os.path.isdir(version_dir): + os.makedirs(version_dir) + os.chmod(version_dir, 0775) + version = scale_and_crop(im, VERSIONS[version_prefix]['width'], VERSIONS[version_prefix]['height'], VERSIONS[version_prefix]['opts']) + try: + version.save(absolute_version_path, quality=90, optimize=1) + except IOError: + version.save(absolute_version_path, quality=90) + return version_path + except: + return None + + +def scale_and_crop(im, width, height, opts): + x, y = [float(v) for v in im.size] + if width: + xr = float(width) + else: + xr = float(x*height/y) + if height: + yr = float(height) + else: + yr = float(y*width/x) + + if 'crop' in opts: + r = max(xr/x, yr/y) + else: + r = min(xr/x, yr/y) + + if r < 1.0 or (r > 1.0 and 'upscale' in opts): + im = im.resize((int(x*r), int(y*r)), resample=Image.ANTIALIAS) + + if 'crop' in opts: + x, y = [float(v) for v in im.size] + ex, ey = (x-min(x, xr))/2, (y-min(y, yr))/2 + if ex or ey: + im = im.crop((int(ex), int(ey), int(x-ex), int(y-ey))) + return im +scale_and_crop.valid_options = ('crop', 'upscale') + + +def _convert_filename(value): + if CONVERT_FILENAME: + return value.replace(" ", "_").lower() + else: + return value + + + diff --git a/apps/filebrowser/locale/.svn/all-wcprops b/apps/filebrowser/locale/.svn/all-wcprops new file mode 100644 index 00000000..5b72659b --- /dev/null +++ b/apps/filebrowser/locale/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 59 +/svn/!svn/ver/462/branches/filebrowser_3/filebrowser/locale +END diff --git a/apps/filebrowser/locale/.svn/entries b/apps/filebrowser/locale/.svn/entries new file mode 100644 index 00000000..ab051086 --- /dev/null +++ b/apps/filebrowser/locale/.svn/entries @@ -0,0 +1,61 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T17:44:24.405122Z +462 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +zh_CN +dir + +sr_Latn +dir + +ca +dir + +sr +dir + +ru +dir + +es +dir + +fr +dir + +de +dir + +nl +dir + +zh_TW +dir + +it +dir + diff --git a/apps/filebrowser/locale/ca/.svn/all-wcprops b/apps/filebrowser/locale/ca/.svn/all-wcprops new file mode 100644 index 00000000..761a7e49 --- /dev/null +++ b/apps/filebrowser/locale/ca/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/ca +END diff --git a/apps/filebrowser/locale/ca/.svn/entries b/apps/filebrowser/locale/ca/.svn/entries new file mode 100644 index 00000000..8b3f6316 --- /dev/null +++ b/apps/filebrowser/locale/ca/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/ca +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..e43f6274 --- /dev/null +++ b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/ca/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/ca/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/ca/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..b2b21a1c --- /dev/null +++ b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/ca/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:48.000000Z +5177a8265e2b6d81e88ed3f89978397f +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +8223 + +django.mo +file + + + + +2009-11-05T20:58:48.000000Z +a590980c42b4d9b72421220166c349da +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +5071 + diff --git a/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..bd8106d739f52959b6581ca3594557b19af51289 GIT binary patch literal 5071 zcmbW4ON<;x8GtJxA!frPEg zt@-NJRe$}D`g?zS|6MOAo<+)sDaYyCHOwt&%$@ZZ$Mf9J5c2Q z0hIYagA?#A$e;Q-KeFz1_zw72_&EF*d?(ybr>rv%?}umLc4(l;_iQ=-6)5t5z3hLr z?0*A_Tt9`f|F6sO-$BvCpWs$_4?^vLJKzW5S(v~zxC{OUie9!L46mpvlz9iBtg{3$ zwMwAK)rBJO7vTf&Ymg<>x1reS8eF;qJ;0CA-inew0q3Cj%PJIkUxb)Qy#z(CFGEzL zUV|dXn=sca6g|EL?}NXBm*AgEF7mR-`%NhFz5zwfU&8b7Iu!Y5Sw!SL07W0CAVVsJ zETx`-qOY&Q3cLnIzU%NK@Q;u`bvHtYpFad;-G@tVg%TH&Q0AS0{HaU)h`k+@_c~?! zDJbhd2OomZLy_lO@BsWC6utfhia!1c`BQhkSE(uZ0F?2=P~JNMHGHz{??V36GyI5t zUVx&P@0NTWirs$i3 zADp4cnHDK?6hzK#3UV6@2al%maf|JHd9C<42o6*Bj`fLeNZg1{ z<^GaK?nAk2#1B7789d^jgJ(CDX=zOEY{XfV+GNV>lc{ZO>hPO-^a^hTo4Wli`gIzo zCcMe?qJJ(76(wG`ftrhY`j|ETI?8$+1~yTPkHtHx`S>d+dW>dBog7fl7av1$_2;H+NnbZI_ka%X6xX1Y2ROjU2aOe-!{G2Po) zB}w8$Hxg@77d3U@65B}Qq{sUCNMa*{JWX9+&05QmabYpeRnY zDHK%IXQQykVA(Dv3uyUwS+nvc*JtiEB@e0V;I*FCzF_Yu$zD;s6V z2fTaAvS7p707Vzl=?m>JHi2GZEZ-7Mt54a;CYV&8Y?-Fj7g0Xv^BekU$LfR)+v-Hj z*2UaHg(zbM9oe9&PMgo!k=DkVo_e>cMRXBNoe}xZ*mZrp@DHgLeR1yOo&j9As?L<{ zs>&6Me~EYO(Gix(E6jq8II$cv3iN8Py^4vn!QF;>KPOK1$g~bj&#S!gSXsA8%lX`( zfsLG;;hean)vPFPfy-LLM)W5hVZ}i(*ZIN%1@yK_zpdz!IqP_~&l(Nu{Yr-GED;Hf zv_!6gL48HkLGPnu}NwJIe^>_Ndvu=0q}p?Nwyq@ z<4pw*@@u6OT=e(9W)Vp}YZ4Ax#&Q|>V_ticp>g}wW86j+p;O`p`(D6Xig+kPDNfWy zhePL`>PgXF#vGT&S82*P!PAm>4bP~Y3@T;R)pW3CqGmjC-nQc;t(^8v7gXl6rmxiF znw~g!wq9At@2xnh$dy~uv(wWDE7P-;nS*+ErZ&58_cRX^E9Y&;iDPe^w_nd3tW8hv zo}OXeDFUNXPfX-P!xdQ5b5R;cPS1sLPaiUQqiSdzO$o5JY58g+ZXMyhsF`tHRO;5W zYI?ztKun|$HO$e_RpX?2Wa9M6(~F~X%~Yo+7Gly^#C{}Q=OTq?wi<@#Qu9nn#9W{ zyrGWJ#i6IK=)kA=jG#Tpo}M?$tAC2C zaxUq*jD?L*ubCp}TGzc{v%u=GoU(C0qS>SKpcwY#q?Ts-z-l2M0Ce2!WpReZP^YG4 z_;4EA!e^WXNkSd=uX5ezCz09Q=_xKzX5U0}#pdZaf7!?#k~Zydv}k&D(RwwvmIX$g zj9kO1QzpOV8V)VWu7el(q9Rv^#JZAeBpK8HjcwMeBXke<5-*S=Q#veLy5^ZUlVj7V z{f<>azla+xK_VK`t4=m6nw!lsux<9=(vUVv5KvABS10`&YV-P4X<>KrAy>9r(a#knaw>jL#3<&ejYLEozKvmzbqMEq>!t{Mg1T8Mn-TALoUVCMHnJG**CmROS0+kF1SJN z{0d~ZF}ce~8b96US&Nc@Q0$3;M~jz>62_ck literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/text-base/django.po.svn-base b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/text-base/django.po.svn-base new file mode 100644 index 00000000..0dca85e1 --- /dev/null +++ b/apps/filebrowser/locale/ca/LC_MESSAGES/.svn/text-base/django.po.svn-base @@ -0,0 +1,328 @@ +# translation of django.po to Catalan +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# PATRICK KRANZLMUELLER , 2009. +# Antoni Aloy , 2009. +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-19 21:24+0000\n" +"PO-Revision-Date: 2009-02-15 19:00+0100\n" +"Last-Translator: Antoni Aloy \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: fields.py:27 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Confirma que aquest valor té com a màxim %(max)d caràcters (té longitud %" +"(length)d)." + +#: fields.py:28 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Confirma que aquest valor té com a mínim %(min)d caràcters (té longitud %" +"(length)d)." + +#: fields.py:29 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "" +"L'extensió %(ext)s no està permesa. Sols es permeten les extensions %" +"(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Nom" + +#: forms.py:23 forms.py:46 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"El nom serà convertit automàticament a minúscules. Sols estan permeses le " +"lletres, nombres, subratllats i guions." + +#: forms.py:30 forms.py:53 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Sols es permeten lletres, nombres, subratllats i guions." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "La carpeta ja existeix." + +#: forms.py:46 +msgid "New Name" +msgstr "Nou nom" + +#: forms.py:56 +msgid "The File/Folder already exists." +msgstr "La carpeta/arixu ja existeix" + +#: forms.py:92 +msgid "File" +msgstr "Arxiu" + +#: forms.py:93 +msgid "Use Image Generator" +msgstr "Fer servir el generador d'imatges" + +#: forms.py:102 +msgid "File already exists." +msgstr "L'arxiu ja existeix" + +#: forms.py:108 +msgid "Filename is not allowed." +msgstr "El nom d'arxiu no està permès" + +#: forms.py:113 +msgid "File extension is not allowed." +msgstr "L'extensió de l'arxiu no està permesa" + +#: forms.py:118 +msgid "Filesize exceeds allowed Upload Size." +msgstr "El tamany de l'arxiu supera el límit permès" + +#: functions.py:84 +msgid "Home" +msgstr "Inici" + +#: functions.py:276 +msgid "Thumbnail creation failed." +msgstr "Ha fallat la creació de la miniatura" + +#: functions.py:331 functions.py:398 +msgid "Image creation failed." +msgstr "La creació de la imatge ha fallat" + +#: views.py:165 +msgid "FileBrowser" +msgstr "Visor d'arxius" + +#: views.py:188 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "La carpeta %s ha estat creada amb èxit." + +#: views.py:194 +msgid "Permission denied." +msgstr "Permís denegat." + +#: views.py:196 +msgid "Error creating directory." +msgstr "Error creant el directori." + +#: views.py:204 views.py:205 templates/filebrowser/index.html:30 +msgid "New Folder" +msgstr "Nova carpeta" + +#: views.py:250 +msgid "Upload successful." +msgstr "Pujada completada" + +#: views.py:263 templates/filebrowser/index.html:33 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Pujar" + +#: views.py:264 +msgid "Select files to upload" +msgstr "Selecciona arxius a pujar." + +#: views.py:294 +msgid "Thumbnail creation successful." +msgstr "S'han creat les miniatures satisfactòriament." + +#: views.py:344 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "L'arxiu %s ha estat borrat amb èxit." + +#: views.py:356 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "El directori %s ha estat borrat amb èxit." + +#: views.py:407 +msgid "Error renaming Thumbnail." +msgstr "Error reanomenant la miniatura" + +#: views.py:413 +msgid "Renaming was successful." +msgstr "El canvi de nom ha tingut èxit." + +#: views.py:418 +msgid "Error." +msgstr "Error." + +#: views.py:427 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Reanomenar" + +#: views.py:428 +#, python-format +msgid "Rename \"%s\"" +msgstr "Reanomena \"%s\"" + +#: views.py:465 +msgid "Successfully generated Images." +msgstr "Imatges generades satisfactòriament." + +#: templates/filebrowser/index.html:31 +msgid "Make Thumbs" +msgstr "Crear miniatures" + +#: templates/filebrowser/index.html:32 +msgid "Generate Images" +msgstr "Generar imatges" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Per favor, corregeix els següents errors" + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Enviar" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Usaré el generador d'imatges" + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Ajuda" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Permès" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Tamay màxim" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Selecciona" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Selecciona fitxer" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Crear miniatura" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Veure imatge" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Generar versions de la imatge" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Esborrar fitxer" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Esborrar carpeta" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filtrar" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Per data" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Qualsevol data" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Avui" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Fa 7 dies" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Fa 30 dies" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Enguany" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Per tipus" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Tots" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "No s'han trobat items" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s Item" +msgstr[1] "%(counter)s Item" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "No hi ha items" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Nom de fitxer" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Tamany" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Data" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Ves" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s trobat" +msgstr[1] "%(counter)s trobats" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "total %(counter)s item" +msgstr[1] "total %(counter)s Items" diff --git a/apps/filebrowser/locale/ca/LC_MESSAGES/django.mo b/apps/filebrowser/locale/ca/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..bd8106d739f52959b6581ca3594557b19af51289 GIT binary patch literal 5071 zcmbW4ON<;x8GtJxA!frPEg zt@-NJRe$}D`g?zS|6MOAo<+)sDaYyCHOwt&%$@ZZ$Mf9J5c2Q z0hIYagA?#A$e;Q-KeFz1_zw72_&EF*d?(ybr>rv%?}umLc4(l;_iQ=-6)5t5z3hLr z?0*A_Tt9`f|F6sO-$BvCpWs$_4?^vLJKzW5S(v~zxC{OUie9!L46mpvlz9iBtg{3$ zwMwAK)rBJO7vTf&Ymg<>x1reS8eF;qJ;0CA-inew0q3Cj%PJIkUxb)Qy#z(CFGEzL zUV|dXn=sca6g|EL?}NXBm*AgEF7mR-`%NhFz5zwfU&8b7Iu!Y5Sw!SL07W0CAVVsJ zETx`-qOY&Q3cLnIzU%NK@Q;u`bvHtYpFad;-G@tVg%TH&Q0AS0{HaU)h`k+@_c~?! zDJbhd2OomZLy_lO@BsWC6utfhia!1c`BQhkSE(uZ0F?2=P~JNMHGHz{??V36GyI5t zUVx&P@0NTWirs$i3 zADp4cnHDK?6hzK#3UV6@2al%maf|JHd9C<42o6*Bj`fLeNZg1{ z<^GaK?nAk2#1B7789d^jgJ(CDX=zOEY{XfV+GNV>lc{ZO>hPO-^a^hTo4Wli`gIzo zCcMe?qJJ(76(wG`ftrhY`j|ETI?8$+1~yTPkHtHx`S>d+dW>dBog7fl7av1$_2;H+NnbZI_ka%X6xX1Y2ROjU2aOe-!{G2Po) zB}w8$Hxg@77d3U@65B}Qq{sUCNMa*{JWX9+&05QmabYpeRnY zDHK%IXQQykVA(Dv3uyUwS+nvc*JtiEB@e0V;I*FCzF_Yu$zD;s6V z2fTaAvS7p707Vzl=?m>JHi2GZEZ-7Mt54a;CYV&8Y?-Fj7g0Xv^BekU$LfR)+v-Hj z*2UaHg(zbM9oe9&PMgo!k=DkVo_e>cMRXBNoe}xZ*mZrp@DHgLeR1yOo&j9As?L<{ zs>&6Me~EYO(Gix(E6jq8II$cv3iN8Py^4vn!QF;>KPOK1$g~bj&#S!gSXsA8%lX`( zfsLG;;hean)vPFPfy-LLM)W5hVZ}i(*ZIN%1@yK_zpdz!IqP_~&l(Nu{Yr-GED;Hf zv_!6gL48HkLGPnu}NwJIe^>_Ndvu=0q}p?Nwyq@ z<4pw*@@u6OT=e(9W)Vp}YZ4Ax#&Q|>V_ticp>g}wW86j+p;O`p`(D6Xig+kPDNfWy zhePL`>PgXF#vGT&S82*P!PAm>4bP~Y3@T;R)pW3CqGmjC-nQc;t(^8v7gXl6rmxiF znw~g!wq9At@2xnh$dy~uv(wWDE7P-;nS*+ErZ&58_cRX^E9Y&;iDPe^w_nd3tW8hv zo}OXeDFUNXPfX-P!xdQ5b5R;cPS1sLPaiUQqiSdzO$o5JY58g+ZXMyhsF`tHRO;5W zYI?ztKun|$HO$e_RpX?2Wa9M6(~F~X%~Yo+7Gly^#C{}Q=OTq?wi<@#Qu9nn#9W{ zyrGWJ#i6IK=)kA=jG#Tpo}M?$tAC2C zaxUq*jD?L*ubCp}TGzc{v%u=GoU(C0qS>SKpcwY#q?Ts-z-l2M0Ce2!WpReZP^YG4 z_;4EA!e^WXNkSd=uX5ezCz09Q=_xKzX5U0}#pdZaf7!?#k~Zydv}k&D(RwwvmIX$g zj9kO1QzpOV8V)VWu7el(q9Rv^#JZAeBpK8HjcwMeBXke<5-*S=Q#veLy5^ZUlVj7V z{f<>azla+xK_VK`t4=m6nw!lsux<9=(vUVv5KvABS10`&YV-P4X<>KrAy>9r(a#knaw>jL#3<&ejYLEozKvmzbqMEq>!t{Mg1T8Mn-TALoUVCMHnJG**CmROS0+kF1SJN z{0d~ZF}ce~8b96US&Nc@Q0$3;M~jz>62_ck literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/ca/LC_MESSAGES/django.po b/apps/filebrowser/locale/ca/LC_MESSAGES/django.po new file mode 100644 index 00000000..0dca85e1 --- /dev/null +++ b/apps/filebrowser/locale/ca/LC_MESSAGES/django.po @@ -0,0 +1,328 @@ +# translation of django.po to Catalan +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# PATRICK KRANZLMUELLER , 2009. +# Antoni Aloy , 2009. +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-19 21:24+0000\n" +"PO-Revision-Date: 2009-02-15 19:00+0100\n" +"Last-Translator: Antoni Aloy \n" +"Language-Team: Catalan \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: fields.py:27 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Confirma que aquest valor té com a màxim %(max)d caràcters (té longitud %" +"(length)d)." + +#: fields.py:28 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Confirma que aquest valor té com a mínim %(min)d caràcters (té longitud %" +"(length)d)." + +#: fields.py:29 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "" +"L'extensió %(ext)s no està permesa. Sols es permeten les extensions %" +"(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Nom" + +#: forms.py:23 forms.py:46 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"El nom serà convertit automàticament a minúscules. Sols estan permeses le " +"lletres, nombres, subratllats i guions." + +#: forms.py:30 forms.py:53 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Sols es permeten lletres, nombres, subratllats i guions." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "La carpeta ja existeix." + +#: forms.py:46 +msgid "New Name" +msgstr "Nou nom" + +#: forms.py:56 +msgid "The File/Folder already exists." +msgstr "La carpeta/arixu ja existeix" + +#: forms.py:92 +msgid "File" +msgstr "Arxiu" + +#: forms.py:93 +msgid "Use Image Generator" +msgstr "Fer servir el generador d'imatges" + +#: forms.py:102 +msgid "File already exists." +msgstr "L'arxiu ja existeix" + +#: forms.py:108 +msgid "Filename is not allowed." +msgstr "El nom d'arxiu no està permès" + +#: forms.py:113 +msgid "File extension is not allowed." +msgstr "L'extensió de l'arxiu no està permesa" + +#: forms.py:118 +msgid "Filesize exceeds allowed Upload Size." +msgstr "El tamany de l'arxiu supera el límit permès" + +#: functions.py:84 +msgid "Home" +msgstr "Inici" + +#: functions.py:276 +msgid "Thumbnail creation failed." +msgstr "Ha fallat la creació de la miniatura" + +#: functions.py:331 functions.py:398 +msgid "Image creation failed." +msgstr "La creació de la imatge ha fallat" + +#: views.py:165 +msgid "FileBrowser" +msgstr "Visor d'arxius" + +#: views.py:188 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "La carpeta %s ha estat creada amb èxit." + +#: views.py:194 +msgid "Permission denied." +msgstr "Permís denegat." + +#: views.py:196 +msgid "Error creating directory." +msgstr "Error creant el directori." + +#: views.py:204 views.py:205 templates/filebrowser/index.html:30 +msgid "New Folder" +msgstr "Nova carpeta" + +#: views.py:250 +msgid "Upload successful." +msgstr "Pujada completada" + +#: views.py:263 templates/filebrowser/index.html:33 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Pujar" + +#: views.py:264 +msgid "Select files to upload" +msgstr "Selecciona arxius a pujar." + +#: views.py:294 +msgid "Thumbnail creation successful." +msgstr "S'han creat les miniatures satisfactòriament." + +#: views.py:344 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "L'arxiu %s ha estat borrat amb èxit." + +#: views.py:356 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "El directori %s ha estat borrat amb èxit." + +#: views.py:407 +msgid "Error renaming Thumbnail." +msgstr "Error reanomenant la miniatura" + +#: views.py:413 +msgid "Renaming was successful." +msgstr "El canvi de nom ha tingut èxit." + +#: views.py:418 +msgid "Error." +msgstr "Error." + +#: views.py:427 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Reanomenar" + +#: views.py:428 +#, python-format +msgid "Rename \"%s\"" +msgstr "Reanomena \"%s\"" + +#: views.py:465 +msgid "Successfully generated Images." +msgstr "Imatges generades satisfactòriament." + +#: templates/filebrowser/index.html:31 +msgid "Make Thumbs" +msgstr "Crear miniatures" + +#: templates/filebrowser/index.html:32 +msgid "Generate Images" +msgstr "Generar imatges" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Per favor, corregeix els següents errors" + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Enviar" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Usaré el generador d'imatges" + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Ajuda" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Permès" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Tamay màxim" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Selecciona" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Selecciona fitxer" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Crear miniatura" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Veure imatge" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Generar versions de la imatge" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Esborrar fitxer" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Esborrar carpeta" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filtrar" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Per data" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Qualsevol data" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Avui" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Fa 7 dies" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Fa 30 dies" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Enguany" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Per tipus" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Tots" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "No s'han trobat items" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s Item" +msgstr[1] "%(counter)s Item" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "No hi ha items" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Nom de fitxer" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Tamany" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Data" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Ves" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s trobat" +msgstr[1] "%(counter)s trobats" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "total %(counter)s item" +msgstr[1] "total %(counter)s Items" diff --git a/apps/filebrowser/locale/de/.svn/all-wcprops b/apps/filebrowser/locale/de/.svn/all-wcprops new file mode 100644 index 00000000..b313eb3c --- /dev/null +++ b/apps/filebrowser/locale/de/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/462/branches/filebrowser_3/filebrowser/locale/de +END diff --git a/apps/filebrowser/locale/de/.svn/entries b/apps/filebrowser/locale/de/.svn/entries new file mode 100644 index 00000000..a9f5cc19 --- /dev/null +++ b/apps/filebrowser/locale/de/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/de +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T17:44:24.405122Z +462 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/de/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/de/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..3186a89c --- /dev/null +++ b/apps/filebrowser/locale/de/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/462/branches/filebrowser_3/filebrowser/locale/de/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/462/branches/filebrowser_3/filebrowser/locale/de/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/de/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/de/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/de/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..3839a411 --- /dev/null +++ b/apps/filebrowser/locale/de/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/de/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T17:44:24.405122Z +462 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:49.000000Z +008361dcab7ab7869b3edd132067a024 +2009-10-12T17:44:24.405122Z +462 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +7694 + +django.mo +file + + + + +2009-11-05T20:58:49.000000Z +8712cac8b64509ad98a1ff9078bb8ccd +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +5665 + diff --git a/apps/filebrowser/locale/de/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/de/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/de/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/de/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/de/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..f15bd2152411bc3f99758f98cb01f98ec77087f2 GIT binary patch literal 5665 zcmb`KTWnlM8Gxr3C^eUsa=(=!#Eso#H_nYDZfmU2vFA;W%U} z^(Z_8eJFCj4&MsD3Gau`Ly`XyaqZu5?cau?*RxRO{}~j0e*xwDUqP|YZ{ho)Otueb_-;4_ z6Ih22!WW^~>o$}VefL2bcL<7{St#p7v{P!(5bDL5>fDiC~ zFUC6okHb;83PtZ55Z9}x-TSlf81K)+qwp0da)&Uc*!2jM?@mF{rve$GCLw?7B0n;& z0UI!em*9&~;=Fusq0b{w=3R#}?nx-}{s<*c{tCrj18*+;bQp?V&Oi;PpsXW+VvnaB zZ$R+W!DW{+}IRhO&--LYe1ZQ0%xDqe^_AfHbK&h-=hi5L2ov5Y^N=lsNtr zl=XiVj>D&+#O2?ijK3YB;=g;~2VohCJr^M+QIA5=x9!?L2}S4 ztJizrH1#M|ip+h=J{55wk7f5R>yg+Jy~H*We?!y*RI#0u!_?DM@wt?JRLNh7A=!Vr zMb^HT`hji(JWCayRH-(Hpp+6-Y=^7u{(cA4)NYad?H2Kg6!E!~2dHDzlhi5dhp4hY zi4VoE5)&1w6v^jv)bms+;wOnQDdMAJ_NmxM)ZkD(&ZEpE!>OLmOnXN|x}!xm_`=`O zoZh5eXL06*y9_VdD`BXp@tW~fCF@&@iHSV)Y3f=lZ?8mN5V{_)o|z~O;s}+^dWPdMW)x@IE8I}l z3sKmi)4dl1x}D0JNPZa4^nOR1^&rjCvhCreD}9?(+dY=VYpF@>GYXpC!*(5PM;cr+ z2&^09W9ULVy}TO6p0Ahavr}SeRfK|?G?7V&A3fdnnnqv52P`w)*3NsZrcAi1reZX( zV~byBPb|~GV8$=2Iq!qH)}2`?PJjv+q{x+C2PuR-o2NV zwKCx>p>jY+xXC^+3fAMqu;$3utk!-ZPl)DV}A_8eyL1^}0#ZMot_pkt_Ag z!J44^+z@j}p61p`N}QyY>~^t~ue1X`>d7I*n$BN-;V{&wp`6(CVBygnA!hq+Uh2Vg zn_>vG`5$#lxAH5}0 z_A+!=#fyE-DK1w0Z=*=Aj`0!}>e72>?C#Rl@5Ne7@Tel29JY9QnV2c^$fZ@BsEYv+ zUL?#Vv0l!Yz~-8BWt0}R(nLj1EsV}h@4vh-UmchwPfE4Ki_*|zdlW@#i__yXdSeP# zH>yvp1lhorQ*&YEadRcxrOE8lMs77^Cy93HGq2XEgD7p9)NAiLQ(tc-yL9&?zieb3kv2HQG|h@A zZ4z0_5LGC1nx7SKKFwfkI-eD+VVP1{>1TSA$@9`d~j3M<}{*x^38=S?d_ zkrflPbu~eGu_$+>)EQgOu&i> zTljplEk)~YqrIV6E4W3fF>_5~IzkRNl$=@ID&$4?_s$UXMi*Po=6+FDTiUtJ$y1cGWVu0#e7+qL?Y^P z-b{i^R*Wapl@tS>C(bDt9X}1b6FxH, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-10-12 19:39+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fb_settings.py:102 +msgid "Folder" +msgstr "" + +#: fb_settings.py:103 +msgid "Image" +msgstr "" + +#: fb_settings.py:104 +msgid "Video" +msgstr "" + +#: fb_settings.py:105 +msgid "Document" +msgstr "" + +#: fb_settings.py:106 +msgid "Sound" +msgstr "" + +#: fb_settings.py:107 +msgid "Code" +msgstr "" + +#: fields.py:56 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "" + +#: forms.py:24 templates/filebrowser/versions.html:55 +msgid "Name" +msgstr "" + +#: forms.py:24 forms.py:30 forms.py:47 forms.py:53 +msgid "Only letters, numbers, underscores, spaces and hyphens are allowed." +msgstr "" + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "" + +#: forms.py:47 +msgid "New Name" +msgstr "" + +#: forms.py:56 +msgid "The File/Folder already exists." +msgstr "" + +#: views.py:47 views.py:138 views.py:191 views.py:284 views.py:362 +#: views.py:418 +msgid "Directory/File does not exist." +msgstr "" + +#: views.py:51 +msgid "Error finding upload directory. Maybe it does not exist?" +msgstr "" + +#: views.py:116 templates/filebrowser/include/breadcrumbs.html:7 +#: templates/filebrowser/include/breadcrumbs.html:9 +msgid "FileBrowser" +msgstr "" + +#: views.py:156 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "" + +#: views.py:164 +msgid "Permission denied." +msgstr "" + +#: views.py:166 +msgid "Error creating directory." +msgstr "" + +#: views.py:173 views.py:175 templates/filebrowser/index.html:50 +msgid "New Folder" +msgstr "" + +#: views.py:203 +msgid "Select files to upload" +msgstr "" + +#: views.py:205 templates/filebrowser/index.html:51 +#: templates/filebrowser/upload.html:110 +msgid "Upload" +msgstr "" + +#: views.py:307 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "" + +#: views.py:323 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "" + +#: views.py:388 +msgid "Renaming was successful." +msgstr "" + +#: views.py:393 +msgid "Error." +msgstr "" + +#: views.py:401 +#, python-format +msgid "Rename \"%s\"" +msgstr "" + +#: views.py:403 templates/filebrowser/include/filelisting.html:73 +msgid "Rename" +msgstr "" + +#: views.py:426 views.py:428 +#, python-format +msgid "Versions for \"%s\"" +msgstr "" + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +msgid "File-Browser" +msgstr "" + +#: templates/filebrowser/makedir.html:38 templates/filebrowser/rename.html:38 +msgid "Please correct the following errors." +msgstr "" + +#: templates/filebrowser/makedir.html:47 templates/filebrowser/rename.html:48 +#: templates/filebrowser/upload.html:83 +msgid "Help" +msgstr "" + +#: templates/filebrowser/makedir.html:52 templates/filebrowser/rename.html:53 +#: templates/filebrowser/upload.html:100 +msgid "" +"The Name will be converted to lowercase. Spaces will be replaced with " +"underscores." +msgstr "" + +#: templates/filebrowser/makedir.html:57 templates/filebrowser/rename.html:58 +msgid "Submit" +msgstr "" + +#: templates/filebrowser/upload.html:35 +msgid "BROWSE" +msgstr "" + +#: templates/filebrowser/upload.html:36 +msgid "An Error occured" +msgstr "" + +#: templates/filebrowser/upload.html:37 +msgid "Completed" +msgstr "" + +#: templates/filebrowser/upload.html:38 +msgid "Do you want to replace the file" +msgstr "" + +#: templates/filebrowser/upload.html:39 +msgid "KB" +msgstr "" + +#: templates/filebrowser/upload.html:40 +msgid "MB" +msgstr "" + +#: templates/filebrowser/upload.html:87 +msgid "Allowed" +msgstr "" + +#: templates/filebrowser/upload.html:93 +msgid "Max. Filesize" +msgstr "" + +#: templates/filebrowser/upload.html:108 +msgid "Clear Queue" +msgstr "" + +#: templates/filebrowser/versions.html:57 +msgid "Image Version" +msgstr "" + +#: templates/filebrowser/versions.html:58 +msgid "Debug" +msgstr "" + +#: templates/filebrowser/versions.html:70 +#: templates/filebrowser/include/filelisting.html:10 +msgid "Select" +msgstr "" + +#: templates/filebrowser/versions.html:81 +#: templates/filebrowser/versions.html:92 +#: templates/filebrowser/include/filelisting.html:24 +#: templates/filebrowser/include/filelisting.html:38 +msgid "Select File" +msgstr "" + +#: templates/filebrowser/versions.html:102 +msgid "Width" +msgstr "" + +#: templates/filebrowser/versions.html:103 +msgid "Height" +msgstr "" + +#: templates/filebrowser/include/breadcrumbs.html:4 +msgid "Home" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:49 +msgid "Show Versions" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:60 +msgid "View Image" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:85 +msgid "Are you sure you want to delete this file?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:85 +msgid "Delete File" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:88 +msgid "Are you sure you want to delete this Folder?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:88 +msgid "Delete Folder" +msgstr "" + +#: templates/filebrowser/include/filter.html:3 +msgid "Filter" +msgstr "" + +#: templates/filebrowser/include/filter.html:9 +msgid "By Date" +msgstr "" + +#: templates/filebrowser/include/filter.html:11 +msgid "Any Date" +msgstr "" + +#: templates/filebrowser/include/filter.html:13 +msgid "Today" +msgstr "" + +#: templates/filebrowser/include/filter.html:15 +msgid "Past 7 days" +msgstr "" + +#: templates/filebrowser/include/filter.html:17 +msgid "Past 30 days" +msgstr "" + +#: templates/filebrowser/include/filter.html:19 +msgid "This year" +msgstr "" + +#: templates/filebrowser/include/filter.html:27 +msgid "By Type" +msgstr "" + +#: templates/filebrowser/include/filter.html:29 +msgid "All" +msgstr "" + +#: templates/filebrowser/include/paginator.html:4 +msgid "No Items Found." +msgstr "" + +#: templates/filebrowser/include/paginator.html:9 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/paginator.html:15 +msgid "No Items." +msgstr "" + +#: templates/filebrowser/include/search.html:3 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/search.html:4 +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +#: templates/filebrowser/include/search.html:5 +msgid "Clear Restrictions" +msgstr "" + +#: templates/filebrowser/include/search.html:7 +msgid "Search" +msgstr "" + +#: templates/filebrowser/include/search.html:21 +#: templates/filebrowser/include/toolbar.html:15 +msgid "Go" +msgstr "" + +#: templates/filebrowser/include/search.html:26 +#: templates/filebrowser/include/toolbar.html:18 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/search.html:27 +#: templates/filebrowser/include/toolbar.html:19 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Filename" +msgstr "" + +#: templates/filebrowser/include/tableheader.html:27 +#: templates/filebrowser/include/tableheader.html:28 +msgid "Size" +msgstr "" + +#: templates/filebrowser/include/tableheader.html:31 +#: templates/filebrowser/include/tableheader.html:32 +msgid "Date" +msgstr "" diff --git a/apps/filebrowser/locale/de/LC_MESSAGES/django.mo b/apps/filebrowser/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f15bd2152411bc3f99758f98cb01f98ec77087f2 GIT binary patch literal 5665 zcmb`KTWnlM8Gxr3C^eUsa=(=!#Eso#H_nYDZfmU2vFA;W%U} z^(Z_8eJFCj4&MsD3Gau`Ly`XyaqZu5?cau?*RxRO{}~j0e*xwDUqP|YZ{ho)Otueb_-;4_ z6Ih22!WW^~>o$}VefL2bcL<7{St#p7v{P!(5bDL5>fDiC~ zFUC6okHb;83PtZ55Z9}x-TSlf81K)+qwp0da)&Uc*!2jM?@mF{rve$GCLw?7B0n;& z0UI!em*9&~;=Fusq0b{w=3R#}?nx-}{s<*c{tCrj18*+;bQp?V&Oi;PpsXW+VvnaB zZ$R+W!DW{+}IRhO&--LYe1ZQ0%xDqe^_AfHbK&h-=hi5L2ov5Y^N=lsNtr zl=XiVj>D&+#O2?ijK3YB;=g;~2VohCJr^M+QIA5=x9!?L2}S4 ztJizrH1#M|ip+h=J{55wk7f5R>yg+Jy~H*We?!y*RI#0u!_?DM@wt?JRLNh7A=!Vr zMb^HT`hji(JWCayRH-(Hpp+6-Y=^7u{(cA4)NYad?H2Kg6!E!~2dHDzlhi5dhp4hY zi4VoE5)&1w6v^jv)bms+;wOnQDdMAJ_NmxM)ZkD(&ZEpE!>OLmOnXN|x}!xm_`=`O zoZh5eXL06*y9_VdD`BXp@tW~fCF@&@iHSV)Y3f=lZ?8mN5V{_)o|z~O;s}+^dWPdMW)x@IE8I}l z3sKmi)4dl1x}D0JNPZa4^nOR1^&rjCvhCreD}9?(+dY=VYpF@>GYXpC!*(5PM;cr+ z2&^09W9ULVy}TO6p0Ahavr}SeRfK|?G?7V&A3fdnnnqv52P`w)*3NsZrcAi1reZX( zV~byBPb|~GV8$=2Iq!qH)}2`?PJjv+q{x+C2PuR-o2NV zwKCx>p>jY+xXC^+3fAMqu;$3utk!-ZPl)DV}A_8eyL1^}0#ZMot_pkt_Ag z!J44^+z@j}p61p`N}QyY>~^t~ue1X`>d7I*n$BN-;V{&wp`6(CVBygnA!hq+Uh2Vg zn_>vG`5$#lxAH5}0 z_A+!=#fyE-DK1w0Z=*=Aj`0!}>e72>?C#Rl@5Ne7@Tel29JY9QnV2c^$fZ@BsEYv+ zUL?#Vv0l!Yz~-8BWt0}R(nLj1EsV}h@4vh-UmchwPfE4Ki_*|zdlW@#i__yXdSeP# zH>yvp1lhorQ*&YEadRcxrOE8lMs77^Cy93HGq2XEgD7p9)NAiLQ(tc-yL9&?zieb3kv2HQG|h@A zZ4z0_5LGC1nx7SKKFwfkI-eD+VVP1{>1TSA$@9`d~j3M<}{*x^38=S?d_ zkrflPbu~eGu_$+>)EQgOu&i> zTljplEk)~YqrIV6E4W3fF>_5~IzkRNl$=@ID&$4?_s$UXMi*Po=6+FDTiUtJ$y1cGWVu0#e7+qL?Y^P z-b{i^R*Wapl@tS>C(bDt9X}1b6FxH, YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-10-12 19:39+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fb_settings.py:102 +msgid "Folder" +msgstr "" + +#: fb_settings.py:103 +msgid "Image" +msgstr "" + +#: fb_settings.py:104 +msgid "Video" +msgstr "" + +#: fb_settings.py:105 +msgid "Document" +msgstr "" + +#: fb_settings.py:106 +msgid "Sound" +msgstr "" + +#: fb_settings.py:107 +msgid "Code" +msgstr "" + +#: fields.py:56 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "" + +#: forms.py:24 templates/filebrowser/versions.html:55 +msgid "Name" +msgstr "" + +#: forms.py:24 forms.py:30 forms.py:47 forms.py:53 +msgid "Only letters, numbers, underscores, spaces and hyphens are allowed." +msgstr "" + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "" + +#: forms.py:47 +msgid "New Name" +msgstr "" + +#: forms.py:56 +msgid "The File/Folder already exists." +msgstr "" + +#: views.py:47 views.py:138 views.py:191 views.py:284 views.py:362 +#: views.py:418 +msgid "Directory/File does not exist." +msgstr "" + +#: views.py:51 +msgid "Error finding upload directory. Maybe it does not exist?" +msgstr "" + +#: views.py:116 templates/filebrowser/include/breadcrumbs.html:7 +#: templates/filebrowser/include/breadcrumbs.html:9 +msgid "FileBrowser" +msgstr "" + +#: views.py:156 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "" + +#: views.py:164 +msgid "Permission denied." +msgstr "" + +#: views.py:166 +msgid "Error creating directory." +msgstr "" + +#: views.py:173 views.py:175 templates/filebrowser/index.html:50 +msgid "New Folder" +msgstr "" + +#: views.py:203 +msgid "Select files to upload" +msgstr "" + +#: views.py:205 templates/filebrowser/index.html:51 +#: templates/filebrowser/upload.html:110 +msgid "Upload" +msgstr "" + +#: views.py:307 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "" + +#: views.py:323 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "" + +#: views.py:388 +msgid "Renaming was successful." +msgstr "" + +#: views.py:393 +msgid "Error." +msgstr "" + +#: views.py:401 +#, python-format +msgid "Rename \"%s\"" +msgstr "" + +#: views.py:403 templates/filebrowser/include/filelisting.html:73 +msgid "Rename" +msgstr "" + +#: views.py:426 views.py:428 +#, python-format +msgid "Versions for \"%s\"" +msgstr "" + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +msgid "File-Browser" +msgstr "" + +#: templates/filebrowser/makedir.html:38 templates/filebrowser/rename.html:38 +msgid "Please correct the following errors." +msgstr "" + +#: templates/filebrowser/makedir.html:47 templates/filebrowser/rename.html:48 +#: templates/filebrowser/upload.html:83 +msgid "Help" +msgstr "" + +#: templates/filebrowser/makedir.html:52 templates/filebrowser/rename.html:53 +#: templates/filebrowser/upload.html:100 +msgid "" +"The Name will be converted to lowercase. Spaces will be replaced with " +"underscores." +msgstr "" + +#: templates/filebrowser/makedir.html:57 templates/filebrowser/rename.html:58 +msgid "Submit" +msgstr "" + +#: templates/filebrowser/upload.html:35 +msgid "BROWSE" +msgstr "" + +#: templates/filebrowser/upload.html:36 +msgid "An Error occured" +msgstr "" + +#: templates/filebrowser/upload.html:37 +msgid "Completed" +msgstr "" + +#: templates/filebrowser/upload.html:38 +msgid "Do you want to replace the file" +msgstr "" + +#: templates/filebrowser/upload.html:39 +msgid "KB" +msgstr "" + +#: templates/filebrowser/upload.html:40 +msgid "MB" +msgstr "" + +#: templates/filebrowser/upload.html:87 +msgid "Allowed" +msgstr "" + +#: templates/filebrowser/upload.html:93 +msgid "Max. Filesize" +msgstr "" + +#: templates/filebrowser/upload.html:108 +msgid "Clear Queue" +msgstr "" + +#: templates/filebrowser/versions.html:57 +msgid "Image Version" +msgstr "" + +#: templates/filebrowser/versions.html:58 +msgid "Debug" +msgstr "" + +#: templates/filebrowser/versions.html:70 +#: templates/filebrowser/include/filelisting.html:10 +msgid "Select" +msgstr "" + +#: templates/filebrowser/versions.html:81 +#: templates/filebrowser/versions.html:92 +#: templates/filebrowser/include/filelisting.html:24 +#: templates/filebrowser/include/filelisting.html:38 +msgid "Select File" +msgstr "" + +#: templates/filebrowser/versions.html:102 +msgid "Width" +msgstr "" + +#: templates/filebrowser/versions.html:103 +msgid "Height" +msgstr "" + +#: templates/filebrowser/include/breadcrumbs.html:4 +msgid "Home" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:49 +msgid "Show Versions" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:60 +msgid "View Image" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:85 +msgid "Are you sure you want to delete this file?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:85 +msgid "Delete File" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:88 +msgid "Are you sure you want to delete this Folder?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:88 +msgid "Delete Folder" +msgstr "" + +#: templates/filebrowser/include/filter.html:3 +msgid "Filter" +msgstr "" + +#: templates/filebrowser/include/filter.html:9 +msgid "By Date" +msgstr "" + +#: templates/filebrowser/include/filter.html:11 +msgid "Any Date" +msgstr "" + +#: templates/filebrowser/include/filter.html:13 +msgid "Today" +msgstr "" + +#: templates/filebrowser/include/filter.html:15 +msgid "Past 7 days" +msgstr "" + +#: templates/filebrowser/include/filter.html:17 +msgid "Past 30 days" +msgstr "" + +#: templates/filebrowser/include/filter.html:19 +msgid "This year" +msgstr "" + +#: templates/filebrowser/include/filter.html:27 +msgid "By Type" +msgstr "" + +#: templates/filebrowser/include/filter.html:29 +msgid "All" +msgstr "" + +#: templates/filebrowser/include/paginator.html:4 +msgid "No Items Found." +msgstr "" + +#: templates/filebrowser/include/paginator.html:9 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/paginator.html:15 +msgid "No Items." +msgstr "" + +#: templates/filebrowser/include/search.html:3 +#, python-format +msgid "1 result" +msgid_plural "%(counter)s results" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/search.html:4 +#, python-format +msgid "%(full_result_count)s total" +msgstr "" + +#: templates/filebrowser/include/search.html:5 +msgid "Clear Restrictions" +msgstr "" + +#: templates/filebrowser/include/search.html:7 +msgid "Search" +msgstr "" + +#: templates/filebrowser/include/search.html:21 +#: templates/filebrowser/include/toolbar.html:15 +msgid "Go" +msgstr "" + +#: templates/filebrowser/include/search.html:26 +#: templates/filebrowser/include/toolbar.html:18 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/search.html:27 +#: templates/filebrowser/include/toolbar.html:19 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Filename" +msgstr "" + +#: templates/filebrowser/include/tableheader.html:27 +#: templates/filebrowser/include/tableheader.html:28 +msgid "Size" +msgstr "" + +#: templates/filebrowser/include/tableheader.html:31 +#: templates/filebrowser/include/tableheader.html:32 +msgid "Date" +msgstr "" diff --git a/apps/filebrowser/locale/es/.svn/all-wcprops b/apps/filebrowser/locale/es/.svn/all-wcprops new file mode 100644 index 00000000..9aadfe55 --- /dev/null +++ b/apps/filebrowser/locale/es/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/es +END diff --git a/apps/filebrowser/locale/es/.svn/entries b/apps/filebrowser/locale/es/.svn/entries new file mode 100644 index 00000000..0ae34d23 --- /dev/null +++ b/apps/filebrowser/locale/es/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/es +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/es/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/es/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..e0575cb5 --- /dev/null +++ b/apps/filebrowser/locale/es/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/es/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/es/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/es/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/es/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/es/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..7b30a11a --- /dev/null +++ b/apps/filebrowser/locale/es/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/es/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:49.000000Z +578b89472b0f5a88fe8fa94994da86b8 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +8245 + +django.mo +file + + + + +2009-11-05T20:58:49.000000Z +951603147daea8a036164a5db6fa818d +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +5093 + diff --git a/apps/filebrowser/locale/es/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/es/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/es/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/es/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/es/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..bb698f8020f1f0dd29e82af1d8306b6418b49de5 GIT binary patch literal 5093 zcmbW3Ylt0J9l(#VwRNjjoBFC&kFjevP43O!Jlf2rW;bmS6wcl`yE}32 zoSQjwclT;(>zDW`2%<=(QWhU5Sg{7At*GF|Qt*=>Y!O-?AmTR_Q4kUQ{m;yO>?1We z+?n5;$DH#&|L6VfE!TZTaZPi-pZnx4r3_52y_FA{|2k@);ATLf^Vdq!5iQz zyb(TDw!cvFi%^#OD!d6k1>Xw415d#pLD~C1@V#(~#e|=Nbg4CX0zL+1ou9y4;m_d* z;44tp{U?Ot)1>XXX&?)Oo!du`hyaO62@?9#&FGG?4$+G{4 zW&iU~8H%r~MCj4$d$re)<%Y^F9wn&fmaC;O`->ppLQ0JK+TUFnk!k z1AeaLWhmc24G+PeLHX|QQ1tL`DD!W7d*LVhp~!at%6>=Shv0F@RP|}dPo+E%RXq-6 z-erhL>dR34;2Ti<@CQ)ly#$ZKm&^9eY%23^hqC`&Jj8Ctq3CZJ%6b=}=>G{Q_V^kU zJADg^ex8GJo?klyiR) zO8h?xMK4c4K2ev-@h73k^9YE5r3DM5<4E|KFKZD`wE0O-dnzlPDMX*9pt_{ycG|Lqx-lI z4E2dEBwoaZyUKpahmvc=4?kM=3B@dCPpGXqL?bd9hCen^RX>zM32VCg1tO}hcZDMn)PsIrx<-1EFo2lv4 zw==8rmDuZ5leDc~F#%+p$!uznXIU?-w3~~miIZ{!tmiiMu}cxz zuIHG91Ent4rch8-pG}hvgJrvz&>K`iGxA_Q+eaO3*JGdiY8au>TYbx_VR$lgYaU(7 z_XueFFI!~@13vz&WxGm)NWENqFU)dM!Q879>;O|xwELnxo~`7Qml zojPrkmOAa&x|mz25M?Z(BO6uK8S@!C(ArSb^S)lyBDx5sW<~y4yQWVS{voeLp9@az z8Nh|BYPM`wRZuMcCEl@Lr&uPuFbg(ZW;tdW>6K1v1ruq5yY=-xCr)-~Tt}wkRcPE( zzT2!B`(V(>rm>u1PF&JzRus3uWi4SN`V)_^;vksoTw#F%de5leQ*_CkH9Xt58x8CI zQXAKqClVTYiJ*es`;w@G=+o_B7bSL4^XW_|tM}qo^l=14wqr8tAPI zfdA7@vSmLUcN9DdX{8ig^!LAJ5lJ0uG7ehCavAtTUc1B4u>BSsZlj9ODY41E=kb;z z9?DR1nR+P3p+l#7ShUw>P8{N^G^NY%w9H+=Gb%GtrHs0|jxLyV*^QjDEtln$Gk!Ua zDwFMHUs-Tc zh^`&0*O*sh-h%{2Wg#=EPYfxrt|!vmrLmq!Tt^=_p;0w7?#~IZmTCHG!!=LvUAo*R zT~rpVY1Z|8%cQYi896g^W_oazT6KJ6%2B#f_Mk}Abxwvm&`M04-WzhgxA}eN7fw}< z4(5q0OE#-arwtboPIY~BG0sOGsq~dw*B_rWi#E}gZ*kb2yuW%Np<|M1+F>h0ClU!`aHq%R%;-=;(JcGA9ZaH-- z3`~-4Oh(pfti-EMmCc69S~fRo$~9YA+Y)sbDV^4nt*N4{mB(ZTLb2&|v-?aM!+tF_ zS$9KfDJf>Gn765xUfY@*>*bn7W$mrG^O8mRl-!b{Xe`u=<=73?R@Yp_$V^C#rp(4B zZ)c`oVIMTTGT6N`sIn=``MkTKTcv7ERnK>?Bu*1pMW0Ps(Dy!eDaRfv!&Nm=s&<-O zR=nzt>_z>h7?y=y_KYYT=r8T?aMdhd0e+wsWVO5mB8kJe1Z}~VoA$_ozd)WNS5(xCQ}ogc4X8{ z8aHBGjojV6BApTm8^7sD2vZQ-K><~D+B9sa?A>RK zFItrL(3lIgUG$vVWj-U}O7xjkm+cSbJ-%QlTomh=#->$|OnyfsqqIh^wG(>sB zds3SbI`~xSum?&T40|>K)$1MQtYnMK;soSF-Tm%*oFn;;TfS=@-lyQOeFbBUI`vzxG+~#B#S{fQsjHFdft, 2009. +# Antoni Aloy , 2009. +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-19 21:24+0000\n" +"PO-Revision-Date: 2009-02-15 19:14+0100\n" +"Last-Translator: Antoni Aloy \n" +"Language-Team: Spanish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: fields.py:27 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Compruebe que este valor tiene como máximo %(max)d carácters (tiene %(length)" +"d)." + +#: fields.py:28 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Compruebe que este valor tiene como mínimo %(min)d carácteres (tiene %" +"(length)d)." + +#: fields.py:29 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "" +"La extensión %(ext)s no está permitida. Sólo se permiten las extensiones %" +"(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Nombre" + +#: forms.py:23 forms.py:46 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"El nombre se convertirá automáticamente a minúsculas. Sólo se permiten " +"letras, números, subrayado y guiones." + +#: forms.py:30 forms.py:53 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Sólo se permiten letras, números, subrayado y guiones." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "La carpeta ya existe." + +#: forms.py:46 +msgid "New Name" +msgstr "Nuevo nombre" + +#: forms.py:56 +msgid "The File/Folder already exists." +msgstr "El archivo/carpeta ya existe." + +#: forms.py:92 +msgid "File" +msgstr "Archivo" + +#: forms.py:93 +msgid "Use Image Generator" +msgstr "Emplear el generador de imágenes" + +#: forms.py:102 +msgid "File already exists." +msgstr "El archivo ya existe." + +#: forms.py:108 +msgid "Filename is not allowed." +msgstr "Nombre de archivo no permitido." + +#: forms.py:113 +msgid "File extension is not allowed." +msgstr "Extensión de archivo no permitida." + +#: forms.py:118 +msgid "Filesize exceeds allowed Upload Size." +msgstr "El tamaño del archivo excede el máximo permitido." + +#: functions.py:84 +msgid "Home" +msgstr "Inicio" + +#: functions.py:276 +msgid "Thumbnail creation failed." +msgstr "Falló la creación de la miniatura." + +#: functions.py:331 functions.py:398 +msgid "Image creation failed." +msgstr "Falló la creación de la Imagen." + +#: views.py:165 +msgid "FileBrowser" +msgstr "Visor de archivos" + +#: views.py:188 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "La carpeta %s se creó con éxito." + +#: views.py:194 +msgid "Permission denied." +msgstr "Permiso denegado." + +#: views.py:196 +msgid "Error creating directory." +msgstr "Error creando el directorio." + +#: views.py:204 views.py:205 templates/filebrowser/index.html:30 +msgid "New Folder" +msgstr "Nueva carpeta." + +#: views.py:250 +msgid "Upload successful." +msgstr "Subida completada." + +#: views.py:263 templates/filebrowser/index.html:33 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Subir" + +#: views.py:264 +msgid "Select files to upload" +msgstr "Seleccione archivos a subir." + +#: views.py:294 +msgid "Thumbnail creation successful." +msgstr "Se creó la miniatura con éxito." + +#: views.py:344 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "El archivo %s se eliminó con éxito." + +#: views.py:356 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "El directorio %s se eliminó con éxito." + +#: views.py:407 +msgid "Error renaming Thumbnail." +msgstr "Error renombrando la miniatura." + +#: views.py:413 +msgid "Renaming was successful." +msgstr "Renombrado satisfactorio." + +#: views.py:418 +msgid "Error." +msgstr "Error." + +#: views.py:427 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Renombrar" + +#: views.py:428 +#, python-format +msgid "Rename \"%s\"" +msgstr "Renombrar \"%s\"" + +#: views.py:465 +msgid "Successfully generated Images." +msgstr "Las imágenes se generaron satisfactoriamente." + +#: templates/filebrowser/index.html:31 +msgid "Make Thumbs" +msgstr "Crear miniaturas" + +#: templates/filebrowser/index.html:32 +msgid "Generate Images" +msgstr "Generar imágenes" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Por favor, corrija los siguientes errores." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Enviar" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Usa el generador de imágenes." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Ayuda" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Permitido" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Tamaño máx." + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Selecciona" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Selecciona archivo" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Crear miniatura" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Ver imagen" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Generar versiones de la imagen" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Borrar archivo" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Borrar carpeta" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filtrar" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Por fecha" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Cualquier fecha" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Hoy" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Hace 7 días" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Hace 30 días" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Este año" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Por tipo" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Todo" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "No se encontraron items" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s item" +msgstr[1] "%(counter)s items" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "No hay items." + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Nombre de archivo" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Tamaño" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Fecha" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Ir" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "encontrado %(counter)s Item" +msgstr[1] "encontrados %(counter)s Items" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "total %(counter)s item" +msgstr[1] "total %(counter)s items" diff --git a/apps/filebrowser/locale/es/LC_MESSAGES/django.mo b/apps/filebrowser/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..bb698f8020f1f0dd29e82af1d8306b6418b49de5 GIT binary patch literal 5093 zcmbW3Ylt0J9l(#VwRNjjoBFC&kFjevP43O!Jlf2rW;bmS6wcl`yE}32 zoSQjwclT;(>zDW`2%<=(QWhU5Sg{7At*GF|Qt*=>Y!O-?AmTR_Q4kUQ{m;yO>?1We z+?n5;$DH#&|L6VfE!TZTaZPi-pZnx4r3_52y_FA{|2k@);ATLf^Vdq!5iQz zyb(TDw!cvFi%^#OD!d6k1>Xw415d#pLD~C1@V#(~#e|=Nbg4CX0zL+1ou9y4;m_d* z;44tp{U?Ot)1>XXX&?)Oo!du`hyaO62@?9#&FGG?4$+G{4 zW&iU~8H%r~MCj4$d$re)<%Y^F9wn&fmaC;O`->ppLQ0JK+TUFnk!k z1AeaLWhmc24G+PeLHX|QQ1tL`DD!W7d*LVhp~!at%6>=Shv0F@RP|}dPo+E%RXq-6 z-erhL>dR34;2Ti<@CQ)ly#$ZKm&^9eY%23^hqC`&Jj8Ctq3CZJ%6b=}=>G{Q_V^kU zJADg^ex8GJo?klyiR) zO8h?xMK4c4K2ev-@h73k^9YE5r3DM5<4E|KFKZD`wE0O-dnzlPDMX*9pt_{ycG|Lqx-lI z4E2dEBwoaZyUKpahmvc=4?kM=3B@dCPpGXqL?bd9hCen^RX>zM32VCg1tO}hcZDMn)PsIrx<-1EFo2lv4 zw==8rmDuZ5leDc~F#%+p$!uznXIU?-w3~~miIZ{!tmiiMu}cxz zuIHG91Ent4rch8-pG}hvgJrvz&>K`iGxA_Q+eaO3*JGdiY8au>TYbx_VR$lgYaU(7 z_XueFFI!~@13vz&WxGm)NWENqFU)dM!Q879>;O|xwELnxo~`7Qml zojPrkmOAa&x|mz25M?Z(BO6uK8S@!C(ArSb^S)lyBDx5sW<~y4yQWVS{voeLp9@az z8Nh|BYPM`wRZuMcCEl@Lr&uPuFbg(ZW;tdW>6K1v1ruq5yY=-xCr)-~Tt}wkRcPE( zzT2!B`(V(>rm>u1PF&JzRus3uWi4SN`V)_^;vksoTw#F%de5leQ*_CkH9Xt58x8CI zQXAKqClVTYiJ*es`;w@G=+o_B7bSL4^XW_|tM}qo^l=14wqr8tAPI zfdA7@vSmLUcN9DdX{8ig^!LAJ5lJ0uG7ehCavAtTUc1B4u>BSsZlj9ODY41E=kb;z z9?DR1nR+P3p+l#7ShUw>P8{N^G^NY%w9H+=Gb%GtrHs0|jxLyV*^QjDEtln$Gk!Ua zDwFMHUs-Tc zh^`&0*O*sh-h%{2Wg#=EPYfxrt|!vmrLmq!Tt^=_p;0w7?#~IZmTCHG!!=LvUAo*R zT~rpVY1Z|8%cQYi896g^W_oazT6KJ6%2B#f_Mk}Abxwvm&`M04-WzhgxA}eN7fw}< z4(5q0OE#-arwtboPIY~BG0sOGsq~dw*B_rWi#E}gZ*kb2yuW%Np<|M1+F>h0ClU!`aHq%R%;-=;(JcGA9ZaH-- z3`~-4Oh(pfti-EMmCc69S~fRo$~9YA+Y)sbDV^4nt*N4{mB(ZTLb2&|v-?aM!+tF_ zS$9KfDJf>Gn765xUfY@*>*bn7W$mrG^O8mRl-!b{Xe`u=<=73?R@Yp_$V^C#rp(4B zZ)c`oVIMTTGT6N`sIn=``MkTKTcv7ERnK>?Bu*1pMW0Ps(Dy!eDaRfv!&Nm=s&<-O zR=nzt>_z>h7?y=y_KYYT=r8T?aMdhd0e+wsWVO5mB8kJe1Z}~VoA$_ozd)WNS5(xCQ}ogc4X8{ z8aHBGjojV6BApTm8^7sD2vZQ-K><~D+B9sa?A>RK zFItrL(3lIgUG$vVWj-U}O7xjkm+cSbJ-%QlTomh=#->$|OnyfsqqIh^wG(>sB zds3SbI`~xSum?&T40|>K)$1MQtYnMK;soSF-Tm%*oFn;;TfS=@-lyQOeFbBUI`vzxG+~#B#S{fQsjHFdft, 2009. +# Antoni Aloy , 2009. +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-19 21:24+0000\n" +"PO-Revision-Date: 2009-02-15 19:14+0100\n" +"Last-Translator: Antoni Aloy \n" +"Language-Team: Spanish\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: fields.py:27 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Compruebe que este valor tiene como máximo %(max)d carácters (tiene %(length)" +"d)." + +#: fields.py:28 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Compruebe que este valor tiene como mínimo %(min)d carácteres (tiene %" +"(length)d)." + +#: fields.py:29 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "" +"La extensión %(ext)s no está permitida. Sólo se permiten las extensiones %" +"(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Nombre" + +#: forms.py:23 forms.py:46 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"El nombre se convertirá automáticamente a minúsculas. Sólo se permiten " +"letras, números, subrayado y guiones." + +#: forms.py:30 forms.py:53 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Sólo se permiten letras, números, subrayado y guiones." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "La carpeta ya existe." + +#: forms.py:46 +msgid "New Name" +msgstr "Nuevo nombre" + +#: forms.py:56 +msgid "The File/Folder already exists." +msgstr "El archivo/carpeta ya existe." + +#: forms.py:92 +msgid "File" +msgstr "Archivo" + +#: forms.py:93 +msgid "Use Image Generator" +msgstr "Emplear el generador de imágenes" + +#: forms.py:102 +msgid "File already exists." +msgstr "El archivo ya existe." + +#: forms.py:108 +msgid "Filename is not allowed." +msgstr "Nombre de archivo no permitido." + +#: forms.py:113 +msgid "File extension is not allowed." +msgstr "Extensión de archivo no permitida." + +#: forms.py:118 +msgid "Filesize exceeds allowed Upload Size." +msgstr "El tamaño del archivo excede el máximo permitido." + +#: functions.py:84 +msgid "Home" +msgstr "Inicio" + +#: functions.py:276 +msgid "Thumbnail creation failed." +msgstr "Falló la creación de la miniatura." + +#: functions.py:331 functions.py:398 +msgid "Image creation failed." +msgstr "Falló la creación de la Imagen." + +#: views.py:165 +msgid "FileBrowser" +msgstr "Visor de archivos" + +#: views.py:188 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "La carpeta %s se creó con éxito." + +#: views.py:194 +msgid "Permission denied." +msgstr "Permiso denegado." + +#: views.py:196 +msgid "Error creating directory." +msgstr "Error creando el directorio." + +#: views.py:204 views.py:205 templates/filebrowser/index.html:30 +msgid "New Folder" +msgstr "Nueva carpeta." + +#: views.py:250 +msgid "Upload successful." +msgstr "Subida completada." + +#: views.py:263 templates/filebrowser/index.html:33 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Subir" + +#: views.py:264 +msgid "Select files to upload" +msgstr "Seleccione archivos a subir." + +#: views.py:294 +msgid "Thumbnail creation successful." +msgstr "Se creó la miniatura con éxito." + +#: views.py:344 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "El archivo %s se eliminó con éxito." + +#: views.py:356 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "El directorio %s se eliminó con éxito." + +#: views.py:407 +msgid "Error renaming Thumbnail." +msgstr "Error renombrando la miniatura." + +#: views.py:413 +msgid "Renaming was successful." +msgstr "Renombrado satisfactorio." + +#: views.py:418 +msgid "Error." +msgstr "Error." + +#: views.py:427 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Renombrar" + +#: views.py:428 +#, python-format +msgid "Rename \"%s\"" +msgstr "Renombrar \"%s\"" + +#: views.py:465 +msgid "Successfully generated Images." +msgstr "Las imágenes se generaron satisfactoriamente." + +#: templates/filebrowser/index.html:31 +msgid "Make Thumbs" +msgstr "Crear miniaturas" + +#: templates/filebrowser/index.html:32 +msgid "Generate Images" +msgstr "Generar imágenes" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Por favor, corrija los siguientes errores." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Enviar" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Usa el generador de imágenes." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Ayuda" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Permitido" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Tamaño máx." + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Selecciona" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Selecciona archivo" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Crear miniatura" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Ver imagen" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Generar versiones de la imagen" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Borrar archivo" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Borrar carpeta" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filtrar" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Por fecha" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Cualquier fecha" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Hoy" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Hace 7 días" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Hace 30 días" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Este año" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Por tipo" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Todo" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "No se encontraron items" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s item" +msgstr[1] "%(counter)s items" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "No hay items." + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Nombre de archivo" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Tamaño" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Fecha" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Ir" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "encontrado %(counter)s Item" +msgstr[1] "encontrados %(counter)s Items" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "total %(counter)s item" +msgstr[1] "total %(counter)s items" diff --git a/apps/filebrowser/locale/fr/.svn/all-wcprops b/apps/filebrowser/locale/fr/.svn/all-wcprops new file mode 100644 index 00000000..0cbad90d --- /dev/null +++ b/apps/filebrowser/locale/fr/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/fr +END diff --git a/apps/filebrowser/locale/fr/.svn/entries b/apps/filebrowser/locale/fr/.svn/entries new file mode 100644 index 00000000..6c18686a --- /dev/null +++ b/apps/filebrowser/locale/fr/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/fr +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..bf27e22d --- /dev/null +++ b/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/fr/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/fr/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/fr/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..c7f68b9e --- /dev/null +++ b/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/fr/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:49.000000Z +6e24f48b2d2d67cacd701f432b994f65 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +8351 + +django.mo +file + + + + +2009-11-05T20:58:49.000000Z +974d2c2951cc59ba15aecc116dffa5d7 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +5358 + diff --git a/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/fr/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..26e610dfbe75b7ce9fb274bb6c8ce75bac469340 GIT binary patch literal 5358 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, 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-20 11:04+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: REMY HUBSCHER \n" +"Language-Team: FRENCH \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "" +"L'extension de fichier %(ext)s n'est pas autorisée. Les extensions suivantes " +"sont autorisées: %(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Nom" + +#: forms.py:23 forms.py:49 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Le nom sera automatiquement converti en minuscule. Seul les lettres, nombres," +"tirets bas et tirets sont autorisés." + +#: forms.py:30 forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Seul les lettres, nombres, tirets bas et tirets sont autorisés." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Ce répertoire existe déjà." + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "Nom de fichier interdit." + +#: forms.py:49 +msgid "New Name" +msgstr "Nouveau nom" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "Ce fichier/répertoire existe déjà." + +#: forms.py:95 +msgid "File" +msgstr "Fichier" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "Utiliser le générateur d'images" + +#: forms.py:105 +msgid "File already exists." +msgstr "Le fichier existe déjà." + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "Ce nom de fichier n'est pas autorisé." + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "Cette extension de fichier n'est pas autorisée." + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "La taille du fichier est supérieur à la taille maximale autorisée." + +#: functions.py:84 +msgid "Home" +msgstr "Accueil" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "La création de miniature à échouée." + +#: functions.py:334 functions.py:389 +msgid "Image creation failed." +msgstr "La création d'image à échouée." + +#: views.py:174 +msgid "FileBrowser" +msgstr "Navigateur de Fichiers" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "Le répertoire %s a été créé avec succès." + +#: views.py:204 +msgid "Permission denied." +msgstr "Permission refusée." + +#: views.py:206 +msgid "Error creating directory." +msgstr "Impossible de créer le répertoire." + +#: views.py:214 views.py:215 templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "Nouveau répertoire" + +#: views.py:260 +msgid "Upload successful." +msgstr "L'envoi a réussi." + +#: views.py:273 templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Upload" + +#: views.py:274 +msgid "Select files to upload" +msgstr "Sélectionner les fichiers à envoyer" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "Les miniatures ont été créée." + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Le fichier %s a été supprimé." + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Le répertoire %s a été supprimé." + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "Impossible de renommer la miniature." + +#: views.py:423 +msgid "Renaming was successful." +msgstr "La miniature a été renommée." + +#: views.py:428 +msgid "Error." +msgstr "Erreur." + +#: views.py:437 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Renommer" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "Renommer \"%s\"" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "Les images ont été générées." + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +#, fuzzy +msgid "File-Browser" +msgstr "Navigateur de Fichiers" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "Générer les miniatures" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "Générer les images" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Merci de corriger les erreurs suivantes." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Envoyer" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Utiliser le générateur d'images." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Aide" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Autorisé" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Taille Max." + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Sélectionner" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Sélectionner le fichier" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Générer une miniature" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Voir l'image" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Générer des versions de l'image" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "Êtes-vous sur de vouloir supprimer ce fichier ?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Supprimer le fichier" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "Êtes-vous sur de vouloir supprimer ce répertoire ?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Supprimer le répertoire" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filtrer" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Par date" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Toutes" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Aujourd'hui" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Semaine dernière" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Mois dernier" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Cette année" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Par type" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Alle" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Aucun article." + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s article" +msgstr[1] "%(counter)s articles" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Aucun article." + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Nom" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Taille" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Date" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Chercher" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s article trouvé" +msgstr[1] "%(counter)s articles trouvés" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "%(counter)s article total" +msgstr[1] "%(counter)s articles total" + +msgid "Folder" +msgstr "Répertoire" + +msgid "Image" +msgstr "Image" + +msgid "Document" +msgstr "Document" + +msgid "Code" +msgstr "Code" + +msgid "Sound" +msgstr "Son" \ No newline at end of file diff --git a/apps/filebrowser/locale/fr/LC_MESSAGES/django.mo b/apps/filebrowser/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..26e610dfbe75b7ce9fb274bb6c8ce75bac469340 GIT binary patch literal 5358 zcmbW3YlvJ|9l%d(AG-0Cs?|o@9@B0%Z8DS1%O=w_o5}7ZyUosSx;vZDQXhBkoZY?g z&b{0F*v+UY`1qjEPofAZSZcv8`a$%If&^g@DGJh0KG29F6{QrR0r7$O`=5JecJ>h( zyv&*3J&*f8|MP#GbFSTW+t(D&Im(A9*{w<$_>0^4%> zQ-2-a4X?v@!X0lb=Gz5j9ebdBcLWZ=Ybf6hLDB0ll=&ZrqVF`6adS}Y^EA94ei{zJD{vR=zyw}{ z55p%AD)#yeWJ>h{lyTpMBIjpNA4aJ_%I({9>ci(h;5lTF)L9x?S$6rDD?(b0S z`cKFEa0;QMMqvogx%v;G==~EY^Zpi!eRsUOi2vPi5A{8;2J2Add=+8>bp?JHejAED zFGHFC8Wes10%iPbQ0#aeO1}LIN<7}Xv(W!26nRrn^6n`p_WhV^PasQCpLKi|o}&I7 z#MJ8dke~V+f1<~KpxA#W&JukpP~vtJN?bhQ>d!#2-{+vj!8f4z<0=$AehNkZm!Yil z6)5B0fMs|OO5O{{VFDMR*!?$9!~a6j?|zgTg8QM!X+T-;3Y7Ui4-u)p?E0UB^4(P^ z_WC)z1&&fqQzSOeP!MnZbpXmUL3zx+DRmYOQ{;Pj9;e8h@*JXkkb+pNuf+T~xL+_(VF5F7#KC<=)D7xDK zPg2B}W0XfIAEC&zpCUOc&pC?tM||0RB#yfe;bkAf**@a4D&<&FRYzfkA~7OzY4+#hN`f(m*CV42;6PamkX-K!U=moxLZfQ<$(5|yM z^TKV07wy$BRFrttG*vZf>oG4gs+t(xj&q&n?q$`BG6dElJ`; z`-$6>kBE(d9rmTeD}uJlb(ZTIOUUQJD6-%-%?UN-AsJJR4& z27$gY&9tkXo?8xMuc>G0vr`gAs_=?BYa)~2NfR^Kx(WNLDesrdTI?WNDshjRGONyA_O)n>ZHPDM{h`CQTP|;%Jtz z^)m-+g6{i*m_t$~w@y;xBsFU@cQ&7I1$@+#Lx?Rpe>Dq-p+*Dc#HI%dk8TMu+iz1u z52l+GL!iwES##gG%~2{{;u*afgrWBGEN+oQKBjH!c`;M8Vv@`>Wf`(VBtF)2Iq`pb zOQ!5)=(dU%TZ~g&toUZ5NUpZ=5*F&xdu!}&)79_AMojRiBAXmGczKSPDe}mrRh*~` z0TEs#%tf(Y&X~aFnsa5G5N}C*iTEf@G)pc6EBbtO^j!69O<$i1*^@)8?O;6PZCdrdhBk`g%^w=INdZt!?QjgD_o*f;p&FB*m zu5X>nlAM?FLUNK1qQ#ueqtq~7tD?`$)TTzq^@+*JQ(;h!lf{z*^@)0IePIX7!vmu+ zXIaEN?Cuqvu>&4h4!t0HRQpR_lA7$XxyG5&vGsAH&w@!xwaAZ~WLQNXn-8*q4ab$2 z5R{w?{b!|X+ju&U@R& z(n_4m?vQXwYTm;*NT@C^Cqc__KpCBM)|N>q+KnE$*^d?ie<|Sm5jHnO%keBP*~as8 zwl@z6<33@B=}t~#-{kDPEm5*7I*cIl zrUY8w$h6XbNXubpjix5o7io`XR?}I#)Oo(FM&-0wm)&oUZB^k|TL~7ie&Js?K`N$1 z7MF$%7Trb!7Vvb&VJargd$yNV6C|CrBoNV^=f!+(Sj)T2mcsZxld!ZfOH86>)`Ll% z?W{#e!1hgS!=`Nyds$OBWH+V05ppcqwp5KSv87W~HQ*jr_5IugAzmfvMOpDWn*w)$ zW+6qi>#X@paZWgt`();kS$BC~yUf)Kg;X_))ys9k+HHz7HD10cG>bM2N}l<7#A$ES zzr49RYx0ngOeq-_k&8pznzt_*8J4Abo@g>0^F?iA$Z*2eV~!4P7~BmKj_nrvlterA z&Pxedwtjy|%tB7Ov*tP$3&gN;hX@vJQZNbki9G3xPkW27*&ug^A}#Dq0<-oEqCKpc zb=Gu|IadB`XH9Mt7@hl@+EA19>t%NTFlz+YlZuZ_v=X=Zys$U7j!4y9lO$B(eJvSO z%)eNK4+>xvg4xMB(6?ofDco$=(}%?B?;RvR{^47NN&avf z_IkIFXL2LA`|c$qU{PYZJoWRCjp4@5zd7IESbw);ch*SQo+;!G(p_NRfMOHzB9d=& z#`Gn`rnC_k^kN|Gb3, 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-20 11:04+0200\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: REMY HUBSCHER \n" +"Language-Team: FRENCH \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "" +"L'extension de fichier %(ext)s n'est pas autorisée. Les extensions suivantes " +"sont autorisées: %(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Nom" + +#: forms.py:23 forms.py:49 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Le nom sera automatiquement converti en minuscule. Seul les lettres, nombres," +"tirets bas et tirets sont autorisés." + +#: forms.py:30 forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Seul les lettres, nombres, tirets bas et tirets sont autorisés." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Ce répertoire existe déjà." + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "Nom de fichier interdit." + +#: forms.py:49 +msgid "New Name" +msgstr "Nouveau nom" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "Ce fichier/répertoire existe déjà." + +#: forms.py:95 +msgid "File" +msgstr "Fichier" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "Utiliser le générateur d'images" + +#: forms.py:105 +msgid "File already exists." +msgstr "Le fichier existe déjà." + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "Ce nom de fichier n'est pas autorisé." + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "Cette extension de fichier n'est pas autorisée." + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "La taille du fichier est supérieur à la taille maximale autorisée." + +#: functions.py:84 +msgid "Home" +msgstr "Accueil" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "La création de miniature à échouée." + +#: functions.py:334 functions.py:389 +msgid "Image creation failed." +msgstr "La création d'image à échouée." + +#: views.py:174 +msgid "FileBrowser" +msgstr "Navigateur de Fichiers" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "Le répertoire %s a été créé avec succès." + +#: views.py:204 +msgid "Permission denied." +msgstr "Permission refusée." + +#: views.py:206 +msgid "Error creating directory." +msgstr "Impossible de créer le répertoire." + +#: views.py:214 views.py:215 templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "Nouveau répertoire" + +#: views.py:260 +msgid "Upload successful." +msgstr "L'envoi a réussi." + +#: views.py:273 templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Upload" + +#: views.py:274 +msgid "Select files to upload" +msgstr "Sélectionner les fichiers à envoyer" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "Les miniatures ont été créée." + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Le fichier %s a été supprimé." + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Le répertoire %s a été supprimé." + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "Impossible de renommer la miniature." + +#: views.py:423 +msgid "Renaming was successful." +msgstr "La miniature a été renommée." + +#: views.py:428 +msgid "Error." +msgstr "Erreur." + +#: views.py:437 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Renommer" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "Renommer \"%s\"" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "Les images ont été générées." + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +#, fuzzy +msgid "File-Browser" +msgstr "Navigateur de Fichiers" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "Générer les miniatures" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "Générer les images" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Merci de corriger les erreurs suivantes." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Envoyer" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Utiliser le générateur d'images." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Aide" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Autorisé" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Taille Max." + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Sélectionner" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Sélectionner le fichier" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Générer une miniature" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Voir l'image" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Générer des versions de l'image" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "Êtes-vous sur de vouloir supprimer ce fichier ?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Supprimer le fichier" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "Êtes-vous sur de vouloir supprimer ce répertoire ?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Supprimer le répertoire" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filtrer" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Par date" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Toutes" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Aujourd'hui" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Semaine dernière" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Mois dernier" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Cette année" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Par type" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Alle" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Aucun article." + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s article" +msgstr[1] "%(counter)s articles" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Aucun article." + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Nom" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Taille" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Date" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Chercher" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s article trouvé" +msgstr[1] "%(counter)s articles trouvés" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "%(counter)s article total" +msgstr[1] "%(counter)s articles total" + +msgid "Folder" +msgstr "Répertoire" + +msgid "Image" +msgstr "Image" + +msgid "Document" +msgstr "Document" + +msgid "Code" +msgstr "Code" + +msgid "Sound" +msgstr "Son" \ No newline at end of file diff --git a/apps/filebrowser/locale/it/.svn/all-wcprops b/apps/filebrowser/locale/it/.svn/all-wcprops new file mode 100644 index 00000000..501f80ae --- /dev/null +++ b/apps/filebrowser/locale/it/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/it +END diff --git a/apps/filebrowser/locale/it/.svn/entries b/apps/filebrowser/locale/it/.svn/entries new file mode 100644 index 00000000..b2ac8699 --- /dev/null +++ b/apps/filebrowser/locale/it/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/it +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/it/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/it/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..e5382e89 --- /dev/null +++ b/apps/filebrowser/locale/it/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/it/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/it/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/it/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/it/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/it/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..78d5a81f --- /dev/null +++ b/apps/filebrowser/locale/it/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/it/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:49.000000Z +1de7beb6d46ed6ca848539fd1d0845c7 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +8586 + +django.mo +file + + + + +2009-11-05T20:58:49.000000Z +977100aa26f0b8f39872acfcbfa221e3 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +3542 + diff --git a/apps/filebrowser/locale/it/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/it/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/it/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/it/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/it/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..90e8cdcb8af29d7de0263732f87a5956e2e81f2d GIT binary patch literal 3542 zcmb7_O^h7H6~`-qgk(bq*!glkoWfz_U3+Jk**L-;gT<~rh7H(j?~bi}DN5~h?M&G{ zU90Yz{UFMXNFXFGhyyo-A^`^uxgkZ0gg{70klZ+MK%BTG7sMgq0KeB=Gqbz011W9I zudA#2)vNz|_4fS(w?3>TdC8L55n&w_*eJ?_%|r)-h~`ReGFy4Pv8{1gF~Mp zCWoNRukx{c|7(8a99<~7Y7qba)aTgwMgt@Ri6#AB$sUpi znvQGgUb^Iy+_@UPPM0Q{-AR|bF-sTUMK5XMpEQYsv>#R|&+*gvjQeF14I1<>(~p#I zsyO^4KF>kXQ<~@^8cSV}Ci;+;>ZlAB(p0+NvWZ&AcJw(DtXiC~v$J7U`SP4iZLs>h zOL-BWeVW)@wXV5THQB=HbJM>6hTkV3|uyw=x*QSrWuzpMa9K|$F1Ov_^BwG$Gr7$S{`7RGKOC%O#-(uv zYzLba&S$u6x5I3qIZ)<bcVd; z!!RRBimuNs4rht(?`-suLmP5tEZ!x_l%F?rVs;8u4(^N3HXpd6j7nlNCl0NYGU+4J z#gXb+!nsAt6~k`V7RCCIn68qd-B3C=dR`Ytb?|yv%B4guwK`lIxBy0<65(EyE~&I5 zjGexnq>`R4_HD;ENqHskPL|3}pSOxs*s&&Oeayp{w7ZnQ!PM>}c06jS82jB5SDoFe zTvwNJe+?aKOGzzeKuagrOxE*LD|W-@p?0C@xumu@>=m_+Z|SK^%bnWU^7{C!CO5yO z=NpYvwZ?p{c}mYWTk|K5H)t%Zt=LT`q1m^taY8pwv>Nlr8%@?dN@#1H++;;+xQQ*j zkdhdLVR5x)X;5NKeNu%1Sqq-RF(lQCgpxYio{WTt$ryH}I3vN#&Gl<@AitjV^p9bK~0iITlT- z2ZlW>gJl&JXa1+fvRGQ3iNj@LK1P_i1J!tRl0B;ko0qdsR?7c`nA}zMwd&EM9JMNj z+>lsiUw=t&I*ZDtu2gAv_xuRpKa6LT3?XM=J<2{2`?997nf zA}Ov{AsN+KO8a=dpV(&WqzsBglDM-x7{-tR*pr8_;8@*a^!{DoGxQPe(x^Q`IdUTPd?Q(6>r#BlmN`ACy_#an(X!y`q;i>W z2xZlkG;mIRA8PuXLy^}apeOV_uB%#!QH|wxPmJyQIvWm&8(Eu;%C9f$t(?}df2Fxp z, 2009. +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-19 21:24+0000\n" +"PO-Revision-Date: 2009-02-04 14:02+0100\n" +"Last-Translator: Alberto BOTTARINI \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: fields.py:27 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Assicurati che il testo abbia al massimo %(max)d caratteri (ora sono %" +"(length)d)" + +#: fields.py:28 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Assicurati che il testo abbia come minimo %(min)d caratteri (ora sono %" +"(length)d)" + +#: fields.py:29 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "L'estensione %(ext)s è vietata. Sono accettate: %(allowed)s" + +#: forms.py:23 +msgid "Name" +msgstr "" + +#: forms.py:23 forms.py:46 +#, fuzzy +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Il nome del file verrà sostituito con le lettere minuscole.Sono accettati " +"solo lettere. numeri, underscore e accenti." + +#: forms.py:30 forms.py:53 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Sono accettati solo lettere. numeri, underscore e accenti." + +#: forms.py:33 +#, fuzzy +msgid "The Folder already exists." +msgstr "La cartella esiste già" + +#: forms.py:46 +msgid "New Name" +msgstr "" + +#: forms.py:56 +#, fuzzy +msgid "The File/Folder already exists." +msgstr "Il file/cartella esiste già" + +#: forms.py:92 +#, fuzzy +msgid "File" +msgstr "Filtro" + +#: forms.py:93 +#, fuzzy +msgid "Use Image Generator" +msgstr "Usa il generatore di immagini" + +#: forms.py:102 +msgid "File already exists." +msgstr "Il file esiste già" + +#: forms.py:108 +msgid "Filename is not allowed." +msgstr "Filename non permesso" + +#: forms.py:113 +msgid "File extension is not allowed." +msgstr "Estensione non permessa" + +#: forms.py:118 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Il file eccede il limite" + +#: functions.py:84 +msgid "Home" +msgstr "Home" + +#: functions.py:276 +msgid "Thumbnail creation failed." +msgstr "Errore nella creazione delle thumbnail" + +#: functions.py:331 functions.py:398 +msgid "Image creation failed." +msgstr "Errore nella creazione dell'immagine" + +#: views.py:165 +msgid "FileBrowser" +msgstr "FileBrowser" + +#: views.py:188 +#, fuzzy, python-format +msgid "The Folder %s was successfully created." +msgstr "Cartella %s creata con successo" + +#: views.py:194 +msgid "Permission denied." +msgstr "Permesso negato" + +#: views.py:196 +msgid "Error creating directory." +msgstr "Errore nella creazione della cartella" + +#: views.py:204 views.py:205 templates/filebrowser/index.html:30 +#, fuzzy +msgid "New Folder" +msgstr "Elimina la cartella" + +#: views.py:250 +msgid "Upload successful." +msgstr "Upload effettuato con successo" + +#: views.py:263 templates/filebrowser/index.html:33 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "" + +#: views.py:264 +msgid "Select files to upload" +msgstr "Seleziona i file da uploadare" + +#: views.py:294 +msgid "Thumbnail creation successful." +msgstr "Creazione thumbnail effettuata con successo" + +#: views.py:344 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Eliminazione di %s effettuata con successo" + +#: views.py:356 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Eliminazione di %s effettuata con successo" + +#: views.py:407 +msgid "Error renaming Thumbnail." +msgstr "Errore nella rinominazione delle thumbnail" + +#: views.py:413 +msgid "Renaming was successful." +msgstr "Rinominazione effettuata con successo" + +#: views.py:418 +msgid "Error." +msgstr "Errore" + +#: views.py:427 templates/filebrowser/include/filelisting.html:52 +#, fuzzy +msgid "Rename" +msgstr "Nome del file" + +#: views.py:428 +#, python-format +msgid "Rename \"%s\"" +msgstr "Rinomina \"%s\"" + +#: views.py:465 +msgid "Successfully generated Images." +msgstr "Immagini generate con successo" + +#: templates/filebrowser/index.html:31 +msgid "Make Thumbs" +msgstr "Genera le thumbnail" + +#: templates/filebrowser/index.html:32 +msgid "Generate Images" +msgstr "Genera le immagini" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "" + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Invia" + +#: templates/filebrowser/upload.html:37 +#, fuzzy +msgid "Will use image generator." +msgstr "Usa il generatore di immagini" + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Aiuto" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Accettate" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Dimensione massima" + +#: templates/filebrowser/include/filelisting.html:8 +#, fuzzy +msgid "Select" +msgstr "Seleziona un file" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Seleziona un file" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Genera la thumbnail" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Guarda immagine" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Genera le immagini" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Elimina il file" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Elimina la cartella" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filtro" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Per data" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Qualsiasi data" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Oggi" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Ultimi 7 giorni" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Questo mese" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Quest'anno" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Per tipo" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Tutti" + +#: templates/filebrowser/include/paginator.html:5 +#, fuzzy +msgid "No Items Found." +msgstr "Nessun file trovato" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Nome del file" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Dimensione" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Data" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "" +msgstr[1] "" + +#~ msgid "" +#~ "The directory will automatically be converted to lowercase. Only letters, " +#~ "numbers, underscores and hyphens are allowed." +#~ msgstr "" +#~ "Il nome della cartella verrà sostituito con le lettere minuscole.Sono " +#~ "accettati solo lettere. numeri, underscore e accenti." + +#~ msgid "Make directory" +#~ msgstr "Nuova cartella" + +#~ msgid "Make Directory" +#~ msgstr "Nuova cartella" + +#~ msgid "Multiple Upload" +#~ msgstr "Chargement de fichiers" + +#~ msgid "Rename File" +#~ msgstr "Rinomina il file" + +#~ msgid "No Files" +#~ msgstr "Nessun file" diff --git a/apps/filebrowser/locale/it/LC_MESSAGES/django.mo b/apps/filebrowser/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..90e8cdcb8af29d7de0263732f87a5956e2e81f2d GIT binary patch literal 3542 zcmb7_O^h7H6~`-qgk(bq*!glkoWfz_U3+Jk**L-;gT<~rh7H(j?~bi}DN5~h?M&G{ zU90Yz{UFMXNFXFGhyyo-A^`^uxgkZ0gg{70klZ+MK%BTG7sMgq0KeB=Gqbz011W9I zudA#2)vNz|_4fS(w?3>TdC8L55n&w_*eJ?_%|r)-h~`ReGFy4Pv8{1gF~Mp zCWoNRukx{c|7(8a99<~7Y7qba)aTgwMgt@Ri6#AB$sUpi znvQGgUb^Iy+_@UPPM0Q{-AR|bF-sTUMK5XMpEQYsv>#R|&+*gvjQeF14I1<>(~p#I zsyO^4KF>kXQ<~@^8cSV}Ci;+;>ZlAB(p0+NvWZ&AcJw(DtXiC~v$J7U`SP4iZLs>h zOL-BWeVW)@wXV5THQB=HbJM>6hTkV3|uyw=x*QSrWuzpMa9K|$F1Ov_^BwG$Gr7$S{`7RGKOC%O#-(uv zYzLba&S$u6x5I3qIZ)<bcVd; z!!RRBimuNs4rht(?`-suLmP5tEZ!x_l%F?rVs;8u4(^N3HXpd6j7nlNCl0NYGU+4J z#gXb+!nsAt6~k`V7RCCIn68qd-B3C=dR`Ytb?|yv%B4guwK`lIxBy0<65(EyE~&I5 zjGexnq>`R4_HD;ENqHskPL|3}pSOxs*s&&Oeayp{w7ZnQ!PM>}c06jS82jB5SDoFe zTvwNJe+?aKOGzzeKuagrOxE*LD|W-@p?0C@xumu@>=m_+Z|SK^%bnWU^7{C!CO5yO z=NpYvwZ?p{c}mYWTk|K5H)t%Zt=LT`q1m^taY8pwv>Nlr8%@?dN@#1H++;;+xQQ*j zkdhdLVR5x)X;5NKeNu%1Sqq-RF(lQCgpxYio{WTt$ryH}I3vN#&Gl<@AitjV^p9bK~0iITlT- z2ZlW>gJl&JXa1+fvRGQ3iNj@LK1P_i1J!tRl0B;ko0qdsR?7c`nA}zMwd&EM9JMNj z+>lsiUw=t&I*ZDtu2gAv_xuRpKa6LT3?XM=J<2{2`?997nf zA}Ov{AsN+KO8a=dpV(&WqzsBglDM-x7{-tR*pr8_;8@*a^!{DoGxQPe(x^Q`IdUTPd?Q(6>r#BlmN`ACy_#an(X!y`q;i>W z2xZlkG;mIRA8PuXLy^}apeOV_uB%#!QH|wxPmJyQIvWm&8(Eu;%C9f$t(?}df2Fxp z, 2009. +msgid "" +msgstr "" +"Project-Id-Version: django\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-19 21:24+0000\n" +"PO-Revision-Date: 2009-02-04 14:02+0100\n" +"Last-Translator: Alberto BOTTARINI \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"X-Generator: KBabel 1.11.4\n" + +#: fields.py:27 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Assicurati che il testo abbia al massimo %(max)d caratteri (ora sono %" +"(length)d)" + +#: fields.py:28 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Assicurati che il testo abbia come minimo %(min)d caratteri (ora sono %" +"(length)d)" + +#: fields.py:29 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "L'estensione %(ext)s è vietata. Sono accettate: %(allowed)s" + +#: forms.py:23 +msgid "Name" +msgstr "" + +#: forms.py:23 forms.py:46 +#, fuzzy +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Il nome del file verrà sostituito con le lettere minuscole.Sono accettati " +"solo lettere. numeri, underscore e accenti." + +#: forms.py:30 forms.py:53 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Sono accettati solo lettere. numeri, underscore e accenti." + +#: forms.py:33 +#, fuzzy +msgid "The Folder already exists." +msgstr "La cartella esiste già" + +#: forms.py:46 +msgid "New Name" +msgstr "" + +#: forms.py:56 +#, fuzzy +msgid "The File/Folder already exists." +msgstr "Il file/cartella esiste già" + +#: forms.py:92 +#, fuzzy +msgid "File" +msgstr "Filtro" + +#: forms.py:93 +#, fuzzy +msgid "Use Image Generator" +msgstr "Usa il generatore di immagini" + +#: forms.py:102 +msgid "File already exists." +msgstr "Il file esiste già" + +#: forms.py:108 +msgid "Filename is not allowed." +msgstr "Filename non permesso" + +#: forms.py:113 +msgid "File extension is not allowed." +msgstr "Estensione non permessa" + +#: forms.py:118 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Il file eccede il limite" + +#: functions.py:84 +msgid "Home" +msgstr "Home" + +#: functions.py:276 +msgid "Thumbnail creation failed." +msgstr "Errore nella creazione delle thumbnail" + +#: functions.py:331 functions.py:398 +msgid "Image creation failed." +msgstr "Errore nella creazione dell'immagine" + +#: views.py:165 +msgid "FileBrowser" +msgstr "FileBrowser" + +#: views.py:188 +#, fuzzy, python-format +msgid "The Folder %s was successfully created." +msgstr "Cartella %s creata con successo" + +#: views.py:194 +msgid "Permission denied." +msgstr "Permesso negato" + +#: views.py:196 +msgid "Error creating directory." +msgstr "Errore nella creazione della cartella" + +#: views.py:204 views.py:205 templates/filebrowser/index.html:30 +#, fuzzy +msgid "New Folder" +msgstr "Elimina la cartella" + +#: views.py:250 +msgid "Upload successful." +msgstr "Upload effettuato con successo" + +#: views.py:263 templates/filebrowser/index.html:33 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "" + +#: views.py:264 +msgid "Select files to upload" +msgstr "Seleziona i file da uploadare" + +#: views.py:294 +msgid "Thumbnail creation successful." +msgstr "Creazione thumbnail effettuata con successo" + +#: views.py:344 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Eliminazione di %s effettuata con successo" + +#: views.py:356 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Eliminazione di %s effettuata con successo" + +#: views.py:407 +msgid "Error renaming Thumbnail." +msgstr "Errore nella rinominazione delle thumbnail" + +#: views.py:413 +msgid "Renaming was successful." +msgstr "Rinominazione effettuata con successo" + +#: views.py:418 +msgid "Error." +msgstr "Errore" + +#: views.py:427 templates/filebrowser/include/filelisting.html:52 +#, fuzzy +msgid "Rename" +msgstr "Nome del file" + +#: views.py:428 +#, python-format +msgid "Rename \"%s\"" +msgstr "Rinomina \"%s\"" + +#: views.py:465 +msgid "Successfully generated Images." +msgstr "Immagini generate con successo" + +#: templates/filebrowser/index.html:31 +msgid "Make Thumbs" +msgstr "Genera le thumbnail" + +#: templates/filebrowser/index.html:32 +msgid "Generate Images" +msgstr "Genera le immagini" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "" + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Invia" + +#: templates/filebrowser/upload.html:37 +#, fuzzy +msgid "Will use image generator." +msgstr "Usa il generatore di immagini" + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Aiuto" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Accettate" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Dimensione massima" + +#: templates/filebrowser/include/filelisting.html:8 +#, fuzzy +msgid "Select" +msgstr "Seleziona un file" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Seleziona un file" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Genera la thumbnail" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Guarda immagine" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Genera le immagini" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Elimina il file" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Elimina la cartella" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filtro" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Per data" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Qualsiasi data" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Oggi" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Ultimi 7 giorni" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Questo mese" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Quest'anno" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Per tipo" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Tutti" + +#: templates/filebrowser/include/paginator.html:5 +#, fuzzy +msgid "No Items Found." +msgstr "Nessun file trovato" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Nome del file" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Dimensione" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Data" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "" +msgstr[1] "" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "" +msgstr[1] "" + +#~ msgid "" +#~ "The directory will automatically be converted to lowercase. Only letters, " +#~ "numbers, underscores and hyphens are allowed." +#~ msgstr "" +#~ "Il nome della cartella verrà sostituito con le lettere minuscole.Sono " +#~ "accettati solo lettere. numeri, underscore e accenti." + +#~ msgid "Make directory" +#~ msgstr "Nuova cartella" + +#~ msgid "Make Directory" +#~ msgstr "Nuova cartella" + +#~ msgid "Multiple Upload" +#~ msgstr "Chargement de fichiers" + +#~ msgid "Rename File" +#~ msgstr "Rinomina il file" + +#~ msgid "No Files" +#~ msgstr "Nessun file" diff --git a/apps/filebrowser/locale/nl/.svn/all-wcprops b/apps/filebrowser/locale/nl/.svn/all-wcprops new file mode 100644 index 00000000..62ee80a9 --- /dev/null +++ b/apps/filebrowser/locale/nl/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/nl +END diff --git a/apps/filebrowser/locale/nl/.svn/entries b/apps/filebrowser/locale/nl/.svn/entries new file mode 100644 index 00000000..82165193 --- /dev/null +++ b/apps/filebrowser/locale/nl/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/nl +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..fdf0eadd --- /dev/null +++ b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/nl/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/nl/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/nl/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..f0c7a649 --- /dev/null +++ b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/nl/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:49.000000Z +52c296a507227e52340035589cc4b100 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +8019 + +django.mo +file + + + + +2009-11-05T20:58:49.000000Z +fb1459c89de85393460937ff2f02a356 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +5152 + diff --git a/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..8a0bb8f32b9bec6d44bd2cec94afadb12d94feb0 GIT binary patch literal 5152 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 U#kp7{slML9c99mdgF#RI2gm$lWB>pF literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/text-base/django.po.svn-base b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/text-base/django.po.svn-base new file mode 100644 index 00000000..35032548 --- /dev/null +++ b/apps/filebrowser/locale/nl/LC_MESSAGES/.svn/text-base/django.po.svn-base @@ -0,0 +1,319 @@ +# Dutch translation for django-filebrowser. +# Copyright (C) 2009 Patrick Kranzlmueller +# This file is distributed under the same license as the django-filebrowser package. +# Joost Cassee , 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-16 13:51+0100\n" +"PO-Revision-Date: 2009-02-20 22:53+0100\n" +"Last-Translator: Joost Cassee \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fields.py:27 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Dit veld mag maximaal %(max)d karakters bevatten (de huidige lengte is " +"%(length)d)." + +#: fields.py:28 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Dit veld moet minstens %(min)d karakters bevatten (de huidige lengte is " +"%(length)d)." + +#: fields.py:29 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "Extensie %(ext)s is niet toegestaand. Toegestaan zijn: %(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Naam" + +#: forms.py:23 forms.py:46 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"De naam wordt automatisch geconverteerd naar kleine letters. Alleen letters, " +"nummers, liggende streepjes en verbindingstreepjes zijn toegestaan." + +#: forms.py:30 forms.py:53 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "" +"Alleen letters, nummers, liggende streepjes en verbindingstreepjes zijn " +"toegestaan." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Deze map bestaat reeds." + +#: forms.py:46 +msgid "New Name" +msgstr "Nieuwe naam" + +#: forms.py:56 +msgid "The File/Folder already exists." +msgstr "Een map of bestand met deze naam bestaat reeds." + +#: forms.py:92 +msgid "File" +msgstr "Bestand" + +#: forms.py:93 +msgid "Use Image Generator" +msgstr "Maak afbeeldingsversies" + +#: forms.py:102 +msgid "File already exists." +msgstr "Bestand bestaat reeds." + +#: forms.py:108 +msgid "Filename is not allowed." +msgstr "Bestandsnaam is niet toegestaan." + +#: forms.py:113 +msgid "File extension is not allowed." +msgstr "Bestandsextensie is niet toegestaand" + +#: forms.py:118 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Het bestand overschreidt de maximale upload grootte." + +#: functions.py:75 +msgid "Home" +msgstr "Start" + +#: functions.py:267 +msgid "Thumbnail creation failed." +msgstr "Fout bij het aanmaken van de voorbeeldafbeeldingen." + +#: functions.py:316 functions.py:377 +msgid "Image creation failed." +msgstr "Fout bij het aanmaken van de afbeeldingsversies." + +#: views.py:156 +msgid "FileBrowser" +msgstr "FileBrowser" + +#: views.py:179 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "De map %s is aangemaakt." + +#: views.py:185 +msgid "Permission denied." +msgstr "Geen toestemming." + +#: views.py:187 +msgid "Error creating directory." +msgstr "Fout bij het aanmaken van de map." + +#: views.py:195 views.py:196 templates/filebrowser/index.html:30 +msgid "New Folder" +msgstr "Nieuwe map" + +#: views.py:235 +msgid "Upload successful." +msgstr "Upload geslaagd." + +#: views.py:248 templates/filebrowser/index.html:33 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Uploaden" + +#: views.py:249 +msgid "Select files to upload" +msgstr "Selecteer bestanden voor upload" + +#: views.py:279 +msgid "Thumbnail creation successful." +msgstr "Voorbeeldafbeeldingen aangemaakt." + +#: views.py:329 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Bestand %s verwijderd." + +#: views.py:341 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Map %s verwijderd." + +#: views.py:392 +msgid "Error renaming Thumbnail." +msgstr "Fout bij het hernoemen van de voorbeeldafbeelding." + +#: views.py:398 +msgid "Renaming was successful." +msgstr "Hernoemen geslaagd." + +#: views.py:403 +msgid "Error." +msgstr "Fout." + +#: views.py:412 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Hernoemen" + +#: views.py:413 +#, python-format +msgid "Rename \"%s\"" +msgstr "Hernoem \"%s\"" + +#: views.py:450 +msgid "Successfully generated Images." +msgstr "Afbeeldingsversies aangemaakt." + +#: templates/filebrowser/index.html:31 +msgid "Make Thumbs" +msgstr "Voorbeeldafbeeldingen aanmaken" + +#: templates/filebrowser/index.html:32 +msgid "Generate Images" +msgstr "Afbeeldingsversies aanmaken" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Corrigeer onderstaande fouten." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "OK" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Afbeeldingsversies zullen worden aangemaakt." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Help" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Toegestaan" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Max. bestandsgrootte" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Selecteren" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Selecteer bestand" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Maak voorbeeldafbeelding" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Afbeelding tonen" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Afbeeldingsversies aanmaken" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Bestand verwijderen" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Verwijder map" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filter" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Op datum" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Alle" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Vandaag" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Afgelopen 7 dagen" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Afgelopen 30 dagen" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Dit jaar" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Op type" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Alle" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Geen objecten gevonden" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s object" +msgstr[1] "(counter)s objecten" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Geen objecten." + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Bestandsnaam" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Grootte" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Datum" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Ga" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s object gevonden" +msgstr[1] "%(counter)s objecten gevonden" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "Totaal %(counter)s object" +msgstr[1] "Totaal %(counter)s objecten" diff --git a/apps/filebrowser/locale/nl/LC_MESSAGES/django.mo b/apps/filebrowser/locale/nl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..8a0bb8f32b9bec6d44bd2cec94afadb12d94feb0 GIT binary patch literal 5152 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 U#kp7{slML9c99mdgF#RI2gm$lWB>pF literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/nl/LC_MESSAGES/django.po b/apps/filebrowser/locale/nl/LC_MESSAGES/django.po new file mode 100644 index 00000000..35032548 --- /dev/null +++ b/apps/filebrowser/locale/nl/LC_MESSAGES/django.po @@ -0,0 +1,319 @@ +# Dutch translation for django-filebrowser. +# Copyright (C) 2009 Patrick Kranzlmueller +# This file is distributed under the same license as the django-filebrowser package. +# Joost Cassee , 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-02-16 13:51+0100\n" +"PO-Revision-Date: 2009-02-20 22:53+0100\n" +"Last-Translator: Joost Cassee \n" +"Language-Team: Dutch \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fields.py:27 +#, python-format +msgid "Ensure this value has at most %(max)d characters (it has %(length)d)." +msgstr "" +"Dit veld mag maximaal %(max)d karakters bevatten (de huidige lengte is " +"%(length)d)." + +#: fields.py:28 +#, python-format +msgid "Ensure this value has at least %(min)d characters (it has %(length)d)." +msgstr "" +"Dit veld moet minstens %(min)d karakters bevatten (de huidige lengte is " +"%(length)d)." + +#: fields.py:29 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "Extensie %(ext)s is niet toegestaand. Toegestaan zijn: %(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Naam" + +#: forms.py:23 forms.py:46 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"De naam wordt automatisch geconverteerd naar kleine letters. Alleen letters, " +"nummers, liggende streepjes en verbindingstreepjes zijn toegestaan." + +#: forms.py:30 forms.py:53 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "" +"Alleen letters, nummers, liggende streepjes en verbindingstreepjes zijn " +"toegestaan." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Deze map bestaat reeds." + +#: forms.py:46 +msgid "New Name" +msgstr "Nieuwe naam" + +#: forms.py:56 +msgid "The File/Folder already exists." +msgstr "Een map of bestand met deze naam bestaat reeds." + +#: forms.py:92 +msgid "File" +msgstr "Bestand" + +#: forms.py:93 +msgid "Use Image Generator" +msgstr "Maak afbeeldingsversies" + +#: forms.py:102 +msgid "File already exists." +msgstr "Bestand bestaat reeds." + +#: forms.py:108 +msgid "Filename is not allowed." +msgstr "Bestandsnaam is niet toegestaan." + +#: forms.py:113 +msgid "File extension is not allowed." +msgstr "Bestandsextensie is niet toegestaand" + +#: forms.py:118 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Het bestand overschreidt de maximale upload grootte." + +#: functions.py:75 +msgid "Home" +msgstr "Start" + +#: functions.py:267 +msgid "Thumbnail creation failed." +msgstr "Fout bij het aanmaken van de voorbeeldafbeeldingen." + +#: functions.py:316 functions.py:377 +msgid "Image creation failed." +msgstr "Fout bij het aanmaken van de afbeeldingsversies." + +#: views.py:156 +msgid "FileBrowser" +msgstr "FileBrowser" + +#: views.py:179 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "De map %s is aangemaakt." + +#: views.py:185 +msgid "Permission denied." +msgstr "Geen toestemming." + +#: views.py:187 +msgid "Error creating directory." +msgstr "Fout bij het aanmaken van de map." + +#: views.py:195 views.py:196 templates/filebrowser/index.html:30 +msgid "New Folder" +msgstr "Nieuwe map" + +#: views.py:235 +msgid "Upload successful." +msgstr "Upload geslaagd." + +#: views.py:248 templates/filebrowser/index.html:33 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Uploaden" + +#: views.py:249 +msgid "Select files to upload" +msgstr "Selecteer bestanden voor upload" + +#: views.py:279 +msgid "Thumbnail creation successful." +msgstr "Voorbeeldafbeeldingen aangemaakt." + +#: views.py:329 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Bestand %s verwijderd." + +#: views.py:341 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Map %s verwijderd." + +#: views.py:392 +msgid "Error renaming Thumbnail." +msgstr "Fout bij het hernoemen van de voorbeeldafbeelding." + +#: views.py:398 +msgid "Renaming was successful." +msgstr "Hernoemen geslaagd." + +#: views.py:403 +msgid "Error." +msgstr "Fout." + +#: views.py:412 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Hernoemen" + +#: views.py:413 +#, python-format +msgid "Rename \"%s\"" +msgstr "Hernoem \"%s\"" + +#: views.py:450 +msgid "Successfully generated Images." +msgstr "Afbeeldingsversies aangemaakt." + +#: templates/filebrowser/index.html:31 +msgid "Make Thumbs" +msgstr "Voorbeeldafbeeldingen aanmaken" + +#: templates/filebrowser/index.html:32 +msgid "Generate Images" +msgstr "Afbeeldingsversies aanmaken" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Corrigeer onderstaande fouten." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "OK" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Afbeeldingsversies zullen worden aangemaakt." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Help" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Toegestaan" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Max. bestandsgrootte" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Selecteren" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Selecteer bestand" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Maak voorbeeldafbeelding" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Afbeelding tonen" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Afbeeldingsversies aanmaken" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Bestand verwijderen" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Verwijder map" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filter" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Op datum" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Alle" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Vandaag" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Afgelopen 7 dagen" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Afgelopen 30 dagen" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Dit jaar" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Op type" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Alle" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Geen objecten gevonden" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s object" +msgstr[1] "(counter)s objecten" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Geen objecten." + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Bestandsnaam" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Grootte" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Datum" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Ga" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s object gevonden" +msgstr[1] "%(counter)s objecten gevonden" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "Totaal %(counter)s object" +msgstr[1] "Totaal %(counter)s objecten" diff --git a/apps/filebrowser/locale/ru/.svn/all-wcprops b/apps/filebrowser/locale/ru/.svn/all-wcprops new file mode 100644 index 00000000..e21d1ff6 --- /dev/null +++ b/apps/filebrowser/locale/ru/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/ru +END diff --git a/apps/filebrowser/locale/ru/.svn/entries b/apps/filebrowser/locale/ru/.svn/entries new file mode 100644 index 00000000..ad32cd1d --- /dev/null +++ b/apps/filebrowser/locale/ru/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/ru +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..0838209e --- /dev/null +++ b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/ru/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/ru/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/ru/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..9f54aec9 --- /dev/null +++ b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/ru/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:49.000000Z +d0cfe787c9e40fd48fb4dc137ca920b4 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +9016 + +django.mo +file + + + + +2009-11-05T20:58:49.000000Z +a80034152531c66371273a4aad453a9c +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +6095 + diff --git a/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..2f0d22dbe3ae58c4986fde73dad1961ca1b0557e GIT binary patch literal 6095 zcmchZTWlOx8ONukw2h%ODTUs+98v;Fo88z+o3w74#7P{-5Zl3V0*XXnvwQ3;tarl9 zx``_u;<%JnaT_Iqwi3Nih=h2kxQGW32&D4+pP5}> z<5nOs^6_uZ?K|K3ZnJOPbj{a2o)+2%XkAx(UJedj!#|$o*LvPcxB_P3Jt_0>9rVw_ z>)=!HdiXqC3%>*Jg1<=T-%NQOizWI-_%3)eya5_`3(UgX;I5RPhivs8hFjnO)c)_m zo8b@Phv2W_yWu~fmTj$GD$>ccv^uro4%iKZ3IB>rj4s1M0lL!@J>fjJ*bKh7ZDSsQu^QXW z2Cjogpz6glQ1+OFlK&H^bAJoB!xcC&1H0fJcoJR(tB+zw`}C})HPaNYn`w8_cG7fT z=_tRWrniYEo9dCTWlz~a=gL+sv>h}|<8%eiCt~$cOei08hb`%#^p!8GkL;19$$r<- zlplIzkFD-4`Nx%>**i$~rCx)g+cD~QOCI3`U z?x8iz8YAsoJ}L&TPRA8r57HC|O*G|&9@U%bBVVjnXVvPw-&d~KU`=RRE4FvRK)7JU zbhD$dU^u+OxT*M+TxpTz$#_$#$$^rCNg)i!mGYJ(caEtm`hYk4>Rq# zUYqrrgTN0=KCrn;vD{+{#lYq(e$Zc?32ZsntC_ANeZ7avxne1u0mm!092WhuS+&|8 zuV8g8{k6I+MDaK=70@! z*>K)Cec#({OGmxkK1U~O6MJHrZVYA%S+6bkMLT1{S>2HL<5?p+NHI@d@!IXN)JyI) z8S`CGD^>{Etk<6Qv!1guv4qayT2sbN?uAt_?+2D^mJ8-c|Is7(%jAf|niKZs!iw2Y zZwk5o&~u$l>AMYji=p#w!Iq1Zka<#(&zl*$uHi%zQesmme(W@Ts^6e3W<|Y zpbNER&2>pmEeI|*?{dPd3g@YWK<7E#cGkN2@u?~K#2hP@N+#D=@q5XhJVxy|hh?Dh zLpG?`f-azH5ah92nhpP@pLAp`Hy2erDJQAovfo>+BCYyuF5seRVy9JLR@5#sHQRq( zK4Ie}sgq)kfA)Y5DYG+9?9&(z!>+5#-e6Pv~qk=b@3N>%t(NeBhe!%39Ivv_=gG_Td z?-$6aMswfcVx?}*CnT)6uYrCgUfgm)SIC z;;%;Itew=<+4z)+2cr>|vjuaUTFZQVGMYB=SE6ZN#%b&s^M2I9pC4>IIJ1c{)1jNs;JsJm^JVbHl@4^zFGCrMu^k"{&vC<1 zOn{ttz)75P20`>xe7bgr^){r?9SA+wTm2 z9)At;cF{%0InKn!_>sH3hyWKIE;TrGo|m=ayz`i1L$1XxE(nGUYcJ4!*&T>&l29R; zYLPUm?NWP~O+=&YFiZ+78A;%!<8%?}(FEpsJ1W1`rJhBFi}66#INefXdy(^-luRyp zdM2%$>KauMN}T4LI=?cqcbp5l0;oB>q_j`HBpYamU`6(b6F15Rl_l&r$UN?)iapBU zBg!(~2XvfUI!VF9w$st5jzD!Kcr>ms7$bsI7!|=(Al~$q7eJq+-Y#F5kReAB^MP*g-dI1CTWnvvaVpZ>5LOrHS&yk*bySn%aLa~p8 zCN;@LnZkwQK~lPcJ0(|eC&knN#}ZK0PXXUn1(!QH`57>d`}G}|Q0gem@jZ?_@&6C< z>b0GX&{9Q3n$9ZXiT!5gFvCl_vTn~Wl!*GYbPbwU583}Lcc1eeoZ}Ja?-!k2kj_t% z)9x2cR1GVa>T`!&4(s#ie#ekC?hf-hTl5MF3j> literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/text-base/django.po.svn-base b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/text-base/django.po.svn-base new file mode 100644 index 00000000..6e755066 --- /dev/null +++ b/apps/filebrowser/locale/ru/LC_MESSAGES/.svn/text-base/django.po.svn-base @@ -0,0 +1,317 @@ +# Russian translation +# This file is distributed under the same license as the django-filebrowser package. +# Ivan Gromov , 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: summer.is.gone@gmail.com\n" +"POT-Creation-Date: 2009-05-19 03:17+0600\n" +"PO-Revision-Date: 2009-05-19 03:52\n" +"Last-Translator: IVAN GROMOV \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "Расширение %(ext)s запрещено. Разрешено только %(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Имя" + +#: forms.py:23 forms.py:49 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Имя будет автоматически переведено в нижний регистр" +"Допускается вводить буквы, цифры, символы подчерка и дефиса." + +#: forms.py:30 forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Допускается вводить буквы, цифры, символы подчерка и дефиса." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Папка уже существует." + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "Недопустимое имя папки." + +#: forms.py:49 +msgid "New Name" +msgstr "Новое имя" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "Файл/папка уже существуют." + +#: forms.py:95 +msgid "File" +msgstr "Файл" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "Использовать генератор изображений" + +#: forms.py:105 +msgid "File already exists." +msgstr "Файл уже существует." + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "Недопустимое имя файла." + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "Недопустимое расширение файла." + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Размер файла превышает допустимый размер загрузки." + +#: functions.py:84 +msgid "Home" +msgstr "Начало" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "Ошибка создания миниатюр." + +#: functions.py:334 functions.py:389 +msgid "Image creation failed." +msgstr "Ошибка создания изображений." + +#: views.py:174 +msgid "FileBrowser" +msgstr "Файловый менеджер" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "Папка %s успешно создана." + +#: views.py:204 +msgid "Permission denied." +msgstr "Доступ запрещен." + +#: views.py:206 +msgid "Error creating directory." +msgstr "Ошибка создания папки." + +#: views.py:214 views.py:215 templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "Новая папка" + +#: views.py:260 +msgid "Upload successful." +msgstr "Загрузка завершена успешно." + +#: views.py:273 templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Загрузить" + +#: views.py:274 +msgid "Select files to upload" +msgstr "Выберите файлы для загрузки" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "Миниатюры созданы." + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Файл %s удален." + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Папка %s удалена." + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "Ошибка переименования миниатюры." + +#: views.py:423 +msgid "Renaming was successful." +msgstr "Переименовано." + +#: views.py:428 +msgid "Error." +msgstr "Ошибка." + +#: views.py:437 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Переименовать" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "Переименовать \"%s\"" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "Изображения созданы." + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +msgid "File-Browser" +msgstr "Файловый менеджер" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "Создать миниатюры" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "Сгенерировать изображения" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Пожалуйста, исправьте ошибки." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Отправить" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Будет использован генератор изображений." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Справка" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Разрешено" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Макс. размер" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Выберите" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Выберите файл" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Создать миниатюры" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Просмотреть изображение" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Создать миниатюры" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "Вы уверены, что хотите удалить этот файл?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Удалить файл" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "Вы уверены, что хотите удалить эту папку?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Удалить папку" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Фильтр" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "По дате" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "За любое число" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Сегодня" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Последние 7 дней" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Последние 30 дней" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Этот год" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "По типу" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Все" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Не найдено" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s элемент" +msgstr[1] "Элементов: %(counter)s" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Ничего нет" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Имя файла" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Размер" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Дата" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Вперед" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s элемент найден" +msgstr[1] "%(counter)s элементов найдено" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "%(counter)s элемент всего" +msgstr[1] "%(counter)s элементов всего" diff --git a/apps/filebrowser/locale/ru/LC_MESSAGES/django.mo b/apps/filebrowser/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..2f0d22dbe3ae58c4986fde73dad1961ca1b0557e GIT binary patch literal 6095 zcmchZTWlOx8ONukw2h%ODTUs+98v;Fo88z+o3w74#7P{-5Zl3V0*XXnvwQ3;tarl9 zx``_u;<%JnaT_Iqwi3Nih=h2kxQGW32&D4+pP5}> z<5nOs^6_uZ?K|K3ZnJOPbj{a2o)+2%XkAx(UJedj!#|$o*LvPcxB_P3Jt_0>9rVw_ z>)=!HdiXqC3%>*Jg1<=T-%NQOizWI-_%3)eya5_`3(UgX;I5RPhivs8hFjnO)c)_m zo8b@Phv2W_yWu~fmTj$GD$>ccv^uro4%iKZ3IB>rj4s1M0lL!@J>fjJ*bKh7ZDSsQu^QXW z2Cjogpz6glQ1+OFlK&H^bAJoB!xcC&1H0fJcoJR(tB+zw`}C})HPaNYn`w8_cG7fT z=_tRWrniYEo9dCTWlz~a=gL+sv>h}|<8%eiCt~$cOei08hb`%#^p!8GkL;19$$r<- zlplIzkFD-4`Nx%>**i$~rCx)g+cD~QOCI3`U z?x8iz8YAsoJ}L&TPRA8r57HC|O*G|&9@U%bBVVjnXVvPw-&d~KU`=RRE4FvRK)7JU zbhD$dU^u+OxT*M+TxpTz$#_$#$$^rCNg)i!mGYJ(caEtm`hYk4>Rq# zUYqrrgTN0=KCrn;vD{+{#lYq(e$Zc?32ZsntC_ANeZ7avxne1u0mm!092WhuS+&|8 zuV8g8{k6I+MDaK=70@! z*>K)Cec#({OGmxkK1U~O6MJHrZVYA%S+6bkMLT1{S>2HL<5?p+NHI@d@!IXN)JyI) z8S`CGD^>{Etk<6Qv!1guv4qayT2sbN?uAt_?+2D^mJ8-c|Is7(%jAf|niKZs!iw2Y zZwk5o&~u$l>AMYji=p#w!Iq1Zka<#(&zl*$uHi%zQesmme(W@Ts^6e3W<|Y zpbNER&2>pmEeI|*?{dPd3g@YWK<7E#cGkN2@u?~K#2hP@N+#D=@q5XhJVxy|hh?Dh zLpG?`f-azH5ah92nhpP@pLAp`Hy2erDJQAovfo>+BCYyuF5seRVy9JLR@5#sHQRq( zK4Ie}sgq)kfA)Y5DYG+9?9&(z!>+5#-e6Pv~qk=b@3N>%t(NeBhe!%39Ivv_=gG_Td z?-$6aMswfcVx?}*CnT)6uYrCgUfgm)SIC z;;%;Itew=<+4z)+2cr>|vjuaUTFZQVGMYB=SE6ZN#%b&s^M2I9pC4>IIJ1c{)1jNs;JsJm^JVbHl@4^zFGCrMu^k"{&vC<1 zOn{ttz)75P20`>xe7bgr^){r?9SA+wTm2 z9)At;cF{%0InKn!_>sH3hyWKIE;TrGo|m=ayz`i1L$1XxE(nGUYcJ4!*&T>&l29R; zYLPUm?NWP~O+=&YFiZ+78A;%!<8%?}(FEpsJ1W1`rJhBFi}66#INefXdy(^-luRyp zdM2%$>KauMN}T4LI=?cqcbp5l0;oB>q_j`HBpYamU`6(b6F15Rl_l&r$UN?)iapBU zBg!(~2XvfUI!VF9w$st5jzD!Kcr>ms7$bsI7!|=(Al~$q7eJq+-Y#F5kReAB^MP*g-dI1CTWnvvaVpZ>5LOrHS&yk*bySn%aLa~p8 zCN;@LnZkwQK~lPcJ0(|eC&knN#}ZK0PXXUn1(!QH`57>d`}G}|Q0gem@jZ?_@&6C< z>b0GX&{9Q3n$9ZXiT!5gFvCl_vTn~Wl!*GYbPbwU583}Lcc1eeoZ}Ja?-!k2kj_t% z)9x2cR1GVa>T`!&4(s#ie#ekC?hf-hTl5MF3j> literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/ru/LC_MESSAGES/django.po b/apps/filebrowser/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 00000000..6e755066 --- /dev/null +++ b/apps/filebrowser/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,317 @@ +# Russian translation +# This file is distributed under the same license as the django-filebrowser package. +# Ivan Gromov , 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: summer.is.gone@gmail.com\n" +"POT-Creation-Date: 2009-05-19 03:17+0600\n" +"PO-Revision-Date: 2009-05-19 03:52\n" +"Last-Translator: IVAN GROMOV \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "Расширение %(ext)s запрещено. Разрешено только %(allowed)s." + +#: forms.py:23 +msgid "Name" +msgstr "Имя" + +#: forms.py:23 forms.py:49 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Имя будет автоматически переведено в нижний регистр" +"Допускается вводить буквы, цифры, символы подчерка и дефиса." + +#: forms.py:30 forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Допускается вводить буквы, цифры, символы подчерка и дефиса." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Папка уже существует." + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "Недопустимое имя папки." + +#: forms.py:49 +msgid "New Name" +msgstr "Новое имя" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "Файл/папка уже существуют." + +#: forms.py:95 +msgid "File" +msgstr "Файл" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "Использовать генератор изображений" + +#: forms.py:105 +msgid "File already exists." +msgstr "Файл уже существует." + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "Недопустимое имя файла." + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "Недопустимое расширение файла." + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Размер файла превышает допустимый размер загрузки." + +#: functions.py:84 +msgid "Home" +msgstr "Начало" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "Ошибка создания миниатюр." + +#: functions.py:334 functions.py:389 +msgid "Image creation failed." +msgstr "Ошибка создания изображений." + +#: views.py:174 +msgid "FileBrowser" +msgstr "Файловый менеджер" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "Папка %s успешно создана." + +#: views.py:204 +msgid "Permission denied." +msgstr "Доступ запрещен." + +#: views.py:206 +msgid "Error creating directory." +msgstr "Ошибка создания папки." + +#: views.py:214 views.py:215 templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "Новая папка" + +#: views.py:260 +msgid "Upload successful." +msgstr "Загрузка завершена успешно." + +#: views.py:273 templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Загрузить" + +#: views.py:274 +msgid "Select files to upload" +msgstr "Выберите файлы для загрузки" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "Миниатюры созданы." + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Файл %s удален." + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Папка %s удалена." + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "Ошибка переименования миниатюры." + +#: views.py:423 +msgid "Renaming was successful." +msgstr "Переименовано." + +#: views.py:428 +msgid "Error." +msgstr "Ошибка." + +#: views.py:437 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Переименовать" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "Переименовать \"%s\"" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "Изображения созданы." + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +msgid "File-Browser" +msgstr "Файловый менеджер" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "Создать миниатюры" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "Сгенерировать изображения" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Пожалуйста, исправьте ошибки." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Отправить" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Будет использован генератор изображений." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Справка" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Разрешено" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Макс. размер" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Выберите" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Выберите файл" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Создать миниатюры" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Просмотреть изображение" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Создать миниатюры" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "Вы уверены, что хотите удалить этот файл?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Удалить файл" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "Вы уверены, что хотите удалить эту папку?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Удалить папку" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Фильтр" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "По дате" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "За любое число" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Сегодня" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Последние 7 дней" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Последние 30 дней" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Этот год" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "По типу" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Все" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Не найдено" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s элемент" +msgstr[1] "Элементов: %(counter)s" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Ничего нет" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Имя файла" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Размер" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Дата" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Вперед" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s элемент найден" +msgstr[1] "%(counter)s элементов найдено" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "%(counter)s элемент всего" +msgstr[1] "%(counter)s элементов всего" diff --git a/apps/filebrowser/locale/sr/.svn/all-wcprops b/apps/filebrowser/locale/sr/.svn/all-wcprops new file mode 100644 index 00000000..acc97e80 --- /dev/null +++ b/apps/filebrowser/locale/sr/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 62 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/sr +END diff --git a/apps/filebrowser/locale/sr/.svn/entries b/apps/filebrowser/locale/sr/.svn/entries new file mode 100644 index 00000000..7b603b68 --- /dev/null +++ b/apps/filebrowser/locale/sr/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/sr +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..021c7e93 --- /dev/null +++ b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/sr/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/sr/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 84 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/sr/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..ac937c3c --- /dev/null +++ b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/sr/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:49.000000Z +3256737d3d82d99d5accd71d52425a3a +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +9526 + +django.mo +file + + + + +2009-11-05T20:58:49.000000Z +2c02d4502b1dffd3b593885330766067 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +6582 + diff --git a/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..c5b4dae6d3aa56c13490e2f2cc065443290dcb23 GIT binary patch literal 6582 zcmcJRYm8iF8OL8N7g-c3-VkrEK&3!ux^01$rBJr_LT|Q9O|)K4XHK_MX3ts9nWbIg zhwTL@35f}pSU^B7i6(v-=#ES%Of@E`iQ<_LnwY3D1QJa|6Qjn&g!ucv=bhcz-B~0W zPWJ5YyqEJl&->iY{QlyzA2D28xj)7IjrSQ7!rz|FKd#Ypjkyfo35)Py&mY4DjQmX+pyYiYegaNi}{>%jbE`j&MMerFYc|Z01C6xYO!wzBd;rSN--8#y zH{dPsAMnfYdL||3LHHp24ph8WphSLJ4OhdxP;wuIABE3*{si_j{vF%_FT{9`Xuj%s z2b4b#L)r5zl)Y!5?0wbGxBd7ncs=v~f_iT$PAI}JL5=T+dT$cSjx&%y^DF-8y+1+e zu@uKaxEd;6--Vxsuln&Da4F*j2vK}iz{}w_cn!Q0VuE=BN?skVfIo-0$R(Tnw2-9J zc`t?6!YkntxEHR3_e0735qu543D>|$oGJZ(hqC_)l6ntZ1$V)3LY?zD%dF>K$F10H;+AYwx)=d-EBDQM;M&Z+j9d2UQa+N_?$TM+A90hb z1NmSJx6Y`GG<12PXVr%;#Yva^p&lx~>kRVKVs6<@`*PQE{@=u{T2)+Bi@4SdaI61x zF6D~)z~?#>Q2ry`%m(gN-14(7`9ZPMwUv7Tx8?3!s^1&@z{QYf%D`Rn*LbcNEp@3h9rp-TS~&9R*8mfxsrsXTAYj*{Ynx>!H8Cd4vdZLi-JnkuYkj~ zFiIDokioU)j#&5zC3Qj!eR5NDSD4hovW}s4k(BVBFOdH+T2eVxu00LU`;9kTUi@#nsI>7g zNI0mk^|`s*W2rleLovx?@@n#!5#`&-nY@mCS;dLjQz66ig88DnH^!cdt2H0WI3eGX z_#pXF*itU|3LLOI2iM&;xM_pkvtifnEjzaN?FvWZq*mCL4p+*BwPV9+VJIH3eLHsy z71p^17e@v4%K^K*zyF3p|8<4_>+SMo1J|y&rk@!$7IuYqRg~vF_AMV+wkqGZl{zU5 zB|(%{1A66vy)}s9)NUH99wez(AJpg;_rF+)ib;BN-_{@+9;15{hQeTE!0rx{eU%{U z+qPxfhUw!hEB5!Ti}{>INT1Z{mL^s;ffgnl4+D*3)Z7i&s-X|;ehe=^W zREo>g)qq{KuTtxq@x^K%X&=q%*$dfAS$)2R=6nlvo4u0N+Ye?9alT#6?p>|bJLXG4Bslb!4`oI@X%$=T^1^HXOq*)#53iYG5OvlnI@ zQOCnmNNLEF8BQWK5vwvGy^^(V)S?Q35D8 zpL8=QOMzQD_-9X3A#tT<#p+BBQhsi)E9` z6r|w{j*VX1`9DB!55XxQ}b5y)3Z->=Y>lr3P0;L+e57{ zPn4={QYGdb%8w_}nwogdsGn%QYQ;w|sW=ZBE>issRFLir*e zPWW)T7LaEIr5?$yB zfz`oV97rCOBh;Fa?rO^CHD_?8lxKAhv$feN(!pnJ&KgcKY2z|UxxvFck?0Dm9(`fV zIA>=TMZR5Vr|S>+%LTSmaouT{S1`+Mb)I_{m^u*#$ir$pE-oJ292cJP}ZZ`o|TjQ#z09m#Y7#81-s&^REop*C(D_l)gUk zZIeAKZBClv;1qX+xmfssIp^y`QOESWOt38fM$DL+s?m2^b6LVc)NGwf*NEFk=2X1N zzC{`H#m}Wt(W*|9bt=dA#ZFbQNU`Ifu4<;5nCxnlOS_A3-e&pSbfM}uFSUR!Uwj=k zc&rntyi*d5?)UQY;e>eu;(y+VWxdN!BzAq7807J#y%KkYLBC3lkb$J3GKP=1^0CE% zTz_)A_=%ycbFz2?+4Zgu3$J@+?^!WCjAiP@v%bvJZsXH6m19Jw<$or*$T*j|FT}gv z|D+DDAoD}UeHh5Y?xsA|Kf62JJAUTp?XUl**cn-)IB;5i{3%>Yc2%y={Hd~W?W56M22mH2MO6wQAC9|r$E literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/text-base/django.po.svn-base b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/text-base/django.po.svn-base new file mode 100644 index 00000000..cd275413 --- /dev/null +++ b/apps/filebrowser/locale/sr/LC_MESSAGES/.svn/text-base/django.po.svn-base @@ -0,0 +1,330 @@ +# Copyright (C) 2009 Janos Guljas +# This file is distributed under the same license as the django-filebrowser package. +# Janos Guljas , 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-06 21:43+0200\n" +"PO-Revision-Date: 2009-05-06 22:18+0200\n" +"Last-Translator: Janos Guljas \n" +"Language-Team: Serbian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: extension translation +msgid "Folder" +msgstr "Фолдер" +msgid "Image" +msgstr "Слика" +msgid "Document" +msgstr "Документ" +msgid "Code" +msgstr "Код" +msgid "Sound" +msgstr "Звук" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "Фајлови са екстензијом %(ext)s нису дозвољени. Само %(allowed)s екстензије су дозвољене." + +#: forms.py:23 +msgid "Name" +msgstr "Назив" + +#: forms.py:23 forms.py:49 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Слова у називу ће аутоматски бити конвертована у мала. Само слова, цифре, " +"доња црта и црта су дозвољени карактери." + +#: forms.py:30 forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Само слова, цифре, доња црта и црта су дозвољени карактери." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Фолдер већ постоји." + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "Тај назив фолдера није дозвољен." + +#: forms.py:49 +msgid "New Name" +msgstr "Нови назив" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "Фајл/фолдер већ постоји." + +#: forms.py:95 +msgid "File" +msgstr "Фајл" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "Користи генератор слика" + +#: forms.py:105 +msgid "File already exists." +msgstr "Фајл већ постоји." + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "Назив фајла није дозвољен." + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "Екстензија фајла није дозвиљена." + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Величина фајла прелази дозвољену вредност." + +#: functions.py:84 +msgid "Home" +msgstr "Почетни фолдер" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "Генерисање умањеног приказа слике није успело." + +#: functions.py:334 functions.py:389 +msgid "Image creation failed." +msgstr "Генерисање слике није успело." + +#: views.py:174 +msgid "FileBrowser" +msgstr "Фајл брузер" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "Фолдер %s је успешно направљен." + +#: views.py:204 +msgid "Permission denied." +msgstr "Одбијен приступ." + +#: views.py:206 +msgid "Error creating directory." +msgstr "Грешка при креирању директоријума." + +#: views.py:214 views.py:215 templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "Нови фолдер" + +#: views.py:260 +msgid "Upload successful." +msgstr "Пренос фајла се успешно завршио." + +#: views.py:273 templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Пренос фајла" + +#: views.py:274 +msgid "Select files to upload" +msgstr "Изаберите фајлове за пренос" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "Генерисање умањеног приказа слике је успело." + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Фајл %s је супешно обрисан." + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Директоријум %s је супешно обрисан." + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "Грешка при промени назива умањеног приказа слике." + +#: views.py:423 +msgid "Renaming was successful." +msgstr "Успешна промена назива." + +#: views.py:428 +msgid "Error." +msgstr "Грешка." + +#: views.py:437 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Промени назив" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "Промени назив: „%s“" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "Слике су успешно генерисане." + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +msgid "File-Browser" +msgstr "Фајл-браузер" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "Генериши умањене приказе" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "Генериши слике" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Исправите следеће грешке." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Изврши" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Користи генератор слика." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Помоћ" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Дозвољено" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Највећа величина фајла" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Изаберите" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Изаберите фајл" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Направи умењени приказ" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Преглед слике" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Генериши верзије слика" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "Да ли сте сигурни да желите да избришете овај фајл?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Избриши фајл" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "Да ли сте сигурни да желите да избришете овај фолдер?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Избриши фолдер" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Филтер" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "По датуму" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Сви датуми" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Данас" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Последњих 7 дана" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Последњих 30 дана" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Ове године" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "По типу" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Сви" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Ниједна слика није пронађена." + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s ставка" +msgstr[1] "%(counter)s ставки" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Ниједна ставка" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Назив фајла" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Величина" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Датум" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Иди" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s ставка нађена" +msgstr[1] "%(counter)s ставки нађено" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "%(counter)s ставка укупно" +msgstr[1] "%(counter)s ставки укупно" diff --git a/apps/filebrowser/locale/sr/LC_MESSAGES/django.mo b/apps/filebrowser/locale/sr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c5b4dae6d3aa56c13490e2f2cc065443290dcb23 GIT binary patch literal 6582 zcmcJRYm8iF8OL8N7g-c3-VkrEK&3!ux^01$rBJr_LT|Q9O|)K4XHK_MX3ts9nWbIg zhwTL@35f}pSU^B7i6(v-=#ES%Of@E`iQ<_LnwY3D1QJa|6Qjn&g!ucv=bhcz-B~0W zPWJ5YyqEJl&->iY{QlyzA2D28xj)7IjrSQ7!rz|FKd#Ypjkyfo35)Py&mY4DjQmX+pyYiYegaNi}{>%jbE`j&MMerFYc|Z01C6xYO!wzBd;rSN--8#y zH{dPsAMnfYdL||3LHHp24ph8WphSLJ4OhdxP;wuIABE3*{si_j{vF%_FT{9`Xuj%s z2b4b#L)r5zl)Y!5?0wbGxBd7ncs=v~f_iT$PAI}JL5=T+dT$cSjx&%y^DF-8y+1+e zu@uKaxEd;6--Vxsuln&Da4F*j2vK}iz{}w_cn!Q0VuE=BN?skVfIo-0$R(Tnw2-9J zc`t?6!YkntxEHR3_e0735qu543D>|$oGJZ(hqC_)l6ntZ1$V)3LY?zD%dF>K$F10H;+AYwx)=d-EBDQM;M&Z+j9d2UQa+N_?$TM+A90hb z1NmSJx6Y`GG<12PXVr%;#Yva^p&lx~>kRVKVs6<@`*PQE{@=u{T2)+Bi@4SdaI61x zF6D~)z~?#>Q2ry`%m(gN-14(7`9ZPMwUv7Tx8?3!s^1&@z{QYf%D`Rn*LbcNEp@3h9rp-TS~&9R*8mfxsrsXTAYj*{Ynx>!H8Cd4vdZLi-JnkuYkj~ zFiIDokioU)j#&5zC3Qj!eR5NDSD4hovW}s4k(BVBFOdH+T2eVxu00LU`;9kTUi@#nsI>7g zNI0mk^|`s*W2rleLovx?@@n#!5#`&-nY@mCS;dLjQz66ig88DnH^!cdt2H0WI3eGX z_#pXF*itU|3LLOI2iM&;xM_pkvtifnEjzaN?FvWZq*mCL4p+*BwPV9+VJIH3eLHsy z71p^17e@v4%K^K*zyF3p|8<4_>+SMo1J|y&rk@!$7IuYqRg~vF_AMV+wkqGZl{zU5 zB|(%{1A66vy)}s9)NUH99wez(AJpg;_rF+)ib;BN-_{@+9;15{hQeTE!0rx{eU%{U z+qPxfhUw!hEB5!Ti}{>INT1Z{mL^s;ffgnl4+D*3)Z7i&s-X|;ehe=^W zREo>g)qq{KuTtxq@x^K%X&=q%*$dfAS$)2R=6nlvo4u0N+Ye?9alT#6?p>|bJLXG4Bslb!4`oI@X%$=T^1^HXOq*)#53iYG5OvlnI@ zQOCnmNNLEF8BQWK5vwvGy^^(V)S?Q35D8 zpL8=QOMzQD_-9X3A#tT<#p+BBQhsi)E9` z6r|w{j*VX1`9DB!55XxQ}b5y)3Z->=Y>lr3P0;L+e57{ zPn4={QYGdb%8w_}nwogdsGn%QYQ;w|sW=ZBE>issRFLir*e zPWW)T7LaEIr5?$yB zfz`oV97rCOBh;Fa?rO^CHD_?8lxKAhv$feN(!pnJ&KgcKY2z|UxxvFck?0Dm9(`fV zIA>=TMZR5Vr|S>+%LTSmaouT{S1`+Mb)I_{m^u*#$ir$pE-oJ292cJP}ZZ`o|TjQ#z09m#Y7#81-s&^REop*C(D_l)gUk zZIeAKZBClv;1qX+xmfssIp^y`QOESWOt38fM$DL+s?m2^b6LVc)NGwf*NEFk=2X1N zzC{`H#m}Wt(W*|9bt=dA#ZFbQNU`Ifu4<;5nCxnlOS_A3-e&pSbfM}uFSUR!Uwj=k zc&rntyi*d5?)UQY;e>eu;(y+VWxdN!BzAq7807J#y%KkYLBC3lkb$J3GKP=1^0CE% zTz_)A_=%ycbFz2?+4Zgu3$J@+?^!WCjAiP@v%bvJZsXH6m19Jw<$or*$T*j|FT}gv z|D+DDAoD}UeHh5Y?xsA|Kf62JJAUTp?XUl**cn-)IB;5i{3%>Yc2%y={Hd~W?W56M22mH2MO6wQAC9|r$E literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/sr/LC_MESSAGES/django.po b/apps/filebrowser/locale/sr/LC_MESSAGES/django.po new file mode 100644 index 00000000..cd275413 --- /dev/null +++ b/apps/filebrowser/locale/sr/LC_MESSAGES/django.po @@ -0,0 +1,330 @@ +# Copyright (C) 2009 Janos Guljas +# This file is distributed under the same license as the django-filebrowser package. +# Janos Guljas , 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-06 21:43+0200\n" +"PO-Revision-Date: 2009-05-06 22:18+0200\n" +"Last-Translator: Janos Guljas \n" +"Language-Team: Serbian\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: extension translation +msgid "Folder" +msgstr "Фолдер" +msgid "Image" +msgstr "Слика" +msgid "Document" +msgstr "Документ" +msgid "Code" +msgstr "Код" +msgid "Sound" +msgstr "Звук" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "Фајлови са екстензијом %(ext)s нису дозвољени. Само %(allowed)s екстензије су дозвољене." + +#: forms.py:23 +msgid "Name" +msgstr "Назив" + +#: forms.py:23 forms.py:49 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Слова у називу ће аутоматски бити конвертована у мала. Само слова, цифре, " +"доња црта и црта су дозвољени карактери." + +#: forms.py:30 forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Само слова, цифре, доња црта и црта су дозвољени карактери." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Фолдер већ постоји." + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "Тај назив фолдера није дозвољен." + +#: forms.py:49 +msgid "New Name" +msgstr "Нови назив" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "Фајл/фолдер већ постоји." + +#: forms.py:95 +msgid "File" +msgstr "Фајл" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "Користи генератор слика" + +#: forms.py:105 +msgid "File already exists." +msgstr "Фајл већ постоји." + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "Назив фајла није дозвољен." + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "Екстензија фајла није дозвиљена." + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Величина фајла прелази дозвољену вредност." + +#: functions.py:84 +msgid "Home" +msgstr "Почетни фолдер" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "Генерисање умањеног приказа слике није успело." + +#: functions.py:334 functions.py:389 +msgid "Image creation failed." +msgstr "Генерисање слике није успело." + +#: views.py:174 +msgid "FileBrowser" +msgstr "Фајл брузер" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "Фолдер %s је успешно направљен." + +#: views.py:204 +msgid "Permission denied." +msgstr "Одбијен приступ." + +#: views.py:206 +msgid "Error creating directory." +msgstr "Грешка при креирању директоријума." + +#: views.py:214 views.py:215 templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "Нови фолдер" + +#: views.py:260 +msgid "Upload successful." +msgstr "Пренос фајла се успешно завршио." + +#: views.py:273 templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Пренос фајла" + +#: views.py:274 +msgid "Select files to upload" +msgstr "Изаберите фајлове за пренос" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "Генерисање умањеног приказа слике је успело." + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Фајл %s је супешно обрисан." + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Директоријум %s је супешно обрисан." + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "Грешка при промени назива умањеног приказа слике." + +#: views.py:423 +msgid "Renaming was successful." +msgstr "Успешна промена назива." + +#: views.py:428 +msgid "Error." +msgstr "Грешка." + +#: views.py:437 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Промени назив" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "Промени назив: „%s“" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "Слике су успешно генерисане." + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +msgid "File-Browser" +msgstr "Фајл-браузер" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "Генериши умањене приказе" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "Генериши слике" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Исправите следеће грешке." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Изврши" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Користи генератор слика." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Помоћ" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Дозвољено" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Највећа величина фајла" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Изаберите" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Изаберите фајл" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Направи умењени приказ" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Преглед слике" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Генериши верзије слика" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "Да ли сте сигурни да желите да избришете овај фајл?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Избриши фајл" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "Да ли сте сигурни да желите да избришете овај фолдер?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Избриши фолдер" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Филтер" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "По датуму" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Сви датуми" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Данас" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Последњих 7 дана" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Последњих 30 дана" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Ове године" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "По типу" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Сви" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Ниједна слика није пронађена." + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s ставка" +msgstr[1] "%(counter)s ставки" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Ниједна ставка" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Назив фајла" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Величина" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Датум" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Иди" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s ставка нађена" +msgstr[1] "%(counter)s ставки нађено" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "%(counter)s ставка укупно" +msgstr[1] "%(counter)s ставки укупно" diff --git a/apps/filebrowser/locale/sr_Latn/.svn/all-wcprops b/apps/filebrowser/locale/sr_Latn/.svn/all-wcprops new file mode 100644 index 00000000..362364bf --- /dev/null +++ b/apps/filebrowser/locale/sr_Latn/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 67 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/sr_Latn +END diff --git a/apps/filebrowser/locale/sr_Latn/.svn/entries b/apps/filebrowser/locale/sr_Latn/.svn/entries new file mode 100644 index 00000000..6b094595 --- /dev/null +++ b/apps/filebrowser/locale/sr_Latn/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/sr_Latn +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..9d5cbe4b --- /dev/null +++ b/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 79 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/sr_Latn/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 89 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/sr_Latn/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 89 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/sr_Latn/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..2ed5a355 --- /dev/null +++ b/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/sr_Latn/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:48.000000Z +03ac27ca944986b4e3f80be993f68ad8 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +8227 + +django.mo +file + + + + +2009-11-05T20:58:48.000000Z +3cc11e68ca0f53b4048230400ad05490 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +5283 + diff --git a/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..bfcbcf0805af0a1a679fc94e28cb8812084599b7 GIT binary patch literal 5283 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, 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-06 21:43+0200\n" +"PO-Revision-Date: 2009-05-06 22:19+0200\n" +"Last-Translator: Janos Guljas \n" +"Language-Team: Serbian Latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: extension translation +msgid "Folder" +msgstr "Folder" +msgid "Image" +msgstr "Slika" +msgid "Document" +msgstr "Dokument" +msgid "Code" +msgstr "Kod" +msgid "Sound" +msgstr "Zvuk" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "Fajlovi sa ekstenzijom %(ext)s nisu dozvoljeni. Samo %(allowed)s ekstenzije su dozvoljene." + +#: forms.py:23 +msgid "Name" +msgstr "Naziv" + +#: forms.py:23 forms.py:49 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Slova u nazivu će automatski biti konvertovana u mala. Samo slova, cifre, " +"donja crta i crta su dozvoljeni karakteri." + +#: forms.py:30 forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Samo slova, cifre, donja crta i crta su dozvoljeni karakteri." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Folder već postoji." + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "Taj naziv foldera nije dozvoljen." + +#: forms.py:49 +msgid "New Name" +msgstr "Novi naziv" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "Fajl/folder već postoji." + +#: forms.py:95 +msgid "File" +msgstr "Fajl" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "Koristi generator slika" + +#: forms.py:105 +msgid "File already exists." +msgstr "Fajl već postoji." + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "Naziv fajla nije dozvoljen." + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "Ekstenzija fajla nije dozviljena." + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Veličina fajla prelazi dozvoljenu vrednost." + +#: functions.py:84 +msgid "Home" +msgstr "Početni folder" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "Generisanje umanjenog prikaza slike nije uspelo." + +#: functions.py:334 functions.py:389 +msgid "Image creation failed." +msgstr "Generisanje slike nije uspelo." + +#: views.py:174 +msgid "FileBrowser" +msgstr "Fajl bruzer" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "Folder %s je uspešno napravljen." + +#: views.py:204 +msgid "Permission denied." +msgstr "Odbijen pristup." + +#: views.py:206 +msgid "Error creating directory." +msgstr "Greška pri kreiranju direktorijuma." + +#: views.py:214 views.py:215 templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "Novi folder" + +#: views.py:260 +msgid "Upload successful." +msgstr "Prenos fajla se uspešno završio." + +#: views.py:273 templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Prenos fajla" + +#: views.py:274 +msgid "Select files to upload" +msgstr "Izaberite fajlove za prenos" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "Generisanje umanjenog prikaza slike je uspelo." + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Fajl %s je supešno obrisan." + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Direktorijum %s je supešno obrisan." + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "Greška pri promeni naziva umanjenog prikaza slike." + +#: views.py:423 +msgid "Renaming was successful." +msgstr "Uspešna promena naziva." + +#: views.py:428 +msgid "Error." +msgstr "Greška." + +#: views.py:437 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Promeni naziv" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "Promeni naziv: „%s“" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "Slike su uspešno generisane." + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +msgid "File-Browser" +msgstr "Fajl-brauzer" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "Generiši umanjene prikaze" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "Generiši slike" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Ispravite sledeće greške." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Izvrši" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Koristi generator slika." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Pomoć" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Dozvoljeno" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Najveća veličina fajla" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Izaberite" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Izaberite fajl" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Napravi umenjeni prikaz" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Pregled slike" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Generiši verzije slika" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "Da li ste sigurni da želite da izbrišete ovaj fajl?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Izbriši fajl" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "Da li ste sigurni da želite da izbrišete ovaj folder?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Izbriši folder" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filter" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Po datumu" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Svi datumi" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Danas" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Poslednjih 7 dana" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Poslednjih 30 dana" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Ove godine" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Po tipu" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Svi" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Nijedna slika nije pronađena." + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s stavka" +msgstr[1] "%(counter)s stavki" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Nijedna stavka" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Naziv fajla" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Veličina" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Datum" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Idi" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s stavka nađena" +msgstr[1] "%(counter)s stavki nađeno" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "%(counter)s stavka ukupno" +msgstr[1] "%(counter)s stavki ukupno" diff --git a/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/django.mo b/apps/filebrowser/locale/sr_Latn/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..bfcbcf0805af0a1a679fc94e28cb8812084599b7 GIT binary patch literal 5283 zcmbW3YlvM(9l)m#Q@c^yv_9&iW=y+nn&jSWUfpDqG~MiOHru?`>?T4GWcJ?KyL0ck z=iHvhZtmI-saT3aDQX3kBE%1VsNkmxMZ^}Gh@w`MA_yW<@`QzzqQfeD~5?0|0fv>~cX#WG=0pEe| zhws8&@D4h6!2M9hzYy4fvUC!d!_Bn2@PqIf_%ZkmDC_+IejL6W_y%MP^%wXU{5zEO zs!aYc+y_4mPr?tt29))4$WLA2?>_hy*bl!4WxbyV{szkazlV3hw;?7`??Tz0IXS^rKba^DT_g%3cMQiD+Zc^n?NMXAq2S@-K0 z>i~QO?t^bbiLY%KRo;6ja1R`$eFVz<9Evj4CTF_K#}J)D1P`E6nno3KLc+- z@xvxM#jbZj*>^vb{yBIFJ_*Hszk;IAZ=ru5BD&gicj3@vV{5$6nS3?<39}jKY}9vbtv}zC6xF63dQcXZYlkKKa_coLR_GZK(W_JDDO={ zR8=WF3ZI6e$E%Q^`W=5Psct}#`=3zkwS`Ht-&QE`H3-GdlTg;X1ZBPp{m($L)ALaL z@B+Laz6izNKZatrH=*R|JFtM82@bLU(@@Tz??aLQbvOXufK~W!D0)_TS?sxf?`v7_EAJWmi6%} zx=&E{Q{)kw9Pzc%PEr-Q&BR`G}ECh@hMBJm-%l4mbP{3A9LyFE<#2xW*O=TGmE zSQ2}QEql)~D!5IJQ4UfDDe_b(JAJJ@-zCm;XbU8c4u!VFfIJeD^7tHu5BV1H1rJjm zq3ouJ&4(%Sh`k@DoS?`feiC2EgPVPxN_~g?^>42wMV#C8kxWnIw!N++Ti2s!d859r zJG)80&Xe3k8%!_zhoeYQk_B5=!*N%Sn%t`4)aq_h=&T5p1rz5ir0X`axz+ic%k+sP zs@wF~|2BEnMfR9F9@dA`-HufwN!=>H<7m0?38txD-LJ1kU1m!8!jAf^Y1^tAO=?Bk z#sDDt%i}*#-=SJ({n|8CN?e#Bj9pw2#wzAYgYBcmE&o$klEBXR@RZ$ z`cA2=703@{Zqc%O&Dwg_6IEa6M2V^EDaQQ%#FQ#sq{eM*Q~atY+NNRkMVpGw*_wXZ zi8^VcjyjnjfuCFc2jgO$(Bp$x}o6Zc@qQ|EB?1xWLnpn6h%X>uaDgghE{rUIw5#enN0z!ynKO} zDf1|#Rg$WUjtDOk=5u1bf;rCTT5x5O5^rhJBt9w=^-9RVAw4-fa%y;dOkW&3KQ(dg zY~Oj?Nz%M>CTqBQ<#^G^D$~i3?wdR}T^aEQToPC0yd2Vd2L=vR1`bpP9@TsI4DH{y zbATQuR?gdbCvm>PyuCwv4wdsxlP8tw)Wlh2I4g(r6DCeFJzhjjg8E2PT95nxs*9^> z_E_I(6E_M@kIJ+)?IAs7(-~)CeOeCPzB3bN#+H@ZQyu6VNx0Nv_TZQw(m6-r?oMP} zd|21!Oq$vJ=!NMMm4nOkM3z~bR>tC5QYX8H^uZaI_pQ3OvfRwK%=#|3zRT#?T>Bcy zyMD-pp=AA#(M7B1#2bvb-pJIv=$M-1GM0S{spYOys8dN@?$V;ICd!>0$8|GW z(JC+0Y4(oIqMHvAU@F%{!k$ucwYJKubv(7#ueOZtq)xX|>u^%D@G09OYFx8uo2ptl zsgrVbpt)ZkYqog-Gc{y|mRU49i(HHQDZIl)g@g$<%#5}zY!@%OX42NZ>o|59`}HJq zRXt_e38TyR@zPtEeZ^F{14ViH)ARP)v$~UHdD3)T`n`ROx6caoo%j@u;`D3JxwyAOC$$mNmo+K$d}`|?S-#<2O_(^OPB8{* zVKP(R)xO`GP)*bwo^L1Do(0#QvpH5TBT7xJcp(!9lvXdLEV7P`67E~mNezY zm|eQ&W>dQhqs2|bF`kn`C006`z%;38@v(qwCzFiNlep>T%8vlje?^yk3ea<|KEs}| zsFmeKr>Z70Zwg6V-bO>K8$R#}A`b24fL`4i(r;b)Zh!XHl^4|ojC%blN|y02hY!I) zBuy+DzFs&0mTSGF37Zm$Q5EkESD*8lcQ*LQurHP_7F>L ze0GUMy&M`vZ$2}<*UGbGRYUU?uw?H=, 2009. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-06 21:43+0200\n" +"PO-Revision-Date: 2009-05-06 22:19+0200\n" +"Last-Translator: Janos Guljas \n" +"Language-Team: Serbian Latin\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: extension translation +msgid "Folder" +msgstr "Folder" +msgid "Image" +msgstr "Slika" +msgid "Document" +msgstr "Dokument" +msgid "Code" +msgstr "Kod" +msgid "Sound" +msgstr "Zvuk" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "Fajlovi sa ekstenzijom %(ext)s nisu dozvoljeni. Samo %(allowed)s ekstenzije su dozvoljene." + +#: forms.py:23 +msgid "Name" +msgstr "Naziv" + +#: forms.py:23 forms.py:49 +msgid "" +"The Name will automatically be converted to lowercase. Only letters, " +"numbers, underscores and hyphens are allowed." +msgstr "" +"Slova u nazivu će automatski biti konvertovana u mala. Samo slova, cifre, " +"donja crta i crta su dozvoljeni karakteri." + +#: forms.py:30 forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "Samo slova, cifre, donja crta i crta su dozvoljeni karakteri." + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "Folder već postoji." + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "Taj naziv foldera nije dozvoljen." + +#: forms.py:49 +msgid "New Name" +msgstr "Novi naziv" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "Fajl/folder već postoji." + +#: forms.py:95 +msgid "File" +msgstr "Fajl" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "Koristi generator slika" + +#: forms.py:105 +msgid "File already exists." +msgstr "Fajl već postoji." + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "Naziv fajla nije dozvoljen." + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "Ekstenzija fajla nije dozviljena." + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "Veličina fajla prelazi dozvoljenu vrednost." + +#: functions.py:84 +msgid "Home" +msgstr "Početni folder" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "Generisanje umanjenog prikaza slike nije uspelo." + +#: functions.py:334 functions.py:389 +msgid "Image creation failed." +msgstr "Generisanje slike nije uspelo." + +#: views.py:174 +msgid "FileBrowser" +msgstr "Fajl bruzer" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "Folder %s je uspešno napravljen." + +#: views.py:204 +msgid "Permission denied." +msgstr "Odbijen pristup." + +#: views.py:206 +msgid "Error creating directory." +msgstr "Greška pri kreiranju direktorijuma." + +#: views.py:214 views.py:215 templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "Novi folder" + +#: views.py:260 +msgid "Upload successful." +msgstr "Prenos fajla se uspešno završio." + +#: views.py:273 templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "Prenos fajla" + +#: views.py:274 +msgid "Select files to upload" +msgstr "Izaberite fajlove za prenos" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "Generisanje umanjenog prikaza slike je uspelo." + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "Fajl %s je supešno obrisan." + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "Direktorijum %s je supešno obrisan." + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "Greška pri promeni naziva umanjenog prikaza slike." + +#: views.py:423 +msgid "Renaming was successful." +msgstr "Uspešna promena naziva." + +#: views.py:428 +msgid "Error." +msgstr "Greška." + +#: views.py:437 templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "Promeni naziv" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "Promeni naziv: „%s“" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "Slike su uspešno generisane." + +#: templates/filebrowser/append.html:5 templates/filebrowser/append.html:7 +msgid "File-Browser" +msgstr "Fajl-brauzer" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "Generiši umanjene prikaze" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "Generiši slike" + +#: templates/filebrowser/makedir.html:24 templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "Ispravite sledeće greške." + +#: templates/filebrowser/makedir.html:34 templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "Izvrši" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "Koristi generator slika." + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "Pomoć" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "Dozvoljeno" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "Najveća veličina fajla" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "Izaberite" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "Izaberite fajl" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "Napravi umenjeni prikaz" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "Pregled slike" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "Generiši verzije slika" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "Da li ste sigurni da želite da izbrišete ovaj fajl?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "Izbriši fajl" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "Da li ste sigurni da želite da izbrišete ovaj folder?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "Izbriši folder" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "Filter" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "Po datumu" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "Svi datumi" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "Danas" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "Poslednjih 7 dana" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "Poslednjih 30 dana" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "Ove godine" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "Po tipu" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "Svi" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "Nijedna slika nije pronađena." + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s stavka" +msgstr[1] "%(counter)s stavki" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "Nijedna stavka" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "Naziv fajla" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "Veličina" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "Datum" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "Idi" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "%(counter)s stavka nađena" +msgstr[1] "%(counter)s stavki nađeno" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "%(counter)s stavka ukupno" +msgstr[1] "%(counter)s stavki ukupno" diff --git a/apps/filebrowser/locale/zh_CN/.svn/all-wcprops b/apps/filebrowser/locale/zh_CN/.svn/all-wcprops new file mode 100644 index 00000000..09895e65 --- /dev/null +++ b/apps/filebrowser/locale/zh_CN/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/zh_CN +END diff --git a/apps/filebrowser/locale/zh_CN/.svn/entries b/apps/filebrowser/locale/zh_CN/.svn/entries new file mode 100644 index 00000000..85e38448 --- /dev/null +++ b/apps/filebrowser/locale/zh_CN/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/zh_CN +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..30caeb3d --- /dev/null +++ b/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 77 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/zh_CN/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 87 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/zh_CN/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 87 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/zh_CN/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..aa55796a --- /dev/null +++ b/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/zh_CN/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:48.000000Z +363ba3d6163a0169fdaaf5109edb3ae1 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +8015 + +django.mo +file + + + + +2009-11-05T20:58:48.000000Z +8819ea481c2829f0c3c5bc71586f229a +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +5067 + diff --git a/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/zh_CN/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..18da911ecead5b6baf27ea13ebb98189c98e97dd GIT binary patch literal 5067 zcmbW2TWl298OKjsnxt-;w4otQ(j*6n8zAhmhET|wn=v>z;Z`t7)r-Wid%T{oJLAsG zVwQ&j;o=Ke1_T6y0o&Nv5MvAt#9)XYBK4^ceW}_iQq(Ftv%6B&sBev$O8tLx&R%RB zrR~w4`OP`!o9}$*yPW;xiD{=8+6MF=q96P^V=?e=)9^rRd5E!DU@I5|hZH{szkzYt z!;Im_9>e1ia0WOZd;y#Xt_SgBO^SO#Qr)b06#O>E$HDJ_=fS7I_dwG35%@ItJ4Fw~ z*8buO;9&@nz8diR;2Yrc;CAp)a4$&ukAnEIGkE*}>;cQcyCCWNi(&?({r?U=4nFiP z#^4e*1EhVPR(u}(CdRYD8Q@&-F>n<~`)va0JU<8NI~^jnr@*dIZX`zuI#z5q%8voN0Y&jiWtIpB1#5~TG_ zAXKw$AjNe%=zfi{Js|mGJDf;%H-hwCGf4W*DfWU8WmiD*$8B&X_%TR&|E>54l+kz7 z6`uj=yO|(} zk{z?vH~`W<%fUt9>mbSh8bnF4Lm=sC2kBhhAbo!igiG0P)%qVm`YsESzR%SB7i#`- zD53QkiqC;$_lqFqPZ%VBY**Y1{tV*_Anp6P;*$tI>8SuIzn3chM9sgg_$!e7u^Xg) zTGadnknHOR>HC`?(#&s^H*3);U+9eV9W}ZGUqeSK`*+@KZ~;2CW$2Wz>(Hrw>8>Gr z^X(11tVE}pUyRPt=c7}j`lGvbJq^$np+ASdlm=)4bgB)yXMT)MjcOo>PIoM|Y6&(M zdlY7{$a6q_~Z6*N$d;*T&-Y~^zzX3}tkHP_~~ zj!3Y{6ZQi$ydGafADFhkWS%>wqs6BXm-AKeI72s^M3hw-DZWN?1go+HPnk(>C)G=n zW;js9qarRG!JP)(<~3$KDy)_Nop8M#7c1Fnr5~(IH40X3Mg{YCTq70NK#b+zef?~W zZfnv$wIkoCB}9;|F(b)@FdVklvP_FdETK8N5#v$a5)sF=QbDz12}4WJN?k)TvBS{x zxLN^rJHoJa)8OTE#BK*Mz_|?5;cCYq-(I+f$SEd6 z#9kAIun<>Xo6ur{zbPy_vps1ZW0S2D@kX}Jgay8=d@AR{P4)1ehz8jPZKo*uvt(%F zeRq(PQ^-n2v0@uVlZu`HD(6f;-zkld%|W(Njf2d0InoRVu;+6FG4o#_1x8Fu;LJvp zH>4UH5In9SMGFzxtl17<6yi}WWix-UM7;|uq1%3_qr%YX44dOZvjvAnN*Ls{Km}2z zQLYF|Dg<&1C67?xv&!vR@||RwG#eEXi3r=SPa>(dB8MZ6g71R-dp)^>>L=+3iBXW) zR=?{Y3o8QesRH>wqeWX5%5_S^<$a?JCog`L z6e=wxGz$k+wfrsV`S*fBjCSe=a7fjTqH%QkPS z3sn2poM{B;)(rE7q0p;=(BeSo6&?zOLyKPyEe(Yr7}z3q>6GnL%2iZIx%H@)K%J!- zc3i`a2}3L)knwz3%t*#`XH_ggw`IgktSDQr8L=d8k3gN!5>gTuYtXb}zH~xsES26+ zyJ2ndd=9#v^YM76Xj%#%(%j4CKxZJIk1nza*Khvrwz4@~_loA7U&>$$_c z)(_p55&V%9|LtkoJ#=G=xxw6lK`iah4v(_**qC>)!+W>i>$=F&_q#Ja!|w3e?B)G# zOLwlbFFW3u9=+-DB;Ufss%5y~8l&^<2VN=iITonRCPL{ZqMvsDF z+>s7apB-=Z#`;LH^a{(Iyy&$YgAd#T9hue^uWM++6w+oO+jEq;qr-076_&evI@fcH zK|IsiOu$#t$!_0`?EC$+g>rh{w-1cHu6?j4A2c$I$-pVe{0dU`^oUyVZuWRxtulpu zFZpBSufJhF3huRcz3c6t?%VI38o@hW(xXS*mJ^w~)B%eXWT#|pxh14RS zwp}DWxqYqP5qQprJewNG*r+KPB9^=On_Ta4mL5NkbeRx|qQ=sSTTt-U)JcX~@h#&r zDpM9@6{n$l+}BRkv+0dw1Ma, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: filebrowser 2.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-04 00:05+0800\n" +"PO-Revision-Date: 2009-05-04 00:11+0800\n" +"Last-Translator: freeRen \n" +"Language-Team: freeren.org \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Chinese\n" +"X-Poedit-Country: CHINA\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Bookmarks: 0,1,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "扩展名 %(ext)s 是不允许的。只允许 %(allowed)s 。" + +#: forms.py:23 +msgid "Name" +msgstr "名称" + +#: forms.py:23 +#: forms.py:49 +msgid "The Name will automatically be converted to lowercase. Only letters, numbers, underscores and hyphens are allowed." +msgstr "这个名称将自动转换为小写。只允许字母、数字、下划线和连字符。" + +#: forms.py:30 +#: forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "只允许字母、数字、下划线和连字符。" + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "这个文件夹已经存在。" + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "不允许的文件夹名称。" + +#: forms.py:49 +msgid "New Name" +msgstr "新名称" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "这个文件/文件夹已经存在。" + +#: forms.py:95 +msgid "File" +msgstr "文件" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "使用图像生成器" + +#: forms.py:105 +msgid "File already exists." +msgstr "文件已经存在。" + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "文件名不允许。" + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "文件扩展名不允许。" + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "超出允许的上传大小。" + +#: functions.py:84 +msgid "Home" +msgstr "首页" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "缩略图创建失败。" + +#: functions.py:334 +#: functions.py:389 +msgid "Image creation failed." +msgstr "图像创建失败。" + +#: views.py:174 +msgid "FileBrowser" +msgstr "文件浏览器" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "文件夹 \"%s\" 创建成功。" + +#: views.py:204 +msgid "Permission denied." +msgstr "权限被拒绝。" + +#: views.py:206 +msgid "Error creating directory." +msgstr "创建目录错误。" + +#: views.py:214 +#: views.py:215 +#: templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "创建文件夹" + +#: views.py:260 +msgid "Upload successful." +msgstr "上传成功。" + +#: views.py:273 +#: templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "上传" + +#: views.py:274 +msgid "Select files to upload" +msgstr "选择上传文件" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "缩略图创建成功。" + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "文件 \"%s\" 删除成功。" + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "目录 \"%s\" 删除成功。" + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "重命名缩略图错误。" + +#: views.py:423 +msgid "Renaming was successful." +msgstr "重命名成功。" + +#: views.py:428 +msgid "Error." +msgstr "错误。" + +#: views.py:437 +#: templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "重命名" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "重命名 \"%s\"" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "生成图像成功。" + +#: templates/filebrowser/append.html:4 +#: templates/filebrowser/append.html:6 +msgid "File-Browser" +msgstr "文件浏览器" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "创建缩略图" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "生成图像" + +#: templates/filebrowser/makedir.html:24 +#: templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "请修正下面的错误。" + +#: templates/filebrowser/makedir.html:34 +#: templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "保存" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "使用图像生成器。" + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "帮助" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "允许" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "最大文件大小" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "选择" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "选择文件" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "创建缩略图" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "查看图像" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "生成图像版本" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "你确定要删除这个文件?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "删除文件" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "你确定要删除这个文件夹?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "删除文件夹" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "过滤器" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "以 日期" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "任意日期" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "今天" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "前7天" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "本月" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "本年" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "以 类型" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "全部" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "没有找到。" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s 项" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "没有项。" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "文件名" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "大小" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "日期" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "执行" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "找到 %(counter)s 项" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "共 %(counter)s 项" + +msgid "Folder" +msgstr "目录" + +msgid "Image" +msgstr "图片" + +msgid "Document" +msgstr "文档" + +msgid "Code" +msgstr "代码" + +msgid "Video" +msgstr "视频" + +msgid "Sound" +msgstr "音频" + diff --git a/apps/filebrowser/locale/zh_CN/LC_MESSAGES/django.mo b/apps/filebrowser/locale/zh_CN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..18da911ecead5b6baf27ea13ebb98189c98e97dd GIT binary patch literal 5067 zcmbW2TWl298OKjsnxt-;w4otQ(j*6n8zAhmhET|wn=v>z;Z`t7)r-Wid%T{oJLAsG zVwQ&j;o=Ke1_T6y0o&Nv5MvAt#9)XYBK4^ceW}_iQq(Ftv%6B&sBev$O8tLx&R%RB zrR~w4`OP`!o9}$*yPW;xiD{=8+6MF=q96P^V=?e=)9^rRd5E!DU@I5|hZH{szkzYt z!;Im_9>e1ia0WOZd;y#Xt_SgBO^SO#Qr)b06#O>E$HDJ_=fS7I_dwG35%@ItJ4Fw~ z*8buO;9&@nz8diR;2Yrc;CAp)a4$&ukAnEIGkE*}>;cQcyCCWNi(&?({r?U=4nFiP z#^4e*1EhVPR(u}(CdRYD8Q@&-F>n<~`)va0JU<8NI~^jnr@*dIZX`zuI#z5q%8voN0Y&jiWtIpB1#5~TG_ zAXKw$AjNe%=zfi{Js|mGJDf;%H-hwCGf4W*DfWU8WmiD*$8B&X_%TR&|E>54l+kz7 z6`uj=yO|(} zk{z?vH~`W<%fUt9>mbSh8bnF4Lm=sC2kBhhAbo!igiG0P)%qVm`YsESzR%SB7i#`- zD53QkiqC;$_lqFqPZ%VBY**Y1{tV*_Anp6P;*$tI>8SuIzn3chM9sgg_$!e7u^Xg) zTGadnknHOR>HC`?(#&s^H*3);U+9eV9W}ZGUqeSK`*+@KZ~;2CW$2Wz>(Hrw>8>Gr z^X(11tVE}pUyRPt=c7}j`lGvbJq^$np+ASdlm=)4bgB)yXMT)MjcOo>PIoM|Y6&(M zdlY7{$a6q_~Z6*N$d;*T&-Y~^zzX3}tkHP_~~ zj!3Y{6ZQi$ydGafADFhkWS%>wqs6BXm-AKeI72s^M3hw-DZWN?1go+HPnk(>C)G=n zW;js9qarRG!JP)(<~3$KDy)_Nop8M#7c1Fnr5~(IH40X3Mg{YCTq70NK#b+zef?~W zZfnv$wIkoCB}9;|F(b)@FdVklvP_FdETK8N5#v$a5)sF=QbDz12}4WJN?k)TvBS{x zxLN^rJHoJa)8OTE#BK*Mz_|?5;cCYq-(I+f$SEd6 z#9kAIun<>Xo6ur{zbPy_vps1ZW0S2D@kX}Jgay8=d@AR{P4)1ehz8jPZKo*uvt(%F zeRq(PQ^-n2v0@uVlZu`HD(6f;-zkld%|W(Njf2d0InoRVu;+6FG4o#_1x8Fu;LJvp zH>4UH5In9SMGFzxtl17<6yi}WWix-UM7;|uq1%3_qr%YX44dOZvjvAnN*Ls{Km}2z zQLYF|Dg<&1C67?xv&!vR@||RwG#eEXi3r=SPa>(dB8MZ6g71R-dp)^>>L=+3iBXW) zR=?{Y3o8QesRH>wqeWX5%5_S^<$a?JCog`L z6e=wxGz$k+wfrsV`S*fBjCSe=a7fjTqH%QkPS z3sn2poM{B;)(rE7q0p;=(BeSo6&?zOLyKPyEe(Yr7}z3q>6GnL%2iZIx%H@)K%J!- zc3i`a2}3L)knwz3%t*#`XH_ggw`IgktSDQr8L=d8k3gN!5>gTuYtXb}zH~xsES26+ zyJ2ndd=9#v^YM76Xj%#%(%j4CKxZJIk1nza*Khvrwz4@~_loA7U&>$$_c z)(_p55&V%9|LtkoJ#=G=xxw6lK`iah4v(_**qC>)!+W>i>$=F&_q#Ja!|w3e?B)G# zOLwlbFFW3u9=+-DB;Ufss%5y~8l&^<2VN=iITonRCPL{ZqMvsDF z+>s7apB-=Z#`;LH^a{(Iyy&$YgAd#T9hue^uWM++6w+oO+jEq;qr-076_&evI@fcH zK|IsiOu$#t$!_0`?EC$+g>rh{w-1cHu6?j4A2c$I$-pVe{0dU`^oUyVZuWRxtulpu zFZpBSufJhF3huRcz3c6t?%VI38o@hW(xXS*mJ^w~)B%eXWT#|pxh14RS zwp}DWxqYqP5qQprJewNG*r+KPB9^=On_Ta4mL5NkbeRx|qQ=sSTTt-U)JcX~@h#&r zDpM9@6{n$l+}BRkv+0dw1Ma, YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: filebrowser 2.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-04 00:05+0800\n" +"PO-Revision-Date: 2009-05-04 00:11+0800\n" +"Last-Translator: freeRen \n" +"Language-Team: freeren.org \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Chinese\n" +"X-Poedit-Country: CHINA\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Bookmarks: 0,1,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "扩展名 %(ext)s 是不允许的。只允许 %(allowed)s 。" + +#: forms.py:23 +msgid "Name" +msgstr "名称" + +#: forms.py:23 +#: forms.py:49 +msgid "The Name will automatically be converted to lowercase. Only letters, numbers, underscores and hyphens are allowed." +msgstr "这个名称将自动转换为小写。只允许字母、数字、下划线和连字符。" + +#: forms.py:30 +#: forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "只允许字母、数字、下划线和连字符。" + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "这个文件夹已经存在。" + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "不允许的文件夹名称。" + +#: forms.py:49 +msgid "New Name" +msgstr "新名称" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "这个文件/文件夹已经存在。" + +#: forms.py:95 +msgid "File" +msgstr "文件" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "使用图像生成器" + +#: forms.py:105 +msgid "File already exists." +msgstr "文件已经存在。" + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "文件名不允许。" + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "文件扩展名不允许。" + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "超出允许的上传大小。" + +#: functions.py:84 +msgid "Home" +msgstr "首页" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "缩略图创建失败。" + +#: functions.py:334 +#: functions.py:389 +msgid "Image creation failed." +msgstr "图像创建失败。" + +#: views.py:174 +msgid "FileBrowser" +msgstr "文件浏览器" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "文件夹 \"%s\" 创建成功。" + +#: views.py:204 +msgid "Permission denied." +msgstr "权限被拒绝。" + +#: views.py:206 +msgid "Error creating directory." +msgstr "创建目录错误。" + +#: views.py:214 +#: views.py:215 +#: templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "创建文件夹" + +#: views.py:260 +msgid "Upload successful." +msgstr "上传成功。" + +#: views.py:273 +#: templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "上传" + +#: views.py:274 +msgid "Select files to upload" +msgstr "选择上传文件" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "缩略图创建成功。" + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "文件 \"%s\" 删除成功。" + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "目录 \"%s\" 删除成功。" + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "重命名缩略图错误。" + +#: views.py:423 +msgid "Renaming was successful." +msgstr "重命名成功。" + +#: views.py:428 +msgid "Error." +msgstr "错误。" + +#: views.py:437 +#: templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "重命名" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "重命名 \"%s\"" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "生成图像成功。" + +#: templates/filebrowser/append.html:4 +#: templates/filebrowser/append.html:6 +msgid "File-Browser" +msgstr "文件浏览器" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "创建缩略图" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "生成图像" + +#: templates/filebrowser/makedir.html:24 +#: templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "请修正下面的错误。" + +#: templates/filebrowser/makedir.html:34 +#: templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "保存" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "使用图像生成器。" + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "帮助" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "允许" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "最大文件大小" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "选择" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "选择文件" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "创建缩略图" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "查看图像" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "生成图像版本" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "你确定要删除这个文件?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "删除文件" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "你确定要删除这个文件夹?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "删除文件夹" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "过滤器" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "以 日期" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "任意日期" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "今天" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "前7天" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "本月" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "本年" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "以 类型" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "全部" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "没有找到。" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s 项" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "没有项。" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "文件名" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "大小" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "日期" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "执行" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "找到 %(counter)s 项" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "共 %(counter)s 项" + +msgid "Folder" +msgstr "目录" + +msgid "Image" +msgstr "图片" + +msgid "Document" +msgstr "文档" + +msgid "Code" +msgstr "代码" + +msgid "Video" +msgstr "视频" + +msgid "Sound" +msgstr "音频" + diff --git a/apps/filebrowser/locale/zh_TW/.svn/all-wcprops b/apps/filebrowser/locale/zh_TW/.svn/all-wcprops new file mode 100644 index 00000000..fc4c26a5 --- /dev/null +++ b/apps/filebrowser/locale/zh_TW/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/zh_TW +END diff --git a/apps/filebrowser/locale/zh_TW/.svn/entries b/apps/filebrowser/locale/zh_TW/.svn/entries new file mode 100644 index 00000000..a8ed0111 --- /dev/null +++ b/apps/filebrowser/locale/zh_TW/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/zh_TW +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +LC_MESSAGES +dir + diff --git a/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/all-wcprops b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/all-wcprops new file mode 100644 index 00000000..13c66705 --- /dev/null +++ b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 77 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/zh_TW/LC_MESSAGES +END +django.po +K 25 +svn:wc:ra_dav:version-url +V 87 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/zh_TW/LC_MESSAGES/django.po +END +django.mo +K 25 +svn:wc:ra_dav:version-url +V 87 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/locale/zh_TW/LC_MESSAGES/django.mo +END diff --git a/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/entries b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/entries new file mode 100644 index 00000000..91155df9 --- /dev/null +++ b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/entries @@ -0,0 +1,96 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/locale/zh_TW/LC_MESSAGES +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +django.po +file + + + + +2009-11-05T20:58:49.000000Z +9303ff1db63e9d070e8d117fb5625f78 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +8009 + +django.mo +file + + + + +2009-11-05T20:58:49.000000Z +acbd592d9227d4f5367efede3fe71038 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +4999 + diff --git a/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/prop-base/django.mo.svn-base b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/prop-base/django.mo.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/prop-base/django.mo.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/text-base/django.mo.svn-base b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/text-base/django.mo.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..14136c065db36c72311391cb512472d428b5b3e7 GIT binary patch literal 4999 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 literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/text-base/django.po.svn-base b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/text-base/django.po.svn-base new file mode 100644 index 00000000..c60bc65c --- /dev/null +++ b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/.svn/text-base/django.po.svn-base @@ -0,0 +1,346 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: filebrowser 2.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-04 00:06+0800\n" +"PO-Revision-Date: 2009-05-04 00:11+0800\n" +"Last-Translator: freeRen \n" +"Language-Team: freeren.org \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Chinese\n" +"X-Poedit-Country: CHINA\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Bookmarks: 0,1,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "擴展名%(ext)s是不允許的。只允許%(allowed)s 。" + +#: forms.py:23 +msgid "Name" +msgstr "名稱" + +#: forms.py:23 +#: forms.py:49 +msgid "The Name will automatically be converted to lowercase. Only letters, numbers, underscores and hyphens are allowed." +msgstr "這個名稱將自動轉換為小寫。只允許字母、數字、下劃線和連字符。" + +#: forms.py:30 +#: forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "只允許字母、數字、下劃線和連字符。" + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "這個文件夾已經存在。" + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "不允許文件夾名稱。" + +#: forms.py:49 +msgid "New Name" +msgstr "新名稱" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "這個文件/文件夾已經存在。" + +#: forms.py:95 +msgid "File" +msgstr "文件" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "使用圖像生成器" + +#: forms.py:105 +msgid "File already exists." +msgstr "文件已經存在。" + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "文件名不允許。" + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "文件擴展名不允許。" + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "超出允許的上傳大小。" + +#: functions.py:84 +msgid "Home" +msgstr "首頁" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "縮略圖創建失敗。" + +#: functions.py:334 +#: functions.py:389 +msgid "Image creation failed." +msgstr "圖像創建失敗。" + +#: views.py:174 +msgid "FileBrowser" +msgstr "文件瀏覽器" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "文件夾\"%s\"創建成功。" + +#: views.py:204 +msgid "Permission denied." +msgstr "權限被拒絕。" + +#: views.py:206 +msgid "Error creating directory." +msgstr "創建目錄錯誤。" + +#: views.py:214 +#: views.py:215 +#: templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "創建文件夾" + +#: views.py:260 +msgid "Upload successful." +msgstr "上傳成功。" + +#: views.py:273 +#: templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "上传" + +#: views.py:274 +msgid "Select files to upload" +msgstr "選擇上傳文件" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "縮略圖創建成功。" + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "文件\"%s\"刪除成功。" + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "目錄\"%s\"刪除成功。" + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "重命名縮略圖錯誤。" + +#: views.py:423 +msgid "Renaming was successful." +msgstr "重命名成功。" + +#: views.py:428 +msgid "Error." +msgstr "錯誤。" + +#: views.py:437 +#: templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "重命名" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "重命名 \"%s\"" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "生成圖像成功。" + +#: templates/filebrowser/append.html:4 +#: templates/filebrowser/append.html:6 +#, fuzzy +msgid "File-Browser" +msgstr "文件瀏覽器" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "創建縮略圖" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "生成圖像" + +#: templates/filebrowser/makedir.html:24 +#: templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "請修正下面的錯誤。" + +#: templates/filebrowser/makedir.html:34 +#: templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "保存" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "使用圖像生成器。" + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "幫助" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "允許" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "最大文件大小" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "選擇" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "選擇文件" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "創建縮略圖" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "查看圖像" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "生成圖像版本" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "你確定要刪除這個文件?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "删除文件" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "你確定要刪除這個文件夾?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "刪除文件夾" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "過濾器" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "以 日期" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "任意日期" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "今天" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "前7天" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "本月" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "本年" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "以 類型" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "全部" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "沒有找到。" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s 項" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "沒有項" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "文件名" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "大小" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "日期" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "執行" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "找到 %(counter)s 項" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "共 %(counter)s 項" + +msgid "Folder" +msgstr "目錄" + +msgid "Image" +msgstr "圖片" + +msgid "Document" +msgstr "文檔" + +msgid "Code" +msgstr "代碼" + +msgid "Video" +msgstr "視頻" + +msgid "Sound" +msgstr "音頻" + diff --git a/apps/filebrowser/locale/zh_TW/LC_MESSAGES/django.mo b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..14136c065db36c72311391cb512472d428b5b3e7 GIT binary patch literal 4999 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 literal 0 HcmV?d00001 diff --git a/apps/filebrowser/locale/zh_TW/LC_MESSAGES/django.po b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/django.po new file mode 100644 index 00000000..c60bc65c --- /dev/null +++ b/apps/filebrowser/locale/zh_TW/LC_MESSAGES/django.po @@ -0,0 +1,346 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +msgid "" +msgstr "" +"Project-Id-Version: filebrowser 2.1\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-05-04 00:06+0800\n" +"PO-Revision-Date: 2009-05-04 00:11+0800\n" +"Last-Translator: freeRen \n" +"Language-Team: freeren.org \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=1; plural=0;\n" +"X-Poedit-Language: Chinese\n" +"X-Poedit-Country: CHINA\n" +"X-Poedit-SourceCharset: utf-8\n" +"X-Poedit-Bookmarks: 0,1,-1,-1,-1,-1,-1,-1,-1,-1\n" + +#: fields.py:96 +#, python-format +msgid "Extension %(ext)s is not allowed. Only %(allowed)s is allowed." +msgstr "擴展名%(ext)s是不允許的。只允許%(allowed)s 。" + +#: forms.py:23 +msgid "Name" +msgstr "名稱" + +#: forms.py:23 +#: forms.py:49 +msgid "The Name will automatically be converted to lowercase. Only letters, numbers, underscores and hyphens are allowed." +msgstr "這個名稱將自動轉換為小寫。只允許字母、數字、下劃線和連字符。" + +#: forms.py:30 +#: forms.py:56 +msgid "Only letters, numbers, underscores and hyphens are allowed." +msgstr "只允許字母、數字、下劃線和連字符。" + +#: forms.py:33 +msgid "The Folder already exists." +msgstr "這個文件夾已經存在。" + +#: forms.py:36 +msgid "Disallowed Folder Name." +msgstr "不允許文件夾名稱。" + +#: forms.py:49 +msgid "New Name" +msgstr "新名稱" + +#: forms.py:59 +msgid "The File/Folder already exists." +msgstr "這個文件/文件夾已經存在。" + +#: forms.py:95 +msgid "File" +msgstr "文件" + +#: forms.py:96 +msgid "Use Image Generator" +msgstr "使用圖像生成器" + +#: forms.py:105 +msgid "File already exists." +msgstr "文件已經存在。" + +#: forms.py:111 +msgid "Filename is not allowed." +msgstr "文件名不允許。" + +#: forms.py:116 +msgid "File extension is not allowed." +msgstr "文件擴展名不允許。" + +#: forms.py:121 +msgid "Filesize exceeds allowed Upload Size." +msgstr "超出允許的上傳大小。" + +#: functions.py:84 +msgid "Home" +msgstr "首頁" + +#: functions.py:279 +msgid "Thumbnail creation failed." +msgstr "縮略圖創建失敗。" + +#: functions.py:334 +#: functions.py:389 +msgid "Image creation failed." +msgstr "圖像創建失敗。" + +#: views.py:174 +msgid "FileBrowser" +msgstr "文件瀏覽器" + +#: views.py:198 +#, python-format +msgid "The Folder %s was successfully created." +msgstr "文件夾\"%s\"創建成功。" + +#: views.py:204 +msgid "Permission denied." +msgstr "權限被拒絕。" + +#: views.py:206 +msgid "Error creating directory." +msgstr "創建目錄錯誤。" + +#: views.py:214 +#: views.py:215 +#: templates/filebrowser/index.html:33 +msgid "New Folder" +msgstr "創建文件夾" + +#: views.py:260 +msgid "Upload successful." +msgstr "上傳成功。" + +#: views.py:273 +#: templates/filebrowser/index.html:36 +#: templates/filebrowser/upload.html:62 +msgid "Upload" +msgstr "上传" + +#: views.py:274 +msgid "Select files to upload" +msgstr "選擇上傳文件" + +#: views.py:304 +msgid "Thumbnail creation successful." +msgstr "縮略圖創建成功。" + +#: views.py:354 +#, python-format +msgid "The file %s was successfully deleted." +msgstr "文件\"%s\"刪除成功。" + +#: views.py:366 +#, python-format +msgid "The directory %s was successfully deleted." +msgstr "目錄\"%s\"刪除成功。" + +#: views.py:417 +msgid "Error renaming Thumbnail." +msgstr "重命名縮略圖錯誤。" + +#: views.py:423 +msgid "Renaming was successful." +msgstr "重命名成功。" + +#: views.py:428 +msgid "Error." +msgstr "錯誤。" + +#: views.py:437 +#: templates/filebrowser/include/filelisting.html:52 +msgid "Rename" +msgstr "重命名" + +#: views.py:438 +#, python-format +msgid "Rename \"%s\"" +msgstr "重命名 \"%s\"" + +#: views.py:475 +msgid "Successfully generated Images." +msgstr "生成圖像成功。" + +#: templates/filebrowser/append.html:4 +#: templates/filebrowser/append.html:6 +#, fuzzy +msgid "File-Browser" +msgstr "文件瀏覽器" + +#: templates/filebrowser/index.html:34 +msgid "Make Thumbs" +msgstr "創建縮略圖" + +#: templates/filebrowser/index.html:35 +msgid "Generate Images" +msgstr "生成圖像" + +#: templates/filebrowser/makedir.html:24 +#: templates/filebrowser/rename.html:22 +msgid "Please correct the following errors." +msgstr "請修正下面的錯誤。" + +#: templates/filebrowser/makedir.html:34 +#: templates/filebrowser/rename.html:33 +msgid "Submit" +msgstr "保存" + +#: templates/filebrowser/upload.html:37 +msgid "Will use image generator." +msgstr "使用圖像生成器。" + +#: templates/filebrowser/upload.html:47 +msgid "Help" +msgstr "幫助" + +#: templates/filebrowser/upload.html:51 +msgid "Allowed" +msgstr "允許" + +#: templates/filebrowser/upload.html:57 +msgid "Max. Filesize" +msgstr "最大文件大小" + +#: templates/filebrowser/include/filelisting.html:8 +msgid "Select" +msgstr "選擇" + +#: templates/filebrowser/include/filelisting.html:15 +msgid "Select File" +msgstr "選擇文件" + +#: templates/filebrowser/include/filelisting.html:26 +msgid "Make Thumbnail" +msgstr "創建縮略圖" + +#: templates/filebrowser/include/filelisting.html:29 +msgid "View Image" +msgstr "查看圖像" + +#: templates/filebrowser/include/filelisting.html:46 +msgid "Generate Image Versions" +msgstr "生成圖像版本" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Are you sure you want to delete this file?" +msgstr "你確定要刪除這個文件?" + +#: templates/filebrowser/include/filelisting.html:61 +msgid "Delete File" +msgstr "删除文件" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Are you sure you want to delete this Folder?" +msgstr "你確定要刪除這個文件夾?" + +#: templates/filebrowser/include/filelisting.html:64 +msgid "Delete Folder" +msgstr "刪除文件夾" + +#: templates/filebrowser/include/filter.html:15 +msgid "Filter" +msgstr "過濾器" + +#: templates/filebrowser/include/filter.html:21 +msgid "By Date" +msgstr "以 日期" + +#: templates/filebrowser/include/filter.html:23 +msgid "Any Date" +msgstr "任意日期" + +#: templates/filebrowser/include/filter.html:25 +msgid "Today" +msgstr "今天" + +#: templates/filebrowser/include/filter.html:27 +msgid "Past 7 days" +msgstr "前7天" + +#: templates/filebrowser/include/filter.html:29 +msgid "Past 30 days" +msgstr "本月" + +#: templates/filebrowser/include/filter.html:31 +msgid "This year" +msgstr "本年" + +#: templates/filebrowser/include/filter.html:39 +msgid "By Type" +msgstr "以 類型" + +#: templates/filebrowser/include/filter.html:41 +msgid "All" +msgstr "全部" + +#: templates/filebrowser/include/paginator.html:5 +msgid "No Items Found." +msgstr "沒有找到。" + +#: templates/filebrowser/include/paginator.html:10 +#, python-format +msgid "%(counter)s Item" +msgid_plural "%(counter)s Items" +msgstr[0] "%(counter)s 項" + +#: templates/filebrowser/include/paginator.html:16 +msgid "No Items." +msgstr "沒有項" + +#: templates/filebrowser/include/tableheader.html:13 +#: templates/filebrowser/include/tableheader.html:14 +msgid "Filename" +msgstr "文件名" + +#: templates/filebrowser/include/tableheader.html:20 +#: templates/filebrowser/include/tableheader.html:21 +msgid "Size" +msgstr "大小" + +#: templates/filebrowser/include/tableheader.html:23 +#: templates/filebrowser/include/tableheader.html:24 +msgid "Date" +msgstr "日期" + +#: templates/filebrowser/include/toolbar.html:14 +msgid "Go" +msgstr "執行" + +#: templates/filebrowser/include/toolbar.html:16 +#, python-format +msgid "%(counter)s Item found" +msgid_plural "%(counter)s Items found" +msgstr[0] "找到 %(counter)s 項" + +#: templates/filebrowser/include/toolbar.html:17 +#, python-format +msgid "%(counter)s Item total" +msgid_plural "%(counter)s Items total" +msgstr[0] "共 %(counter)s 項" + +msgid "Folder" +msgstr "目錄" + +msgid "Image" +msgstr "圖片" + +msgid "Document" +msgstr "文檔" + +msgid "Code" +msgstr "代碼" + +msgid "Video" +msgstr "視頻" + +msgid "Sound" +msgstr "音頻" + diff --git a/apps/filebrowser/media/.svn/all-wcprops b/apps/filebrowser/media/.svn/all-wcprops new file mode 100644 index 00000000..76f4ac06 --- /dev/null +++ b/apps/filebrowser/media/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 58 +/svn/!svn/ver/466/branches/filebrowser_3/filebrowser/media +END diff --git a/apps/filebrowser/media/.svn/entries b/apps/filebrowser/media/.svn/entries new file mode 100644 index 00000000..91a3228e --- /dev/null +++ b/apps/filebrowser/media/.svn/entries @@ -0,0 +1,31 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media +http://django-filebrowser.googlecode.com/svn + + + +2009-10-29T16:15:59.524671Z +466 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +filebrowser +dir + diff --git a/apps/filebrowser/media/filebrowser/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/.svn/all-wcprops new file mode 100644 index 00000000..3752e31b --- /dev/null +++ b/apps/filebrowser/media/filebrowser/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 70 +/svn/!svn/ver/466/branches/filebrowser_3/filebrowser/media/filebrowser +END diff --git a/apps/filebrowser/media/filebrowser/.svn/entries b/apps/filebrowser/media/filebrowser/.svn/entries new file mode 100644 index 00000000..53de6981 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/.svn/entries @@ -0,0 +1,40 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser +http://django-filebrowser.googlecode.com/svn + + + +2009-10-29T16:15:59.524671Z +466 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +css +dir + +img +dir + +js +dir + +uploadify +dir + diff --git a/apps/filebrowser/media/filebrowser/css/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/css/.svn/all-wcprops new file mode 100644 index 00000000..8cfbfa0f --- /dev/null +++ b/apps/filebrowser/media/filebrowser/css/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/css +END +filebrowser.css +K 25 +svn:wc:ra_dav:version-url +V 90 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/css/filebrowser.css +END diff --git a/apps/filebrowser/media/filebrowser/css/.svn/entries b/apps/filebrowser/media/filebrowser/css/.svn/entries new file mode 100644 index 00000000..e429ef4b --- /dev/null +++ b/apps/filebrowser/media/filebrowser/css/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/css +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +filebrowser.css +file + + + + +2009-11-05T20:58:49.000000Z +724fd235089ee5ad15499fcbe5ddfc88 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1637 + diff --git a/apps/filebrowser/media/filebrowser/css/.svn/prop-base/filebrowser.css.svn-base b/apps/filebrowser/media/filebrowser/css/.svn/prop-base/filebrowser.css.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/css/.svn/prop-base/filebrowser.css.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/css/.svn/text-base/filebrowser.css.svn-base b/apps/filebrowser/media/filebrowser/css/.svn/text-base/filebrowser.css.svn-base new file mode 100644 index 00000000..c68126ea --- /dev/null +++ b/apps/filebrowser/media/filebrowser/css/.svn/text-base/filebrowser.css.svn-base @@ -0,0 +1,29 @@ +.filebrowser table td { font-size: 10px; } +.filebrowser table a { font-size: 11px; } +.filebrowser thead th.sorted a { padding-right: 13px; } +.filebrowser td { padding: 9px 10px 7px 10px !important; } +.filebrowser td.fb_icon { padding: 6px 5px 5px 5px !important; } + +table a.fb_deletelink, table a.fb_renamelink, table a.fb_selectlink, table a.fb_showversionslink { + cursor: pointer; + display: block; padding: 0; margin: 0; + width: 23px; height: 17px; + background-color: transparent; + background-position: 0 center; + background-repeat: no-repeat; +} + +table .fb_deletelink:link, table .fb_deletelink:visited { + width: 15px; + background-image: url('../img/filebrowser_icon_delete.gif'); +} +table .fb_deletelink:hover, table .fb_deletelink:active { background-image: url('../img/filebrowser_icon_delete_hover.gif'); } +table .fb_renamelink:link, table .fb_renamelink:visited { + width: 14px; + background-image: url('../img/filebrowser_icon_rename.gif'); +} +table .fb_renamelink:hover, table .fb_renamelink:active { background-image: url('../img/filebrowser_icon_rename_hover.gif'); } +table .fb_selectlink:link, table .fb_selectlink:visited { background-image: url('../img/filebrowser_icon_select.gif'); } +table .fb_selectlink:hover, table .fb_selectlink:active { background-image: url('../img/filebrowser_icon_select_hover.gif'); } +table .fb_showversionslink:link, table .fb_showversionslink:visited { background-image: url('../img/filebrowser_icon_showversions.gif'); } +table .fb_showversionslink:hover, table .fb_showversionslink:active { background-image: url('../img/filebrowser_icon_showversions_hover.gif'); } diff --git a/apps/filebrowser/media/filebrowser/css/filebrowser.css b/apps/filebrowser/media/filebrowser/css/filebrowser.css new file mode 100755 index 00000000..c68126ea --- /dev/null +++ b/apps/filebrowser/media/filebrowser/css/filebrowser.css @@ -0,0 +1,29 @@ +.filebrowser table td { font-size: 10px; } +.filebrowser table a { font-size: 11px; } +.filebrowser thead th.sorted a { padding-right: 13px; } +.filebrowser td { padding: 9px 10px 7px 10px !important; } +.filebrowser td.fb_icon { padding: 6px 5px 5px 5px !important; } + +table a.fb_deletelink, table a.fb_renamelink, table a.fb_selectlink, table a.fb_showversionslink { + cursor: pointer; + display: block; padding: 0; margin: 0; + width: 23px; height: 17px; + background-color: transparent; + background-position: 0 center; + background-repeat: no-repeat; +} + +table .fb_deletelink:link, table .fb_deletelink:visited { + width: 15px; + background-image: url('../img/filebrowser_icon_delete.gif'); +} +table .fb_deletelink:hover, table .fb_deletelink:active { background-image: url('../img/filebrowser_icon_delete_hover.gif'); } +table .fb_renamelink:link, table .fb_renamelink:visited { + width: 14px; + background-image: url('../img/filebrowser_icon_rename.gif'); +} +table .fb_renamelink:hover, table .fb_renamelink:active { background-image: url('../img/filebrowser_icon_rename_hover.gif'); } +table .fb_selectlink:link, table .fb_selectlink:visited { background-image: url('../img/filebrowser_icon_select.gif'); } +table .fb_selectlink:hover, table .fb_selectlink:active { background-image: url('../img/filebrowser_icon_select_hover.gif'); } +table .fb_showversionslink:link, table .fb_showversionslink:visited { background-image: url('../img/filebrowser_icon_showversions.gif'); } +table .fb_showversionslink:hover, table .fb_showversionslink:active { background-image: url('../img/filebrowser_icon_showversions_hover.gif'); } diff --git a/apps/filebrowser/media/filebrowser/img/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/img/.svn/all-wcprops new file mode 100644 index 00000000..77268324 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/all-wcprops @@ -0,0 +1,203 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img +END +filebrowser_object-tools_icon_makethumb.gif +K 25 +svn:wc:ra_dav:version-url +V 118 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makethumb.gif +END +filebrowser_icon_delete.gif +K 25 +svn:wc:ra_dav:version-url +V 102 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_delete.gif +END +filebrowser_type_code.gif +K 25 +svn:wc:ra_dav:version-url +V 100 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_code.gif +END +filebrowser_icon_select_disabled.gif +K 25 +svn:wc:ra_dav:version-url +V 111 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_select_disabled.gif +END +filebrowser_type_.gif +K 25 +svn:wc:ra_dav:version-url +V 96 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_.gif +END +filebrowser_icon_rename_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 108 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_rename_hover.gif +END +filebrowser_type_image.gif +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_image.gif +END +filebrowser_icon_showversions_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 114 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_showversions_hover.gif +END +filebrowser_icon_makethumb.gif +K 25 +svn:wc:ra_dav:version-url +V 105 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_makethumb.gif +END +filebrowser_icon_select.gif +K 25 +svn:wc:ra_dav:version-url +V 102 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_select.gif +END +filebrowser_object-tools_icon_imagegenerator_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 129 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_imagegenerator_hover.gif +END +filebrowser_icon_show.gif +K 25 +svn:wc:ra_dav:version-url +V 100 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_show.gif +END +filebrowser_type_sound.gif +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_sound.gif +END +filebrowser_object-tools_icon_makedirectory.gif +K 25 +svn:wc:ra_dav:version-url +V 122 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory.gif +END +filebrowser_object-tools_icon_multipleupload_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 129 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload_hover.gif +END +filebrowser_icon_imagegenerator_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 116 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_imagegenerator_hover.gif +END +filebrowser_type_video.gif +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_video.gif +END +tableheader_arrow_up.gif +K 25 +svn:wc:ra_dav:version-url +V 99 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/tableheader_arrow_up.gif +END +filebrowser_type_folder.gif +K 25 +svn:wc:ra_dav:version-url +V 102 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_folder.gif +END +filebrowser_object-tools_icon_makethumb_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 124 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makethumb_hover.gif +END +filebrowser_icon_delete_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 108 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_delete_hover.gif +END +filebrowser_type_document.gif +K 25 +svn:wc:ra_dav:version-url +V 104 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_document.gif +END +filebrowser_icon_rename.gif +K 25 +svn:wc:ra_dav:version-url +V 102 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_rename.gif +END +filebrowser_icon_showversions.gif +K 25 +svn:wc:ra_dav:version-url +V 108 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_showversions.gif +END +filebrowser_object-tools_icon_imagegenerator.gif +K 25 +svn:wc:ra_dav:version-url +V 123 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_imagegenerator.gif +END +filebrowser_icon_makethumb_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 111 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_makethumb_hover.gif +END +tableheader_arrows.gif +K 25 +svn:wc:ra_dav:version-url +V 97 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/tableheader_arrows.gif +END +filebrowser_icon_select_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 108 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_select_hover.gif +END +filebrowser_icon_show_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 106 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_show_hover.gif +END +filebrowser_object-tools_icon_multipleupload.gif +K 25 +svn:wc:ra_dav:version-url +V 123 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload.gif +END +tableheader_arrow_down.gif +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/tableheader_arrow_down.gif +END +filebrowser_object-tools_icon_makedirectory_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 128 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory_hover.gif +END +filebrowser_icon_imagegenerator.gif +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_imagegenerator.gif +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/entries b/apps/filebrowser/media/filebrowser/img/.svn/entries new file mode 100644 index 00000000..69fc4e76 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/entries @@ -0,0 +1,1150 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/img +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +filebrowser_object-tools_icon_makethumb.gif +file + + + + +2009-11-05T20:58:50.000000Z +ac0b0f779a11e12c6fb9be3fd9dae3a9 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +403 + +filebrowser_icon_delete.gif +file + + + + +2009-11-05T20:58:50.000000Z +157eed9c0a8ce56cc2b75cb12065f1cb +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +151 + +filebrowser_type_code.gif +file + + + + +2009-11-05T20:58:50.000000Z +325e306d3e02c8acda7af6adfa7fe004 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +160 + +filebrowser_icon_select_disabled.gif +file + + + + +2009-11-05T20:58:50.000000Z +a0c268883018edf7fb7a89c8bd0818e3 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +3186 + +filebrowser_type_.gif +file + + + + +2009-11-05T20:58:50.000000Z +b5fac564ecb2166984dd3a2bbeed30f2 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +113 + +filebrowser_icon_rename_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +497f6c51d823c274a60fe2f0e62e5f0c +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +222 + +filebrowser_type_image.gif +file + + + + +2009-11-05T20:58:50.000000Z +f7ee32d90df4f4a881332f8792bff56c +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +127 + +filebrowser_icon_showversions_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +738f5047e56dfc42c27a2035264d9a5a +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +174 + +filebrowser_icon_makethumb.gif +file + + + + +2009-11-05T20:58:50.000000Z +ab37558a12a7ac398d70967cea5c2490 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +378 + +filebrowser_icon_select.gif +file + + + + +2009-11-05T20:58:50.000000Z +d5f9eece128537b385fbce97dbe845a1 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +377 + +filebrowser_object-tools_icon_imagegenerator_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +f7283a0d70fde92d648968b4d717b332 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +433 + +filebrowser_icon_show.gif +file + + + + +2009-11-05T20:58:50.000000Z +796cca444bccb1aa3a1177af34df2b55 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +427 + +filebrowser_type_sound.gif +file + + + + +2009-11-05T20:58:50.000000Z +4151664f192446c247002b107e7ef44b +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +223 + +filebrowser_object-tools_icon_makedirectory.gif +file + + + + +2009-11-05T20:58:50.000000Z +a0a9265b740291191ef495408d8462ee +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +390 + +filebrowser_object-tools_icon_multipleupload_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +9c8b269a5d21539c833af80f93f98857 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +263 + +filebrowser_icon_imagegenerator_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +f7283a0d70fde92d648968b4d717b332 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +433 + +filebrowser_type_video.gif +file + + + + +2009-11-05T20:58:50.000000Z +a4182f6abe9db217cfe9285bc4d658d8 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +147 + +tableheader_arrow_up.gif +file + + + + +2009-11-05T20:58:50.000000Z +54e3bf1ab4191c053d1f986da869b891 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +292 + +filebrowser_type_folder.gif +file + + + + +2009-11-05T20:58:50.000000Z +06bb3d324d86924674bd696673cf12b5 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +228 + +filebrowser_object-tools_icon_makethumb_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +ae1a740563fab6107c761690ba1ea4b0 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +284 + +filebrowser_icon_delete_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +3bc37e729ede0d78618286dcaaec4ecb +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +151 + +filebrowser_type_document.gif +file + + + + +2009-11-05T20:58:50.000000Z +69c60b7de4e9e07a111275424f8aea38 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +118 + +filebrowser_icon_rename.gif +file + + + + +2009-11-05T20:58:50.000000Z +74d609b1407d2ec6a06797be1fa252b4 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +222 + +filebrowser_icon_showversions.gif +file + + + + +2009-11-05T20:58:50.000000Z +5e1a776e0b8cf3a7f28f7a7fe10c04f3 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +174 + +filebrowser_object-tools_icon_imagegenerator.gif +file + + + + +2009-11-05T20:58:50.000000Z +67c3f4a7d6cecec501fdf0561c07a300 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +433 + +filebrowser_icon_makethumb_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +b53f0c3ec7e9ba09faaf184ae9b9e08e +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +378 + +tableheader_arrows.gif +file + + + + +2009-11-05T20:58:50.000000Z +9938865535b6e2225419b4c97fe3e5ab +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +296 + +filebrowser_icon_select_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +3b1c5ee35a836335a146e58ef96f5e6d +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +264 + +filebrowser_icon_show_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +d86a374f1f8fc4dc541d060151e3a3cc +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +426 + +filebrowser_object-tools_icon_multipleupload.gif +file + + + + +2009-11-05T20:58:50.000000Z +592061db6b21baef0214d5ca0db50318 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +387 + +tableheader_arrow_down.gif +file + + + + +2009-11-05T20:58:50.000000Z +b3e7bfc27c65b00e59b6c732fdeccc16 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +292 + +filebrowser_object-tools_icon_makedirectory_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +0969316f65cbce421d15ae05ed2b6806 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +378 + +filebrowser_icon_imagegenerator.gif +file + + + + +2009-11-05T20:58:50.000000Z +67c3f4a7d6cecec501fdf0561c07a300 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +433 + diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_delete.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_delete.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_delete.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_delete_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_delete_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_delete_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_rename.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_rename.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_rename.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_rename_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_rename_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_rename_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select_disabled.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select_disabled.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select_disabled.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_select_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_show.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_show.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_show.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_show_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_show_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_show_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_code.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_code.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_code.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_document.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_document.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_document.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_folder.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_folder.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_folder.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_image.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_image.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_image.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_sound.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_sound.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_sound.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_video.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_video.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/filebrowser_type_video.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrow_down.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrow_down.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrow_down.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrow_up.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrow_up.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrow_up.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrows.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrows.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/img/.svn/prop-base/tableheader_arrows.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_delete.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_delete.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..221a6e1c999ec8c06fd335a9e01dd5b7036153b2 GIT binary patch literal 151 zcmZ?wbhEHb3^g`se(q7##9ZC*V|ri*|tU6`*Zf{ ss#@)xQa$Q-PFA_e6lq9{2sX0Ai3i@c;k- literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_delete_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_delete_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..2a2142cd24559f609b7485dc3a8704bc6f91a897 GIT binary patch literal 151 zcmZ?wbhEHbQ*&yY^`I>@&8uKY#vY zKn03FSr{1@xEORm!XPskSX=^5dS>ftigR!JFR4(fpb@1pRfFU8w%1#>ZISl=oV~iL rR(q#ZkNTaHRc$ib_R zRvo>OJ7-V%;sf*cUP_p}?ev}Jr3?3OJaxNv`QfzbJM-u6?b~#E($=%BYmOH$*f(S6 zg~}xdr))d->f_h1KYpz_esj*Ai~s-sXP_BS{K>+|z@W&W1F`|+CkD222PPD71oHHs zcyj!Lr;F8m|01nF1x5^ht;$Q~7Bf$%u<593W$T;atgymS>VoB!lMPqo_&FF(DV!7F ztYMLJl4Ggn6lhgsQ>=7imCkB$?vRmYWt3**ncY(&S}o-y#Z=3|C?~$@|H7s&Y zaxB%Hyse6?ij_`m(pfFe9Wv5v4AKmIvwKR!s->Ky7;8BgT5}4=KJ2PzQ7ITz4r2MrH=sRlw^Vxhu literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_makethumb.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_makethumb.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..837f6cc64594891003050b21eae4583de34cd1df GIT binary patch literal 378 zcmZ?wbhEHbG-8ltI3mgL;MK=>U%uaa`Qhx{7x{Dd=FQ#Hy!u$h;)8|r_Z_|Qq;%o_ z&)6OpaO&B+FEz^!fB*UW&hz(=UVqwi@xi(ix4Jf*y!7DJ-b)Xwmmd26|33o; zQ2fcl$iN`UpaYTt*~!5AJt0JqBTU1+P@%PRN&6+c-~!G=qCC!Jw|95vGn`4);pS02 zoMScroHw)AS}WBiXEnwXC2QmIm6{o6&u46%&R{Tum%;3(&v(%og-tUR=3hU{n3~JN zlg7hRP*)$uRNn2E+8-*;G0Au0w1B9YGiLgV_f4BSPm(!n&Jw@OIJTCyj@ZTX7F5(! z*KV50)RdE#P*AjU8q?I6#DrLe{{46F-rc=>x1ph-q@?7?kt4aexdjCUpFVvG4Grz+ z=y>+*Sw%%fTU*V!Y8L$DxpDc_F z3=#}FAW4v&46NT3p2)PbDzFB~G*m8Oy<|2qfY(_yM!f9y?ymPtXAG%j zS0Bb))$N3%w=xM z$xA3G+A)K9YD{86EMxM)X`;MNlY*A}@oyME*54Q`%Gi_hPiE6)6I`IDzJL?689 zXJ&dcjoJ1?|En+k@4t78zy6hG{_ho!#|2%587yo9Y7ZVBp37I~+{N)Qk@@&xIeR&- Pl@2cMeVh_b3=Gx)R6L+? literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_rename.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_rename.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..bc45fe4b0d867b6bb5e5c484181f6b3765f3b356 GIT binary patch literal 222 zcmZ?wbhEHbfc;6e{a^zT@$yQUa;>{ z*`oa^)3*0)IJx=Mt*RvlpT7Cfx&B1l#I5f?ea)D$^Y+s>d2{wm+kUob)zMiy&;R`S zlK~Yd{$ycfV31&IGJM5 z(7DRVQ=(S$(h(zrIIb4a3o{&#giL4sUJ%Jy;r4(lsX{_oY^m3R12RHpH&t&>U`f$o Q5f`g(5R+(aP-L(M09w*u`Tzg` literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_rename_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_rename_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..be8ea08bad75629c9ae3e26f607d72d2afae5972 GIT binary patch literal 222 zcmZ?wbhEHbWMpJ=a`OB4?{D3@m6eq>dGh4Cy1MDpr~mxL9u@t06G*kXGD@kif1t5jPDIXM`#go=h=d=vrlD zDN(B_bkxWoPN+rn!VJeFA>wS?3nDoy+#YBxs*sQtTk4f?K!nfirt0nqEGarH;$rm; LViK(liVW5O_r+8O literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..a83842792eb98e4624be9f93a239404f9fc02c69 GIT binary patch literal 377 zcmZ?wbhEHb6lV}*xXQqgJazly*B|EZzmhy{$CPbnlc#N8e&pKRy_e_hyF6#l<(a!K zt~`1pW9H7bb;n!R9`Do=mw{oH)%*+TNfK+LIv1`fJN;J3_Q8eMd9F~!$*#~$e%cQ>hu{EQ5Kntmo8tq%;M$jam(Gy Hk--`OKxUQr literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select_disabled.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select_disabled.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..60ad2d53017896c347035e8d6c85841bba558a95 GIT binary patch literal 3186 zcmZ?wbhEHb6lV}**v!rF{{8z$j~;#c^y%r-r$2xGynXxj{rmS%pFaKa<;!#D&K*B~ z{Li013`junKX-(0fPzb6Ng|N8v9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrY zb81GWM^#a3aFt(3a#eP+Wr~u$9hXgoRYh(=ZfZ%QLPc&)Ua?h$tx{r2ep0FxkPQ;n zS5g2gDap1~as){zfb4Y6FG^J~(KFIB(oHrnGgdG))-yIWGBYyKQ7|$vu+TR!*EcrM zHMFoYFtsuOB2#6Ujsl~}fnFS@8`FRQ;GZT~YOG|8(lz{RIP{UJ_ z;bs?<7Uh6VPD$2J%}LEo%_}L^H`FuKM^+CEiJ;8%jFMuww!C6JaA@cy=jZBIBo+X* z80Z&))j)K@wOIKk7G@=_(1{>FDA=SVTR}_$b0MB` z%qfBJAl#fxkWZ{~67$k+l`3>oQqvMkb4rx-p*r+I{)TC>(ML7V24Q_@abkLENNQ1T zF}1A1Wws62Nk~xxv=AZ&jB;RV(}yQFs5hZ0gH{wcG0@6zn7N~tz(Rs3dNjC*3MQDM z(cprG1X1*8a1j+uFh!%m1q%tH=+WRJDwtr3@C6qaqQRP)2W&T$1Dm6a|Ns5{^ZVD& zAK$-y{qp(K#}Dt{y?yig)yo&ppFMr@_|d}$_wU`kbNklK8`rO0y>j`|#S7=pojr5< z)X5Xaj~zX7_|U-v`}ghLvwPRh9ox5U-LiSp#trM&tzENv)yfsimn~hgc+tWI^XJW- zGkey|8PlgtoicgS#0mXjScm6wKdgMl@;Y>r6t8hg$4O}xjETc znHlM6sVT`xi3#y>u`$t6krClxp&`LRfdT%0zCPYwo*wRQt}f0_jt=&Awl>yQmKNq_ zrY6Qlh6eh2x;olgni}eAsw&D#iVE^_vNFLTu55C-@o1^WhbgDyw=gg~>6zP{%24eXe(Am8LBVo2p&qHloeT`t02tP$ A1poj5 literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_select_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..319558e9e216fe26b188aa4bf18498800e8ad3cd GIT binary patch literal 264 zcmV+j0r&n#Nk%w1VHW@q0K@PyiHV7|wY7qRf}EV3m6ercWo3qjhF@P_zP`S_y}i7=yu-u8y1Kf+z`(-7!n?b> zzrVk^xw*l?!FG0bA^8LV00000EC2ui02cre000GrARv8YX`ZGe9#`wW@Oz9}ZQpoK zdVKHyz#VWnBxR1sq;g5(IG@f314?x^osfjnATU&^B#KyopbP{9v3jj0Ro)XsU=n!S z?{|`AKXK6afPsP}8-)`S3IzoXg^iAlgoP1@hYOFF8zdN;oSmMZBpsroq@|`G5(K8J OrUWV@D6uChApkpD3V6-{ literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_show.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_show.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..dded982483f505f834dd3d934926cfd4549295bf GIT binary patch literal 427 zcmV;c0aX4+Nk%w1VHyAy0M$PLroz?G-{@SCw4lDzbfLe&)Zt*1w&UyYwanaEkF#5l zw9ehhSd5=zpvBha%_Hjc!Yd?Wq*K+c7=yc3myy%4;wp9 zf{Q2u4FwAsEi*QQeR~H#Faj)ODjy*eiHkoX4Q>zy1+k@tKMXl;H60f}0H=#L3vUu6 zLIcKg4<&9cJs3|!Nk%^dI23IT0$Z{_F*6zvDL*<61_=n`P8BZ(AQCbHCkYDg@INC3 VD@XvKfj~h54*ldrun-{#06T(R*Bk%< literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_show_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_show_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..fbd1f33e8a87edd697b4604202f8e8117a109c19 GIT binary patch literal 426 zcmV;b0agA-Nk%w1VHyAy0M$GI&(F`Kq@=U6v!0%wadB~2SXfn6Rn5)Km6es^;^M%- zz+7BhYHDi4#KdJ~Wv{QVczAe{l9E?fSAl_n;NakiiHV1Yhu+@ad3kxFqN2{u&h+&3 z`1tr+TU%OMT8M~+5}eeV?D7VPRqE>FMt7?q_Fbii(Ps zmX`YZ`c_s}>gwvk!oq%je)IG5@$vDov9V-iWNvP5(b3VDmzQ>ScFD=f`}_L<00000 z00000A^8LW002AyEC2ui02%-m000KZKpr5FD;kf;TmZmpHUR^IZc43Mb%X)a8IWGT zRYJhY%Yo0-99d0nyVvlyJlby@3bCbyJPt8#E*1zp0jG;72X6=w zLIcKg3^i^WIvGzyNk%*aH!y7t1vs)!BP1pi96U1(3kCw?P8S#p9|#ZyF9s6t@H{jM UEg~!tAi;o#esTnK5D)|aJ402uh5!Hn literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_showversions.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_showversions.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..71525d74bd7c4e2a50d12872b1e29409f5b9cd12 GIT binary patch literal 174 zcmZ?wbhEHb6lV}**v!eW>*D`^A`SjY8H}5`woxShU`qQ^}UwqKB<;o^WBJn3x7 NdFp8TK@~v;YXE+{MRfoG literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_showversions_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_icon_showversions_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..1fbe2e49b7e7649cfcbfe2153ddc48ee189766f9 GIT binary patch literal 174 zcmZ?wbhEHb6lV}**v!eWW5+Z^fq|1j2P6YBgMlU5K$WRyuSK+jibRk`-$Mo#)wjd6 zd*q-a)xUr4lLy>}!VV8N|LoD59loNd<7rlNWR}ny(fXx#Uwu1a_Rr_gI*x-2PdZz2 No;sR-P(_fz8URj!LtFp= literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..9b19a420dcbc9249fa59c134357c0a02e0b60a19 GIT binary patch literal 433 zcmZ?wbhEHb6lV}*xT?r7Ve^@5kKc4}IMuxRSoP9F+t1xwbl}R8LsuWX`dGi>$ib_R zRvo>OJ7-V%;sf*cUP_p}?ev}Jr3?3OJaxNv`QfzbJM-u6?b~#E($=%BYmOH$*f(S6 zg~}xdr))d->f_h1KYpz_esj*Ai~s-sXP_BS{K>+|z@W&W1F`|+CkD222PPD71oHHs zcyj!Lr;F8m|01nF1x5^ht;$Q~7Bf$%u<593W$T;atgymS>VoB!lMPqo_&FF(DV!7F ztYMLJl4Ggn6lhgsQ>=7imCkB$?vRmYWt3**ncY(&S}o-y#Z=3|C?~$@|H7s&Y zaxB%Hyse6?ij_`m(pfFe9Wv5v4AKmIvwKR!s->Ky7;8BgT5}4=KJ2PzQ7ITz4r2MrH=sRlw^Vxhu literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..bcd98d910e41a0b900208c4a13c63dc75fc87851 GIT binary patch literal 390 zcmZ?wbhEHb6lV}*xT?mm_tL}W)yIk#9!QwH?cmi%v-Vuxboy?`x)WQ^+}(BQ(e`uq z7aq8}{?wgyC+|Fa_hrHUD?fk#nYH`khSPT&R~>C%dt%bov&9SdAHM$d(DkPWu0B3^ z?a7fF&yL=FK5hHCeU~5ZyYguNmB+_#zdU~X#j#t@tCt>{v*+Uf|Nj}N2NZv@FfuTx zG3bDd1o?@9ZLx#!LKht&&SguAR_Zv;Q0pkH@{wB*@j}$`WySsnAGRAgPT*R&rRr>) zxQEKb8o%|oA1>ZgcmDlkCQg~A=4K|QmKIJ%RUzrV{{FTJ6NFrN#AnPD7ZYPDef!u{8MqaWpE!ByBsT*Czx>5Z gm#-L?ycLW*u7z>^}efErz&ym3z0O~%ZoB#j- literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..f9938c77358bf75c2a62bd116feb463f9daefc6a GIT binary patch literal 378 zcmZ?wbhEHb6lV}*xT?Ugd-v|ut5?Uw#1s@1G&D5KojZ5arcK+nZTs=#M@vh~mMvS> ztXVT}-n+7qlt7~p<&d<+3c<|u9eftg^I526_q{D{~mzS6C z-@kwF-o1PF>^XGk(9D@L|NsBbKue(blZBCiL4iRBWC_Sm3~bXKE6A z>@4!!;@v$x&Aq+cE{xJsr%8*5Ffq-XK9zCuys0y1&z-kGo=a@?nl&@muH|y!mD##& w+sy6TdF2^+b{#k5x1M_t)xUZ3xd*F{-6&ghaP!&w z#S8YWIdN<4iCde_-YZ_XzjV=omNmyZH=N3tv8#K-se@M^@4xcs`0W=b?!4T0`QiSn zk5Aowz4!9N!`Gi4x$*4i&F6=%KRI^m#mT#`s+S&OpaD?)$pSW22SkGW#K5-U0As3) zj#R%}*Mtq3R`V~YCu&R*aS5MTc6zUviqfJN29_#2GIE=0IQk7FTooAB-+oxkI;W!0 zfr(ALskud*jZuJ4+(ogsuYbZs7x^hur%j*XA~$=^+v*Q|9B z<>hB!6WzLPyC@q2Kd-2ZloSsG!-1p64jkq=;3CGvz{D+f>GBmZ?sH6HE|P*AlJ_JZ eK6-qQLr_v#ghl4f+jsBZ1v`0s@$hnFum%9vK$rLc literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..b9aba7cc3bbadfb69d72df995022021186aa67a9 GIT binary patch literal 284 zcmZ?wbhEHb6lV}*IKsfNa^=d<(9mbko~>B1V%@rR1qB5S4GsDE`FVMHEiEmDg@vnD zt?KCLSigRKQc_ZKa`KTQNA~U8w`b3uLx&C>IB?+L!GpVZ@7}w2@8QFTj~+d`fB*jS z@^S_wp!kyo%+mppAUhdYXD&F9lae`4O*ty^^}Y|;y^)tv%KzN+oiuU6vBe7;B>Fu% zoNhEsFpxO(m~m~?!eFK^o*Fhx*9#s5UYMlzVoTLowa|MXcGUPSy7B(Uo_R}N{{G+4 zSku_jq9Vx6&c`U&+t)A1$j8nts3I=Tz{fXZ?z|bZ8D>nM#lSIt1;7{ literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..6de016befe3eafe2d573b19f7b19d6b259f8fb23 GIT binary patch literal 387 zcmZ?wbhEHb6lM@)xT?c&{PxR=B?lW<9XoO7<<3iwD;6JYTz%~5jVDd3k8M47fBX4| zyDmMRv*+U0^AA=XyVbDjX!Gi04J(hXIev4;#YgokkM6keaOt6I8_(Q7dG}S*>f;^j zPc1ogb>HQO$8WzlaP{%NE06YHd3^BNlVi7@AG-eZ=*{PqOAb{pJ#_Eoha)$hegFCU z@b#xtww?R`|33q{K=CIFBLjmD5CQ?nPYi4e9HteV@LKD$TBOj^Buj6mN^z!(jsbT| zNmPs^N3+4f4NKRt2scF83QlQtb6o1YzFaF$wdQL;$G?UKF8&}lL0*;4u5J}xL1`T! z5l)S%)22`36cJM6)0)3v;UYdY0oCQK%BxndW?il-prfwNuBy0w#|~BY%`WPyat99` tQdRfauW<6zsiVgkk$au_Kol#8Y)@>QFE5ST!j~+kfadBj@1^~Uqr<(u( literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..eaaf2542003b69acbbe664dbd9bbf14620caf03b GIT binary patch literal 263 zcmV+i0r>t$Nk%w1VG{rm0K^;sva+(Xv$LY2qQu0+rKP2`w6w9Yv2k&6u&}V1nVEoq zfU2shsi~=de}BWn!@j=0!NI|IcX!?0-N3-WkdTmidV2Qu_Po5j!otFIbacJFy}!S| z|Ns900000000000A^8LW000~SEC2ui022Ta000GqASaHTMMacFuB6#8Rm!erRSZR} z&Lvd^j$lAHs{w;TV#^1>IG-4RvR7$Bp;B4R0O@+a5JN@4SyT{{w0f;ZR2C7!W=^l$ z2@yqRf3VjNdl?EG5)uO$4~dG383TnR5*Zqkl$03~ERmI)mzfzCprN6iE0F@Cp#r2U N2@$TZuL&d}06R7Tan}F< literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..6a908e27a004f5d80984c2e4d151482cc81274fb GIT binary patch literal 113 zcmZ?wbhEHb6lV}*Sj58c>C>mXckdoKa%A`J-T(jpXMh34pDc_F3@i*fAOVnC24*u3 zqdWinRyeHM`=f2@?)12d#zh`wz7eZ{KPoLhsd-ueN6W_jl`}FD4kt0WT@813Y|9=K-K=CIF zBLf2mgAPa%WCjC^?}i!9tM^{>Xx#Pxfx1s(W>DI%g{w~039V?&XFs!nv7xk~dD4Mb w8Xo#{orCut|epYrk;LYdB+hQ*3>*~ZwTBJ@)Ys!o_5oE9i0Lf=Sh5!Hn literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_document.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_document.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..65ebd99bcd39b33cd649d9a35666ce3db9d1b83b GIT binary patch literal 118 zcmZ?wbhEHb6lV}*Sj5Wk>C>mXckdoKa%A`J-Pf*N`~Uwx0~jd&WMO1rU}ew&@jz-B zn5{XC?)>vx5wL3SkG841)8i@{MHA;`WKB#uvCLo>-`XF?KE~`W={&qE_W8HTp%I4y T^(}=0W=!p6a%%MuVz34PP{A>O literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_folder.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_folder.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..115e3fbd1d46b7d4f784333bf80a94eec5bd0b13 GIT binary patch literal 228 zcmZ?wbhEHb6lV}*I3mn&^XAQ~SFi5hzyHXQBU`s_J%9fEhYue%Y}oMo_wNfAF05a_ ze&fcCYuB#5bm`K80|z#5-hAlLp;fC^J$Ufo|Ns9CL;%H~EQ|~c!VEefwIDkgSQ8(x zIHY(o1+QAC)v`f2>0G+k0gD>-Gmrltc#tpX>B2B+Nzus|CZ&nXO1S1mO&4VSWW}n% z!uxKEB18Am6!#xzaxAXA`L6MM!p823O4qDuI`>5b~Z%@YXF`N BTWSCR literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_image.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_image.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..000b31c120da8912e9b55d8c0dc9d4e167c0383e GIT binary patch literal 127 zcmZ?wbhEHb6lV}*Sj5Wk>C>mXckdoKa^%{zYrA*v{{R0!0~jd&WMO1rU}ew&@jz-B zm|ZxW?)>vx5wL3SkG841)2}M@rD%pF7*^bkTB29Ib3@NXmyGin>)wgY;rmhjGs!wp caD~gQS<7CmaDOAfGG$fj;)V*vNh}Q303xzBCIA2c literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_sound.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_sound.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..8a8970ab039660d6211c4ac19f43ab0262461a66 GIT binary patch literal 223 zcmZ?wbhEHb6lV}*I3mDs_wL<~A3uKm`t{SNPq%K}`t#?{nKNe|K79D($&(8gE?m2I z?fLWPmoHyFa^%R#lP7oY-u?goe+E*3;!hSv1_l8J9grrFoeZoo4=&iGWX?-dW(s({ z?*n&FVeaIze~-3qkl|`ye5_lt#pBW8XC49qjfrbGidkZUB)+B|)tY&|`2#mI2XoVt ml1Nc5E_bG%M+;6UvL5VRdph@b6t7N$p|O%ihlZ9SgEat3M_AVY literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_video.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/filebrowser_type_video.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..f456d59b889aca17cf669b83a8d569dedd51dbac GIT binary patch literal 147 zcmV;E0Brw9Nk%w1VHW@q0HOx~^78WC-QC2*#Omtm_4W0;ySvub*8l(iA^8LW000L7 zEC2ui02cre000A62vXesPN;CIz4(TeyJwXlj$|oT;9;oj>bC5Wnly_v~ewN@&$E)~&x17c3L`s*_=HZ!)s%kawYYck{LtvWM!$t`xZO=vlsY4_Q06V0Y BMb-cS literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrow_down.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrow_down.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..5ae95a6063d0fec875a6475346f8768096dbbeae GIT binary patch literal 292 zcmZ?wbhEHb6lY*%xXQrr|NsBLfB*jZ`|tbD-`{@x{{H>@r>{R>z5n{=&6_8$K0SN( z?Ara;M=w1-bpGM)Q}?zWy?x-ofwlXu@7}$8$&Sm5wq07V_2T?37iVrbH)Zwd<;#~Z zS+b;i$??_&N1Epyo;Gb-<+Od>-Q5|T+fv)N)Ya7$78Vv16y)XQWo2chrKK@Y11SDv zVPppyqysVx6Dmd*Ib|mZ2@8fcX{?uad+fx(VzT_9X0b1qhFD7K iBoWS?@&3-Y({3o1D>SOWkC18<=K literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrow_up.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrow_up.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..85f1e12690c4fc2b4f2919490a49b0244c29e0e5 GIT binary patch literal 292 zcmZ?wbhEHb6lY*%xXQrr|NsBLfB*jZ`}aE#{P^|t`>&5*zQ26?`OTX*&z?Pd^!)wJ zn>P=gy|eGst?fsy9XN1cC+Ryq58x*K+1w|nc0${N;ZZ@*2Q~5 mwwykocGWj^nyj01u!FYhioEY%0<;`dJj=M%s;V>{8LR>Ea(Ai# literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrows.gif.svn-base b/apps/filebrowser/media/filebrowser/img/.svn/text-base/tableheader_arrows.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..39b8780cc12959337ee2fa5bab4885310c6b48d4 GIT binary patch literal 296 zcmZ?wbhEHb6lY*%xXQrr|Ns9#fB*gY`}h0L-`{@x{{G|F*YCeRef|0I%lB9BzrK9? z`N^wKkDkB3cK`L!OOFqoe|YHZoqeZn?LKvH>(SfWk6hch|ML2Mm)7pTzH-O8<=f9L z*>QQ%wo41PUYx(>;`|LKXKpw*XWj8xYmd!bb8O1$)03AU>RxiZchUaV1xK3a9d4Pu zt8Uu1%4z#*rfeKXM1I3>#jO;+wIv^b&KQXYm9tb<;v?U>l ztD$IR%z_xsRM*e|B_EMx+n!X^a4;}>Ea9o#a{9os#ZNM(X?nDzIB2UcZ~SC1NkdY{ Sz_W~3TU@w9SX|$c!5RR}h>&0a literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_delete.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..221a6e1c999ec8c06fd335a9e01dd5b7036153b2 GIT binary patch literal 151 zcmZ?wbhEHb3^g`se(q7##9ZC*V|ri*|tU6`*Zf{ ss#@)xQa$Q-PFA_e6lq9{2sX0Ai3i@c;k- literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_delete_hover.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_delete_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a2142cd24559f609b7485dc3a8704bc6f91a897 GIT binary patch literal 151 zcmZ?wbhEHbQ*&yY^`I>@&8uKY#vY zKn03FSr{1@xEORm!XPskSX=^5dS>ftigR!JFR4(fpb@1pRfFU8w%1#>ZISl=oV~iL rR(q#ZkNTaHRc$ib_R zRvo>OJ7-V%;sf*cUP_p}?ev}Jr3?3OJaxNv`QfzbJM-u6?b~#E($=%BYmOH$*f(S6 zg~}xdr))d->f_h1KYpz_esj*Ai~s-sXP_BS{K>+|z@W&W1F`|+CkD222PPD71oHHs zcyj!Lr;F8m|01nF1x5^ht;$Q~7Bf$%u<593W$T;atgymS>VoB!lMPqo_&FF(DV!7F ztYMLJl4Ggn6lhgsQ>=7imCkB$?vRmYWt3**ncY(&S}o-y#Z=3|C?~$@|H7s&Y zaxB%Hyse6?ij_`m(pfFe9Wv5v4AKmIvwKR!s->Ky7;8BgT5}4=KJ2PzQ7ITz4r2MrH=sRlw^Vxhu literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_makethumb.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_makethumb.gif new file mode 100644 index 0000000000000000000000000000000000000000..837f6cc64594891003050b21eae4583de34cd1df GIT binary patch literal 378 zcmZ?wbhEHbG-8ltI3mgL;MK=>U%uaa`Qhx{7x{Dd=FQ#Hy!u$h;)8|r_Z_|Qq;%o_ z&)6OpaO&B+FEz^!fB*UW&hz(=UVqwi@xi(ix4Jf*y!7DJ-b)Xwmmd26|33o; zQ2fcl$iN`UpaYTt*~!5AJt0JqBTU1+P@%PRN&6+c-~!G=qCC!Jw|95vGn`4);pS02 zoMScroHw)AS}WBiXEnwXC2QmIm6{o6&u46%&R{Tum%;3(&v(%og-tUR=3hU{n3~JN zlg7hRP*)$uRNn2E+8-*;G0Au0w1B9YGiLgV_f4BSPm(!n&Jw@OIJTCyj@ZTX7F5(! z*KV50)RdE#P*AjU8q?I6#DrLe{{46F-rc=>x1ph-q@?7?kt4aexdjCUpFVvG4Grz+ z=y>+*Sw%%fTU*V!Y8L$DxpDc_F z3=#}FAW4v&46NT3p2)PbDzFB~G*m8Oy<|2qfY(_yM!f9y?ymPtXAG%j zS0Bb))$N3%w=xM z$xA3G+A)K9YD{86EMxM)X`;MNlY*A}@oyME*54Q`%Gi_hPiE6)6I`IDzJL?689 zXJ&dcjoJ1?|En+k@4t78zy6hG{_ho!#|2%587yo9Y7ZVBp37I~+{N)Qk@@&xIeR&- Pl@2cMeVh_b3=Gx)R6L+? literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_rename.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_rename.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc45fe4b0d867b6bb5e5c484181f6b3765f3b356 GIT binary patch literal 222 zcmZ?wbhEHbfc;6e{a^zT@$yQUa;>{ z*`oa^)3*0)IJx=Mt*RvlpT7Cfx&B1l#I5f?ea)D$^Y+s>d2{wm+kUob)zMiy&;R`S zlK~Yd{$ycfV31&IGJM5 z(7DRVQ=(S$(h(zrIIb4a3o{&#giL4sUJ%Jy;r4(lsX{_oY^m3R12RHpH&t&>U`f$o Q5f`g(5R+(aP-L(M09w*u`Tzg` literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_rename_hover.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_rename_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..be8ea08bad75629c9ae3e26f607d72d2afae5972 GIT binary patch literal 222 zcmZ?wbhEHbWMpJ=a`OB4?{D3@m6eq>dGh4Cy1MDpr~mxL9u@t06G*kXGD@kif1t5jPDIXM`#go=h=d=vrlD zDN(B_bkxWoPN+rn!VJeFA>wS?3nDoy+#YBxs*sQtTk4f?K!nfirt0nqEGarH;$rm; LViK(liVW5O_r+8O literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_select.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_select.gif new file mode 100644 index 0000000000000000000000000000000000000000..a83842792eb98e4624be9f93a239404f9fc02c69 GIT binary patch literal 377 zcmZ?wbhEHb6lV}*xXQqgJazly*B|EZzmhy{$CPbnlc#N8e&pKRy_e_hyF6#l<(a!K zt~`1pW9H7bb;n!R9`Do=mw{oH)%*+TNfK+LIv1`fJN;J3_Q8eMd9F~!$*#~$e%cQ>hu{EQ5Kntmo8tq%;M$jam(Gy Hk--`OKxUQr literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_select_disabled.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_select_disabled.gif new file mode 100644 index 0000000000000000000000000000000000000000..60ad2d53017896c347035e8d6c85841bba558a95 GIT binary patch literal 3186 zcmZ?wbhEHb6lV}**v!rF{{8z$j~;#c^y%r-r$2xGynXxj{rmS%pFaKa<;!#D&K*B~ z{Li013`junKX-(0fPzb6Ng|N8v9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrY zb81GWM^#a3aFt(3a#eP+Wr~u$9hXgoRYh(=ZfZ%QLPc&)Ua?h$tx{r2ep0FxkPQ;n zS5g2gDap1~as){zfb4Y6FG^J~(KFIB(oHrnGgdG))-yIWGBYyKQ7|$vu+TR!*EcrM zHMFoYFtsuOB2#6Ujsl~}fnFS@8`FRQ;GZT~YOG|8(lz{RIP{UJ_ z;bs?<7Uh6VPD$2J%}LEo%_}L^H`FuKM^+CEiJ;8%jFMuww!C6JaA@cy=jZBIBo+X* z80Z&))j)K@wOIKk7G@=_(1{>FDA=SVTR}_$b0MB` z%qfBJAl#fxkWZ{~67$k+l`3>oQqvMkb4rx-p*r+I{)TC>(ML7V24Q_@abkLENNQ1T zF}1A1Wws62Nk~xxv=AZ&jB;RV(}yQFs5hZ0gH{wcG0@6zn7N~tz(Rs3dNjC*3MQDM z(cprG1X1*8a1j+uFh!%m1q%tH=+WRJDwtr3@C6qaqQRP)2W&T$1Dm6a|Ns5{^ZVD& zAK$-y{qp(K#}Dt{y?yig)yo&ppFMr@_|d}$_wU`kbNklK8`rO0y>j`|#S7=pojr5< z)X5Xaj~zX7_|U-v`}ghLvwPRh9ox5U-LiSp#trM&tzENv)yfsimn~hgc+tWI^XJW- zGkey|8PlgtoicgS#0mXjScm6wKdgMl@;Y>r6t8hg$4O}xjETc znHlM6sVT`xi3#y>u`$t6krClxp&`LRfdT%0zCPYwo*wRQt}f0_jt=&Awl>yQmKNq_ zrY6Qlh6eh2x;olgni}eAsw&D#iVE^_vNFLTu55C-@o1^WhbgDyw=gg~>6zP{%24eXe(Am8LBVo2p&qHloeT`t02tP$ A1poj5 literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_select_hover.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_select_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..319558e9e216fe26b188aa4bf18498800e8ad3cd GIT binary patch literal 264 zcmV+j0r&n#Nk%w1VHW@q0K@PyiHV7|wY7qRf}EV3m6ercWo3qjhF@P_zP`S_y}i7=yu-u8y1Kf+z`(-7!n?b> zzrVk^xw*l?!FG0bA^8LV00000EC2ui02cre000GrARv8YX`ZGe9#`wW@Oz9}ZQpoK zdVKHyz#VWnBxR1sq;g5(IG@f314?x^osfjnATU&^B#KyopbP{9v3jj0Ro)XsU=n!S z?{|`AKXK6afPsP}8-)`S3IzoXg^iAlgoP1@hYOFF8zdN;oSmMZBpsroq@|`G5(K8J OrUWV@D6uChApkpD3V6-{ literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_show.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_show.gif new file mode 100644 index 0000000000000000000000000000000000000000..dded982483f505f834dd3d934926cfd4549295bf GIT binary patch literal 427 zcmV;c0aX4+Nk%w1VHyAy0M$PLroz?G-{@SCw4lDzbfLe&)Zt*1w&UyYwanaEkF#5l zw9ehhSd5=zpvBha%_Hjc!Yd?Wq*K+c7=yc3myy%4;wp9 zf{Q2u4FwAsEi*QQeR~H#Faj)ODjy*eiHkoX4Q>zy1+k@tKMXl;H60f}0H=#L3vUu6 zLIcKg4<&9cJs3|!Nk%^dI23IT0$Z{_F*6zvDL*<61_=n`P8BZ(AQCbHCkYDg@INC3 VD@XvKfj~h54*ldrun-{#06T(R*Bk%< literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_show_hover.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_show_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..fbd1f33e8a87edd697b4604202f8e8117a109c19 GIT binary patch literal 426 zcmV;b0agA-Nk%w1VHyAy0M$GI&(F`Kq@=U6v!0%wadB~2SXfn6Rn5)Km6es^;^M%- zz+7BhYHDi4#KdJ~Wv{QVczAe{l9E?fSAl_n;NakiiHV1Yhu+@ad3kxFqN2{u&h+&3 z`1tr+TU%OMT8M~+5}eeV?D7VPRqE>FMt7?q_Fbii(Ps zmX`YZ`c_s}>gwvk!oq%je)IG5@$vDov9V-iWNvP5(b3VDmzQ>ScFD=f`}_L<00000 z00000A^8LW002AyEC2ui02%-m000KZKpr5FD;kf;TmZmpHUR^IZc43Mb%X)a8IWGT zRYJhY%Yo0-99d0nyVvlyJlby@3bCbyJPt8#E*1zp0jG;72X6=w zLIcKg3^i^WIvGzyNk%*aH!y7t1vs)!BP1pi96U1(3kCw?P8S#p9|#ZyF9s6t@H{jM UEg~!tAi;o#esTnK5D)|aJ402uh5!Hn literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_showversions.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_showversions.gif new file mode 100644 index 0000000000000000000000000000000000000000..71525d74bd7c4e2a50d12872b1e29409f5b9cd12 GIT binary patch literal 174 zcmZ?wbhEHb6lV}**v!eW>*D`^A`SjY8H}5`woxShU`qQ^}UwqKB<;o^WBJn3x7 NdFp8TK@~v;YXE+{MRfoG literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_icon_showversions_hover.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_icon_showversions_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..1fbe2e49b7e7649cfcbfe2153ddc48ee189766f9 GIT binary patch literal 174 zcmZ?wbhEHb6lV}**v!eWW5+Z^fq|1j2P6YBgMlU5K$WRyuSK+jibRk`-$Mo#)wjd6 zd*q-a)xUr4lLy>}!VV8N|LoD59loNd<7rlNWR}ny(fXx#Uwu1a_Rr_gI*x-2PdZz2 No;sR-P(_fz8URj!LtFp= literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_imagegenerator.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_imagegenerator.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b19a420dcbc9249fa59c134357c0a02e0b60a19 GIT binary patch literal 433 zcmZ?wbhEHb6lV}*xT?r7Ve^@5kKc4}IMuxRSoP9F+t1xwbl}R8LsuWX`dGi>$ib_R zRvo>OJ7-V%;sf*cUP_p}?ev}Jr3?3OJaxNv`QfzbJM-u6?b~#E($=%BYmOH$*f(S6 zg~}xdr))d->f_h1KYpz_esj*Ai~s-sXP_BS{K>+|z@W&W1F`|+CkD222PPD71oHHs zcyj!Lr;F8m|01nF1x5^ht;$Q~7Bf$%u<593W$T;atgymS>VoB!lMPqo_&FF(DV!7F ztYMLJl4Ggn6lhgsQ>=7imCkB$?vRmYWt3**ncY(&S}o-y#Z=3|C?~$@|H7s&Y zaxB%Hyse6?ij_`m(pfFe9Wv5v4AKmIvwKR!s->Ky7;8BgT5}4=KJ2PzQ7ITz4r2MrH=sRlw^Vxhu literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory.gif new file mode 100644 index 0000000000000000000000000000000000000000..bcd98d910e41a0b900208c4a13c63dc75fc87851 GIT binary patch literal 390 zcmZ?wbhEHb6lV}*xT?mm_tL}W)yIk#9!QwH?cmi%v-Vuxboy?`x)WQ^+}(BQ(e`uq z7aq8}{?wgyC+|Fa_hrHUD?fk#nYH`khSPT&R~>C%dt%bov&9SdAHM$d(DkPWu0B3^ z?a7fF&yL=FK5hHCeU~5ZyYguNmB+_#zdU~X#j#t@tCt>{v*+Uf|Nj}N2NZv@FfuTx zG3bDd1o?@9ZLx#!LKht&&SguAR_Zv;Q0pkH@{wB*@j}$`WySsnAGRAgPT*R&rRr>) zxQEKb8o%|oA1>ZgcmDlkCQg~A=4K|QmKIJ%RUzrV{{FTJ6NFrN#AnPD7ZYPDef!u{8MqaWpE!ByBsT*Czx>5Z gm#-L?ycLW*u7z>^}efErz&ym3z0O~%ZoB#j- literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory_hover.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9938c77358bf75c2a62bd116feb463f9daefc6a GIT binary patch literal 378 zcmZ?wbhEHb6lV}*xT?Ugd-v|ut5?Uw#1s@1G&D5KojZ5arcK+nZTs=#M@vh~mMvS> ztXVT}-n+7qlt7~p<&d<+3c<|u9eftg^I526_q{D{~mzS6C z-@kwF-o1PF>^XGk(9D@L|NsBbKue(blZBCiL4iRBWC_Sm3~bXKE6A z>@4!!;@v$x&Aq+cE{xJsr%8*5Ffq-XK9zCuys0y1&z-kGo=a@?nl&@muH|y!mD##& w+sy6TdF2^+b{#k5x1M_t)xUZ3xd*F{-6&ghaP!&w z#S8YWIdN<4iCde_-YZ_XzjV=omNmyZH=N3tv8#K-se@M^@4xcs`0W=b?!4T0`QiSn zk5Aowz4!9N!`Gi4x$*4i&F6=%KRI^m#mT#`s+S&OpaD?)$pSW22SkGW#K5-U0As3) zj#R%}*Mtq3R`V~YCu&R*aS5MTc6zUviqfJN29_#2GIE=0IQk7FTooAB-+oxkI;W!0 zfr(ALskud*jZuJ4+(ogsuYbZs7x^hur%j*XA~$=^+v*Q|9B z<>hB!6WzLPyC@q2Kd-2ZloSsG!-1p64jkq=;3CGvz{D+f>GBmZ?sH6HE|P*AlJ_JZ eK6-qQLr_v#ghl4f+jsBZ1v`0s@$hnFum%9vK$rLc literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makethumb_hover.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makethumb_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9aba7cc3bbadfb69d72df995022021186aa67a9 GIT binary patch literal 284 zcmZ?wbhEHb6lV}*IKsfNa^=d<(9mbko~>B1V%@rR1qB5S4GsDE`FVMHEiEmDg@vnD zt?KCLSigRKQc_ZKa`KTQNA~U8w`b3uLx&C>IB?+L!GpVZ@7}w2@8QFTj~+d`fB*jS z@^S_wp!kyo%+mppAUhdYXD&F9lae`4O*ty^^}Y|;y^)tv%KzN+oiuU6vBe7;B>Fu% zoNhEsFpxO(m~m~?!eFK^o*Fhx*9#s5UYMlzVoTLowa|MXcGUPSy7B(Uo_R}N{{G+4 zSku_jq9Vx6&c`U&+t)A1$j8nts3I=Tz{fXZ?z|bZ8D>nM#lSIt1;7{ literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload.gif new file mode 100644 index 0000000000000000000000000000000000000000..6de016befe3eafe2d573b19f7b19d6b259f8fb23 GIT binary patch literal 387 zcmZ?wbhEHb6lM@)xT?c&{PxR=B?lW<9XoO7<<3iwD;6JYTz%~5jVDd3k8M47fBX4| zyDmMRv*+U0^AA=XyVbDjX!Gi04J(hXIev4;#YgokkM6keaOt6I8_(Q7dG}S*>f;^j zPc1ogb>HQO$8WzlaP{%NE06YHd3^BNlVi7@AG-eZ=*{PqOAb{pJ#_Eoha)$hegFCU z@b#xtww?R`|33q{K=CIFBLjmD5CQ?nPYi4e9HteV@LKD$TBOj^Buj6mN^z!(jsbT| zNmPs^N3+4f4NKRt2scF83QlQtb6o1YzFaF$wdQL;$G?UKF8&}lL0*;4u5J}xL1`T! z5l)S%)22`36cJM6)0)3v;UYdY0oCQK%BxndW?il-prfwNuBy0w#|~BY%`WPyat99` tQdRfauW<6zsiVgkk$au_Kol#8Y)@>QFE5ST!j~+kfadBj@1^~Uqr<(u( literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload_hover.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..eaaf2542003b69acbbe664dbd9bbf14620caf03b GIT binary patch literal 263 zcmV+i0r>t$Nk%w1VG{rm0K^;sva+(Xv$LY2qQu0+rKP2`w6w9Yv2k&6u&}V1nVEoq zfU2shsi~=de}BWn!@j=0!NI|IcX!?0-N3-WkdTmidV2Qu_Po5j!otFIbacJFy}!S| z|Ns900000000000A^8LW000~SEC2ui022Ta000GqASaHTMMacFuB6#8Rm!erRSZR} z&Lvd^j$lAHs{w;TV#^1>IG-4RvR7$Bp;B4R0O@+a5JN@4SyT{{w0f;ZR2C7!W=^l$ z2@yqRf3VjNdl?EG5)uO$4~dG383TnR5*Zqkl$03~ERmI)mzfzCprN6iE0F@Cp#r2U N2@$TZuL&d}06R7Tan}F< literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_type_.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_type_.gif new file mode 100644 index 0000000000000000000000000000000000000000..6a908e27a004f5d80984c2e4d151482cc81274fb GIT binary patch literal 113 zcmZ?wbhEHb6lV}*Sj58c>C>mXckdoKa%A`J-T(jpXMh34pDc_F3@i*fAOVnC24*u3 zqdWinRyeHM`=f2@?)12d#zh`wz7eZ{KPoLhsd-ueN6W_jl`}FD4kt0WT@813Y|9=K-K=CIF zBLf2mgAPa%WCjC^?}i!9tM^{>Xx#Pxfx1s(W>DI%g{w~039V?&XFs!nv7xk~dD4Mb w8Xo#{orCut|epYrk;LYdB+hQ*3>*~ZwTBJ@)Ys!o_5oE9i0Lf=Sh5!Hn literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_type_document.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_type_document.gif new file mode 100644 index 0000000000000000000000000000000000000000..65ebd99bcd39b33cd649d9a35666ce3db9d1b83b GIT binary patch literal 118 zcmZ?wbhEHb6lV}*Sj5Wk>C>mXckdoKa%A`J-Pf*N`~Uwx0~jd&WMO1rU}ew&@jz-B zn5{XC?)>vx5wL3SkG841)8i@{MHA;`WKB#uvCLo>-`XF?KE~`W={&qE_W8HTp%I4y T^(}=0W=!p6a%%MuVz34PP{A>O literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_type_folder.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_type_folder.gif new file mode 100644 index 0000000000000000000000000000000000000000..115e3fbd1d46b7d4f784333bf80a94eec5bd0b13 GIT binary patch literal 228 zcmZ?wbhEHb6lV}*I3mn&^XAQ~SFi5hzyHXQBU`s_J%9fEhYue%Y}oMo_wNfAF05a_ ze&fcCYuB#5bm`K80|z#5-hAlLp;fC^J$Ufo|Ns9CL;%H~EQ|~c!VEefwIDkgSQ8(x zIHY(o1+QAC)v`f2>0G+k0gD>-Gmrltc#tpX>B2B+Nzus|CZ&nXO1S1mO&4VSWW}n% z!uxKEB18Am6!#xzaxAXA`L6MM!p823O4qDuI`>5b~Z%@YXF`N BTWSCR literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_type_image.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_type_image.gif new file mode 100644 index 0000000000000000000000000000000000000000..000b31c120da8912e9b55d8c0dc9d4e167c0383e GIT binary patch literal 127 zcmZ?wbhEHb6lV}*Sj5Wk>C>mXckdoKa^%{zYrA*v{{R0!0~jd&WMO1rU}ew&@jz-B zm|ZxW?)>vx5wL3SkG841)2}M@rD%pF7*^bkTB29Ib3@NXmyGin>)wgY;rmhjGs!wp caD~gQS<7CmaDOAfGG$fj;)V*vNh}Q303xzBCIA2c literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_type_sound.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_type_sound.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a8970ab039660d6211c4ac19f43ab0262461a66 GIT binary patch literal 223 zcmZ?wbhEHb6lV}*I3mDs_wL<~A3uKm`t{SNPq%K}`t#?{nKNe|K79D($&(8gE?m2I z?fLWPmoHyFa^%R#lP7oY-u?goe+E*3;!hSv1_l8J9grrFoeZoo4=&iGWX?-dW(s({ z?*n&FVeaIze~-3qkl|`ye5_lt#pBW8XC49qjfrbGidkZUB)+B|)tY&|`2#mI2XoVt ml1Nc5E_bG%M+;6UvL5VRdph@b6t7N$p|O%ihlZ9SgEat3M_AVY literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/filebrowser_type_video.gif b/apps/filebrowser/media/filebrowser/img/filebrowser_type_video.gif new file mode 100644 index 0000000000000000000000000000000000000000..f456d59b889aca17cf669b83a8d569dedd51dbac GIT binary patch literal 147 zcmV;E0Brw9Nk%w1VHW@q0HOx~^78WC-QC2*#Omtm_4W0;ySvub*8l(iA^8LW000L7 zEC2ui02cre000A62vXesPN;CIz4(TeyJwXlj$|oT;9;oj>bC5Wnly_v~ewN@&$E)~&x17c3L`s*_=HZ!)s%kawYYck{LtvWM!$t`xZO=vlsY4_Q06V0Y BMb-cS literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/tableheader_arrow_down.gif b/apps/filebrowser/media/filebrowser/img/tableheader_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ae95a6063d0fec875a6475346f8768096dbbeae GIT binary patch literal 292 zcmZ?wbhEHb6lY*%xXQrr|NsBLfB*jZ`|tbD-`{@x{{H>@r>{R>z5n{=&6_8$K0SN( z?Ara;M=w1-bpGM)Q}?zWy?x-ofwlXu@7}$8$&Sm5wq07V_2T?37iVrbH)Zwd<;#~Z zS+b;i$??_&N1Epyo;Gb-<+Od>-Q5|T+fv)N)Ya7$78Vv16y)XQWo2chrKK@Y11SDv zVPppyqysVx6Dmd*Ib|mZ2@8fcX{?uad+fx(VzT_9X0b1qhFD7K iBoWS?@&3-Y({3o1D>SOWkC18<=K literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/tableheader_arrow_up.gif b/apps/filebrowser/media/filebrowser/img/tableheader_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..85f1e12690c4fc2b4f2919490a49b0244c29e0e5 GIT binary patch literal 292 zcmZ?wbhEHb6lY*%xXQrr|NsBLfB*jZ`}aE#{P^|t`>&5*zQ26?`OTX*&z?Pd^!)wJ zn>P=gy|eGst?fsy9XN1cC+Ryq58x*K+1w|nc0${N;ZZ@*2Q~5 mwwykocGWj^nyj01u!FYhioEY%0<;`dJj=M%s;V>{8LR>Ea(Ai# literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/img/tableheader_arrows.gif b/apps/filebrowser/media/filebrowser/img/tableheader_arrows.gif new file mode 100644 index 0000000000000000000000000000000000000000..39b8780cc12959337ee2fa5bab4885310c6b48d4 GIT binary patch literal 296 zcmZ?wbhEHb6lY*%xXQrr|Ns9#fB*gY`}h0L-`{@x{{G|F*YCeRef|0I%lB9BzrK9? z`N^wKkDkB3cK`L!OOFqoe|YHZoqeZn?LKvH>(SfWk6hch|ML2Mm)7pTzH-O8<=f9L z*>QQ%wo41PUYx(>;`|LKXKpw*XWj8xYmd!bb8O1$)03AU>RxiZchUaV1xK3a9d4Pu zt8Uu1%4z#*rfeKXM1I3>#jO;+wIv^b&KQXYm9tb<;v?U>l ztD$IR%z_xsRM*e|B_EMx+n!X^a4;}>Ea9o#a{9os#ZNM(X?nDzIB2UcZ~SC1NkdY{ Sz_W~3TU@w9SX|$c!5RR}h>&0a literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/js/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/js/.svn/all-wcprops new file mode 100644 index 00000000..201d6872 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/js/.svn/all-wcprops @@ -0,0 +1,41 @@ +K 25 +svn:wc:ra_dav:version-url +V 73 +/svn/!svn/ver/466/branches/filebrowser_3/filebrowser/media/filebrowser/js +END +FB_CKEditor.js +K 25 +svn:wc:ra_dav:version-url +V 88 +/svn/!svn/ver/452/branches/filebrowser_3/filebrowser/media/filebrowser/js/FB_CKEditor.js +END +FB_FileBrowseField.js +K 25 +svn:wc:ra_dav:version-url +V 95 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/js/FB_FileBrowseField.js +END +AddFileBrowser.js +K 25 +svn:wc:ra_dav:version-url +V 91 +/svn/!svn/ver/466/branches/filebrowser_3/filebrowser/media/filebrowser/js/AddFileBrowser.js +END +FB_TinyMCE.js +K 25 +svn:wc:ra_dav:version-url +V 87 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/js/FB_TinyMCE.js +END +jquery-1.3.2.min.js +K 25 +svn:wc:ra_dav:version-url +V 93 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/js/jquery-1.3.2.min.js +END +TinyMCEAdmin.js +K 25 +svn:wc:ra_dav:version-url +V 89 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/js/TinyMCEAdmin.js +END diff --git a/apps/filebrowser/media/filebrowser/js/.svn/entries b/apps/filebrowser/media/filebrowser/js/.svn/entries new file mode 100644 index 00000000..9e9096ed --- /dev/null +++ b/apps/filebrowser/media/filebrowser/js/.svn/entries @@ -0,0 +1,232 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/js +http://django-filebrowser.googlecode.com/svn + + + +2009-10-29T16:15:59.524671Z +466 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +FB_CKEditor.js +file + + + + +2009-11-05T20:58:50.000000Z +fa50cfae580047a009a2b86506210d9f +2009-10-11T14:09:32.302815Z +452 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +652 + +FB_FileBrowseField.js +file + + + + +2009-11-05T20:58:50.000000Z +6b093d924826e1d737086801bda89074 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1234 + +AddFileBrowser.js +file + + + + +2009-11-05T20:58:50.000000Z +89c9b75dae80816eafa85a1397583b23 +2009-10-29T16:15:59.524671Z +466 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +1094 + +FB_TinyMCE.js +file + + + + +2009-11-05T20:58:50.000000Z +645e7326e1e8be17ce619cdf61731cea +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +942 + +jquery-1.3.2.min.js +file + + + + +2009-11-05T20:58:50.000000Z +bb381e2d19d8eace86b34d20759491a5 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +57254 + +TinyMCEAdmin.js +file + + + + +2009-11-05T20:58:50.000000Z +fb5327084cd3bde1cdf2421ffd619259 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +2487 + diff --git a/apps/filebrowser/media/filebrowser/js/.svn/prop-base/FB_FileBrowseField.js.svn-base b/apps/filebrowser/media/filebrowser/js/.svn/prop-base/FB_FileBrowseField.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/js/.svn/prop-base/FB_FileBrowseField.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/js/.svn/prop-base/FB_TinyMCE.js.svn-base b/apps/filebrowser/media/filebrowser/js/.svn/prop-base/FB_TinyMCE.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/js/.svn/prop-base/FB_TinyMCE.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/js/.svn/text-base/AddFileBrowser.js.svn-base b/apps/filebrowser/media/filebrowser/js/.svn/text-base/AddFileBrowser.js.svn-base new file mode 100644 index 00000000..3a994423 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/js/.svn/text-base/AddFileBrowser.js.svn-base @@ -0,0 +1,30 @@ +var FileBrowser = { + // this is set automatically + admin_media_prefix: '', + // change this + thumb_prefix: 'thumb_', + no_thumb: 'filebrowser/img/no_thumb.gif', + + init: function() { + // Deduce admin_media_prefix by looking at the + + + + + + +
+ +

Cancel All Uploads

+ + diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/all-wcprops new file mode 100644 index 00000000..c0552a6d --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 95 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/_notes +END +dwsync.xml +K 25 +svn:wc:ra_dav:version-url +V 106 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/_notes/dwsync.xml +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/entries b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/entries new file mode 100644 index 00000000..dd272fcd --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/_notes +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +dwsync.xml +file + + + + +2009-11-05T20:58:51.000000Z +1d0d08a0a610122fd7ca380a077cd91c +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +317 + diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/prop-base/dwsync.xml.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/prop-base/dwsync.xml.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/prop-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/text-base/dwsync.xml.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/text-base/dwsync.xml.svn-base new file mode 100644 index 00000000..36ecaa56 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/.svn/text-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/_notes/dwsync.xml b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/dwsync.xml new file mode 100755 index 00000000..36ecaa56 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/_notes/dwsync.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/cancel.png b/apps/filebrowser/media/filebrowser/uploadify/example/cancel.png new file mode 100755 index 0000000000000000000000000000000000000000..1c062ae5df6ecfe8185ae68fe4d02bb37144d96d GIT binary patch literal 603 zcmV-h0;K(kP)Y=w}sr7c>T3k2kAzTeqVW6hI{EH5Ko zzfVqZ!x=#Pqbx|tH%4`qcU-?j9-N==aqga;;``=i6}ifwkTku4e9iw~UhsB_O@c|b zL5fc*!x643G%T(;tdGs6I^J-GGGLOWz{V3c_2nx@`3B;&|D2y!`gp5_&m4fL?3=*G z<5_QHJq^3%JHJ|8MYq$b?4Nj6v;<#4`Lhn z63jtgpOaBGezHV5e?=nWXey=TNKZM!6F-dpaFyXThDW5`_Am1t8PSvUAY+n$A>Fc^ p>d9(@iy|*2MI=Pe93XoYU;r)AluaN;{!jn_002ovPDHLkV1nHJ3!MM} literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/all-wcprops new file mode 100644 index 00000000..8e3e0323 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 92 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css +END +uploadify.css +K 25 +svn:wc:ra_dav:version-url +V 106 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/uploadify.css +END +default.css +K 25 +svn:wc:ra_dav:version-url +V 104 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/default.css +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/entries b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/entries new file mode 100644 index 00000000..2bba155a --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/entries @@ -0,0 +1,99 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +uploadify.css +file + + + + +2009-11-05T20:58:51.000000Z +edec394bac0dc3cf3a17da3837abd642 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1792 + +_notes +dir + +default.css +file + + + + +2009-11-05T20:58:51.000000Z +0ad07a2134f8f26293cd2b5420b2d6f7 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +177 + diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/prop-base/default.css.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/prop-base/default.css.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/prop-base/default.css.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/prop-base/uploadify.css.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/prop-base/uploadify.css.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/prop-base/uploadify.css.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/text-base/default.css.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/text-base/default.css.svn-base new file mode 100644 index 00000000..ec5902d4 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/text-base/default.css.svn-base @@ -0,0 +1,10 @@ +body { + font: 12px/16px Arial, Helvetica, sans-serif; +} +#fileQueue { + width: 400px; + height: 300px; + overflow: auto; + border: 1px solid #E5E5E5; + margin-bottom: 10px; +} \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/text-base/uploadify.css.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/text-base/uploadify.css.svn-base new file mode 100644 index 00000000..0cf8c0ea --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/.svn/text-base/uploadify.css.svn-base @@ -0,0 +1,53 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +.uploadifyQueueItem { + font: 11px Verdana, Geneva, sans-serif; + border: 2px solid #E5E5E5; + background-color: #F5F5F5; + margin-top: 5px; + padding: 10px; + width: 350px; +} +.uploadifyError { + border: 2px solid #FBCBBC !important; + background-color: #FDE5DD !important; +} +.uploadifyQueueItem .cancel { + float: right; +} +.uploadifyProgress { + background-color: #FFFFFF; + border-top: 1px solid #808080; + border-left: 1px solid #808080; + border-right: 1px solid #C5C5C5; + border-bottom: 1px solid #C5C5C5; + margin-top: 10px; + width: 100%; +} +.uploadifyProgressBar { + background-color: #0099FF; + width: 1px; + height: 3px; +} \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/all-wcprops new file mode 100644 index 00000000..98471dc6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 99 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/_notes +END +dwsync.xml +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/_notes/dwsync.xml +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/entries b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/entries new file mode 100644 index 00000000..e3cddb41 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/_notes +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +dwsync.xml +file + + + + +2009-11-05T20:58:51.000000Z +5290468e614f6b7a8ec013b682853d43 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +322 + diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/prop-base/dwsync.xml.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/prop-base/dwsync.xml.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/prop-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/text-base/dwsync.xml.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/text-base/dwsync.xml.svn-base new file mode 100644 index 00000000..049ffa59 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/.svn/text-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/dwsync.xml b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/dwsync.xml new file mode 100755 index 00000000..049ffa59 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/_notes/dwsync.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/default.css b/apps/filebrowser/media/filebrowser/uploadify/example/css/default.css new file mode 100755 index 00000000..ec5902d4 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/default.css @@ -0,0 +1,10 @@ +body { + font: 12px/16px Arial, Helvetica, sans-serif; +} +#fileQueue { + width: 400px; + height: 300px; + overflow: auto; + border: 1px solid #E5E5E5; + margin-bottom: 10px; +} \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/css/uploadify.css b/apps/filebrowser/media/filebrowser/uploadify/example/css/uploadify.css new file mode 100755 index 00000000..0cf8c0ea --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/css/uploadify.css @@ -0,0 +1,53 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +.uploadifyQueueItem { + font: 11px Verdana, Geneva, sans-serif; + border: 2px solid #E5E5E5; + background-color: #F5F5F5; + margin-top: 5px; + padding: 10px; + width: 350px; +} +.uploadifyError { + border: 2px solid #FBCBBC !important; + background-color: #FDE5DD !important; +} +.uploadifyQueueItem .cancel { + float: right; +} +.uploadifyProgress { + background-color: #FFFFFF; + border-top: 1px solid #808080; + border-left: 1px solid #808080; + border-right: 1px solid #C5C5C5; + border-bottom: 1px solid #C5C5C5; + margin-top: 10px; + width: 100%; +} +.uploadifyProgressBar { + background-color: #0099FF; + width: 1px; + height: 3px; +} \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/index.php b/apps/filebrowser/media/filebrowser/uploadify/example/index.php new file mode 100755 index 00000000..769d11c6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/index.php @@ -0,0 +1,31 @@ + + + + +Uploadify Example Script + + + + + + + + + +
+ +

Cancel All Uploads

+ + diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/all-wcprops new file mode 100644 index 00000000..ebb7812f --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/all-wcprops @@ -0,0 +1,47 @@ +K 25 +svn:wc:ra_dav:version-url +V 96 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts +END +swfobject.js +K 25 +svn:wc:ra_dav:version-url +V 109 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/swfobject.js +END +uploadify.php +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/uploadify.php +END +check.php +K 25 +svn:wc:ra_dav:version-url +V 106 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/check.php +END +uploadify.swf +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/uploadify.swf +END +jquery.uploadify.v2.1.0.min.js +K 25 +svn:wc:ra_dav:version-url +V 127 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js +END +jquery-1.3.2.min.js +K 25 +svn:wc:ra_dav:version-url +V 116 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/jquery-1.3.2.min.js +END +expressInstall.swf +K 25 +svn:wc:ra_dav:version-url +V 115 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/expressInstall.swf +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/entries b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/entries new file mode 100644 index 00000000..df5485f6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/entries @@ -0,0 +1,269 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +swfobject.js +file + + + + +2009-11-05T20:58:51.000000Z +892a543f3abb54e8ec1ada55be3b0649 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +10220 + +uploadify.php +file + + + + +2009-11-05T20:58:51.000000Z +18002e871847e9e3ae656a35d5e24cbe +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1932 + +check.php +file + + + + +2009-11-05T20:58:51.000000Z +c409eb2cfd793515f98f0781fea3ef15 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1404 + +_notes +dir + +uploadify.swf +file + + + + +2009-11-05T20:58:51.000000Z +ed069be276d587e0b24cedc3d3a48738 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +23119 + +jquery.uploadify.v2.1.0.min.js +file + + + + +2009-11-05T20:58:51.000000Z +4f1ceab5d5c04168fbef69362742bc6c +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +7563 + +jquery-1.3.2.min.js +file + + + + +2009-11-05T20:58:51.000000Z +bb381e2d19d8eace86b34d20759491a5 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +57254 + +expressInstall.swf +file + + + + +2009-11-05T20:58:51.000000Z +7b65fbfaec8b2955090389af60646e8b +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +727 + diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/check.php.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/check.php.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/check.php.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/expressInstall.swf.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/expressInstall.swf.svn-base new file mode 100644 index 00000000..dbc918b0 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/expressInstall.swf.svn-base @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery-1.3.2.min.js.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery-1.3.2.min.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery-1.3.2.min.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/swfobject.js.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/swfobject.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/swfobject.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.php.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.php.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.php.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.swf.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.swf.svn-base new file mode 100644 index 00000000..dbc918b0 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.swf.svn-base @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/check.php.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/check.php.svn-base new file mode 100644 index 00000000..d7dc5717 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/check.php.svn-base @@ -0,0 +1,35 @@ + $value) { + if ($key != 'folder') { + if (file_exists($_SERVER['DOCUMENT_ROOT'] . $_POST['folder'] . '/' . $value)) { + $fileArray[$key] = $value; + } + } +} +echo json_encode($fileArray); +?> \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/expressInstall.swf.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/expressInstall.swf.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..0fbf8fca961e6319d84442248f6ba314797dccec GIT binary patch literal 727 zcmV;|0x11MS5pQv1pokeoP|?OPuoBc9Xq5k1WKTQ`wM9VaMwSB_o5%t)!o>)g&X)EAYjgEPLcl5K%kkuIK}@4lZ{BkGMYAU20z( zNRb@8AZ~RNT{i-oQ>63S3q@bamddC&V#&}IBHXmBea0RPhMY!G_6yWA-{&u00bI?EPCUrE(n7GhyT+_4sC3vIfO8o*Hw?~a z;QV28jGXsc=C?Kce^ve?K|~w@>bMSCq>Q(O#T42y^Mv*pwUSN?9aMQms*Ld$rD0~q zQhI{Tv*fb=mqG|Gjsr39Bp7Dejr)q)1J&t=YBY?2Llv85=!N{vRx3=YEoRTjX+)n# zs)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base new file mode 100644 index 00000000..04592ffe --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base @@ -0,0 +1,26 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery){(function(a){a.extend(a.fn,{uploadify:function(b){a(this).each(function(){settings=a.extend({id:a(this).attr("id"),uploader:"uploadify.swf",script:"uploadify.php",expressInstall:null,folder:"",height:30,width:110,cancelImg:"cancel.png",wmode:"opaque",scriptAccess:"sameDomain",fileDataName:"Filedata",method:"POST",queueSizeLimit:999,simUploadLimit:1,queueID:false,displayData:"percentage",onInit:function(){},onSelect:function(){},onQueueFull:function(){},onCheck:function(){},onCancel:function(){},onError:function(){},onProgress:function(){},onComplete:function(){},onAllComplete:function(){}},b);var e=location.pathname;e=e.split("/");e.pop();e=e.join("/")+"/";var f={};f.uploadifyID=settings.id;f.pagepath=e;if(settings.buttonImg){f.buttonImg=escape(settings.buttonImg)}if(settings.buttonText){f.buttonText=escape(settings.buttonText)}if(settings.rollover){f.rollover=true}f.script=settings.script;f.folder=escape(settings.folder);if(settings.scriptData){var g="";for(var d in settings.scriptData){g+="&"+d+"="+settings.scriptData[d]}f.scriptData=escape(g.substr(1))}f.width=settings.width;f.height=settings.height;f.wmode=settings.wmode;f.method=settings.method;f.queueSizeLimit=settings.queueSizeLimit;f.simUploadLimit=settings.simUploadLimit;if(settings.hideButton){f.hideButton=true}if(settings.fileDesc){f.fileDesc=settings.fileDesc}if(settings.fileExt){f.fileExt=settings.fileExt}if(settings.multi){f.multi=true}if(settings.auto){f.auto=true}if(settings.sizeLimit){f.sizeLimit=settings.sizeLimit}if(settings.checkScript){f.checkScript=settings.checkScript}if(settings.fileDataName){f.fileDataName=settings.fileDataName}if(settings.queueID){f.queueID=settings.queueID}if(settings.onInit()!==false){a(this).css("display","none");a(this).after('
');swfobject.embedSWF(settings.uploader,settings.id+"Uploader",settings.width,settings.height,"9.0.24",settings.expressInstall,f,{quality:"high",wmode:settings.wmode,allowScriptAccess:settings.scriptAccess});if(settings.queueID==false){a("#"+a(this).attr("id")+"Uploader").after('
')}}if(typeof(settings.onOpen)=="function"){a(this).bind("uploadifyOpen",settings.onOpen)}a(this).bind("uploadifySelect",{action:settings.onSelect,queueID:settings.queueID},function(j,h,i){if(j.data.action(j,h,i)!==false){var k=Math.round(i.size/1024*100)*0.01;var l="KB";if(k>1000){k=Math.round(k*0.001*100)*0.01;l="MB"}var m=k.toString().split(".");if(m.length>1){k=m[0]+"."+m[1].substr(0,2)}else{k=m[0]}if(i.name.length>20){fileName=i.name.substr(0,20)+"..."}else{fileName=i.name}queue="#"+a(this).attr("id")+"Queue";if(j.data.queueID){queue="#"+j.data.queueID}a(queue).append('
'+fileName+" ("+k+l+')
')}});if(typeof(settings.onSelectOnce)=="function"){a(this).bind("uploadifySelectOnce",settings.onSelectOnce)}a(this).bind("uploadifyQueueFull",{action:settings.onQueueFull},function(h,i){if(h.data.action(h,i)!==false){alert("The queue is full. The max size is "+i+".")}});a(this).bind("uploadifyCheckExist",{action:settings.onCheck},function(m,l,k,j,o){var i=new Object();i=k;i.folder=e+j;if(o){for(var h in k){var n=h}}a.post(l,i,function(r){for(var p in r){if(m.data.action(m,l,k,j,o)!==false){var q=confirm("Do you want to replace the file "+r[p]+"?");if(!q){document.getElementById(a(m.target).attr("id")+"Uploader").cancelFileUpload(p,true,true)}}}if(o){document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(n,true)}else{document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(null,true)}},"json")});a(this).bind("uploadifyCancel",{action:settings.onCancel},function(l,h,k,m,j){if(l.data.action(l,h,k,m,j)!==false){var i=(j==true)?0:250;a("#"+a(this).attr("id")+h).fadeOut(i,function(){a(this).remove()})}});if(typeof(settings.onClearQueue)=="function"){a(this).bind("uploadifyClearQueue",settings.onClearQueue)}var c=[];a(this).bind("uploadifyError",{action:settings.onError},function(l,h,k,j){if(l.data.action(l,h,k,j)!==false){var i=new Array(h,k,j);c.push(i);a("#"+a(this).attr("id")+h+" .percentage").text(" - "+j.type+" Error");a("#"+a(this).attr("id")+h).addClass("uploadifyError")}});a(this).bind("uploadifyProgress",{action:settings.onProgress,toDisplay:settings.displayData},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr("id")+h+"ProgressBar").css("width",k.percentage+"%");if(j.data.toDisplay=="percentage"){displayData=" - "+k.percentage+"%"}if(j.data.toDisplay=="speed"){displayData=" - "+k.speed+"KB/s"}if(j.data.toDisplay==null){displayData=" "}a("#"+a(this).attr("id")+h+" .percentage").text(displayData)}});a(this).bind("uploadifyComplete",{action:settings.onComplete},function(k,h,j,i,l){if(k.data.action(k,h,j,unescape(i),l)!==false){a("#"+a(this).attr("id")+h+" .percentage").text(" - Completed");a("#"+a(this).attr("id")+h).fadeOut(250,function(){a(this).remove()})}});if(typeof(settings.onAllComplete)=="function"){a(this).bind("uploadifyAllComplete",{action:settings.onAllComplete},function(h,i){if(h.data.action(h,i)!==false){c=[]}})}})},uploadifySettings:function(f,j,c){var g=false;a(this).each(function(){if(f=="scriptData"&&j!=null){if(c){var i=j}else{var i=a.extend(settings.scriptData,j)}var l="";for(var k in i){l+="&"+k+"="+escape(i[k])}j=l.substr(1)}g=document.getElementById(a(this).attr("id")+"Uploader").updateSettings(f,j)});if(j==null){if(f=="scriptData"){var b=unescape(g).split("&");var e=new Object();for(var d=0;d + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/uploadify.swf.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/.svn/text-base/uploadify.swf.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..4d27952f553db773e2c298e4a84ec8ab83a5db01 GIT binary patch literal 23119 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 literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/all-wcprops new file mode 100644 index 00000000..d8daf491 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 103 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/_notes +END +dwsync.xml +K 25 +svn:wc:ra_dav:version-url +V 114 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/dwsync.xml +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/entries b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/entries new file mode 100644 index 00000000..89f38db6 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/_notes +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +dwsync.xml +file + + + + +2009-11-05T20:58:51.000000Z +a095283fba302c68c7f695198d29f450 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1007 + diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/prop-base/dwsync.xml.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/prop-base/dwsync.xml.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/prop-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/text-base/dwsync.xml.svn-base b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/text-base/dwsync.xml.svn-base new file mode 100644 index 00000000..13ca0434 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/.svn/text-base/dwsync.xml.svn-base @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/dwsync.xml b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/dwsync.xml new file mode 100755 index 00000000..13ca0434 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/dwsync.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/check.php b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/check.php new file mode 100755 index 00000000..d7dc5717 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/check.php @@ -0,0 +1,35 @@ + $value) { + if ($key != 'folder') { + if (file_exists($_SERVER['DOCUMENT_ROOT'] . $_POST['folder'] . '/' . $value)) { + $fileArray[$key] = $value; + } + } +} +echo json_encode($fileArray); +?> \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/expressInstall.swf b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/expressInstall.swf new file mode 100755 index 0000000000000000000000000000000000000000..0fbf8fca961e6319d84442248f6ba314797dccec GIT binary patch literal 727 zcmV;|0x11MS5pQv1pokeoP|?OPuoBc9Xq5k1WKTQ`wM9VaMwSB_o5%t)!o>)g&X)EAYjgEPLcl5K%kkuIK}@4lZ{BkGMYAU20z( zNRb@8AZ~RNT{i-oQ>63S3q@bamddC&V#&}IBHXmBea0RPhMY!G_6yWA-{&u00bI?EPCUrE(n7GhyT+_4sC3vIfO8o*Hw?~a z;QV28jGXsc=C?Kce^ve?K|~w@>bMSCq>Q(O#T42y^Mv*pwUSN?9aMQms*Ld$rD0~q zQhI{Tv*fb=mqG|Gjsr39Bp7Dejr)q)1J&t=YBY?2Llv85=!N{vRx3=YEoRTjX+)n# zs)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js new file mode 100755 index 00000000..04592ffe --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js @@ -0,0 +1,26 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery){(function(a){a.extend(a.fn,{uploadify:function(b){a(this).each(function(){settings=a.extend({id:a(this).attr("id"),uploader:"uploadify.swf",script:"uploadify.php",expressInstall:null,folder:"",height:30,width:110,cancelImg:"cancel.png",wmode:"opaque",scriptAccess:"sameDomain",fileDataName:"Filedata",method:"POST",queueSizeLimit:999,simUploadLimit:1,queueID:false,displayData:"percentage",onInit:function(){},onSelect:function(){},onQueueFull:function(){},onCheck:function(){},onCancel:function(){},onError:function(){},onProgress:function(){},onComplete:function(){},onAllComplete:function(){}},b);var e=location.pathname;e=e.split("/");e.pop();e=e.join("/")+"/";var f={};f.uploadifyID=settings.id;f.pagepath=e;if(settings.buttonImg){f.buttonImg=escape(settings.buttonImg)}if(settings.buttonText){f.buttonText=escape(settings.buttonText)}if(settings.rollover){f.rollover=true}f.script=settings.script;f.folder=escape(settings.folder);if(settings.scriptData){var g="";for(var d in settings.scriptData){g+="&"+d+"="+settings.scriptData[d]}f.scriptData=escape(g.substr(1))}f.width=settings.width;f.height=settings.height;f.wmode=settings.wmode;f.method=settings.method;f.queueSizeLimit=settings.queueSizeLimit;f.simUploadLimit=settings.simUploadLimit;if(settings.hideButton){f.hideButton=true}if(settings.fileDesc){f.fileDesc=settings.fileDesc}if(settings.fileExt){f.fileExt=settings.fileExt}if(settings.multi){f.multi=true}if(settings.auto){f.auto=true}if(settings.sizeLimit){f.sizeLimit=settings.sizeLimit}if(settings.checkScript){f.checkScript=settings.checkScript}if(settings.fileDataName){f.fileDataName=settings.fileDataName}if(settings.queueID){f.queueID=settings.queueID}if(settings.onInit()!==false){a(this).css("display","none");a(this).after('
');swfobject.embedSWF(settings.uploader,settings.id+"Uploader",settings.width,settings.height,"9.0.24",settings.expressInstall,f,{quality:"high",wmode:settings.wmode,allowScriptAccess:settings.scriptAccess});if(settings.queueID==false){a("#"+a(this).attr("id")+"Uploader").after('
')}}if(typeof(settings.onOpen)=="function"){a(this).bind("uploadifyOpen",settings.onOpen)}a(this).bind("uploadifySelect",{action:settings.onSelect,queueID:settings.queueID},function(j,h,i){if(j.data.action(j,h,i)!==false){var k=Math.round(i.size/1024*100)*0.01;var l="KB";if(k>1000){k=Math.round(k*0.001*100)*0.01;l="MB"}var m=k.toString().split(".");if(m.length>1){k=m[0]+"."+m[1].substr(0,2)}else{k=m[0]}if(i.name.length>20){fileName=i.name.substr(0,20)+"..."}else{fileName=i.name}queue="#"+a(this).attr("id")+"Queue";if(j.data.queueID){queue="#"+j.data.queueID}a(queue).append('
'+fileName+" ("+k+l+')
')}});if(typeof(settings.onSelectOnce)=="function"){a(this).bind("uploadifySelectOnce",settings.onSelectOnce)}a(this).bind("uploadifyQueueFull",{action:settings.onQueueFull},function(h,i){if(h.data.action(h,i)!==false){alert("The queue is full. The max size is "+i+".")}});a(this).bind("uploadifyCheckExist",{action:settings.onCheck},function(m,l,k,j,o){var i=new Object();i=k;i.folder=e+j;if(o){for(var h in k){var n=h}}a.post(l,i,function(r){for(var p in r){if(m.data.action(m,l,k,j,o)!==false){var q=confirm("Do you want to replace the file "+r[p]+"?");if(!q){document.getElementById(a(m.target).attr("id")+"Uploader").cancelFileUpload(p,true,true)}}}if(o){document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(n,true)}else{document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(null,true)}},"json")});a(this).bind("uploadifyCancel",{action:settings.onCancel},function(l,h,k,m,j){if(l.data.action(l,h,k,m,j)!==false){var i=(j==true)?0:250;a("#"+a(this).attr("id")+h).fadeOut(i,function(){a(this).remove()})}});if(typeof(settings.onClearQueue)=="function"){a(this).bind("uploadifyClearQueue",settings.onClearQueue)}var c=[];a(this).bind("uploadifyError",{action:settings.onError},function(l,h,k,j){if(l.data.action(l,h,k,j)!==false){var i=new Array(h,k,j);c.push(i);a("#"+a(this).attr("id")+h+" .percentage").text(" - "+j.type+" Error");a("#"+a(this).attr("id")+h).addClass("uploadifyError")}});a(this).bind("uploadifyProgress",{action:settings.onProgress,toDisplay:settings.displayData},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr("id")+h+"ProgressBar").css("width",k.percentage+"%");if(j.data.toDisplay=="percentage"){displayData=" - "+k.percentage+"%"}if(j.data.toDisplay=="speed"){displayData=" - "+k.speed+"KB/s"}if(j.data.toDisplay==null){displayData=" "}a("#"+a(this).attr("id")+h+" .percentage").text(displayData)}});a(this).bind("uploadifyComplete",{action:settings.onComplete},function(k,h,j,i,l){if(k.data.action(k,h,j,unescape(i),l)!==false){a("#"+a(this).attr("id")+h+" .percentage").text(" - Completed");a("#"+a(this).attr("id")+h).fadeOut(250,function(){a(this).remove()})}});if(typeof(settings.onAllComplete)=="function"){a(this).bind("uploadifyAllComplete",{action:settings.onAllComplete},function(h,i){if(h.data.action(h,i)!==false){c=[]}})}})},uploadifySettings:function(f,j,c){var g=false;a(this).each(function(){if(f=="scriptData"&&j!=null){if(c){var i=j}else{var i=a.extend(settings.scriptData,j)}var l="";for(var k in i){l+="&"+k+"="+escape(i[k])}j=l.substr(1)}g=document.getElementById(a(this).attr("id")+"Uploader").updateSettings(f,j)});if(j==null){if(f=="scriptData"){var b=unescape(g).split("&");var e=new Object();for(var d=0;d + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/scripts/uploadify.swf b/apps/filebrowser/media/filebrowser/uploadify/example/scripts/uploadify.swf new file mode 100755 index 0000000000000000000000000000000000000000..4d27952f553db773e2c298e4a84ec8ab83a5db01 GIT binary patch literal 23119 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 literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/uploads/.svn/all-wcprops b/apps/filebrowser/media/filebrowser/uploadify/example/uploads/.svn/all-wcprops new file mode 100644 index 00000000..95ccd61b --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/uploads/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 96 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/uploads +END diff --git a/apps/filebrowser/media/filebrowser/uploadify/example/uploads/.svn/entries b/apps/filebrowser/media/filebrowser/uploadify/example/uploads/.svn/entries new file mode 100644 index 00000000..74afe082 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/example/uploads/.svn/entries @@ -0,0 +1,28 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/uploads +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + diff --git a/apps/filebrowser/media/filebrowser/uploadify/expressInstall.swf b/apps/filebrowser/media/filebrowser/uploadify/expressInstall.swf new file mode 100755 index 0000000000000000000000000000000000000000..0fbf8fca961e6319d84442248f6ba314797dccec GIT binary patch literal 727 zcmV;|0x11MS5pQv1pokeoP|?OPuoBc9Xq5k1WKTQ`wM9VaMwSB_o5%t)!o>)g&X)EAYjgEPLcl5K%kkuIK}@4lZ{BkGMYAU20z( zNRb@8AZ~RNT{i-oQ>63S3q@bamddC&V#&}IBHXmBea0RPhMY!G_6yWA-{&u00bI?EPCUrE(n7GhyT+_4sC3vIfO8o*Hw?~a z;QV28jGXsc=C?Kce^ve?K|~w@>bMSCq>Q(O#T42y^Mv*pwUSN?9aMQms*Ld$rD0~q zQhI{Tv*fb=mqG|Gjsr39Bp7Dejr)q)1J&t=YBY?2Llv85=!N{vRx3=YEoRTjX+)n# zs)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/jquery.uploadify.v2.1.0.js b/apps/filebrowser/media/filebrowser/uploadify/jquery.uploadify.v2.1.0.js new file mode 100755 index 00000000..9a78cd32 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/jquery.uploadify.v2.1.0.js @@ -0,0 +1,258 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery)( + function(jQuery){ + jQuery.extend(jQuery.fn,{ + uploadify:function(options) { + jQuery(this).each(function(){ + settings = jQuery.extend({ + id : jQuery(this).attr('id'), // The ID of the object being Uploadified + uploader : 'uploadify.swf', // The path to the uploadify swf file + script : 'uploadify.php', // The path to the uploadify backend upload script + expressInstall : null, // The path to the express install swf file + folder : '', // The path to the upload folder + height : 30, // The height of the flash button + width : 110, // The width of the flash button + cancelImg : 'cancel.png', // The path to the cancel image for the default file queue item container + wmode : 'opaque', // The wmode of the flash file + scriptAccess : 'sameDomain', // Set to "always" to allow script access across domains + fileDataName : 'Filedata', // The name of the file collection object in the backend upload script + method : 'POST', // The method for sending variables to the backend upload script + queueSizeLimit : 999, // The maximum size of the file queue + simUploadLimit : 1, // The number of simultaneous uploads allowed + queueID : false, // The optional ID of the queue container + displayData : 'percentage', // Set to "speed" to show the upload speed in the default queue item + onInit : function() {}, // Function to run when uploadify is initialized + onSelect : function() {}, // Function to run when a file is selected + onQueueFull : function() {}, // Function to run when the queue reaches capacity + onCheck : function() {}, // Function to run when script checks for duplicate files on the server + onCancel : function() {}, // Function to run when an item is cleared from the queue + onError : function() {}, // Function to run when an upload item returns an error + onProgress : function() {}, // Function to run each time the upload progress is updated + onComplete : function() {}, // Function to run when an upload is completed + onAllComplete : function() {} // Functino to run when all uploads are completed + }, options); + var pagePath = location.pathname; + pagePath = pagePath.split('/'); + pagePath.pop(); + pagePath = pagePath.join('/') + '/'; + var data = {}; + data.uploadifyID = settings.id; + data.pagepath = pagePath; + if (settings.buttonImg) data.buttonImg = escape(settings.buttonImg); + if (settings.buttonText) data.buttonText = escape(settings.buttonText); + if (settings.rollover) data.rollover = true; + data.script = settings.script; + data.folder = escape(settings.folder); + if (settings.scriptData) { + var scriptDataString = ''; + for (var name in settings.scriptData) { + scriptDataString += '&' + name + '=' + settings.scriptData[name]; + } + data.scriptData = escape(scriptDataString.substr(1)); + } + data.width = settings.width; + data.height = settings.height; + data.wmode = settings.wmode; + data.method = settings.method; + data.queueSizeLimit = settings.queueSizeLimit; + data.simUploadLimit = settings.simUploadLimit; + if (settings.hideButton) data.hideButton = true; + if (settings.fileDesc) data.fileDesc = settings.fileDesc; + if (settings.fileExt) data.fileExt = settings.fileExt; + if (settings.multi) data.multi = true; + if (settings.auto) data.auto = true; + if (settings.sizeLimit) data.sizeLimit = settings.sizeLimit; + if (settings.checkScript) data.checkScript = settings.checkScript; + if (settings.fileDataName) data.fileDataName = settings.fileDataName; + if (settings.queueID) data.queueID = settings.queueID; + if (settings.onInit() !== false) { + jQuery(this).css('display','none'); + jQuery(this).after('
'); + swfobject.embedSWF(settings.uploader, settings.id + 'Uploader', settings.width, settings.height, '9.0.24', settings.expressInstall, data, {'quality':'high','wmode':settings.wmode,'allowScriptAccess':settings.scriptAccess}); + if (settings.queueID == false) { + jQuery("#" + jQuery(this).attr('id') + "Uploader").after('
'); + } + } + if (typeof(settings.onOpen) == 'function') { + jQuery(this).bind("uploadifyOpen", settings.onOpen); + } + jQuery(this).bind("uploadifySelect", {'action': settings.onSelect, 'queueID': settings.queueID}, function(event, ID, fileObj) { + if (event.data.action(event, ID, fileObj) !== false) { + var byteSize = Math.round(fileObj.size / 1024 * 100) * .01; + var suffix = 'KB'; + if (byteSize > 1000) { + byteSize = Math.round(byteSize *.001 * 100) * .01; + suffix = 'MB'; + } + var sizeParts = byteSize.toString().split('.'); + if (sizeParts.length > 1) { + byteSize = sizeParts[0] + '.' + sizeParts[1].substr(0,2); + } else { + byteSize = sizeParts[0]; + } + if (fileObj.name.length > 20) { + fileName = fileObj.name.substr(0,20) + '...'; + } else { + fileName = fileObj.name; + } + queue = '#' + jQuery(this).attr('id') + 'Queue'; + if (event.data.queueID) { + queue = '#' + event.data.queueID; + } + jQuery(queue).append('
\ +
\ + \ +
\ + ' + fileName + ' (' + byteSize + suffix + ')\ +
\ +
\ +
\ +
'); + } + }); + if (typeof(settings.onSelectOnce) == 'function') { + jQuery(this).bind("uploadifySelectOnce", settings.onSelectOnce); + } + jQuery(this).bind("uploadifyQueueFull", {'action': settings.onQueueFull}, function(event, queueSizeLimit) { + if (event.data.action(event, queueSizeLimit) !== false) { + alert('The queue is full. The max size is ' + queueSizeLimit + '.'); + } + }); + jQuery(this).bind("uploadifyCheckExist", {'action': settings.onCheck}, function(event, checkScript, fileQueueObj, folder, single) { + var postData = new Object(); + postData = fileQueueObj; + postData.folder = pagePath + folder; + if (single) { + for (var ID in fileQueueObj) { + var singleFileID = ID; + } + } + jQuery.post(checkScript, postData, function(data) { + for(var key in data) { + if (event.data.action(event, checkScript, fileQueueObj, folder, single) !== false) { + var replaceFile = confirm("Do you want to replace the file " + data[key] + "?"); + if (!replaceFile) { + document.getElementById(jQuery(event.target).attr('id') + 'Uploader').cancelFileUpload(key, true,true); + } + } + } + if (single) { + document.getElementById(jQuery(event.target).attr('id') + 'Uploader').startFileUpload(singleFileID, true); + } else { + document.getElementById(jQuery(event.target).attr('id') + 'Uploader').startFileUpload(null, true); + } + }, "json"); + }); + jQuery(this).bind("uploadifyCancel", {'action': settings.onCancel}, function(event, ID, fileObj, data, clearFast) { + if (event.data.action(event, ID, fileObj, data, clearFast) !== false) { + var fadeSpeed = (clearFast == true) ? 0 : 250; + jQuery("#" + jQuery(this).attr('id') + ID).fadeOut(fadeSpeed, function() { jQuery(this).remove() }); + } + }); + if (typeof(settings.onClearQueue) == 'function') { + jQuery(this).bind("uploadifyClearQueue", settings.onClearQueue); + } + var errorArray = []; + jQuery(this).bind("uploadifyError", {'action': settings.onError}, function(event, ID, fileObj, errorObj) { + if (event.data.action(event, ID, fileObj, errorObj) !== false) { + var fileArray = new Array(ID, fileObj, errorObj); + errorArray.push(fileArray); + jQuery("#" + jQuery(this).attr('id') + ID + " .percentage").text(" - " + errorObj.type + " Error"); + jQuery("#" + jQuery(this).attr('id') + ID).addClass('uploadifyError'); + } + }); + jQuery(this).bind("uploadifyProgress", {'action': settings.onProgress, 'toDisplay': settings.displayData}, function(event, ID, fileObj, data) { + if (event.data.action(event, ID, fileObj, data) !== false) { + jQuery("#" + jQuery(this).attr('id') + ID + "ProgressBar").css('width', data.percentage + '%'); + if (event.data.toDisplay == 'percentage') displayData = ' - ' + data.percentage + '%'; + if (event.data.toDisplay == 'speed') displayData = ' - ' + data.speed + 'KB/s'; + if (event.data.toDisplay == null) displayData = ' '; + jQuery("#" + jQuery(this).attr('id') + ID + " .percentage").text(displayData); + } + }); + jQuery(this).bind("uploadifyComplete", {'action': settings.onComplete}, function(event, ID, fileObj, response, data) { + if (event.data.action(event, ID, fileObj, unescape(response), data) !== false) { + jQuery("#" + jQuery(this).attr('id') + ID + " .percentage").text(' - Completed'); + jQuery("#" + jQuery(this).attr('id') + ID).fadeOut(250, function() { jQuery(this).remove()}); + } + }); + if (typeof(settings.onAllComplete) == 'function') { + jQuery(this).bind("uploadifyAllComplete", {'action': settings.onAllComplete}, function(event, uploadObj) { + if (event.data.action(event, uploadObj) !== false) { + errorArray = []; + } + }); + } + }); + }, + uploadifySettings:function(settingName, settingValue, resetObject) { + var returnValue = false; + jQuery(this).each(function() { + if (settingName == 'scriptData' && settingValue != null) { + if (resetObject) { + var scriptData = settingValue; + } else { + var scriptData = jQuery.extend(settings.scriptData, settingValue); + } + var scriptDataString = ''; + for (var name in scriptData) { + scriptDataString += '&' + name + '=' + escape(scriptData[name]); + } + settingValue = scriptDataString.substr(1); + } + returnValue = document.getElementById(jQuery(this).attr('id') + 'Uploader').updateSettings(settingName, settingValue); + }); + if (settingValue == null) { + if (settingName == 'scriptData') { + var returnSplit = unescape(returnValue).split('&'); + var returnObj = new Object(); + for (var i = 0; i < returnSplit.length; i++) { + var iSplit = returnSplit[i].split('='); + returnObj[iSplit[0]] = iSplit[1]; + } + returnValue = returnObj; + } + return returnValue; + } + }, + uploadifyUpload:function(ID) { + jQuery(this).each(function() { + document.getElementById(jQuery(this).attr('id') + 'Uploader').startFileUpload(ID, false); + }); + }, + uploadifyCancel:function(ID) { + jQuery(this).each(function() { + document.getElementById(jQuery(this).attr('id') + 'Uploader').cancelFileUpload(ID, true, false); + }); + }, + uploadifyClearQueue:function() { + jQuery(this).each(function() { + document.getElementById(jQuery(this).attr('id') + 'Uploader').clearFileUploadQueue(false); + }); + } + }) +})(jQuery); \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/jquery.uploadify.v2.1.0.min.js b/apps/filebrowser/media/filebrowser/uploadify/jquery.uploadify.v2.1.0.min.js new file mode 100755 index 00000000..04592ffe --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/jquery.uploadify.v2.1.0.min.js @@ -0,0 +1,26 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery){(function(a){a.extend(a.fn,{uploadify:function(b){a(this).each(function(){settings=a.extend({id:a(this).attr("id"),uploader:"uploadify.swf",script:"uploadify.php",expressInstall:null,folder:"",height:30,width:110,cancelImg:"cancel.png",wmode:"opaque",scriptAccess:"sameDomain",fileDataName:"Filedata",method:"POST",queueSizeLimit:999,simUploadLimit:1,queueID:false,displayData:"percentage",onInit:function(){},onSelect:function(){},onQueueFull:function(){},onCheck:function(){},onCancel:function(){},onError:function(){},onProgress:function(){},onComplete:function(){},onAllComplete:function(){}},b);var e=location.pathname;e=e.split("/");e.pop();e=e.join("/")+"/";var f={};f.uploadifyID=settings.id;f.pagepath=e;if(settings.buttonImg){f.buttonImg=escape(settings.buttonImg)}if(settings.buttonText){f.buttonText=escape(settings.buttonText)}if(settings.rollover){f.rollover=true}f.script=settings.script;f.folder=escape(settings.folder);if(settings.scriptData){var g="";for(var d in settings.scriptData){g+="&"+d+"="+settings.scriptData[d]}f.scriptData=escape(g.substr(1))}f.width=settings.width;f.height=settings.height;f.wmode=settings.wmode;f.method=settings.method;f.queueSizeLimit=settings.queueSizeLimit;f.simUploadLimit=settings.simUploadLimit;if(settings.hideButton){f.hideButton=true}if(settings.fileDesc){f.fileDesc=settings.fileDesc}if(settings.fileExt){f.fileExt=settings.fileExt}if(settings.multi){f.multi=true}if(settings.auto){f.auto=true}if(settings.sizeLimit){f.sizeLimit=settings.sizeLimit}if(settings.checkScript){f.checkScript=settings.checkScript}if(settings.fileDataName){f.fileDataName=settings.fileDataName}if(settings.queueID){f.queueID=settings.queueID}if(settings.onInit()!==false){a(this).css("display","none");a(this).after('
');swfobject.embedSWF(settings.uploader,settings.id+"Uploader",settings.width,settings.height,"9.0.24",settings.expressInstall,f,{quality:"high",wmode:settings.wmode,allowScriptAccess:settings.scriptAccess});if(settings.queueID==false){a("#"+a(this).attr("id")+"Uploader").after('
')}}if(typeof(settings.onOpen)=="function"){a(this).bind("uploadifyOpen",settings.onOpen)}a(this).bind("uploadifySelect",{action:settings.onSelect,queueID:settings.queueID},function(j,h,i){if(j.data.action(j,h,i)!==false){var k=Math.round(i.size/1024*100)*0.01;var l="KB";if(k>1000){k=Math.round(k*0.001*100)*0.01;l="MB"}var m=k.toString().split(".");if(m.length>1){k=m[0]+"."+m[1].substr(0,2)}else{k=m[0]}if(i.name.length>20){fileName=i.name.substr(0,20)+"..."}else{fileName=i.name}queue="#"+a(this).attr("id")+"Queue";if(j.data.queueID){queue="#"+j.data.queueID}a(queue).append('
'+fileName+" ("+k+l+')
')}});if(typeof(settings.onSelectOnce)=="function"){a(this).bind("uploadifySelectOnce",settings.onSelectOnce)}a(this).bind("uploadifyQueueFull",{action:settings.onQueueFull},function(h,i){if(h.data.action(h,i)!==false){alert("The queue is full. The max size is "+i+".")}});a(this).bind("uploadifyCheckExist",{action:settings.onCheck},function(m,l,k,j,o){var i=new Object();i=k;i.folder=e+j;if(o){for(var h in k){var n=h}}a.post(l,i,function(r){for(var p in r){if(m.data.action(m,l,k,j,o)!==false){var q=confirm("Do you want to replace the file "+r[p]+"?");if(!q){document.getElementById(a(m.target).attr("id")+"Uploader").cancelFileUpload(p,true,true)}}}if(o){document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(n,true)}else{document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(null,true)}},"json")});a(this).bind("uploadifyCancel",{action:settings.onCancel},function(l,h,k,m,j){if(l.data.action(l,h,k,m,j)!==false){var i=(j==true)?0:250;a("#"+a(this).attr("id")+h).fadeOut(i,function(){a(this).remove()})}});if(typeof(settings.onClearQueue)=="function"){a(this).bind("uploadifyClearQueue",settings.onClearQueue)}var c=[];a(this).bind("uploadifyError",{action:settings.onError},function(l,h,k,j){if(l.data.action(l,h,k,j)!==false){var i=new Array(h,k,j);c.push(i);a("#"+a(this).attr("id")+h+" .percentage").text(" - "+j.type+" Error");a("#"+a(this).attr("id")+h).addClass("uploadifyError")}});a(this).bind("uploadifyProgress",{action:settings.onProgress,toDisplay:settings.displayData},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr("id")+h+"ProgressBar").css("width",k.percentage+"%");if(j.data.toDisplay=="percentage"){displayData=" - "+k.percentage+"%"}if(j.data.toDisplay=="speed"){displayData=" - "+k.speed+"KB/s"}if(j.data.toDisplay==null){displayData=" "}a("#"+a(this).attr("id")+h+" .percentage").text(displayData)}});a(this).bind("uploadifyComplete",{action:settings.onComplete},function(k,h,j,i,l){if(k.data.action(k,h,j,unescape(i),l)!==false){a("#"+a(this).attr("id")+h+" .percentage").text(" - Completed");a("#"+a(this).attr("id")+h).fadeOut(250,function(){a(this).remove()})}});if(typeof(settings.onAllComplete)=="function"){a(this).bind("uploadifyAllComplete",{action:settings.onAllComplete},function(h,i){if(h.data.action(h,i)!==false){c=[]}})}})},uploadifySettings:function(f,j,c){var g=false;a(this).each(function(){if(f=="scriptData"&&j!=null){if(c){var i=j}else{var i=a.extend(settings.scriptData,j)}var l="";for(var k in i){l+="&"+k+"="+escape(i[k])}j=l.substr(1)}g=document.getElementById(a(this).attr("id")+"Uploader").updateSettings(f,j)});if(j==null){if(f=="scriptData"){var b=unescape(g).split("&");var e=new Object();for(var d=0;d + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var 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 WNG?0EUz(T9yprL5zr(fFUV~q$rRx1Aqhp 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�q!E~idn1Q(cOx47@)7##Hp-vrDIpj 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 EKd~#PtpET3 literal 0 HcmV?d00001 diff --git a/apps/filebrowser/media/filebrowser/uploadify/uploadify.php b/apps/filebrowser/media/filebrowser/uploadify/uploadify.php new file mode 100755 index 00000000..8bf14a67 --- /dev/null +++ b/apps/filebrowser/media/filebrowser/uploadify/uploadify.php @@ -0,0 +1,46 @@ + \ No newline at end of file diff --git a/apps/filebrowser/media/filebrowser/uploadify/uploadify.swf b/apps/filebrowser/media/filebrowser/uploadify/uploadify.swf new file mode 100755 index 0000000000000000000000000000000000000000..0385d9e6eb07271dca3f341ce9d45e914afee0dc GIT binary patch literal 23118 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 teD1;LUVJ`?pN^`!;6L{)(99h>we + + + + + + + +
{% trans "File-Browser" %}
{% trans "File-Browser" %}
+
\ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/.svn/text-base/custom_field.html.svn-base b/apps/filebrowser/templates/filebrowser/.svn/text-base/custom_field.html.svn-base new file mode 100644 index 00000000..ba851982 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/.svn/text-base/custom_field.html.svn-base @@ -0,0 +1,27 @@ +{% load fb_versions %} + + + + +{% ifequal value.filetype "Image" %} +

+ + + +

+{% else %} + +{% endifequal %} +{% if final_attrs.DEBUG %} +

+ Path {{ value.path }}
+ FileType {{ value.filetype }}

+ Directory {{ final_attrs.directory }}
+ Extensions {{ final_attrs.extensions }}
+ Format {{ final_attrs.format }} +

+{% endif %} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/.svn/text-base/index.html.svn-base b/apps/filebrowser/templates/filebrowser/.svn/text-base/index.html.svn-base new file mode 100644 index 00000000..24100fb0 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/.svn/text-base/index.html.svn-base @@ -0,0 +1,70 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags %} + + +{% block extrahead %} + {{ block.super }} + + {% ifequal query.pop '1' %} + + {% endifequal %} + + {% ifequal query.pop '2' %} + + + {% if query.mce_rdomain %}{% endif %} + {% endifequal %} + + {% ifequal query.pop '3' %} + + {% endifequal %} + {{ media }} +{% endblock %} + + +{% block coltype %}flex{% endblock %} +{% block bodyclass %}change-list filebrowser{% if query.pop %} popup{% endif %}{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + {% if query.pop %} + +{% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+ {% block object-tools %} + + {% endblock %} +
+ {% include "filebrowser/include/toolbar.html" %} + {% include "filebrowser/include/filter.html" %} + + {% if results_var.results_current %} + {% include "filebrowser/include/tableheader.html" %} + {% endif %} + + {% for file in files %} + {% include "filebrowser/include/filelisting.html" %} + {% endfor %} + +
+ {% include "filebrowser/include/paginator.html" %} +
+
+{% endblock %} diff --git a/apps/filebrowser/templates/filebrowser/.svn/text-base/makedir.html.svn-base b/apps/filebrowser/templates/filebrowser/.svn/text-base/makedir.html.svn-base new file mode 100644 index 00000000..7fe19ab2 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/.svn/text-base/makedir.html.svn-base @@ -0,0 +1,62 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags %} + + +{% block extrahead %} + {{ block.super }} + + + +{% endblock %} + + +{% block coltype %}colM{% endblock %} +{% block bodyclass %}change-form{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + {% if query.pop %} + +{% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+
+
+ {% if form.errors %}

{% trans 'Please correct the following errors.' %}

{% endif %} +
+
+ {% if form.dir_name.errors %}
    {{ form.dir_name.errors }}
{% endif %} + + {{ form.dir_name }} +
+
+
+

{% trans "Help" %}

+
+ +

+ {{ form.dir_name.help_text|safe }} + {% if settings_var.CONVERT_FILENAME %}
{% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %}{% endif %} +

+
+
+
+
+
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/.svn/text-base/rename.html.svn-base b/apps/filebrowser/templates/filebrowser/.svn/text-base/rename.html.svn-base new file mode 100644 index 00000000..31ddc0a1 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/.svn/text-base/rename.html.svn-base @@ -0,0 +1,63 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags %} + + +{% block extrahead %} + {{ block.super }} + + + +{% endblock %} + + +{% block coltype %}colM{% endblock %} +{% block bodyclass %}change-form{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + {% if query.pop %} + +{% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+
+
+ {% if form.errors %}

{% trans 'Please correct the following errors.' %}

{% endif %} +
+
+ {% if form.name.errors %}
    {{ form.name.errors }}
{% endif %} + + {{ form.name }} + {% if file_extension %}{{ file_extension }}{% endif %} +
+
+
+

{% trans "Help" %}

+
+ +

+ {{ form.name.help_text|safe }} + {% if settings_var.CONVERT_FILENAME %}
{% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %}{% endif %} +

+
+
+
+ +
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/.svn/text-base/upload.html.svn-base b/apps/filebrowser/templates/filebrowser/.svn/text-base/upload.html.svn-base new file mode 100644 index 00000000..2736a3c8 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/.svn/text-base/upload.html.svn-base @@ -0,0 +1,116 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags %} + + +{% block extrahead %} + {{ block.super }} + + + + + + + +{% endblock %} + + +{% block coltype %}colM{% endblock %} +{% block bodyclass %}change-form{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + + {% if query.pop %} + + {% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+
+
+
+
+ +
+
+ +
+

{% trans "Help" %}

+
+ {% for extension in settings_var.EXTENSIONS.items %} + {% ifnotequal extension.0 'Folder' %} + +

{{ extension.0|safe }} ({{ extension.1|join:", "|safe }})

+ {% endifnotequal %} + {% endfor %} +
+
+ +

{{ settings_var.MAX_UPLOAD_SIZE|filesizeformat }}

+
+ {% if settings_var.CONVERT_FILENAME %} +
+ +

+ {% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %} +

+
+ {% endif %} +
+ + + +
+
+
+{% endblock %} diff --git a/apps/filebrowser/templates/filebrowser/.svn/text-base/versions.html.svn-base b/apps/filebrowser/templates/filebrowser/.svn/text-base/versions.html.svn-base new file mode 100644 index 00000000..b038c042 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/.svn/text-base/versions.html.svn-base @@ -0,0 +1,138 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags fb_versions %} + + +{% block extrahead %} + {{ block.super }} + {% ifequal query.pop '1' %} + + {% endifequal %} + {% ifequal query.pop '2' %} + + + {% if query.mce_rdomain %}{% endif %} + {% endifequal %} + {% ifequal query.pop '3' %} + + {% endifequal %} + {{ media }} +{% endblock %} + + +{% block coltype %}colM{% endblock %} +{% block bodyclass %}change-list filebrowser{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + {% if query.pop %} + +{% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+
+
+ + + + + {% ifequal query.pop '1' %}{% endifequal %} + {% ifequal query.pop '2' %}{% endifequal %} + {% ifequal query.pop '3' %}{% endifequal %} + + + + + {% if settings_var.DEBUG %}{% endif %} + + + + {% for version in settings_var.ADMIN_VERSIONS %} + {% version_object original version as image_version %} + + + {% ifequal query.pop '1' %} + + {% endifequal %} + + {% ifequal query.pop '2' %} + + {% endifequal %} + + {% ifequal query.pop '3' %} + + {% endifequal %} + + + + + + {% if settings_var.DEBUG %} + + {% endif %} + + {% endfor %} + +
{% trans 'Name' %}{% trans 'Image Version' %}{% trans "Debug" %}
+ {% selectable image_version.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% selectable image_version.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% selectable image_version.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% version_setting version %} + {{ version_setting.verbose_name }}
+ {% if version_setting.width %}{% trans "Width" %}: {{ version_setting.width }}px
{% endif %} + {% if version_setting.height %}{% trans "Height" %}: {{ version_setting.height }}px{% endif %} +
+ Filename {{ image_version.filename }}
+ Filetype {{ image_version.filetype }}
+ Filesize {{ image_version.filesize }}
+ Extension {{ image_version.extension }}
+ Date {{ image_version.date }}
+ Datetime Object {{ image_version.datetime }}

+ + Relative Path {{ image_version.path_relative }}
+ Full Path {{ image_version.path_full }}
+ Relative URL {{ image_version.url_relative }}
+ Full URL {{ image_version.url_full }}

+ + URL for FileBrowseField {{ image_version.url_save }}
+ Thumbnail URL {{ image_version.url_thumbnail }}

+ + Dimensions {{ image_version.dimensions }}
+ Width {{ image_version.width }}
+ Height {{ image_version.height }}
+ Orientation {{ image_version.orientation }} +
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/append.html b/apps/filebrowser/templates/filebrowser/append.html new file mode 100644 index 00000000..6d1123f1 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/append.html @@ -0,0 +1,12 @@ +{% load i18n %} + +
+ + + + + + + +
{% trans "File-Browser" %}
{% trans "File-Browser" %}
+
\ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/custom_field.html b/apps/filebrowser/templates/filebrowser/custom_field.html new file mode 100644 index 00000000..ba851982 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/custom_field.html @@ -0,0 +1,27 @@ +{% load fb_versions %} + + + + +{% ifequal value.filetype "Image" %} +

+ + + +

+{% else %} + +{% endifequal %} +{% if final_attrs.DEBUG %} +

+ Path {{ value.path }}
+ FileType {{ value.filetype }}

+ Directory {{ final_attrs.directory }}
+ Extensions {{ final_attrs.extensions }}
+ Format {{ final_attrs.format }} +

+{% endif %} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/all-wcprops b/apps/filebrowser/templates/filebrowser/include/.svn/all-wcprops new file mode 100644 index 00000000..b41d11b8 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/all-wcprops @@ -0,0 +1,47 @@ +K 25 +svn:wc:ra_dav:version-url +V 82 +/svn/!svn/ver/463/branches/filebrowser_3/filebrowser/templates/filebrowser/include +END +_response.html +K 25 +svn:wc:ra_dav:version-url +V 97 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/templates/filebrowser/include/_response.html +END +tableheader.html +K 25 +svn:wc:ra_dav:version-url +V 99 +/svn/!svn/ver/424/branches/filebrowser_3/filebrowser/templates/filebrowser/include/tableheader.html +END +toolbar.html +K 25 +svn:wc:ra_dav:version-url +V 95 +/svn/!svn/ver/460/branches/filebrowser_3/filebrowser/templates/filebrowser/include/toolbar.html +END +paginator.html +K 25 +svn:wc:ra_dav:version-url +V 97 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/templates/filebrowser/include/paginator.html +END +filter.html +K 25 +svn:wc:ra_dav:version-url +V 94 +/svn/!svn/ver/460/branches/filebrowser_3/filebrowser/templates/filebrowser/include/filter.html +END +filelisting.html +K 25 +svn:wc:ra_dav:version-url +V 99 +/svn/!svn/ver/424/branches/filebrowser_3/filebrowser/templates/filebrowser/include/filelisting.html +END +breadcrumbs.html +K 25 +svn:wc:ra_dav:version-url +V 99 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/templates/filebrowser/include/breadcrumbs.html +END diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/entries b/apps/filebrowser/templates/filebrowser/include/.svn/entries new file mode 100644 index 00000000..4f9953c1 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/entries @@ -0,0 +1,266 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/templates/filebrowser/include +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T17:53:18.744015Z +463 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +_response.html +file + + + + +2009-11-05T20:58:53.000000Z +633d152ae6feed3333d7f03f4790e032 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +14 + +tableheader.html +file + + + + +2009-11-05T20:58:53.000000Z +07195822d8df07bf95705e748af5709e +2009-08-01T07:36:17.001098Z +424 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +2517 + +toolbar.html +file + + + + +2009-11-05T20:58:53.000000Z +e5d1711ea275ccd3c53b489883e4fbfb +2009-10-12T13:24:43.615535Z +460 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +1918 + +paginator.html +file + + + + +2009-11-05T20:58:53.000000Z +c7677ea7d8fbc59cc97545d0ef898b67 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +661 + +filter.html +file + + + + +2009-11-05T20:58:53.000000Z +3b46164b2f96d36bf5a00e6e09bac934 +2009-10-12T13:24:43.615535Z +460 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +1871 + +filelisting.html +file + + + + +2009-11-05T20:58:53.000000Z +6705461d786e90893ef54f3b5b4b6ae7 +2009-08-01T07:36:17.001098Z +424 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +5651 + +breadcrumbs.html +file + + + + +2009-11-05T20:58:53.000000Z +f110fc06a5d51f3d8c50ba3e0936bb90 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +601 + diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/text-base/_response.html.svn-base b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/_response.html.svn-base new file mode 100644 index 00000000..e7dff2c6 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/_response.html.svn-base @@ -0,0 +1 @@ +{{ response }} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/text-base/breadcrumbs.html.svn-base b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/breadcrumbs.html.svn-base new file mode 100644 index 00000000..5b9d181e --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/breadcrumbs.html.svn-base @@ -0,0 +1,18 @@ +{% load i18n fb_tags %} + \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/text-base/filelisting.html.svn-base b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/filelisting.html.svn-base new file mode 100644 index 00000000..6b3b7622 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/filelisting.html.svn-base @@ -0,0 +1,121 @@ +{% load i18n adminmedia fb_tags fb_versions %} + + + + {% ifequal query.pop '1' %} + {% if results_var.select_total %} + + {% selectable file.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% endif %} + {% endifequal %} + + + {% ifequal query.pop '2' %} + {% if results_var.select_total %} + + {% selectable file.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% endif %} + {% endifequal %} + + + {% ifequal query.pop '3' %} + {% if results_var.select_total %} + + {% selectable file.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% endif %} + {% endifequal %} + + + {% if settings_var.ADMIN_VERSIONS and results_var.images_total %} + + {% ifequal file.filetype 'Image' %}{% endifequal %} + + {% endif %} + + + + + + {% if results_var.images_total %} + + {% ifequal file.filetype 'Image' %} + + {% endifequal %} + + {% endif %} + + + {% ifequal file.filetype 'Folder' %} + {{ file.filename }} + {% else %} + {{ file.filename }}{% if file.dimensions %}
{{ file.dimensions.0 }} x {{ file.dimensions.1 }} px{% endif %} + {% endifequal %} + + + + + + {{ file.filesize|filesizeformat }} + + + {{ file.datetime|date:"N j, Y" }} + + + {% if results_var.delete_total %} + + {% ifnotequal file.filetype 'Folder' %} + + {% else %} + {% if file.is_empty %} + + {% endif %} + {% endifnotequal %} + + {% endif %} + + + {% if settings_var.DEBUG %} + + Filename {{ file.filename }}
+ Filetype {{ file.filetype }}
+ Filesize {{ file.filesize }}
+ Extension {{ file.extension }}
+ Date {{ file.date }}
+ Datetime Object {{ file.datetime }}

+ Relative Path {{ file.path_relative }}
+ Full Path {{ file.path_full }}
+ Relative URL {{ file.url_relative }}
+ Full URL {{ file.url_full }}

+ URL for FileBrowseField {{ file.url_save }}
+ Thumbnail URL {{ file.url_thumbnail }} + {% ifequal file.filetype 'Image' %}

+ Dimensions {{ file.dimensions }}
+ Width {{ file.width }}
+ Height {{ file.height }}
+ Orientation {{ file.orientation }} + {% endifequal %} + {% ifequal file.filetype 'Folder' %}

+ Is Empty {{ file.is_empty }} + {% endifequal %} + + {% endif %} + + diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/text-base/filter.html.svn-base b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/filter.html.svn-base new file mode 100644 index 00000000..28713d0f --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/filter.html.svn-base @@ -0,0 +1,35 @@ +{% load i18n fb_tags %} +
+

{% trans "Filter" %}

+{% if query.filter_date %} +
+{% else %} +
+{% endif %} +

{% trans "By Date" %}

+ +
+{% if query.filter_type %} +
+{% else %} +
+{% endif %} +

{% trans "By Type" %}

+
    + {% if query.filter_type %}
  • {% else %}
  • {% endif %}{% trans "All" %}
  • + {% for extension in settings_var.EXTENSIONS %} + {% ifequal query.filter_type extension %}
  • {% else %}
  • {% endifequal %}{% trans extension %}
  • + {% endfor %} +
+
+
\ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/text-base/paginator.html.svn-base b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/paginator.html.svn-base new file mode 100644 index 00000000..73e5006d --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/paginator.html.svn-base @@ -0,0 +1,17 @@ +{% load i18n %} +{% if not results_var.results_current %} +

+{% trans "No Items Found." %} +

+{% endif %} +

+{% if results_var.results_total %} + {% blocktrans count results_var.results_total as counter %}{{ counter }} Item{% plural %}{{ counter }} Items{% endblocktrans %}  + {% for count in counter.items %} + {% trans count.0 %}: + {{ count.1 }}  + {% endfor %} +{% else %} + {% trans "No Items." %} +{% endif %} +

\ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/text-base/tableheader.html.svn-base b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/tableheader.html.svn-base new file mode 100644 index 00000000..1e6e8164 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/tableheader.html.svn-base @@ -0,0 +1,38 @@ +{% load i18n fb_tags %} + + + + {% ifequal query.pop '1' %}{% if results_var.select_total %}{% endif %}{% endifequal %} + {% ifequal query.pop '2' %}{% if results_var.select_total %}{% endif %}{% endifequal %} + {% ifequal query.pop '3' %}{% if results_var.select_total %}{% endif %}{% endifequal %} + + + {% if settings_var.ADMIN_VERSIONS and results_var.images_total %} {% endif %} + + + {% ifequal query.o 'filetype_checked' %}{% endifequal %} + {% ifnotequal query.o 'filetype_checked' %} {% endifnotequal %} + + + {% if results_var.images_total %} {% endif %} + + + {% ifequal query.o 'filename_lower' %}{% trans 'Filename' %}{% endifequal %} + {% ifnotequal query.o 'filename_lower' %}{% trans 'Filename' %}{% endifnotequal %} + + +   + + + {% ifequal query.o 'filesize' %}{% trans 'Size' %}{% endifequal %} + {% ifnotequal query.o 'filesize' %}{% trans 'Size' %}{% endifnotequal %} + + + {% ifequal query.o 'date' %}{% trans 'Date' %}{% endifequal %} + {% ifnotequal query.o 'date' %}{% trans 'Date' %}{% endifnotequal %} + + + {% if results_var.delete_total %} {% endif %} + {% if settings_var.DEBUG %}Debug{% endif %} + + \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/.svn/text-base/toolbar.html.svn-base b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/toolbar.html.svn-base new file mode 100644 index 00000000..a21d36c8 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/.svn/text-base/toolbar.html.svn-base @@ -0,0 +1,25 @@ +{% load i18n adminmedia fb_tags %} +
+ +
+ \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/_response.html b/apps/filebrowser/templates/filebrowser/include/_response.html new file mode 100644 index 00000000..e7dff2c6 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/_response.html @@ -0,0 +1 @@ +{{ response }} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/breadcrumbs.html b/apps/filebrowser/templates/filebrowser/include/breadcrumbs.html new file mode 100644 index 00000000..5b9d181e --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/breadcrumbs.html @@ -0,0 +1,18 @@ +{% load i18n fb_tags %} + \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/filelisting.html b/apps/filebrowser/templates/filebrowser/include/filelisting.html new file mode 100644 index 00000000..6b3b7622 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/filelisting.html @@ -0,0 +1,121 @@ +{% load i18n adminmedia fb_tags fb_versions %} + + + + {% ifequal query.pop '1' %} + {% if results_var.select_total %} + + {% selectable file.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% endif %} + {% endifequal %} + + + {% ifequal query.pop '2' %} + {% if results_var.select_total %} + + {% selectable file.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% endif %} + {% endifequal %} + + + {% ifequal query.pop '3' %} + {% if results_var.select_total %} + + {% selectable file.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% endif %} + {% endifequal %} + + + {% if settings_var.ADMIN_VERSIONS and results_var.images_total %} + + {% ifequal file.filetype 'Image' %}{% endifequal %} + + {% endif %} + + + + + + {% if results_var.images_total %} + + {% ifequal file.filetype 'Image' %} + + {% endifequal %} + + {% endif %} + + + {% ifequal file.filetype 'Folder' %} + {{ file.filename }} + {% else %} + {{ file.filename }}{% if file.dimensions %}
{{ file.dimensions.0 }} x {{ file.dimensions.1 }} px{% endif %} + {% endifequal %} + + + + + + {{ file.filesize|filesizeformat }} + + + {{ file.datetime|date:"N j, Y" }} + + + {% if results_var.delete_total %} + + {% ifnotequal file.filetype 'Folder' %} + + {% else %} + {% if file.is_empty %} + + {% endif %} + {% endifnotequal %} + + {% endif %} + + + {% if settings_var.DEBUG %} + + Filename {{ file.filename }}
+ Filetype {{ file.filetype }}
+ Filesize {{ file.filesize }}
+ Extension {{ file.extension }}
+ Date {{ file.date }}
+ Datetime Object {{ file.datetime }}

+ Relative Path {{ file.path_relative }}
+ Full Path {{ file.path_full }}
+ Relative URL {{ file.url_relative }}
+ Full URL {{ file.url_full }}

+ URL for FileBrowseField {{ file.url_save }}
+ Thumbnail URL {{ file.url_thumbnail }} + {% ifequal file.filetype 'Image' %}

+ Dimensions {{ file.dimensions }}
+ Width {{ file.width }}
+ Height {{ file.height }}
+ Orientation {{ file.orientation }} + {% endifequal %} + {% ifequal file.filetype 'Folder' %}

+ Is Empty {{ file.is_empty }} + {% endifequal %} + + {% endif %} + + diff --git a/apps/filebrowser/templates/filebrowser/include/filter.html b/apps/filebrowser/templates/filebrowser/include/filter.html new file mode 100644 index 00000000..28713d0f --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/filter.html @@ -0,0 +1,35 @@ +{% load i18n fb_tags %} +
+

{% trans "Filter" %}

+{% if query.filter_date %} +
+{% else %} +
+{% endif %} +

{% trans "By Date" %}

+ +
+{% if query.filter_type %} +
+{% else %} +
+{% endif %} +

{% trans "By Type" %}

+
    + {% if query.filter_type %}
  • {% else %}
  • {% endif %}{% trans "All" %}
  • + {% for extension in settings_var.EXTENSIONS %} + {% ifequal query.filter_type extension %}
  • {% else %}
  • {% endifequal %}{% trans extension %}
  • + {% endfor %} +
+
+
\ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/paginator.html b/apps/filebrowser/templates/filebrowser/include/paginator.html new file mode 100644 index 00000000..73e5006d --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/paginator.html @@ -0,0 +1,17 @@ +{% load i18n %} +{% if not results_var.results_current %} +

+{% trans "No Items Found." %} +

+{% endif %} +

+{% if results_var.results_total %} + {% blocktrans count results_var.results_total as counter %}{{ counter }} Item{% plural %}{{ counter }} Items{% endblocktrans %}  + {% for count in counter.items %} + {% trans count.0 %}: + {{ count.1 }}  + {% endfor %} +{% else %} + {% trans "No Items." %} +{% endif %} +

\ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/tableheader.html b/apps/filebrowser/templates/filebrowser/include/tableheader.html new file mode 100644 index 00000000..1e6e8164 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/tableheader.html @@ -0,0 +1,38 @@ +{% load i18n fb_tags %} + + + + {% ifequal query.pop '1' %}{% if results_var.select_total %}{% endif %}{% endifequal %} + {% ifequal query.pop '2' %}{% if results_var.select_total %}{% endif %}{% endifequal %} + {% ifequal query.pop '3' %}{% if results_var.select_total %}{% endif %}{% endifequal %} + + + {% if settings_var.ADMIN_VERSIONS and results_var.images_total %} {% endif %} + + + {% ifequal query.o 'filetype_checked' %}{% endifequal %} + {% ifnotequal query.o 'filetype_checked' %} {% endifnotequal %} + + + {% if results_var.images_total %} {% endif %} + + + {% ifequal query.o 'filename_lower' %}{% trans 'Filename' %}{% endifequal %} + {% ifnotequal query.o 'filename_lower' %}{% trans 'Filename' %}{% endifnotequal %} + + +   + + + {% ifequal query.o 'filesize' %}{% trans 'Size' %}{% endifequal %} + {% ifnotequal query.o 'filesize' %}{% trans 'Size' %}{% endifnotequal %} + + + {% ifequal query.o 'date' %}{% trans 'Date' %}{% endifequal %} + {% ifnotequal query.o 'date' %}{% trans 'Date' %}{% endifnotequal %} + + + {% if results_var.delete_total %} {% endif %} + {% if settings_var.DEBUG %}Debug{% endif %} + + \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/include/toolbar.html b/apps/filebrowser/templates/filebrowser/include/toolbar.html new file mode 100644 index 00000000..a21d36c8 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/include/toolbar.html @@ -0,0 +1,25 @@ +{% load i18n adminmedia fb_tags %} +
+ +
+ \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/index.html b/apps/filebrowser/templates/filebrowser/index.html new file mode 100644 index 00000000..24100fb0 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/index.html @@ -0,0 +1,70 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags %} + + +{% block extrahead %} + {{ block.super }} + + {% ifequal query.pop '1' %} + + {% endifequal %} + + {% ifequal query.pop '2' %} + + + {% if query.mce_rdomain %}{% endif %} + {% endifequal %} + + {% ifequal query.pop '3' %} + + {% endifequal %} + {{ media }} +{% endblock %} + + +{% block coltype %}flex{% endblock %} +{% block bodyclass %}change-list filebrowser{% if query.pop %} popup{% endif %}{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + {% if query.pop %} + +{% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+ {% block object-tools %} + + {% endblock %} +
+ {% include "filebrowser/include/toolbar.html" %} + {% include "filebrowser/include/filter.html" %} + + {% if results_var.results_current %} + {% include "filebrowser/include/tableheader.html" %} + {% endif %} + + {% for file in files %} + {% include "filebrowser/include/filelisting.html" %} + {% endfor %} + +
+ {% include "filebrowser/include/paginator.html" %} +
+
+{% endblock %} diff --git a/apps/filebrowser/templates/filebrowser/makedir.html b/apps/filebrowser/templates/filebrowser/makedir.html new file mode 100644 index 00000000..7fe19ab2 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/makedir.html @@ -0,0 +1,62 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags %} + + +{% block extrahead %} + {{ block.super }} + + + +{% endblock %} + + +{% block coltype %}colM{% endblock %} +{% block bodyclass %}change-form{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + {% if query.pop %} + +{% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+
+
+ {% if form.errors %}

{% trans 'Please correct the following errors.' %}

{% endif %} +
+
+ {% if form.dir_name.errors %}
    {{ form.dir_name.errors }}
{% endif %} + + {{ form.dir_name }} +
+
+
+

{% trans "Help" %}

+
+ +

+ {{ form.dir_name.help_text|safe }} + {% if settings_var.CONVERT_FILENAME %}
{% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %}{% endif %} +

+
+
+
+
+
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/rename.html b/apps/filebrowser/templates/filebrowser/rename.html new file mode 100644 index 00000000..31ddc0a1 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/rename.html @@ -0,0 +1,63 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags %} + + +{% block extrahead %} + {{ block.super }} + + + +{% endblock %} + + +{% block coltype %}colM{% endblock %} +{% block bodyclass %}change-form{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + {% if query.pop %} + +{% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+
+
+ {% if form.errors %}

{% trans 'Please correct the following errors.' %}

{% endif %} +
+
+ {% if form.name.errors %}
    {{ form.name.errors }}
{% endif %} + + {{ form.name }} + {% if file_extension %}{{ file_extension }}{% endif %} +
+
+
+

{% trans "Help" %}

+
+ +

+ {{ form.name.help_text|safe }} + {% if settings_var.CONVERT_FILENAME %}
{% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %}{% endif %} +

+
+
+
+ +
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/apps/filebrowser/templates/filebrowser/upload.html b/apps/filebrowser/templates/filebrowser/upload.html new file mode 100644 index 00000000..2736a3c8 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/upload.html @@ -0,0 +1,116 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags %} + + +{% block extrahead %} + {{ block.super }} + + + + + + + +{% endblock %} + + +{% block coltype %}colM{% endblock %} +{% block bodyclass %}change-form{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + + {% if query.pop %} + + {% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+
+
+
+
+ +
+
+ +
+

{% trans "Help" %}

+
+ {% for extension in settings_var.EXTENSIONS.items %} + {% ifnotequal extension.0 'Folder' %} + +

{{ extension.0|safe }} ({{ extension.1|join:", "|safe }})

+ {% endifnotequal %} + {% endfor %} +
+
+ +

{{ settings_var.MAX_UPLOAD_SIZE|filesizeformat }}

+
+ {% if settings_var.CONVERT_FILENAME %} +
+ +

+ {% trans "The Name will be converted to lowercase. Spaces will be replaced with underscores." %} +

+
+ {% endif %} +
+ + + +
+
+
+{% endblock %} diff --git a/apps/filebrowser/templates/filebrowser/versions.html b/apps/filebrowser/templates/filebrowser/versions.html new file mode 100644 index 00000000..b038c042 --- /dev/null +++ b/apps/filebrowser/templates/filebrowser/versions.html @@ -0,0 +1,138 @@ +{% extends "admin/base_site.html" %} + + +{% load i18n adminmedia fb_tags fb_versions %} + + +{% block extrahead %} + {{ block.super }} + {% ifequal query.pop '1' %} + + {% endifequal %} + {% ifequal query.pop '2' %} + + + {% if query.mce_rdomain %}{% endif %} + {% endifequal %} + {% ifequal query.pop '3' %} + + {% endifequal %} + {{ media }} +{% endblock %} + + +{% block coltype %}colM{% endblock %} +{% block bodyclass %}change-list filebrowser{% endblock %} + + +{% block extrastyle %} + {{ block.super }} + + + {% if query.pop %} + +{% endif %} +{% endblock %} + + +{% block breadcrumbs %}{% include "filebrowser/include/breadcrumbs.html" %}{% endblock %} + + +{% block content %} +
+
+
+ + + + + {% ifequal query.pop '1' %}{% endifequal %} + {% ifequal query.pop '2' %}{% endifequal %} + {% ifequal query.pop '3' %}{% endifequal %} + + + + + {% if settings_var.DEBUG %}{% endif %} + + + + {% for version in settings_var.ADMIN_VERSIONS %} + {% version_object original version as image_version %} + + + {% ifequal query.pop '1' %} + + {% endifequal %} + + {% ifequal query.pop '2' %} + + {% endifequal %} + + {% ifequal query.pop '3' %} + + {% endifequal %} + + + + + + {% if settings_var.DEBUG %} + + {% endif %} + + {% endfor %} + +
{% trans 'Name' %}{% trans 'Image Version' %}{% trans "Debug" %}
+ {% selectable image_version.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% selectable image_version.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% selectable image_version.filetype query.type %} + {% if selectable %} + + {% else %} + + {% endif %} + + {% version_setting version %} + {{ version_setting.verbose_name }}
+ {% if version_setting.width %}{% trans "Width" %}: {{ version_setting.width }}px
{% endif %} + {% if version_setting.height %}{% trans "Height" %}: {{ version_setting.height }}px{% endif %} +
+ Filename {{ image_version.filename }}
+ Filetype {{ image_version.filetype }}
+ Filesize {{ image_version.filesize }}
+ Extension {{ image_version.extension }}
+ Date {{ image_version.date }}
+ Datetime Object {{ image_version.datetime }}

+ + Relative Path {{ image_version.path_relative }}
+ Full Path {{ image_version.path_full }}
+ Relative URL {{ image_version.url_relative }}
+ Full URL {{ image_version.url_full }}

+ + URL for FileBrowseField {{ image_version.url_save }}
+ Thumbnail URL {{ image_version.url_thumbnail }}

+ + Dimensions {{ image_version.dimensions }}
+ Width {{ image_version.width }}
+ Height {{ image_version.height }}
+ Orientation {{ image_version.orientation }} +
+
+
+
+{% endblock %} \ No newline at end of file diff --git a/apps/filebrowser/templatetags/.svn/all-wcprops b/apps/filebrowser/templatetags/.svn/all-wcprops new file mode 100644 index 00000000..4cb9a9ad --- /dev/null +++ b/apps/filebrowser/templatetags/.svn/all-wcprops @@ -0,0 +1,23 @@ +K 25 +svn:wc:ra_dav:version-url +V 65 +/svn/!svn/ver/432/branches/filebrowser_3/filebrowser/templatetags +END +fb_versions.py +K 25 +svn:wc:ra_dav:version-url +V 80 +/svn/!svn/ver/432/branches/filebrowser_3/filebrowser/templatetags/fb_versions.py +END +__init__.py +K 25 +svn:wc:ra_dav:version-url +V 77 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/templatetags/__init__.py +END +fb_tags.py +K 25 +svn:wc:ra_dav:version-url +V 76 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/templatetags/fb_tags.py +END diff --git a/apps/filebrowser/templatetags/.svn/entries b/apps/filebrowser/templatetags/.svn/entries new file mode 100644 index 00000000..e6bdf1fe --- /dev/null +++ b/apps/filebrowser/templatetags/.svn/entries @@ -0,0 +1,130 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/templatetags +http://django-filebrowser.googlecode.com/svn + + + +2009-08-06T07:04:57.356188Z +432 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +fb_versions.py +file + + + + +2009-11-05T20:58:52.000000Z +51b29544dc45eb9c944a841253d1fd5b +2009-08-06T07:04:57.356188Z +432 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +7013 + +__init__.py +file + + + + +2009-11-05T20:58:52.000000Z +d41d8cd98f00b204e9800998ecf8427e +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +0 + +fb_tags.py +file + + + + +2009-11-05T20:58:52.000000Z +b892a5d2e0ad7082f30e5bd4f9b42f4d +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +3880 + diff --git a/apps/filebrowser/templatetags/.svn/text-base/__init__.py.svn-base b/apps/filebrowser/templatetags/.svn/text-base/__init__.py.svn-base new file mode 100644 index 00000000..e69de29b diff --git a/apps/filebrowser/templatetags/.svn/text-base/fb_tags.py.svn-base b/apps/filebrowser/templatetags/.svn/text-base/fb_tags.py.svn-base new file mode 100644 index 00000000..f1e968d0 --- /dev/null +++ b/apps/filebrowser/templatetags/.svn/text-base/fb_tags.py.svn-base @@ -0,0 +1,133 @@ +# coding: utf-8 + +from django import template +from django.utils.encoding import smart_unicode +from django.utils.safestring import mark_safe + +from filebrowser.fb_settings import SELECT_FORMATS + +register = template.Library() + +@register.inclusion_tag('filebrowser/include/_response.html', takes_context=True) +def query_string(context, add=None, remove=None): + """ + Allows the addition and removal of query string parameters. + + _response.html is just {{ response }} + + Usage: + http://www.url.com/{% query_string "param_to_add=value, param_to_add=value" "param_to_remove, params_to_remove" %} + http://www.url.com/{% query_string "" "filter" %}filter={{new_filter}} + http://www.url.com/{% query_string "sort=value" "sort" %} + """ + # Written as an inclusion tag to simplify getting the context. + add = string_to_dict(add) + remove = string_to_list(remove) + params = context['query'].copy() + response = get_query_string(params, add, remove) + return {'response': response } + + +def query_helper(query, add=None, remove=None): + """ + Helper Function for use within views. + """ + add = string_to_dict(add) + remove = string_to_list(remove) + params = query.copy() + return get_query_string(params, add, remove) + + +def get_query_string(p, new_params=None, remove=None): + """ + Add and remove query parameters. From `django.contrib.admin`. + """ + if new_params is None: new_params = {} + if remove is None: remove = [] + for r in remove: + for k in p.keys(): + if k.startswith(r): + del p[k] + for k, v in new_params.items(): + if k in p and v is None: + del p[k] + elif v is not None: + p[k] = v + return mark_safe('?' + '&'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20')) + + +def string_to_dict(string): + """ + Usage:: + + {{ url|thumbnail:"width=10,height=20" }} + {{ url|thumbnail:"width=10" }} + {{ url|thumbnail:"height=20" }} + """ + kwargs = {} + if string: + string = str(string) + if ',' not in string: + # ensure at least one ',' + string += ',' + for arg in string.split(','): + arg = arg.strip() + if arg == '': continue + kw, val = arg.split('=', 1) + kwargs[kw] = val + return kwargs + + +def string_to_list(string): + """ + Usage:: + + {{ url|thumbnail:"width,height" }} + """ + args = [] + if string: + string = str(string) + if ',' not in string: + # ensure at least one ',' + string += ',' + for arg in string.split(','): + arg = arg.strip() + if arg == '': continue + args.append(arg) + return args + + +class SelectableNode(template.Node): + def __init__(self, filetype, format): + self.filetype = template.Variable(filetype) + self.format = template.Variable(format) + + def render(self, context): + try: + filetype = self.filetype.resolve(context) + except template.VariableDoesNotExist: + filetype = '' + try: + format = self.format.resolve(context) + except template.VariableDoesNotExist: + format = '' + if filetype and format and filetype in SELECT_FORMATS[format]: + selectable = True + elif filetype and format and filetype not in SELECT_FORMATS[format]: + selectable = False + else: + selectable = True + context['selectable'] = selectable + return '' + + +def selectable(parser, token): + + try: + tag, filetype, format = token.split_contents() + except: + raise TemplateSyntaxError, "%s tag requires 2 arguments" % token.contents.split()[0] + + return SelectableNode(filetype, format) + +register.tag(selectable) diff --git a/apps/filebrowser/templatetags/.svn/text-base/fb_versions.py.svn-base b/apps/filebrowser/templatetags/.svn/text-base/fb_versions.py.svn-base new file mode 100644 index 00000000..887fd9ea --- /dev/null +++ b/apps/filebrowser/templatetags/.svn/text-base/fb_versions.py.svn-base @@ -0,0 +1,171 @@ +# coding: utf-8 + +import os, re +from time import gmtime +from django.template import Library, Node, Variable, VariableDoesNotExist, TemplateSyntaxError +from django.conf import settings +from django.utils.encoding import force_unicode + +# filebrowser imports +from filebrowser.fb_settings import MEDIA_ROOT, MEDIA_URL, VERSIONS +from filebrowser.functions import _url_to_path, _path_to_url, _get_version_path, _version_generator +from filebrowser.base import FileObject + +register = Library() + +class VersionNode(Node): + def __init__(self, src, version_prefix): + self.src = Variable(src) + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): + self.version_prefix = version_prefix[1:-1] + else: + self.version_prefix = None + self.version_prefix_var = Variable(version_prefix) + + def render(self, context): + try: + source = self.src.resolve(context) + except VariableDoesNotExist: + return None + if self.version_prefix: + version_prefix = self.version_prefix + else: + try: + version_prefix = self.version_prefix_var.resolve(context) + except VariableDoesNotExist: + return None + try: + version_path = _get_version_path(_url_to_path(str(source)), version_prefix) + if not os.path.isfile(os.path.join(MEDIA_ROOT, version_path)): + # create version + version_path = _version_generator(_url_to_path(str(source)), version_prefix) + elif os.path.getmtime(os.path.join(MEDIA_ROOT, _url_to_path(str(source)))) > os.path.getmtime(os.path.join(MEDIA_ROOT, version_path)): + # recreate version if original image was updated + version_path = _version_generator(_url_to_path(str(source)), version_prefix, force=True) + return _path_to_url(version_path) + except: + return "" + + +def version(parser, token): + """ + Displaying a version of an existing Image according to the predefined VERSIONS settings (see fb_settings). + {% version field_name version_prefix %} + + Use {% version my_image 'medium' %} in order to display the medium-size + version of an Image stored in a field name my_image. + + version_prefix can be a string or a variable. if version_prefix is a string, use quotes. + """ + + try: + tag, src, version_prefix = token.split_contents() + except: + raise TemplateSyntaxError, "%s tag requires 2 arguments" % token.contents.split()[0] + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: + raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) + return VersionNode(src, version_prefix) + + +class VersionObjectNode(Node): + def __init__(self, src, version_prefix, var_name): + self.var_name = var_name + self.src = Variable(src) + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): + self.version_prefix = version_prefix[1:-1] + else: + self.version_prefix = None + self.version_prefix_var = Variable(version_prefix) + + def render(self, context): + try: + source = self.src.resolve(context) + except VariableDoesNotExist: + return None + if self.version_prefix: + version_prefix = self.version_prefix + else: + try: + version_prefix = self.version_prefix_var.resolve(context) + except VariableDoesNotExist: + return None + try: + version_path = _get_version_path(_url_to_path(str(source)), version_prefix) + if not os.path.isfile(os.path.join(MEDIA_ROOT, version_path)): + # create version + version_path = _version_generator(_url_to_path(str(source)), version_prefix) + elif os.path.getmtime(os.path.join(MEDIA_ROOT, _url_to_path(str(source)))) > os.path.getmtime(os.path.join(MEDIA_ROOT, version_path)): + # recreate version if original image was updated + version_path = _version_generator(_url_to_path(str(source)), version_prefix, force=True) + context[self.var_name] = FileObject(version_path) + except: + context[self.var_name] = "" + return '' + + +def version_object(parser, token): + """ + Returns a context variable 'version_object'. + {% version_object field_name version_prefix %} + + Use {% version_object my_image 'medium' %} in order to retrieve the medium + version of an Image stored in a field name my_image. + Use {% version_object my_image 'medium' as var %} in order to use 'var' as + your context variable. + + version_prefix can be a string or a variable. if version_prefix is a string, use quotes. + """ + + try: + #tag, src, version_prefix = token.split_contents() + tag, arg = token.contents.split(None, 1) + except: + raise TemplateSyntaxError, "%s tag requires arguments" % token.contents.split()[0] + m = re.search(r'(.*?) (.*?) as (\w+)', arg) + if not m: + raise TemplateSyntaxError, "%r tag had invalid arguments" % tag + src, version_prefix, var_name = m.groups() + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: + raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) + return VersionObjectNode(src, version_prefix, var_name) + + +class VersionSettingNode(Node): + def __init__(self, version_prefix): + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): + self.version_prefix = version_prefix[1:-1] + else: + self.version_prefix = None + self.version_prefix_var = Variable(version_prefix) + + def render(self, context): + if self.version_prefix: + version_prefix = self.version_prefix + else: + try: + version_prefix = self.version_prefix_var.resolve(context) + except VariableDoesNotExist: + return None + context['version_setting'] = VERSIONS[version_prefix] + return '' + + +def version_setting(parser, token): + """ + Get Information about a version setting. + """ + + try: + tag, version_prefix = token.split_contents() + except: + raise TemplateSyntaxError, "%s tag requires 1 argument" % token.contents.split()[0] + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: + raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) + return VersionSettingNode(version_prefix) + + +register.tag(version) +register.tag(version_object) +register.tag(version_setting) + + diff --git a/apps/filebrowser/templatetags/__init__.py b/apps/filebrowser/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/apps/filebrowser/templatetags/fb_tags.py b/apps/filebrowser/templatetags/fb_tags.py new file mode 100644 index 00000000..f1e968d0 --- /dev/null +++ b/apps/filebrowser/templatetags/fb_tags.py @@ -0,0 +1,133 @@ +# coding: utf-8 + +from django import template +from django.utils.encoding import smart_unicode +from django.utils.safestring import mark_safe + +from filebrowser.fb_settings import SELECT_FORMATS + +register = template.Library() + +@register.inclusion_tag('filebrowser/include/_response.html', takes_context=True) +def query_string(context, add=None, remove=None): + """ + Allows the addition and removal of query string parameters. + + _response.html is just {{ response }} + + Usage: + http://www.url.com/{% query_string "param_to_add=value, param_to_add=value" "param_to_remove, params_to_remove" %} + http://www.url.com/{% query_string "" "filter" %}filter={{new_filter}} + http://www.url.com/{% query_string "sort=value" "sort" %} + """ + # Written as an inclusion tag to simplify getting the context. + add = string_to_dict(add) + remove = string_to_list(remove) + params = context['query'].copy() + response = get_query_string(params, add, remove) + return {'response': response } + + +def query_helper(query, add=None, remove=None): + """ + Helper Function for use within views. + """ + add = string_to_dict(add) + remove = string_to_list(remove) + params = query.copy() + return get_query_string(params, add, remove) + + +def get_query_string(p, new_params=None, remove=None): + """ + Add and remove query parameters. From `django.contrib.admin`. + """ + if new_params is None: new_params = {} + if remove is None: remove = [] + for r in remove: + for k in p.keys(): + if k.startswith(r): + del p[k] + for k, v in new_params.items(): + if k in p and v is None: + del p[k] + elif v is not None: + p[k] = v + return mark_safe('?' + '&'.join([u'%s=%s' % (k, v) for k, v in p.items()]).replace(' ', '%20')) + + +def string_to_dict(string): + """ + Usage:: + + {{ url|thumbnail:"width=10,height=20" }} + {{ url|thumbnail:"width=10" }} + {{ url|thumbnail:"height=20" }} + """ + kwargs = {} + if string: + string = str(string) + if ',' not in string: + # ensure at least one ',' + string += ',' + for arg in string.split(','): + arg = arg.strip() + if arg == '': continue + kw, val = arg.split('=', 1) + kwargs[kw] = val + return kwargs + + +def string_to_list(string): + """ + Usage:: + + {{ url|thumbnail:"width,height" }} + """ + args = [] + if string: + string = str(string) + if ',' not in string: + # ensure at least one ',' + string += ',' + for arg in string.split(','): + arg = arg.strip() + if arg == '': continue + args.append(arg) + return args + + +class SelectableNode(template.Node): + def __init__(self, filetype, format): + self.filetype = template.Variable(filetype) + self.format = template.Variable(format) + + def render(self, context): + try: + filetype = self.filetype.resolve(context) + except template.VariableDoesNotExist: + filetype = '' + try: + format = self.format.resolve(context) + except template.VariableDoesNotExist: + format = '' + if filetype and format and filetype in SELECT_FORMATS[format]: + selectable = True + elif filetype and format and filetype not in SELECT_FORMATS[format]: + selectable = False + else: + selectable = True + context['selectable'] = selectable + return '' + + +def selectable(parser, token): + + try: + tag, filetype, format = token.split_contents() + except: + raise TemplateSyntaxError, "%s tag requires 2 arguments" % token.contents.split()[0] + + return SelectableNode(filetype, format) + +register.tag(selectable) diff --git a/apps/filebrowser/templatetags/fb_versions.py b/apps/filebrowser/templatetags/fb_versions.py new file mode 100644 index 00000000..887fd9ea --- /dev/null +++ b/apps/filebrowser/templatetags/fb_versions.py @@ -0,0 +1,171 @@ +# coding: utf-8 + +import os, re +from time import gmtime +from django.template import Library, Node, Variable, VariableDoesNotExist, TemplateSyntaxError +from django.conf import settings +from django.utils.encoding import force_unicode + +# filebrowser imports +from filebrowser.fb_settings import MEDIA_ROOT, MEDIA_URL, VERSIONS +from filebrowser.functions import _url_to_path, _path_to_url, _get_version_path, _version_generator +from filebrowser.base import FileObject + +register = Library() + +class VersionNode(Node): + def __init__(self, src, version_prefix): + self.src = Variable(src) + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): + self.version_prefix = version_prefix[1:-1] + else: + self.version_prefix = None + self.version_prefix_var = Variable(version_prefix) + + def render(self, context): + try: + source = self.src.resolve(context) + except VariableDoesNotExist: + return None + if self.version_prefix: + version_prefix = self.version_prefix + else: + try: + version_prefix = self.version_prefix_var.resolve(context) + except VariableDoesNotExist: + return None + try: + version_path = _get_version_path(_url_to_path(str(source)), version_prefix) + if not os.path.isfile(os.path.join(MEDIA_ROOT, version_path)): + # create version + version_path = _version_generator(_url_to_path(str(source)), version_prefix) + elif os.path.getmtime(os.path.join(MEDIA_ROOT, _url_to_path(str(source)))) > os.path.getmtime(os.path.join(MEDIA_ROOT, version_path)): + # recreate version if original image was updated + version_path = _version_generator(_url_to_path(str(source)), version_prefix, force=True) + return _path_to_url(version_path) + except: + return "" + + +def version(parser, token): + """ + Displaying a version of an existing Image according to the predefined VERSIONS settings (see fb_settings). + {% version field_name version_prefix %} + + Use {% version my_image 'medium' %} in order to display the medium-size + version of an Image stored in a field name my_image. + + version_prefix can be a string or a variable. if version_prefix is a string, use quotes. + """ + + try: + tag, src, version_prefix = token.split_contents() + except: + raise TemplateSyntaxError, "%s tag requires 2 arguments" % token.contents.split()[0] + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: + raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) + return VersionNode(src, version_prefix) + + +class VersionObjectNode(Node): + def __init__(self, src, version_prefix, var_name): + self.var_name = var_name + self.src = Variable(src) + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): + self.version_prefix = version_prefix[1:-1] + else: + self.version_prefix = None + self.version_prefix_var = Variable(version_prefix) + + def render(self, context): + try: + source = self.src.resolve(context) + except VariableDoesNotExist: + return None + if self.version_prefix: + version_prefix = self.version_prefix + else: + try: + version_prefix = self.version_prefix_var.resolve(context) + except VariableDoesNotExist: + return None + try: + version_path = _get_version_path(_url_to_path(str(source)), version_prefix) + if not os.path.isfile(os.path.join(MEDIA_ROOT, version_path)): + # create version + version_path = _version_generator(_url_to_path(str(source)), version_prefix) + elif os.path.getmtime(os.path.join(MEDIA_ROOT, _url_to_path(str(source)))) > os.path.getmtime(os.path.join(MEDIA_ROOT, version_path)): + # recreate version if original image was updated + version_path = _version_generator(_url_to_path(str(source)), version_prefix, force=True) + context[self.var_name] = FileObject(version_path) + except: + context[self.var_name] = "" + return '' + + +def version_object(parser, token): + """ + Returns a context variable 'version_object'. + {% version_object field_name version_prefix %} + + Use {% version_object my_image 'medium' %} in order to retrieve the medium + version of an Image stored in a field name my_image. + Use {% version_object my_image 'medium' as var %} in order to use 'var' as + your context variable. + + version_prefix can be a string or a variable. if version_prefix is a string, use quotes. + """ + + try: + #tag, src, version_prefix = token.split_contents() + tag, arg = token.contents.split(None, 1) + except: + raise TemplateSyntaxError, "%s tag requires arguments" % token.contents.split()[0] + m = re.search(r'(.*?) (.*?) as (\w+)', arg) + if not m: + raise TemplateSyntaxError, "%r tag had invalid arguments" % tag + src, version_prefix, var_name = m.groups() + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: + raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) + return VersionObjectNode(src, version_prefix, var_name) + + +class VersionSettingNode(Node): + def __init__(self, version_prefix): + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")): + self.version_prefix = version_prefix[1:-1] + else: + self.version_prefix = None + self.version_prefix_var = Variable(version_prefix) + + def render(self, context): + if self.version_prefix: + version_prefix = self.version_prefix + else: + try: + version_prefix = self.version_prefix_var.resolve(context) + except VariableDoesNotExist: + return None + context['version_setting'] = VERSIONS[version_prefix] + return '' + + +def version_setting(parser, token): + """ + Get Information about a version setting. + """ + + try: + tag, version_prefix = token.split_contents() + except: + raise TemplateSyntaxError, "%s tag requires 1 argument" % token.contents.split()[0] + if (version_prefix[0] == version_prefix[-1] and version_prefix[0] in ('"', "'")) and version_prefix.lower()[1:-1] not in VERSIONS: + raise TemplateSyntaxError, "%s tag received bad version_prefix %s" % (tag, version_prefix) + return VersionSettingNode(version_prefix) + + +register.tag(version) +register.tag(version_object) +register.tag(version_setting) + + diff --git a/apps/filebrowser/urls.py b/apps/filebrowser/urls.py new file mode 100644 index 00000000..5cfc2596 --- /dev/null +++ b/apps/filebrowser/urls.py @@ -0,0 +1,16 @@ +from django.conf.urls.defaults import * + +urlpatterns = patterns('', + + # filebrowser urls + url(r'^browse/$', 'filebrowser.views.browse', name="fb_browse"), + url(r'^mkdir/', 'filebrowser.views.mkdir', name="fb_mkdir"), + url(r'^upload/', 'filebrowser.views.upload', name="fb_upload"), + url(r'^rename/$', 'filebrowser.views.rename', name="fb_rename"), + url(r'^delete/$', 'filebrowser.views.delete', name="fb_delete"), + url(r'^versions/$', 'filebrowser.views.versions', name="fb_versions"), + + url(r'^check_file/$', 'filebrowser.views._check_file', name="fb_check"), + url(r'^upload_file/$', 'filebrowser.views._upload_file', name="fb_do_upload"), + +) diff --git a/apps/filebrowser/views.py b/apps/filebrowser/views.py new file mode 100644 index 00000000..0976f11e --- /dev/null +++ b/apps/filebrowser/views.py @@ -0,0 +1,432 @@ +# coding: utf-8 + +# general imports +import os, re +from time import gmtime, strftime + +# django imports +from django.shortcuts import render_to_response, HttpResponse +from django.template import RequestContext as Context +from django.http import HttpResponseRedirect +from django.contrib.admin.views.decorators import staff_member_required +from django.views.decorators.cache import never_cache +from django.utils.translation import ugettext as _ +from django.conf import settings +from django import forms +from django.core.urlresolvers import reverse +from django.core.exceptions import ImproperlyConfigured +from django.dispatch import Signal + +# filebrowser imports +from filebrowser.fb_settings import * +from filebrowser.functions import _url_to_path, _path_to_url, _sort_by_attr, _get_path, _get_file, _get_version_path, _get_breadcrumbs, _get_filterdate, _get_settings_var, _handle_file_upload, _get_file_type, _url_join, _convert_filename +from filebrowser.templatetags.fb_tags import query_helper +from filebrowser.base import FileObject +from filebrowser.decorators import flash_login_required + +# Precompile regular expressions +filter_re = [] +for exp in EXCLUDE: + filter_re.append(re.compile(exp)) +for k,v in VERSIONS.iteritems(): + exp = (r'_%s.(%s)') % (k, '|'.join(EXTENSION_LIST)) + filter_re.append(re.compile(exp)) + + +def browse(request): + """ + Browse Files/Directories. + """ + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + directory = _get_path('') + + if path is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + if directory is None: + # The DIRECTORY does not exist, raise an error to prevent eternal redirecting. + raise ImproperlyConfigured, _("Error finding upload directory. Maybe it does not exist?") + redirect_url = reverse("fb_browse") + query_helper(query, "", "dir") + return HttpResponseRedirect(redirect_url) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + # INITIAL VARIABLES + results_var = {'results_total': 0, 'results_current': 0, 'delete_total': 0, 'images_total': 0, 'select_total': 0 } + counter = {} + for k,v in EXTENSIONS.iteritems(): + counter[k] = 0 + + dir_list = os.listdir(abs_path) + files = [] + for file in dir_list: + + # EXCLUDE FILES MATCHING VERSIONS_PREFIX OR ANY OF THE EXCLUDE PATTERNS + filtered = file.startswith('.') + for re_prefix in filter_re: + if re_prefix.search(file): + filtered = True + if filtered: + continue + results_var['results_total'] += 1 + + # CREATE FILEOBJECT + fileobject = FileObject(os.path.join(DIRECTORY, path, file)) + + # FILTER / SEARCH + append = False + if fileobject.filetype == request.GET.get('filter_type', fileobject.filetype) and _get_filterdate(request.GET.get('filter_date', ''), fileobject.date): + append = True + if request.GET.get('q') and not re.compile(request.GET.get('q').lower(), re.M).search(file.lower()): + append = False + + # APPEND FILE_LIST + if append: + files.append(fileobject) + results_var['results_current'] += 1 + # COUNTER/RESULTS + if fileobject.filetype == 'Image': + results_var['images_total'] += 1 + if fileobject.filetype != 'Folder': + results_var['delete_total'] += 1 + elif fileobject.filetype == 'Folder' and fileobject.is_empty: + results_var['delete_total'] += 1 + if query.get('type') and query.get('type') in SELECT_FORMATS and fileobject.filetype in SELECT_FORMATS[query.get('type')]: + results_var['select_total'] += 1 + elif not query.get('type'): + results_var['select_total'] += 1 + + # COUNTER/RESULTS + if fileobject.filetype: + counter[fileobject.filetype] += 1 + + # SORTING + files = _sort_by_attr(files, request.GET.get('o', 'date')) + if request.GET.get('ot') == "desc": + files.reverse() + + return render_to_response('filebrowser/index.html', { + 'dir': path, + 'files': files, + 'results_var': results_var, + 'counter': counter, + 'query': query, + 'title': _(u'FileBrowser'), + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, ''), + }, context_instance=Context(request)) +browse = staff_member_required(never_cache(browse)) + + +# mkdir signals +filebrowser_pre_createdir = Signal(providing_args=["path", "dirname"]) +filebrowser_post_createdir = Signal(providing_args=["path", "dirname"]) + +def mkdir(request): + """ + Make Directory. + """ + + from filebrowser.forms import MakeDirForm + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + if path is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + if request.method == 'POST': + form = MakeDirForm(abs_path, request.POST) + if form.is_valid(): + server_path = os.path.join(abs_path, form.cleaned_data['dir_name']) + try: + # PRE CREATE SIGNAL + filebrowser_pre_createdir.send(sender=request, path=path, dirname=form.cleaned_data['dir_name']) + # CREATE FOLDER + os.mkdir(server_path) + os.chmod(server_path, 0775) + # POST CREATE SIGNAL + filebrowser_post_createdir.send(sender=request, path=path, dirname=form.cleaned_data['dir_name']) + # MESSAGE & REDIRECT + msg = _('The Folder %s was successfully created.') % (form.cleaned_data['dir_name']) + request.user.message_set.create(message=msg) + # on redirect, sort by date desc to see the new directory on top of the list + # remove filter in order to actually _see_ the new folder + redirect_url = reverse("fb_browse") + query_helper(query, "ot=desc,o=date", "ot,o,filter_type,filter_date,q") + return HttpResponseRedirect(redirect_url) + except OSError, (errno, strerror): + if errno == 13: + form.errors['dir_name'] = forms.util.ErrorList([_('Permission denied.')]) + else: + form.errors['dir_name'] = forms.util.ErrorList([_('Error creating directory.')]) + else: + form = MakeDirForm(abs_path) + + return render_to_response('filebrowser/makedir.html', { + 'form': form, + 'query': query, + 'title': _(u'New Folder'), + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, _(u'New Folder')), + }, context_instance=Context(request)) +mkdir = staff_member_required(never_cache(mkdir)) + + +def upload(request): + """ + Multipe File Upload. + """ + + from django.http import parse_cookie + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + if path is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + # SESSION (used for flash-uploading) + cookie_dict = parse_cookie(request.META.get('HTTP_COOKIE', '')) + engine = __import__(settings.SESSION_ENGINE, {}, {}, ['']) + session_key = cookie_dict.get(settings.SESSION_COOKIE_NAME, None) + + return render_to_response('filebrowser/upload.html', { + 'query': query, + 'title': _(u'Select files to upload'), + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, _(u'Upload')), + 'session_key': session_key, + }, context_instance=Context(request)) +upload = staff_member_required(never_cache(upload)) + + +def _check_file(request): + """ + Check if file already exists on the server. + """ + + from django.utils import simplejson + + folder = request.POST.get('folder') + fb_uploadurl_re = re.compile(r'^(%s)' % reverse("fb_upload")) + folder = fb_uploadurl_re.sub('', folder) + + fileArray = {} + if request.method == 'POST': + for k,v in request.POST.items(): + if k != "folder": + v = _convert_filename(v) + if os.path.isfile(os.path.join(MEDIA_ROOT, DIRECTORY, folder, v)): + fileArray[k] = v + + return HttpResponse(simplejson.dumps(fileArray)) + + +# upload signals +filebrowser_pre_upload = Signal(providing_args=["path", "file"]) +filebrowser_post_upload = Signal(providing_args=["path", "file"]) + +def _upload_file(request): + """ + Upload file to the server. + """ + + from django.core.files.move import file_move_safe + + if request.method == 'POST': + folder = request.POST.get('folder') + fb_uploadurl_re = re.compile(r'^(%s)' % reverse("fb_upload")) + folder = fb_uploadurl_re.sub('', folder) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, folder) + if request.FILES: + filedata = request.FILES['Filedata'] + filedata.name = _convert_filename(filedata.name) + # PRE UPLOAD SIGNAL + filebrowser_pre_upload.send(sender=request, path=request.POST.get('folder'), file=filedata) + # HANDLE UPLOAD + uploadedfile = _handle_file_upload(abs_path, filedata) + # MOVE UPLOADED FILE + # if file already exists + if os.path.isfile(os.path.join(MEDIA_ROOT, DIRECTORY, folder, filedata.name)): + old_file = os.path.join(abs_path, filedata.name) + new_file = os.path.join(abs_path, uploadedfile) + file_move_safe(new_file, old_file) + # POST UPLOAD SIGNAL + filebrowser_post_upload.send(sender=request, path=request.POST.get('folder'), file=FileObject(os.path.join(DIRECTORY, folder, filedata.name))) + return HttpResponse('True') +_upload_file = flash_login_required(_upload_file) + + +# delete signals +filebrowser_pre_delete = Signal(providing_args=["path", "filename"]) +filebrowser_post_delete = Signal(providing_args=["path", "filename"]) + +def delete(request): + """ + Delete existing File/Directory. + + When trying to delete a Directory, the Directory has to be empty. + """ + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + filename = _get_file(query.get('dir', ''), query.get('filename', '')) + if path is None or filename is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + msg = "" + if request.GET: + if request.GET.get('filetype') != "Folder": + relative_server_path = os.path.join(DIRECTORY, path, filename) + try: + # PRE DELETE SIGNAL + filebrowser_pre_delete.send(sender=request, path=path, filename=filename) + # DELETE IMAGE VERSIONS/THUMBNAILS + for version in VERSIONS: + try: + os.unlink(os.path.join(MEDIA_ROOT, _get_version_path(relative_server_path, version))) + except: + pass + # DELETE FILE + os.unlink(os.path.join(abs_path, filename)) + # POST DELETE SIGNAL + filebrowser_post_delete.send(sender=request, path=path, filename=filename) + # MESSAGE & REDIRECT + msg = _('The file %s was successfully deleted.') % (filename.lower()) + request.user.message_set.create(message=msg) + redirect_url = reverse("fb_browse") + query_helper(query, "", "filename,filetype") + return HttpResponseRedirect(redirect_url) + except OSError: + # todo: define error message + msg = OSError + else: + try: + # PRE DELETE SIGNAL + filebrowser_pre_delete.send(sender=request, path=path, filename=filename) + # DELETE FOLDER + os.rmdir(os.path.join(abs_path, filename)) + # POST DELETE SIGNAL + filebrowser_post_delete.send(sender=request, path=path, filename=filename) + # MESSAGE & REDIRECT + msg = _('The directory %s was successfully deleted.') % (filename.lower()) + request.user.message_set.create(message=msg) + redirect_url = reverse("fb_browse") + query_helper(query, "", "filename,filetype") + return HttpResponseRedirect(redirect_url) + except OSError: + # todo: define error message + msg = OSError + + if msg: + request.user.message_set.create(message=msg) + + return render_to_response('filebrowser/index.html', { + 'dir': dir_name, + 'file': request.GET.get('filename', ''), + 'query': query, + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, dir_name, ''), + }, context_instance=Context(request)) +delete = staff_member_required(never_cache(delete)) + + +# delete signals +filebrowser_pre_rename = Signal(providing_args=["path", "filename"]) +filebrowser_post_rename = Signal(providing_args=["path", "filename"]) + +def rename(request): + """ + Rename existing File/Directory. + + Includes renaming existing Image Versions/Thumbnails. + """ + + from filebrowser.forms import RenameForm + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + filename = _get_file(query.get('dir', ''), query.get('filename', '')) + if path is None or filename is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + file_extension = os.path.splitext(filename)[1].lower() + + if request.method == 'POST': + form = RenameForm(abs_path, file_extension, request.POST) + if form.is_valid(): + relative_server_path = os.path.join(DIRECTORY, path, filename) + new_relative_server_path = os.path.join(DIRECTORY, path, form.cleaned_data['name'] + file_extension) + try: + # PRE RENAME SIGNAL + filebrowser_pre_delete.send(sender=request, path=path, filename=filename) + # DELETE IMAGE VERSIONS/THUMBNAILS + # regenerating versions/thumbs will be done automatically + for version in VERSIONS: + try: + os.unlink(os.path.join(MEDIA_ROOT, _get_version_path(relative_server_path, version))) + except: + pass + # RENAME ORIGINAL + os.rename(os.path.join(MEDIA_ROOT, relative_server_path), os.path.join(MEDIA_ROOT, new_relative_server_path)) + # POST RENAME SIGNAL + filebrowser_post_delete.send(sender=request, path=path, filename=filename) + # MESSAGE & REDIRECT + msg = _('Renaming was successful.') + request.user.message_set.create(message=msg) + redirect_url = reverse("fb_browse") + query_helper(query, "", "filename") + return HttpResponseRedirect(redirect_url) + except OSError, (errno, strerror): + form.errors['name'] = forms.util.ErrorList([_('Error.')]) + else: + form = RenameForm(abs_path, file_extension) + + return render_to_response('filebrowser/rename.html', { + 'form': form, + 'query': query, + 'file_extension': file_extension, + 'title': _(u'Rename "%s"') % filename, + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, _(u'Rename')), + }, context_instance=Context(request)) +rename = staff_member_required(never_cache(rename)) + + +def versions(request): + """ + Show all Versions for an Image according to ADMIN_VERSIONS. + """ + + # QUERY / PATH CHECK + query = request.GET + path = _get_path(query.get('dir', '')) + filename = _get_file(query.get('dir', ''), query.get('filename', '')) + if path is None or filename is None: + msg = _('Directory/File does not exist.') + request.user.message_set.create(message=msg) + return HttpResponseRedirect(reverse("fb_browse")) + abs_path = os.path.join(MEDIA_ROOT, DIRECTORY, path) + + return render_to_response('filebrowser/versions.html', { + 'original': _path_to_url(os.path.join(DIRECTORY, path, filename)), + 'query': query, + 'title': _(u'Versions for "%s"') % filename, + 'settings_var': _get_settings_var(), + 'breadcrumbs': _get_breadcrumbs(query, path, _(u'Versions for "%s"') % filename), + }, context_instance=Context(request)) +versions = staff_member_required(never_cache(versions)) + + diff --git a/apps/sorl/__init__.py b/apps/sorl/__init__.py new file mode 100755 index 00000000..e69de29b diff --git a/apps/sorl/thumbnail/__init__.py b/apps/sorl/thumbnail/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/apps/sorl/thumbnail/base.py b/apps/sorl/thumbnail/base.py new file mode 100755 index 00000000..24f4d973 --- /dev/null +++ b/apps/sorl/thumbnail/base.py @@ -0,0 +1,285 @@ +import os +from os.path import isfile, isdir, getmtime, dirname, splitext, getsize +from tempfile import mkstemp +from shutil import copyfile + +from PIL import Image + +from sorl.thumbnail import defaults +from sorl.thumbnail.processors import get_valid_options, dynamic_import + + +class ThumbnailException(Exception): + # Stop Django templates from choking if something goes wrong. + silent_variable_failure = True + + +class Thumbnail(object): + imagemagick_file_types = defaults.IMAGEMAGICK_FILE_TYPES + + def __init__(self, source, requested_size, opts=None, quality=85, + dest=None, convert_path=defaults.CONVERT, + wvps_path=defaults.WVPS, processors=None): + # Paths to external commands + self.convert_path = convert_path + self.wvps_path = wvps_path + # Absolute paths to files + self.source = source + self.dest = dest + + # Thumbnail settings + try: + x, y = [int(v) for v in requested_size] + except (TypeError, ValueError): + raise TypeError('Thumbnail received invalid value for size ' + 'argument: %s' % repr(requested_size)) + else: + self.requested_size = (x, y) + try: + self.quality = int(quality) + if not 0 < quality <= 100: + raise ValueError + except (TypeError, ValueError): + raise TypeError('Thumbnail received invalid value for quality ' + 'argument: %r' % quality) + + # Processors + if processors is None: + processors = dynamic_import(defaults.PROCESSORS) + self.processors = processors + + # Handle old list format for opts. + opts = opts or {} + if isinstance(opts, (list, tuple)): + opts = dict([(opt, None) for opt in opts]) + + # Set Thumbnail opt(ion)s + VALID_OPTIONS = get_valid_options(processors) + for opt in opts: + if not opt in VALID_OPTIONS: + raise TypeError('Thumbnail received an invalid option: %s' + % opt) + self.opts = opts + + if self.dest is not None: + self.generate() + + def generate(self): + """ + Generates the thumbnail if it doesn't exist or if the file date of the + source file is newer than that of the thumbnail. + """ + # Ensure dest(ination) attribute is set + if not self.dest: + raise ThumbnailException("No destination filename set.") + + if not isinstance(self.dest, basestring): + # We'll assume dest is a file-like instance if it exists but isn't + # a string. + self._do_generate() + elif not isfile(self.dest) or (self.source_exists and + getmtime(self.source) > getmtime(self.dest)): + + # Ensure the directory exists + directory = dirname(self.dest) + if directory and not isdir(directory): + os.makedirs(directory) + + self._do_generate() + + def _check_source_exists(self): + """ + Ensure the source file exists. If source is not a string then it is + assumed to be a file-like instance which "exists". + """ + if not hasattr(self, '_source_exists'): + self._source_exists = (self.source and + (not isinstance(self.source, basestring) or + isfile(self.source))) + return self._source_exists + source_exists = property(_check_source_exists) + + def _get_source_filetype(self): + """ + Set the source filetype. First it tries to use magic and + if import error it will just use the extension + """ + if not hasattr(self, '_source_filetype'): + if not isinstance(self.source, basestring): + # Assuming a file-like object - we won't know it's type. + return None + try: + import magic + except ImportError: + self._source_filetype = splitext(self.source)[1].lower().\ + replace('.', '').replace('jpeg', 'jpg') + else: + m = magic.open(magic.MAGIC_NONE) + m.load() + ftype = m.file(self.source) + if ftype.find('Microsoft Office Document') != -1: + self._source_filetype = 'doc' + elif ftype.find('PDF document') != -1: + self._source_filetype = 'pdf' + elif ftype.find('JPEG') != -1: + self._source_filetype = 'jpg' + else: + self._source_filetype = ftype + return self._source_filetype + source_filetype = property(_get_source_filetype) + + # data property is the image data of the (generated) thumbnail + def _get_data(self): + if not hasattr(self, '_data'): + try: + self._data = Image.open(self.dest) + except IOError, detail: + raise ThumbnailException(detail) + return self._data + + def _set_data(self, im): + self._data = im + data = property(_get_data, _set_data) + + # source_data property is the image data from the source file + def _get_source_data(self): + if not hasattr(self, '_source_data'): + if not self.source_exists: + raise ThumbnailException("Source file: '%s' does not exist." % + self.source) + if self.source_filetype == 'doc': + self._convert_wvps(self.source) + elif self.source_filetype in self.imagemagick_file_types: + self._convert_imagemagick(self.source) + else: + self.source_data = self.source + return self._source_data + + def _set_source_data(self, image): + if isinstance(image, Image.Image): + self._source_data = image + else: + try: + self._source_data = Image.open(image) + except IOError, detail: + raise ThumbnailException("%s: %s" % (detail, image)) + except MemoryError: + raise ThumbnailException("Memory Error: %s" % image) + source_data = property(_get_source_data, _set_source_data) + + def _convert_wvps(self, filename): + try: + import subprocess + except ImportError: + raise ThumbnailException('wvps requires the Python 2.4 subprocess ' + 'package.') + tmp = mkstemp('.ps')[1] + try: + p = subprocess.Popen((self.wvps_path, filename, tmp), + stdout=subprocess.PIPE) + p.wait() + except OSError, detail: + os.remove(tmp) + raise ThumbnailException('wvPS error: %s' % detail) + self._convert_imagemagick(tmp) + os.remove(tmp) + + def _convert_imagemagick(self, filename): + try: + import subprocess + except ImportError: + raise ThumbnailException('imagemagick requires the Python 2.4 ' + 'subprocess package.') + tmp = mkstemp('.png')[1] + if 'crop' in self.opts or 'autocrop' in self.opts: + x, y = [d * 3 for d in self.requested_size] + else: + x, y = self.requested_size + try: + p = subprocess.Popen((self.convert_path, '-size', '%sx%s' % (x, y), + '-antialias', '-colorspace', 'rgb', '-format', 'PNG24', + '%s[0]' % filename, tmp), stdout=subprocess.PIPE) + p.wait() + except OSError, detail: + os.remove(tmp) + raise ThumbnailException('ImageMagick error: %s' % detail) + self.source_data = tmp + os.remove(tmp) + + def _do_generate(self): + """ + Generates the thumbnail image. + + This a semi-private method so it isn't directly available to template + authors if this object is passed to the template context. + """ + im = self.source_data + + for processor in self.processors: + im = processor(im, self.requested_size, self.opts) + + self.data = im + + filelike = not isinstance(self.dest, basestring) + if not filelike: + dest_extension = os.path.splitext(self.dest)[1][1:] + format = None + else: + dest_extension = None + format = 'JPEG' + if (self.source_filetype and self.source_filetype == dest_extension and + self.source_data == self.data): + copyfile(self.source, self.dest) + else: + try: + im.save(self.dest, format=format, quality=self.quality, + optimize=1) + except IOError: + # Try again, without optimization (PIL can't optimize an image + # larger than ImageFile.MAXBLOCK, which is 64k by default) + try: + im.save(self.dest, format=format, quality=self.quality) + except IOError, detail: + raise ThumbnailException(detail) + + if filelike: + self.dest.seek(0) + + # Some helpful methods + + def _dimension(self, axis): + if self.dest is None: + return None + return self.data.size[axis] + + def width(self): + return self._dimension(0) + + def height(self): + return self._dimension(1) + + def _get_filesize(self): + if self.dest is None: + return None + if not hasattr(self, '_filesize'): + self._filesize = getsize(self.dest) + return self._filesize + filesize = property(_get_filesize) + + def _source_dimension(self, axis): + if self.source_filetype in ['pdf', 'doc']: + return None + else: + return self.source_data.size[axis] + + def source_width(self): + return self._source_dimension(0) + + def source_height(self): + return self._source_dimension(1) + + def _get_source_filesize(self): + if not hasattr(self, '_source_filesize'): + self._source_filesize = getsize(self.source) + return self._source_filesize + source_filesize = property(_get_source_filesize) diff --git a/apps/sorl/thumbnail/defaults.py b/apps/sorl/thumbnail/defaults.py new file mode 100644 index 00000000..b4ae142b --- /dev/null +++ b/apps/sorl/thumbnail/defaults.py @@ -0,0 +1,15 @@ +DEBUG = False +BASEDIR = '' +SUBDIR = '' +PREFIX = '' +QUALITY = 85 +CONVERT = '/usr/bin/convert' +WVPS = '/usr/bin/wvPS' +EXTENSION = 'jpg' +PROCESSORS = ( + 'sorl.thumbnail.processors.colorspace', + 'sorl.thumbnail.processors.autocrop', + 'sorl.thumbnail.processors.scale_and_crop', + 'sorl.thumbnail.processors.filters', +) +IMAGEMAGICK_FILE_TYPES = ('eps', 'pdf', 'psd') diff --git a/apps/sorl/thumbnail/fields.py b/apps/sorl/thumbnail/fields.py new file mode 100644 index 00000000..1b527434 --- /dev/null +++ b/apps/sorl/thumbnail/fields.py @@ -0,0 +1,228 @@ +from UserDict import DictMixin +try: + from cStringIO import StringIO +except ImportError: + from StringIO import StringIO + +from django.db.models.fields.files import ImageField, ImageFieldFile +from django.core.files.base import ContentFile +from django.utils.safestring import mark_safe +from django.utils.html import escape + +from sorl.thumbnail.base import Thumbnail +from sorl.thumbnail.main import DjangoThumbnail, build_thumbnail_name +from sorl.thumbnail.utils import delete_thumbnails + + +REQUIRED_ARGS = ('size',) +ALL_ARGS = { + 'size': 'requested_size', + 'options': 'opts', + 'quality': 'quality', + 'basedir': 'basedir', + 'subdir': 'subdir', + 'prefix': 'prefix', + 'extension': 'extension', +} +BASE_ARGS = { + 'size': 'requested_size', + 'options': 'opts', + 'quality': 'quality', +} +TAG_HTML = '' + + +class ThumbsDict(object, DictMixin): + def __init__(self, descriptor): + super(ThumbsDict, self).__init__() + self.descriptor = descriptor + + def keys(self): + return self.descriptor.field.extra_thumbnails.keys() + + +class LazyThumbs(ThumbsDict): + def __init__(self, *args, **kwargs): + super(LazyThumbs, self).__init__(*args, **kwargs) + self.cached = {} + + def __getitem__(self, key): + thumb = self.cached.get(key) + if not thumb: + args = self.descriptor.field.extra_thumbnails[key] + thumb = self.descriptor._build_thumbnail(args) + self.cached[key] = thumb + return thumb + + def keys(self): + return self.descriptor.field.extra_thumbnails.keys() + + +class ThumbTags(ThumbsDict): + def __getitem__(self, key): + thumb = self.descriptor.extra_thumbnails[key] + return self.descriptor._build_thumbnail_tag(thumb) + + +class BaseThumbnailFieldFile(ImageFieldFile): + def _build_thumbnail(self, args): + # Build the DjangoThumbnail kwargs. + kwargs = {} + for k, v in args.items(): + kwargs[ALL_ARGS[k]] = v + # Build the destination filename and return the thumbnail. + name_kwargs = {} + for key in ['size', 'options', 'quality', 'basedir', 'subdir', + 'prefix', 'extension']: + name_kwargs[key] = args.get(key) + source = getattr(self.instance, self.field.name) + dest = build_thumbnail_name(source.name, **name_kwargs) + return DjangoThumbnail(source, relative_dest=dest, **kwargs) + + def _build_thumbnail_tag(self, thumb): + opts = dict(src=escape(thumb), width=thumb.width(), + height=thumb.height()) + return mark_safe(self.field.thumbnail_tag % opts) + + def _get_extra_thumbnails(self): + if self.field.extra_thumbnails is None: + return None + if not hasattr(self, '_extra_thumbnails'): + self._extra_thumbnails = LazyThumbs(self) + return self._extra_thumbnails + extra_thumbnails = property(_get_extra_thumbnails) + + def _get_extra_thumbnails_tag(self): + if self.field.extra_thumbnails is None: + return None + return ThumbTags(self) + extra_thumbnails_tag = property(_get_extra_thumbnails_tag) + + def save(self, *args, **kwargs): + # Optionally generate the thumbnails after the image is saved. + super(BaseThumbnailFieldFile, self).save(*args, **kwargs) + if self.field.generate_on_save: + self.generate_thumbnails() + + def delete(self, *args, **kwargs): + # Delete any thumbnails too (and not just ones defined here in case + # the {% thumbnail %} tag was used or the thumbnail sizes changed). + relative_source_path = getattr(self.instance, self.field.name).name + delete_thumbnails(relative_source_path) + super(BaseThumbnailFieldFile, self).delete(*args, **kwargs) + + def generate_thumbnails(self): + # Getting the thumbs generates them. + if self.extra_thumbnails: + self.extra_thumbnails.values() + + +class ImageWithThumbnailsFieldFile(BaseThumbnailFieldFile): + def _get_thumbnail(self): + return self._build_thumbnail(self.field.thumbnail) + thumbnail = property(_get_thumbnail) + + def _get_thumbnail_tag(self): + return self._build_thumbnail_tag(self.thumbnail) + thumbnail_tag = property(_get_thumbnail_tag) + + def generate_thumbnails(self, *args, **kwargs): + self.thumbnail.generate() + Super = super(ImageWithThumbnailsFieldFile, self) + return Super.generate_thumbnails(*args, **kwargs) + + +class ThumbnailFieldFile(BaseThumbnailFieldFile): + def save(self, name, content, *args, **kwargs): + new_content = StringIO() + # Build the Thumbnail kwargs. + thumbnail_kwargs = {} + for k, argk in BASE_ARGS.items(): + if not k in self.field.thumbnail: + continue + thumbnail_kwargs[argk] = self.field.thumbnail[k] + Thumbnail(source=content, dest=new_content, **thumbnail_kwargs) + new_content = ContentFile(new_content.read()) + super(ThumbnailFieldFile, self).save(name, new_content, *args, + **kwargs) + + def _get_thumbnail_tag(self): + opts = dict(src=escape(self.url), width=self.width, + height=self.height) + return mark_safe(self.field.thumbnail_tag % opts) + thumbnail_tag = property(_get_thumbnail_tag) + + +class BaseThumbnailField(ImageField): + def __init__(self, *args, **kwargs): + # The new arguments for this field aren't explicitly defined so that + # users can still use normal ImageField positional arguments. + self.extra_thumbnails = kwargs.pop('extra_thumbnails', None) + self.thumbnail_tag = kwargs.pop('thumbnail_tag', TAG_HTML) + self.generate_on_save = kwargs.pop('generate_on_save', False) + + super(BaseThumbnailField, self).__init__(*args, **kwargs) + _verify_thumbnail_attrs(self.thumbnail) + if self.extra_thumbnails: + for extra, attrs in self.extra_thumbnails.items(): + name = "%r of 'extra_thumbnails'" + _verify_thumbnail_attrs(attrs, name) + + def south_field_triple(self): + """ + Return a suitable description of this field for South. + """ + # We'll just introspect ourselves, since we inherit. + from south.modelsinspector import introspector + field_class = "django.db.models.fields.files.ImageField" + args, kwargs = introspector(self) + # That's our definition! + return (field_class, args, kwargs) + + +class ImageWithThumbnailsField(BaseThumbnailField): + """ + photo = ImageWithThumbnailsField( + upload_to='uploads', + thumbnail={'size': (80, 80), 'options': ('crop', 'upscale'), + 'extension': 'png'}, + extra_thumbnails={ + 'admin': {'size': (70, 50), 'options': ('sharpen',)}, + } + ) + """ + attr_class = ImageWithThumbnailsFieldFile + + def __init__(self, *args, **kwargs): + self.thumbnail = kwargs.pop('thumbnail', None) + super(ImageWithThumbnailsField, self).__init__(*args, **kwargs) + + +class ThumbnailField(BaseThumbnailField): + """ + avatar = ThumbnailField( + upload_to='uploads', + size=(200, 200), + options=('crop',), + extra_thumbnails={ + 'admin': {'size': (70, 50), 'options': (crop, 'sharpen')}, + } + ) + """ + attr_class = ThumbnailFieldFile + + def __init__(self, *args, **kwargs): + self.thumbnail = {} + for attr in ALL_ARGS: + if attr in kwargs: + self.thumbnail[attr] = kwargs.pop(attr) + super(ThumbnailField, self).__init__(*args, **kwargs) + + +def _verify_thumbnail_attrs(attrs, name="'thumbnail'"): + for arg in REQUIRED_ARGS: + if arg not in attrs: + raise TypeError('Required attr %r missing in %s arg' % (arg, name)) + for attr in attrs: + if attr not in ALL_ARGS: + raise TypeError('Invalid attr %r found in %s arg' % (arg, name)) diff --git a/apps/sorl/thumbnail/main.py b/apps/sorl/thumbnail/main.py new file mode 100644 index 00000000..a59b64f1 --- /dev/null +++ b/apps/sorl/thumbnail/main.py @@ -0,0 +1,115 @@ +import os + +from django.conf import settings +from django.utils.encoding import iri_to_uri, force_unicode + +from sorl.thumbnail.base import Thumbnail +from sorl.thumbnail.processors import dynamic_import +from sorl.thumbnail import defaults + + +def get_thumbnail_setting(setting, override=None): + """ + Get a thumbnail setting from Django settings module, falling back to the + default. + + If override is not None, it will be used instead of the setting. + """ + if override is not None: + return override + if hasattr(settings, 'THUMBNAIL_%s' % setting): + return getattr(settings, 'THUMBNAIL_%s' % setting) + else: + return getattr(defaults, setting) + + +def build_thumbnail_name(source_name, size, options=None, + quality=None, basedir=None, subdir=None, prefix=None, + extension=None): + quality = get_thumbnail_setting('QUALITY', quality) + basedir = get_thumbnail_setting('BASEDIR', basedir) + subdir = get_thumbnail_setting('SUBDIR', subdir) + prefix = get_thumbnail_setting('PREFIX', prefix) + extension = get_thumbnail_setting('EXTENSION', extension) + path, filename = os.path.split(source_name) + basename, ext = os.path.splitext(filename) + name = '%s%s' % (basename, ext.replace(os.extsep, '_')) + size = '%sx%s' % tuple(size) + + # Handle old list format for opts. + options = options or {} + if isinstance(options, (list, tuple)): + options = dict([(opt, None) for opt in options]) + + opts = options.items() + opts.sort() # options are sorted so the filename is consistent + opts = ['%s_' % (v is not None and '%s-%s' % (k, v) or k) + for k, v in opts] + opts = ''.join(opts) + extension = extension and '.%s' % extension + thumbnail_filename = '%s%s_%s_%sq%s%s' % (prefix, name, size, opts, + quality, extension) + return os.path.join(basedir, path, subdir, thumbnail_filename) + + +class DjangoThumbnail(Thumbnail): + imagemagick_file_types = get_thumbnail_setting('IMAGEMAGICK_FILE_TYPES') + + def __init__(self, relative_source, requested_size, opts=None, + quality=None, basedir=None, subdir=None, prefix=None, + relative_dest=None, processors=None, extension=None): + relative_source = force_unicode(relative_source) + # Set the absolute filename for the source file + source = self._absolute_path(relative_source) + + quality = get_thumbnail_setting('QUALITY', quality) + convert_path = get_thumbnail_setting('CONVERT') + wvps_path = get_thumbnail_setting('WVPS') + if processors is None: + processors = dynamic_import(get_thumbnail_setting('PROCESSORS')) + + # Call super().__init__ now to set the opts attribute. generate() won't + # get called because we are not setting the dest attribute yet. + super(DjangoThumbnail, self).__init__(source, requested_size, + opts=opts, quality=quality, convert_path=convert_path, + wvps_path=wvps_path, processors=processors) + + # Get the relative filename for the thumbnail image, then set the + # destination filename + if relative_dest is None: + relative_dest = \ + self._get_relative_thumbnail(relative_source, basedir=basedir, + subdir=subdir, prefix=prefix, + extension=extension) + filelike = not isinstance(relative_dest, basestring) + if filelike: + self.dest = relative_dest + else: + self.dest = self._absolute_path(relative_dest) + + # Call generate now that the dest attribute has been set + self.generate() + + # Set the relative & absolute url to the thumbnail + if not filelike: + self.relative_url = \ + iri_to_uri('/'.join(relative_dest.split(os.sep))) + self.absolute_url = '%s%s' % (settings.MEDIA_URL, + self.relative_url) + + def _get_relative_thumbnail(self, relative_source, + basedir=None, subdir=None, prefix=None, + extension=None): + """ + Returns the thumbnail filename including relative path. + """ + return build_thumbnail_name(relative_source, self.requested_size, + self.opts, self.quality, basedir, subdir, + prefix, extension) + + def _absolute_path(self, filename): + absolute_filename = os.path.join(settings.MEDIA_ROOT, filename) + return absolute_filename.encode(settings.FILE_CHARSET) + + def __unicode__(self): + return self.absolute_url diff --git a/apps/sorl/thumbnail/management/__init__.py b/apps/sorl/thumbnail/management/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/apps/sorl/thumbnail/management/commands/__init__.py b/apps/sorl/thumbnail/management/commands/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/apps/sorl/thumbnail/management/commands/thumbnail_cleanup.py b/apps/sorl/thumbnail/management/commands/thumbnail_cleanup.py new file mode 100644 index 00000000..690c42c7 --- /dev/null +++ b/apps/sorl/thumbnail/management/commands/thumbnail_cleanup.py @@ -0,0 +1,75 @@ +import os +import re +from django.db import models +from django.conf import settings +from django.core.management.base import NoArgsCommand +from sorl.thumbnail.main import get_thumbnail_setting + + +try: + set +except NameError: + from sets import Set as set # For Python 2.3 + +thumb_re = re.compile(r'^%s(.*)_\d{1,}x\d{1,}_[-\w]*q([1-9]\d?|100)\.jpg' % + get_thumbnail_setting('PREFIX')) + + +def get_thumbnail_path(path): + basedir = get_thumbnail_setting('BASEDIR') + subdir = get_thumbnail_setting('SUBDIR') + return os.path.join(basedir, path, subdir) + + +def clean_up(): + paths = set() + for app in models.get_apps(): + model_list = models.get_models(app) + for model in model_list: + for field in model._meta.fields: + if isinstance(field, models.ImageField): + #TODO: take care of date formatted and callable upload_to. + if (not callable(field.upload_to) and + field.upload_to.find("%") == -1): + paths = paths.union((field.upload_to,)) + paths = list(paths) + for path in paths: + thumbnail_path = get_thumbnail_path(path) + try: + file_list = os.listdir(os.path.join(settings.MEDIA_ROOT, + thumbnail_path)) + except OSError: + continue # Dir doesn't exists, no thumbnails here. + for fn in file_list: + m = thumb_re.match(fn) + if m: + # Due to that the naming of thumbnails replaces the dot before + # extension with an underscore we have 2 possibilities for the + # original filename. If either present we do not delete + # suspected thumbnail. + # org_fn is the expected original filename w/o extension + # org_fn_alt is the expected original filename with extension + org_fn = m.group(1) + org_fn_exists = os.path.isfile( + os.path.join(settings.MEDIA_ROOT, path, org_fn)) + + usc_pos = org_fn.rfind("_") + if usc_pos != -1: + org_fn_alt = "%s.%s" % (org_fn[0:usc_pos], + org_fn[usc_pos+1:]) + org_fn_alt_exists = os.path.isfile( + os.path.join(settings.MEDIA_ROOT, path, org_fn_alt)) + else: + org_fn_alt_exists = False + if not org_fn_exists and not org_fn_alt_exists: + del_me = os.path.join(settings.MEDIA_ROOT, + thumbnail_path, fn) + os.remove(del_me) + + +class Command(NoArgsCommand): + help = "Deletes thumbnails that no longer have an original file." + requires_model_validation = False + + def handle_noargs(self, **options): + clean_up() diff --git a/apps/sorl/thumbnail/models.py b/apps/sorl/thumbnail/models.py new file mode 100644 index 00000000..ec325fd5 --- /dev/null +++ b/apps/sorl/thumbnail/models.py @@ -0,0 +1 @@ +# Needs a models.py file so that tests are picked up. diff --git a/apps/sorl/thumbnail/processors.py b/apps/sorl/thumbnail/processors.py new file mode 100644 index 00000000..a6c17416 --- /dev/null +++ b/apps/sorl/thumbnail/processors.py @@ -0,0 +1,130 @@ +from PIL import Image, ImageFilter, ImageChops +from sorl.thumbnail import utils +import re + + +def dynamic_import(names): + imported = [] + for name in names: + # Use rfind rather than rsplit for Python 2.3 compatibility. + lastdot = name.rfind('.') + modname, attrname = name[:lastdot], name[lastdot + 1:] + mod = __import__(modname, {}, {}, ['']) + imported.append(getattr(mod, attrname)) + return imported + + +def get_valid_options(processors): + """ + Returns a list containing unique valid options from a list of processors + in correct order. + """ + valid_options = [] + for processor in processors: + if hasattr(processor, 'valid_options'): + valid_options.extend([opt for opt in processor.valid_options + if opt not in valid_options]) + return valid_options + + +def colorspace(im, requested_size, opts): + if 'bw' in opts and im.mode != "L": + im = im.convert("L") + elif im.mode not in ("L", "RGB", "RGBA"): + im = im.convert("RGB") + return im +colorspace.valid_options = ('bw',) + + +def autocrop(im, requested_size, opts): + if 'autocrop' in opts: + bw = im.convert("1") + bw = bw.filter(ImageFilter.MedianFilter) + # white bg + bg = Image.new("1", im.size, 255) + diff = ImageChops.difference(bw, bg) + bbox = diff.getbbox() + if bbox: + im = im.crop(bbox) + return im +autocrop.valid_options = ('autocrop',) + + +def scale_and_crop(im, requested_size, opts): + x, y = [float(v) for v in im.size] + xr, yr = [float(v) for v in requested_size] + + if 'crop' in opts or 'max' in opts: + r = max(xr / x, yr / y) + else: + r = min(xr / x, yr / y) + + if r < 1.0 or (r > 1.0 and 'upscale' in opts): + im = im.resize((int(x * r), int(y * r)), resample=Image.ANTIALIAS) + + crop = opts.get('crop') or 'crop' in opts + if crop: + # Difference (for x and y) between new image size and requested size. + x, y = [float(v) for v in im.size] + dx, dy = (x - min(x, xr)), (y - min(y, yr)) + if dx or dy: + # Center cropping (default). + ex, ey = dx / 2, dy / 2 + box = [ex, ey, x - ex, y - ey] + # See if an edge cropping argument was provided. + edge_crop = (isinstance(crop, basestring) and + re.match(r'(?:(-?)(\d+))?,(?:(-?)(\d+))?$', crop)) + if edge_crop and filter(None, edge_crop.groups()): + x_right, x_crop, y_bottom, y_crop = edge_crop.groups() + if x_crop: + offset = min(x * int(x_crop) / 100, dx) + if x_right: + box[0] = dx - offset + box[2] = x - offset + else: + box[0] = offset + box[2] = x - (dx - offset) + if y_crop: + offset = min(y * int(y_crop) / 100, dy) + if y_bottom: + box[1] = dy - offset + box[3] = y - offset + else: + box[1] = offset + box[3] = y - (dy - offset) + # See if the image should be "smart cropped". + elif crop == 'smart': + left = top = 0 + right, bottom = x, y + while dx: + slice = min(dx, 10) + l_sl = im.crop((0, 0, slice, y)) + r_sl = im.crop((x - slice, 0, x, y)) + if utils.image_entropy(l_sl) >= utils.image_entropy(r_sl): + right -= slice + else: + left += slice + dx -= slice + while dy: + slice = min(dy, 10) + t_sl = im.crop((0, 0, x, slice)) + b_sl = im.crop((0, y - slice, x, y)) + if utils.image_entropy(t_sl) >= utils.image_entropy(b_sl): + bottom -= slice + else: + top += slice + dy -= slice + box = (left, top, right, bottom) + # Finally, crop the image! + im = im.crop([int(v) for v in box]) + return im +scale_and_crop.valid_options = ('crop', 'upscale', 'max') + + +def filters(im, requested_size, opts): + if 'detail' in opts: + im = im.filter(ImageFilter.DETAIL) + if 'sharpen' in opts: + im = im.filter(ImageFilter.SHARPEN) + return im +filters.valid_options = ('detail', 'sharpen') diff --git a/apps/sorl/thumbnail/templatetags/__init__.py b/apps/sorl/thumbnail/templatetags/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/apps/sorl/thumbnail/templatetags/thumbnail.py b/apps/sorl/thumbnail/templatetags/thumbnail.py new file mode 100755 index 00000000..e7c2177e --- /dev/null +++ b/apps/sorl/thumbnail/templatetags/thumbnail.py @@ -0,0 +1,251 @@ +import re +import math +from django.template import Library, Node, VariableDoesNotExist, \ + TemplateSyntaxError +from sorl.thumbnail.main import DjangoThumbnail, get_thumbnail_setting +from sorl.thumbnail.processors import dynamic_import, get_valid_options +from sorl.thumbnail.utils import split_args + +register = Library() + +size_pat = re.compile(r'(\d+)x(\d+)$') + +filesize_formats = ['k', 'M', 'G', 'T', 'P', 'E', 'Z', 'Y'] +filesize_long_formats = { + 'k': 'kilo', 'M': 'mega', 'G': 'giga', 'T': 'tera', 'P': 'peta', + 'E': 'exa', 'Z': 'zetta', 'Y': 'yotta', +} + +try: + PROCESSORS = dynamic_import(get_thumbnail_setting('PROCESSORS')) + VALID_OPTIONS = get_valid_options(PROCESSORS) +except: + if get_thumbnail_setting('DEBUG'): + raise + else: + PROCESSORS = [] + VALID_OPTIONS = [] +TAG_SETTINGS = ['quality'] + + +class ThumbnailNode(Node): + def __init__(self, source_var, size_var, opts=None, + context_name=None, **kwargs): + self.source_var = source_var + self.size_var = size_var + self.opts = opts + self.context_name = context_name + self.kwargs = kwargs + + def render(self, context): + # Note that this isn't a global constant because we need to change the + # value for tests. + DEBUG = get_thumbnail_setting('DEBUG') + try: + # A file object will be allowed in DjangoThumbnail class + relative_source = self.source_var.resolve(context) + except VariableDoesNotExist: + if DEBUG: + raise VariableDoesNotExist("Variable '%s' does not exist." % + self.source_var) + else: + relative_source = None + try: + requested_size = self.size_var.resolve(context) + except VariableDoesNotExist: + if DEBUG: + raise TemplateSyntaxError("Size argument '%s' is not a" + " valid size nor a valid variable." % self.size_var) + else: + requested_size = None + # Size variable can be either a tuple/list of two integers or a valid + # string, only the string is checked. + else: + if isinstance(requested_size, basestring): + m = size_pat.match(requested_size) + if m: + requested_size = (int(m.group(1)), int(m.group(2))) + elif DEBUG: + raise TemplateSyntaxError("Variable '%s' was resolved but " + "'%s' is not a valid size." % + (self.size_var, requested_size)) + else: + requested_size = None + if relative_source is None or requested_size is None: + thumbnail = '' + else: + try: + kwargs = {} + for key, value in self.kwargs.items(): + kwargs[key] = value.resolve(context) + opts = dict([(k, v and v.resolve(context)) + for k, v in self.opts.items()]) + thumbnail = DjangoThumbnail(relative_source, requested_size, + opts=opts, processors=PROCESSORS, **kwargs) + except: + if DEBUG: + raise + else: + thumbnail = '' + # Return the thumbnail class, or put it on the context + if self.context_name is None: + return thumbnail + # We need to get here so we don't have old values in the context + # variable. + context[self.context_name] = thumbnail + return '' + + +def thumbnail(parser, token): + """ + Creates a thumbnail of for an ImageField. + + To just output the absolute url to the thumbnail:: + + {% thumbnail image 80x80 %} + + After the image path and dimensions, you can put any options:: + + {% thumbnail image 80x80 quality=95 crop %} + + To put the DjangoThumbnail class on the context instead of just rendering + the absolute url, finish the tag with ``as [context_var_name]``:: + + {% thumbnail image 80x80 as thumb %} + {{ thumb.width }} x {{ thumb.height }} + """ + args = token.split_contents() + tag = args[0] + # Check to see if we're setting to a context variable. + if len(args) > 4 and args[-2] == 'as': + context_name = args[-1] + args = args[:-2] + else: + context_name = None + + if len(args) < 3: + raise TemplateSyntaxError("Invalid syntax. Expected " + "'{%% %s source size [option1 option2 ...] %%}' or " + "'{%% %s source size [option1 option2 ...] as variable %%}'" % + (tag, tag)) + + # Get the source image path and requested size. + source_var = parser.compile_filter(args[1]) + # If the size argument was a correct static format, wrap it in quotes so + # that it is compiled correctly. + m = size_pat.match(args[2]) + if m: + args[2] = '"%s"' % args[2] + size_var = parser.compile_filter(args[2]) + + # Get the options. + args_list = split_args(args[3:]).items() + + # Check the options. + opts = {} + kwargs = {} # key,values here override settings and defaults + + for arg, value in args_list: + value = value and parser.compile_filter(value) + if arg in TAG_SETTINGS and value is not None: + kwargs[str(arg)] = value + continue + if arg in VALID_OPTIONS: + opts[arg] = value + else: + raise TemplateSyntaxError("'%s' tag received a bad argument: " + "'%s'" % (tag, arg)) + return ThumbnailNode(source_var, size_var, opts=opts, + context_name=context_name, **kwargs) + + +def filesize(bytes, format='auto1024'): + """ + Returns the number of bytes in either the nearest unit or a specific unit + (depending on the chosen format method). + + Acceptable formats are: + + auto1024, auto1000 + convert to the nearest unit, appending the abbreviated unit name to the + string (e.g. '2 KiB' or '2 kB'). + auto1024 is the default format. + auto1024long, auto1000long + convert to the nearest multiple of 1024 or 1000, appending the correctly + pluralized unit name to the string (e.g. '2 kibibytes' or '2 kilobytes'). + kB, MB, GB, TB, PB, EB, ZB or YB + convert to the exact unit (using multiples of 1000). + KiB, MiB, GiB, TiB, PiB, EiB, ZiB or YiB + convert to the exact unit (using multiples of 1024). + + The auto1024 and auto1000 formats return a string, appending the correct + unit to the value. All other formats return the floating point value. + + If an invalid format is specified, the bytes are returned unchanged. + """ + format_len = len(format) + # Check for valid format + if format_len in (2, 3): + if format_len == 3 and format[0] == 'K': + format = 'k%s' % format[1:] + if not format[-1] == 'B' or format[0] not in filesize_formats: + return bytes + if format_len == 3 and format[1] != 'i': + return bytes + elif format not in ('auto1024', 'auto1000', + 'auto1024long', 'auto1000long'): + return bytes + # Check for valid bytes + try: + bytes = long(bytes) + except (ValueError, TypeError): + return bytes + + # Auto multiple of 1000 or 1024 + if format.startswith('auto'): + if format[4:8] == '1000': + base = 1000 + else: + base = 1024 + logarithm = bytes and math.log(bytes, base) or 0 + index = min(int(logarithm) - 1, len(filesize_formats) - 1) + if index >= 0: + if base == 1000: + bytes = bytes and bytes / math.pow(1000, index + 1) + else: + bytes = bytes >> (10 * (index)) + bytes = bytes and bytes / 1024.0 + unit = filesize_formats[index] + else: + # Change the base to 1000 so the unit will just output 'B' not 'iB' + base = 1000 + unit = '' + if bytes >= 10 or ('%.1f' % bytes).endswith('.0'): + bytes = '%.0f' % bytes + else: + bytes = '%.1f' % bytes + if format.endswith('long'): + unit = filesize_long_formats.get(unit, '') + if base == 1024 and unit: + unit = '%sbi' % unit[:2] + unit = '%sbyte%s' % (unit, bytes != '1' and 's' or '') + else: + unit = '%s%s' % (base == 1024 and unit.upper() or unit, + base == 1024 and 'iB' or 'B') + + return '%s %s' % (bytes, unit) + + if bytes == 0: + return bytes + base = filesize_formats.index(format[0]) + 1 + # Exact multiple of 1000 + if format_len == 2: + return bytes / (1000.0 ** base) + # Exact multiple of 1024 + elif format_len == 3: + bytes = bytes >> (10 * (base - 1)) + return bytes / 1024.0 + + +register.tag(thumbnail) +register.filter(filesize) diff --git a/apps/sorl/thumbnail/tests/__init__.py b/apps/sorl/thumbnail/tests/__init__.py new file mode 100644 index 00000000..98f1cbd8 --- /dev/null +++ b/apps/sorl/thumbnail/tests/__init__.py @@ -0,0 +1,16 @@ +# For these tests to run successfully, two conditions must be met: +# 1. MEDIA_URL and MEDIA_ROOT must be set in settings +# 2. The user running the tests must have read/write access to MEDIA_ROOT + +# Unit tests: +from sorl.thumbnail.tests.classes import ThumbnailTest, DjangoThumbnailTest +from sorl.thumbnail.tests.templatetags import ThumbnailTagTest +from sorl.thumbnail.tests.fields import FieldTest, \ + ImageWithThumbnailsFieldTest, ThumbnailFieldTest +# Doc tests: +from sorl.thumbnail.tests.utils import utils_tests +from sorl.thumbnail.tests.templatetags import filesize_tests +__test__ = { + 'utils_tests': utils_tests, + 'filesize_tests': filesize_tests, +} diff --git a/apps/sorl/thumbnail/tests/base.py b/apps/sorl/thumbnail/tests/base.py new file mode 100644 index 00000000..44a2fa22 --- /dev/null +++ b/apps/sorl/thumbnail/tests/base.py @@ -0,0 +1,105 @@ +import unittest +import os +from PIL import Image +from django.conf import settings +from sorl.thumbnail.base import Thumbnail + +try: + set +except NameError: + from sets import Set as set # For Python 2.3 + + +def get_default_settings(): + from sorl.thumbnail import defaults + def_settings = {} + for key in dir(defaults): + if key == key.upper() and key not in ['WVPS', 'CONVERT']: + def_settings[key] = getattr(defaults, key) + return def_settings + + +DEFAULT_THUMBNAIL_SETTINGS = get_default_settings() +RELATIVE_PIC_NAME = "sorl-thumbnail-test_source.jpg" +PIC_NAME = os.path.join(settings.MEDIA_ROOT, RELATIVE_PIC_NAME) +THUMB_NAME = os.path.join(settings.MEDIA_ROOT, "sorl-thumbnail-test_%02d.jpg") +PIC_SIZE = (800, 600) + + +class ChangeSettings: + def __init__(self): + self.default_settings = DEFAULT_THUMBNAIL_SETTINGS.copy() + + def change(self, override=None): + if override is not None: + self.default_settings.update(override) + for setting, default in self.default_settings.items(): + settings_s = 'THUMBNAIL_%s' % setting + self_s = 'original_%s' % setting + if hasattr(settings, settings_s) and not hasattr(self, self_s): + setattr(self, self_s, getattr(settings, settings_s)) + if hasattr(settings, settings_s) or \ + default != DEFAULT_THUMBNAIL_SETTINGS[setting]: + setattr(settings, settings_s, default) + + def revert(self): + for setting in self.default_settings: + settings_s = 'THUMBNAIL_%s' % setting + self_s = 'original_%s' % setting + if hasattr(self, self_s): + setattr(settings, settings_s, getattr(self, self_s)) + delattr(self, self_s) + + +class BaseTest(unittest.TestCase): + def setUp(self): + self.images_to_delete = set() + # Create the test image + Image.new('RGB', PIC_SIZE).save(PIC_NAME, 'JPEG') + self.images_to_delete.add(PIC_NAME) + # Change settings so we know they will be constant + self.change_settings = ChangeSettings() + self.change_settings.change() + + def verify_thumbnail(self, expected_size, thumbnail=None, + expected_filename=None, expected_mode=None): + assert thumbnail is not None or expected_filename is not None, \ + 'verify_thumbnail should be passed at least a thumbnail or an' \ + 'expected filename.' + + if thumbnail is not None: + # Verify that the templatetag method returned a Thumbnail instance + self.assertTrue(isinstance(thumbnail, Thumbnail)) + thumb_name = thumbnail.dest + else: + thumb_name = expected_filename + + if isinstance(thumb_name, basestring): + # Verify that the thumbnail file exists + self.assert_(os.path.isfile(thumb_name), + 'Thumbnail file not found') + + # Remember to delete the file + self.images_to_delete.add(thumb_name) + + # If we got an expected_filename, check that it is right + if expected_filename is not None and thumbnail is not None: + self.assertEqual(thumbnail.dest, expected_filename) + + image = Image.open(thumb_name) + + # Verify the thumbnail has the expected dimensions + self.assertEqual(image.size, expected_size) + + if expected_mode is not None: + self.assertEqual(image.mode, expected_mode) + + def tearDown(self): + # Remove all the files that have been created + for image in self.images_to_delete: + try: + os.remove(image) + except: + pass + # Change settings back to original + self.change_settings.revert() diff --git a/apps/sorl/thumbnail/tests/classes.py b/apps/sorl/thumbnail/tests/classes.py new file mode 100644 index 00000000..d15dd193 --- /dev/null +++ b/apps/sorl/thumbnail/tests/classes.py @@ -0,0 +1,175 @@ +# -*- coding: utf-8 -*- +import os +import time +from StringIO import StringIO + +from PIL import Image +from django.conf import settings + +from sorl.thumbnail.base import Thumbnail +from sorl.thumbnail.main import DjangoThumbnail, get_thumbnail_setting +from sorl.thumbnail.processors import dynamic_import, get_valid_options +from sorl.thumbnail.tests.base import BaseTest, RELATIVE_PIC_NAME, PIC_NAME,\ + THUMB_NAME, PIC_SIZE + + +class ThumbnailTest(BaseTest): + def testThumbnails(self): + # Thumbnail + thumb = Thumbnail(source=PIC_NAME, dest=THUMB_NAME % 1, + requested_size=(240, 240)) + self.verify_thumbnail((240, 180), thumb) + + # Cropped thumbnail + thumb = Thumbnail(source=PIC_NAME, dest=THUMB_NAME % 2, + requested_size=(240, 240), opts=['crop']) + self.verify_thumbnail((240, 240), thumb) + + # Thumbnail with altered JPEG quality + thumb = Thumbnail(source=PIC_NAME, dest=THUMB_NAME % 3, + requested_size=(240, 240), quality=95) + self.verify_thumbnail((240, 180), thumb) + + def testRegeneration(self): + # Create thumbnail + thumb_name = THUMB_NAME % 4 + thumb_size = (240, 240) + Thumbnail(source=PIC_NAME, dest=thumb_name, requested_size=thumb_size) + self.images_to_delete.add(thumb_name) + thumb_mtime = os.path.getmtime(thumb_name) + time.sleep(1) + + # Create another instance, shouldn't generate a new thumb + Thumbnail(source=PIC_NAME, dest=thumb_name, requested_size=thumb_size) + self.assertEqual(os.path.getmtime(thumb_name), thumb_mtime) + + # Recreate the source image, then see if a new thumb is generated + Image.new('RGB', PIC_SIZE).save(PIC_NAME, 'JPEG') + Thumbnail(source=PIC_NAME, dest=thumb_name, requested_size=thumb_size) + self.assertNotEqual(os.path.getmtime(thumb_name), thumb_mtime) + + def testFilelikeDest(self): + # Thumbnail + filelike_dest = StringIO() + thumb = Thumbnail(source=PIC_NAME, dest=filelike_dest, + requested_size=(240, 240)) + self.verify_thumbnail((240, 180), thumb) + + def testRGBA(self): + # RGBA image + rgba_pic_name = os.path.join(settings.MEDIA_ROOT, + 'sorl-thumbnail-test_rgba_source.png') + Image.new('RGBA', PIC_SIZE).save(rgba_pic_name) + self.images_to_delete.add(rgba_pic_name) + # Create thumb and verify it's still RGBA + rgba_thumb_name = os.path.join(settings.MEDIA_ROOT, + 'sorl-thumbnail-test_rgba_dest.png') + thumb = Thumbnail(source=rgba_pic_name, dest=rgba_thumb_name, + requested_size=(240, 240)) + self.verify_thumbnail((240, 180), thumb, expected_mode='RGBA') + + +class DjangoThumbnailTest(BaseTest): + def setUp(self): + super(DjangoThumbnailTest, self).setUp() + # Add another source image in a sub-directory for testing subdir and + # basedir. + self.sub_dir = os.path.join(settings.MEDIA_ROOT, 'test_thumbnail') + try: + os.mkdir(self.sub_dir) + except OSError: + pass + self.pic_subdir = os.path.join(self.sub_dir, RELATIVE_PIC_NAME) + Image.new('RGB', PIC_SIZE).save(self.pic_subdir, 'JPEG') + self.images_to_delete.add(self.pic_subdir) + + def testFilenameGeneration(self): + basename = RELATIVE_PIC_NAME.replace('.', '_') + # Basic filename + thumb = DjangoThumbnail(relative_source=RELATIVE_PIC_NAME, + requested_size=(240, 120)) + expected = os.path.join(settings.MEDIA_ROOT, basename) + expected += '_240x120_q85.jpg' + self.verify_thumbnail((160, 120), thumb, expected_filename=expected) + + # Changed quality and cropped + thumb = DjangoThumbnail(relative_source=RELATIVE_PIC_NAME, + requested_size=(240, 120), opts=['crop'], + quality=95) + expected = os.path.join(settings.MEDIA_ROOT, basename) + expected += '_240x120_crop_q95.jpg' + self.verify_thumbnail((240, 120), thumb, expected_filename=expected) + + # All options on + processors = dynamic_import(get_thumbnail_setting('PROCESSORS')) + valid_options = get_valid_options(processors) + + thumb = DjangoThumbnail(relative_source=RELATIVE_PIC_NAME, + requested_size=(240, 120), opts=valid_options) + expected = (os.path.join(settings.MEDIA_ROOT, basename) + '_240x120_' + 'autocrop_bw_crop_detail_max_sharpen_upscale_q85.jpg') + self.verify_thumbnail((240, 120), thumb, expected_filename=expected) + + # Different basedir + basedir = 'sorl-thumbnail-test-basedir' + self.change_settings.change({'BASEDIR': basedir}) + thumb = DjangoThumbnail(relative_source=self.pic_subdir, + requested_size=(240, 120)) + expected = os.path.join(basedir, self.sub_dir, basename) + expected += '_240x120_q85.jpg' + self.verify_thumbnail((160, 120), thumb, expected_filename=expected) + # Different subdir + self.change_settings.change({'BASEDIR': '', 'SUBDIR': 'subdir'}) + thumb = DjangoThumbnail(relative_source=self.pic_subdir, + requested_size=(240, 120)) + expected = os.path.join(settings.MEDIA_ROOT, + os.path.basename(self.sub_dir), 'subdir', + basename) + expected += '_240x120_q85.jpg' + self.verify_thumbnail((160, 120), thumb, expected_filename=expected) + # Different prefix + self.change_settings.change({'SUBDIR': '', 'PREFIX': 'prefix-'}) + thumb = DjangoThumbnail(relative_source=self.pic_subdir, + requested_size=(240, 120)) + expected = os.path.join(self.sub_dir, 'prefix-' + basename) + expected += '_240x120_q85.jpg' + self.verify_thumbnail((160, 120), thumb, expected_filename=expected) + + def testAlternateExtension(self): + basename = RELATIVE_PIC_NAME.replace('.', '_') + # Control JPG + thumb = DjangoThumbnail(relative_source=RELATIVE_PIC_NAME, + requested_size=(240, 120)) + expected = os.path.join(settings.MEDIA_ROOT, basename) + expected += '_240x120_q85.jpg' + expected_jpg = expected + self.verify_thumbnail((160, 120), thumb, expected_filename=expected) + # Test PNG + thumb = DjangoThumbnail(relative_source=RELATIVE_PIC_NAME, + requested_size=(240, 120), extension='png') + expected = os.path.join(settings.MEDIA_ROOT, basename) + expected += '_240x120_q85.png' + self.verify_thumbnail((160, 120), thumb, expected_filename=expected) + # Compare the file size to make sure it's not just saving as a JPG with + # a different extension. + self.assertNotEqual(os.path.getsize(expected_jpg), + os.path.getsize(expected)) + + def testUnicodeName(self): + unicode_name = 'sorl-thumbnail-ążśź_source.jpg' + unicode_path = os.path.join(settings.MEDIA_ROOT, unicode_name) + Image.new('RGB', PIC_SIZE).save(unicode_path) + self.images_to_delete.add(unicode_path) + thumb = DjangoThumbnail(relative_source=unicode_name, + requested_size=(240, 120)) + base_name = unicode_name.replace('.', '_') + expected = os.path.join(settings.MEDIA_ROOT, + base_name + '_240x120_q85.jpg') + self.verify_thumbnail((160, 120), thumb, expected_filename=expected) + + def tearDown(self): + super(DjangoThumbnailTest, self).tearDown() + subdir = os.path.join(self.sub_dir, 'subdir') + if os.path.exists(subdir): + os.rmdir(subdir) + os.rmdir(self.sub_dir) diff --git a/apps/sorl/thumbnail/tests/fields.py b/apps/sorl/thumbnail/tests/fields.py new file mode 100644 index 00000000..425f5553 --- /dev/null +++ b/apps/sorl/thumbnail/tests/fields.py @@ -0,0 +1,131 @@ +import os.path + +from django.db import models +from django.conf import settings +from django.core.files.base import ContentFile + +from sorl.thumbnail.fields import ImageWithThumbnailsField, ThumbnailField +from sorl.thumbnail.tests.base import BaseTest, RELATIVE_PIC_NAME, PIC_NAME + +thumbnail = { + 'size': (50, 50), +} +extra_thumbnails = { + 'admin': { + 'size': (30, 30), + 'options': ('crop',), + } +} +extension_thumbnail = thumbnail.copy() +extension_thumbnail['extension'] = 'png' + + +# Temporary models for field_tests +class TestThumbnailFieldModel(models.Model): + avatar = ThumbnailField(upload_to='test', size=(300, 300)) + photo = ImageWithThumbnailsField(upload_to='test', thumbnail=thumbnail, + extra_thumbnails=extra_thumbnails) + + +class TestThumbnailFieldExtensionModel(models.Model): + photo = ImageWithThumbnailsField(upload_to='test', + thumbnail=extension_thumbnail, + extra_thumbnails=extra_thumbnails) + + +class TestThumbnailFieldGenerateModel(models.Model): + photo = ImageWithThumbnailsField(upload_to='test', thumbnail=thumbnail, + extra_thumbnails=extra_thumbnails, + generate_on_save=True) + + +class FieldTest(BaseTest): + """ + Test the base field functionality. These use an ImageWithThumbnailsField + but all the functionality tested is from BaseThumbnailField. + """ + def test_extra_thumbnails(self): + model = TestThumbnailFieldModel(photo=RELATIVE_PIC_NAME) + self.assertTrue('admin' in model.photo.extra_thumbnails) + thumb = model.photo.extra_thumbnails['admin'] + tag = model.photo.extra_thumbnails_tag['admin'] + expected_filename = os.path.join(settings.MEDIA_ROOT, + 'sorl-thumbnail-test_source_jpg_30x30_crop_q85.jpg') + self.verify_thumbnail((30, 30), thumb, expected_filename) + expected_tag = '' % \ + '/'.join((settings.MEDIA_URL.rstrip('/'), + 'sorl-thumbnail-test_source_jpg_30x30_crop_q85.jpg')) + self.assertEqual(tag, expected_tag) + + def test_extension(self): + model = TestThumbnailFieldExtensionModel(photo=RELATIVE_PIC_NAME) + thumb = model.photo.thumbnail + tag = model.photo.thumbnail_tag + expected_filename = os.path.join(settings.MEDIA_ROOT, + 'sorl-thumbnail-test_source_jpg_50x50_q85.png') + self.verify_thumbnail((50, 37), thumb, expected_filename) + expected_tag = '' % \ + '/'.join((settings.MEDIA_URL.rstrip('/'), + 'sorl-thumbnail-test_source_jpg_50x50_q85.png')) + self.assertEqual(tag, expected_tag) + + def test_delete_thumbnails(self): + model = TestThumbnailFieldModel(photo=RELATIVE_PIC_NAME) + thumb_file = model.photo.thumbnail.dest + open(thumb_file, 'wb').close() + self.assert_(os.path.exists(thumb_file)) + model.photo.delete(save=False) + self.assertFalse(os.path.exists(thumb_file)) + + def test_generate_on_save(self): + main_thumb = os.path.join(settings.MEDIA_ROOT, 'test', + 'sorl-thumbnail-test_source_jpg_50x50_q85.jpg') + admin_thumb = os.path.join(settings.MEDIA_ROOT, 'test', + 'sorl-thumbnail-test_source_jpg_30x30_crop_q85.jpg') + self.images_to_delete.add(main_thumb) + self.images_to_delete.add(admin_thumb) + # Default setting is to only generate when the thumbnail is used. + model = TestThumbnailFieldModel() + source = ContentFile(open(PIC_NAME).read()) + model.photo.save(RELATIVE_PIC_NAME, source, save=False) + self.images_to_delete.add(model.photo.path) + self.assertFalse(os.path.exists(main_thumb)) + self.assertFalse(os.path.exists(admin_thumb)) + os.remove(model.photo.path) + # But it's easy to set it up the other way... + model = TestThumbnailFieldGenerateModel() + source = ContentFile(open(PIC_NAME).read()) + model.photo.save(RELATIVE_PIC_NAME, source, save=False) + self.assert_(os.path.exists(main_thumb)) + self.assert_(os.path.exists(admin_thumb)) + + +class ImageWithThumbnailsFieldTest(BaseTest): + def test_thumbnail(self): + model = TestThumbnailFieldModel(photo=RELATIVE_PIC_NAME) + thumb = model.photo.thumbnail + tag = model.photo.thumbnail_tag + base_name = RELATIVE_PIC_NAME.replace('.', '_') + expected_filename = os.path.join(settings.MEDIA_ROOT, + '%s_50x50_q85.jpg' % base_name) + self.verify_thumbnail((50, 37), thumb, expected_filename) + expected_tag = ('' % + '/'.join([settings.MEDIA_URL.rstrip('/'), + '%s_50x50_q85.jpg' % base_name])) + self.assertEqual(tag, expected_tag) + + +class ThumbnailFieldTest(BaseTest): + def test_thumbnail(self): + model = TestThumbnailFieldModel() + source = ContentFile(open(PIC_NAME).read()) + dest_name = 'sorl-thumbnail-test_dest.jpg' + model.avatar.save(dest_name, source, save=False) + expected_filename = os.path.join(model.avatar.path) + self.verify_thumbnail((300, 225), expected_filename=expected_filename) + + tag = model.avatar.thumbnail_tag + expected_tag = ('' % + '/'.join([settings.MEDIA_URL.rstrip('/'), 'test', + dest_name])) + self.assertEqual(tag, expected_tag) diff --git a/apps/sorl/thumbnail/tests/templatetags.py b/apps/sorl/thumbnail/tests/templatetags.py new file mode 100644 index 00000000..5d1a1cb1 --- /dev/null +++ b/apps/sorl/thumbnail/tests/templatetags.py @@ -0,0 +1,312 @@ +import os +from django.conf import settings +from django.template import Template, Context, TemplateSyntaxError +from sorl.thumbnail.tests.classes import BaseTest, RELATIVE_PIC_NAME + + +class ThumbnailTagTest(BaseTest): + def render_template(self, source): + context = Context({ + 'source': RELATIVE_PIC_NAME, + 'invalid_source': 'not%s' % RELATIVE_PIC_NAME, + 'size': (90, 100), + 'invalid_size': (90, 'fish'), + 'strsize': '80x90', + 'invalid_strsize': ('1notasize2'), + 'invalid_q': 'notanumber'}) + source = '{% load thumbnail %}' + source + return Template(source).render(context) + + def testTagInvalid(self): + # No args, or wrong number of args + src = '{% thumbnail %}' + self.assertRaises(TemplateSyntaxError, self.render_template, src) + src = '{% thumbnail source %}' + self.assertRaises(TemplateSyntaxError, self.render_template, src) + src = '{% thumbnail source 80x80 as variable crop %}' + self.assertRaises(TemplateSyntaxError, self.render_template, src) + + # Invalid option + src = '{% thumbnail source 240x200 invalid %}' + self.assertRaises(TemplateSyntaxError, self.render_template, src) + + # Old comma separated options format can only have an = for quality + src = '{% thumbnail source 80x80 crop=1,quality=1 %}' + self.assertRaises(TemplateSyntaxError, self.render_template, src) + + # Invalid quality + src_invalid = '{% thumbnail source 240x200 quality=invalid_q %}' + src_missing = '{% thumbnail source 240x200 quality=missing_q %}' + # ...with THUMBNAIL_DEBUG = False + self.assertEqual(self.render_template(src_invalid), '') + self.assertEqual(self.render_template(src_missing), '') + # ...and with THUMBNAIL_DEBUG = True + self.change_settings.change({'DEBUG': True}) + self.assertRaises(TemplateSyntaxError, self.render_template, + src_invalid) + self.assertRaises(TemplateSyntaxError, self.render_template, + src_missing) + + # Invalid source + src = '{% thumbnail invalid_source 80x80 %}' + src_on_context = '{% thumbnail invalid_source 80x80 as thumb %}' + # ...with THUMBNAIL_DEBUG = False + self.change_settings.change({'DEBUG': False}) + self.assertEqual(self.render_template(src), '') + # ...and with THUMBNAIL_DEBUG = True + self.change_settings.change({'DEBUG': True}) + self.assertRaises(TemplateSyntaxError, self.render_template, src) + self.assertRaises(TemplateSyntaxError, self.render_template, + src_on_context) + + # Non-existant source + src = '{% thumbnail non_existant_source 80x80 %}' + src_on_context = '{% thumbnail non_existant_source 80x80 as thumb %}' + # ...with THUMBNAIL_DEBUG = False + self.change_settings.change({'DEBUG': False}) + self.assertEqual(self.render_template(src), '') + # ...and with THUMBNAIL_DEBUG = True + self.change_settings.change({'DEBUG': True}) + self.assertRaises(TemplateSyntaxError, self.render_template, src) + + # Invalid size as a tuple: + src = '{% thumbnail source invalid_size %}' + # ...with THUMBNAIL_DEBUG = False + self.change_settings.change({'DEBUG': False}) + self.assertEqual(self.render_template(src), '') + # ...and THUMBNAIL_DEBUG = True + self.change_settings.change({'DEBUG': True}) + self.assertRaises(TemplateSyntaxError, self.render_template, src) + # Invalid size as a string: + src = '{% thumbnail source invalid_strsize %}' + # ...with THUMBNAIL_DEBUG = False + self.change_settings.change({'DEBUG': False}) + self.assertEqual(self.render_template(src), '') + # ...and THUMBNAIL_DEBUG = True + self.change_settings.change({'DEBUG': True}) + self.assertRaises(TemplateSyntaxError, self.render_template, src) + + # Non-existant size + src = '{% thumbnail source non_existant_size %}' + # ...with THUMBNAIL_DEBUG = False + self.change_settings.change({'DEBUG': False}) + self.assertEqual(self.render_template(src), '') + # ...and THUMBNAIL_DEBUG = True + self.change_settings.change({'DEBUG': True}) + self.assertRaises(TemplateSyntaxError, self.render_template, src) + + def testTag(self): + expected_base = RELATIVE_PIC_NAME.replace('.', '_') + # Set DEBUG = True to make it easier to trace any failures + self.change_settings.change({'DEBUG': True}) + + # Basic + output = self.render_template('src="' + '{% thumbnail source 240x240 %}"') + expected = '%s_240x240_q85.jpg' % expected_base + expected_fn = os.path.join(settings.MEDIA_ROOT, expected) + self.verify_thumbnail((240, 180), expected_filename=expected_fn) + expected_url = ''.join((settings.MEDIA_URL, expected)) + self.assertEqual(output, 'src="%s"' % expected_url) + + # Size from context variable + # as a tuple: + output = self.render_template('src="' + '{% thumbnail source size %}"') + expected = '%s_90x100_q85.jpg' % expected_base + expected_fn = os.path.join(settings.MEDIA_ROOT, expected) + self.verify_thumbnail((90, 67), expected_filename=expected_fn) + expected_url = ''.join((settings.MEDIA_URL, expected)) + self.assertEqual(output, 'src="%s"' % expected_url) + # as a string: + output = self.render_template('src="' + '{% thumbnail source strsize %}"') + expected = '%s_80x90_q85.jpg' % expected_base + expected_fn = os.path.join(settings.MEDIA_ROOT, expected) + self.verify_thumbnail((80, 60), expected_filename=expected_fn) + expected_url = ''.join((settings.MEDIA_URL, expected)) + self.assertEqual(output, 'src="%s"' % expected_url) + + # On context + output = self.render_template('height:' + '{% thumbnail source 240x240 as thumb %}{{ thumb.height }}') + self.assertEqual(output, 'height:180') + + # With options and quality + output = self.render_template('src="' + '{% thumbnail source 240x240 sharpen crop quality=95 %}"') + # Note that the opts are sorted to ensure a consistent filename. + expected = '%s_240x240_crop_sharpen_q95.jpg' % expected_base + expected_fn = os.path.join(settings.MEDIA_ROOT, expected) + self.verify_thumbnail((240, 240), expected_filename=expected_fn) + expected_url = ''.join((settings.MEDIA_URL, expected)) + self.assertEqual(output, 'src="%s"' % expected_url) + + # With option and quality on context (also using its unicode method to + # display the url) + output = self.render_template( + '{% thumbnail source 240x240 sharpen crop quality=95 as thumb %}' + 'width:{{ thumb.width }}, url:{{ thumb }}') + self.assertEqual(output, 'width:240, url:%s' % expected_url) + + # Old comma separated format for options is still supported. + output = self.render_template( + '{% thumbnail source 240x240 sharpen,crop,quality=95 as thumb %}' + 'width:{{ thumb.width }}, url:{{ thumb }}') + self.assertEqual(output, 'width:240, url:%s' % expected_url) + +filesize_tests = r""" +>>> from sorl.thumbnail.templatetags.thumbnail import filesize + +>>> filesize('abc') +'abc' +>>> filesize(100, 'invalid') +100 + +>>> bytes = 20 +>>> filesize(bytes) +'20 B' +>>> filesize(bytes, 'auto1000') +'20 B' + +>>> bytes = 1001 +>>> filesize(bytes) +'1001 B' +>>> filesize(bytes, 'auto1000') +'1 kB' + +>>> bytes = 10100 +>>> filesize(bytes) +'9.9 KiB' + +# Note that the decimal place is only used if < 10 +>>> filesize(bytes, 'auto1000') +'10 kB' + +>>> bytes = 190000000 +>>> filesize(bytes) +'181 MiB' +>>> filesize(bytes, 'auto1000') +'190 MB' + +# 'auto*long' methods use pluralisation: +>>> filesize(1, 'auto1024long') +'1 byte' +>>> filesize(1, 'auto1000long') +'1 byte' +>>> filesize(2, 'auto1024long') +'2 bytes' +>>> filesize(0, 'auto1000long') +'0 bytes' + +# Test all 'auto*long' output: +>>> for i in range(1,10): +... print '%s, %s' % (filesize(1024**i, 'auto1024long'), +... filesize(1000**i, 'auto1000long')) +1 kibibyte, 1 kilobyte +1 mebibyte, 1 megabyte +1 gibibyte, 1 gigabyte +1 tebibyte, 1 terabyte +1 pebibyte, 1 petabyte +1 exbibyte, 1 exabyte +1 zebibyte, 1 zettabyte +1 yobibyte, 1 yottabyte +1024 yobibytes, 1000 yottabytes + +# Test all fixed outputs (eg 'kB' or 'MiB') +>>> from sorl.thumbnail.templatetags.thumbnail import filesize_formats,\ +... filesize_long_formats +>>> for f in filesize_formats: +... print '%s (%siB, %sB):' % (filesize_long_formats[f], f.upper(), f) +... for i in range(0, 10): +... print ' %s, %s' % (filesize(1024**i, '%siB' % f.upper()), +... filesize(1000**i, '%sB' % f)) +kilo (KiB, kB): + 0.0009765625, 0.001 + 1.0, 1.0 + 1024.0, 1000.0 + 1048576.0, 1000000.0 + 1073741824.0, 1000000000.0 + 1.09951162778e+12, 1e+12 + 1.12589990684e+15, 1e+15 + 1.15292150461e+18, 1e+18 + 1.18059162072e+21, 1e+21 + 1.20892581961e+24, 1e+24 +mega (MiB, MB): + 0.0, 1e-06 + 0.0009765625, 0.001 + 1.0, 1.0 + 1024.0, 1000.0 + 1048576.0, 1000000.0 + 1073741824.0, 1000000000.0 + 1.09951162778e+12, 1e+12 + 1.12589990684e+15, 1e+15 + 1.15292150461e+18, 1e+18 + 1.18059162072e+21, 1e+21 +giga (GiB, GB): + 0.0, 1e-09 + 0.0, 1e-06 + 0.0009765625, 0.001 + 1.0, 1.0 + 1024.0, 1000.0 + 1048576.0, 1000000.0 + 1073741824.0, 1000000000.0 + 1.09951162778e+12, 1e+12 + 1.12589990684e+15, 1e+15 + 1.15292150461e+18, 1e+18 +tera (TiB, TB): + 0.0, 1e-12 + 0.0, 1e-09 + 0.0, 1e-06 + 0.0009765625, 0.001 + 1.0, 1.0 + 1024.0, 1000.0 + 1048576.0, 1000000.0 + 1073741824.0, 1000000000.0 + 1.09951162778e+12, 1e+12 + 1.12589990684e+15, 1e+15 +peta (PiB, PB): + 0.0, 1e-15 + 0.0, 1e-12 + 0.0, 1e-09 + 0.0, 1e-06 + 0.0009765625, 0.001 + 1.0, 1.0 + 1024.0, 1000.0 + 1048576.0, 1000000.0 + 1073741824.0, 1000000000.0 + 1.09951162778e+12, 1e+12 +exa (EiB, EB): + 0.0, 1e-18 + 0.0, 1e-15 + 0.0, 1e-12 + 0.0, 1e-09 + 0.0, 1e-06 + 0.0009765625, 0.001 + 1.0, 1.0 + 1024.0, 1000.0 + 1048576.0, 1000000.0 + 1073741824.0, 1000000000.0 +zetta (ZiB, ZB): + 0.0, 1e-21 + 0.0, 1e-18 + 0.0, 1e-15 + 0.0, 1e-12 + 0.0, 1e-09 + 0.0, 1e-06 + 0.0009765625, 0.001 + 1.0, 1.0 + 1024.0, 1000.0 + 1048576.0, 1000000.0 +yotta (YiB, YB): + 0.0, 1e-24 + 0.0, 1e-21 + 0.0, 1e-18 + 0.0, 1e-15 + 0.0, 1e-12 + 0.0, 1e-09 + 0.0, 1e-06 + 0.0009765625, 0.001 + 1.0, 1.0 + 1024.0, 1000.0 +""" diff --git a/apps/sorl/thumbnail/tests/utils.py b/apps/sorl/thumbnail/tests/utils.py new file mode 100644 index 00000000..3a20cbbc --- /dev/null +++ b/apps/sorl/thumbnail/tests/utils.py @@ -0,0 +1,149 @@ +from django.conf import settings +from sorl.thumbnail.utils import * + +try: + set +except NameError: + from sets import Set as set # For Python 2.3 + +MEDIA_ROOT_LENGTH = len(os.path.normpath(settings.MEDIA_ROOT)) + +utils_tests = r""" +>>> from sorl.thumbnail.tests.utils import * +>>> from sorl.thumbnail.tests.base import ChangeSettings +>>> from django.conf import settings + +>>> change_settings = ChangeSettings() +>>> change_settings.change() + +>>> media_root = settings.MEDIA_ROOT.rstrip('/') + +#============================================================================== +# Set up test images +#============================================================================== + +>>> make_image('test-thumbnail-utils/subdir/test_jpg_110x110_q85.jpg') +>>> make_image('test-thumbnail-utils/test_jpg_80x80_q85.jpg') +>>> make_image('test-thumbnail-utils/test_jpg_80x80_q95.jpg') +>>> make_image('test-thumbnail-utils/another_test_jpg_80x80_q85.jpg') +>>> make_image('test-thumbnail-utils/test_with_opts_jpg_80x80_crop_bw_q85.jpg') +>>> make_image('test-thumbnail-basedir/test-thumbnail-utils/test_jpg_100x100_' +... 'q85.jpg') +>>> make_image('test-thumbnail-utils/prefix-test_jpg_120x120_q85.jpg') + +#============================================================================== +# all_thumbnails() +#============================================================================== + +# Find all thumbs +>>> thumb_dir = os.path.join(settings.MEDIA_ROOT, 'test-thumbnail-utils') +>>> thumbs = all_thumbnails(thumb_dir) +>>> k = thumbs.keys() +>>> k.sort() +>>> [consistent_slash(path) for path in k] +['another_test.jpg', 'prefix-test.jpg', 'subdir/test.jpg', 'test.jpg', + 'test_with_opts.jpg'] + +# Find all thumbs, no recurse +>>> thumbs = all_thumbnails(thumb_dir, recursive=False) +>>> k = thumbs.keys() +>>> k.sort() +>>> k +['another_test.jpg', 'prefix-test.jpg', 'test.jpg', 'test_with_opts.jpg'] + +#============================================================================== +# thumbnails_for_file() +#============================================================================== + +>>> output = [] +>>> for thumb in thumbs['test.jpg']: +... thumb['rel_fn'] = strip_media_root(thumb['filename']) +... output.append('%(x)sx%(y)s %(quality)s %(rel_fn)s' % thumb) +>>> output.sort() +>>> output +['80x80 85 test-thumbnail-utils/test_jpg_80x80_q85.jpg', + '80x80 95 test-thumbnail-utils/test_jpg_80x80_q95.jpg'] + +# Thumbnails for file +>>> output = [] +>>> for thumb in thumbnails_for_file('test-thumbnail-utils/test.jpg'): +... output.append(strip_media_root(thumb['filename'])) +>>> output.sort() +>>> output +['test-thumbnail-utils/test_jpg_80x80_q85.jpg', + 'test-thumbnail-utils/test_jpg_80x80_q95.jpg'] + +# Thumbnails for file - shouldn't choke on non-existant file +>>> thumbnails_for_file('test-thumbnail-utils/non-existant.jpg') +[] + +# Thumbnails for file, with basedir setting +>>> change_settings.change({'BASEDIR': 'test-thumbnail-basedir'}) +>>> for thumb in thumbnails_for_file('test-thumbnail-utils/test.jpg'): +... print strip_media_root(thumb['filename']) +test-thumbnail-basedir/test-thumbnail-utils/test_jpg_100x100_q85.jpg + +# Thumbnails for file, with subdir setting +>>> change_settings.change({'SUBDIR': 'subdir', 'BASEDIR': ''}) +>>> for thumb in thumbnails_for_file('test-thumbnail-utils/test.jpg'): +... print strip_media_root(thumb['filename']) +test-thumbnail-utils/subdir/test_jpg_110x110_q85.jpg + +# Thumbnails for file, with prefix setting +>>> change_settings.change({'PREFIX': 'prefix-', 'SUBDIR': ''}) +>>> for thumb in thumbnails_for_file('test-thumbnail-utils/test.jpg'): +... print strip_media_root(thumb['filename']) +test-thumbnail-utils/prefix-test_jpg_120x120_q85.jpg + +#============================================================================== +# Clean up images / directories +#============================================================================== + +>>> clean_up() +""" + +images_to_delete = set() +dirs_to_delete = [] + + +def make_image(relative_image): + absolute_image = os.path.join(settings.MEDIA_ROOT, relative_image) + make_dirs(os.path.dirname(relative_image)) + open(absolute_image, 'w').close() + images_to_delete.add(absolute_image) + + +def make_dirs(relative_path): + if not relative_path: + return + absolute_path = os.path.join(settings.MEDIA_ROOT, relative_path) + if os.path.isdir(absolute_path): + return + if absolute_path not in dirs_to_delete: + dirs_to_delete.append(absolute_path) + make_dirs(os.path.dirname(relative_path)) + os.mkdir(absolute_path) + + +def clean_up(): + for image in images_to_delete: + os.remove(image) + for path in dirs_to_delete: + os.rmdir(path) + + +def strip_media_root(path): + path = os.path.normpath(path) + # chop off the MEDIA_ROOT and strip any leading os.sep + path = path[MEDIA_ROOT_LENGTH:].lstrip(os.sep) + return consistent_slash(path) + + +def consistent_slash(path): + """ + Ensure we're always testing against the '/' os separator (otherwise tests + fail against Windows). + """ + if os.sep != '/': + path = path.replace(os.sep, '/') + return path diff --git a/apps/sorl/thumbnail/utils.py b/apps/sorl/thumbnail/utils.py new file mode 100644 index 00000000..18b18b0b --- /dev/null +++ b/apps/sorl/thumbnail/utils.py @@ -0,0 +1,170 @@ +import math +import os +import re + + +re_thumbnail_file = re.compile(r'(?P.+)_(?P\d+)x(?P\d+)' + r'(?:_(?P\w+))?_q(?P\d+)' + r'(?:.[^.]+)?$') +re_new_args = re.compile('(? 1 and split_arg[1] or None + args_dict[split_arg[0]] = value + return args_dict + + +def image_entropy(im): + """ + Calculate the entropy of an image. Used for "smart cropping". + """ + hist = im.histogram() + hist_size = float(sum(hist)) + hist = [h / hist_size for h in hist] + return -sum([p * math.log(p, 2) for p in hist if p != 0]) diff --git a/platforma/settings.py b/platforma/settings.py index 87868ce3..1e0d2127 100644 --- a/platforma/settings.py +++ b/platforma/settings.py @@ -118,12 +118,17 @@ INSTALLED_APPS = ( 'django.contrib.admindocs', 'piston', + 'sorl.thumbnail', + 'filebrowser', 'explorer', 'toolbar', 'api', ) +FILEBROWSER_URL_FILEBROWSER_MEDIA = STATIC_URL + 'filebrowser/' + + # REPOSITORY_PATH = '/Users/zuber/Projekty/platforma/files/books' IMAGE_DIR = 'images' EDITOR_COOKIE_NAME = 'options' diff --git a/platforma/static/filebrowser/.svn/all-wcprops b/platforma/static/filebrowser/.svn/all-wcprops new file mode 100644 index 00000000..3752e31b --- /dev/null +++ b/platforma/static/filebrowser/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 70 +/svn/!svn/ver/466/branches/filebrowser_3/filebrowser/media/filebrowser +END diff --git a/platforma/static/filebrowser/.svn/entries b/platforma/static/filebrowser/.svn/entries new file mode 100644 index 00000000..53de6981 --- /dev/null +++ b/platforma/static/filebrowser/.svn/entries @@ -0,0 +1,40 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser +http://django-filebrowser.googlecode.com/svn + + + +2009-10-29T16:15:59.524671Z +466 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +css +dir + +img +dir + +js +dir + +uploadify +dir + diff --git a/platforma/static/filebrowser/css/.svn/all-wcprops b/platforma/static/filebrowser/css/.svn/all-wcprops new file mode 100644 index 00000000..8cfbfa0f --- /dev/null +++ b/platforma/static/filebrowser/css/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/css +END +filebrowser.css +K 25 +svn:wc:ra_dav:version-url +V 90 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/css/filebrowser.css +END diff --git a/platforma/static/filebrowser/css/.svn/entries b/platforma/static/filebrowser/css/.svn/entries new file mode 100644 index 00000000..e429ef4b --- /dev/null +++ b/platforma/static/filebrowser/css/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/css +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +filebrowser.css +file + + + + +2009-11-05T20:58:49.000000Z +724fd235089ee5ad15499fcbe5ddfc88 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1637 + diff --git a/platforma/static/filebrowser/css/.svn/prop-base/filebrowser.css.svn-base b/platforma/static/filebrowser/css/.svn/prop-base/filebrowser.css.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/css/.svn/prop-base/filebrowser.css.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/css/.svn/text-base/filebrowser.css.svn-base b/platforma/static/filebrowser/css/.svn/text-base/filebrowser.css.svn-base new file mode 100644 index 00000000..c68126ea --- /dev/null +++ b/platforma/static/filebrowser/css/.svn/text-base/filebrowser.css.svn-base @@ -0,0 +1,29 @@ +.filebrowser table td { font-size: 10px; } +.filebrowser table a { font-size: 11px; } +.filebrowser thead th.sorted a { padding-right: 13px; } +.filebrowser td { padding: 9px 10px 7px 10px !important; } +.filebrowser td.fb_icon { padding: 6px 5px 5px 5px !important; } + +table a.fb_deletelink, table a.fb_renamelink, table a.fb_selectlink, table a.fb_showversionslink { + cursor: pointer; + display: block; padding: 0; margin: 0; + width: 23px; height: 17px; + background-color: transparent; + background-position: 0 center; + background-repeat: no-repeat; +} + +table .fb_deletelink:link, table .fb_deletelink:visited { + width: 15px; + background-image: url('../img/filebrowser_icon_delete.gif'); +} +table .fb_deletelink:hover, table .fb_deletelink:active { background-image: url('../img/filebrowser_icon_delete_hover.gif'); } +table .fb_renamelink:link, table .fb_renamelink:visited { + width: 14px; + background-image: url('../img/filebrowser_icon_rename.gif'); +} +table .fb_renamelink:hover, table .fb_renamelink:active { background-image: url('../img/filebrowser_icon_rename_hover.gif'); } +table .fb_selectlink:link, table .fb_selectlink:visited { background-image: url('../img/filebrowser_icon_select.gif'); } +table .fb_selectlink:hover, table .fb_selectlink:active { background-image: url('../img/filebrowser_icon_select_hover.gif'); } +table .fb_showversionslink:link, table .fb_showversionslink:visited { background-image: url('../img/filebrowser_icon_showversions.gif'); } +table .fb_showversionslink:hover, table .fb_showversionslink:active { background-image: url('../img/filebrowser_icon_showversions_hover.gif'); } diff --git a/platforma/static/filebrowser/css/filebrowser.css b/platforma/static/filebrowser/css/filebrowser.css new file mode 100755 index 00000000..c68126ea --- /dev/null +++ b/platforma/static/filebrowser/css/filebrowser.css @@ -0,0 +1,29 @@ +.filebrowser table td { font-size: 10px; } +.filebrowser table a { font-size: 11px; } +.filebrowser thead th.sorted a { padding-right: 13px; } +.filebrowser td { padding: 9px 10px 7px 10px !important; } +.filebrowser td.fb_icon { padding: 6px 5px 5px 5px !important; } + +table a.fb_deletelink, table a.fb_renamelink, table a.fb_selectlink, table a.fb_showversionslink { + cursor: pointer; + display: block; padding: 0; margin: 0; + width: 23px; height: 17px; + background-color: transparent; + background-position: 0 center; + background-repeat: no-repeat; +} + +table .fb_deletelink:link, table .fb_deletelink:visited { + width: 15px; + background-image: url('../img/filebrowser_icon_delete.gif'); +} +table .fb_deletelink:hover, table .fb_deletelink:active { background-image: url('../img/filebrowser_icon_delete_hover.gif'); } +table .fb_renamelink:link, table .fb_renamelink:visited { + width: 14px; + background-image: url('../img/filebrowser_icon_rename.gif'); +} +table .fb_renamelink:hover, table .fb_renamelink:active { background-image: url('../img/filebrowser_icon_rename_hover.gif'); } +table .fb_selectlink:link, table .fb_selectlink:visited { background-image: url('../img/filebrowser_icon_select.gif'); } +table .fb_selectlink:hover, table .fb_selectlink:active { background-image: url('../img/filebrowser_icon_select_hover.gif'); } +table .fb_showversionslink:link, table .fb_showversionslink:visited { background-image: url('../img/filebrowser_icon_showversions.gif'); } +table .fb_showversionslink:hover, table .fb_showversionslink:active { background-image: url('../img/filebrowser_icon_showversions_hover.gif'); } diff --git a/platforma/static/filebrowser/img/.svn/all-wcprops b/platforma/static/filebrowser/img/.svn/all-wcprops new file mode 100644 index 00000000..77268324 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/all-wcprops @@ -0,0 +1,203 @@ +K 25 +svn:wc:ra_dav:version-url +V 74 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img +END +filebrowser_object-tools_icon_makethumb.gif +K 25 +svn:wc:ra_dav:version-url +V 118 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makethumb.gif +END +filebrowser_icon_delete.gif +K 25 +svn:wc:ra_dav:version-url +V 102 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_delete.gif +END +filebrowser_type_code.gif +K 25 +svn:wc:ra_dav:version-url +V 100 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_code.gif +END +filebrowser_icon_select_disabled.gif +K 25 +svn:wc:ra_dav:version-url +V 111 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_select_disabled.gif +END +filebrowser_type_.gif +K 25 +svn:wc:ra_dav:version-url +V 96 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_.gif +END +filebrowser_icon_rename_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 108 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_rename_hover.gif +END +filebrowser_type_image.gif +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_image.gif +END +filebrowser_icon_showversions_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 114 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_showversions_hover.gif +END +filebrowser_icon_makethumb.gif +K 25 +svn:wc:ra_dav:version-url +V 105 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_makethumb.gif +END +filebrowser_icon_select.gif +K 25 +svn:wc:ra_dav:version-url +V 102 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_select.gif +END +filebrowser_object-tools_icon_imagegenerator_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 129 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_imagegenerator_hover.gif +END +filebrowser_icon_show.gif +K 25 +svn:wc:ra_dav:version-url +V 100 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_show.gif +END +filebrowser_type_sound.gif +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_sound.gif +END +filebrowser_object-tools_icon_makedirectory.gif +K 25 +svn:wc:ra_dav:version-url +V 122 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory.gif +END +filebrowser_object-tools_icon_multipleupload_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 129 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload_hover.gif +END +filebrowser_icon_imagegenerator_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 116 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_imagegenerator_hover.gif +END +filebrowser_type_video.gif +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_video.gif +END +tableheader_arrow_up.gif +K 25 +svn:wc:ra_dav:version-url +V 99 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/tableheader_arrow_up.gif +END +filebrowser_type_folder.gif +K 25 +svn:wc:ra_dav:version-url +V 102 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_folder.gif +END +filebrowser_object-tools_icon_makethumb_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 124 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makethumb_hover.gif +END +filebrowser_icon_delete_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 108 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_delete_hover.gif +END +filebrowser_type_document.gif +K 25 +svn:wc:ra_dav:version-url +V 104 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_type_document.gif +END +filebrowser_icon_rename.gif +K 25 +svn:wc:ra_dav:version-url +V 102 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_rename.gif +END +filebrowser_icon_showversions.gif +K 25 +svn:wc:ra_dav:version-url +V 108 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_showversions.gif +END +filebrowser_object-tools_icon_imagegenerator.gif +K 25 +svn:wc:ra_dav:version-url +V 123 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_imagegenerator.gif +END +filebrowser_icon_makethumb_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 111 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_makethumb_hover.gif +END +tableheader_arrows.gif +K 25 +svn:wc:ra_dav:version-url +V 97 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/tableheader_arrows.gif +END +filebrowser_icon_select_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 108 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_select_hover.gif +END +filebrowser_icon_show_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 106 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_show_hover.gif +END +filebrowser_object-tools_icon_multipleupload.gif +K 25 +svn:wc:ra_dav:version-url +V 123 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_multipleupload.gif +END +tableheader_arrow_down.gif +K 25 +svn:wc:ra_dav:version-url +V 101 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/tableheader_arrow_down.gif +END +filebrowser_object-tools_icon_makedirectory_hover.gif +K 25 +svn:wc:ra_dav:version-url +V 128 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_object-tools_icon_makedirectory_hover.gif +END +filebrowser_icon_imagegenerator.gif +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/img/filebrowser_icon_imagegenerator.gif +END diff --git a/platforma/static/filebrowser/img/.svn/entries b/platforma/static/filebrowser/img/.svn/entries new file mode 100644 index 00000000..69fc4e76 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/entries @@ -0,0 +1,1150 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/img +http://django-filebrowser.googlecode.com/svn + + + +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +filebrowser_object-tools_icon_makethumb.gif +file + + + + +2009-11-05T20:58:50.000000Z +ac0b0f779a11e12c6fb9be3fd9dae3a9 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +403 + +filebrowser_icon_delete.gif +file + + + + +2009-11-05T20:58:50.000000Z +157eed9c0a8ce56cc2b75cb12065f1cb +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +151 + +filebrowser_type_code.gif +file + + + + +2009-11-05T20:58:50.000000Z +325e306d3e02c8acda7af6adfa7fe004 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +160 + +filebrowser_icon_select_disabled.gif +file + + + + +2009-11-05T20:58:50.000000Z +a0c268883018edf7fb7a89c8bd0818e3 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +3186 + +filebrowser_type_.gif +file + + + + +2009-11-05T20:58:50.000000Z +b5fac564ecb2166984dd3a2bbeed30f2 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +113 + +filebrowser_icon_rename_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +497f6c51d823c274a60fe2f0e62e5f0c +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +222 + +filebrowser_type_image.gif +file + + + + +2009-11-05T20:58:50.000000Z +f7ee32d90df4f4a881332f8792bff56c +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +127 + +filebrowser_icon_showversions_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +738f5047e56dfc42c27a2035264d9a5a +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +174 + +filebrowser_icon_makethumb.gif +file + + + + +2009-11-05T20:58:50.000000Z +ab37558a12a7ac398d70967cea5c2490 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +378 + +filebrowser_icon_select.gif +file + + + + +2009-11-05T20:58:50.000000Z +d5f9eece128537b385fbce97dbe845a1 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +377 + +filebrowser_object-tools_icon_imagegenerator_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +f7283a0d70fde92d648968b4d717b332 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +433 + +filebrowser_icon_show.gif +file + + + + +2009-11-05T20:58:50.000000Z +796cca444bccb1aa3a1177af34df2b55 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +427 + +filebrowser_type_sound.gif +file + + + + +2009-11-05T20:58:50.000000Z +4151664f192446c247002b107e7ef44b +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +223 + +filebrowser_object-tools_icon_makedirectory.gif +file + + + + +2009-11-05T20:58:50.000000Z +a0a9265b740291191ef495408d8462ee +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +390 + +filebrowser_object-tools_icon_multipleupload_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +9c8b269a5d21539c833af80f93f98857 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +263 + +filebrowser_icon_imagegenerator_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +f7283a0d70fde92d648968b4d717b332 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +433 + +filebrowser_type_video.gif +file + + + + +2009-11-05T20:58:50.000000Z +a4182f6abe9db217cfe9285bc4d658d8 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +147 + +tableheader_arrow_up.gif +file + + + + +2009-11-05T20:58:50.000000Z +54e3bf1ab4191c053d1f986da869b891 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +292 + +filebrowser_type_folder.gif +file + + + + +2009-11-05T20:58:50.000000Z +06bb3d324d86924674bd696673cf12b5 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +228 + +filebrowser_object-tools_icon_makethumb_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +ae1a740563fab6107c761690ba1ea4b0 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +284 + +filebrowser_icon_delete_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +3bc37e729ede0d78618286dcaaec4ecb +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +151 + +filebrowser_type_document.gif +file + + + + +2009-11-05T20:58:50.000000Z +69c60b7de4e9e07a111275424f8aea38 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +118 + +filebrowser_icon_rename.gif +file + + + + +2009-11-05T20:58:50.000000Z +74d609b1407d2ec6a06797be1fa252b4 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +222 + +filebrowser_icon_showversions.gif +file + + + + +2009-11-05T20:58:50.000000Z +5e1a776e0b8cf3a7f28f7a7fe10c04f3 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +174 + +filebrowser_object-tools_icon_imagegenerator.gif +file + + + + +2009-11-05T20:58:50.000000Z +67c3f4a7d6cecec501fdf0561c07a300 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +433 + +filebrowser_icon_makethumb_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +b53f0c3ec7e9ba09faaf184ae9b9e08e +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +378 + +tableheader_arrows.gif +file + + + + +2009-11-05T20:58:50.000000Z +9938865535b6e2225419b4c97fe3e5ab +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +296 + +filebrowser_icon_select_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +3b1c5ee35a836335a146e58ef96f5e6d +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +264 + +filebrowser_icon_show_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +d86a374f1f8fc4dc541d060151e3a3cc +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +426 + +filebrowser_object-tools_icon_multipleupload.gif +file + + + + +2009-11-05T20:58:50.000000Z +592061db6b21baef0214d5ca0db50318 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +387 + +tableheader_arrow_down.gif +file + + + + +2009-11-05T20:58:50.000000Z +b3e7bfc27c65b00e59b6c732fdeccc16 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +292 + +filebrowser_object-tools_icon_makedirectory_hover.gif +file + + + + +2009-11-05T20:58:50.000000Z +0969316f65cbce421d15ae05ed2b6806 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +378 + +filebrowser_icon_imagegenerator.gif +file + + + + +2009-11-05T20:58:50.000000Z +67c3f4a7d6cecec501fdf0561c07a300 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +433 + diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_delete.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_delete.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_delete.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_delete_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_delete_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_delete_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_imagegenerator_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_makethumb_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_rename.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_rename.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_rename.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_rename_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_rename_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_rename_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select_disabled.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select_disabled.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select_disabled.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_select_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_show.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_show.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_show.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_show_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_show_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_show_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_icon_showversions_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_imagegenerator_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_code.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_code.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_code.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_document.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_document.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_document.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_folder.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_folder.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_folder.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_image.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_image.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_image.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_sound.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_sound.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_sound.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_video.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_video.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/filebrowser_type_video.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrow_down.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrow_down.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrow_down.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrow_up.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrow_up.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrow_up.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrows.gif.svn-base b/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrows.gif.svn-base new file mode 100644 index 00000000..5e9587e6 --- /dev/null +++ b/platforma/static/filebrowser/img/.svn/prop-base/tableheader_arrows.gif.svn-base @@ -0,0 +1,5 @@ +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_delete.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_delete.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..221a6e1c999ec8c06fd335a9e01dd5b7036153b2 GIT binary patch literal 151 zcmZ?wbhEHb3^g`se(q7##9ZC*V|ri*|tU6`*Zf{ ss#@)xQa$Q-PFA_e6lq9{2sX0Ai3i@c;k- literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_delete_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_delete_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..2a2142cd24559f609b7485dc3a8704bc6f91a897 GIT binary patch literal 151 zcmZ?wbhEHbQ*&yY^`I>@&8uKY#vY zKn03FSr{1@xEORm!XPskSX=^5dS>ftigR!JFR4(fpb@1pRfFU8w%1#>ZISl=oV~iL rR(q#ZkNTaHRc$ib_R zRvo>OJ7-V%;sf*cUP_p}?ev}Jr3?3OJaxNv`QfzbJM-u6?b~#E($=%BYmOH$*f(S6 zg~}xdr))d->f_h1KYpz_esj*Ai~s-sXP_BS{K>+|z@W&W1F`|+CkD222PPD71oHHs zcyj!Lr;F8m|01nF1x5^ht;$Q~7Bf$%u<593W$T;atgymS>VoB!lMPqo_&FF(DV!7F ztYMLJl4Ggn6lhgsQ>=7imCkB$?vRmYWt3**ncY(&S}o-y#Z=3|C?~$@|H7s&Y zaxB%Hyse6?ij_`m(pfFe9Wv5v4AKmIvwKR!s->Ky7;8BgT5}4=KJ2PzQ7ITz4r2MrH=sRlw^Vxhu literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_makethumb.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_makethumb.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..837f6cc64594891003050b21eae4583de34cd1df GIT binary patch literal 378 zcmZ?wbhEHbG-8ltI3mgL;MK=>U%uaa`Qhx{7x{Dd=FQ#Hy!u$h;)8|r_Z_|Qq;%o_ z&)6OpaO&B+FEz^!fB*UW&hz(=UVqwi@xi(ix4Jf*y!7DJ-b)Xwmmd26|33o; zQ2fcl$iN`UpaYTt*~!5AJt0JqBTU1+P@%PRN&6+c-~!G=qCC!Jw|95vGn`4);pS02 zoMScroHw)AS}WBiXEnwXC2QmIm6{o6&u46%&R{Tum%;3(&v(%og-tUR=3hU{n3~JN zlg7hRP*)$uRNn2E+8-*;G0Au0w1B9YGiLgV_f4BSPm(!n&Jw@OIJTCyj@ZTX7F5(! z*KV50)RdE#P*AjU8q?I6#DrLe{{46F-rc=>x1ph-q@?7?kt4aexdjCUpFVvG4Grz+ z=y>+*Sw%%fTU*V!Y8L$DxpDc_F z3=#}FAW4v&46NT3p2)PbDzFB~G*m8Oy<|2qfY(_yM!f9y?ymPtXAG%j zS0Bb))$N3%w=xM z$xA3G+A)K9YD{86EMxM)X`;MNlY*A}@oyME*54Q`%Gi_hPiE6)6I`IDzJL?689 zXJ&dcjoJ1?|En+k@4t78zy6hG{_ho!#|2%587yo9Y7ZVBp37I~+{N)Qk@@&xIeR&- Pl@2cMeVh_b3=Gx)R6L+? literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_rename.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_rename.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..bc45fe4b0d867b6bb5e5c484181f6b3765f3b356 GIT binary patch literal 222 zcmZ?wbhEHbfc;6e{a^zT@$yQUa;>{ z*`oa^)3*0)IJx=Mt*RvlpT7Cfx&B1l#I5f?ea)D$^Y+s>d2{wm+kUob)zMiy&;R`S zlK~Yd{$ycfV31&IGJM5 z(7DRVQ=(S$(h(zrIIb4a3o{&#giL4sUJ%Jy;r4(lsX{_oY^m3R12RHpH&t&>U`f$o Q5f`g(5R+(aP-L(M09w*u`Tzg` literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_rename_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_rename_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..be8ea08bad75629c9ae3e26f607d72d2afae5972 GIT binary patch literal 222 zcmZ?wbhEHbWMpJ=a`OB4?{D3@m6eq>dGh4Cy1MDpr~mxL9u@t06G*kXGD@kif1t5jPDIXM`#go=h=d=vrlD zDN(B_bkxWoPN+rn!VJeFA>wS?3nDoy+#YBxs*sQtTk4f?K!nfirt0nqEGarH;$rm; LViK(liVW5O_r+8O literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..a83842792eb98e4624be9f93a239404f9fc02c69 GIT binary patch literal 377 zcmZ?wbhEHb6lV}*xXQqgJazly*B|EZzmhy{$CPbnlc#N8e&pKRy_e_hyF6#l<(a!K zt~`1pW9H7bb;n!R9`Do=mw{oH)%*+TNfK+LIv1`fJN;J3_Q8eMd9F~!$*#~$e%cQ>hu{EQ5Kntmo8tq%;M$jam(Gy Hk--`OKxUQr literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select_disabled.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select_disabled.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..60ad2d53017896c347035e8d6c85841bba558a95 GIT binary patch literal 3186 zcmZ?wbhEHb6lV}**v!rF{{8z$j~;#c^y%r-r$2xGynXxj{rmS%pFaKa<;!#D&K*B~ z{Li013`junKX-(0fPzb6Ng|N8v9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrY zb81GWM^#a3aFt(3a#eP+Wr~u$9hXgoRYh(=ZfZ%QLPc&)Ua?h$tx{r2ep0FxkPQ;n zS5g2gDap1~as){zfb4Y6FG^J~(KFIB(oHrnGgdG))-yIWGBYyKQ7|$vu+TR!*EcrM zHMFoYFtsuOB2#6Ujsl~}fnFS@8`FRQ;GZT~YOG|8(lz{RIP{UJ_ z;bs?<7Uh6VPD$2J%}LEo%_}L^H`FuKM^+CEiJ;8%jFMuww!C6JaA@cy=jZBIBo+X* z80Z&))j)K@wOIKk7G@=_(1{>FDA=SVTR}_$b0MB` z%qfBJAl#fxkWZ{~67$k+l`3>oQqvMkb4rx-p*r+I{)TC>(ML7V24Q_@abkLENNQ1T zF}1A1Wws62Nk~xxv=AZ&jB;RV(}yQFs5hZ0gH{wcG0@6zn7N~tz(Rs3dNjC*3MQDM z(cprG1X1*8a1j+uFh!%m1q%tH=+WRJDwtr3@C6qaqQRP)2W&T$1Dm6a|Ns5{^ZVD& zAK$-y{qp(K#}Dt{y?yig)yo&ppFMr@_|d}$_wU`kbNklK8`rO0y>j`|#S7=pojr5< z)X5Xaj~zX7_|U-v`}ghLvwPRh9ox5U-LiSp#trM&tzENv)yfsimn~hgc+tWI^XJW- zGkey|8PlgtoicgS#0mXjScm6wKdgMl@;Y>r6t8hg$4O}xjETc znHlM6sVT`xi3#y>u`$t6krClxp&`LRfdT%0zCPYwo*wRQt}f0_jt=&Awl>yQmKNq_ zrY6Qlh6eh2x;olgni}eAsw&D#iVE^_vNFLTu55C-@o1^WhbgDyw=gg~>6zP{%24eXe(Am8LBVo2p&qHloeT`t02tP$ A1poj5 literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_select_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..319558e9e216fe26b188aa4bf18498800e8ad3cd GIT binary patch literal 264 zcmV+j0r&n#Nk%w1VHW@q0K@PyiHV7|wY7qRf}EV3m6ercWo3qjhF@P_zP`S_y}i7=yu-u8y1Kf+z`(-7!n?b> zzrVk^xw*l?!FG0bA^8LV00000EC2ui02cre000GrARv8YX`ZGe9#`wW@Oz9}ZQpoK zdVKHyz#VWnBxR1sq;g5(IG@f314?x^osfjnATU&^B#KyopbP{9v3jj0Ro)XsU=n!S z?{|`AKXK6afPsP}8-)`S3IzoXg^iAlgoP1@hYOFF8zdN;oSmMZBpsroq@|`G5(K8J OrUWV@D6uChApkpD3V6-{ literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_show.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_show.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..dded982483f505f834dd3d934926cfd4549295bf GIT binary patch literal 427 zcmV;c0aX4+Nk%w1VHyAy0M$PLroz?G-{@SCw4lDzbfLe&)Zt*1w&UyYwanaEkF#5l zw9ehhSd5=zpvBha%_Hjc!Yd?Wq*K+c7=yc3myy%4;wp9 zf{Q2u4FwAsEi*QQeR~H#Faj)ODjy*eiHkoX4Q>zy1+k@tKMXl;H60f}0H=#L3vUu6 zLIcKg4<&9cJs3|!Nk%^dI23IT0$Z{_F*6zvDL*<61_=n`P8BZ(AQCbHCkYDg@INC3 VD@XvKfj~h54*ldrun-{#06T(R*Bk%< literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_show_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_show_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..fbd1f33e8a87edd697b4604202f8e8117a109c19 GIT binary patch literal 426 zcmV;b0agA-Nk%w1VHyAy0M$GI&(F`Kq@=U6v!0%wadB~2SXfn6Rn5)Km6es^;^M%- zz+7BhYHDi4#KdJ~Wv{QVczAe{l9E?fSAl_n;NakiiHV1Yhu+@ad3kxFqN2{u&h+&3 z`1tr+TU%OMT8M~+5}eeV?D7VPRqE>FMt7?q_Fbii(Ps zmX`YZ`c_s}>gwvk!oq%je)IG5@$vDov9V-iWNvP5(b3VDmzQ>ScFD=f`}_L<00000 z00000A^8LW002AyEC2ui02%-m000KZKpr5FD;kf;TmZmpHUR^IZc43Mb%X)a8IWGT zRYJhY%Yo0-99d0nyVvlyJlby@3bCbyJPt8#E*1zp0jG;72X6=w zLIcKg3^i^WIvGzyNk%*aH!y7t1vs)!BP1pi96U1(3kCw?P8S#p9|#ZyF9s6t@H{jM UEg~!tAi;o#esTnK5D)|aJ402uh5!Hn literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_showversions.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_showversions.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..71525d74bd7c4e2a50d12872b1e29409f5b9cd12 GIT binary patch literal 174 zcmZ?wbhEHb6lV}**v!eW>*D`^A`SjY8H}5`woxShU`qQ^}UwqKB<;o^WBJn3x7 NdFp8TK@~v;YXE+{MRfoG literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_showversions_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_icon_showversions_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..1fbe2e49b7e7649cfcbfe2153ddc48ee189766f9 GIT binary patch literal 174 zcmZ?wbhEHb6lV}**v!eWW5+Z^fq|1j2P6YBgMlU5K$WRyuSK+jibRk`-$Mo#)wjd6 zd*q-a)xUr4lLy>}!VV8N|LoD59loNd<7rlNWR}ny(fXx#Uwu1a_Rr_gI*x-2PdZz2 No;sR-P(_fz8URj!LtFp= literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_imagegenerator.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..9b19a420dcbc9249fa59c134357c0a02e0b60a19 GIT binary patch literal 433 zcmZ?wbhEHb6lV}*xT?r7Ve^@5kKc4}IMuxRSoP9F+t1xwbl}R8LsuWX`dGi>$ib_R zRvo>OJ7-V%;sf*cUP_p}?ev}Jr3?3OJaxNv`QfzbJM-u6?b~#E($=%BYmOH$*f(S6 zg~}xdr))d->f_h1KYpz_esj*Ai~s-sXP_BS{K>+|z@W&W1F`|+CkD222PPD71oHHs zcyj!Lr;F8m|01nF1x5^ht;$Q~7Bf$%u<593W$T;atgymS>VoB!lMPqo_&FF(DV!7F ztYMLJl4Ggn6lhgsQ>=7imCkB$?vRmYWt3**ncY(&S}o-y#Z=3|C?~$@|H7s&Y zaxB%Hyse6?ij_`m(pfFe9Wv5v4AKmIvwKR!s->Ky7;8BgT5}4=KJ2PzQ7ITz4r2MrH=sRlw^Vxhu literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..bcd98d910e41a0b900208c4a13c63dc75fc87851 GIT binary patch literal 390 zcmZ?wbhEHb6lV}*xT?mm_tL}W)yIk#9!QwH?cmi%v-Vuxboy?`x)WQ^+}(BQ(e`uq z7aq8}{?wgyC+|Fa_hrHUD?fk#nYH`khSPT&R~>C%dt%bov&9SdAHM$d(DkPWu0B3^ z?a7fF&yL=FK5hHCeU~5ZyYguNmB+_#zdU~X#j#t@tCt>{v*+Uf|Nj}N2NZv@FfuTx zG3bDd1o?@9ZLx#!LKht&&SguAR_Zv;Q0pkH@{wB*@j}$`WySsnAGRAgPT*R&rRr>) zxQEKb8o%|oA1>ZgcmDlkCQg~A=4K|QmKIJ%RUzrV{{FTJ6NFrN#AnPD7ZYPDef!u{8MqaWpE!ByBsT*Czx>5Z gm#-L?ycLW*u7z>^}efErz&ym3z0O~%ZoB#j- literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makedirectory_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..f9938c77358bf75c2a62bd116feb463f9daefc6a GIT binary patch literal 378 zcmZ?wbhEHb6lV}*xT?Ugd-v|ut5?Uw#1s@1G&D5KojZ5arcK+nZTs=#M@vh~mMvS> ztXVT}-n+7qlt7~p<&d<+3c<|u9eftg^I526_q{D{~mzS6C z-@kwF-o1PF>^XGk(9D@L|NsBbKue(blZBCiL4iRBWC_Sm3~bXKE6A z>@4!!;@v$x&Aq+cE{xJsr%8*5Ffq-XK9zCuys0y1&z-kGo=a@?nl&@muH|y!mD##& w+sy6TdF2^+b{#k5x1M_t)xUZ3xd*F{-6&ghaP!&w z#S8YWIdN<4iCde_-YZ_XzjV=omNmyZH=N3tv8#K-se@M^@4xcs`0W=b?!4T0`QiSn zk5Aowz4!9N!`Gi4x$*4i&F6=%KRI^m#mT#`s+S&OpaD?)$pSW22SkGW#K5-U0As3) zj#R%}*Mtq3R`V~YCu&R*aS5MTc6zUviqfJN29_#2GIE=0IQk7FTooAB-+oxkI;W!0 zfr(ALskud*jZuJ4+(ogsuYbZs7x^hur%j*XA~$=^+v*Q|9B z<>hB!6WzLPyC@q2Kd-2ZloSsG!-1p64jkq=;3CGvz{D+f>GBmZ?sH6HE|P*AlJ_JZ eK6-qQLr_v#ghl4f+jsBZ1v`0s@$hnFum%9vK$rLc literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_makethumb_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..b9aba7cc3bbadfb69d72df995022021186aa67a9 GIT binary patch literal 284 zcmZ?wbhEHb6lV}*IKsfNa^=d<(9mbko~>B1V%@rR1qB5S4GsDE`FVMHEiEmDg@vnD zt?KCLSigRKQc_ZKa`KTQNA~U8w`b3uLx&C>IB?+L!GpVZ@7}w2@8QFTj~+d`fB*jS z@^S_wp!kyo%+mppAUhdYXD&F9lae`4O*ty^^}Y|;y^)tv%KzN+oiuU6vBe7;B>Fu% zoNhEsFpxO(m~m~?!eFK^o*Fhx*9#s5UYMlzVoTLowa|MXcGUPSy7B(Uo_R}N{{G+4 zSku_jq9Vx6&c`U&+t)A1$j8nts3I=Tz{fXZ?z|bZ8D>nM#lSIt1;7{ literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..6de016befe3eafe2d573b19f7b19d6b259f8fb23 GIT binary patch literal 387 zcmZ?wbhEHb6lM@)xT?c&{PxR=B?lW<9XoO7<<3iwD;6JYTz%~5jVDd3k8M47fBX4| zyDmMRv*+U0^AA=XyVbDjX!Gi04J(hXIev4;#YgokkM6keaOt6I8_(Q7dG}S*>f;^j zPc1ogb>HQO$8WzlaP{%NE06YHd3^BNlVi7@AG-eZ=*{PqOAb{pJ#_Eoha)$hegFCU z@b#xtww?R`|33q{K=CIFBLjmD5CQ?nPYi4e9HteV@LKD$TBOj^Buj6mN^z!(jsbT| zNmPs^N3+4f4NKRt2scF83QlQtb6o1YzFaF$wdQL;$G?UKF8&}lL0*;4u5J}xL1`T! z5l)S%)22`36cJM6)0)3v;UYdY0oCQK%BxndW?il-prfwNuBy0w#|~BY%`WPyat99` tQdRfauW<6zsiVgkk$au_Kol#8Y)@>QFE5ST!j~+kfadBj@1^~Uqr<(u( literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_object-tools_icon_multipleupload_hover.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..eaaf2542003b69acbbe664dbd9bbf14620caf03b GIT binary patch literal 263 zcmV+i0r>t$Nk%w1VG{rm0K^;sva+(Xv$LY2qQu0+rKP2`w6w9Yv2k&6u&}V1nVEoq zfU2shsi~=de}BWn!@j=0!NI|IcX!?0-N3-WkdTmidV2Qu_Po5j!otFIbacJFy}!S| z|Ns900000000000A^8LW000~SEC2ui022Ta000GqASaHTMMacFuB6#8Rm!erRSZR} z&Lvd^j$lAHs{w;TV#^1>IG-4RvR7$Bp;B4R0O@+a5JN@4SyT{{w0f;ZR2C7!W=^l$ z2@yqRf3VjNdl?EG5)uO$4~dG383TnR5*Zqkl$03~ERmI)mzfzCprN6iE0F@Cp#r2U N2@$TZuL&d}06R7Tan}F< literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..6a908e27a004f5d80984c2e4d151482cc81274fb GIT binary patch literal 113 zcmZ?wbhEHb6lV}*Sj58c>C>mXckdoKa%A`J-T(jpXMh34pDc_F3@i*fAOVnC24*u3 zqdWinRyeHM`=f2@?)12d#zh`wz7eZ{KPoLhsd-ueN6W_jl`}FD4kt0WT@813Y|9=K-K=CIF zBLf2mgAPa%WCjC^?}i!9tM^{>Xx#Pxfx1s(W>DI%g{w~039V?&XFs!nv7xk~dD4Mb w8Xo#{orCut|epYrk;LYdB+hQ*3>*~ZwTBJ@)Ys!o_5oE9i0Lf=Sh5!Hn literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_document.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_document.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..65ebd99bcd39b33cd649d9a35666ce3db9d1b83b GIT binary patch literal 118 zcmZ?wbhEHb6lV}*Sj5Wk>C>mXckdoKa%A`J-Pf*N`~Uwx0~jd&WMO1rU}ew&@jz-B zn5{XC?)>vx5wL3SkG841)8i@{MHA;`WKB#uvCLo>-`XF?KE~`W={&qE_W8HTp%I4y T^(}=0W=!p6a%%MuVz34PP{A>O literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_folder.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_folder.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..115e3fbd1d46b7d4f784333bf80a94eec5bd0b13 GIT binary patch literal 228 zcmZ?wbhEHb6lV}*I3mn&^XAQ~SFi5hzyHXQBU`s_J%9fEhYue%Y}oMo_wNfAF05a_ ze&fcCYuB#5bm`K80|z#5-hAlLp;fC^J$Ufo|Ns9CL;%H~EQ|~c!VEefwIDkgSQ8(x zIHY(o1+QAC)v`f2>0G+k0gD>-Gmrltc#tpX>B2B+Nzus|CZ&nXO1S1mO&4VSWW}n% z!uxKEB18Am6!#xzaxAXA`L6MM!p823O4qDuI`>5b~Z%@YXF`N BTWSCR literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_image.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_image.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..000b31c120da8912e9b55d8c0dc9d4e167c0383e GIT binary patch literal 127 zcmZ?wbhEHb6lV}*Sj5Wk>C>mXckdoKa^%{zYrA*v{{R0!0~jd&WMO1rU}ew&@jz-B zm|ZxW?)>vx5wL3SkG841)2}M@rD%pF7*^bkTB29Ib3@NXmyGin>)wgY;rmhjGs!wp caD~gQS<7CmaDOAfGG$fj;)V*vNh}Q303xzBCIA2c literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_sound.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_sound.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..8a8970ab039660d6211c4ac19f43ab0262461a66 GIT binary patch literal 223 zcmZ?wbhEHb6lV}*I3mDs_wL<~A3uKm`t{SNPq%K}`t#?{nKNe|K79D($&(8gE?m2I z?fLWPmoHyFa^%R#lP7oY-u?goe+E*3;!hSv1_l8J9grrFoeZoo4=&iGWX?-dW(s({ z?*n&FVeaIze~-3qkl|`ye5_lt#pBW8XC49qjfrbGidkZUB)+B|)tY&|`2#mI2XoVt ml1Nc5E_bG%M+;6UvL5VRdph@b6t7N$p|O%ihlZ9SgEat3M_AVY literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_video.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/filebrowser_type_video.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..f456d59b889aca17cf669b83a8d569dedd51dbac GIT binary patch literal 147 zcmV;E0Brw9Nk%w1VHW@q0HOx~^78WC-QC2*#Omtm_4W0;ySvub*8l(iA^8LW000L7 zEC2ui02cre000A62vXesPN;CIz4(TeyJwXlj$|oT;9;oj>bC5Wnly_v~ewN@&$E)~&x17c3L`s*_=HZ!)s%kawYYck{LtvWM!$t`xZO=vlsY4_Q06V0Y BMb-cS literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/tableheader_arrow_down.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/tableheader_arrow_down.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..5ae95a6063d0fec875a6475346f8768096dbbeae GIT binary patch literal 292 zcmZ?wbhEHb6lY*%xXQrr|NsBLfB*jZ`|tbD-`{@x{{H>@r>{R>z5n{=&6_8$K0SN( z?Ara;M=w1-bpGM)Q}?zWy?x-ofwlXu@7}$8$&Sm5wq07V_2T?37iVrbH)Zwd<;#~Z zS+b;i$??_&N1Epyo;Gb-<+Od>-Q5|T+fv)N)Ya7$78Vv16y)XQWo2chrKK@Y11SDv zVPppyqysVx6Dmd*Ib|mZ2@8fcX{?uad+fx(VzT_9X0b1qhFD7K iBoWS?@&3-Y({3o1D>SOWkC18<=K literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/tableheader_arrow_up.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/tableheader_arrow_up.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..85f1e12690c4fc2b4f2919490a49b0244c29e0e5 GIT binary patch literal 292 zcmZ?wbhEHb6lY*%xXQrr|NsBLfB*jZ`}aE#{P^|t`>&5*zQ26?`OTX*&z?Pd^!)wJ zn>P=gy|eGst?fsy9XN1cC+Ryq58x*K+1w|nc0${N;ZZ@*2Q~5 mwwykocGWj^nyj01u!FYhioEY%0<;`dJj=M%s;V>{8LR>Ea(Ai# literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/.svn/text-base/tableheader_arrows.gif.svn-base b/platforma/static/filebrowser/img/.svn/text-base/tableheader_arrows.gif.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..39b8780cc12959337ee2fa5bab4885310c6b48d4 GIT binary patch literal 296 zcmZ?wbhEHb6lY*%xXQrr|Ns9#fB*gY`}h0L-`{@x{{G|F*YCeRef|0I%lB9BzrK9? z`N^wKkDkB3cK`L!OOFqoe|YHZoqeZn?LKvH>(SfWk6hch|ML2Mm)7pTzH-O8<=f9L z*>QQ%wo41PUYx(>;`|LKXKpw*XWj8xYmd!bb8O1$)03AU>RxiZchUaV1xK3a9d4Pu zt8Uu1%4z#*rfeKXM1I3>#jO;+wIv^b&KQXYm9tb<;v?U>l ztD$IR%z_xsRM*e|B_EMx+n!X^a4;}>Ea9o#a{9os#ZNM(X?nDzIB2UcZ~SC1NkdY{ Sz_W~3TU@w9SX|$c!5RR}h>&0a literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_delete.gif b/platforma/static/filebrowser/img/filebrowser_icon_delete.gif new file mode 100644 index 0000000000000000000000000000000000000000..221a6e1c999ec8c06fd335a9e01dd5b7036153b2 GIT binary patch literal 151 zcmZ?wbhEHb3^g`se(q7##9ZC*V|ri*|tU6`*Zf{ ss#@)xQa$Q-PFA_e6lq9{2sX0Ai3i@c;k- literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_delete_hover.gif b/platforma/static/filebrowser/img/filebrowser_icon_delete_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..2a2142cd24559f609b7485dc3a8704bc6f91a897 GIT binary patch literal 151 zcmZ?wbhEHbQ*&yY^`I>@&8uKY#vY zKn03FSr{1@xEORm!XPskSX=^5dS>ftigR!JFR4(fpb@1pRfFU8w%1#>ZISl=oV~iL rR(q#ZkNTaHRc$ib_R zRvo>OJ7-V%;sf*cUP_p}?ev}Jr3?3OJaxNv`QfzbJM-u6?b~#E($=%BYmOH$*f(S6 zg~}xdr))d->f_h1KYpz_esj*Ai~s-sXP_BS{K>+|z@W&W1F`|+CkD222PPD71oHHs zcyj!Lr;F8m|01nF1x5^ht;$Q~7Bf$%u<593W$T;atgymS>VoB!lMPqo_&FF(DV!7F ztYMLJl4Ggn6lhgsQ>=7imCkB$?vRmYWt3**ncY(&S}o-y#Z=3|C?~$@|H7s&Y zaxB%Hyse6?ij_`m(pfFe9Wv5v4AKmIvwKR!s->Ky7;8BgT5}4=KJ2PzQ7ITz4r2MrH=sRlw^Vxhu literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_makethumb.gif b/platforma/static/filebrowser/img/filebrowser_icon_makethumb.gif new file mode 100644 index 0000000000000000000000000000000000000000..837f6cc64594891003050b21eae4583de34cd1df GIT binary patch literal 378 zcmZ?wbhEHbG-8ltI3mgL;MK=>U%uaa`Qhx{7x{Dd=FQ#Hy!u$h;)8|r_Z_|Qq;%o_ z&)6OpaO&B+FEz^!fB*UW&hz(=UVqwi@xi(ix4Jf*y!7DJ-b)Xwmmd26|33o; zQ2fcl$iN`UpaYTt*~!5AJt0JqBTU1+P@%PRN&6+c-~!G=qCC!Jw|95vGn`4);pS02 zoMScroHw)AS}WBiXEnwXC2QmIm6{o6&u46%&R{Tum%;3(&v(%og-tUR=3hU{n3~JN zlg7hRP*)$uRNn2E+8-*;G0Au0w1B9YGiLgV_f4BSPm(!n&Jw@OIJTCyj@ZTX7F5(! z*KV50)RdE#P*AjU8q?I6#DrLe{{46F-rc=>x1ph-q@?7?kt4aexdjCUpFVvG4Grz+ z=y>+*Sw%%fTU*V!Y8L$DxpDc_F z3=#}FAW4v&46NT3p2)PbDzFB~G*m8Oy<|2qfY(_yM!f9y?ymPtXAG%j zS0Bb))$N3%w=xM z$xA3G+A)K9YD{86EMxM)X`;MNlY*A}@oyME*54Q`%Gi_hPiE6)6I`IDzJL?689 zXJ&dcjoJ1?|En+k@4t78zy6hG{_ho!#|2%587yo9Y7ZVBp37I~+{N)Qk@@&xIeR&- Pl@2cMeVh_b3=Gx)R6L+? literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_rename.gif b/platforma/static/filebrowser/img/filebrowser_icon_rename.gif new file mode 100644 index 0000000000000000000000000000000000000000..bc45fe4b0d867b6bb5e5c484181f6b3765f3b356 GIT binary patch literal 222 zcmZ?wbhEHbfc;6e{a^zT@$yQUa;>{ z*`oa^)3*0)IJx=Mt*RvlpT7Cfx&B1l#I5f?ea)D$^Y+s>d2{wm+kUob)zMiy&;R`S zlK~Yd{$ycfV31&IGJM5 z(7DRVQ=(S$(h(zrIIb4a3o{&#giL4sUJ%Jy;r4(lsX{_oY^m3R12RHpH&t&>U`f$o Q5f`g(5R+(aP-L(M09w*u`Tzg` literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_rename_hover.gif b/platforma/static/filebrowser/img/filebrowser_icon_rename_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..be8ea08bad75629c9ae3e26f607d72d2afae5972 GIT binary patch literal 222 zcmZ?wbhEHbWMpJ=a`OB4?{D3@m6eq>dGh4Cy1MDpr~mxL9u@t06G*kXGD@kif1t5jPDIXM`#go=h=d=vrlD zDN(B_bkxWoPN+rn!VJeFA>wS?3nDoy+#YBxs*sQtTk4f?K!nfirt0nqEGarH;$rm; LViK(liVW5O_r+8O literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_select.gif b/platforma/static/filebrowser/img/filebrowser_icon_select.gif new file mode 100644 index 0000000000000000000000000000000000000000..a83842792eb98e4624be9f93a239404f9fc02c69 GIT binary patch literal 377 zcmZ?wbhEHb6lV}*xXQqgJazly*B|EZzmhy{$CPbnlc#N8e&pKRy_e_hyF6#l<(a!K zt~`1pW9H7bb;n!R9`Do=mw{oH)%*+TNfK+LIv1`fJN;J3_Q8eMd9F~!$*#~$e%cQ>hu{EQ5Kntmo8tq%;M$jam(Gy Hk--`OKxUQr literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_select_disabled.gif b/platforma/static/filebrowser/img/filebrowser_icon_select_disabled.gif new file mode 100644 index 0000000000000000000000000000000000000000..60ad2d53017896c347035e8d6c85841bba558a95 GIT binary patch literal 3186 zcmZ?wbhEHb6lV}**v!rF{{8z$j~;#c^y%r-r$2xGynXxj{rmS%pFaKa<;!#D&K*B~ z{Li013`junKX-(0fPzb6Ng|N8v9BmdOwLX%QAkQn&&;z`dcS+Wl0s&Rtx~wDuYqrY zb81GWM^#a3aFt(3a#eP+Wr~u$9hXgoRYh(=ZfZ%QLPc&)Ua?h$tx{r2ep0FxkPQ;n zS5g2gDap1~as){zfb4Y6FG^J~(KFIB(oHrnGgdG))-yIWGBYyKQ7|$vu+TR!*EcrM zHMFoYFtsuOB2#6Ujsl~}fnFS@8`FRQ;GZT~YOG|8(lz{RIP{UJ_ z;bs?<7Uh6VPD$2J%}LEo%_}L^H`FuKM^+CEiJ;8%jFMuww!C6JaA@cy=jZBIBo+X* z80Z&))j)K@wOIKk7G@=_(1{>FDA=SVTR}_$b0MB` z%qfBJAl#fxkWZ{~67$k+l`3>oQqvMkb4rx-p*r+I{)TC>(ML7V24Q_@abkLENNQ1T zF}1A1Wws62Nk~xxv=AZ&jB;RV(}yQFs5hZ0gH{wcG0@6zn7N~tz(Rs3dNjC*3MQDM z(cprG1X1*8a1j+uFh!%m1q%tH=+WRJDwtr3@C6qaqQRP)2W&T$1Dm6a|Ns5{^ZVD& zAK$-y{qp(K#}Dt{y?yig)yo&ppFMr@_|d}$_wU`kbNklK8`rO0y>j`|#S7=pojr5< z)X5Xaj~zX7_|U-v`}ghLvwPRh9ox5U-LiSp#trM&tzENv)yfsimn~hgc+tWI^XJW- zGkey|8PlgtoicgS#0mXjScm6wKdgMl@;Y>r6t8hg$4O}xjETc znHlM6sVT`xi3#y>u`$t6krClxp&`LRfdT%0zCPYwo*wRQt}f0_jt=&Awl>yQmKNq_ zrY6Qlh6eh2x;olgni}eAsw&D#iVE^_vNFLTu55C-@o1^WhbgDyw=gg~>6zP{%24eXe(Am8LBVo2p&qHloeT`t02tP$ A1poj5 literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_select_hover.gif b/platforma/static/filebrowser/img/filebrowser_icon_select_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..319558e9e216fe26b188aa4bf18498800e8ad3cd GIT binary patch literal 264 zcmV+j0r&n#Nk%w1VHW@q0K@PyiHV7|wY7qRf}EV3m6ercWo3qjhF@P_zP`S_y}i7=yu-u8y1Kf+z`(-7!n?b> zzrVk^xw*l?!FG0bA^8LV00000EC2ui02cre000GrARv8YX`ZGe9#`wW@Oz9}ZQpoK zdVKHyz#VWnBxR1sq;g5(IG@f314?x^osfjnATU&^B#KyopbP{9v3jj0Ro)XsU=n!S z?{|`AKXK6afPsP}8-)`S3IzoXg^iAlgoP1@hYOFF8zdN;oSmMZBpsroq@|`G5(K8J OrUWV@D6uChApkpD3V6-{ literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_show.gif b/platforma/static/filebrowser/img/filebrowser_icon_show.gif new file mode 100644 index 0000000000000000000000000000000000000000..dded982483f505f834dd3d934926cfd4549295bf GIT binary patch literal 427 zcmV;c0aX4+Nk%w1VHyAy0M$PLroz?G-{@SCw4lDzbfLe&)Zt*1w&UyYwanaEkF#5l zw9ehhSd5=zpvBha%_Hjc!Yd?Wq*K+c7=yc3myy%4;wp9 zf{Q2u4FwAsEi*QQeR~H#Faj)ODjy*eiHkoX4Q>zy1+k@tKMXl;H60f}0H=#L3vUu6 zLIcKg4<&9cJs3|!Nk%^dI23IT0$Z{_F*6zvDL*<61_=n`P8BZ(AQCbHCkYDg@INC3 VD@XvKfj~h54*ldrun-{#06T(R*Bk%< literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_show_hover.gif b/platforma/static/filebrowser/img/filebrowser_icon_show_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..fbd1f33e8a87edd697b4604202f8e8117a109c19 GIT binary patch literal 426 zcmV;b0agA-Nk%w1VHyAy0M$GI&(F`Kq@=U6v!0%wadB~2SXfn6Rn5)Km6es^;^M%- zz+7BhYHDi4#KdJ~Wv{QVczAe{l9E?fSAl_n;NakiiHV1Yhu+@ad3kxFqN2{u&h+&3 z`1tr+TU%OMT8M~+5}eeV?D7VPRqE>FMt7?q_Fbii(Ps zmX`YZ`c_s}>gwvk!oq%je)IG5@$vDov9V-iWNvP5(b3VDmzQ>ScFD=f`}_L<00000 z00000A^8LW002AyEC2ui02%-m000KZKpr5FD;kf;TmZmpHUR^IZc43Mb%X)a8IWGT zRYJhY%Yo0-99d0nyVvlyJlby@3bCbyJPt8#E*1zp0jG;72X6=w zLIcKg3^i^WIvGzyNk%*aH!y7t1vs)!BP1pi96U1(3kCw?P8S#p9|#ZyF9s6t@H{jM UEg~!tAi;o#esTnK5D)|aJ402uh5!Hn literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_showversions.gif b/platforma/static/filebrowser/img/filebrowser_icon_showversions.gif new file mode 100644 index 0000000000000000000000000000000000000000..71525d74bd7c4e2a50d12872b1e29409f5b9cd12 GIT binary patch literal 174 zcmZ?wbhEHb6lV}**v!eW>*D`^A`SjY8H}5`woxShU`qQ^}UwqKB<;o^WBJn3x7 NdFp8TK@~v;YXE+{MRfoG literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_icon_showversions_hover.gif b/platforma/static/filebrowser/img/filebrowser_icon_showversions_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..1fbe2e49b7e7649cfcbfe2153ddc48ee189766f9 GIT binary patch literal 174 zcmZ?wbhEHb6lV}**v!eWW5+Z^fq|1j2P6YBgMlU5K$WRyuSK+jibRk`-$Mo#)wjd6 zd*q-a)xUr4lLy>}!VV8N|LoD59loNd<7rlNWR}ny(fXx#Uwu1a_Rr_gI*x-2PdZz2 No;sR-P(_fz8URj!LtFp= literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_object-tools_icon_imagegenerator.gif b/platforma/static/filebrowser/img/filebrowser_object-tools_icon_imagegenerator.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b19a420dcbc9249fa59c134357c0a02e0b60a19 GIT binary patch literal 433 zcmZ?wbhEHb6lV}*xT?r7Ve^@5kKc4}IMuxRSoP9F+t1xwbl}R8LsuWX`dGi>$ib_R zRvo>OJ7-V%;sf*cUP_p}?ev}Jr3?3OJaxNv`QfzbJM-u6?b~#E($=%BYmOH$*f(S6 zg~}xdr))d->f_h1KYpz_esj*Ai~s-sXP_BS{K>+|z@W&W1F`|+CkD222PPD71oHHs zcyj!Lr;F8m|01nF1x5^ht;$Q~7Bf$%u<593W$T;atgymS>VoB!lMPqo_&FF(DV!7F ztYMLJl4Ggn6lhgsQ>=7imCkB$?vRmYWt3**ncY(&S}o-y#Z=3|C?~$@|H7s&Y zaxB%Hyse6?ij_`m(pfFe9Wv5v4AKmIvwKR!s->Ky7;8BgT5}4=KJ2PzQ7ITz4r2MrH=sRlw^Vxhu literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_object-tools_icon_makedirectory.gif b/platforma/static/filebrowser/img/filebrowser_object-tools_icon_makedirectory.gif new file mode 100644 index 0000000000000000000000000000000000000000..bcd98d910e41a0b900208c4a13c63dc75fc87851 GIT binary patch literal 390 zcmZ?wbhEHb6lV}*xT?mm_tL}W)yIk#9!QwH?cmi%v-Vuxboy?`x)WQ^+}(BQ(e`uq z7aq8}{?wgyC+|Fa_hrHUD?fk#nYH`khSPT&R~>C%dt%bov&9SdAHM$d(DkPWu0B3^ z?a7fF&yL=FK5hHCeU~5ZyYguNmB+_#zdU~X#j#t@tCt>{v*+Uf|Nj}N2NZv@FfuTx zG3bDd1o?@9ZLx#!LKht&&SguAR_Zv;Q0pkH@{wB*@j}$`WySsnAGRAgPT*R&rRr>) zxQEKb8o%|oA1>ZgcmDlkCQg~A=4K|QmKIJ%RUzrV{{FTJ6NFrN#AnPD7ZYPDef!u{8MqaWpE!ByBsT*Czx>5Z gm#-L?ycLW*u7z>^}efErz&ym3z0O~%ZoB#j- literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_object-tools_icon_makedirectory_hover.gif b/platforma/static/filebrowser/img/filebrowser_object-tools_icon_makedirectory_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..f9938c77358bf75c2a62bd116feb463f9daefc6a GIT binary patch literal 378 zcmZ?wbhEHb6lV}*xT?Ugd-v|ut5?Uw#1s@1G&D5KojZ5arcK+nZTs=#M@vh~mMvS> ztXVT}-n+7qlt7~p<&d<+3c<|u9eftg^I526_q{D{~mzS6C z-@kwF-o1PF>^XGk(9D@L|NsBbKue(blZBCiL4iRBWC_Sm3~bXKE6A z>@4!!;@v$x&Aq+cE{xJsr%8*5Ffq-XK9zCuys0y1&z-kGo=a@?nl&@muH|y!mD##& w+sy6TdF2^+b{#k5x1M_t)xUZ3xd*F{-6&ghaP!&w z#S8YWIdN<4iCde_-YZ_XzjV=omNmyZH=N3tv8#K-se@M^@4xcs`0W=b?!4T0`QiSn zk5Aowz4!9N!`Gi4x$*4i&F6=%KRI^m#mT#`s+S&OpaD?)$pSW22SkGW#K5-U0As3) zj#R%}*Mtq3R`V~YCu&R*aS5MTc6zUviqfJN29_#2GIE=0IQk7FTooAB-+oxkI;W!0 zfr(ALskud*jZuJ4+(ogsuYbZs7x^hur%j*XA~$=^+v*Q|9B z<>hB!6WzLPyC@q2Kd-2ZloSsG!-1p64jkq=;3CGvz{D+f>GBmZ?sH6HE|P*AlJ_JZ eK6-qQLr_v#ghl4f+jsBZ1v`0s@$hnFum%9vK$rLc literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_object-tools_icon_makethumb_hover.gif b/platforma/static/filebrowser/img/filebrowser_object-tools_icon_makethumb_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..b9aba7cc3bbadfb69d72df995022021186aa67a9 GIT binary patch literal 284 zcmZ?wbhEHb6lV}*IKsfNa^=d<(9mbko~>B1V%@rR1qB5S4GsDE`FVMHEiEmDg@vnD zt?KCLSigRKQc_ZKa`KTQNA~U8w`b3uLx&C>IB?+L!GpVZ@7}w2@8QFTj~+d`fB*jS z@^S_wp!kyo%+mppAUhdYXD&F9lae`4O*ty^^}Y|;y^)tv%KzN+oiuU6vBe7;B>Fu% zoNhEsFpxO(m~m~?!eFK^o*Fhx*9#s5UYMlzVoTLowa|MXcGUPSy7B(Uo_R}N{{G+4 zSku_jq9Vx6&c`U&+t)A1$j8nts3I=Tz{fXZ?z|bZ8D>nM#lSIt1;7{ literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_object-tools_icon_multipleupload.gif b/platforma/static/filebrowser/img/filebrowser_object-tools_icon_multipleupload.gif new file mode 100644 index 0000000000000000000000000000000000000000..6de016befe3eafe2d573b19f7b19d6b259f8fb23 GIT binary patch literal 387 zcmZ?wbhEHb6lM@)xT?c&{PxR=B?lW<9XoO7<<3iwD;6JYTz%~5jVDd3k8M47fBX4| zyDmMRv*+U0^AA=XyVbDjX!Gi04J(hXIev4;#YgokkM6keaOt6I8_(Q7dG}S*>f;^j zPc1ogb>HQO$8WzlaP{%NE06YHd3^BNlVi7@AG-eZ=*{PqOAb{pJ#_Eoha)$hegFCU z@b#xtww?R`|33q{K=CIFBLjmD5CQ?nPYi4e9HteV@LKD$TBOj^Buj6mN^z!(jsbT| zNmPs^N3+4f4NKRt2scF83QlQtb6o1YzFaF$wdQL;$G?UKF8&}lL0*;4u5J}xL1`T! z5l)S%)22`36cJM6)0)3v;UYdY0oCQK%BxndW?il-prfwNuBy0w#|~BY%`WPyat99` tQdRfauW<6zsiVgkk$au_Kol#8Y)@>QFE5ST!j~+kfadBj@1^~Uqr<(u( literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_object-tools_icon_multipleupload_hover.gif b/platforma/static/filebrowser/img/filebrowser_object-tools_icon_multipleupload_hover.gif new file mode 100644 index 0000000000000000000000000000000000000000..eaaf2542003b69acbbe664dbd9bbf14620caf03b GIT binary patch literal 263 zcmV+i0r>t$Nk%w1VG{rm0K^;sva+(Xv$LY2qQu0+rKP2`w6w9Yv2k&6u&}V1nVEoq zfU2shsi~=de}BWn!@j=0!NI|IcX!?0-N3-WkdTmidV2Qu_Po5j!otFIbacJFy}!S| z|Ns900000000000A^8LW000~SEC2ui022Ta000GqASaHTMMacFuB6#8Rm!erRSZR} z&Lvd^j$lAHs{w;TV#^1>IG-4RvR7$Bp;B4R0O@+a5JN@4SyT{{w0f;ZR2C7!W=^l$ z2@yqRf3VjNdl?EG5)uO$4~dG383TnR5*Zqkl$03~ERmI)mzfzCprN6iE0F@Cp#r2U N2@$TZuL&d}06R7Tan}F< literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_type_.gif b/platforma/static/filebrowser/img/filebrowser_type_.gif new file mode 100644 index 0000000000000000000000000000000000000000..6a908e27a004f5d80984c2e4d151482cc81274fb GIT binary patch literal 113 zcmZ?wbhEHb6lV}*Sj58c>C>mXckdoKa%A`J-T(jpXMh34pDc_F3@i*fAOVnC24*u3 zqdWinRyeHM`=f2@?)12d#zh`wz7eZ{KPoLhsd-ueN6W_jl`}FD4kt0WT@813Y|9=K-K=CIF zBLf2mgAPa%WCjC^?}i!9tM^{>Xx#Pxfx1s(W>DI%g{w~039V?&XFs!nv7xk~dD4Mb w8Xo#{orCut|epYrk;LYdB+hQ*3>*~ZwTBJ@)Ys!o_5oE9i0Lf=Sh5!Hn literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_type_document.gif b/platforma/static/filebrowser/img/filebrowser_type_document.gif new file mode 100644 index 0000000000000000000000000000000000000000..65ebd99bcd39b33cd649d9a35666ce3db9d1b83b GIT binary patch literal 118 zcmZ?wbhEHb6lV}*Sj5Wk>C>mXckdoKa%A`J-Pf*N`~Uwx0~jd&WMO1rU}ew&@jz-B zn5{XC?)>vx5wL3SkG841)8i@{MHA;`WKB#uvCLo>-`XF?KE~`W={&qE_W8HTp%I4y T^(}=0W=!p6a%%MuVz34PP{A>O literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_type_folder.gif b/platforma/static/filebrowser/img/filebrowser_type_folder.gif new file mode 100644 index 0000000000000000000000000000000000000000..115e3fbd1d46b7d4f784333bf80a94eec5bd0b13 GIT binary patch literal 228 zcmZ?wbhEHb6lV}*I3mn&^XAQ~SFi5hzyHXQBU`s_J%9fEhYue%Y}oMo_wNfAF05a_ ze&fcCYuB#5bm`K80|z#5-hAlLp;fC^J$Ufo|Ns9CL;%H~EQ|~c!VEefwIDkgSQ8(x zIHY(o1+QAC)v`f2>0G+k0gD>-Gmrltc#tpX>B2B+Nzus|CZ&nXO1S1mO&4VSWW}n% z!uxKEB18Am6!#xzaxAXA`L6MM!p823O4qDuI`>5b~Z%@YXF`N BTWSCR literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_type_image.gif b/platforma/static/filebrowser/img/filebrowser_type_image.gif new file mode 100644 index 0000000000000000000000000000000000000000..000b31c120da8912e9b55d8c0dc9d4e167c0383e GIT binary patch literal 127 zcmZ?wbhEHb6lV}*Sj5Wk>C>mXckdoKa^%{zYrA*v{{R0!0~jd&WMO1rU}ew&@jz-B zm|ZxW?)>vx5wL3SkG841)2}M@rD%pF7*^bkTB29Ib3@NXmyGin>)wgY;rmhjGs!wp caD~gQS<7CmaDOAfGG$fj;)V*vNh}Q303xzBCIA2c literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_type_sound.gif b/platforma/static/filebrowser/img/filebrowser_type_sound.gif new file mode 100644 index 0000000000000000000000000000000000000000..8a8970ab039660d6211c4ac19f43ab0262461a66 GIT binary patch literal 223 zcmZ?wbhEHb6lV}*I3mDs_wL<~A3uKm`t{SNPq%K}`t#?{nKNe|K79D($&(8gE?m2I z?fLWPmoHyFa^%R#lP7oY-u?goe+E*3;!hSv1_l8J9grrFoeZoo4=&iGWX?-dW(s({ z?*n&FVeaIze~-3qkl|`ye5_lt#pBW8XC49qjfrbGidkZUB)+B|)tY&|`2#mI2XoVt ml1Nc5E_bG%M+;6UvL5VRdph@b6t7N$p|O%ihlZ9SgEat3M_AVY literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/filebrowser_type_video.gif b/platforma/static/filebrowser/img/filebrowser_type_video.gif new file mode 100644 index 0000000000000000000000000000000000000000..f456d59b889aca17cf669b83a8d569dedd51dbac GIT binary patch literal 147 zcmV;E0Brw9Nk%w1VHW@q0HOx~^78WC-QC2*#Omtm_4W0;ySvub*8l(iA^8LW000L7 zEC2ui02cre000A62vXesPN;CIz4(TeyJwXlj$|oT;9;oj>bC5Wnly_v~ewN@&$E)~&x17c3L`s*_=HZ!)s%kawYYck{LtvWM!$t`xZO=vlsY4_Q06V0Y BMb-cS literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/tableheader_arrow_down.gif b/platforma/static/filebrowser/img/tableheader_arrow_down.gif new file mode 100644 index 0000000000000000000000000000000000000000..5ae95a6063d0fec875a6475346f8768096dbbeae GIT binary patch literal 292 zcmZ?wbhEHb6lY*%xXQrr|NsBLfB*jZ`|tbD-`{@x{{H>@r>{R>z5n{=&6_8$K0SN( z?Ara;M=w1-bpGM)Q}?zWy?x-ofwlXu@7}$8$&Sm5wq07V_2T?37iVrbH)Zwd<;#~Z zS+b;i$??_&N1Epyo;Gb-<+Od>-Q5|T+fv)N)Ya7$78Vv16y)XQWo2chrKK@Y11SDv zVPppyqysVx6Dmd*Ib|mZ2@8fcX{?uad+fx(VzT_9X0b1qhFD7K iBoWS?@&3-Y({3o1D>SOWkC18<=K literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/tableheader_arrow_up.gif b/platforma/static/filebrowser/img/tableheader_arrow_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..85f1e12690c4fc2b4f2919490a49b0244c29e0e5 GIT binary patch literal 292 zcmZ?wbhEHb6lY*%xXQrr|NsBLfB*jZ`}aE#{P^|t`>&5*zQ26?`OTX*&z?Pd^!)wJ zn>P=gy|eGst?fsy9XN1cC+Ryq58x*K+1w|nc0${N;ZZ@*2Q~5 mwwykocGWj^nyj01u!FYhioEY%0<;`dJj=M%s;V>{8LR>Ea(Ai# literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/img/tableheader_arrows.gif b/platforma/static/filebrowser/img/tableheader_arrows.gif new file mode 100644 index 0000000000000000000000000000000000000000..39b8780cc12959337ee2fa5bab4885310c6b48d4 GIT binary patch literal 296 zcmZ?wbhEHb6lY*%xXQrr|Ns9#fB*gY`}h0L-`{@x{{G|F*YCeRef|0I%lB9BzrK9? z`N^wKkDkB3cK`L!OOFqoe|YHZoqeZn?LKvH>(SfWk6hch|ML2Mm)7pTzH-O8<=f9L z*>QQ%wo41PUYx(>;`|LKXKpw*XWj8xYmd!bb8O1$)03AU>RxiZchUaV1xK3a9d4Pu zt8Uu1%4z#*rfeKXM1I3>#jO;+wIv^b&KQXYm9tb<;v?U>l ztD$IR%z_xsRM*e|B_EMx+n!X^a4;}>Ea9o#a{9os#ZNM(X?nDzIB2UcZ~SC1NkdY{ Sz_W~3TU@w9SX|$c!5RR}h>&0a literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/js/.svn/all-wcprops b/platforma/static/filebrowser/js/.svn/all-wcprops new file mode 100644 index 00000000..201d6872 --- /dev/null +++ b/platforma/static/filebrowser/js/.svn/all-wcprops @@ -0,0 +1,41 @@ +K 25 +svn:wc:ra_dav:version-url +V 73 +/svn/!svn/ver/466/branches/filebrowser_3/filebrowser/media/filebrowser/js +END +FB_CKEditor.js +K 25 +svn:wc:ra_dav:version-url +V 88 +/svn/!svn/ver/452/branches/filebrowser_3/filebrowser/media/filebrowser/js/FB_CKEditor.js +END +FB_FileBrowseField.js +K 25 +svn:wc:ra_dav:version-url +V 95 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/js/FB_FileBrowseField.js +END +AddFileBrowser.js +K 25 +svn:wc:ra_dav:version-url +V 91 +/svn/!svn/ver/466/branches/filebrowser_3/filebrowser/media/filebrowser/js/AddFileBrowser.js +END +FB_TinyMCE.js +K 25 +svn:wc:ra_dav:version-url +V 87 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/js/FB_TinyMCE.js +END +jquery-1.3.2.min.js +K 25 +svn:wc:ra_dav:version-url +V 93 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/js/jquery-1.3.2.min.js +END +TinyMCEAdmin.js +K 25 +svn:wc:ra_dav:version-url +V 89 +/svn/!svn/ver/403/branches/filebrowser_3/filebrowser/media/filebrowser/js/TinyMCEAdmin.js +END diff --git a/platforma/static/filebrowser/js/.svn/entries b/platforma/static/filebrowser/js/.svn/entries new file mode 100644 index 00000000..9e9096ed --- /dev/null +++ b/platforma/static/filebrowser/js/.svn/entries @@ -0,0 +1,232 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/js +http://django-filebrowser.googlecode.com/svn + + + +2009-10-29T16:15:59.524671Z +466 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +FB_CKEditor.js +file + + + + +2009-11-05T20:58:50.000000Z +fa50cfae580047a009a2b86506210d9f +2009-10-11T14:09:32.302815Z +452 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +652 + +FB_FileBrowseField.js +file + + + + +2009-11-05T20:58:50.000000Z +6b093d924826e1d737086801bda89074 +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1234 + +AddFileBrowser.js +file + + + + +2009-11-05T20:58:50.000000Z +89c9b75dae80816eafa85a1397583b23 +2009-10-29T16:15:59.524671Z +466 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +1094 + +FB_TinyMCE.js +file + + + + +2009-11-05T20:58:50.000000Z +645e7326e1e8be17ce619cdf61731cea +2009-07-18T08:34:28.114642Z +403 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +942 + +jquery-1.3.2.min.js +file + + + + +2009-11-05T20:58:50.000000Z +bb381e2d19d8eace86b34d20759491a5 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +57254 + +TinyMCEAdmin.js +file + + + + +2009-11-05T20:58:50.000000Z +fb5327084cd3bde1cdf2421ffd619259 +2009-07-18T08:34:28.114642Z +403 +sehmaschine + + + + + + + + + + + + + + + + + + + + + +2487 + diff --git a/platforma/static/filebrowser/js/.svn/prop-base/FB_FileBrowseField.js.svn-base b/platforma/static/filebrowser/js/.svn/prop-base/FB_FileBrowseField.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/js/.svn/prop-base/FB_FileBrowseField.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/js/.svn/prop-base/FB_TinyMCE.js.svn-base b/platforma/static/filebrowser/js/.svn/prop-base/FB_TinyMCE.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/js/.svn/prop-base/FB_TinyMCE.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/js/.svn/text-base/AddFileBrowser.js.svn-base b/platforma/static/filebrowser/js/.svn/text-base/AddFileBrowser.js.svn-base new file mode 100644 index 00000000..3a994423 --- /dev/null +++ b/platforma/static/filebrowser/js/.svn/text-base/AddFileBrowser.js.svn-base @@ -0,0 +1,30 @@ +var FileBrowser = { + // this is set automatically + admin_media_prefix: '', + // change this + thumb_prefix: 'thumb_', + no_thumb: 'filebrowser/img/no_thumb.gif', + + init: function() { + // Deduce admin_media_prefix by looking at the + + + + + + +
+ +

Cancel All Uploads

+ + diff --git a/platforma/static/filebrowser/uploadify/example/_notes/.svn/all-wcprops b/platforma/static/filebrowser/uploadify/example/_notes/.svn/all-wcprops new file mode 100644 index 00000000..c0552a6d --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/_notes/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 95 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/_notes +END +dwsync.xml +K 25 +svn:wc:ra_dav:version-url +V 106 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/_notes/dwsync.xml +END diff --git a/platforma/static/filebrowser/uploadify/example/_notes/.svn/entries b/platforma/static/filebrowser/uploadify/example/_notes/.svn/entries new file mode 100644 index 00000000..dd272fcd --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/_notes/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/_notes +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +dwsync.xml +file + + + + +2009-11-05T20:58:51.000000Z +1d0d08a0a610122fd7ca380a077cd91c +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +317 + diff --git a/platforma/static/filebrowser/uploadify/example/_notes/.svn/prop-base/dwsync.xml.svn-base b/platforma/static/filebrowser/uploadify/example/_notes/.svn/prop-base/dwsync.xml.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/_notes/.svn/prop-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/_notes/.svn/text-base/dwsync.xml.svn-base b/platforma/static/filebrowser/uploadify/example/_notes/.svn/text-base/dwsync.xml.svn-base new file mode 100644 index 00000000..36ecaa56 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/_notes/.svn/text-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/_notes/dwsync.xml b/platforma/static/filebrowser/uploadify/example/_notes/dwsync.xml new file mode 100755 index 00000000..36ecaa56 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/_notes/dwsync.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/cancel.png b/platforma/static/filebrowser/uploadify/example/cancel.png new file mode 100755 index 0000000000000000000000000000000000000000..1c062ae5df6ecfe8185ae68fe4d02bb37144d96d GIT binary patch literal 603 zcmV-h0;K(kP)Y=w}sr7c>T3k2kAzTeqVW6hI{EH5Ko zzfVqZ!x=#Pqbx|tH%4`qcU-?j9-N==aqga;;``=i6}ifwkTku4e9iw~UhsB_O@c|b zL5fc*!x643G%T(;tdGs6I^J-GGGLOWz{V3c_2nx@`3B;&|D2y!`gp5_&m4fL?3=*G z<5_QHJq^3%JHJ|8MYq$b?4Nj6v;<#4`Lhn z63jtgpOaBGezHV5e?=nWXey=TNKZM!6F-dpaFyXThDW5`_Am1t8PSvUAY+n$A>Fc^ p>d9(@iy|*2MI=Pe93XoYU;r)AluaN;{!jn_002ovPDHLkV1nHJ3!MM} literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/uploadify/example/css/.svn/all-wcprops b/platforma/static/filebrowser/uploadify/example/css/.svn/all-wcprops new file mode 100644 index 00000000..8e3e0323 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/.svn/all-wcprops @@ -0,0 +1,17 @@ +K 25 +svn:wc:ra_dav:version-url +V 92 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css +END +uploadify.css +K 25 +svn:wc:ra_dav:version-url +V 106 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/uploadify.css +END +default.css +K 25 +svn:wc:ra_dav:version-url +V 104 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/default.css +END diff --git a/platforma/static/filebrowser/uploadify/example/css/.svn/entries b/platforma/static/filebrowser/uploadify/example/css/.svn/entries new file mode 100644 index 00000000..2bba155a --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/.svn/entries @@ -0,0 +1,99 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +uploadify.css +file + + + + +2009-11-05T20:58:51.000000Z +edec394bac0dc3cf3a17da3837abd642 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1792 + +_notes +dir + +default.css +file + + + + +2009-11-05T20:58:51.000000Z +0ad07a2134f8f26293cd2b5420b2d6f7 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +177 + diff --git a/platforma/static/filebrowser/uploadify/example/css/.svn/prop-base/default.css.svn-base b/platforma/static/filebrowser/uploadify/example/css/.svn/prop-base/default.css.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/.svn/prop-base/default.css.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/css/.svn/prop-base/uploadify.css.svn-base b/platforma/static/filebrowser/uploadify/example/css/.svn/prop-base/uploadify.css.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/.svn/prop-base/uploadify.css.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/css/.svn/text-base/default.css.svn-base b/platforma/static/filebrowser/uploadify/example/css/.svn/text-base/default.css.svn-base new file mode 100644 index 00000000..ec5902d4 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/.svn/text-base/default.css.svn-base @@ -0,0 +1,10 @@ +body { + font: 12px/16px Arial, Helvetica, sans-serif; +} +#fileQueue { + width: 400px; + height: 300px; + overflow: auto; + border: 1px solid #E5E5E5; + margin-bottom: 10px; +} \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/css/.svn/text-base/uploadify.css.svn-base b/platforma/static/filebrowser/uploadify/example/css/.svn/text-base/uploadify.css.svn-base new file mode 100644 index 00000000..0cf8c0ea --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/.svn/text-base/uploadify.css.svn-base @@ -0,0 +1,53 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +.uploadifyQueueItem { + font: 11px Verdana, Geneva, sans-serif; + border: 2px solid #E5E5E5; + background-color: #F5F5F5; + margin-top: 5px; + padding: 10px; + width: 350px; +} +.uploadifyError { + border: 2px solid #FBCBBC !important; + background-color: #FDE5DD !important; +} +.uploadifyQueueItem .cancel { + float: right; +} +.uploadifyProgress { + background-color: #FFFFFF; + border-top: 1px solid #808080; + border-left: 1px solid #808080; + border-right: 1px solid #C5C5C5; + border-bottom: 1px solid #C5C5C5; + margin-top: 10px; + width: 100%; +} +.uploadifyProgressBar { + background-color: #0099FF; + width: 1px; + height: 3px; +} \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/all-wcprops b/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/all-wcprops new file mode 100644 index 00000000..98471dc6 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 99 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/_notes +END +dwsync.xml +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/_notes/dwsync.xml +END diff --git a/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/entries b/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/entries new file mode 100644 index 00000000..e3cddb41 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/css/_notes +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +dwsync.xml +file + + + + +2009-11-05T20:58:51.000000Z +5290468e614f6b7a8ec013b682853d43 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +322 + diff --git a/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/prop-base/dwsync.xml.svn-base b/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/prop-base/dwsync.xml.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/prop-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/text-base/dwsync.xml.svn-base b/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/text-base/dwsync.xml.svn-base new file mode 100644 index 00000000..049ffa59 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/_notes/.svn/text-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/css/_notes/dwsync.xml b/platforma/static/filebrowser/uploadify/example/css/_notes/dwsync.xml new file mode 100755 index 00000000..049ffa59 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/_notes/dwsync.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/css/default.css b/platforma/static/filebrowser/uploadify/example/css/default.css new file mode 100755 index 00000000..ec5902d4 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/default.css @@ -0,0 +1,10 @@ +body { + font: 12px/16px Arial, Helvetica, sans-serif; +} +#fileQueue { + width: 400px; + height: 300px; + overflow: auto; + border: 1px solid #E5E5E5; + margin-bottom: 10px; +} \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/css/uploadify.css b/platforma/static/filebrowser/uploadify/example/css/uploadify.css new file mode 100755 index 00000000..0cf8c0ea --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/css/uploadify.css @@ -0,0 +1,53 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ +.uploadifyQueueItem { + font: 11px Verdana, Geneva, sans-serif; + border: 2px solid #E5E5E5; + background-color: #F5F5F5; + margin-top: 5px; + padding: 10px; + width: 350px; +} +.uploadifyError { + border: 2px solid #FBCBBC !important; + background-color: #FDE5DD !important; +} +.uploadifyQueueItem .cancel { + float: right; +} +.uploadifyProgress { + background-color: #FFFFFF; + border-top: 1px solid #808080; + border-left: 1px solid #808080; + border-right: 1px solid #C5C5C5; + border-bottom: 1px solid #C5C5C5; + margin-top: 10px; + width: 100%; +} +.uploadifyProgressBar { + background-color: #0099FF; + width: 1px; + height: 3px; +} \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/index.php b/platforma/static/filebrowser/uploadify/example/index.php new file mode 100755 index 00000000..769d11c6 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/index.php @@ -0,0 +1,31 @@ + + + + +Uploadify Example Script + + + + + + + + + +
+ +

Cancel All Uploads

+ + diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/all-wcprops b/platforma/static/filebrowser/uploadify/example/scripts/.svn/all-wcprops new file mode 100644 index 00000000..ebb7812f --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/all-wcprops @@ -0,0 +1,47 @@ +K 25 +svn:wc:ra_dav:version-url +V 96 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts +END +swfobject.js +K 25 +svn:wc:ra_dav:version-url +V 109 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/swfobject.js +END +uploadify.php +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/uploadify.php +END +check.php +K 25 +svn:wc:ra_dav:version-url +V 106 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/check.php +END +uploadify.swf +K 25 +svn:wc:ra_dav:version-url +V 110 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/uploadify.swf +END +jquery.uploadify.v2.1.0.min.js +K 25 +svn:wc:ra_dav:version-url +V 127 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js +END +jquery-1.3.2.min.js +K 25 +svn:wc:ra_dav:version-url +V 116 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/jquery-1.3.2.min.js +END +expressInstall.swf +K 25 +svn:wc:ra_dav:version-url +V 115 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/expressInstall.swf +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/entries b/platforma/static/filebrowser/uploadify/example/scripts/.svn/entries new file mode 100644 index 00000000..df5485f6 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/entries @@ -0,0 +1,269 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +swfobject.js +file + + + + +2009-11-05T20:58:51.000000Z +892a543f3abb54e8ec1ada55be3b0649 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +10220 + +uploadify.php +file + + + + +2009-11-05T20:58:51.000000Z +18002e871847e9e3ae656a35d5e24cbe +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1932 + +check.php +file + + + + +2009-11-05T20:58:51.000000Z +c409eb2cfd793515f98f0781fea3ef15 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1404 + +_notes +dir + +uploadify.swf +file + + + + +2009-11-05T20:58:51.000000Z +ed069be276d587e0b24cedc3d3a48738 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +23119 + +jquery.uploadify.v2.1.0.min.js +file + + + + +2009-11-05T20:58:51.000000Z +4f1ceab5d5c04168fbef69362742bc6c +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +7563 + +jquery-1.3.2.min.js +file + + + + +2009-11-05T20:58:51.000000Z +bb381e2d19d8eace86b34d20759491a5 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +57254 + +expressInstall.swf +file + + + + +2009-11-05T20:58:51.000000Z +7b65fbfaec8b2955090389af60646e8b +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +727 + diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/check.php.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/check.php.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/check.php.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/expressInstall.swf.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/expressInstall.swf.svn-base new file mode 100644 index 00000000..dbc918b0 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/expressInstall.swf.svn-base @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery-1.3.2.min.js.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery-1.3.2.min.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery-1.3.2.min.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/jquery.uploadify.v2.1.0.min.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/swfobject.js.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/swfobject.js.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/swfobject.js.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.php.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.php.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.php.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.swf.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.swf.svn-base new file mode 100644 index 00000000..dbc918b0 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/prop-base/uploadify.swf.svn-base @@ -0,0 +1,9 @@ +K 14 +svn:executable +V 1 +* +K 13 +svn:mime-type +V 24 +application/octet-stream +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/check.php.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/check.php.svn-base new file mode 100644 index 00000000..d7dc5717 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/check.php.svn-base @@ -0,0 +1,35 @@ + $value) { + if ($key != 'folder') { + if (file_exists($_SERVER['DOCUMENT_ROOT'] . $_POST['folder'] . '/' . $value)) { + $fileArray[$key] = $value; + } + } +} +echo json_encode($fileArray); +?> \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/expressInstall.swf.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/expressInstall.swf.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..0fbf8fca961e6319d84442248f6ba314797dccec GIT binary patch literal 727 zcmV;|0x11MS5pQv1pokeoP|?OPuoBc9Xq5k1WKTQ`wM9VaMwSB_o5%t)!o>)g&X)EAYjgEPLcl5K%kkuIK}@4lZ{BkGMYAU20z( zNRb@8AZ~RNT{i-oQ>63S3q@bamddC&V#&}IBHXmBea0RPhMY!G_6yWA-{&u00bI?EPCUrE(n7GhyT+_4sC3vIfO8o*Hw?~a z;QV28jGXsc=C?Kce^ve?K|~w@>bMSCq>Q(O#T42y^Mv*pwUSN?9aMQms*Ld$rD0~q zQhI{Tv*fb=mqG|Gjsr39Bp7Dejr)q)1J&t=YBY?2Llv85=!N{vRx3=YEoRTjX+)n# zs)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base new file mode 100644 index 00000000..04592ffe --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/jquery.uploadify.v2.1.0.min.js.svn-base @@ -0,0 +1,26 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery){(function(a){a.extend(a.fn,{uploadify:function(b){a(this).each(function(){settings=a.extend({id:a(this).attr("id"),uploader:"uploadify.swf",script:"uploadify.php",expressInstall:null,folder:"",height:30,width:110,cancelImg:"cancel.png",wmode:"opaque",scriptAccess:"sameDomain",fileDataName:"Filedata",method:"POST",queueSizeLimit:999,simUploadLimit:1,queueID:false,displayData:"percentage",onInit:function(){},onSelect:function(){},onQueueFull:function(){},onCheck:function(){},onCancel:function(){},onError:function(){},onProgress:function(){},onComplete:function(){},onAllComplete:function(){}},b);var e=location.pathname;e=e.split("/");e.pop();e=e.join("/")+"/";var f={};f.uploadifyID=settings.id;f.pagepath=e;if(settings.buttonImg){f.buttonImg=escape(settings.buttonImg)}if(settings.buttonText){f.buttonText=escape(settings.buttonText)}if(settings.rollover){f.rollover=true}f.script=settings.script;f.folder=escape(settings.folder);if(settings.scriptData){var g="";for(var d in settings.scriptData){g+="&"+d+"="+settings.scriptData[d]}f.scriptData=escape(g.substr(1))}f.width=settings.width;f.height=settings.height;f.wmode=settings.wmode;f.method=settings.method;f.queueSizeLimit=settings.queueSizeLimit;f.simUploadLimit=settings.simUploadLimit;if(settings.hideButton){f.hideButton=true}if(settings.fileDesc){f.fileDesc=settings.fileDesc}if(settings.fileExt){f.fileExt=settings.fileExt}if(settings.multi){f.multi=true}if(settings.auto){f.auto=true}if(settings.sizeLimit){f.sizeLimit=settings.sizeLimit}if(settings.checkScript){f.checkScript=settings.checkScript}if(settings.fileDataName){f.fileDataName=settings.fileDataName}if(settings.queueID){f.queueID=settings.queueID}if(settings.onInit()!==false){a(this).css("display","none");a(this).after('
');swfobject.embedSWF(settings.uploader,settings.id+"Uploader",settings.width,settings.height,"9.0.24",settings.expressInstall,f,{quality:"high",wmode:settings.wmode,allowScriptAccess:settings.scriptAccess});if(settings.queueID==false){a("#"+a(this).attr("id")+"Uploader").after('
')}}if(typeof(settings.onOpen)=="function"){a(this).bind("uploadifyOpen",settings.onOpen)}a(this).bind("uploadifySelect",{action:settings.onSelect,queueID:settings.queueID},function(j,h,i){if(j.data.action(j,h,i)!==false){var k=Math.round(i.size/1024*100)*0.01;var l="KB";if(k>1000){k=Math.round(k*0.001*100)*0.01;l="MB"}var m=k.toString().split(".");if(m.length>1){k=m[0]+"."+m[1].substr(0,2)}else{k=m[0]}if(i.name.length>20){fileName=i.name.substr(0,20)+"..."}else{fileName=i.name}queue="#"+a(this).attr("id")+"Queue";if(j.data.queueID){queue="#"+j.data.queueID}a(queue).append('
'+fileName+" ("+k+l+')
')}});if(typeof(settings.onSelectOnce)=="function"){a(this).bind("uploadifySelectOnce",settings.onSelectOnce)}a(this).bind("uploadifyQueueFull",{action:settings.onQueueFull},function(h,i){if(h.data.action(h,i)!==false){alert("The queue is full. The max size is "+i+".")}});a(this).bind("uploadifyCheckExist",{action:settings.onCheck},function(m,l,k,j,o){var i=new Object();i=k;i.folder=e+j;if(o){for(var h in k){var n=h}}a.post(l,i,function(r){for(var p in r){if(m.data.action(m,l,k,j,o)!==false){var q=confirm("Do you want to replace the file "+r[p]+"?");if(!q){document.getElementById(a(m.target).attr("id")+"Uploader").cancelFileUpload(p,true,true)}}}if(o){document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(n,true)}else{document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(null,true)}},"json")});a(this).bind("uploadifyCancel",{action:settings.onCancel},function(l,h,k,m,j){if(l.data.action(l,h,k,m,j)!==false){var i=(j==true)?0:250;a("#"+a(this).attr("id")+h).fadeOut(i,function(){a(this).remove()})}});if(typeof(settings.onClearQueue)=="function"){a(this).bind("uploadifyClearQueue",settings.onClearQueue)}var c=[];a(this).bind("uploadifyError",{action:settings.onError},function(l,h,k,j){if(l.data.action(l,h,k,j)!==false){var i=new Array(h,k,j);c.push(i);a("#"+a(this).attr("id")+h+" .percentage").text(" - "+j.type+" Error");a("#"+a(this).attr("id")+h).addClass("uploadifyError")}});a(this).bind("uploadifyProgress",{action:settings.onProgress,toDisplay:settings.displayData},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr("id")+h+"ProgressBar").css("width",k.percentage+"%");if(j.data.toDisplay=="percentage"){displayData=" - "+k.percentage+"%"}if(j.data.toDisplay=="speed"){displayData=" - "+k.speed+"KB/s"}if(j.data.toDisplay==null){displayData=" "}a("#"+a(this).attr("id")+h+" .percentage").text(displayData)}});a(this).bind("uploadifyComplete",{action:settings.onComplete},function(k,h,j,i,l){if(k.data.action(k,h,j,unescape(i),l)!==false){a("#"+a(this).attr("id")+h+" .percentage").text(" - Completed");a("#"+a(this).attr("id")+h).fadeOut(250,function(){a(this).remove()})}});if(typeof(settings.onAllComplete)=="function"){a(this).bind("uploadifyAllComplete",{action:settings.onAllComplete},function(h,i){if(h.data.action(h,i)!==false){c=[]}})}})},uploadifySettings:function(f,j,c){var g=false;a(this).each(function(){if(f=="scriptData"&&j!=null){if(c){var i=j}else{var i=a.extend(settings.scriptData,j)}var l="";for(var k in i){l+="&"+k+"="+escape(i[k])}j=l.substr(1)}g=document.getElementById(a(this).attr("id")+"Uploader").updateSettings(f,j)});if(j==null){if(f=="scriptData"){var b=unescape(g).split("&");var e=new Object();for(var d=0;d + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/uploadify.swf.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/.svn/text-base/uploadify.swf.svn-base new file mode 100644 index 0000000000000000000000000000000000000000..4d27952f553db773e2c298e4a84ec8ab83a5db01 GIT binary patch literal 23119 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 literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/all-wcprops b/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/all-wcprops new file mode 100644 index 00000000..d8daf491 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/all-wcprops @@ -0,0 +1,11 @@ +K 25 +svn:wc:ra_dav:version-url +V 103 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/_notes +END +dwsync.xml +K 25 +svn:wc:ra_dav:version-url +V 114 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/_notes/dwsync.xml +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/entries b/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/entries new file mode 100644 index 00000000..89f38db6 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/entries @@ -0,0 +1,62 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/scripts/_notes +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + +dwsync.xml +file + + + + +2009-11-05T20:58:51.000000Z +a095283fba302c68c7f695198d29f450 +2009-10-12T09:29:29.900685Z +459 +sehmaschine +has-props + + + + + + + + + + + + + + + + + + + + +1007 + diff --git a/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/prop-base/dwsync.xml.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/prop-base/dwsync.xml.svn-base new file mode 100644 index 00000000..869ac71c --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/prop-base/dwsync.xml.svn-base @@ -0,0 +1,5 @@ +K 14 +svn:executable +V 1 +* +END diff --git a/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/text-base/dwsync.xml.svn-base b/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/text-base/dwsync.xml.svn-base new file mode 100644 index 00000000..13ca0434 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/_notes/.svn/text-base/dwsync.xml.svn-base @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/scripts/_notes/dwsync.xml b/platforma/static/filebrowser/uploadify/example/scripts/_notes/dwsync.xml new file mode 100755 index 00000000..13ca0434 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/_notes/dwsync.xml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/scripts/check.php b/platforma/static/filebrowser/uploadify/example/scripts/check.php new file mode 100755 index 00000000..d7dc5717 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/check.php @@ -0,0 +1,35 @@ + $value) { + if ($key != 'folder') { + if (file_exists($_SERVER['DOCUMENT_ROOT'] . $_POST['folder'] . '/' . $value)) { + $fileArray[$key] = $value; + } + } +} +echo json_encode($fileArray); +?> \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/scripts/expressInstall.swf b/platforma/static/filebrowser/uploadify/example/scripts/expressInstall.swf new file mode 100755 index 0000000000000000000000000000000000000000..0fbf8fca961e6319d84442248f6ba314797dccec GIT binary patch literal 727 zcmV;|0x11MS5pQv1pokeoP|?OPuoBc9Xq5k1WKTQ`wM9VaMwSB_o5%t)!o>)g&X)EAYjgEPLcl5K%kkuIK}@4lZ{BkGMYAU20z( zNRb@8AZ~RNT{i-oQ>63S3q@bamddC&V#&}IBHXmBea0RPhMY!G_6yWA-{&u00bI?EPCUrE(n7GhyT+_4sC3vIfO8o*Hw?~a z;QV28jGXsc=C?Kce^ve?K|~w@>bMSCq>Q(O#T42y^Mv*pwUSN?9aMQms*Ld$rD0~q zQhI{Tv*fb=mqG|Gjsr39Bp7Dejr)q)1J&t=YBY?2Llv85=!N{vRx3=YEoRTjX+)n# zs)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js b/platforma/static/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js new file mode 100755 index 00000000..04592ffe --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/scripts/jquery.uploadify.v2.1.0.min.js @@ -0,0 +1,26 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery){(function(a){a.extend(a.fn,{uploadify:function(b){a(this).each(function(){settings=a.extend({id:a(this).attr("id"),uploader:"uploadify.swf",script:"uploadify.php",expressInstall:null,folder:"",height:30,width:110,cancelImg:"cancel.png",wmode:"opaque",scriptAccess:"sameDomain",fileDataName:"Filedata",method:"POST",queueSizeLimit:999,simUploadLimit:1,queueID:false,displayData:"percentage",onInit:function(){},onSelect:function(){},onQueueFull:function(){},onCheck:function(){},onCancel:function(){},onError:function(){},onProgress:function(){},onComplete:function(){},onAllComplete:function(){}},b);var e=location.pathname;e=e.split("/");e.pop();e=e.join("/")+"/";var f={};f.uploadifyID=settings.id;f.pagepath=e;if(settings.buttonImg){f.buttonImg=escape(settings.buttonImg)}if(settings.buttonText){f.buttonText=escape(settings.buttonText)}if(settings.rollover){f.rollover=true}f.script=settings.script;f.folder=escape(settings.folder);if(settings.scriptData){var g="";for(var d in settings.scriptData){g+="&"+d+"="+settings.scriptData[d]}f.scriptData=escape(g.substr(1))}f.width=settings.width;f.height=settings.height;f.wmode=settings.wmode;f.method=settings.method;f.queueSizeLimit=settings.queueSizeLimit;f.simUploadLimit=settings.simUploadLimit;if(settings.hideButton){f.hideButton=true}if(settings.fileDesc){f.fileDesc=settings.fileDesc}if(settings.fileExt){f.fileExt=settings.fileExt}if(settings.multi){f.multi=true}if(settings.auto){f.auto=true}if(settings.sizeLimit){f.sizeLimit=settings.sizeLimit}if(settings.checkScript){f.checkScript=settings.checkScript}if(settings.fileDataName){f.fileDataName=settings.fileDataName}if(settings.queueID){f.queueID=settings.queueID}if(settings.onInit()!==false){a(this).css("display","none");a(this).after('
');swfobject.embedSWF(settings.uploader,settings.id+"Uploader",settings.width,settings.height,"9.0.24",settings.expressInstall,f,{quality:"high",wmode:settings.wmode,allowScriptAccess:settings.scriptAccess});if(settings.queueID==false){a("#"+a(this).attr("id")+"Uploader").after('
')}}if(typeof(settings.onOpen)=="function"){a(this).bind("uploadifyOpen",settings.onOpen)}a(this).bind("uploadifySelect",{action:settings.onSelect,queueID:settings.queueID},function(j,h,i){if(j.data.action(j,h,i)!==false){var k=Math.round(i.size/1024*100)*0.01;var l="KB";if(k>1000){k=Math.round(k*0.001*100)*0.01;l="MB"}var m=k.toString().split(".");if(m.length>1){k=m[0]+"."+m[1].substr(0,2)}else{k=m[0]}if(i.name.length>20){fileName=i.name.substr(0,20)+"..."}else{fileName=i.name}queue="#"+a(this).attr("id")+"Queue";if(j.data.queueID){queue="#"+j.data.queueID}a(queue).append('
'+fileName+" ("+k+l+')
')}});if(typeof(settings.onSelectOnce)=="function"){a(this).bind("uploadifySelectOnce",settings.onSelectOnce)}a(this).bind("uploadifyQueueFull",{action:settings.onQueueFull},function(h,i){if(h.data.action(h,i)!==false){alert("The queue is full. The max size is "+i+".")}});a(this).bind("uploadifyCheckExist",{action:settings.onCheck},function(m,l,k,j,o){var i=new Object();i=k;i.folder=e+j;if(o){for(var h in k){var n=h}}a.post(l,i,function(r){for(var p in r){if(m.data.action(m,l,k,j,o)!==false){var q=confirm("Do you want to replace the file "+r[p]+"?");if(!q){document.getElementById(a(m.target).attr("id")+"Uploader").cancelFileUpload(p,true,true)}}}if(o){document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(n,true)}else{document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(null,true)}},"json")});a(this).bind("uploadifyCancel",{action:settings.onCancel},function(l,h,k,m,j){if(l.data.action(l,h,k,m,j)!==false){var i=(j==true)?0:250;a("#"+a(this).attr("id")+h).fadeOut(i,function(){a(this).remove()})}});if(typeof(settings.onClearQueue)=="function"){a(this).bind("uploadifyClearQueue",settings.onClearQueue)}var c=[];a(this).bind("uploadifyError",{action:settings.onError},function(l,h,k,j){if(l.data.action(l,h,k,j)!==false){var i=new Array(h,k,j);c.push(i);a("#"+a(this).attr("id")+h+" .percentage").text(" - "+j.type+" Error");a("#"+a(this).attr("id")+h).addClass("uploadifyError")}});a(this).bind("uploadifyProgress",{action:settings.onProgress,toDisplay:settings.displayData},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr("id")+h+"ProgressBar").css("width",k.percentage+"%");if(j.data.toDisplay=="percentage"){displayData=" - "+k.percentage+"%"}if(j.data.toDisplay=="speed"){displayData=" - "+k.speed+"KB/s"}if(j.data.toDisplay==null){displayData=" "}a("#"+a(this).attr("id")+h+" .percentage").text(displayData)}});a(this).bind("uploadifyComplete",{action:settings.onComplete},function(k,h,j,i,l){if(k.data.action(k,h,j,unescape(i),l)!==false){a("#"+a(this).attr("id")+h+" .percentage").text(" - Completed");a("#"+a(this).attr("id")+h).fadeOut(250,function(){a(this).remove()})}});if(typeof(settings.onAllComplete)=="function"){a(this).bind("uploadifyAllComplete",{action:settings.onAllComplete},function(h,i){if(h.data.action(h,i)!==false){c=[]}})}})},uploadifySettings:function(f,j,c){var g=false;a(this).each(function(){if(f=="scriptData"&&j!=null){if(c){var i=j}else{var i=a.extend(settings.scriptData,j)}var l="";for(var k in i){l+="&"+k+"="+escape(i[k])}j=l.substr(1)}g=document.getElementById(a(this).attr("id")+"Uploader").updateSettings(f,j)});if(j==null){if(f=="scriptData"){var b=unescape(g).split("&");var e=new Object();for(var d=0;d + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/example/scripts/uploadify.swf b/platforma/static/filebrowser/uploadify/example/scripts/uploadify.swf new file mode 100755 index 0000000000000000000000000000000000000000..4d27952f553db773e2c298e4a84ec8ab83a5db01 GIT binary patch literal 23119 zcmV(#K;*weS5pape*ge@oZP$zR8v{kFnn%E2nih$Km-j{5_(fWL0V{1Q$VFifB>N- zCIJC;CZZ@}0|W&uLoWdl7*Vi{*b&jOfQoHU(LvN18;&~8_?;UN^?7E!@ALluTJN{k z7uffnd(J-l?z7K6yPSKIWT0*X5DNeh1bD0K006$%?2!XtfiNM_h2iZ($xctp5V^oB zSHonnSm0u9y<)`*s}=TEd|{Hct+TVUwT+#%ot-7buoUHFh&kDo86qP?H;RmcH&+xd z$rQ{DLqyu_UUsPh+0$^z?u zk=}nM&xH7CaSAepX|g#=h_~jZanrdOVi6RntxTi|@h*vcVLC_b#t{h8c<~&RpmnyT zD48Fhx`LC%wM<0CyTJMj;{R8c;K+i4{_9CjPyam6K|zq5ke9_x@DcLUW#j}Lp@_@M z5pZ1%8C(%RQy9-RwElw4kIzJh=I`wWE36WD2`)}{PWE%>Ioo-9IQe+fZEcQ}fRdi8&eZ+$n0j{{gkHx_+h>BIG6Upich(;PD?w{Np@W zPpwur3h=^w`t<2ISrM*e1Tf>d8C;4j0LMYFtRi`8xg%=pIxI9!6qK7tFd!y6=99O# zH&7!tm8)-cSG#=P!5YlB=9>auYvq`{-l2Q$HrD=1SHOI=?S?=nVZ9DUugMsE(l|C3 z01Q}%DEsoo$((dbATKFd420k@7z65vE3zLsfmw?^j=PSVC7&qYDL*VPkJrId@eA?h z3jPYO6?PG>5VjF7Dn3=*t9(!8Zxt8SNY&Mx8EY)oplM=A+en88{{Ws zwpPB@9<57SZ?s0W1v*(X8Z4U^Uaq-)ecOd*+{KaRXb2Jb2Otsr5;duBC$*Xy#Y!+!UExz6sr zX!ni)Jy@>M|8Vp748J9J!or9zj-5Ilz32IP#rcIa19y1GiwCo>)UW#P^z-x7pxxb% zlgIUFPLJ18XX)60sPrX+KuzljHLNRuIYbZ69V+`#%#1$dtungToPc@tm&PMnjl0>o zQ<#?7N(w;To=pdGV?GY08W#;m_cN9%dP~1b;sw&@38?&GG`+zf*43fzZ4)i?9xwq_T*r&Z}ZjiG7}p+z22*g$I3?KQM;dNQW^wI!oJ$(%3CgOIX{!D z%>6031r(?8qU47XWQ8M(0cObevPsWyu6)({xqY94;%o!28;1ds_@^7j7EjhtphTWA z-O7^%65Iu=>Q(2}3tiT^Y&E0wdmmH++B3t?P%wj8N;sc=NaSFqR=vI_cQCZVxDJHP z2BhUZbOm0t;v?;n_w8<_Z)@R7nA<{g$HbBFAM%?2_S;F*ICFlLL(?*)_1)kEBAij= z8+sooK92T$Ut&bcRLIl|^(ft#rUR_z?kjZ1H9gZIZdr;s)HH4x;Ii&QQ?;GHAEjo0$F8P6_q_}Z)5BR3>}fOA2^{ldu@%c?Q^`AC=ub101xOy|t&zJK zwb31OFFhb*?!AGV#N8LyI-6uQZVB&2g1gcffGT<1%G%O@lV`&<-HsRsH3tL_FLDQr zRtYB9q_ob{JF$pvn*2%m4B787LxL8t}584iujqlHYX+2g_o3WwGe?n+ohmB3N0 zbR7G%N1@`kgRdpQn-09KD_l5YAy%7v$v(;3dCRUmw6Yco)s zxrI8OV_14&!-w77d6vb74fizqV}T8-)BU@0In7oQ@M&&Mo&4~_b;nibbw_ux>NL*g z>XVm@iQU24rBW&&nyogH`sUd<`IKy5$J2~`TyLw2>w_d>B0WEtq-orTWSA zyE=7Wauuzsrm#L1G?)OwzAozSnYqI;{@{N`&XKqN4Fk&wf8aEo9+xbg$ z4tvSR$EjuXtZb_tM^w9Fj;K}voN7405lNvR$fcow`WIO3Tu>*4bn0%>wGNz4?ye~} zZLKM{0l1as0GHi0yp}jIoR_*F`A9`u3t8IKoBtD?%BYjoqq(_Qn6ejsPb z6HVscVuxh&JIfUmAo9rzi{8IrU#Opbl(zLrH)>Y47(jpFgZhiZ&|kocCuE9N&TQYi zwRP1heztFR>fY#uwU=CTGn>g0aPQFJ9TPd43G177+3Bz?A5^m-m5%3;WPsb2$vwm# z+HtpIiE>b3(Un)v*;^yeXGswD5Rms$E3=!SvczX1ynp76aASJ(;%&WP_tI7=z&;>* zf7is;pzPVIQTpt@o}p>e!-D0SKn{z$L`5dpOn|$UUKX*sYsOz|hLYZ5M2>OnfuRCG z%5RCQ0<~-ETBPes+BVxGG@AhxZ_B;SnsckeC7Al902^pLUaYV~N#Uc^#^~dW`UOpi zr7wWipX@SsaOh5V(~$5%ZBq5$?7bTvtvG##eM{pE6Ud`NdRSKf$I8Kx%-wI_bpJMx zUMsW@iBQ(pzW>y^8@BQpf>q5Id1T9z0+YhwfW>WRUfp9Xv$ByM8!S}311uj=FpYfk zoZye$!$wZb68rq7M}xPm{9^%*9SC$J;p{ks75^Y#v|Ib|_I-h>^_S~DL}SnFrY@Rs zLMRLfzhRZti`i)dbT}6EYc!0-8>l`Ce)X2b0LEFMY{aHh5TPia9AXtZ!+_2#A>kHB zlwLQ)^J$7vCKz`#X2Z$w#{ZsHImJ+Nrx|3Ey&upkX+PP;rS` zvHLIusQ5qmIVaMZ+Q7`YPsUs5yzwFT|Fqzi-o8xh7qgu6Y!{Uq^uPGP*smH^8C65W*CLR(wdQ`^gS~7mh3zP*A?SzBqUtkG#>A8L3GU z(#qo9r7`XxR)QL?#N5pKHh|mGMUB{%{VA3f(x7B86jx%qSOVqV;RkAW<(^?4wy1x1 zhIQ{5FKpf;ho?CK?nqz}APIIc{Wo^Kb1S{~@X4W4-2AZl07sS96oFHO&eFOaW_5wt zRId%qE7Zm#40KW@a3x)IgDVLxLz-yFmgySa|2)|3+^x=!%zf?JYHforrNa+QGMAZ@ z^&*)|57GeP;0&p_DY5z8Pu9YkcRwX~4v!Z-Od<6FTHpw9_2{nueddP6r<{k@^8&kT zOCGv1t?UP}fE@h-B-pAj4T>H2=9Z;Zk7qGD**A#?a7tG^(-Hg7F4I&sgNynBdRO{i zmoQqpuL%I@*a)~+h_f84qOHpe*z4=VD`F&80FZ;aLDko;j{Tx*QLX;BD%*D%6(_go z<=4D{qd{%d%KDG1t$T&NA>MU&TJ7&8`TU@-b@$nY)5lTS4pii-*N+2v%M;CUcRWKi=s5saipsV{_tqG5Ut9j!fx$az7Z>)J*#Ei3AE2_;d?#WqT>t2-J?l=q zHTvWCLd%e^HegnkX5=LXs^1pv( zRc(Ibx8KCL^En_sM?EEX?psXFn53%TWjC%?dd{h#QTXH|pzf7m8kK1&y?wp({sLR! z;o0L^FaHLFAJHXF*Ek*IZ|GG(ImP&Xv)x`@mUK<`PtZ6iR@liIw(I~(bDsxr4&H0f zE~(_K{L#_0(LSsfne7OJCJXT4Xz4b^KA!D_>Gs*i&*=f)g8{WA%#}S^lwp>)7Ea%u zS^MKW-Q%QJi|zo6aJUk%-S%vk?T+DOAEo*bPU6L*&1tu*uK;3HFGxEbw`0Jo^yPRx zYqpnzlxiQ)2OPGrNfPYyvqfbKim}NL9qD=(y@@y{$*vfW`hcdH8`btRwimvvb7EC` zty`e>$mod*z#*sv@7vprHriWCW7jn|`U$l(Xze!_SuLInjRul}@750h-1&BDWF(ca ztT5CEV=#29#5NM(;)eFX05g)-!R#{Uj-DvJ_sr6B9^GLPe{#x5V^z%HjR&)G zuB>W4Rax0S&!iVff0xMV9qufD)MC!d9~-9XRY{P52+Lpr>%Ze)z(RRsb%Cigi{CE z&2Rjgujb9#@zjOitGywuqkgQIS&wzKye|F)U6D<0wexPt?R$Ce_lNwbCx`d*d9g?y^uG?%Gfb5*3wqtfa`1YJJVGnY<&0Ey72SFVtZqN*(%fS2;J_% zmx|RTc8{EmtQNN!1Qm{4yA0Tg?nnWa6X@>CTr)1J-H}@>I5HYOR9I}kxS|SBR|Dh+ z5^>4PxxRjtr3D)Zoww?$ECINP=3TSGYnGD6O}hAM^tmsw!I<>G5!0*gb}K%_Nu14- zzW*)|jgiL2kJ#~+0wg4*pViR1@J33hde%m+OWiJJ72@3tw3xeNX?A18^1V$BbDHd} z8s&wHHUnyt1k<6JlFG3-u28w_&W5>+(Z*QIDsY1aaAwwdmz#c4=C>##H z*XoW*WC87Dhw^6sx=sE4tqiHTCgW#T*T9<_&;b>IS=E+aW1*G`CW<9`8>lRU{;=e# zObwd+;|aNQKX|H*v|LkH0P?y;;EpOXQ1?Rb>)?p=mFFms8MfE<3bmLqajAxoLfT&9iXmYP5{w8x0Brj>t>jcw$u4Gh!_O1p2bPlC z?b+eI7lXm1Q+`@B*Jt%hpX08-Z!D3w#>XK!!+o#yw!I#%-k=Qq%P)FGfp3mI`9*Kr zfw9B;6W1FJpt|AUrj;TBz}sTHS;f8y(4K~$aYvTi@TeR5t)=cp8^GsR-!pg5Hmg$H z`(Z=e4hul`^{i)!)(+J+yDoLw5H0mP19M7Quhhj?>W1Qdw)|nELPxP(dIB?gR8}>10*DZ z(`LpFh2`B2rMuSpd8iK=JL^oD#rqDzTaCV!#M9q5x8SeR)W$nPeJs1df;rNOZST+# zrGnKdRk2{-mb23CgReE(3tIzDT8_354;^lkVAgb{u>gtURhAj1$-Z(s*2Fh`O~30w zHr3~zjQ}uS068TRsr>}2aU+)&y36>Xe}K0`LHQ?9wUS+d)J@VT6=>xi+EufQdsKQZ zyrD6R&t=H$NIQSKIUonQ+T-Oq)$eUfxJBL0sE-ssy@54&# zYjrC#jQwC13RtHA*miph!zKNJL5#2C=GNx!zLSG`{b?@;T5z<=-Jx^9PYnV^zotnW zc`-M8N%IPTSUBa?9eyC^H$dBBWV69;jHY*?3J~9-3Gd=ZpqZwWH2^K-c3o~>fs15)kZ*(P)*RKufcj}~FQ&y8l2XBUsC=M}QN`^|vjeQ8Y< zSf+d{Z2XXiZ@beATJOW&#s@ai8imRzAa`=;_r;%3RYU2l)_f*B7P6@Do;fy`qVXtq z@6JDuhD+Y~+4fJkn%~Vm_i-BUFp9S`#(Yio!sz~q1r)|hZfeb&WAT5Z)3rvjI;E@^ zv<4lOcFet?-5%GPd}6Csi?n-b2f(bCO;@>F*~ZXM;RaWh4f)a~g|3}tW^aFnaVp~u zz}!+L?L)A8Hsn*=R~ywd2iTbR`P~;a59GCWU%AkCKV|=-{DyWwYomZ8_y3l@!vE>A zWxREKo(jXSu*V}*1vzh(CGV_tuy*bE)o^4Bb_df~~Raji$$l`V?O!m>h)G}f${GMN*g`c`lqvBpm_6SctgE&=uajkcK$6=EENFE`vUuO6s`JBNhwoP^%v{V-P6^C9mQmwZ1f1_Rq1yCcwc#jO$wo!PtIMeNFDk&Vl z7YzVI%N-sc^ZcFFJp?ez#V4*a8}zwN{)2ZCHhLGFaS#;4NIdTgmqVsW2QtGix@cV+ zco7(#lSp{eR#@`dw=VPUsLg$q8wTQ-ovq*ZeuZDXp++S*qWMYck?RXbrs`qN-FaET z&vi%Eu@ikCk40h7UK1g?Sw)6v%$3)=zI#2CpJa@kT%%JR4h(I!aZRccF8nzH?B2fi zZo&C;ds~+~Q|3(GZfyNedr}xM1W{3HCU@KPcc#?R&Lbxe6>cEjmSBEFRfD|o?2hvh zx{+C_2}4Wvm1ukPvZD?m;R3*p1c+Gf342JjA$4Z{lGe04tBT3XU-<(}MM`HAAoYnf zgw+H7Mzpypo15;aOTL%-RR7JSfD=gWEXizkkQxX-JIIcl=~`H>A8rym2MN!N!Y%1V z{Ll=8=tLUO&Rie;IdVu;lvg8{+QYT1FqRBA58tM|gx@jD|Mn z?Y=@7DL7pnrafGgaWSp3#j(?K%!$~tV}y1I5L;q_m1H&TaP^yu@d9WccWo;%Y;*Ic z0H$R)8%~BwTrkUdqcPX#Vp!SCJR8*szrlt52|$Npo%GjuKx?wig>2pNHic9v1<)!f z(5N>_56)dlwsC0<=nclSj&~D(lwgWvRzl!G-WY}rH@FS0#1cs%_s1dXjzN2Oz&h^^ z8oWCg6`Ja|XP5ad{(kMp2Da*}3V`{=uVx1|6jp*yz7M8 zA}EEQ_Xo_VKM8Oz&o;+K6>Gv&Y<-mJ_1uy*DFFLMw#CSO!aWmFyi=_m%+eBNcjk=j zcwwzpKl}BG?10ifp!#AN&7HH#tfsK;6D7}EN;QTVh|NWqf#3=4T8{InF;NNXL6;X^ zdsoF=xbeU$wHQY3vf7%qqjxwyiFLm#W-o|vn4Xf0HPA9J0H$%CuC(M%%G++Mlve`A z_F}tWJ5rq&WtV~pwO}=E&5VG(YJn2K=mVIhM}y73`DHtp%!%|=TlCUjK%ScoF6R zgx&~grb%wAsRb?|?YOd$m~nOP>oGvK=>b@0@_wCuD1NKb?NSt?=BL!KFOx%pBW4_ zsx3Sns89B56}y8ol`xl976n>L#V0R!Zuqc^lxKWJr^R$#;rq#4`q6~R*eZ+cNBMgT zf9{EC%-=R^pOTC9qU$lJ$bPm%E=rF{Ft40Xwp{&HY5bD(#}=2KfQPh4=6QgqHu2NO z%lY@3w9ElULImOC{UF>s2Vm+vft=uJO62;3L1ni}ha-t~7ENrM0$_go`iD85+PPKU zO+ZJpv?QR7;Xm-kj`-u{K5M^3>CrWn(956;dE~y)-?p+F?X$K6Z+&u?`+AzMyb*XGrsFGrv2|T}?}I5R zs$~1U!^yAFJ+X@pK962A2aBT#&mY+~P>(hkxZLnuo+EWWXl<_VOuxd3Nh6hSznHJ| zn|SdbWjl<7Xdgdj*B@0HFSR`@a+pu`)f|F-t;RpjfBID568<{k}w;nz~O zKAXjUy%K%O_UWZ;=k;n-0=o11NAkFA=XIm_>1=G_G0x5G$bA=F7m%;N_e_4#)UqQN z-EQ7iJCdU}XFE-8VC=|m6Q|4O%(|P?#U^TRV0qG<%-1;S&Ek)4pCdV`Dxh7#bj} zkXTh|@(5_qdr+BqVc+A#hKGsiwn@#`v_hvAL^<1nZNlg^epVl_xIf6KgmKmB+DAY( zYzH&I0!ANJj_^^K{i6&2mfiCa#c zC{_UGUN%7Cqwjc8F##Yqk1oj=&EI3kqmTB4ZlaS6uP7Rk?#JoJ<=4**Wry|39Qeh1 zliP52JDa0#hiOLkhdG`#(1g6k*jJzFaw{rYF(>Hqq0&XMOz(r(0YDn) zMHUva9Vqon*X;@FT%^mXWHvzmwOSY5x#~M$KfcJz&HubcX?wBuiGcbwq=sY|ght&D zoz42$9f@>4+ip3&BMO~gy(438Is|*kS6r{*r2Fe z8N1)8cvXY5cHdO=J8%@4kUo;gDfbwbr}jZQ8DUsoW|c<&1abO=9c7 zh&g52njA+YS+%RTpnRbzSec&>1k(uko>=_d#VLupq4+nS$2HNaroFcwn zC!6b;^W+)B?Qw;*yN4dcH3*#i^tMZTJ-r*MWTs%C5YA8~kjL$7UZy*25lLfYc3NuM zm0Yn0SQXT#uhor zMiomW2nP*a6p1r8tJK|br&k9zFD0v=OAd(2T9+xo?9c(Es=oRFWn;C7W)EEURXv)n zFCifJD7Soc^{lpv9?H4&o~EWBo-DuKXr-TeC!+Z{F1J^imfC)2@6@K|-UGwDciY!~ z$4JR`G(Ef1b2m>+JKNgOk<#~0wq4k&nUbnL_e6nkx6TH~&fgj%t$r`Ku|U5;#x(mc zAa5-ivR&!QlyZW+8<$k#*#kFifEE{hPSV3!b&|Gd)R0jsEOYhMGi5a0clKA5VCn*) zrPd9ITvHc(p``R?53%-M6I(SKXaoo_HXyVdnc4C1>Ps%=<+!%VOMl@qg$e>=W6^`N z27@gpZB7B4|85{(e}>g%!K#tYam?OD-K{Ld7^bv4ZEWhE)Vl{+mdUwhUOODb)*CFa zO~9!8v29JQ!@!xPfT$mf2vyCZ)}G1Edz4w~dz(#v5Ehob-3Ez%AprnqDg0^cIRjzO z*1lhI>upBY&N_GiRfsepPo@xunmN0wZDYn6XWm({DoY*(0_-Yut8iPT%XVgM)1#*2 zq~WJ`UFVhA|0zZl0-P*s}wesg9=>Tsl?Joj%h>Tlx^;X`2c~tK{ zf1w5~!oVT{-JBWdobfU`4InwKBO?E6OMg6~^`6oT(2(ZtaccCP87j*P!{%a4N)1cW zJpoqdNi~r+N6N^c_WKucavzW*m%IXh$)y6p2 z3l1xz56>-nK}RJ$s%lZY=-B0km<$^~`~JWSG2+D$yCy71zjNpytMSJY zrQ9=>GTvn9Ee#o;xxIhe9OZUVP3Y>t^IZhbHJNV`2`zb2NDyl*%jr-LVA%PZ=jW3%;YMZb@L!SeE8Ri(uw&mSwP<7 z!O=O!IumVzuSV3*SXb+{uAQuxbp}noCxD!i8L9nb+6E01vkHB+$Cmy&alOd(?2hMC zY?np-w=_7y+LPHK4axMlFf|5%-W&@3P(5F0LD`wx7CW({b2L}xy;-nX6A-R zp?7AFfH?=Hg%ZTIhw`!cyy~lRixgho(XI4X<)h0Cp|QyY#NkWSeY+2TOri15)?6t6 zuun7lnl_y!vooaFol9k^Ri?h!a`5tQ(vjSAeq(1-_R0 zfx;_;CmWf8G*iDdLqZ=6z~!ghYyuW$88$B4mm^yFF7?SQU;S$8@>}ZH0da9GV5~JP zGjk~Nh^fbtANmQJczPz(@#j5!q$A1{2YgL4Usj1!i>1Ew5SLn3(*sh-+dxYBol^sv(_DB`1`-O%}TT|y&eHcTN$ zB$$yNVaw)61KroHcrF6Q4HC1}l5`~Q@&|zPi-K|VvB7;UcYq@P;$u{^ysd?RrO$G$O^E)?3(oQ%3?=&!K)P0uSpmM&lp#EGGO< z{_KByC!@;Q@SQC5`(tC5b=3|VW0OmNI27{M)5;@jDk=`uPd0=+2bAjyV8l`m)TZ zW}S1qujjk03)hO@WF4^Y=)cnz-{}}*X~F^ugMMrC1A?7`V?pRCK>UN_dF-ask`?By zHHp@ZNXo|ErTG%sj^Bk<$V7t{AUtWO?%hRu71^ILboL%oy61|E1j~B4+Z@Kl?fId= zF05@R}Ht7`k5J;)tauqEoNng*Vy}TNcBtBF>hGFEDX&cgSvl7TH3ZU+ZQH*uIk#t z+WpzJ>iO9&Px|k>T15-*psx{)F>v)M(u`OAzpZPCNPfoqj(WCSu_Yp9B`ytUu5C!A z0<8<@D9!2>2f^;i14?nRxBE0x|}_ak%Nt;&L+F7?XBuoE^7K^D#AJ5skINjbo4V3;Jh2SX1QOl%RatnN^Kt6OyFG zI=K=|)05Z$cR3}cg36-4jfF2O>-Nv6&kmBB8_e}Lu=w>Z37wt?X)wdqo6{eSC^z$MMyaIpjK5?e$ja0y0{un zXMj!`Z~U&Aa&iy7LTcLI z!aPE|eS}%Qd0!dr@&?_a9>(CN`vVIHcb`_Hm9h=j1OR!{NQ|spI|T zy0gcZ*C>>o>2Gb*?r%{0ZS~cI=<`{>h~Xx`wx-0MliMA4YpQ{2LqPT<=4WqSN=VVl zTM}So7OG(E1geEV+2U|<&w0FK=i}D=`skz3Puh_l#~W|~PU{5{&L3n&*4uW41*WqP zKB2EU9^;N936Pz-tXCdA=QUQiY`li-QJ?1!+crrw8?Be52)Qd6)g>Pyd~1zv~lDU zGrI8YD=XITCr61ID-2C1pR8A-I&_~Z?cjwiE!dDe?q|C7Pp#UL=i>8?p0(or`4nU% zsg4tz>wTqa|MJrm%K!B3y#E0sF^r`JTnc8UPHLC``Xj;dVapfH9#8FvxkvBc^Db(Q zXYi=^?3G{Q28GdW6%J#pjItMXV1d$`&D5X$Djmqb zIjzI~kA|mhve+U2E4stebRR>yt#39qe@*w{$ri2a{hq(a zdfJ{m`?Jx!{P$SZ!#PNCMzG)eQTYI0*kgZR?Yv|8$cziR^P7PBo=?sOTSpR#&aDI( z`yCD|LSl{P|8;fqoo%m=-_>@!>-vNEkx2g;@<;GU0^j%hOY>?EOWdCHKc0V+`P-fo zIz4TEggfe`iRjZLZe)JLA3zBXYKwhgXH89OQ|H)+z00>raK8<8xFg66^?LczH5IE;gsBnt*n-7}zzpQ&4n&B*w`wIy0`y&wLNj_3Gdr@|kPql4I;&%PxIs{a<_?JZ~lb zNxq62=;01pR~Xv*hHeNugPq~G zqadp;G%d69j@w$TQd_8CS8TZ!;Lf7KXqWz4B&@|fd_tez>>FB}2G}U_7rVjucgr@Z9epQw9`x2A>bsfTG$~5g$25o4-eL5M3a~K1W7n_65 z-X7kCFe}=VjM10iZUX9c^u<6My`jS5o=9a=rMj!J#v8k+{gfXFTa{---j3;Z@; zRj9i-`+j##vtEBFFt-e6NpM@vmQE}v4&a{pD>%wS>qRj$Z6ntPj>;y)3RE@h0g5?Y z)b86W?PF=8xk{sDxArw2tnpdmBrrf!*IXUnnrVr$I|EwrD_iE1un`{ab99bollq z#Kr2`trD|Ok{+Vpr{)HLd6*uM{`fz5&Hj0FfVb>5`~3jpZBknI;J<&({-Af^u58(B z_NaMPh#0=xo@4L%W^3xm#EK^SlSf*fJdPUk7=K-n{{-EFFC<6AjDOg0D0i*b{K|JH z?**Rqe3-Y^_}8Mh0z+^oKLIoR`N$?wT#zhpOZ&Ic|?S_&w@02l%zU<^!vDVPJy z02R=HIj{hhzzSFc8(<6UfIV;kj$kgB2b_R2Z~^nd0^kbVz(U{-Jb)+g0^WcQe1I?T z1O6ZYECPWb2n2%=5DLNo126##ut7M80E@vAuoOgsC=d-|z%mdEI3Nzhg9N|@i699i z10F~LsUQucgABk204j3$Ld(V@(s=u-43 z`jlA|3dMk8NHL|@P@E|)lvawN!HBPt@-ys5Z8Oqk3f5_}-3yNc^8^~PhUlM#y+EUh zBG3S415N|FHr9hS6i0y#%l?g3f*s4=Nz+Nw!XEuQN)rS-EIjJ0How%Z+)?6i)U9v9 z8}gXBjdOvmnC`IfotMDzo!4b&3;PlKz6D?bW${sGZ)eiHSVLfj!aHkV_QLYA!vP50 zRv+~)JE++{(|o3R+Txj}PN15th5coR%MJ>Z({mIkYPLmIW8PJk3f6%Z0@G0~f$4xT zoES52+K8_}1O2;9nf!}2EH#Opi;cahb5jSHEtsbO{@?!t;Cqb~SoAAw=>OCQV=)gs zUGkK}FlD8I>5?ie#k+lO-D?kk+rlq+-73C(UAJzMy7UGnsZblm=( zUJNX?$RrdtJ)#g;XDb^AcN#Btx>WA@xfBZP{+9J!Ki#@udTh)7f%|Y+O7r~OI!jhc zg7+G!$2OiduJ^y>DHT=WK_5K0R?_cmPPnY)3`xwDOD_CmDeIq!3w#dPVfY09qCb&p})uWo4R6)eq^ z^*sXb(JL$A=l%OVUjGA?OVg#AX)0e@|I?D&v|e5PBIoJ4Nm-@4{pXtff4>Aif4ccGwP%opbf_(?*JAUOy9iZ%G2unXQp4)EWq-TzBc3bxo|zzgsRe!g(DKtSQ7 z@scuJ4db~PVy@88Z9yVGLrh8J#B*H@zvj-6BI4!3I$JwKN<2S}FLX6DN|b#JDQR3W z?8_8z;&~ZKu7);NjyCAWkdn$3X2_~+4c$B$ArVaa0&A4M+X8EW8#u0^Bx5jinw?Js z8a!eF0@lmRBk%-{%adS@DF&ixm@NTunPM?NgT>7j! z2cS+4$TP)4H~{&OxD;-@SPzPI>O1Tru8;>Mmn-}Byj6;bpFs#xLN48@^N(Zq#P=Q6UP;aWLE@lj+i4W zsrs>4p-eGHoH^N|~i zex`^kL&2h48vIw|a6vH?(StWPo}a)Kn*F!fQ;4`MPFf~cQTDC%b#&nUF(R2Ko)Um;c9nP{Srxj(xN?wDMHI_FDT6QM zCJ=cdKW?_{1~TfCYG(SM@hiVfHfgwJ(0FjM=;6zxpvLAu95#xof?kDA^Nf=n&Hvl} zUwROhLBYvd6+RarUr;bu^q`z6NaJ(RpUGGT)m$lv!^>dt(z$8846gE|-Y4)xf;3JJ zA&8&F<9em>1iIgJarvf;h%5G-HYQ4mlglM2Gfm7>|7Pt3@)^-9NPxx}2j`2EPX2Pw$r4IUq+krEJSmAQB%po6GP#*tJe)=*R2O10 zFM&JB3ab158428M;+L+-ze#=t91TAF8$m@8uO#hf(NNF zj6fm;1{XGq#LAGU4?hjAh)|9=S^Ep`lN6_zSLVcvd0AYx?7kue6w6=CO_vEq~1{N!ko9oXvPhdrAW6OmH)}LShnn(iu1(k3c3}nc?s2$6Dse z@bFqhXJLccfq_^SgH2cbQcuUTgBJydL$prFRN@S*AXAh)lb$Vr6AFh;iKg&{6blOUxRgXR;Glff zw)$V&w7#^t{BswP%;tU7rp<=-PaxAC3Kw4U6Dhn5L8e&ot9k{V$cL8!4WEK|$_!&O zGSkwqVj-N|L{6HBE1$;AND?Q@$3r{nA;v@*VxpojQE`~4L`+l$CQ68j5+f8M+Uf-* z4KZwNYr_!sp3X;Kav6C(ailE0NWRh!776iO}#&E|r^uWFdS+{FOlF zpo5t6l|Yb0y{}qjqx+^gRHC5TBwJeC1jO2qLeGxp3Q#F>D9PMxN&@O2 zzM3-^ih|6+_`|p&QOHmCnvxL`hX|3(nQW9$IxmBRQka^&G&mDNPMZ1`J~)$P5gQ|q z$r1&w)_ zxd|c)Q~-VkM4?PNC!Q#n6O5nqYZMgIpB72L+n*IUbam ziYZS9jRm}oh&Xwb#O0??X{Ai4Q@jb_oS-9_zT~4eMmR-6#7P&VO-Gxe9B4b!r|6;H zRAEZXc~dcCc6yrjH(u0b+KZCDt!Kjfin+$$R(emKC!;>`U@(RPkFKA9`TrtoHnmCQ>^z@oE@lVun2)zCube$iif!lMPKddMmq6b+2;PzUEDQx1a6AE6#i zK2he~Q4H0&40NLfv#E>#K_z@mXj&wE5@Vo0aF%x$XG|MqRKRXfxL8{SYw)u z%=`L4^Mw~qI#c<{s6{@VD^BJo$obM)YG0z4AXz0gG=#|_PU4~2kxVXVV2J+U+7}LG zaSA;fy}O8)KIv>_cPEPA;KXR`Cq!c`S>a1O86x0jD8pO|#(QFxObCi`Uwk_;ZaUt= z2~oqT3KdiQmGhTRl?6KL)AT-Pb3|xQ(6k!P1)M%;*uJ2^%mA)V=-1GJpmCW}Jo?*n z&=8`(0jHLZ{v6!YPqU#F@{<}RFOr39Bz90XLiV@JoK|wW67PX>! zf?5RmNfu@D`8+dItjHouboM_-@Ul_KPllsk7J`@T`YSa4 zI@d%ddh|fIRTNkuq07)v3@6)VQIWMUp}XJ)K~Jj?9I}k*o@u{k^_46gVR{Ph8o%B!Pw+f`- zgEBs88dU$qh%0|%@74d!J81p0Q<0x^Kn_}n7FJ79OG8IXM+X5k8q4Jebc`U-AUH#C z)A7IoEgvmEod9hgg^dUfXk&GCbmeeB*GOwWqBR0*Ai_AJ^%T*1hG;!Uw0=Xhen+%k zAX+aGtyhTFYeee}qBVhNy+w2bbpJqf-yyp15#0}n?w^S6M+App2zU%a*3y>OnL!{R zx)^P;!ps>4v-A=2Y;_XFK*LbZ$k+sHI>(GkGuN}ww6wCev9+_GQH8-H@Lvv(!Ql~k zJc7p~3V4KoM~HYiCA^$6UQPusr;3+T!^^4Tv6^@}5*|awW3=)38F;)d9zPS0*TduW z@t9e7{A@fz!Q&0^7(+b47*8<4Bc^!596Z4cPoUxz&GCvBctuORq7`1z8n0-BM{Mzm zc6h`dujqhRbi^yp!7I+iE6&3!I^mUF@W>3j@_an90FQCSV;15Ocf6V>9`VAfdE*f} zUfmb3;g3fa;gLW*HVBUd<4GZSBovQ?;SmNNVd4=M9%18=a6A%$M;7CeC3s{h9*M*w zQFv@L9*Myt%kW4n9^v4TI6M-MM-uP|7mp<3kt95lj7NBQBn6M8;*m5wl8#3*@CYA| z2=K^qJR-y+B0M6-Bbj(43y)oaN3!uq4j#$HBP;R9Dm=0pk9>zmzQ-dH1dptNkOyHc zgmn<|A*_e60YU*nAR~BkAu7O!4Q(`gWb==^L2Q>ix6fZ1RO$eg%uqLVIhLo zzYmL}2;m8W#gqR+@T5-=Bp5tt4OECccwP(7yCCd_um>{}i`UqTA^d>B;t^D9sxgFc zETIO2CDcNwL#yjC1Ui<`fEF7tghuq-h#|DV=2i%8@EW@xL+F6zP6!9!HMtFgCm+NR z4#Deg2t5!w5G>&^JRd>(AH@)QVfh4FK8YcmLi?P-5YEE7a}e%A-m&K)H+>M!LFmU2 zF2MQ$6#pWI@H0G5bnXgzd%?3yN|%? z`>^@}JU_$`M$ub8g5_Uf-57)?5XK>l!XZ3`=ig!53wVAF;SGcd2yY?$0pT5n@E(%= z6J_fo#QO`v-w-}w2ogCgVJ(DpaS~d%IHA_N)x9F?JU5^!M^fS_eOAPUms*_ zd@XMUbqoQAK5xJf|w`3JS2=aegx%T)fs^hy9XXebzIcH|h%$y}rF%~KOOBtlh{wOJP7qf5+ zKbG+LQWkGz=n~AljDh7$`WPu6F-ciuG3DdTZj&-IN6JNQq@3PP%B&Tn%vnjw*?CgV zTcs!;QXEAIE327*jUs=e15gJ)*6~9TpRClxrz%xc^ij%KrADc*xHODPs;&>mBAU7( z9FBz4jp2ACtagT@k%+n}tVN>gr^AR}b#qumgnC&x6p5)@!ih*+y*#W&66zJ@oT9E2=o6Walca^heGPr*E0ER%G>rz=XKc}6 zi&mw|sRTJRtUs&@Ep&q9x5k;{3(e!n8D}1!JzlZKm}8BxiZcdW5!M>&Yp};)iYSXz z_BB`&>~Y3)rM};pP>2!+Vmy$?Y+AFXbZPxkjXfcMrhQg^LmG#p(3G4Fwt`fg{VW}W z!N)eIaWv&{635UUr*9{WoZgc?nUYVsZZ&3$!vLWtsIQ^Ad%zUULg^Am%(%&)@dnK3 zleVNcLaWqd5J7AN`xWW={)~m9Twm_Lj-l=SmUrFo@;t)zM-y%sCam)|kYIBSU<3Aq z>U2~x-AFu+V;wWoMp|i#nUjo3_+n8!$LTi>Yq?#KYwO2yE-y?(PRc0BJZNX-FY{1J zE|usO4;9HKiC*fVYVsV3c6z9mte5C|4-F+JNpz!!hLgyMNroax!Otj7TJO3M%XL?} z?%E@N)_dEl;Mn5`?IJJusLDyf#-oOV?>M$V(hI(7b4tOOLQXa4ql0i`JxOM|24*VQ zv_FMpZB_x=W>isA!H(`vodn921aO;iB@r_ejIE?}CsDujoz#?s!h#*%pGxC9g({=p zOmgfNjGfG5ny2;zK--KHSgqJ!pF&EXUa0Qf#UkcO1>+=YVs(mAsm8R>?*#|mV0CwU z7@vqv1BLum)Y-0Ol=e^(*)djV3mI1<$_A6S!JkF_HtHEjB69=0oxuqbyo15xBzPx- zss!(1@NZJ=ZU*0$;1?M@46vl%LltmeDWe$OM46=VIZRaF9>x+fqE~M6UT>4T39BpW zd(blXw1ss4+rRb<0m?47UJifA@}b?uI9Rh1_Jat(EaS5l#aR+3H~VkMc^0$fYRwM0Cq0#WmyCk`@Q zO>bqx4Kl;lb}hLQYg$QdTImF-jmh|gup)1gwVJ&hQH*ks{Gg%$7v2Uc7-5um!ILs< zR!=eS2)Oc>@_YVCj!jZ+#`^ogNUrM!hMdHCR5}7R_y=s%R`4oe>FF9>7GA zXt*sD4e=hA279dWZT0Ur5%%phaxdi5eQyQ3+U@O1|GJd!(Vt+Kg>NL(GUX;x(9`W8 zMZJcUFA(aOvJ-6~kekuC2_+q*oLl^qBdVOqIR0aYQ_k@M+2nXH<(yJ*PO)k-ic@1w z%TD8ZIZh30p_@aprg*1YGu38Q=~Da6Q?sWk$p`pgbH>e`S-=u=r%TDCB|P#bCO=Uo z&-clfF?nB^+~AWpF!_-(d4f;g%;erOS@`5Dn7qGC{tZ^5A0Ts@F-_?i`RpDjBEzLQ z+i`k_RBa%`S?*;0DVzi@AP=#Ir;nk**E3i`iVXCuhn~74^?Zj)QcsTc96Z)a>f1G> z%s|CPsHhH9B&3S(B8;RCw7oI2&ZuKcCzFg!wQG&3w5h%l$!xk^t3QM2M1Yy68K+4m zG|!+Cm*wgvs6u6|?a`klsqO_HY!AUhZ6QCk?L;Cjz z_pk4|qlVnfkUMM0{mhX2?2sFCU2qgI=lBqU^DR}@9h~-ZWU_6yI8TBPF!(_UKFHvy5`1X5hCLkAFrDOT zl2f>AX^@^b8mQ89@b}p(@JIC=ex+7E}F70FwHsroFtdJ%io9*lE%3-*>fKeJ^5YqB z<&q&+#&A^H>POuCN!~&+cRG7~f{KFoHad-wuD(>dTAqk>g6rNh@Prie&rGGK?gdr{ zwnLPja>Pn}wv@-#CtFVJmp2)EFI(kXE-$h`>2r9p!oQg8Uu!6Gz413+!eL&<>WYCn z5Pv*^flqtlSgZEu>;E_NnbD#VrOrWgh9zzbH`Q~CH{HAq=xs#1QgBY8#8!r~K_oK$ zCo*$z!#Od8i$x9YH?{UDW=(y6zNY@^0l1_lDx$DxSCi_#hK$mWq=jQw zv!UOt&(xZ7;E-?{D;6)0q z62S=&@&v#Tlb&*2(d4=tT=yxt$0~uQeSBX7vw15ub@)T4%HPTH6WCVM(Z-{Bg`>mV zUL%W?!3T%Iho~3EJ&^^*u)raDv_9nxy+U8YP_=-I>M&&7j!u8ToLcZ|MJ0HO`fCAu zQU9rAKS_h8Q8-33;S&3l=9wy5<0(P2aEIS4s8!B*tg~jgS;+7-{{7^Pf^&v7qv*^4 zeQIz&IirbxuN2Co2p8tSU|ldc1B26o!5IZ9IX#&4PJdFZ%27eD7nt+{@O?VtI-j;S zqbb>JU7jK5a%)pYIGe1?GOBZ#wIQQ98>}lbVdn~~GZS$-t@W9xv)^_7p5NJOKiQ^U1oK^x4kcWSvuV&aq~d zoLOKvl_(VEot=Z7H3Y~kAg4jQmWK8(O6_Okr!`zv<;;ZC45C=vo8fd-#1rtSeGln} zsnDapf!OOI!q6E)BocA`7fk)7?9$KlD0`XW_5Wu@wZy2Ki2L@z2ERowa-Z3FM%Q-P zm^YrufF?UnZ3Q=(b7%>5Y21qkU20PH-66Y@Nyeur`&r`k{EB7N6;e=tlk9ojLha~7NKC}lN>2^}~62D!&53MSY`_Zdv3i`#6rp%lejwkpEI}Hud zYouQ-^lqVlP9P5=LiKGzzeecS3jOm!-!Am)gnqryZxH&8LcdAqJB0oPq3;y>%|gFL z=(~h|tI%%~`t3r$LoAutr44u$IFy{sSHq(HAmPVAcbA#4+jy8Lk8T{b7gwsn*jHV* z1WTSR)OcbUI*G1*)L-3o(Ezsl2&JYXPwb=SeWWnmyhu`;FCu1GRmgscs8Gy)nbTi|&G$i-;t3>MsM$}casDV^^Q$Cj z##f1Qk2C8mX8o9CeU$h%Z?6LQHOhURB!s^E8`6~z3eS7`L!w7=$dF=R9WnZ_9DQPV z6my&#(&CAYY#0r8(FRW1I%q9jqBu*z`Ax1O{+7Q*n^MhK0aNuygz;_M4YhtbP)2b{ z-8#sXHD)h0pCsH%d#T8e<|j!Y>PkDd4tn>~S7d@bPlZ#iLX;G%)97vs`lBL^EM_-> zrOBRGfMiqB;Ym@9dI@<{q&dy6%&r9UUJsd_oeiW{lym7m(aWzg%uBMDVBr4Yfd~A7 z_G~)_mhe<&b1~aYwFr<82}JD4eGS-uMj7D#uCNsm7U#PpZssR!9Xu#zgfvd=(NI(? zLS(iI(_K%}c5F8o;{bK{%dZSdi18E&lozgVV>}~Dx+dxSMenZE0%_2vNe=aN_ZPr! zd}r8{6S>^80rkfPSG!_qXGUZXl8~044>=tu$A^+cG zjHcYPWaetKIWp}`*s!U4z-}o*q1|M+AeyXJREt(?q21!m>nt?q>raZJ#Iy5NUaXMd|{i0b>HhO zWH{JHj|0$d!q9V6wxN&PEjR|IRo@=UTRYmr{Nf^KMZ?iha*cm%u!A2_#RXXQF>PkH zvTSQ0+sd*>O@5>ilV~tNc}7UZup1M+=;5ugE7AY|znl6a9K@)b=G^*${M;Rbh@rVr zHOfQt!Z@hE(4-gSJ#1Qg$aeVlWjAGCAjNWO9S7PEz0VmubkrG4@>+sZc!+v(hsata zE5RYI1kNIBjrob@PbkhBkow3dkfJ{)(xV}^$SzX8M7bXm-|juMpHXlQkWOP@D|?NX z*9T-?&wi3*%1n(I`IeXQ2T2mli;asFNjN~zxF+`#lBPl?R=L63m3j<@@=oYrfm5=1 zLBY6yHneLpNaQJG1D68SkDlPbas zT+=G_GDJttAqF5_017>AZgX4a)zV-e>ji zw+5ac)63Po>ZPC6M=c?EU-hKB-6lW?A|*5Bdc< zP!IYg>E}w|SJVGoSxIh@K^y`9Man(W_D_P1bbva`n9#1Wd{+qoCc8KpN>BlGMpg}%jJr*F2` z2Af?bQ>gh4UHA?u(_#B&L5W1YwGP>IowXLvwbp7pS6d75Txc!BbD6aS&n1>q=QxnK zAP#R`OZM^tcmBhNP3IbAFD|@y+2&g8cCFm)T5q@BvMcA{to@GcSpN59{DDZex;}1y zEc-_i|JfccjN%BLZ7*jF{)s5#rl-m6|F-P;bM?1{{toQ-XK8=U{0m{|!oLu)`~sGr zIa0pvJ@S9>De^9}VEb4#9 z{O|b4+gpimZfzQ0+ZyNl+>K2>d*k^&e`7NP2>=%`P_Ytm(#cctSJ?ZC@Qn}V|100+ zqS^l;AqnyP-%{-3 z#8+@dCFKp=P)93=Nr^<2MNxDP2hePmE2dvZ+e0HtX9L%q06TIlyH&`xZA3kl?Hl7k z8sJMy>O3w<@?7}`YUH8W^q#YStW$KQT4)QETPkj)LnTv}NrTfnPDCEt%1WV?lY+h#XPs61G~gZ5Go zWi_)KJs4V-V7gI%kcY6p!Ty}Ew~72UB6qD|`12yaUF5D4);#li(U<=n4>*aH?@%e|rH)?DP)xg&d8 zKNovB*UQKqcy=5kFSAYM^;KS5?Nzn8n*=|1;8~aZf{=GpY<;Il)yeCAGJmsZyjY$@ zMs5*}A1x!hMB`%rj1I``ZO=nWA0T=2l^nN<#umx301m!Q*q&^ohkQgL_mFup?hGF@o{8pk;zGgG;5E;e(aP|&4&?<;xdSAmzgOr{@wo?|58UoClfNV@~vc_3eniIz46NU!BT7NB=*VB4C-4D~M45 literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/uploadify/example/uploads/.svn/all-wcprops b/platforma/static/filebrowser/uploadify/example/uploads/.svn/all-wcprops new file mode 100644 index 00000000..95ccd61b --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/uploads/.svn/all-wcprops @@ -0,0 +1,5 @@ +K 25 +svn:wc:ra_dav:version-url +V 96 +/svn/!svn/ver/459/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/uploads +END diff --git a/platforma/static/filebrowser/uploadify/example/uploads/.svn/entries b/platforma/static/filebrowser/uploadify/example/uploads/.svn/entries new file mode 100644 index 00000000..74afe082 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/example/uploads/.svn/entries @@ -0,0 +1,28 @@ +10 + +dir +466 +http://django-filebrowser.googlecode.com/svn/branches/filebrowser_3/filebrowser/media/filebrowser/uploadify/example/uploads +http://django-filebrowser.googlecode.com/svn + + + +2009-10-12T09:29:29.900685Z +459 +sehmaschine + + + + + + + + + + + + + + +b1eb0509-c838-0410-b15c-e5ce2c1b85ca + diff --git a/platforma/static/filebrowser/uploadify/expressInstall.swf b/platforma/static/filebrowser/uploadify/expressInstall.swf new file mode 100755 index 0000000000000000000000000000000000000000..0fbf8fca961e6319d84442248f6ba314797dccec GIT binary patch literal 727 zcmV;|0x11MS5pQv1pokeoP|?OPuoBc9Xq5k1WKTQ`wM9VaMwSB_o5%t)!o>)g&X)EAYjgEPLcl5K%kkuIK}@4lZ{BkGMYAU20z( zNRb@8AZ~RNT{i-oQ>63S3q@bamddC&V#&}IBHXmBea0RPhMY!G_6yWA-{&u00bI?EPCUrE(n7GhyT+_4sC3vIfO8o*Hw?~a z;QV28jGXsc=C?Kce^ve?K|~w@>bMSCq>Q(O#T42y^Mv*pwUSN?9aMQms*Ld$rD0~q zQhI{Tv*fb=mqG|Gjsr39Bp7Dejr)q)1J&t=YBY?2Llv85=!N{vRx3=YEoRTjX+)n# zs)[^>]*$|^#([\w-]+)$/,f=/^.[^:#\[\.,]*$/;o.fn=o.prototype={init:function(E,H){E=E||document;if(E.nodeType){this[0]=E;this.length=1;this.context=E;return this}if(typeof E==="string"){var G=D.exec(E);if(G&&(G[1]||!H)){if(G[1]){E=o.clean([G[1]],H)}else{var I=document.getElementById(G[3]);if(I&&I.id!=G[3]){return o().find(E)}var F=o(I||[]);F.context=document;F.selector=E;return F}}else{return o(H).find(E)}}else{if(o.isFunction(E)){return o(document).ready(E)}}if(E.selector&&E.context){this.selector=E.selector;this.context=E.context}return this.setArray(o.isArray(E)?E:o.makeArray(E))},selector:"",jquery:"1.3.2",size:function(){return this.length},get:function(E){return E===g?Array.prototype.slice.call(this):this[E]},pushStack:function(F,H,E){var G=o(F);G.prevObject=this;G.context=this.context;if(H==="find"){G.selector=this.selector+(this.selector?" ":"")+E}else{if(H){G.selector=this.selector+"."+H+"("+E+")"}}return G},setArray:function(E){this.length=0;Array.prototype.push.apply(this,E);return this},each:function(F,E){return o.each(this,F,E)},index:function(E){return o.inArray(E&&E.jquery?E[0]:E,this)},attr:function(F,H,G){var E=F;if(typeof F==="string"){if(H===g){return this[0]&&o[G||"attr"](this[0],F)}else{E={};E[F]=H}}return this.each(function(I){for(F in E){o.attr(G?this.style:this,F,o.prop(this,E[F],G,I,F))}})},css:function(E,F){if((E=="width"||E=="height")&&parseFloat(F)<0){F=g}return this.attr(E,F,"curCSS")},text:function(F){if(typeof F!=="object"&&F!=null){return this.empty().append((this[0]&&this[0].ownerDocument||document).createTextNode(F))}var E="";o.each(F||this,function(){o.each(this.childNodes,function(){if(this.nodeType!=8){E+=this.nodeType!=1?this.nodeValue:o.fn.text([this])}})});return E},wrapAll:function(E){if(this[0]){var F=o(E,this[0].ownerDocument).clone();if(this[0].parentNode){F.insertBefore(this[0])}F.map(function(){var G=this;while(G.firstChild){G=G.firstChild}return G}).append(this)}return this},wrapInner:function(E){return this.each(function(){o(this).contents().wrapAll(E)})},wrap:function(E){return this.each(function(){o(this).wrapAll(E)})},append:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.appendChild(E)}})},prepend:function(){return this.domManip(arguments,true,function(E){if(this.nodeType==1){this.insertBefore(E,this.firstChild)}})},before:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this)})},after:function(){return this.domManip(arguments,false,function(E){this.parentNode.insertBefore(E,this.nextSibling)})},end:function(){return this.prevObject||o([])},push:[].push,sort:[].sort,splice:[].splice,find:function(E){if(this.length===1){var F=this.pushStack([],"find",E);F.length=0;o.find(E,this[0],F);return F}else{return this.pushStack(o.unique(o.map(this,function(G){return o.find(E,G)})),"find",E)}},clone:function(G){var E=this.map(function(){if(!o.support.noCloneEvent&&!o.isXMLDoc(this)){var I=this.outerHTML;if(!I){var J=this.ownerDocument.createElement("div");J.appendChild(this.cloneNode(true));I=J.innerHTML}return o.clean([I.replace(/ jQuery\d+="(?:\d+|null)"/g,"").replace(/^\s*/,"")])[0]}else{return this.cloneNode(true)}});if(G===true){var H=this.find("*").andSelf(),F=0;E.find("*").andSelf().each(function(){if(this.nodeName!==H[F].nodeName){return}var I=o.data(H[F],"events");for(var K in I){for(var J in I[K]){o.event.add(this,K,I[K][J],I[K][J].data)}}F++})}return E},filter:function(E){return this.pushStack(o.isFunction(E)&&o.grep(this,function(G,F){return E.call(G,F)})||o.multiFilter(E,o.grep(this,function(F){return F.nodeType===1})),"filter",E)},closest:function(E){var G=o.expr.match.POS.test(E)?o(E):null,F=0;return this.map(function(){var H=this;while(H&&H.ownerDocument){if(G?G.index(H)>-1:o(H).is(E)){o.data(H,"closest",F);return H}H=H.parentNode;F++}})},not:function(E){if(typeof E==="string"){if(f.test(E)){return this.pushStack(o.multiFilter(E,this,true),"not",E)}else{E=o.multiFilter(E,this)}}var F=E.length&&E[E.length-1]!==g&&!E.nodeType;return this.filter(function(){return F?o.inArray(this,E)<0:this!=E})},add:function(E){return this.pushStack(o.unique(o.merge(this.get(),typeof E==="string"?o(E):o.makeArray(E))))},is:function(E){return !!E&&o.multiFilter(E,this).length>0},hasClass:function(E){return !!E&&this.is("."+E)},val:function(K){if(K===g){var E=this[0];if(E){if(o.nodeName(E,"option")){return(E.attributes.value||{}).specified?E.value:E.text}if(o.nodeName(E,"select")){var I=E.selectedIndex,L=[],M=E.options,H=E.type=="select-one";if(I<0){return null}for(var F=H?I:0,J=H?I+1:M.length;F=0||o.inArray(this.name,K)>=0)}else{if(o.nodeName(this,"select")){var N=o.makeArray(K);o("option",this).each(function(){this.selected=(o.inArray(this.value,N)>=0||o.inArray(this.text,N)>=0)});if(!N.length){this.selectedIndex=-1}}else{this.value=K}}})},html:function(E){return E===g?(this[0]?this[0].innerHTML.replace(/ jQuery\d+="(?:\d+|null)"/g,""):null):this.empty().append(E)},replaceWith:function(E){return this.after(E).remove()},eq:function(E){return this.slice(E,+E+1)},slice:function(){return this.pushStack(Array.prototype.slice.apply(this,arguments),"slice",Array.prototype.slice.call(arguments).join(","))},map:function(E){return this.pushStack(o.map(this,function(G,F){return E.call(G,F,G)}))},andSelf:function(){return this.add(this.prevObject)},domManip:function(J,M,L){if(this[0]){var I=(this[0].ownerDocument||this[0]).createDocumentFragment(),F=o.clean(J,(this[0].ownerDocument||this[0]),I),H=I.firstChild;if(H){for(var G=0,E=this.length;G1||G>0?I.cloneNode(true):I)}}if(F){o.each(F,z)}}return this;function K(N,O){return M&&o.nodeName(N,"table")&&o.nodeName(O,"tr")?(N.getElementsByTagName("tbody")[0]||N.appendChild(N.ownerDocument.createElement("tbody"))):N}}};o.fn.init.prototype=o.fn;function z(E,F){if(F.src){o.ajax({url:F.src,async:false,dataType:"script"})}else{o.globalEval(F.text||F.textContent||F.innerHTML||"")}if(F.parentNode){F.parentNode.removeChild(F)}}function e(){return +new Date}o.extend=o.fn.extend=function(){var J=arguments[0]||{},H=1,I=arguments.length,E=false,G;if(typeof J==="boolean"){E=J;J=arguments[1]||{};H=2}if(typeof J!=="object"&&!o.isFunction(J)){J={}}if(I==H){J=this;--H}for(;H-1}},swap:function(H,G,I){var E={};for(var F in G){E[F]=H.style[F];H.style[F]=G[F]}I.call(H);for(var F in G){H.style[F]=E[F]}},css:function(H,F,J,E){if(F=="width"||F=="height"){var L,G={position:"absolute",visibility:"hidden",display:"block"},K=F=="width"?["Left","Right"]:["Top","Bottom"];function I(){L=F=="width"?H.offsetWidth:H.offsetHeight;if(E==="border"){return}o.each(K,function(){if(!E){L-=parseFloat(o.curCSS(H,"padding"+this,true))||0}if(E==="margin"){L+=parseFloat(o.curCSS(H,"margin"+this,true))||0}else{L-=parseFloat(o.curCSS(H,"border"+this+"Width",true))||0}})}if(H.offsetWidth!==0){I()}else{o.swap(H,G,I)}return Math.max(0,Math.round(L))}return o.curCSS(H,F,J)},curCSS:function(I,F,G){var L,E=I.style;if(F=="opacity"&&!o.support.opacity){L=o.attr(E,"opacity");return L==""?"1":L}if(F.match(/float/i)){F=w}if(!G&&E&&E[F]){L=E[F]}else{if(q.getComputedStyle){if(F.match(/float/i)){F="float"}F=F.replace(/([A-Z])/g,"-$1").toLowerCase();var M=q.getComputedStyle(I,null);if(M){L=M.getPropertyValue(F)}if(F=="opacity"&&L==""){L="1"}}else{if(I.currentStyle){var J=F.replace(/\-(\w)/g,function(N,O){return O.toUpperCase()});L=I.currentStyle[F]||I.currentStyle[J];if(!/^\d+(px)?$/i.test(L)&&/^\d/.test(L)){var H=E.left,K=I.runtimeStyle.left;I.runtimeStyle.left=I.currentStyle.left;E.left=L||0;L=E.pixelLeft+"px";E.left=H;I.runtimeStyle.left=K}}}}return L},clean:function(F,K,I){K=K||document;if(typeof K.createElement==="undefined"){K=K.ownerDocument||K[0]&&K[0].ownerDocument||document}if(!I&&F.length===1&&typeof F[0]==="string"){var H=/^<(\w+)\s*\/?>$/.exec(F[0]);if(H){return[K.createElement(H[1])]}}var G=[],E=[],L=K.createElement("div");o.each(F,function(P,S){if(typeof S==="number"){S+=""}if(!S){return}if(typeof S==="string"){S=S.replace(/(<(\w+)[^>]*?)\/>/g,function(U,V,T){return T.match(/^(abbr|br|col|img|input|link|meta|param|hr|area|embed)$/i)?U:V+">"});var O=S.replace(/^\s+/,"").substring(0,10).toLowerCase();var Q=!O.indexOf("",""]||!O.indexOf("",""]||O.match(/^<(thead|tbody|tfoot|colg|cap)/)&&[1,"","
"]||!O.indexOf("",""]||(!O.indexOf("",""]||!O.indexOf("",""]||!o.support.htmlSerialize&&[1,"div
","
"]||[0,"",""];L.innerHTML=Q[1]+S+Q[2];while(Q[0]--){L=L.lastChild}if(!o.support.tbody){var R=/"&&!R?L.childNodes:[];for(var M=N.length-1;M>=0;--M){if(o.nodeName(N[M],"tbody")&&!N[M].childNodes.length){N[M].parentNode.removeChild(N[M])}}}if(!o.support.leadingWhitespace&&/^\s/.test(S)){L.insertBefore(K.createTextNode(S.match(/^\s*/)[0]),L.firstChild)}S=o.makeArray(L.childNodes)}if(S.nodeType){G.push(S)}else{G=o.merge(G,S)}});if(I){for(var J=0;G[J];J++){if(o.nodeName(G[J],"script")&&(!G[J].type||G[J].type.toLowerCase()==="text/javascript")){E.push(G[J].parentNode?G[J].parentNode.removeChild(G[J]):G[J])}else{if(G[J].nodeType===1){G.splice.apply(G,[J+1,0].concat(o.makeArray(G[J].getElementsByTagName("script"))))}I.appendChild(G[J])}}return E}return G},attr:function(J,G,K){if(!J||J.nodeType==3||J.nodeType==8){return g}var H=!o.isXMLDoc(J),L=K!==g;G=H&&o.props[G]||G;if(J.tagName){var F=/href|src|style/.test(G);if(G=="selected"&&J.parentNode){J.parentNode.selectedIndex}if(G in J&&H&&!F){if(L){if(G=="type"&&o.nodeName(J,"input")&&J.parentNode){throw"type property can't be changed"}J[G]=K}if(o.nodeName(J,"form")&&J.getAttributeNode(G)){return J.getAttributeNode(G).nodeValue}if(G=="tabIndex"){var I=J.getAttributeNode("tabIndex");return I&&I.specified?I.value:J.nodeName.match(/(button|input|object|select|textarea)/i)?0:J.nodeName.match(/^(a|area)$/i)&&J.href?0:g}return J[G]}if(!o.support.style&&H&&G=="style"){return o.attr(J.style,"cssText",K)}if(L){J.setAttribute(G,""+K)}var E=!o.support.hrefNormalized&&H&&F?J.getAttribute(G,2):J.getAttribute(G);return E===null?g:E}if(!o.support.opacity&&G=="opacity"){if(L){J.zoom=1;J.filter=(J.filter||"").replace(/alpha\([^)]*\)/,"")+(parseInt(K)+""=="NaN"?"":"alpha(opacity="+K*100+")")}return J.filter&&J.filter.indexOf("opacity=")>=0?(parseFloat(J.filter.match(/opacity=([^)]*)/)[1])/100)+"":""}G=G.replace(/-([a-z])/ig,function(M,N){return N.toUpperCase()});if(L){J[G]=K}return J[G]},trim:function(E){return(E||"").replace(/^\s+|\s+$/g,"")},makeArray:function(G){var E=[];if(G!=null){var F=G.length;if(F==null||typeof G==="string"||o.isFunction(G)||G.setInterval){E[0]=G}else{while(F){E[--F]=G[F]}}}return E},inArray:function(G,H){for(var E=0,F=H.length;E0?this.clone(true):this).get();o.fn[F].apply(o(L[K]),I);J=J.concat(I)}return this.pushStack(J,E,G)}});o.each({removeAttr:function(E){o.attr(this,E,"");if(this.nodeType==1){this.removeAttribute(E)}},addClass:function(E){o.className.add(this,E)},removeClass:function(E){o.className.remove(this,E)},toggleClass:function(F,E){if(typeof E!=="boolean"){E=!o.className.has(this,F)}o.className[E?"add":"remove"](this,F)},remove:function(E){if(!E||o.filter(E,[this]).length){o("*",this).add([this]).each(function(){o.event.remove(this);o.removeData(this)});if(this.parentNode){this.parentNode.removeChild(this)}}},empty:function(){o(this).children().remove();while(this.firstChild){this.removeChild(this.firstChild)}}},function(E,F){o.fn[E]=function(){return this.each(F,arguments)}});function j(E,F){return E[0]&&parseInt(o.curCSS(E[0],F,true),10)||0}var h="jQuery"+e(),v=0,A={};o.extend({cache:{},data:function(F,E,G){F=F==l?A:F;var H=F[h];if(!H){H=F[h]=++v}if(E&&!o.cache[H]){o.cache[H]={}}if(G!==g){o.cache[H][E]=G}return E?o.cache[H][E]:H},removeData:function(F,E){F=F==l?A:F;var H=F[h];if(E){if(o.cache[H]){delete o.cache[H][E];E="";for(E in o.cache[H]){break}if(!E){o.removeData(F)}}}else{try{delete F[h]}catch(G){if(F.removeAttribute){F.removeAttribute(h)}}delete o.cache[H]}},queue:function(F,E,H){if(F){E=(E||"fx")+"queue";var G=o.data(F,E);if(!G||o.isArray(H)){G=o.data(F,E,o.makeArray(H))}else{if(H){G.push(H)}}}return G},dequeue:function(H,G){var E=o.queue(H,G),F=E.shift();if(!G||G==="fx"){F=E[0]}if(F!==g){F.call(H)}}});o.fn.extend({data:function(E,G){var H=E.split(".");H[1]=H[1]?"."+H[1]:"";if(G===g){var F=this.triggerHandler("getData"+H[1]+"!",[H[0]]);if(F===g&&this.length){F=o.data(this[0],E)}return F===g&&H[1]?this.data(H[0]):F}else{return this.trigger("setData"+H[1]+"!",[H[0],G]).each(function(){o.data(this,E,G)})}},removeData:function(E){return this.each(function(){o.removeData(this,E)})},queue:function(E,F){if(typeof E!=="string"){F=E;E="fx"}if(F===g){return o.queue(this[0],E)}return this.each(function(){var G=o.queue(this,E,F);if(E=="fx"&&G.length==1){G[0].call(this)}})},dequeue:function(E){return this.each(function(){o.dequeue(this,E)})}}); +/* + * Sizzle CSS Selector Engine - v0.9.3 + * Copyright 2009, The Dojo Foundation + * Released under the MIT, BSD, and GPL Licenses. + * More information: http://sizzlejs.com/ + */ +(function(){var R=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?/g,L=0,H=Object.prototype.toString;var F=function(Y,U,ab,ac){ab=ab||[];U=U||document;if(U.nodeType!==1&&U.nodeType!==9){return[]}if(!Y||typeof Y!=="string"){return ab}var Z=[],W,af,ai,T,ad,V,X=true;R.lastIndex=0;while((W=R.exec(Y))!==null){Z.push(W[1]);if(W[2]){V=RegExp.rightContext;break}}if(Z.length>1&&M.exec(Y)){if(Z.length===2&&I.relative[Z[0]]){af=J(Z[0]+Z[1],U)}else{af=I.relative[Z[0]]?[U]:F(Z.shift(),U);while(Z.length){Y=Z.shift();if(I.relative[Y]){Y+=Z.shift()}af=J(Y,af)}}}else{var ae=ac?{expr:Z.pop(),set:E(ac)}:F.find(Z.pop(),Z.length===1&&U.parentNode?U.parentNode:U,Q(U));af=F.filter(ae.expr,ae.set);if(Z.length>0){ai=E(af)}else{X=false}while(Z.length){var ah=Z.pop(),ag=ah;if(!I.relative[ah]){ah=""}else{ag=Z.pop()}if(ag==null){ag=U}I.relative[ah](ai,ag,Q(U))}}if(!ai){ai=af}if(!ai){throw"Syntax error, unrecognized expression: "+(ah||Y)}if(H.call(ai)==="[object Array]"){if(!X){ab.push.apply(ab,ai)}else{if(U.nodeType===1){for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&(ai[aa]===true||ai[aa].nodeType===1&&K(U,ai[aa]))){ab.push(af[aa])}}}else{for(var aa=0;ai[aa]!=null;aa++){if(ai[aa]&&ai[aa].nodeType===1){ab.push(af[aa])}}}}}else{E(ai,ab)}if(V){F(V,U,ab,ac);if(G){hasDuplicate=false;ab.sort(G);if(hasDuplicate){for(var aa=1;aa":function(Z,U,aa){var X=typeof U==="string";if(X&&!/\W/.test(U)){U=aa?U:U.toUpperCase();for(var V=0,T=Z.length;V=0)){if(!V){T.push(Y)}}else{if(V){U[X]=false}}}}return false},ID:function(T){return T[1].replace(/\\/g,"")},TAG:function(U,T){for(var V=0;T[V]===false;V++){}return T[V]&&Q(T[V])?U[1]:U[1].toUpperCase()},CHILD:function(T){if(T[1]=="nth"){var U=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(T[2]=="even"&&"2n"||T[2]=="odd"&&"2n+1"||!/\D/.test(T[2])&&"0n+"+T[2]||T[2]);T[2]=(U[1]+(U[2]||1))-0;T[3]=U[3]-0}T[0]=L++;return T},ATTR:function(X,U,V,T,Y,Z){var W=X[1].replace(/\\/g,"");if(!Z&&I.attrMap[W]){X[1]=I.attrMap[W]}if(X[2]==="~="){X[4]=" "+X[4]+" "}return X},PSEUDO:function(X,U,V,T,Y){if(X[1]==="not"){if(X[3].match(R).length>1||/^\w/.test(X[3])){X[3]=F(X[3],null,null,U)}else{var W=F.filter(X[3],U,V,true^Y);if(!V){T.push.apply(T,W)}return false}}else{if(I.match.POS.test(X[0])||I.match.CHILD.test(X[0])){return true}}return X},POS:function(T){T.unshift(true);return T}},filters:{enabled:function(T){return T.disabled===false&&T.type!=="hidden"},disabled:function(T){return T.disabled===true},checked:function(T){return T.checked===true},selected:function(T){T.parentNode.selectedIndex;return T.selected===true},parent:function(T){return !!T.firstChild},empty:function(T){return !T.firstChild},has:function(V,U,T){return !!F(T[3],V).length},header:function(T){return/h\d/i.test(T.nodeName)},text:function(T){return"text"===T.type},radio:function(T){return"radio"===T.type},checkbox:function(T){return"checkbox"===T.type},file:function(T){return"file"===T.type},password:function(T){return"password"===T.type},submit:function(T){return"submit"===T.type},image:function(T){return"image"===T.type},reset:function(T){return"reset"===T.type},button:function(T){return"button"===T.type||T.nodeName.toUpperCase()==="BUTTON"},input:function(T){return/input|select|textarea|button/i.test(T.nodeName)}},setFilters:{first:function(U,T){return T===0},last:function(V,U,T,W){return U===W.length-1},even:function(U,T){return T%2===0},odd:function(U,T){return T%2===1},lt:function(V,U,T){return UT[3]-0},nth:function(V,U,T){return T[3]-0==U},eq:function(V,U,T){return T[3]-0==U}},filter:{PSEUDO:function(Z,V,W,aa){var U=V[1],X=I.filters[U];if(X){return X(Z,W,V,aa)}else{if(U==="contains"){return(Z.textContent||Z.innerText||"").indexOf(V[3])>=0}else{if(U==="not"){var Y=V[3];for(var W=0,T=Y.length;W=0)}}},ID:function(U,T){return U.nodeType===1&&U.getAttribute("id")===T},TAG:function(U,T){return(T==="*"&&U.nodeType===1)||U.nodeName===T},CLASS:function(U,T){return(" "+(U.className||U.getAttribute("class"))+" ").indexOf(T)>-1},ATTR:function(Y,W){var V=W[1],T=I.attrHandle[V]?I.attrHandle[V](Y):Y[V]!=null?Y[V]:Y.getAttribute(V),Z=T+"",X=W[2],U=W[4];return T==null?X==="!=":X==="="?Z===U:X==="*="?Z.indexOf(U)>=0:X==="~="?(" "+Z+" ").indexOf(U)>=0:!U?Z&&T!==false:X==="!="?Z!=U:X==="^="?Z.indexOf(U)===0:X==="$="?Z.substr(Z.length-U.length)===U:X==="|="?Z===U||Z.substr(0,U.length+1)===U+"-":false},POS:function(X,U,V,Y){var T=U[2],W=I.setFilters[T];if(W){return W(X,V,U,Y)}}}};var M=I.match.POS;for(var O in I.match){I.match[O]=RegExp(I.match[O].source+/(?![^\[]*\])(?![^\(]*\))/.source)}var E=function(U,T){U=Array.prototype.slice.call(U);if(T){T.push.apply(T,U);return T}return U};try{Array.prototype.slice.call(document.documentElement.childNodes)}catch(N){E=function(X,W){var U=W||[];if(H.call(X)==="[object Array]"){Array.prototype.push.apply(U,X)}else{if(typeof X.length==="number"){for(var V=0,T=X.length;V";var T=document.documentElement;T.insertBefore(U,T.firstChild);if(!!document.getElementById(V)){I.find.ID=function(X,Y,Z){if(typeof Y.getElementById!=="undefined"&&!Z){var W=Y.getElementById(X[1]);return W?W.id===X[1]||typeof W.getAttributeNode!=="undefined"&&W.getAttributeNode("id").nodeValue===X[1]?[W]:g:[]}};I.filter.ID=function(Y,W){var X=typeof Y.getAttributeNode!=="undefined"&&Y.getAttributeNode("id");return Y.nodeType===1&&X&&X.nodeValue===W}}T.removeChild(U)})();(function(){var T=document.createElement("div");T.appendChild(document.createComment(""));if(T.getElementsByTagName("*").length>0){I.find.TAG=function(U,Y){var X=Y.getElementsByTagName(U[1]);if(U[1]==="*"){var W=[];for(var V=0;X[V];V++){if(X[V].nodeType===1){W.push(X[V])}}X=W}return X}}T.innerHTML="";if(T.firstChild&&typeof T.firstChild.getAttribute!=="undefined"&&T.firstChild.getAttribute("href")!=="#"){I.attrHandle.href=function(U){return U.getAttribute("href",2)}}})();if(document.querySelectorAll){(function(){var T=F,U=document.createElement("div");U.innerHTML="

";if(U.querySelectorAll&&U.querySelectorAll(".TEST").length===0){return}F=function(Y,X,V,W){X=X||document;if(!W&&X.nodeType===9&&!Q(X)){try{return E(X.querySelectorAll(Y),V)}catch(Z){}}return T(Y,X,V,W)};F.find=T.find;F.filter=T.filter;F.selectors=T.selectors;F.matches=T.matches})()}if(document.getElementsByClassName&&document.documentElement.getElementsByClassName){(function(){var T=document.createElement("div");T.innerHTML="
";if(T.getElementsByClassName("e").length===0){return}T.lastChild.className="e";if(T.getElementsByClassName("e").length===1){return}I.order.splice(1,0,"CLASS");I.find.CLASS=function(U,V,W){if(typeof V.getElementsByClassName!=="undefined"&&!W){return V.getElementsByClassName(U[1])}}})()}function P(U,Z,Y,ad,aa,ac){var ab=U=="previousSibling"&&!ac;for(var W=0,V=ad.length;W0){X=T;break}}}T=T[U]}ad[W]=X}}}var K=document.compareDocumentPosition?function(U,T){return U.compareDocumentPosition(T)&16}:function(U,T){return U!==T&&(U.contains?U.contains(T):true)};var Q=function(T){return T.nodeType===9&&T.documentElement.nodeName!=="HTML"||!!T.ownerDocument&&Q(T.ownerDocument)};var J=function(T,aa){var W=[],X="",Y,V=aa.nodeType?[aa]:aa;while((Y=I.match.PSEUDO.exec(T))){X+=Y[0];T=T.replace(I.match.PSEUDO,"")}T=I.relative[T]?T+"*":T;for(var Z=0,U=V.length;Z0||T.offsetHeight>0};F.selectors.filters.animated=function(T){return o.grep(o.timers,function(U){return T===U.elem}).length};o.multiFilter=function(V,T,U){if(U){V=":not("+V+")"}return F.matches(V,T)};o.dir=function(V,U){var T=[],W=V[U];while(W&&W!=document){if(W.nodeType==1){T.push(W)}W=W[U]}return T};o.nth=function(X,T,V,W){T=T||1;var U=0;for(;X;X=X[V]){if(X.nodeType==1&&++U==T){break}}return X};o.sibling=function(V,U){var T=[];for(;V;V=V.nextSibling){if(V.nodeType==1&&V!=U){T.push(V)}}return T};return;l.Sizzle=F})();o.event={add:function(I,F,H,K){if(I.nodeType==3||I.nodeType==8){return}if(I.setInterval&&I!=l){I=l}if(!H.guid){H.guid=this.guid++}if(K!==g){var G=H;H=this.proxy(G);H.data=K}var E=o.data(I,"events")||o.data(I,"events",{}),J=o.data(I,"handle")||o.data(I,"handle",function(){return typeof o!=="undefined"&&!o.event.triggered?o.event.handle.apply(arguments.callee.elem,arguments):g});J.elem=I;o.each(F.split(/\s+/),function(M,N){var O=N.split(".");N=O.shift();H.type=O.slice().sort().join(".");var L=E[N];if(o.event.specialAll[N]){o.event.specialAll[N].setup.call(I,K,O)}if(!L){L=E[N]={};if(!o.event.special[N]||o.event.special[N].setup.call(I,K,O)===false){if(I.addEventListener){I.addEventListener(N,J,false)}else{if(I.attachEvent){I.attachEvent("on"+N,J)}}}}L[H.guid]=H;o.event.global[N]=true});I=null},guid:1,global:{},remove:function(K,H,J){if(K.nodeType==3||K.nodeType==8){return}var G=o.data(K,"events"),F,E;if(G){if(H===g||(typeof H==="string"&&H.charAt(0)==".")){for(var I in G){this.remove(K,I+(H||""))}}else{if(H.type){J=H.handler;H=H.type}o.each(H.split(/\s+/),function(M,O){var Q=O.split(".");O=Q.shift();var N=RegExp("(^|\\.)"+Q.slice().sort().join(".*\\.")+"(\\.|$)");if(G[O]){if(J){delete G[O][J.guid]}else{for(var P in G[O]){if(N.test(G[O][P].type)){delete G[O][P]}}}if(o.event.specialAll[O]){o.event.specialAll[O].teardown.call(K,Q)}for(F in G[O]){break}if(!F){if(!o.event.special[O]||o.event.special[O].teardown.call(K,Q)===false){if(K.removeEventListener){K.removeEventListener(O,o.data(K,"handle"),false)}else{if(K.detachEvent){K.detachEvent("on"+O,o.data(K,"handle"))}}}F=null;delete G[O]}}})}for(F in G){break}if(!F){var L=o.data(K,"handle");if(L){L.elem=null}o.removeData(K,"events");o.removeData(K,"handle")}}},trigger:function(I,K,H,E){var G=I.type||I;if(!E){I=typeof I==="object"?I[h]?I:o.extend(o.Event(G),I):o.Event(G);if(G.indexOf("!")>=0){I.type=G=G.slice(0,-1);I.exclusive=true}if(!H){I.stopPropagation();if(this.global[G]){o.each(o.cache,function(){if(this.events&&this.events[G]){o.event.trigger(I,K,this.handle.elem)}})}}if(!H||H.nodeType==3||H.nodeType==8){return g}I.result=g;I.target=H;K=o.makeArray(K);K.unshift(I)}I.currentTarget=H;var J=o.data(H,"handle");if(J){J.apply(H,K)}if((!H[G]||(o.nodeName(H,"a")&&G=="click"))&&H["on"+G]&&H["on"+G].apply(H,K)===false){I.result=false}if(!E&&H[G]&&!I.isDefaultPrevented()&&!(o.nodeName(H,"a")&&G=="click")){this.triggered=true;try{H[G]()}catch(L){}}this.triggered=false;if(!I.isPropagationStopped()){var F=H.parentNode||H.ownerDocument;if(F){o.event.trigger(I,K,F,true)}}},handle:function(K){var J,E;K=arguments[0]=o.event.fix(K||l.event);K.currentTarget=this;var L=K.type.split(".");K.type=L.shift();J=!L.length&&!K.exclusive;var I=RegExp("(^|\\.)"+L.slice().sort().join(".*\\.")+"(\\.|$)");E=(o.data(this,"events")||{})[K.type];for(var G in E){var H=E[G];if(J||I.test(H.type)){K.handler=H;K.data=H.data;var F=H.apply(this,arguments);if(F!==g){K.result=F;if(F===false){K.preventDefault();K.stopPropagation()}}if(K.isImmediatePropagationStopped()){break}}}},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode metaKey newValue originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "),fix:function(H){if(H[h]){return H}var F=H;H=o.Event(F);for(var G=this.props.length,J;G;){J=this.props[--G];H[J]=F[J]}if(!H.target){H.target=H.srcElement||document}if(H.target.nodeType==3){H.target=H.target.parentNode}if(!H.relatedTarget&&H.fromElement){H.relatedTarget=H.fromElement==H.target?H.toElement:H.fromElement}if(H.pageX==null&&H.clientX!=null){var I=document.documentElement,E=document.body;H.pageX=H.clientX+(I&&I.scrollLeft||E&&E.scrollLeft||0)-(I.clientLeft||0);H.pageY=H.clientY+(I&&I.scrollTop||E&&E.scrollTop||0)-(I.clientTop||0)}if(!H.which&&((H.charCode||H.charCode===0)?H.charCode:H.keyCode)){H.which=H.charCode||H.keyCode}if(!H.metaKey&&H.ctrlKey){H.metaKey=H.ctrlKey}if(!H.which&&H.button){H.which=(H.button&1?1:(H.button&2?3:(H.button&4?2:0)))}return H},proxy:function(F,E){E=E||function(){return F.apply(this,arguments)};E.guid=F.guid=F.guid||E.guid||this.guid++;return E},special:{ready:{setup:B,teardown:function(){}}},specialAll:{live:{setup:function(E,F){o.event.add(this,F[0],c)},teardown:function(G){if(G.length){var E=0,F=RegExp("(^|\\.)"+G[0]+"(\\.|$)");o.each((o.data(this,"events").live||{}),function(){if(F.test(this.type)){E++}});if(E<1){o.event.remove(this,G[0],c)}}}}}};o.Event=function(E){if(!this.preventDefault){return new o.Event(E)}if(E&&E.type){this.originalEvent=E;this.type=E.type}else{this.type=E}this.timeStamp=e();this[h]=true};function k(){return false}function u(){return true}o.Event.prototype={preventDefault:function(){this.isDefaultPrevented=u;var E=this.originalEvent;if(!E){return}if(E.preventDefault){E.preventDefault()}E.returnValue=false},stopPropagation:function(){this.isPropagationStopped=u;var E=this.originalEvent;if(!E){return}if(E.stopPropagation){E.stopPropagation()}E.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=u;this.stopPropagation()},isDefaultPrevented:k,isPropagationStopped:k,isImmediatePropagationStopped:k};var a=function(F){var E=F.relatedTarget;while(E&&E!=this){try{E=E.parentNode}catch(G){E=this}}if(E!=this){F.type=F.data;o.event.handle.apply(this,arguments)}};o.each({mouseover:"mouseenter",mouseout:"mouseleave"},function(F,E){o.event.special[E]={setup:function(){o.event.add(this,F,a,E)},teardown:function(){o.event.remove(this,F,a)}}});o.fn.extend({bind:function(F,G,E){return F=="unload"?this.one(F,G,E):this.each(function(){o.event.add(this,F,E||G,E&&G)})},one:function(G,H,F){var E=o.event.proxy(F||H,function(I){o(this).unbind(I,E);return(F||H).apply(this,arguments)});return this.each(function(){o.event.add(this,G,E,F&&H)})},unbind:function(F,E){return this.each(function(){o.event.remove(this,F,E)})},trigger:function(E,F){return this.each(function(){o.event.trigger(E,F,this)})},triggerHandler:function(E,G){if(this[0]){var F=o.Event(E);F.preventDefault();F.stopPropagation();o.event.trigger(F,G,this[0]);return F.result}},toggle:function(G){var E=arguments,F=1;while(F=0){var E=G.slice(I,G.length);G=G.slice(0,I)}var H="GET";if(J){if(o.isFunction(J)){K=J;J=null}else{if(typeof J==="object"){J=o.param(J);H="POST"}}}var F=this;o.ajax({url:G,type:H,dataType:"html",data:J,complete:function(M,L){if(L=="success"||L=="notmodified"){F.html(E?o("
").append(M.responseText.replace(//g,"")).find(E):M.responseText)}if(K){F.each(K,[M.responseText,L,M])}}});return this},serialize:function(){return o.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?o.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||/select|textarea/i.test(this.nodeName)||/text|hidden|password|search/i.test(this.type))}).map(function(E,F){var G=o(this).val();return G==null?null:o.isArray(G)?o.map(G,function(I,H){return{name:F.name,value:I}}):{name:F.name,value:G}}).get()}});o.each("ajaxStart,ajaxStop,ajaxComplete,ajaxError,ajaxSuccess,ajaxSend".split(","),function(E,F){o.fn[F]=function(G){return this.bind(F,G)}});var r=e();o.extend({get:function(E,G,H,F){if(o.isFunction(G)){H=G;G=null}return o.ajax({type:"GET",url:E,data:G,success:H,dataType:F})},getScript:function(E,F){return o.get(E,null,F,"script")},getJSON:function(E,F,G){return o.get(E,F,G,"json")},post:function(E,G,H,F){if(o.isFunction(G)){H=G;G={}}return o.ajax({type:"POST",url:E,data:G,success:H,dataType:F})},ajaxSetup:function(E){o.extend(o.ajaxSettings,E)},ajaxSettings:{url:location.href,global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:function(){return l.ActiveXObject?new ActiveXObject("Microsoft.XMLHTTP"):new XMLHttpRequest()},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},ajax:function(M){M=o.extend(true,M,o.extend(true,{},o.ajaxSettings,M));var W,F=/=\?(&|$)/g,R,V,G=M.type.toUpperCase();if(M.data&&M.processData&&typeof M.data!=="string"){M.data=o.param(M.data)}if(M.dataType=="jsonp"){if(G=="GET"){if(!M.url.match(F)){M.url+=(M.url.match(/\?/)?"&":"?")+(M.jsonp||"callback")+"=?"}}else{if(!M.data||!M.data.match(F)){M.data=(M.data?M.data+"&":"")+(M.jsonp||"callback")+"=?"}}M.dataType="json"}if(M.dataType=="json"&&(M.data&&M.data.match(F)||M.url.match(F))){W="jsonp"+r++;if(M.data){M.data=(M.data+"").replace(F,"="+W+"$1")}M.url=M.url.replace(F,"="+W+"$1");M.dataType="script";l[W]=function(X){V=X;I();L();l[W]=g;try{delete l[W]}catch(Y){}if(H){H.removeChild(T)}}}if(M.dataType=="script"&&M.cache==null){M.cache=false}if(M.cache===false&&G=="GET"){var E=e();var U=M.url.replace(/(\?|&)_=.*?(&|$)/,"$1_="+E+"$2");M.url=U+((U==M.url)?(M.url.match(/\?/)?"&":"?")+"_="+E:"")}if(M.data&&G=="GET"){M.url+=(M.url.match(/\?/)?"&":"?")+M.data;M.data=null}if(M.global&&!o.active++){o.event.trigger("ajaxStart")}var Q=/^(\w+:)?\/\/([^\/?#]+)/.exec(M.url);if(M.dataType=="script"&&G=="GET"&&Q&&(Q[1]&&Q[1]!=location.protocol||Q[2]!=location.host)){var H=document.getElementsByTagName("head")[0];var T=document.createElement("script");T.src=M.url;if(M.scriptCharset){T.charset=M.scriptCharset}if(!W){var O=false;T.onload=T.onreadystatechange=function(){if(!O&&(!this.readyState||this.readyState=="loaded"||this.readyState=="complete")){O=true;I();L();T.onload=T.onreadystatechange=null;H.removeChild(T)}}}H.appendChild(T);return g}var K=false;var J=M.xhr();if(M.username){J.open(G,M.url,M.async,M.username,M.password)}else{J.open(G,M.url,M.async)}try{if(M.data){J.setRequestHeader("Content-Type",M.contentType)}if(M.ifModified){J.setRequestHeader("If-Modified-Since",o.lastModified[M.url]||"Thu, 01 Jan 1970 00:00:00 GMT")}J.setRequestHeader("X-Requested-With","XMLHttpRequest");J.setRequestHeader("Accept",M.dataType&&M.accepts[M.dataType]?M.accepts[M.dataType]+", */*":M.accepts._default)}catch(S){}if(M.beforeSend&&M.beforeSend(J,M)===false){if(M.global&&!--o.active){o.event.trigger("ajaxStop")}J.abort();return false}if(M.global){o.event.trigger("ajaxSend",[J,M])}var N=function(X){if(J.readyState==0){if(P){clearInterval(P);P=null;if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}}else{if(!K&&J&&(J.readyState==4||X=="timeout")){K=true;if(P){clearInterval(P);P=null}R=X=="timeout"?"timeout":!o.httpSuccess(J)?"error":M.ifModified&&o.httpNotModified(J,M.url)?"notmodified":"success";if(R=="success"){try{V=o.httpData(J,M.dataType,M)}catch(Z){R="parsererror"}}if(R=="success"){var Y;try{Y=J.getResponseHeader("Last-Modified")}catch(Z){}if(M.ifModified&&Y){o.lastModified[M.url]=Y}if(!W){I()}}else{o.handleError(M,J,R)}L();if(X){J.abort()}if(M.async){J=null}}}};if(M.async){var P=setInterval(N,13);if(M.timeout>0){setTimeout(function(){if(J&&!K){N("timeout")}},M.timeout)}}try{J.send(M.data)}catch(S){o.handleError(M,J,null,S)}if(!M.async){N()}function I(){if(M.success){M.success(V,R)}if(M.global){o.event.trigger("ajaxSuccess",[J,M])}}function L(){if(M.complete){M.complete(J,R)}if(M.global){o.event.trigger("ajaxComplete",[J,M])}if(M.global&&!--o.active){o.event.trigger("ajaxStop")}}return J},handleError:function(F,H,E,G){if(F.error){F.error(H,E,G)}if(F.global){o.event.trigger("ajaxError",[H,F,G])}},active:0,httpSuccess:function(F){try{return !F.status&&location.protocol=="file:"||(F.status>=200&&F.status<300)||F.status==304||F.status==1223}catch(E){}return false},httpNotModified:function(G,E){try{var H=G.getResponseHeader("Last-Modified");return G.status==304||H==o.lastModified[E]}catch(F){}return false},httpData:function(J,H,G){var F=J.getResponseHeader("content-type"),E=H=="xml"||!H&&F&&F.indexOf("xml")>=0,I=E?J.responseXML:J.responseText;if(E&&I.documentElement.tagName=="parsererror"){throw"parsererror"}if(G&&G.dataFilter){I=G.dataFilter(I,H)}if(typeof I==="string"){if(H=="script"){o.globalEval(I)}if(H=="json"){I=l["eval"]("("+I+")")}}return I},param:function(E){var G=[];function H(I,J){G[G.length]=encodeURIComponent(I)+"="+encodeURIComponent(J)}if(o.isArray(E)||E.jquery){o.each(E,function(){H(this.name,this.value)})}else{for(var F in E){if(o.isArray(E[F])){o.each(E[F],function(){H(F,this)})}else{H(F,o.isFunction(E[F])?E[F]():E[F])}}}return G.join("&").replace(/%20/g,"+")}});var m={},n,d=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];function t(F,E){var G={};o.each(d.concat.apply([],d.slice(0,E)),function(){G[this]=F});return G}o.fn.extend({show:function(J,L){if(J){return this.animate(t("show",3),J,L)}else{for(var H=0,F=this.length;H").appendTo("body");K=I.css("display");if(K==="none"){K="block"}I.remove();m[G]=K}o.data(this[H],"olddisplay",K)}}for(var H=0,F=this.length;H=0;H--){if(G[H].elem==this){if(E){G[H](true)}G.splice(H,1)}}});if(!E){this.dequeue()}return this}});o.each({slideDown:t("show",1),slideUp:t("hide",1),slideToggle:t("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(E,F){o.fn[E]=function(G,H){return this.animate(F,G,H)}});o.extend({speed:function(G,H,F){var E=typeof G==="object"?G:{complete:F||!F&&H||o.isFunction(G)&&G,duration:G,easing:F&&H||H&&!o.isFunction(H)&&H};E.duration=o.fx.off?0:typeof E.duration==="number"?E.duration:o.fx.speeds[E.duration]||o.fx.speeds._default;E.old=E.complete;E.complete=function(){if(E.queue!==false){o(this).dequeue()}if(o.isFunction(E.old)){E.old.call(this)}};return E},easing:{linear:function(G,H,E,F){return E+F*G},swing:function(G,H,E,F){return((-Math.cos(G*Math.PI)/2)+0.5)*F+E}},timers:[],fx:function(F,E,G){this.options=E;this.elem=F;this.prop=G;if(!E.orig){E.orig={}}}});o.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(o.fx.step[this.prop]||o.fx.step._default)(this);if((this.prop=="height"||this.prop=="width")&&this.elem.style){this.elem.style.display="block"}},cur:function(F){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var E=parseFloat(o.css(this.elem,this.prop,F));return E&&E>-10000?E:parseFloat(o.curCSS(this.elem,this.prop))||0},custom:function(I,H,G){this.startTime=e();this.start=I;this.end=H;this.unit=G||this.unit||"px";this.now=this.start;this.pos=this.state=0;var E=this;function F(J){return E.step(J)}F.elem=this.elem;if(F()&&o.timers.push(F)&&!n){n=setInterval(function(){var K=o.timers;for(var J=0;J=this.options.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;var E=true;for(var F in this.options.curAnim){if(this.options.curAnim[F]!==true){E=false}}if(E){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;this.elem.style.display=this.options.display;if(o.css(this.elem,"display")=="none"){this.elem.style.display="block"}}if(this.options.hide){o(this.elem).hide()}if(this.options.hide||this.options.show){for(var I in this.options.curAnim){o.attr(this.elem.style,I,this.options.orig[I])}}this.options.complete.call(this.elem)}return false}else{var J=G-this.startTime;this.state=J/this.options.duration;this.pos=o.easing[this.options.easing||(o.easing.swing?"swing":"linear")](this.state,J,0,1,this.options.duration);this.now=this.start+((this.end-this.start)*this.pos);this.update()}return true}};o.extend(o.fx,{speeds:{slow:600,fast:200,_default:400},step:{opacity:function(E){o.attr(E.elem.style,"opacity",E.now)},_default:function(E){if(E.elem.style&&E.elem.style[E.prop]!=null){E.elem.style[E.prop]=E.now+E.unit}else{E.elem[E.prop]=E.now}}}});if(document.documentElement.getBoundingClientRect){o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}var G=this[0].getBoundingClientRect(),J=this[0].ownerDocument,F=J.body,E=J.documentElement,L=E.clientTop||F.clientTop||0,K=E.clientLeft||F.clientLeft||0,I=G.top+(self.pageYOffset||o.boxModel&&E.scrollTop||F.scrollTop)-L,H=G.left+(self.pageXOffset||o.boxModel&&E.scrollLeft||F.scrollLeft)-K;return{top:I,left:H}}}else{o.fn.offset=function(){if(!this[0]){return{top:0,left:0}}if(this[0]===this[0].ownerDocument.body){return o.offset.bodyOffset(this[0])}o.offset.initialized||o.offset.initialize();var J=this[0],G=J.offsetParent,F=J,O=J.ownerDocument,M,H=O.documentElement,K=O.body,L=O.defaultView,E=L.getComputedStyle(J,null),N=J.offsetTop,I=J.offsetLeft;while((J=J.parentNode)&&J!==K&&J!==H){M=L.getComputedStyle(J,null);N-=J.scrollTop,I-=J.scrollLeft;if(J===G){N+=J.offsetTop,I+=J.offsetLeft;if(o.offset.doesNotAddBorder&&!(o.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(J.tagName))){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}F=G,G=J.offsetParent}if(o.offset.subtractsBorderForOverflowNotVisible&&M.overflow!=="visible"){N+=parseInt(M.borderTopWidth,10)||0,I+=parseInt(M.borderLeftWidth,10)||0}E=M}if(E.position==="relative"||E.position==="static"){N+=K.offsetTop,I+=K.offsetLeft}if(E.position==="fixed"){N+=Math.max(H.scrollTop,K.scrollTop),I+=Math.max(H.scrollLeft,K.scrollLeft)}return{top:N,left:I}}}o.offset={initialize:function(){if(this.initialized){return}var L=document.body,F=document.createElement("div"),H,G,N,I,M,E,J=L.style.marginTop,K='
';M={position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"};for(E in M){F.style[E]=M[E]}F.innerHTML=K;L.insertBefore(F,L.firstChild);H=F.firstChild,G=H.firstChild,I=H.nextSibling.firstChild.firstChild;this.doesNotAddBorder=(G.offsetTop!==5);this.doesAddBorderForTableAndCells=(I.offsetTop===5);H.style.overflow="hidden",H.style.position="relative";this.subtractsBorderForOverflowNotVisible=(G.offsetTop===-5);L.style.marginTop="1px";this.doesNotIncludeMarginInBodyOffset=(L.offsetTop===0);L.style.marginTop=J;L.removeChild(F);this.initialized=true},bodyOffset:function(E){o.offset.initialized||o.offset.initialize();var G=E.offsetTop,F=E.offsetLeft;if(o.offset.doesNotIncludeMarginInBodyOffset){G+=parseInt(o.curCSS(E,"marginTop",true),10)||0,F+=parseInt(o.curCSS(E,"marginLeft",true),10)||0}return{top:G,left:F}}};o.fn.extend({position:function(){var I=0,H=0,F;if(this[0]){var G=this.offsetParent(),J=this.offset(),E=/^body|html$/i.test(G[0].tagName)?{top:0,left:0}:G.offset();J.top-=j(this,"marginTop");J.left-=j(this,"marginLeft");E.top+=j(G,"borderTopWidth");E.left+=j(G,"borderLeftWidth");F={top:J.top-E.top,left:J.left-E.left}}return F},offsetParent:function(){var E=this[0].offsetParent||document.body;while(E&&(!/^body|html$/i.test(E.tagName)&&o.css(E,"position")=="static")){E=E.offsetParent}return o(E)}});o.each(["Left","Top"],function(F,E){var G="scroll"+E;o.fn[G]=function(H){if(!this[0]){return null}return H!==g?this.each(function(){this==l||this==document?l.scrollTo(!F?H:o(l).scrollLeft(),F?H:o(l).scrollTop()):this[G]=H}):this[0]==l||this[0]==document?self[F?"pageYOffset":"pageXOffset"]||o.boxModel&&document.documentElement[G]||document.body[G]:this[0][G]}});o.each(["Height","Width"],function(I,G){var E=I?"Left":"Top",H=I?"Right":"Bottom",F=G.toLowerCase();o.fn["inner"+G]=function(){return this[0]?o.css(this[0],F,false,"padding"):null};o.fn["outer"+G]=function(K){return this[0]?o.css(this[0],F,false,K?"margin":"border"):null};var J=G.toLowerCase();o.fn[J]=function(K){return this[0]==l?document.compatMode=="CSS1Compat"&&document.documentElement["client"+G]||document.body["client"+G]:this[0]==document?Math.max(document.documentElement["client"+G],document.body["scroll"+G],document.documentElement["scroll"+G],document.body["offset"+G],document.documentElement["offset"+G]):K===g?(this.length?o.css(this[0],J):null):this.css(J,typeof K==="string"?K:K+"px")}})})(); \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/jquery.uploadify.v2.1.0.js b/platforma/static/filebrowser/uploadify/jquery.uploadify.v2.1.0.js new file mode 100755 index 00000000..9a78cd32 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/jquery.uploadify.v2.1.0.js @@ -0,0 +1,258 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery)( + function(jQuery){ + jQuery.extend(jQuery.fn,{ + uploadify:function(options) { + jQuery(this).each(function(){ + settings = jQuery.extend({ + id : jQuery(this).attr('id'), // The ID of the object being Uploadified + uploader : 'uploadify.swf', // The path to the uploadify swf file + script : 'uploadify.php', // The path to the uploadify backend upload script + expressInstall : null, // The path to the express install swf file + folder : '', // The path to the upload folder + height : 30, // The height of the flash button + width : 110, // The width of the flash button + cancelImg : 'cancel.png', // The path to the cancel image for the default file queue item container + wmode : 'opaque', // The wmode of the flash file + scriptAccess : 'sameDomain', // Set to "always" to allow script access across domains + fileDataName : 'Filedata', // The name of the file collection object in the backend upload script + method : 'POST', // The method for sending variables to the backend upload script + queueSizeLimit : 999, // The maximum size of the file queue + simUploadLimit : 1, // The number of simultaneous uploads allowed + queueID : false, // The optional ID of the queue container + displayData : 'percentage', // Set to "speed" to show the upload speed in the default queue item + onInit : function() {}, // Function to run when uploadify is initialized + onSelect : function() {}, // Function to run when a file is selected + onQueueFull : function() {}, // Function to run when the queue reaches capacity + onCheck : function() {}, // Function to run when script checks for duplicate files on the server + onCancel : function() {}, // Function to run when an item is cleared from the queue + onError : function() {}, // Function to run when an upload item returns an error + onProgress : function() {}, // Function to run each time the upload progress is updated + onComplete : function() {}, // Function to run when an upload is completed + onAllComplete : function() {} // Functino to run when all uploads are completed + }, options); + var pagePath = location.pathname; + pagePath = pagePath.split('/'); + pagePath.pop(); + pagePath = pagePath.join('/') + '/'; + var data = {}; + data.uploadifyID = settings.id; + data.pagepath = pagePath; + if (settings.buttonImg) data.buttonImg = escape(settings.buttonImg); + if (settings.buttonText) data.buttonText = escape(settings.buttonText); + if (settings.rollover) data.rollover = true; + data.script = settings.script; + data.folder = escape(settings.folder); + if (settings.scriptData) { + var scriptDataString = ''; + for (var name in settings.scriptData) { + scriptDataString += '&' + name + '=' + settings.scriptData[name]; + } + data.scriptData = escape(scriptDataString.substr(1)); + } + data.width = settings.width; + data.height = settings.height; + data.wmode = settings.wmode; + data.method = settings.method; + data.queueSizeLimit = settings.queueSizeLimit; + data.simUploadLimit = settings.simUploadLimit; + if (settings.hideButton) data.hideButton = true; + if (settings.fileDesc) data.fileDesc = settings.fileDesc; + if (settings.fileExt) data.fileExt = settings.fileExt; + if (settings.multi) data.multi = true; + if (settings.auto) data.auto = true; + if (settings.sizeLimit) data.sizeLimit = settings.sizeLimit; + if (settings.checkScript) data.checkScript = settings.checkScript; + if (settings.fileDataName) data.fileDataName = settings.fileDataName; + if (settings.queueID) data.queueID = settings.queueID; + if (settings.onInit() !== false) { + jQuery(this).css('display','none'); + jQuery(this).after('
'); + swfobject.embedSWF(settings.uploader, settings.id + 'Uploader', settings.width, settings.height, '9.0.24', settings.expressInstall, data, {'quality':'high','wmode':settings.wmode,'allowScriptAccess':settings.scriptAccess}); + if (settings.queueID == false) { + jQuery("#" + jQuery(this).attr('id') + "Uploader").after('
'); + } + } + if (typeof(settings.onOpen) == 'function') { + jQuery(this).bind("uploadifyOpen", settings.onOpen); + } + jQuery(this).bind("uploadifySelect", {'action': settings.onSelect, 'queueID': settings.queueID}, function(event, ID, fileObj) { + if (event.data.action(event, ID, fileObj) !== false) { + var byteSize = Math.round(fileObj.size / 1024 * 100) * .01; + var suffix = 'KB'; + if (byteSize > 1000) { + byteSize = Math.round(byteSize *.001 * 100) * .01; + suffix = 'MB'; + } + var sizeParts = byteSize.toString().split('.'); + if (sizeParts.length > 1) { + byteSize = sizeParts[0] + '.' + sizeParts[1].substr(0,2); + } else { + byteSize = sizeParts[0]; + } + if (fileObj.name.length > 20) { + fileName = fileObj.name.substr(0,20) + '...'; + } else { + fileName = fileObj.name; + } + queue = '#' + jQuery(this).attr('id') + 'Queue'; + if (event.data.queueID) { + queue = '#' + event.data.queueID; + } + jQuery(queue).append('
\ +
\ + \ +
\ + ' + fileName + ' (' + byteSize + suffix + ')\ +
\ +
\ +
\ +
'); + } + }); + if (typeof(settings.onSelectOnce) == 'function') { + jQuery(this).bind("uploadifySelectOnce", settings.onSelectOnce); + } + jQuery(this).bind("uploadifyQueueFull", {'action': settings.onQueueFull}, function(event, queueSizeLimit) { + if (event.data.action(event, queueSizeLimit) !== false) { + alert('The queue is full. The max size is ' + queueSizeLimit + '.'); + } + }); + jQuery(this).bind("uploadifyCheckExist", {'action': settings.onCheck}, function(event, checkScript, fileQueueObj, folder, single) { + var postData = new Object(); + postData = fileQueueObj; + postData.folder = pagePath + folder; + if (single) { + for (var ID in fileQueueObj) { + var singleFileID = ID; + } + } + jQuery.post(checkScript, postData, function(data) { + for(var key in data) { + if (event.data.action(event, checkScript, fileQueueObj, folder, single) !== false) { + var replaceFile = confirm("Do you want to replace the file " + data[key] + "?"); + if (!replaceFile) { + document.getElementById(jQuery(event.target).attr('id') + 'Uploader').cancelFileUpload(key, true,true); + } + } + } + if (single) { + document.getElementById(jQuery(event.target).attr('id') + 'Uploader').startFileUpload(singleFileID, true); + } else { + document.getElementById(jQuery(event.target).attr('id') + 'Uploader').startFileUpload(null, true); + } + }, "json"); + }); + jQuery(this).bind("uploadifyCancel", {'action': settings.onCancel}, function(event, ID, fileObj, data, clearFast) { + if (event.data.action(event, ID, fileObj, data, clearFast) !== false) { + var fadeSpeed = (clearFast == true) ? 0 : 250; + jQuery("#" + jQuery(this).attr('id') + ID).fadeOut(fadeSpeed, function() { jQuery(this).remove() }); + } + }); + if (typeof(settings.onClearQueue) == 'function') { + jQuery(this).bind("uploadifyClearQueue", settings.onClearQueue); + } + var errorArray = []; + jQuery(this).bind("uploadifyError", {'action': settings.onError}, function(event, ID, fileObj, errorObj) { + if (event.data.action(event, ID, fileObj, errorObj) !== false) { + var fileArray = new Array(ID, fileObj, errorObj); + errorArray.push(fileArray); + jQuery("#" + jQuery(this).attr('id') + ID + " .percentage").text(" - " + errorObj.type + " Error"); + jQuery("#" + jQuery(this).attr('id') + ID).addClass('uploadifyError'); + } + }); + jQuery(this).bind("uploadifyProgress", {'action': settings.onProgress, 'toDisplay': settings.displayData}, function(event, ID, fileObj, data) { + if (event.data.action(event, ID, fileObj, data) !== false) { + jQuery("#" + jQuery(this).attr('id') + ID + "ProgressBar").css('width', data.percentage + '%'); + if (event.data.toDisplay == 'percentage') displayData = ' - ' + data.percentage + '%'; + if (event.data.toDisplay == 'speed') displayData = ' - ' + data.speed + 'KB/s'; + if (event.data.toDisplay == null) displayData = ' '; + jQuery("#" + jQuery(this).attr('id') + ID + " .percentage").text(displayData); + } + }); + jQuery(this).bind("uploadifyComplete", {'action': settings.onComplete}, function(event, ID, fileObj, response, data) { + if (event.data.action(event, ID, fileObj, unescape(response), data) !== false) { + jQuery("#" + jQuery(this).attr('id') + ID + " .percentage").text(' - Completed'); + jQuery("#" + jQuery(this).attr('id') + ID).fadeOut(250, function() { jQuery(this).remove()}); + } + }); + if (typeof(settings.onAllComplete) == 'function') { + jQuery(this).bind("uploadifyAllComplete", {'action': settings.onAllComplete}, function(event, uploadObj) { + if (event.data.action(event, uploadObj) !== false) { + errorArray = []; + } + }); + } + }); + }, + uploadifySettings:function(settingName, settingValue, resetObject) { + var returnValue = false; + jQuery(this).each(function() { + if (settingName == 'scriptData' && settingValue != null) { + if (resetObject) { + var scriptData = settingValue; + } else { + var scriptData = jQuery.extend(settings.scriptData, settingValue); + } + var scriptDataString = ''; + for (var name in scriptData) { + scriptDataString += '&' + name + '=' + escape(scriptData[name]); + } + settingValue = scriptDataString.substr(1); + } + returnValue = document.getElementById(jQuery(this).attr('id') + 'Uploader').updateSettings(settingName, settingValue); + }); + if (settingValue == null) { + if (settingName == 'scriptData') { + var returnSplit = unescape(returnValue).split('&'); + var returnObj = new Object(); + for (var i = 0; i < returnSplit.length; i++) { + var iSplit = returnSplit[i].split('='); + returnObj[iSplit[0]] = iSplit[1]; + } + returnValue = returnObj; + } + return returnValue; + } + }, + uploadifyUpload:function(ID) { + jQuery(this).each(function() { + document.getElementById(jQuery(this).attr('id') + 'Uploader').startFileUpload(ID, false); + }); + }, + uploadifyCancel:function(ID) { + jQuery(this).each(function() { + document.getElementById(jQuery(this).attr('id') + 'Uploader').cancelFileUpload(ID, true, false); + }); + }, + uploadifyClearQueue:function() { + jQuery(this).each(function() { + document.getElementById(jQuery(this).attr('id') + 'Uploader').clearFileUploadQueue(false); + }); + } + }) +})(jQuery); \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/jquery.uploadify.v2.1.0.min.js b/platforma/static/filebrowser/uploadify/jquery.uploadify.v2.1.0.min.js new file mode 100755 index 00000000..04592ffe --- /dev/null +++ b/platforma/static/filebrowser/uploadify/jquery.uploadify.v2.1.0.min.js @@ -0,0 +1,26 @@ +/* +Uploadify v2.1.0 +Release Date: August 24, 2009 + +Copyright (c) 2009 Ronnie Garcia, Travis Nickels + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. +*/ + +if(jQuery){(function(a){a.extend(a.fn,{uploadify:function(b){a(this).each(function(){settings=a.extend({id:a(this).attr("id"),uploader:"uploadify.swf",script:"uploadify.php",expressInstall:null,folder:"",height:30,width:110,cancelImg:"cancel.png",wmode:"opaque",scriptAccess:"sameDomain",fileDataName:"Filedata",method:"POST",queueSizeLimit:999,simUploadLimit:1,queueID:false,displayData:"percentage",onInit:function(){},onSelect:function(){},onQueueFull:function(){},onCheck:function(){},onCancel:function(){},onError:function(){},onProgress:function(){},onComplete:function(){},onAllComplete:function(){}},b);var e=location.pathname;e=e.split("/");e.pop();e=e.join("/")+"/";var f={};f.uploadifyID=settings.id;f.pagepath=e;if(settings.buttonImg){f.buttonImg=escape(settings.buttonImg)}if(settings.buttonText){f.buttonText=escape(settings.buttonText)}if(settings.rollover){f.rollover=true}f.script=settings.script;f.folder=escape(settings.folder);if(settings.scriptData){var g="";for(var d in settings.scriptData){g+="&"+d+"="+settings.scriptData[d]}f.scriptData=escape(g.substr(1))}f.width=settings.width;f.height=settings.height;f.wmode=settings.wmode;f.method=settings.method;f.queueSizeLimit=settings.queueSizeLimit;f.simUploadLimit=settings.simUploadLimit;if(settings.hideButton){f.hideButton=true}if(settings.fileDesc){f.fileDesc=settings.fileDesc}if(settings.fileExt){f.fileExt=settings.fileExt}if(settings.multi){f.multi=true}if(settings.auto){f.auto=true}if(settings.sizeLimit){f.sizeLimit=settings.sizeLimit}if(settings.checkScript){f.checkScript=settings.checkScript}if(settings.fileDataName){f.fileDataName=settings.fileDataName}if(settings.queueID){f.queueID=settings.queueID}if(settings.onInit()!==false){a(this).css("display","none");a(this).after('
');swfobject.embedSWF(settings.uploader,settings.id+"Uploader",settings.width,settings.height,"9.0.24",settings.expressInstall,f,{quality:"high",wmode:settings.wmode,allowScriptAccess:settings.scriptAccess});if(settings.queueID==false){a("#"+a(this).attr("id")+"Uploader").after('
')}}if(typeof(settings.onOpen)=="function"){a(this).bind("uploadifyOpen",settings.onOpen)}a(this).bind("uploadifySelect",{action:settings.onSelect,queueID:settings.queueID},function(j,h,i){if(j.data.action(j,h,i)!==false){var k=Math.round(i.size/1024*100)*0.01;var l="KB";if(k>1000){k=Math.round(k*0.001*100)*0.01;l="MB"}var m=k.toString().split(".");if(m.length>1){k=m[0]+"."+m[1].substr(0,2)}else{k=m[0]}if(i.name.length>20){fileName=i.name.substr(0,20)+"..."}else{fileName=i.name}queue="#"+a(this).attr("id")+"Queue";if(j.data.queueID){queue="#"+j.data.queueID}a(queue).append('
'+fileName+" ("+k+l+')
')}});if(typeof(settings.onSelectOnce)=="function"){a(this).bind("uploadifySelectOnce",settings.onSelectOnce)}a(this).bind("uploadifyQueueFull",{action:settings.onQueueFull},function(h,i){if(h.data.action(h,i)!==false){alert("The queue is full. The max size is "+i+".")}});a(this).bind("uploadifyCheckExist",{action:settings.onCheck},function(m,l,k,j,o){var i=new Object();i=k;i.folder=e+j;if(o){for(var h in k){var n=h}}a.post(l,i,function(r){for(var p in r){if(m.data.action(m,l,k,j,o)!==false){var q=confirm("Do you want to replace the file "+r[p]+"?");if(!q){document.getElementById(a(m.target).attr("id")+"Uploader").cancelFileUpload(p,true,true)}}}if(o){document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(n,true)}else{document.getElementById(a(m.target).attr("id")+"Uploader").startFileUpload(null,true)}},"json")});a(this).bind("uploadifyCancel",{action:settings.onCancel},function(l,h,k,m,j){if(l.data.action(l,h,k,m,j)!==false){var i=(j==true)?0:250;a("#"+a(this).attr("id")+h).fadeOut(i,function(){a(this).remove()})}});if(typeof(settings.onClearQueue)=="function"){a(this).bind("uploadifyClearQueue",settings.onClearQueue)}var c=[];a(this).bind("uploadifyError",{action:settings.onError},function(l,h,k,j){if(l.data.action(l,h,k,j)!==false){var i=new Array(h,k,j);c.push(i);a("#"+a(this).attr("id")+h+" .percentage").text(" - "+j.type+" Error");a("#"+a(this).attr("id")+h).addClass("uploadifyError")}});a(this).bind("uploadifyProgress",{action:settings.onProgress,toDisplay:settings.displayData},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr("id")+h+"ProgressBar").css("width",k.percentage+"%");if(j.data.toDisplay=="percentage"){displayData=" - "+k.percentage+"%"}if(j.data.toDisplay=="speed"){displayData=" - "+k.speed+"KB/s"}if(j.data.toDisplay==null){displayData=" "}a("#"+a(this).attr("id")+h+" .percentage").text(displayData)}});a(this).bind("uploadifyComplete",{action:settings.onComplete},function(k,h,j,i,l){if(k.data.action(k,h,j,unescape(i),l)!==false){a("#"+a(this).attr("id")+h+" .percentage").text(" - Completed");a("#"+a(this).attr("id")+h).fadeOut(250,function(){a(this).remove()})}});if(typeof(settings.onAllComplete)=="function"){a(this).bind("uploadifyAllComplete",{action:settings.onAllComplete},function(h,i){if(h.data.action(h,i)!==false){c=[]}})}})},uploadifySettings:function(f,j,c){var g=false;a(this).each(function(){if(f=="scriptData"&&j!=null){if(c){var i=j}else{var i=a.extend(settings.scriptData,j)}var l="";for(var k in i){l+="&"+k+"="+escape(i[k])}j=l.substr(1)}g=document.getElementById(a(this).attr("id")+"Uploader").updateSettings(f,j)});if(j==null){if(f=="scriptData"){var b=unescape(g).split("&");var e=new Object();for(var d=0;d + is released under the MIT License +*/ +var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y0){for(var af=0;af0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad'}}aa.outerHTML='"+af+"";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab$WJ+=tM3I~X2_i|5OcfbX$w@>qih=|s=bVv@faDAk zs-Or}P*nYWd!~C$_sn!p&-$jnODz}6Mcj4I-M{^ueV%)cve5$~NCE8?-}eRMF2F~`TfeOh(-7h9%pxx1bBGYt~D|pYy<}fFZ4!x;^4r7E~>~|4l~Oj@DF;Gfk(D`Wys{yA90Nb-91*C zda&KyKy`-=SyL-Fo#EcTK20bpa~l@u@Q&7L&jJ*XzfbK1a@GsnIk!AZqqcN$EQ2;} zue#l?g6w_}4Jthk`4KC5xN!CZDt|&P48p>CAYU$6UzAm0?smxjGBX>S)C#NbyraHo1pi0&;b9^NFsHYnHr# zT3vwm+WququYGca)UXOf(%d*T+H8`MSq1tYpM4sGaseP9<*pU(RzQ zE6JfwjWAs-hy>fRkjN`2c-|5>H+Hxvla?aAfBX^j)ORnetfm@0-~lQNXlhzkwg9>H z2JHCUsjTsCv|NP$IKqCduWDY^j(c?Y>pbuvcIusFz%f1hGDFKG+>`hV|RXFy-oXielC7GHxBA($@=}X&>mk0Is5W+vRex*&0^PI$Dwx? z<>9*7{_vABzcXrZ+EJe<39|VeOg7+n(g=5f=6C>1e=rV%j)U&C2+FfdHXXa*=(e08 ztdNH_a+r$KmiLy2h6tQGHzq&l)(orj14-zN83e_QJJihMAbfji;3`Bw>`U!&Ox#3O z;)1m z_C+B@nloU_0Vsv$Y|xT~!k}1E!9`nLFuKkYCj_y1^$^nwfrJbr4%_R31r)j*7&eJ~ zFi7)OlAm|#=69uSv^TG6Vb{#>QoErZOj$_N!#UB{2HwL{hcii#x{&SRA^gBp zD@$2=cptdN=feChongU6S6#3clgZLtcU`b?bIcSfWH_4y$pNkL6Ul*z4&%RZ`Tesm z3|g$OS7e`%Dp0<+_ZBf6JGf(&@o;`n``E_m2Ot8ei= z2@((7ce8si#G_W?vk9kG@8u zg@b)7u$4&F3Zk&o;P^4(6n}Pr7j;viYrx7wVTl?|M|tD-&&K4G$$`ZB(jv0Rk#eFz zlc-?WI*-*-amNrr<7NK|m0WF|S%yb~4tz88VBcv!WG+nn-~?^LyC zDwCWrS^?x9_5=d|-dT&8$|gr1Oe1in7N09Dp(WpwzkCe_!I2*jIO}dN^rAO$F$pnl zav=Cj0RpGxv>Jf}?U>^J{Z~>Xk!!#I#wQ(Vkp9{COdio(UjgID5ELeTc?L+R$;MR*OG z6*>%t$DygQI;{=2*X68+jNmDOw6OeWdsD{`G2Sv;1+QKGw?4!{t}$?N?*z6Yd;;j- z+DDpfymbgsO*OWUFkCpwLf}M8Z{j9u@I*Wu)8Gx$`PR!5Wq#OO7_9V)?_;<@Ki}qf zU}W~{CJO%%D$=NNwlT$R%_Wd}ad6g;KooIrp{v1X5L-HSj?;N*I!{xZDE&r{CJ? zuVKID_hn0hD1qj8k_Qrj!d5*QDF20aNjR0;IUVk%#=-Lg z6G5vF&{E(wy~79S+u)AjLnnof;R6KvYD;g+avHJ*EelDvS~fzRq6r`|R-52MW;72r z8awEAFpDO`Ml7zMB7-o&;I%lUt-?Syyf82pygG~`Q5d#5#K*j9*?5h<4jouLI7Q=P zd%*|8cx&7LqqnBW2wJ!O?}IB2JkWMtaImyn%O?NyG1Bzcr@|1mcfUdK=%-_0*uDC# zk5QIqTMogBk+q#qBJ0`-^WS)+IGb-?ldS7<>8|Ur*!RdLkXxgSOSews)j3FZklVx` z9~2v4K?s%iQVo15?`PV1R^CT9yIVfMcFyA7OWE_@y`M1z1_rsuvWF7gNEU04W>4hH zi@uR6wW7(Mz?G@w|^`6My#K~sIL3({C#{=3Kg*%;Z$l;lqyuJw{Lb*sml>@C92%wFE~6$ z<3M{s2R(tQ;AK4&3$!~MK_8gavPOcYg?^_;F?%a4`AyqqhZ-H{zkIC4_u>sxCTAw;tv-$nmgjw(*;k4A z^WIWv@#nuMd8n^ROaJ*_ILM%h?EmW_e&On#WHx92UUqJs?bNSTneE^$5szOxjhG!&hGmeH|n&{_=I`TE?@l-^m(wzYgO>v3Lv;6~3o5{sR7QtEy8$k|K|Z zU6Qhh-`az_H&kgJDDgi@_6#8w_`Jd~Iiau3dVG6CgZg{rh!*pn*N7(l{LzRu=z>(N zmm;lpP|S$ICi!OR^O&8vC7znv?@~Us1M>Tb;3&D3o76go;rv;LZ#EmP-!a;!+h*a@ znLJLXePm*rdHv4J;|x~s8QW}JGU=7K)c2%0;bup?FRhgbx!<^RyySZ2`1mDvtS^-Y zSG1jh26v3ttzNFz&z|>k#|0Ae75x8pN2YG+QM83qXfZ6SP-xPOc2a1w9B{>JQ1unW zYcXxx#cR^dti@}yp=k6qD7%vNwHVjUb3(O>YBeMzCJfZ&uiqY15f`o;Q+oQ zK;s1r?^>AZukLr+=RF2*w$n+Z3C2u+!9ljDq>JdFa>KQ?) z#<(glRXcRu_4(`BH=a=qbE^vEzP+4m;%!`dZ&&z-eTPUsrrV@SZ&{Ntmm&4-L9h zi$3S3%KUQ5N#J?sl$&zr=XOq#Nd0zhn!*{Qb^Hwxk93<-v35RN^L3`Fx;9-`j|`7} z_q2eyO&oH+PFtS0YeWy^))|NW+HQ*v-s+Jf5&G77OYqCLZW-oh-~LuGTc>02D0K*P z!zu6KC8$v9l78)^)VmtZm7qiXxgg=*wRF1#U9!5h1U;Mxn)^CLACm76;R}2!c=h_> z17+bC6XSO|b#IR=3A$8{EAm=+jVp@=9f`NHE1R#}>M*wnzu#TkFH!0lmNB<-XLW8_ zhAsUweksmGrB4J~|&l=+omjICs z$G}&SmX~14fRw)kh%CMYgAFOW1o&aP1XG5^Lg3@4{1Nc$;nL|2@F%ff#(`fCk+_!t zkvo?FkHV{1TKJkxM`y z@E`64tQF0q&22vG%J^;P9}1E_^XCx2Ax-xPQ)N@W*oL-?!t~{IPWJ!SmMc)&F2M)KjE(?Ul1@?Rsngo9`NR zHmcpI`5==w%WpYFaskDjqYl0L&o1Bpwrb@4U0crMx4+lKZQm2|q(A=0PK?#}BqDVy z@0eZdR4NyfmGk$#BprX)nO1)6V?tQdVbM6DIr*iP#0qn1-Vo+{)f;I^>5!^-Hf<8qrk)tV~Ss~%8T)+ z{z=2aZ!3W6-?x2;{b7`nqSm?9^^aHjyQS&PpLa<}&OPsuCzm^n9u8a!X5 znPGtx@bhEd_5rD?D3@t9X9o8Uc(X1E|XdE`JWf;5!I*dd1ps6wZ*f-FjmL;phGUOB* zie|bW58M{z zf%b)51t(;8>TMLlAE2DjUXW|xr0lNYjZHWd?uqh42SRXK;;lMGH`3tRs3+*>5d4-z ztFE$*DY!H01==5i+me7yTI_V&sDYcIT97R$DAEP(4IyYrTI_;toWcW8L1+l(3N#+v z3EGH*tD|hu9vHko?y&5QVYmaz^N%~MrPXRp^dJo-h&IG9K{H$07T4SkYEZIh3k(}p z6q*ff1+Re);!wQk2N*`|duUtBn$ljgzSIQX#6kv8HZf8`?iZ@>4ya{Ima zY~waE_v{e%nM1U4W+Mmbn-61PatDJXWsL_z1i#&iEgJ0qq>JsrZ^z>Q^6mU@LgWM( z7*$IW<;mBXyakGEC}z-wjRJU1^N)^Du-bT=$V4~-O2*CCK1a8 zdZwT~E{M4PN!Rhec0OQj0Q5{jQUkv1B?CQE;Jkn@drm;llqEgDmpyU7XG%8U1)@FR zGX1b>0qr1blMC4S`&5Ze9eoXhY|Kl|zE&gw>fSsL- zP|<(1v(x|S8tb23eaN-fZV=>pTre&cSn}gP1^C+|1}MwPUtC$)fd}8oThNs5TL2Fb z4m}6fZ0ygTtTtY&KtzWq6psZ3@BqRBstK_ohZ-)#Et@8woU>)KrqnP zBpQJpAld=wy-XjV2Z&t(y5?F2dVp3y*IWuf4-k_9bj_6p^Z=ni7llZ`i$W04H5cG5 z0@!h&YpyAv2M7hc<^p_xVXaU&ISP#b&z;=%f4Ym%f3kE@0KV1rpKinsto=(eGn^|| zT3bJ6{=4DO;ZOEMd;5F;1FvELXhGEXA0D9huN?+BIU3-uD{LIViN!twbbU^K0q`+a z!~onOi=6`a7*p&5z2m43^f9IY`V0qr0&weJ_!-bWP0>KFC4&Ix3|tTBwPYFSoPllt z9Mv!30Ot(a6X2-6TL5s*ELkA|j_N$X&r8Mtj%tcMfOF=zxf9^Bp8?>UX>9?zBc@ zI;qsv|gC92+$UQ1M0z^5@#xyhYupeFr)deZRU?&@+k_Ik(>(@w!E6P*n=TpXoWTIyO_wtP^tlb--E>cYKDPn9 zn~o3YJrv-(=^}tG2?6h>69Bv<1iG6}ALu<4;JfLb0$maU-c2_Fcu5F!H(kyTpi4q5 z(3doR0p6MYw|z38wUBZafPNDK-qLv;@bi*QfUmhY9s%8k6990%a5o9)^Aa%7^};*A z&r3!Dj_Q#WfO7_^2Xs_F0yt+{p+JAirxNIz74sV4sLq)OIA`EiKu0wz&^dzz`h(wF zfR}_m07v!RG=Otv2?}&cSPyj0V8;QD>XB8TOF}E4quLVSoN2`ZT@oGvUJ?R*U%8w` zfO7^8{To!H!I4{zw7(B;CUs%^4|c@A+8QzaKfLNn)6@ThHPLQ!Ij}AIMyk|`CVK)` zqUMd1+hcv~NkZTHZluW_^5?{JyyDMIzSaLZCsCm2b8f24FQ=RYo_9{UDR+Ku=Ol^L zZ|9~doH1I*--u+iNxs>gZk@>gG2JFrdc(vzfjia2CPm`MjCGQ5^^8rL{E75ZJZG%* zaPsFx>UXP-HUXN}7y&i!N0p3j}JqP;3 z<6i+jb+GOPIA`E`Ku2{x&^ZJB1#na|AOOx8v^daFT?=r|EM)^7)jUAw47MHMs21A> zIA@S)Ku0w{&^glrbV;ZKbk1O^0FG+wZh&(J?gn&JR{)(e&>euI`Yqrkp)Al*-3V~b zEG+^Z)pS7T47Ls6s4fS5moN_KsOAPbXP`irghD{)45k9$sJ89`IA`EiKu2{k&^dzz zdY8}`@RCpx=%}s-IA@kxfR5@rK<5m$1K_AG2YinhY%C2O6EyneS z`kJ(p6Z+b$$G1l`sJ~Z^Xff}3jcC%(AB|{(E=a|CDLUSW^)syMi1pEo4~h-2AcV?$ zsRq83_cQH0EAOM5-7OzrJ7;n4rR;g{-p{yc?%qc`HRnFSdMXF+r5!kVZUViQ0R1%I))t^2h-?n@hdMDI06slj0{Z@g@G_uJ4*`FgFBIsV zyjs9ZLS~>#LZI(IxP%4zQ73ai*Q^*Y&~L&_pcgwV(D$UC1N!1FrUd9?40OLA90qhj z19-n56b5i>wlC1v)zAb$uO&eD`z?Wit`{tU&KYbUzLZDl%mY_hFgb<)}20H+BN%%Kb zE1pQ>m6yCBDv26A5f8^Sc*AtQ_3}iSANCdoE4||T7;ezdR~V{Q^yy=y>90?PA!_d& zKSn(I=~x(cuYT)el;zo$L$G2bgMIk@ZU%=?&5v*GBTY8mI)tdE8rw%0{xEh3)2*Ji zkFq$K-V9cbmD&h@FeJ4Zs$E*U5oxwxyBVUM<+~AKwBWlLrq_(zh_b>EA^~rq0el-1 zj8w-ifv7Yn+QKQc7?xEiG-*ZwXAr;vy7K?)R7QggcBQg@onx`s9b<72MkJFtOGfoxK zU@$}vEN*fAu%Xsmls?TfYx7uUc=O^oPysZYkE83T$SgAw!FFVGh5wB;DfQcS(v9+9 z?l0EYnWx*yPTYez-!GBU*D75j_iZOxfQN{pm*TGAaS*luF$@P04{jdH9(axM$)Cl%VF`(dUNxok0xO5&y?ukKXl z<7RFtN&1hxRyeY~62{OjrY834<{R6qNpIV4+l#%H9<;^D;46^Ql2ANSsW zbt^glYRV@iiKqInWhU||bsg16Oh+TVy>h56w$#Y|N24I5))dMN-Gpj4BRzDisUE!T zCbhpA%E-to#Ik>BdLV!+VGz#|sHIB0{TZQRCm zr#ymnclnCCR2!p+dju&PJeL0Pgz<(KU&~n{Je$A?i2uk=H2J{6mVSM?!C+NEk1^2je{J;cbD?j4R!v0{aE6MdBl^S z6or53$En@UWfXQ)W&SxDa?dN5S$<0ubapdXk<^BPlc9^D`(}uyjt!Ie+b))kuU8VN zP|BpLe2R<$`VmYMH$tx6&c%1xx=Zgr5`|MB7J5_1nppg8$JNyGP>E;OB(l>TII-@b z;^s@ljB-mvqP`sj&G0brRf?DFc$|2-gvwGJ6w!PtoY%g-RKH4<5N=n%PV1zhe(hF5 z#IrSadcR(EoLBm!(pvW;pFhl@GW?`={ptNE|J!*)-yIbNe~!eGdF7GJZz+nNjl|)Q zJ|^s7XyfY^izU)|Og#R!O=v?b4*z9p0=QE@oGLl@s^KR^Rw~E4)TSemWL~)hK@4|^ zIT>cB6JZ^O-khe`%6k${n$S3(Gt#FQvriG_1s zO?atv`!U69UoLh^O${|-gM>&gJ9cW5UNy4k2~mMGIfPyD`7}@X)bR!GM?9U#p?mR3 zo%7wu8@kH8>w8;wdFw}F*pBkZFBn?cBgNiOzIjZ#`nHwpqgV{%;A1j`aj-`EB}1Ct zWxK!;m+S%$^j)r^T%dKiYDOOI8u?9{T)Zcr?$SQhkHTXb38$;f#kJT{1YL`7C+rpr z;UBanBQb6#{!tzxylYKPAk|JZ}Jq{{kh^d-;j zeEbqeWm%b#Xc4b`f~GBH@HMfQH%M*q@)jTuTs31<>yj1a z&qy? zmrMo^$6vAw9CgVq@XjS`{uO9nuA-dhaM>nu>X+;SA73(AImUarit?!ECA+}4*e}@y zMqIKBoOsDpPjCDsE6QsB-`x;jkXUTtp(4x^#J$fbk1iXRR1>dm%tah63ppTcchtSB zRfnx~$7Rpi{VgGD0Zf=2Q}|T0p$kqGtE?GR_RRF%zT&V&zso)uR3Vu$JG&e*lv8sI zFN{VhFgu;=LyEUDPshlsxiFjQKCZH~w*`pGj=U)PPOVzFk9AXsF3~oEs13YsZeP z(bSW;op-;2p7)rgl-y(f<+>cZSF^A$vQRX+-^LgHSalyF0z@i#q>;WeycZAi35gD`P!eO9xlG5j)2io`&;^YC# z(NVLKnPxMX-MDqvGJdxhGZ@6sW)}2H^Ye+>(}nw);zC(cFPzamiOs*1SD6Jx1HC*Z z3twqt<&w7HZe|}uv(6mHpA3&YAEi7NpFfYACDO*o9O>qkZ`z?1P@eO&!)L6|FU~&W z2JsFt8#xhRVKBwbjdlHQ5i36ap_+-k#M9s@rKj!9OHfY(_tQ7`2v| zuv$-D_@n7)Yp^X>>V838Lq-nDF07|0yX!}8k!l7^ND3r2e|+q3WHb47*#Ae17*k6u zCCcRFR}?{9XY}lywU+TB@3VCuE6ft=g-^}Azt+ge&)LR%%b0`0&e;K#g;UN)^iFQq zYg>2&f^wINIKL1Vf3;#-%a{A&;eFCwya^HX<@@9!A~BceZk@6M;$4UC_1-d{nL8W$ zSlq1F}yTxODb_D<<| zQoUQ&3R1K86!SV(HhiFrczBjozGtHEzHqp(neB| z>2zG;bfRGq&xO=iM7eUoq}kJ_Y@Dub&-8t}>xE~8SxwW6ZcJSmiNNi!jLeB-S#O~2zM?@4!opuG*(^G)A` zCoXg)d^X5c`u=1}2JNfwC)j~eb%iw#<@gl8vR7u+i{BpR`5gTiZ@A4$!pu@aR`MVYjUglk-;1zn-Y>u>pjWiq=(bWVM&5;;E{FKaAj^WdEH7U|4$esxci1Z0|Lnx*+M`T@}t-AT`+3qP4`kg~3+H$2g1 za(!I&JVNj+)W9U=DDOw~f+Sl6DRv=fA7L)qQ_Jm8FL*-eO54%AL3Ri&x}BQY;Nx(@ zSy#87PagiE;8`JLM$W{hO^Yg@3Bu`9PYAl+qW)(BrG@Ze$v!A{Ppb0#ySROTfG5)(Z%~~R4bw@} zZuam?x3l$ymWSWaTT9FdlGL^)i%wq9j;f#g(p_Lo z!4mpcO?C-`Ojg0^=34bfwLXHZ!#2XG@oQz-_pyhY7q?}P_l@)#U`=1n_XZqNh!vch zQMM(+uNAS)Kiwvpm0un*8Kwm#H*e>R`q*fvjUf?t3TJxQTvTPUnIK~R0UjorlTTWv zn`^BC+aYZv`H3%z^SxNkNQe<>FtH1Xo$ah^mKSNq(S&te_k8s)`cT_^$C8T;?+`0Y z=~*`o-ysg>Lt6O5GeGd#sUR)m6l4FTM12Y?W7EThnH^Y0G^yl*S@U-!XWiKb zy2*oBwTwvHy9Aote1v|WjTM^tbXsUXDrmGQb82iXznM^{`U$gtGP$1*ror35t{>bV zb6=zX&bC&wVIoa96&XMp-J>6LOoL6#F%KmwVkMewMBc~gA zA_Ekng7tz81x;l@{gyTwY-}~>FUI>9iMl&>XkIDDTcck{| zJJ}k-B|HM;$zIM~Ks88PJ{@SP&4^6qLFqBe6$Plg3C)Uwt}j>5u9?NwSC`^_ zcmQ@5$I2`pqu{C`ZvLV=w=KRY>(^FoBN9RNrI~e2%Wxyw{kB2{9Y{^PuFv|YD1Y7$ z!eOhac}B@K{ihoz)#=;s%=R5(7U&9K!lg&r4Ha2K$HWo}&^0Z$9D|dVf*E?S39pb3 z%ihbwI|-Hvs@Jt>tc(#m-hK1KmMCu*lkmP(2O+(8GC`jLP7gq?>qVvXmf$ptqp$Em zH}1k3Igh8_I?aG z)ev1vgWq0RPcv5dB#sBSDRO&0cCorL@!ImDyonmF5^x3K;J z>Ycs$_Ga4)Q;B_j_+{gfQs|5>@aiTNXZ!0y*ZAbFVu`*aH(&+H9tNt-ee<E3 zCt2Ivr%pqw_V)6KN(zE>Q|Dp$d-WFX-o2*PZMzsM#TA6H@3>c;j^sQ#pE^AX0b=!O z*gp9FEv`%Nh3j?7^u5piBEAu>4JSiYnLdR>^%f2DFI0>TPn+ONmD9*&?hYSLZ^&A? z{MMUUvzbtes@m&C_e?StufzN=-mTWqyRL1000~)S_@a#bD{9qL=`R><$J{I1o|rBB zObxQ(xekw8&SO1i>5pIA28f=An~riWYp$xHLSWC*27i+ba0?k#BR-M6TQb%S{6dQKM9y`RcrIfVqJb{?5ipBP1*e>jEC-!E;!Y}A%N z3-l-?oknN0uSa>L?KcPBH`gCK97|cr&xaC^#jVi1G9)FJm~$#`3FtrC;+2Vu)x&V} z8H(KVI8U*Xl2vf_d1{elwtFrLIjRiMMDGn7zfZ2P3S5~PL$p80=DlvfZD^@j`XW@nfvmSYbt&%pY5y%$ z>viFd(Z$M9CcNF!zCCf)o=w!@EiC03w5YcWR&t`Z9(8^w8}Xz}k}#@8${mw6U)QIu zx-a9Mp;cfn3nR=hkbl%A%!obI*$~{;CL>FqEpu6{)4D(%9cIlF5~kVkdik+ zCZ6Lr_*j|T{32OzPVt&f-F;-Y3-tQ?8|{-8LD2;duVbwa=0z!&=~EvkFHv_N=%~En zoWJs~Jz>K``6h>kP}kEM2i+$8gOGi5VjZ^*Vw05nt#L7%Z0Ki=lkJeC2V08?CH}se z)v~A`ze@JQ+=?c(BTG!1YKK;?gCCgsHNr18)4q_W{S}E_|ngY&22^q*i;rao;sV|G_F8&G zUmQVUD{hWKhU4F=mZnSY24vfor1^sVrm#~SimOdlWl;yQ9^Qq8!>)oKc7SBe!29z;7WGExvY-#YxbH^~XvE^5JQQP10 zxPNq8ftZcoCm2}?mm^Q2zx5GNE9aKQK@8Z|a=g~Jz8|hiXc@&G!*bg)r}Gub=dm7` zg^sbEnT$@KS3b9mGUZLt=jet2v$PKxCG<23NZ9xu>S*sgsUPKF#Zo;nTMnx)MQp)xL4^VWd~>2KP3F3)YMc2^)B^dOOQcz&@FY3Vx`KFHyx z@$=B5r|*>_&T_3==zpbI_M$|bDrV!l&SON057 zUg}uBb}y4H$ljA^loWs~mHKVu+FFrllhu8bmn_qRt>Lt(PY=A`a-#w zHuU^0d!>Z-6Q1I^z@yICo_mt8&j}hsWQ2MQ^&|sd8j_T}tzP#Q`6<$6-jL3z`L#2= zmwqn`MyRKLyVggZ8&fIfalAfbp?3OY03s~6EigH=>d;_jvp(fUa*N>OJnm`PtOK=R zr)WAqcGU~EPcT)@*SId?$TD}7JNH#=eShBBm0RtXE9<`DDP+$ESB6_I$?e&xd)$FR z(0YY)Qo(+`j|I8qD`O|*n%=lx<(iAdL6B40PlM&Y!ePS2&#(4r6)ex!PeZ+S=td7Y zqfYEfrjM4tk@nOUoLgB{NzC#-YT5gZ}s-C8J3wnLDumAFhuux$Dpm7^116WOxJIBaAWUg((FzNZ{o0mQ=ac# zn#ll%r!GGqxdWm8`gs)}5ipKa_n?_knTEv9xLDQp$ut|?>Mu!c-4Chvgpy7%F%)lcVl zgs0HM-=u1{w`#h`x(AwHrlbi#p46_~@5~PT{#V2FVpV9!Q+6 z`S@r-D#&GXvm2Z$QjA&if3FlcY2#xvDbp}WX!Ig(sQKcI?8bpliJPBB4S3pD#XUes z?qH(GP?Bl>brLS=>Dm|2^SL^g@z3P+?TBpugNJ>^9$nn(kFq}v)xD>NJ82Fq2zK?P zFyVC^UMQ99QGi!r*4%QBADn-kQ^? zi%&LvGJ&>;6;+^N^NXN|E<5h4A9^CMD_`#dKNG5JJZj%*r_T1#+ch%|oS-YC&c`4| zW#|jX$={^DH?Db(>{K`L%-)YVe-X7k@8q11p%#W>7QM5Dst5c#_%JTa*$v}mUpzBN z37gT*nOLjW9$h_MEd9?YN~NKu24CxRSGz-;37Emg7N*b7tB4hso3P!-%f;z^0dyz7 zywAL4r+YH1o6}KfH`a;Iu8Ty(i$$dZ)WUtbTFDD9M;n9|>qfVRV%ywNO-WO(KGpM# zau4^Deb*zceSuS8-a(clmmYEOz0ax@UAz#RH?Vq|QY3EaAPIG}^?C6NEnfUO7P4@o`Q&p? zgu#=P{PaRvtrM`Q)#+)v_18t-M-z88KfAv6?|!y@bG~=1cAno#*Ixc$(ptNp%q1r8 zW@gXpJt53&X+v8p&=<@|t_Ki~Dpm?XeON z;f6d`_sIi{j~kDh>}2D%hD-{w54&mR4W>tWbS|8v8TrfyG!F3o68>OSmaQPWuFo)v zUF~jLm#^E;cOhd=LkwjOI^vhuNrkhq4$MMqZO?N7QwbFmMd2h^w9g{BzM zK@Cx`pwxig7%Dr|gXevFF+Of=0%Ff-gDit&oJ@WB#rRt6PO|^} z>f3I7GFCrsWiIbj`M42%zpd)pIeh>q(^Ik}e8F|l?)pM}Xg~3U~?!u68l)#A)LkY5c?dOjmdZzGhEQYC4wrb00xi3cz zWk&CkeZ08s9XO6i%y1BIir`)prNeAKr(v>_)Gk(N+QG~(=cNf9f2T62Aw|j+j^;?kP1RDI?UIv+z5OK|9Dx|7gNu9@s}3T`aT+d?`0W(+VCR`-Bc(zj$by zwBT~*d^Z)Ob1ER9`4g{8(&}vDqA= zTX@t1nrmwEe(U#h-|5umJE~;&c1pXp)iD#9^hN#!Ji-8xVFqfh{Bndojl@!=rtH(- z>Fi>FBx0Q#u#`V~-d9!(TS6y2GTFr!b`%)~$alSKbSy#TP4f~DcGlD;w^>hJ_M7>? zm^e^LVI4QC!kA|lAZMe;AKJKg@H$9#j3>%c=YFyX&ma%0GOst#mde*ReYtgSc@Sz8 z%~_pjH^m+B;@p_KapfMtLvQWjMafx?+8S5N(r3l)1CNY$#{0ac=`-M)wB(ak-|!acJ<>t4ery`1rFUszSE5LaXVh^=O&R!E{epzci$FCD?5d)Jafrj#2}y)^lV@@HyIlZVtVis_@L;2(3?0yWwX z89lsoLEiSbGPQanC*cwv)mA(d;6kWcGBMU%R>AZSLwH7e~BGa+egm$IqFvw%UQ>L=M~kcik}5N;0lor z2*XJxQ#LUcxFbk--=eZH#q{T?%|rHH9u*g4-O9s~-hGI=bfrbm8)*i<<+U;9eAX(H zn?b9>{MkeKRE9hSza|p-KrL%y+RjCSyj3fyi39vKGJ(!X!+ny3>8>wocSu}jgoCE} ziZe)|wqr&<=g}j-7@iYWP?Gq1UpeDLO?V#*D1=_y z-%E$yV)Q6W)lP1pz@_-(`{?8F7B{IPKDXN@TTkBfoTIO<^KH595|+ROJ1w==h(84SyHbcY0u`DiosNyHo2S(xGB_q0$5SwA81@lRWwj zC+{0*m7iIFrPJHw3N)*)OJCn?^EMdjTD;SYV9ZH*7kqm<8ni-t&MsVBV^1cYYAT=#;(O_S zh#MYbw_xZu!SHP2e))*bJ$%nkwYBn8>3&U;Q6NXtUso~1)x|T?SFhZeuY&bHex45b zbo@9G|IBHTY01SI^RA}pQnfIqm0m3bCBFNy zSaL1N?UBd2uz+*IZrK>Ck1|NgFF$?NuRJXvsLoLO{Uo6uPl|MvR4+1(V(UHfh1Rtq z^XnG3j9-+`Jpl`;x%4OOc8%W4-@3s<@k@U5TZHcb%f^#i)?Q!Tp&zTpqxynI&CFjs zD->~B9CoZ658(0O+q5uuE>Kk%bPO%{5&dYQy8A$H#h3WNkhNdw%8L&KLIs;U3_gyW zq3)~u4x0*8HEzf&c$Rm|Jzb zy`<=qgtSGUvog|libOf%DAKLH3Nlx_2%BiU-wzk(K~XKHTlHjj;odm534M$e;4Z$C9vgW_h*Ul zin~p|@d!a!E}?#}KWIFaJ%ImFnzSE5dTKGnPNp(X2l~bq$IH3*H_QK@45m+$BrZ$DvgiqiA!IC81I5#1=0mpw#6b3Gd!BD! z?xUA2jXD39KB<^dj4Es+&MAt^(U^{*`og-%B^v1 z;D;=j0AwkQ>?@Z~A0<31Tq|NzO9w$X`G&h&Vq&mD-F_Bv9TFWv6KY#U$%to$nLZED zk1N8CaV0e3dNVv5vHe=nrp$$bT-WXCze#B;VF%)ld|@;}9R5n2Q+TW_s2xYB8FJ?* zCU&#yUUVF>{FTt#aiunaY+59+!dlm`VuO_DhG*};fbllo zjL58%ev}s@xDot@q;s6Y%}zo;MQcqt{VQ{RlT-KaC)J-oqP@kxGrB^Yu z{uNJ@!Of>Tp7qm861pEU#>bmiP)sQ((Y;woQT_Zondy~D7qU`LO4IsH+VgSur`3;m zwtbmD^H7+TzTkK|EWMp=d^aa%?~`HFXw$G}!7HQSk1aG!57z1)UHyNoU1M`449~7l z-EOs0e7KM_avm!1rMhesLc?z2 zL`?tY!&HOF2Dq1GGn$wSeedzpW{8Z!69_Vf+vmV0vi`p6_jS%JV*I`s&xB+eP3Y$v2vvi9kg}uPtlsfXo>if=WFF zZsb;Yt?U*iCtX$EpQT(HF{--eD9()<`fxVv7Y7AROR>s?7%*Z;1(8qOX{uZsoyyS; zkVz1U9YJ|ft}Ih$);=7)jF2y~NNPpmUMf?`VTH*fETaZABls=2%lNz#t@k_XFiNo; zGqUAGI9l$IBccKMDVC2PQ#n4M>m`RjydMR*uj#?It&So+EXr+vZlj>QB!36DCPqbf zJU{hjR|CcLkVzr}ot6m~{{1ubsj%fWKnLH>ePwXRsAwLF=!DnNj|5}nlTha$w41Bm z+t6=gmWg8?{cwTBz7S`0OzM_jPTee&pNNsB%D)4Kl~;Fe0d@NZQb$M26<+@BP7dg52%J}=&rQ8L6lxm zS2eEF@*y-$OHGY4c(i(o-SOEsh%-Hh@IzBx>OfJ0r9-FOJlhk1n@djyB#;TmUCNky z5Un#yk4Kj$8(NcmHxigmiYbTguc&}eA6P_zY&(Z1H$I|}3s{q4dgU2}77%21sZcD@ z%N048E)f8TzKS|jk{!}^_-!90@9&^csBRZ}0?uSjgB5v_$gbz=Nb>2(NC_(>bIn)@ zB7AdZQLLRj@LW0qllPB3a<}dy!tF_FSq7BW35Z7y%uqzubETIF{H=#lDOx(VdfM@~ z|JG3ed0eA3*hmJmoakxFwDC$&usUb7K#BOJO*vl_@)1;_56`P1k+$aZb%cleroV4N z-|G6q)&=xG&yi+RmI2={0t>K$V+gzEL;NBNigz2hI4$Q}B>Ztv z;nGf@(97JR^d<|XF?rr9*}A$HmWAb$p(m6yO_0jtDzK`WAYgeRiqK@96p93IzEwKr z7~FbJHSLfim+r>l+!UNZjVY=Mg|o_tHj7^iX(fZHb@6AdLb)~67h#kVDE15y`x^?? zV+$XDlYdp|8I{VJ#kco6S`N}wOLhmxP+g>F&v;tp(mLlS=bI4X`yh6ybPGCWoZ8I5 zlT!M;ikXmK-z=kWo#i?3?#xoVhW));_X!357K1{DsBPxjU*~)&3PK-avHm$Md8TpY z7pQV?Z@h_dl2S0BB=I;BKRVBa9q`<;gNlbXDwSof#cEKwq)Eb*IggE_LPl=P*r zk-JLkj6o)4k+mz>3Ee5&MeJZ5+x*~GZ?juCTBSm0vNZgmB~~j1G*R+Xi|P{-6+d^# zP4JEdxkN0lMu!fOmNNKw*0N95fMiw8SyA71O9s2r_^;g60?VZ-&%Nbm(Tz1c<2CK zac_>uNoCTz2`kyDo_*ujc0itDD!P?{pVofI{m1DFC8ogbGL7fv+|7`i9KIL6w)3j3 zTp%{VetS-3k@duD)*CQk=RQbin!gp30Q72AN4jk=JIAEf>L?>Gqnm=*$Og5dVtX*1 zH|;B5xmhzOx__CepK^8(xa1kHUB8WMMbUB|qIdD*R>rw8jc`D#l?Dt=rFhc5TwcTRgqvR>p$Jqz>zwc_Q2IArja=%q>!cvg|X(o?M`@ygs8|igwIidWNjFv=J&F-GNaZnFq(7u zM1+S~iKa&D%okS~sA(t#TSOlBGxg3}GB>a=>8G`e&0CJ-q#ZnOaTed%-vlt2Sm%Qs z8;l*g?9nhVMpvtni-9!XnAvJxCugKcE?K?q8I=*cH7ltPoR816{R&QQSpL9(Ot^vT znAbW5hFHa`bJ|7*i;DVl*qjwWPDo))nBRq0l$-}3fW_az?Agq^2R2nkg(nu$Z>@Dz zjm7cw$dxSjoSz!Ikfou+QcwU{nH||omEdk#;#EX$FyQ4SCl>MCanI~dWY+{?+`84bC`JnPw7OT^~I?#ymi%jL)fA; zWJXC3JWe>)70T9D1#!QUO4U|$)2-ZyvR(9jkk;bV!lR7nNr}l1_)|&d&Wf{3_dO?x z2+{PX0#u?HWW4_q`RFO8^ovE<;Q^D*mcBR+5Vl!zNvmr#m9kr$nTx2$d@gL@qnB%T zolr3wp|oYX=NY+-8>u03>;c_zjk?V&Hs{OCERJEt>kE;>PY30g2a}^(l8Ih@w>j@F zTJ0Cujt%0#b;%|zW1#M%ttI>&^+ERB^TP|rLmVFmO-%iEeo3>7*h>)752>zyn1}28 zR6qSF1*(jNPXwB+liv`Dn?{6k_LoMjcti313W0&K0%J_1^|lNhT$cen96`!hVdkw~ z&n)ndFVOubdGWmYV5!KxOp0Oza$@jy^>&L%SbDK%ThTu^q|N^F1TY73^y!<&$sKWp z*xgmsIY2X|r-*SP_EmJ4R7#cR(XXUoadmi5#J=3FNicv-T+yAb0XSQIp6q|KRr}~FaP6q)^)-Rk!3UASvU@I{XL& zZGW{z`o^l2Tpb<)GFgP#tvc-R%}w5OE97(-vjkJWEZi(O)LqrdBPI~4r|oHw14hs2 z;6!}fdK#ap<#p_of;Z8}RlYBFUsEgtvv_m5O(Ulhz1ziZO4y1b%UqMo&24A&27>9BT z;)ch+u3k3PU(6AT7>>*qtn5ltLK-1LvUn%{hBnrbMEYciIwtRz1-TCN!zs5^`3j2` zgDrLzbP+#$kr6tld1jeuaK9Yl#|pk&hQTU-fnKt_!c!r<{JG8(2F&8$Q&di` zTXcDs3CT12V@L|4d`i%QGesj`zeK9T=I|yEDB_qQAAbrsr`E=rsKr{EV_mIi4|OpI z>%v(QtS+hAA`61R-NX&l`{c1X+RZ--D3ooQ+wnoF3o-+c&VS5xO)Pr00}7}YHH+ZO zj-5VqFSu`7lMvJVLn;>xj@UFdMFhTv>KQJ=I*!8P6tit7&sN3_x0rPozk+KB-~^DeS1K4# z^Nsyn*Q+5_$ES}uPb7-WNhKG2LL-m8)paI~BX2xujIgS* z5zlZtv|{Z!U$Y?2QhZoD&$QCa101DjR}$y+QZ{~WzgDa%WLs#q6xLf>y7{)z`%47k zcI(jHmC-M?=x=M6EFDE}F#v8_m6nz7{Ky{VMX`*Q%%T3JhKx94aR|&%CPIHDS|`}~4SRvOCu9(~$O;CJif6NA zw~uvaLrA?#uUIGjC>Fq3T49Oxt+WnlRD1uUu&oMczEwz~PGS;e$g)?NFuue|-d{E? z3E2nnw7SN5*g8G3jc1m%pWRk{&8N@S_YTVP`(d8PpPamhZygR3Q7iMA{K-B0QiPH1yff z+cbW+LqyT?r8Adl^EkY2^p1CgAk#y+5bA+D%|78k=WZJIidn9@KPmFx1rxv?G6IA9 zy1s{?33TUCH4_q>nU9J-^Csp&X1eM4Uu*hY^X2mkP`|!bENYNVJisp084gi41nw<4VePyC$&BW0ch4Q@tvBs|$hcFtyCw4eEs|4ge7fSFvV{YNF6cG%C4~s3qE{GSN zYpttU&E0uwb2Y$dA0$wYyl8I=x!a6bfPb~y4nx7>0{J5EAg+701@vKb1a@PtZS?NO z@mQ-$%Erz)Pi6px7n*Gs$zL>^JU_lHI~(t1B;QJltruy=#l_D2hjq=;`^ivor~BgX zo}n*#7lr4vU%we@D z%Jny1&dx~1VF+!7Ec~TlYhP?18Al?OyFu5USP}vx(mtKLaE930%CeQTL-~NVZl^Zn z2`bNKt&6vDz`uPshQj5sC@GU;7p53a!^L!|dLz)YjRICO7yO(vy?tnUkqCnXq|QiE z07o^X6nTl9yV0C8WB^)73$Es)u|DFp zNM4^;Lk1*1uwQgE<~KocN=cD3JPT2HT@BLrRLoo9e{7NQdT6#`Sr=c;>#Bcejjw2a zrBK0}PZMP?@=DYxh7(?SL5%yl9ZbNnxIrN>HU%QZ!Z2~8q}sCJM0C63fpwK-;#2lt zVatcK54ozGn%D;M;IW8+AYN{|op9a2>jXv`OsM@ZBPZgA(MVxoZ-q^EDTXVKBkHZ0sTS&F+2m*WP@!E8V;09|-7?x$y`^hc~cojFw?~SCQ z$Evr~LvL!p%120R>QUSuvnqg?i)mb~HH7`v=rf4-cREB=scAL%XwAgG=I9!43~hft zqP|R230_p1^7A+SH3dub6u3;=iw;D$O^1b}Ls$3}5pCS$hFF`R?)^3M^iNg%Zrfzc z>|QIc4*C9GJV`R#k}5(snj}L9Dps#78y8d?j`G3q?hFpn$4We(B6KU1U1rRe=Q8qZ z2UPOTORZ;NB~d?Ds?N8|Q70)aLlEN!N2U3NZm# z3LBEe<}(qY;y$(k69J1A+^r?%1Dvhd34X(Ogp%oh(`j92KqfeWX2-Y-SG?0 z2k&;TqmsX${oGC4foHB>K4k7=_98^!?_YzB@go0hYGWu3;u=PEf;gug9tAc{Zb;8& z)`y9rFdz&FR1@fE`O7#Tva}=B1_lOpB|+goBnb%9{t~_|q))wZlNnJitQz{&U}I90 zjwWKpmE-V_@FKBYjKHQ1$QYVOicKFxLHN<&L1Ur9;BJ`_0#Y(bm0bypDct{-ZN$^) zbD+v_P~)y~A~aq>6yMugMV7^dM}|xm_iO5X#%+yh!E%?K3ZraSu-%Y?5 z1OVA=_|ARmZ2K8KwZASAP}~7r0{D%~c{TMP^Ib_a^SkPNhef8Q%@d1{_djpVPN2fB z&0i=e1(2o+{hpiBFDzN{IhnQ&irAU!pZ^5a?(m1+#5_Z?eOYXlb1E0F&?;Ozz7tH||J+7)bOOF+mkw#bZ+@N0jXHU; zC!x90RdoUazDSs2Vk*b(pzs1n4k2@=HJg=n=kEnv{p^=b?)P-p6GFeaF%S47nCRmcpSoM#XGNEV*QZ7~S` z11A2y&J=fI;}DMWQ*Y_cNbA2rXQCqw@Q8kNl?k@2X7lL$Jba&rOO}$#wn*F&16>|_ zl4(9=W+*u7{XMyOzsyVmB_bn**frcebqlrmlalNCmBCyql5k!Pd&wHC9lqiHq*IJ2 z`}?3cO~U<6j2l2G-+`|%{9g3DN||Q!UO@W83^)^VwuyU0y|PHt+;P@IsJ8@3coyk| zDbP6Xh&f{co|g1OYGe*98!$L4!Rvrms@%=F}R4sw(_NN`Avxe>EiO0D;=f1Qy zlET#V;3)859g^3>A_|>n1KFNqO*2r8BLtnNlB=Ky7oNbXVr8RztTTJ2o*<(yee{+q zwE4{cSOq-Y65MXwJR>t5@QJCf9bWwWBhH)=2^XD6Pw}aMI40AoHi}!}BM}{xFkJS) zm?dE6i()O;c93V6D(j<`7xq$f!od0Ec~qILzy2mr3*M6GPaMeJ_X(diPc?Dh_o?Xd zrua=?tF(LDW1fYYV`s9AG&$;diF7aDqRvF%c{G2`ThPcuI?i2n<*V0G%#?ld1#sWK zya%|4j|5#mafnLRj&k2&G(cK{zZ-Tx9b_m01wKUR(h_M9#SnU~g5W(-45VD1jC>zK z+g#O#8i?BuleDp}+a9?G&nUUSPo1{UcO4-#y z5H+a4t|A-cdKL<&k9QUwJ^s1tJ68-Yfq9_e{z1<^AINC0vHIu|Cfp^#3xBf)yr_M<5rIBAH{@8>u+XF87`i(R|6RO? z+C(}BHjeb}fs5P~B?&>7)o;5A~EJE`zW=@m6@dQu5Fi#;LFVw>`c}Z@v?PPh0O}Bo{ zn38XrL@1k|fVTSnz-c^qtZa#p$=x&4bcpgHi!ZhyWf99lJNmpiPI&8aK;aN6 zmEP;XkF(ZslDmJpF10p)a7ZZy_xiM0UTDrwvpasgZ0E>BWpw8x)>!$Oo@NzHRVkdjA7Axh zp}yg>{cW)i(Zd3?5T?j(j8BEkOirU|Wcz)1W3Yz~*a9UQOEOMh4t}L~HTHyokpG^_ zH-d#Of-*I}Lu-4IHC_kh@Y*fbrrGDYM&xGiwW%GEpCX^HJ)3#Vy z3;waTxd!;bgTKsXQ1B!ap++D-<1y>`i2D#2DJ($+J*Zr=JHj2PcWxL_FaF`i$m(}% zEGr6hDuyu2hr~@PqFny?gPnC}%*i`)$SKD$6Cl}#pT0-6G287j$8P4AxhcVUky--g z%tpN^yb-MX`Qzw6oI}%dU#xm6HuiF+s2XYY}noj5SdiNX>yFxy%o&*pirKlms)(>IAlx~=uc0kI0q3^iIG z95#yd>Eb6p1~QY;sivfpi%jW4SiEn0^B|N{lo^>svd#H z!Cv~Rn0!4=z0dfYZFO}t)52sh-9IYQbj0*_vlW9Nu*~jEmrn<~r3Xhm0iFh80tvmz z`X!liFat&b)Ri>er?d8dT9B!E=kyR-vDV<>U}~Y^ET_f#=Em6n zEpN+mI=`&s5)T|ML>b{#uDep+Xk}X+H#T}gZt)DMU`$B)P|QOT#$-Qwo(bK9CGpsu zCTf35p>bOPxGX$xqgN{e*m)zYjGa7CGRY^;%P03g@3rf-H)~R(`Kqd~fjfUf7sICH z{@Sq4uVd}jV__sPj%F@PXC&JCtFm7Gx(Wd9z*w7M_NcIG1kE}6+@tS{CzYG(LdbuA zX&VCRb^sUboo22Wf*&f>TzzSBr|h2uU698EbEE_-BU$u?WA2=tIj^KA(#(tJ1y*giZ%6 z5yBVcgKNf0RvdC7>faW5=A+#gBt9klIw8t84w_Ylt{Z)L^5Lw2@B@F|;KlOoIeK-d zftUa6o1R32SOw(DJ}6S5c{6$y!#q8SYWDIuF&X0!dF@R=|8!KS|C(1QSyCjwT-j-D zCa~G&p3{ZyvR{$k1)5H42;8RpmkxvY$gA^$c4p8Ipu<&yc~mhi&1ExjvQus$k;Xwk zed2w9P`FGW9;6k4S#jXRE&vb2$rL{_VdsiM3KeSFs7n*+55Mzo76c;E0RPCoeOf{G zbq~HJp|dpKj3Te*^fSIRd%9#_A>N8+C>~Pi{yE$={0NVL= zjuD-vI_C_(Lu2TX$Z{1|X*`LSg_5a)OP**{|wDHZp- zP=!EIWgLFT`p=_reE`uzTLuBq=!bi2PX|eDshbG+46^7?SzpFxvgejG>GwcwI{S?2 zK>qaQB?(rPW9q5F^q;h3KH;l_aga@1YS4xe)oCsD$F34Z^0l3BuOC%P8j>cA%fMbf@8u8h{5I5a64jY9rZWS0zXk@Mqff1&>)y* z!7#~Xoa2AC$VnITP!vBY+qf_t<)c@EWGZX86u*jDT(9s)U-~oC=0a4{TExVO10q@v zOZLq6yBstybxh5X|Gxa&T8>1dg)?0MOOpHIIP&TcpG{qynZH(ej$TBF<`ae3^;a?v z6t0k{WMnthstDLA#55~nxwVq&A(Ul~R;GC?pp6W0157Et48CAPc?*9OxkXNAgQWYVO% zz{%tthJfJbY_d2vW27L2xG8kXzq*SeB*8!Wj|aU|o9**8d+?#Tjp$OUoo-!d9_*0%1d()OQP?{ zw%T3($sO;LG^4L1HGtLuJ9vQwUSoc$6`2?#$JwXcoGJ00yad~JamZNz%lu9poB`HL zMoF5NqhrX&ysXu=gX-z!*go-qp$w7WhF}+hBdqRR-bcA{H*p756|mg$~NQXRh4nN zin!d{vKLv_VMQ{63^FOla0C`B+h`GXnX8osH~Gu|oSN4-@@457Lb{={%fEn(eD_YC zzA^!GCyYBQy<#@bjq_2_PpT%cuhZ9>ZRS@n{6Q@88{AIz%<#q} z3f?H(tmCQwBHE2IwpOItN=iMk%*05jBGvrwI5`jAD9e}1paGZkyQt;o@6Te6GH<8$?rRJJ5~%gaOPM-UvKZpy!j2Fch_| zAtNQU8yjHnfa~`y45>cBwI}mx)6mXNd%(pLf?ulH4DkYFvZ14~wpIlY2^4#$jjiN@2tN;t;-mrMezc}yYi-JM~JyzM+i}e8T*@l1Q2pl?!epno#TQPMI zzWnQKKp%Azb?E3nNnaG!fV^XlVlj$FD65yGAEMAH%D9D=8cA|q^{-V@V)!?XZAO&EmX<2-zA>-2(N~IEdBFv=5m@WF`jrWVU9z4{a_3MJN>q!bwq0M z`Ur({>v3>o+m@KG8<-GMKIk*kwdVEoUp%{3yl4W@eFU-d&52%X zD!kWSw?+J}9(P?aC@hI=2G^@9b9!Zb z(#@kts$sOi8SGQD4!7$B@ZFU`dvz>IO?Gym4wGBfH0%&kR@OD82cqIUyb1!rkrB&@ zMAm0xZ<(jS_pYHR;<|GSvS|YLI2`l75a~Mx|M@d2Ix~w4WeT<)Lo%!p6baZnhIk{o zOS6%hVk97iw%Pp0yi5!u7`6dY?;2;N&GUu^3hq#-FJogldE1m0FpUQ1$6JH@u6%Lq`(m`;h;UjZLYwjT2o`tBdi5Wv{>f{P=hh9t^MfLOW_-iK3%Yqn>D1zBMak2SFpFn>$1lM?FI|*kAO+iHD3u76=x(MK`mJCg!#@L43@K&V_&jw2?wHFBO#U zBG272q}}p3YBZmJY=*OqDjT|eF>ZBi7GOx1HY&@4`&_8F zYpgFfGuRVG1>*kL?+Id`+$?P7p_iKyj+iKEGJOxF627O^LoHn&2{@a++ta>6o(R_8 zT(Dk_5(!;g<}#AY3hYs#43&|LurOEMbl$05dK+2sy423kJ_ND zAXgPMk8AN?_i~k3Hcn_H>2D<&(=-d=5JQa==G=8zM6iV( z+3iRU<%(-*1B7@d;om@V*{L`A>c~1z^Fxz2^W-ihJ}_pFgc5yW&#r&>rkr!M`4Yb8 zj9tVpB;Lh7O*Y-?#DQ#U`C0aQ`a^q6L z%A~fl`savhx!<;a)nfk0&hQLYR1|kahlnt#wfDVPE;$G|D4R30_SJWURni`s@J5Uz%2 zb5Mv~OdgxL4BCYRi@}ke^AIw1vM%bjxd`UlI#@{bF)m@sVZ?rGrKAaD*--N`J(!_n zH8EPqb$O8W1#0E7(G*5zc455 z=hV2^)V#P8mxhFcyDWmCj(S1u=TtSSjZs$nZ-pRb7~BxBa6yFD1`DEI$vj9KZo?n)1h4rfCmy&yM*ew>jmCopM7~fV`=_q@vH!Jj64%b$J;q7B7QipzZh1Rz&P~OS z_?~V_{33|>_N*xmguU&FbLWp8ZdVfh1z)$QJs$x9e5e8Y8ohy_F1zri&1`c?xd2nu z9)V2XN@O}$`cJ-^3u#6ORUw^FE*>5WzKp+_zSOfD@Y z-9FOE)BA3;{+tdxH^)Ap+4!b#Zyop~)OY)REm!OF4ECJ}gs|_hVhN^bb^NLWmk`x^ zKF0`|fZ_20Y;4P-?=QIDD&)}iHDS1;<-?3Ju?pKl4v|}Vn9R%~sESx6)`HE>tQ0z- zPa0tiH;xCig=XrgEnLXTN(%0VJFsB?SQWY3^II3j_&0=UJ8yGFP%K?xlJKm@@;Xjl z_?ym}q$ZOjI!FT{hEnFXOlXW-q&A(PckNHRX9R=2!qiEx7rX^Z#_m)m$e9)T*N!9h zdaqlYR6b@N8JElxt-a*?JO9I5W)Y*9ANx*V>1eSkI&QONvT1Kr!4>oOEk)8Z6{X}g zaqxKe${*za1d`RLE*;9CZp0Ah5LUr}gX`1QkH?`s=3$NMNt9qO~D{cHkYauhpU zR%61;3A7O4$E;Cnuwl&sFh@o>9d=4nM4nEGW1cLGjIgAYWmq$p#0A_G5G9)8@SR#| zqxp^#aoyYrXtvP>MTN2SD+J5X;C{_1yh(+OgVMhe=lc_H(%9&TP>K$1)zuonnE}8M z)<4J>m%rzfUt|-bR^eVn$~3|C&G*01x2Nn`Y-6pAr-`*+1Pcd2=xky z1f}{?i>bscu?vdxz#EO0aL28ODOYJjNyZ*V9DJNKqT!3aK^#E3>)!o@CNFIh>gL6= zJ+iX|fu+lURo_lxsl-d2FwTj%(P1pr&G98|e2ha=>2su(WjxgG1sm|5USUc5OUVeJ zd#6V)=I?Mlnx|^Nqcl$BZfIK=QgLBA1gJt4%*r{U(2BXSQFu8zjK zkk_7$SZA&OjXv}d=wDTVzIGR-H#GBr2AekzowC^8eF>H{g4SOLdL&xeBaJ%62x?a? zvpLA2>_qJTd?4&~j%Ype<0;({jbn_= zZg-*RPm%GqBQ2p45FE~h^?w8JK=t=YQKC^)U61bw_L|J&-r23!-`h=NvnePYIY>Sgw~VPsm*&Mn%w4=5ax1IPOzXY@!sQ2TVD+4zsKXs{)^QbvuKb3xE^8^UH#YN{`TKz%Dy$eW3-_Dqon#9 zQFXd9(-nS}pOsX>XSJe@aSeYU(zRGF!pN3*S;o*ur$B9Ww{Lhuf8;?xuIFWhF(QjV zNjHex%QJBeU zNS=cWLBhKd!DN12*6ffIR-uTd5&WCMzmax`GIg#vDb5S_&4RR6j)-~^;CFw^#h=-m zJ8dC^WAJTFYB6VFe2aKp&;C@T-%XSbx*l@!btP(4$LEfWr;##CQbbiVJA9QlXXzch zZ!-o4eh+`&z6O0N)K7clS+|V_mPiv23~#aKQi0eB9VxZWFSh=E>}MOM=`MHjgH~-V z)+qNS3NkLh{Wo$gE%;P9jZ5V@XPiYLMe{s-!m16@7A?Lle8&CgYYCVqT3Mxbzh4%o zy*;F}dA#1!SyM|Oq3jR-ARYa8)v;BJbNWK3?yhS5Cply?#d8-3%RDgzGREv_0af(1 z0l};EMj-1(u`dkLr3_u}0}PiFAp+V_$_unKKVP=V0d-T;2JmivOEAV{+2}(nsq>Zy zvp74p@OsP&82BSO@-byfzS=9t1L&A)9Mw$XoU%*)+oGxrvxh1pW24Yb>+=liHVsxJ z9<{`~ZS=opkC|1-=z>H}nF`aK0c^k$)&$|Z{hx7=V#X#}XJ`5PfX+;t#Wj0I$*b#I zsr`oFr2*>|-4^@?Hq!}|oVjN}%}yEN|LY;XHW{~iLrjSz*DF0oJd7I~qVI{z&oU|i zI7{}~;c4ek{U$(OALOM;4za<_v}(Yv89|hf;oJ6@Ih-N0``za=8N~RAd++#&J8}Jp zi|#y!V?fF4nvO0g#6M2fmRYVMNnx2AUuvU^*XR)1D3?vS8J&IxC36KfXyr0AH%v1) zGQ%(x^a0KOVfrI1TAGHhg`eLYZFBTZh)#{+?eu-{m1?;DxyL2{)%XVqygay35vjJ^ zWgkK~S{h?HDHFvW4MG$bt$$Fdn4j{PeHc{=_b~53&gr1V>&_UK>Xg=wDI@irfvCBl zFLcw%3v&GrT?f<@wd4;yPgwAhQ!2~IMr?)_f;dG}Xs=__wuO8S zpBfyHuXEh<-&?zyjDraT1NH_C^+E+&^ue3Xy&5s)3f*JoWV26Jp+62G6lETwXjOB!4yx-lR58w+ZW*p(W|pfINnb@B~<@$o;-N`ceDu4AQCy>KGl~QlT)oOK>{mZL#VWOt%(W5Z07S{Tr1j#%$jiPptaK zsd^g44)=4dltv=%)a>ff2WSx1F{~f|@;-*i>Xy}L`&#^Gy44hSYGf##; z9ol_{V4ajqgDna_1@FT5WnwzVNec44fw{|rn?Vct=BH=G|{NZPj_y~2})$Dz%F zy)$hc29>3GLbCnL?31M5yP`U2?yu9MLxX#PS!Lkd(Y#{m3@pgecc&W zXY0`Y4=)WJ?DU(|y|ajK5iS9$F~pmB?~&iDVJ+NuhBGr^7DN+fPjwf)x|1AU_3ou9O3|_su7WV)+O|Yqe@Fch5+|gJvVxu1z(?_$10|^(e+3bBz=ybgo@IN# z`6VbDPUQ&Z+!kWeA#c$KsKGSg`7Ha|hSX{9ymlb>!<1w^5HC<|vZ;_Jn%ANbOqaA9 z5;m`2ws?gD<($doAZm(sxFLi5EwEK~w0CZ=vVhCqX$Y(5rg`^sG6Tfh6nDHA#k2pYHix z$THMXJ^ue3ABxGb{+tB<200tT=qnXBN7kOx%YoiliXAy>x%}>jRs+|HQzf?9NYKCL zm;JTkB%X`R=jJT}Nnex#0`9--J=6NMp^Q88JBK&@VU|%h^nXL6TqzK@bwb0T5o;yv zBBtf_V$udi*Yb}qVqWI^Tgo-uH0e{m@`7 z`S<-{@7DMGyS>ptncuECgS4sTjz%71Z|^V1=-*6`EY(Z3K`V}9l92T7{y@V0t}A>d zC_0YfOO>Fhk&OoX-muwsKhXAhblYRu55MQG$L4uk@;O}NJ{Sb)zBM$UA6(#j?e6!U zyn7!gxZck2co=_J(74@{=!q2aU;l{TsUqq%AJ0VRie#9pc#xa(29X#-Ip1YkVQuf1 zrT9dMbr7rwPoPB_)kwoMimlua<8Ok_nH&{_cfPBfBk~WG`+&}?l<+*-#5URvx3daL z^4ev8{_p%oSA8yD-B`zOMo)nT>xl+Np_la zj^wELH5HHngQ{XW)-7431{7T$V$`5tqK=|AQ6|36nf_c-gu`Irt>Jf}m&7%n7ZtN- zyt*V{(82BpFEht};`K@(+}^9<(0(yu0fNa~sYfNwJCplRkcDJ)$kefnzD%wo;a_~* zzpY>MILBZ6CxNafJ=MBCPd)I*Wv+~bE-JC~0v%p@PY-1@cId#%@91^uE6RkFrGKTP z{xv1m|9&NrqOnkZrlB44duo{Ra2yk@&v)BX5qxvs;wT}2rj#*lO=q?xYd;7CXu~}o z4ibLT>cE?N0E3+ljCj~3RC=dI4*1}3?$zV4b>FFW!>0MLWBK1S%}S&<`c5!3F+-7~ zbQ81N3g2qA_+9)gAmyiPtDP^FV%zH+{)HiDER*->x)X%xePX>ObGD)Jx?8F; zS0%Vrs2|V^I92LfXF58zqXq>#xtMRj#(k>wQI@D$ zB|-S5-l)xee!0-0KO}kdsp*ri;ZSF_>eq|1f%_lozXMU@^1wh>Jki#kucRu3`MnG> zf60z@j|yo~;K3Fw<6&;TnM*+X(+*bM0aqt(xs)+h={kl37bzHx{m4qL25olGQ)|EB zY~6QfO|s~TXz1;uH`J*USF7sE@UBU5b=W+x?a$(|;(m@#m-~JgyIK#X zPEx}@pDCrLs7I-Qf{+%5feajX)|SR-<=0lp|w z_${9Fah+yWx*N-j2ZIUwj=lW)RrW;-kH7Yp=TW-R@-R10Dnc6iyR5n8J1h7br{1fd zxcT(_fG49?y^EVoHf_`NOHwd8;ro0byk0vKY0CA`?J{v~dKl?=+UKiw_sqHxKz4jE zy;SkRT4J6#o{{G%n}g*`Z#ve=;rdP3-u-eFnrXaT_BV1Yz_IskiLxr~V&*_l=lxqa z7jXA2|1Bw-V1n@pC$~HV-{b1Y(2z^M*9Rb8fq1a7`F+cyuta=56q?@}n`~^h@%qTq8pHi-9O^yg$>nbB$5wfz`WD zbdtaEQDpxA&;RFNVD}%|i+5jvbW~zIum382|72Ju2m72olH)iAtmk zmG(^L#q`$(dKyJM{;yDaqCxDsua)#vgShYC;o@VufsN>e2azwp0rb+ZUtogY=e>FT zG74;wC-NFe8LW}__BHY_*o_`L8J*;v+(!&8w5>eMQq1y@!#uQ74EvB*AE{=MJY^(5 z(!G6wBf~UF{uW79MqrY<;RUx0=OkqVl9P-$KE`q=E6PH9T~3l7p!0mZnZBfQ7XFZYtbrE z|8)7)A~~XDcG=XTI-;(0dDS8xp|o{5*PQi zyDw;2s0UrXUyzJY(z>kUv8%sUY*M!1I)BaFByGVt`P#Ng+k!{?HDZ%M5h<>l=!{qb zxolI^2gwAiyD8{{ybku>l)QZ*1yA6s_dKqh9bD>4|64o+vp{n%q*K%>8_nP_YA?bvrm|2tKR&5(|ZnnPV*yHi4_msTN6_LKA8wk6sj*DJ)`mg&Ujc zF5-AaNSdiHVqJ#^nwc)*T}L2qz7u(c8~$PQqX;%`#1!!JVJLJ@y+Ml&vD^|7q3!R% z_`;Zlva@L=f~xjyX48Wl&$cV$3uzV((I&MB*?8#Rt(PtMJmBap!t_^3n;I?HJQ19m z$}O1H;SQSyEx6SYRGacG7|!8_n>sBx&Jp69YAskN;r^Q@EqEsp=$kS=uV}*+Hb41b z(?+muD*0gMgxhZF`{3q8kZsEOV3>ptonf|P)^z_lLu0UX*ZO1z8emFx4ctzJu zd`m7BqP``Nj+xs_cE%EbYT7G&#vOpZ(TjJ+^oSze%X`N8h}PLlcgFUJ8r&-#%qHFU z27BNYwC^>vpBxGofexU6`j|oe#31-v&;a&mAJ=F<^(b6obl@cyPAaKNM9~1h83hca zXTyb+N-`2|J@CGkTJLo#(a5*G{tGi-Sb$zojg`R6AiVh*?x0L>2 zGi#We9=Q%}#aHb<4)YY)mr6_>l8SKc0edq+n1LRO4pl|y9Q@Gy3Wlclp^{*p+yN{I z|8718Bh^!>B$=ml2yKKfnhm-2fJy0@R?^MW zQGLbfLo*MBF)V&`Bp0HN?w2=Xf_+;2%!Ni38Uyb)-+}2lz7!(J41=2|!PpnI94Uop zq6ciu1Yr7$j$BBYp=0oU^S?0E#rKW`P2`4P77L|C4M&P5YQvDKJ{|K4nBby;BTWIl<|q%GWdz}ZX~X1M5dgzH7t7O^%!Yla6?(8IhY_XkVD zbIi*Y-H%YO3H`ry^sk$_z`PgzkC3kk9>N0qf0>!WTo%2L(65OezCHCnKN{aN#BPbG zZ8EEEy&d1=8sC!O*<|F|;;-K1sNNED-eh&&5<1!BIoXn;-LyMv@DY=c%t4xf*!BqQ z=$}>k2uX<3f)BbroM-v)NC@YkPedQ|{@p=61N$(vzcE4KjUwxf-eEaQ^kHv*Yl6lb zoz~lXcHx8C&S-*B1C7|xJ}dVTY!@>@u8CaeVLDs(p=swa!K;ZA?xNa`IqUZ!YG+@^ zc8P87GTg2@oA;q==U&H+>s#5OIeXpCw2pBK_3m!lUOPMS!E0w*$2yI<>3-OLI(xo- z5kN2XiVlj`9kJbew&n9y>Lp!dT#v#I-z|9nmlQ5t+`u-`S>!FV1a2-=y}M+4<_zH@ zA%&b9IniUggKB|r5OQbaMvu#m_gUMm$bViL(g@@4t*MLvOFDJJT|Vzr+;4Sk zdNjgNNOvE;#cMt&xtc5y6C|PUwZ&V44^W1F!X3!DEEiu$x*~{i8#2^KY{9`7ldjfB zBml|i zT&}Sq>PGZDglUiwS$@}VEy_kr)kMOO%s%dIA=ii&l~tw_B0NY$9~0v@ACLq?4&eku zYg_aj?4txc3`8!F=05Rl$@7p~#Q;VrB2!3BpYXQ$dFZVYuu6!6pPe7*BNIfF;+d5a z-VVic4JAmh$1}1g@R!ANlqHDS#k1Na2qEHm5D8Kg@pgj^R$}~;86l&JHjDyE`h%5L zLj2+s@Av6H3}spI@C#=|jH>K2{Y^q01Y0rGz0nWjQYK}JPGT8Mv|_J&s~^s#lFHOO zcwvQF$EY7!2?|fr9xS&KtP|4@tyG$4WExzyqN(H2kE>J{qNhrX8SJ+rs$*Y*I;u6% z8zxo_&RbE{aWBO}nOBl%24B}PEkz!IycpUN*9K3l@aou>qK{Os86Fa!2A_9dxY3J3 zs6n_45sAHnTUKvH!PH8zj0#D7yX0BiC;Wu#iou#os?@M;&$jj1(q z739p&oVYT0yo>9`)*8L4dcts%_%Qgii*!Nn3y}cPGQ=eg4DRe=Trm4aNvP&9Oe7u* z{@q2rVDyb_2eBsU4p!_6UWoaIwkxeOx+HlIw(Uw@NZox6P?TcS930psx?sP9f>?5s zcn8yVIWGk7!UI%(F>NH#4aV)VT?pKLdsGf$>P(Uz%-!X^5WYJ&EvC~T|E7r|r$H>I zi4E7FhHJiL(I8~e#4OUFEYd`?)*!Xk#NE@N-P1%$30GDrDwx)!D1~aVatNe+8&c1q8+xCBGKE2`#imk!Mm+j9uUd{={O3Y2Ed za@h-|yc_$mukp9^ZuX@;LnFih#QlS?jM<*O5o(}Tm8YXoQ93tEY0uplYoP9wC!~>C zIyOsc&)FEWtahB|rO{TpHcM;I+Zea3PLqeL5mDMZOK|ww6Dp>bou{TzQaUqBameKv zE2eIo$D@%}I-* zqE}!)rH*_PO_$Q3tB`xez!nmw$as8w| z!qLM^ENomRVp_^h^-Q+_}(ZbXp1kR=RI0r(l5D<;?qfQg#TsWJ2Qzplp3VaSt312hfu$?y~lb=d6o|@37(Wjm|nWvPi&9{4Vqz(<6{qf z#2$NtJ@N&6;uUmI5jy%BI{X5m|!VtP#o`zWz_6hAzD8-!8JtQo~VmTW%EznA`| zSVA+TY*5RBLtqO;Qp}+lQ#L+pX3yW4{;F6=Goox{*78sQCp{d*RLnOMW;guS^1A?c zdMb#sSa2rXZluAIG2UFix)q2^Wjcgd&D6E&K!m(|>`ai=_p=QVe2S zpb30P|1tW;Mucb#Y9`NLkUj;%76_*pfm-$pz(!Gk-6Jy6l2t%6y=?TYjTq6ysF@9a zefkpUr9ec+$f)JM09N|9QAQiS`YMe`g^qwjdgG{=jbweu(x9V- zkbq%&)u@n-czx*7(2<3gfPZ?&sFaPg`&ZFHY71Neh4g|^zI_pQu;@^hg_?kEdi|*A zzJz;7>!6VZkHF9<$v%gBOzZfnnKOTL`pPKHK974`>x6_EEq`1(@jl<*FyCPbOO1?! zQLKHIzfrzp?dI$Jr|CDN=)f))c{dth{)>Mj{d5#>pY3n--Poh~3oLyoTp!G$A629u zZml1?ryoM1ADN>6O7A zmSjoU(OM|0sz=AV0yeiq>8RR7O4U7Y^QYEx$=tj_ysUD~V3< zCYzO7rzI~(=9Qe|E_oQulA5D!6V^(~alez_l%UE%K7gk(t*k z@no8QT-$;rf+IyQV)5@W<^#2sORh&gLaEtZYF2D8*CQ)0O!1WLel^>jB?@43CKbf2egJwT5Y5wVOz3sKaZ_$E$5Q34ha>arSN_S8{j|2~wQNh8M|RiP{;84!IkvpD zWJ@YX)G3v&+O=3w?2j4ETJELxF*Q#k+R9HRbR4o0VPkWIuI3TLr^9m!!Ei=_6c46uvMkxV|0u!ZqM3 z!S;ob&6U683rC5onC%xgshH(y)>_oY1nwzLak=h zjjR~`=C0jRZX{SOrW;x@G`G#zvTQ_C&7&JvF(J4~=@!${Z$wnhz5sO?Z`?F+t7@4y zqN?Uzh>hM|cBg51UCp!*`DfH~>!;gV%ZU+QHQPe;pRud0d$*^S=hYX^^uiFTQJk%C zx89a5qqo9fs-c)|d3U~5a%V2#SgHxQ8&ON-Dl<=P=BVmcvD-`w!bn0mG;?Td+r}MZ zmD-s{I4*O7dy~{Hx&^*U$djP5o$5ByvbT!q%+efXI99ba@AjwVY8B0ysX20G)M=~9 zZKdUS71x=qIeKO6c4e@JB0fs973((8va^bD!t5O-K9;>T?sm}fcNO)7 z(L1tjl*L`QrD9d^M9e$1ZD?)V+1gKEepyakj%fKqp3HuFHWiQ8_wVo&KYvR7h^` z#NNUA-#gUD_dx`m>83qw7fO#BK@^=?rrkBWy5|*lf{zA4G@UscT`s%A=b3lhk2*nA zo!J}Rr@P+gZFiE7CP8$axzb&9yLjgjcTA6;p2>r=q`Px>)z3@r1RnLDse^MmyG(a^ z&(rR#o-u<{I{QrzT+W2=3?H4Iaf8!32R07q&hYLO0x}3kjw%5n-3_(HIKil?J)22p4TYXQkRUr8GSe{`&-%I}ZHTmxI>$ilISgK*g?*)FePQL%l-au%8 zETo6ty!MSO zIR`dTIM!6pEAzrP%H-UAuPno0JtF4q_?#eoR?MU@5%an?a_Jl(qGGJ`9&GdCH!A7e z%&*+TT6-kSf7QOzd(A~iilq`J%b=vk!9|pc#Tk~;!(rZ7E3d~{Ni>f|6&BOOYF=L} zw+PsOO<3Y#**!ew&9w@PoJU00SmN^pXC6ZX)9y!GQuQIUWaOFgWlM}R@who>Fi z1hXb=p@(X#>P*dtHvnG>GdFCahit3jO!b!M5kCmCGi;-W4hizHPu7T8R-;hXz)DtU zSJs4B_EWN~zLu=^tgP`{SFPJn*btz?@gqk`bTkpQh@6(Tc)aKm*h8~{15 zhn>8nU*vTq5!wtc0CXC(U4%tAqChQ+!vQR*5Q9{$8jO zZlw$iHnF?PIlC$$$@0paMM={t6opU?R`&X2xnU0Lq&gJ_4P17uVfMX5Hx=K)b`2@^ zPOWzwuSpUyRpbiuHTcR}wBB>Drz9$?SQpl5h_Zt?c(vm>lv4_aHCnXf$~m-?%2fml zziV)_zc1&WOE^@%D!kV~F8eX7XwM~>@LhSVa9;zftY}slP=X1|%EyI@WgW9JQHf&8 z*@fd8WMvhzs)syR@qWr3h3gu0Wi_+vhrBrPXv(35-P8DXrEfu$JaQ^bg$dKI?HY)g zViNk5cM8unD&NX{f32FhT{tvNY*+qP^*aw-MW8Tan#-;!nSLx`U-@t0-SkVl9}S8I zT-*tSMa*_(4Il%as(2mcio&^RO1r8CH3MF!cp>G?!m(*myNU+YWuD`BFXgtvwP{+r zng;b{UYdAZ<%q)GX#zy42S|)3J6=t>q;O`M0#WIqCdO+V&!e1HIHFMp=s6BR!l?)s zW=?Y>ngDIaxt4UIf>#(Z&BQL}$0eDNqdZZlg=oEe@5kPeXrkg$*gP$c=l}%L>%c@Q z71P3+X<C#c%jqXt>nCXICwVT#t1cxv zEhQK)B?XGc&kWk_dARujkmb`jvu$eqp#Gkto0q8UI77s+=$?_AGeBH)$Jq|jum(~0 z-n*H%LX5O{Sjo~<23htr-0WJRMmjuf5kq@>m~L{diAMUkX%&Ood-iUgt>H$R)hr5w zjeBBl#;rL!#kCwrY67bd&Nh^t6X`@y<71LXVaaFC}8Acki=rn1lu`OI)huF5iWoZ3 z+R(@z$%V3SO1psxQ%%ak(4Re=3wht9c71^Pq%;q$?9p7P`KGlSt}~sc+zdVJAz#Sc z#Rup~G18^P4GruOT`1ip2N*~(0Tam3!5-Fy++AXTzFKO{pzfZ-g(tv-G=H&dq@E6X z@A+Q@-h}{T0CUM;+#cJ7=3Pb>hjg0hAn%^;g~MG8uyM0>rb!Rd?Wteb-bFuZKeGm> z1rJK^nO?Zu#bFbdnqgMsW0rlyta^i4@ddNyRaB{BRORca^3PG#$>_>Z!#^hH;O&SWo zL#KJjiIW_z%v1!MmIWRl&F`Gt$*I8mp>bLsco;MpQ?8ZKS(Jg5uOY^1oLsFeT+}xG z0a13T;l~Nw9j+{0)XD#jq7+*Ljq^kDkKs4gEreCjkMbM^$y3TuetC)tsAfMWY#7Bl zpI<3bla*65xor5Y^-sc@(T_G9^~p=hV19*+ic!sdPORi_!;IFjI$0&H#N?u3e(Tn{ z_xfd(8akW~$&JHe)*W>+OQnt)LY#)lRl`EoZFL`(%8oR=IQ^45hNY}K-QJ0oQfuIH zDkK*S^X;{`y%#OZ(oo~HO|AzXfOa>T)>0!49?qd*lD%>_)z<3OkIo#;$t%M&d)2`D ztdaOg%Mq7Mya&6G^(~js)JQoP#@Z_aR#a8{r*)3g;{Vt|*(EqXbZ2D&>!Poj;|XbAI-L zjUme)oeG6?GD}tGZ0y||zb$Jx6*cLslse6M*%vOG9OucG(afpY+crioYabVT>H3#S z&Y9S|01!_1xa3+Fy%c#)=FrR&BBn)CjH_EPM{uaea?bV8M^FcVb6RX= zu7_5hQDWNJ#cH}ca}}EKjQOc!TvDwoTuL>kdT8Sr{Zo6b*jd-RRD90((AhKYr|ueXUMpTH`rHS=DunoH zNfy)Us+Y3OX&%~LLH%?jOLBC1OUdR`4y^_C0m7$UQ?@Wib*Ork>Sx$du&#Ytb~A^5 z_~9zyd%hHKccl89t$q2uQQ(hXTBc<+bHay)SK0R_PkBLF(q*}Gyob71nfJy|Kc2OM z%R1+zIVSVM?ONnN7s}f;^nb4Gw`*tpoX=`kSNyrW*zTvz=VBYXrv1;=`*y!bKif4l z7>IFqq{@txT2J#k=r>dv2ywTO=I>3uZ_F~_;ciY<7^&Esxo|*j02?q=)#}J{mXpjx zIj}S&8n9P2=*V+cq|Ed*To|ANf2C4ISOrm9*;y`n~N zlF~k=q2GY0s%#$QP~A9bU|-cRZ$MR5HLn&uyX-*I@VcsCUg=Mz=hRR8wT2S|ysDCU zl|NNiQ}^~y4bRIj0Q9OzRf#hdZr|ImWzZn>o~kTnTHb+gncS&TNR6rnZco$@xy;P1 zmRYGfRct@gfG}tm0#4r_o3?SlSf+NW7E;fw;hrS5k8Xf36LNo2nNGDIY1muF1Xh-^ zVO7=Cy#1est7SB&f+nSvN~ftN`;~^{Wn8C{CY6<{?~s(7kVj+S7lF)+aEOiT}D05_fl%BWO2}Ks8|*}{^|9ht!!=D*}=P^ZCUd8*Y!JK znNDjo3@j5JmtBKY=5ic(8`73Jj~lP${VO_V)*a{?;+ENt>#yY=$^&P9IY>9;F7qBY zUn?Ms&GOMKU}Vp-XU|h)&xvL)pc>Dz7|)X!&j}hY;H=GZug%k}%}K5;AWO#N=%|;J zEC~FjxB~gvNJi&qPZZlOe7L0cE6vfIC_0$```h;_z%QudtI0bL|K- z(E#x1{K#+XD>uJ%6O)=e-C0gV%GH;SC}4dS>n=F_7Q8a>3o|jSDOi~MgSfgv^ZU?| zu&(ElFFcot7`r0%Q|U-qH*hIvo?AgA`1yB)(iVBoiX*bGc>Ht$plW>j<7U<$(Qzf^ zXWEgwZc3MjH;ax4y<)ik2=G;-xOs)&Ojn=oKTFEf6~xUAAa<_w0>M(Batj9#NmuOm zS^#x5j$5$(EpVlO?iiYvi; zgTU-xCL4J!v%-kXEAD%pz|3F98$V8Gy%B9!lJ_QoxxY-M^XO*r5D`~Q_n)59gN&qq zXFnGT6x9OG3z4ueZv*y2|fAjx- zcYQ^(*+essN3)(pv#dq4JqtI3gj)@UTa<>|{0=uy54TWwy_GjBL{0>NAi$_-dBQdl&#QJd0M8Lgo!~H;y0L--=ID61O=s^MqfK8zfqLa&=!umxl+X);%Z&)dlpdyxaeDHL8 zkU%ljc|W#gG2ckK6EnFxw6$Nt@)xX2?=u%aDU}LTmT5@Oo=YH=iW8dB&tcgJ>(_Ir z6qu)?g2wc-TGqqhi}sEJO;qC0?0z20X4t@@!;!!>6*@GupJAugwNJ#JS|FB+4Vu)? zzSH2^FXE6TFiu4VjqYdJsY`G);;W`yfd1*n*(r7%X>nTRJE6RRKJ+8+{5T&}@NdT5*h?Fk`gr|CE(=n@=nVK6p^Z{~vi>rcWvbvv zhPjO|z`ds`t#pKX$2fq^_`CjErTP3@hYSK6r}|j^g-Y9bVXAbTF?k!y`pBhOM;jqw z!*uR39UF)Gn5B6~Tlw$DW4JcSOH%-v6>3X29&@(wu8&xnIkLVMdPol(3$h6YSotKi z6|PW3`iC*|{VxK`)aJ2o6*3COfImxgp4v86*m4YGU)DX5!d6YFBwcgNZr?*-JawW=t7q5xG-5d)|lMBg?nViXVwgrG3$Ld_iwG!M%L9r3+WDHp8J08p{-M^ zR?b4r>4sxY`(Ex5tuw3ECqg&r{$qjrL4UvcPD)tO3dN->j9Kox0_1&K!a7H2BHeb( zec$&l*mtVk%0wt>jB{W6?|0ud0K~s_$!H!E-#7l7;|m<8DfN~vgMHr;Q2Da~HpSm3 z#>nDIXb~jXnXxfOx3B&;?QZ4K@+Fo*`ZvQcIfG<5 zLnz!J3l8LL3=&xkqlyf^7a4|I8>Ctr#_k#9>=}ln^ea0Q)lVBzR6=!FIqOs4!}iwo zz>VuVxSX@Yc6)VhhQ5{UI#QgS+FcxXZ$wE9-PbIY&8M zv}-vGQYwdaTD0Ni_S*I3hJuyfb+|cu%AMw5hXz-b_d3WGKjsGQ9R*?E4aO?>b+9Um z=7#N^8ez)@$CZi|9dq4Lbz%nDmE$^O6%})1ht5~Eeg++t>pFB5HFFb(E;zMl2BDSR z^Y{*>f}@nqa)wNm3G=TV8b~Z-VEqO=mFGH@g5BRgtJZB-4grLtTyX5WGu%+1GGm_0 zp(({|47P9ZxAJcOrNfWLK?6r_7-1E&Ls{dffio~37*tfw0U@ZW#&H7|r&=L{%*wHO zQiqDhv1RAuS}%jP%C&h~hnmKTWfz)ST!VQ4;uDkJ8ZIN^SdlCT_uiAt?MtyevM zb{%ylhAx%O^WuLxuDb6(2i8d$npW1#3;$`m>b|>I21VXBO>_J-qzHLxKI>%C@O~QUBP{%S*g( z+&p4g^w`MDSv)R#Vchnh8EX;s_&t!Sf*8;8*pM}=EV3MHc-gfv4 z5{;K|n=2NzkL|rYfhg5XwY9=xgga>K-ow}EUa`k2KlKii78F>Pt&nB-d7Kc!>Y#ImMwVd>8?4lt-Bbu6u0xHL8| ztsK)_tNEvOtgKs}Hr^~f93x-LJj4esN?Fh~#w`sT6J0AkBnK`_S>`rQEFBzU0aHz4 z;F4NX&7$tH!?ou_I56T^Z#11QdLR2=2R?*6O$J$&EXEzPU28sMWZO$On=bMm>s~uN z#5~Oh*>(c=t#Gaz4QL0&$Qo56WvfUU8#)OS5zYF@ zR+2O_biC_&A$FJbsD@OMr#Z-eMC=+R2G817!zd}#9A-aGb{!Vm%X(ANuGwAoTg#0@ zd`pd_q+D~X>}2+fy;x(`tCA+ofwDid?uX(yS>b9-C9s)3yTiBc-^IDJQq?$18fW_L z{xrBVW?!qJvkfDDd$@^-8)sFk3753Z^dbAZtnuD$q~y2kPE04jV_Y%@-JobY~UU%qj!kw?BzaN59yJ)n_fKfdvLK z{*1csi(_Sd141jX`aUI(#H^xme%sdi9(_cmn~u0cR^zysZAX3g(r-sMA#ua3s&OIU zwDR61#F3kqxPMm1xRhczJnI`9#KS=o0_<7R{gl>LA!f*>u)1B z9`T`Zl7n*hvDTB-FV14kSu5i-2i5Kqt)~)SXvN~Ph!0?Y`+N^2+%>Wf#<32H{to*d zx4W*3oo3yPqaPIf9lARLED^DdtkZG4gOa}^cgK&eU$Klw;l@2I#=}L%{np0gd&b=) z#zQH_aBbtUIpbbI+=0Z-$JtFT^%v%GLp<`Q5*dDgcst>FttP#x}j zxVN^hNjRGb=VopIev}7R>$f#V=TE>Uv&y}d>Y>tFw8rnO-<(CYpX$xoLb9gpY%RQ6 zwXNe>(K@$A>8#qEO0_lb^{2&i&CfZoIb>zhX;;WAvqg2y#@W63+sd@lUX#~Ki_@By zbK%PR@uqw$&6=9CE#P9!9q)U2`?pB0nK-*N$E_?JA6$E*w;->{oR|To)-26Fu6My2 z!HJ@GviNe0>p+X;n(K*=@O<{Bng?5}>xmU$b7T1%vJV%x0oK99F<3+I~liM@AB+r05XwYP8!)tc&wjdyh0+}gggw|9&9 zn(>LVcU;@T+QEr8UJLr#hZA#v_RdP~(|W77u&rqVmvlq@=Oqtvym?#5)>KZcg_kr-s&+jQVlec=0x%*U?1!9>dc6+&r zV9ih6-U`Ir1!McN2~AD4?nK3@;2EV~Onbix5um?E9Znk04E(Cv=S`?;susqhFPHsk z+Ft`=XXww7=lM^+we}MrBwDgC^5^*K{NC@W{dxU`OP=r`)e+8lxLY*_Zg{Q zbUS>VkatSuBGqrCeQzBT$f67z9#@^u`~7LZT1Nv!)zHe3(|MEMO8fCTu1iVt$jb5Y z`L*9e`_nqoX`c6>_z}%{tlvQU4vujg>H}HqUz`wuzrQ37Yc~6^f29TvL`RHyiaxd9)uPJh`M00OYO)ptYuSra=1Wj*n zHZHk0u4y)|BsXr5f%xgX`a#K!z%9iSD9A=SI(Kej-}dIiBXv+|?hIfqUjM!IeF_K) z>ii1iV|K}|qi^M&EP`A+!%U}n_tLIMZmpl(g3?XbYc_Q+Iqy=QzH~;J&eiPe-Z&VADxms{Z{ z!)K>|vB3+S2OBqZw|GwqK~et}gSVxxa_`EX-T!_2Hyym!dA)J#^5p&O|1b34)W6-} z>&{!#CzogMe-Zy?fNt^izgzmRNTi!c1o22DlSo9hNMvUr_>d6d!4SgI5Ypcv1nD6p ziy=fUA!N5Q_=OnLXbAA7OgOz|Jo_NE6-FJ}68K0)F`nrajvHDlcvU8c-X)%QkdF8j zCfYY}k4!?|=Z{>kX_H?mqZNUtWis*{Kk~f78b&7pN68fBx#81lVU(lIfe&S3@@zhG zLSEUUdxC$;bmRq1(tjp@i%E&D3NDtZ&-0yR{7lh+X@KqoZjx!E=l@LS@hTr2D^rr^ zKFRW%(gW)!x+FM9rY6sOlI=IuCDuJUGB~6=&+N+^W^zhwtZ?+HZit!H8xC@sJ`_tZ zth>c50G|r^-MOOj$ z(X;DOay{g}0;6~R40-V)uioj=$kCXm-*KhM>3@9W#cQ&iR`&g2+ORp8AgmGQ3A=*f zz+zykurU}ntP17?JBHD~vSG%sHJBu<0~QE-f+52~VIN?l z5Is;mkg0%K;ECo#Fk(GrE|OGAmCz#iv^fHXttSsS!xST6Yj~ac5{z0;jf*UmY9w?I zeqnwGBM&!!(aZOei4U`Y56zMfcZUy&hz}!)4^@*7XNC_#LEZxz?QtCKHX7{>;OctM z)q`n<3VW|-UinIgm@}MYK-r81rlDt7iLFD*8Idx;VMYQ|*0cW4y$h#GTtLl4%neYQ z;lSkeEGsbpWfCqpU|_}#(*c+O4xln38VAJ8Xkco3wv|}(B!9v^2mH(=VJ3Pmm3Z@H zeM_eJY z%!si8QZp==+@ggeMia4NIQM{#87E8|fDbrLq=pey143q0Fx5pHN3152m2js4FEeqN z@uIUMUK80$#PI;G89MC4qWRG)AQu%*Gq7FjbA;kWDE=+Gf85L#=Dz65g{0EQV@3v3 zS+xG&H7yn`k1(!@fw6r6nABmq0PMg4QcMvY15##mF!e>-Bdlu@V5%MnGLwdxF1j4y zU6VaTuplYP@W)dZzF?Q(h^H(>vXc>ur?q-PA;TI^VTGhGBNR`w`$ANPC!T5-$yY`y zp04i&+KVnEB*k|~lyAPGQg4R5kfleWc>NA2wIQLPz3W0Dtqnmo+C-v5p+_P3fA6g2 zNtC|e04wM5m%c0q+vkauBH4ot@`Or}55azUQlDQ?g5~r0KEM19w#gIyjAQ`T$rJpH zybSirll=Wc46K$X@cZRYuydaHZzMmkNuKa;8}gUoU~@AOawK{1 zC$qQY$o*hfGl~DRre?;U{<0WsXC{`8WCPYW6G}(k2m6{y>AfHY%bD@%y-WpLn~4I& zEU>njpdRu(*wajM@r4jr)l6XVWfR!ROnec^3v6sAyoh`a4m6V%d4UW5u=z&hWh~fo zQv`y1zKJ4&p%yZ;i7kRP9`ctSi5ZNw$=HIz6Uw>C(SlYTO0~(_g6bS9zRA;qei90t zC+LGh8_KrH?t_*SO18=3gK82gyvgl@z8;FV$#jb%70SEGd5iWdlx~yl7BwhTdXx7S zJ#ka%+{(vI0yT$F{aZ=@%%7pd4D0h`9g7mj@N+_-5kPE0$s3vmAKBVF$MlhFCp4j`0qepmw&u<$eN@{?fw?Gj z0sd#}>Kx7ILpuR5t>bfCABA?Jb&6B4H@t0Y?VQ#} zy`5~G>NFIXAhw>)k#64su?})NFdjT&tM{A$s2&hYQPPFR!3VZ>&M|If0|=!ka>45G zlC7C@id#?ssT5UiD3GSw`g@Lg`#yl+7r7}Ih)->eoRi!t2ax=tG!3nRFKqoe$GMdc zAo@kI0d|2mZ>^lu+^PkT0b!`nQ~1r+!#VP;43Hlomj=_pmYLvs7nw@S_h zfH(qm5UqL_(K*(w+#?|nYyz9YYql27scuytNr5C&=ms2^6VB0ZKRglu(Iv1nJa=p2 zoa|QRk>r^&IJ6TE?BC~jw+fF$&lLZ_KqhHxb1jRW&omYJ8|1<8lW+}kB8!*L zHWmF_^^)P9@CowV_rijn4?+&YW(X(jg>3b`vS8+mB3J#7f=nNZ1tVW%Itav2OgIBU z^kG}D@(b zYjlh1D#Hok4dkH@d7I%J@;{p~2Yp!EEay?cT4z`%JcZo!p>Hz*K^9N|!!N=O$Y~$m zHrshLup}6s3I9Qutu**4GO|E2K!`e_Z0N0(0Y6Pf&geTEW`Tr^AucN&eyWV@QJH;a z_k`9V2`dwRx{O?C0y&0a7PDevq2hNd#nfHJ9Ad?UWW@|E#gtja?65)^#%X5mX;zwP z7RhNgWPWC*x)=KKT(YFB(eZLa7FMoxDEf(9a;dB%@zz6bR=#yF^%E*(byzFnwTJAj zJnPW(lPcxrS^va)4*6LH)*&s$JIV^NX2z=y*;u*Pp)Msl$~Cb9ao-^?EB`v=rGz6{ zFIFITJLGKTU5CDubR>7p3ILp;Agf@v7ozdhvbd}f@gIiFcfYuyh$d3Y#j*~>TMoJI z`nbImO~{f}V=al-9J1T>a6=PK%90yrJ&1Q7^4$$^Lu!pTlI3Adi&q)4-gR?B1p*mz z)vOEg4nv;1es0LE39GWstj+O;Lr%M1Zs)wRvZ=?j4QcM$U10mBN+{&85e>>-y!1_Imo;IniPs%+*!8?X1A-EA>#V2o-b4Po zffq^}ayAOL~-h zX8ji*JQQq22;_sH%4$F!L8Gj6R*RB@J0(_G-8zq7BcpUwivX}P! zDyB%2kE^LrS}@CZC_lrSll3g&aiJ`>^SnZ0&`8=Asr4_S+hhm{K;{k`jSQ3Ixc*Mhq)EWnA92#C`HVHD4^>$|F;jV0$u7dnF76uf6&C^Fc}G@=HT4a_=<(?%xp5YcOj@DJR1t#TL;okW zaZdF+-9pZ(6a}r{XLWimUR!e3r=j5Gtq4-obg2zMmC)HZ^iOfx*|5OJ; z%ER<0-C8c~JG?^lsZa#NppRV{+c97qU$yA=odq{3s=}b7Uq8 zZKvuH|FstbBw;83tRhoWs5@1G5WF<-qv^<5f9FytJe7&yzSQxf>d0P~0hq#68$$BZ z#E-5cSLz*IA>LF3g6ZC% zNfARMyOtLMfG~LxDuD8VpZJ3Sb}v75ufR(tenKVz%mRMO0)cow^1gH^d=c8)0v)&o zb%lZYh|Mthzoqwp2#Q~8LfOZY&6N3z(x*Wb#ax=P>=RmM9Q-Ni!~eM^vkams=FyBR zn|NzR$sd#64K`dZ_+*rI`+YMf%(*r42V=22MDd3Grv9kB$Bx%)Mt= zlX?EWJ&J;K>Ag$uy@R5H^xm8F-lc;D2)!tT5(q_lC(@%J1f)0V0VyJeCa8c!P|*K( z_BZa%?C#7n`|PoM?Av)aGbFk1&vl*WMeWQF(!X(lY=}L}SsrC}7H&#gm|(n3A{Lj^ zJ4&{}1A@Kr7oz*4_~552QFaVud19M6hg#<|2CZ%jiDl=E{2>@KFiNq(dzc(L-f`PT ztRZK9lwm{gFg0`ngm7YoITNEa8~leUC*!BL?}~Nhtd6p52p^`Y_i#C7JQ-S`^wa<^ zU%9^nzc700fOoOHvEB`*!zU*Tv`J6y|2|DKNH1WoJ!kJVXJK!wTmW#bHTvVt(C|!OK{+?piC=)WoBK!iHiq9a>2sWtChquyKZ34g#kgl zpz7(+ivJ4g)i32@i4a^c@$_gVewF1l(CQ+O_!kHnH3Y|k{;q2fk$e`@K&lHjf?`1( zv9jFykNWQgC+f%eKx?gmhL~){?>{>h%-A;bF6G_%7454 zlNGKIM|Q%`KD;{t z{$dE;Qw8teW_(LT;`eKyhKTxVsau~5U}#TS;_?;; z;li-jdTW4ud;XG;w{%wlVx z`8sm8p8iq*BO>0)6zcsbjc{^)jcCn5~!3m#3paM@`3Xnx`u5u}9o8}db|-$CKE zU%_kjf;VmjYvu*(p*F8?+PrbHSu?g-4`e>TO$*6r3&{%($^INtNP7G*?f87ewda>@ zbA)?nFiHD;C*%?8&nazlg?qCxBm0;W0`MqDZVPMZF~!vE&z{gnXg{a^bCk^92}y+7 za|)35_XJ~}?Ju7&N9aDMSD9ZJm2+5nNHKByy(eU+x9(CZ=l;NB z@WC@9xiYMzNR=K1kb4C z;ELR1i)q-OKVdl4{zeVX#=WbU5Br}_@J_FPBm2R{Oq|f1YJQ{oo(tp*nAQCcC#0up z-zdJrzW0Cw@c!xv%c<@+n(ukvd%?wbUp=N&MT`ykP~{eHDY*fmTTHWx99!qZYlA$F zS^!@Ldk{+ zFfj)z7atevsaFd8hLfoj1PnF7QOp+=oX3w}-f|U?Aj>5fi`h^id|dWY!&R`EY>{9u z2CIVixa6h!mcSjdrv%F}?^Q@2SG?5R68uE=h2SjaThC8+MIyIo1&GLE33_AJegHDb zWc>u|G5b9i?21Lya|FOIJi&C#_75@!`~VUh#+>w=w|k7ZWhNj%mPIfUgXtl#D?@0Q z2?F5@!Mm8F9$dQ;ggROPm{$m1#q9Nv*i|4j(So~VSc0!HXFccEihOU$2r!bR5)8zw ztH3V{!!PR)RK!g8(5=<_>c|LRxs=dzajn=_z5Nf#m=FO4vI2sMn9Ux-wX%;IA%fuM zLhvExa}VBH$w&2L0dNW-SdID6L%LS+QS(?3oF)jq$6T>D5QXJffwyf+!-T57e@?%E zmv72|1Z1Cry^UyLj%{*6&ZXbSX<~}m*e59kC#jhxsT3z^a6~CNp4>On6SzW6ofLnw z&)(keNsO6+0B08UNW4>@|KCWNnt0?5B%0LGguQq+0z z+I`OU0Z$-6Tf^B({VLw8FUUUpN%X&f$oR#`7%+0CQV+yC^!dFB@r#nthhO|a90HiL|tMNX4!EeHW zazh_@TBy6?ZTo!Q1n5KtAD97t)2s=F# z(}0zZ8c_4rK(&X3Fc1ATkfloo%)AXy-C^OrD_ZBtg~-Tx^~nWA$@%@rh4IsQ)YAoc z)A`)eg{}=feE4gkhEn6vAF(o39Y)uxd5qKfG>uEE4J50c8eOmEolSSw3@m+Wpjh>M z<|@!Gq|<9^mzEodS0QIqfIA`GLes0X)j-QMg~=@005lg0o;xr? z{-(&hC2OEGfrbxtVwC)Ck%ddP%&eqPyrF0e+kswaj)E01oIurvN-)3hF$Ju;Q0}1& z4DW$aXs&`a5S~C?hMF*c55^oAgu*(kK)eqH5k5xpz#=ri!)Arm2P!?3hY>t53C-)U zUSazH1=%)6@xUguu)|h~l?6&V6o=tB&_BtEuu9EX|9ddzf~@{?R$Hj>P&S7D!1yFL z!umPeD%5AF4I_VGeNqr%dzV!i$};o|7;|cMm#qtGJJf)YKCnE=KehSBdJn2RREQBi zFg?jTwf@HT9eQu53!{8sdr}C$p0Ce~bzrRE0mehY#MvAH~j>&d#4$%$HltuO~`b znv+8~YQ|AKda7#~yWuOV9p zKry~e=%GebdZm?~5MMTQsiA{Nxkcm285LtXI0$ofOp17u$0qnz(xaGmQzr z7EI+U{{==yt&(F_f5#PgYfP9bQcbxlDQ4CG2FJKmiqD$wcmj=$X@14HDNQBe?9Cnf zz=Ws&HWjlz6LJ(2W}sMBU@}qZG8?cHDtS%Y=odKVC^5{qv)snir&4;>a>wf^6@Ua4 zE2b=!q_b)}4o3+93Mf}HwXGDMHQn(zN&yA`isz=vl`ONmJ1$2_UyRSn@0#ALRGzin z@i|KSVtQ7=HJR={)cn?hK(H)JL$j`Ia>{+X`I7~%U`dwxNUhUkqx(Yht_2DBFRwXL zhnYNZKWRR-(CU>aTBCpbh`wx+zT^pg#eQy4LT>3$ZgEv^`8NFw5wY8^k($TUZhr*J z40}*DCt7gUHJaS4sWzUj_K%r0d2>b#zOQ|x{q)hjF`~{EkYLvQ}SFJr=?jha`TNLnWl~T*A8JphlAZ&&#vU@#g zya}%h_c4QTCy3;f#EpqNPf+}n^Xuo<$ zH|H%1?zMtiYt8cXdk@m)xJ8b=C)gX|)u5I7XStZKHD}Z5Tk1!SVg8Dc0t4Uxnw#Eo zJGv7VrWjqI5AL0FOO^by?`t;j4T%YPta zglDt2M~gnLB>oR(R|T7%LL`8lCIg+?GHz!U)0VrK%c1?RG79`k66Cwo@IZt{9f{X z_WQQ_ZG#*lt~lP?8aV{zv2M35a!AVK=x(b5>ujv~ZIc{g=Q!EhIyr9*Va{MBZq`MKpC_u{JoroZ>CHl3nwU+o@_frIOEh$5HEP~9FD6hL5 zLFY+g*`0-;@+5xM-HKrHB$e+@MNsS#J?pMVFzk|qcNZXNc8R}sKS!|alHzqg@V(4P z6xaROmzI%4t^1KLB_r`b_Y+@6MpEwX1YdGEQAKx^FFl;(7f0)6H`13GPD;}a@g=h& z%I+@nrL!V2?auV2vLc@EZt-QZB9-n=@ugTIYU{4^WmqB!?#}n6St9=2-RaA+L`vEn z{qeE_QCfG&M_L7v_1g*x=X8P5Q9=P{q9@>^g4X?nkLNos38O~-z|lJJ5kG>U5ViU7 zVg$Y|YW^c}1mP;`^GBT1OUkH;kA$ZLU8oNq@lNsYp;kYVo)UgXT~RgQfIV8eWmhU; zKv$I_p=!aA|7d0Kwxa|HNmB$=O*rx%Ef3ngmGGxSrYNY|a1=gTji<{wN3_IBG*v{j zc$;YMHPOmtqREFu3wlJeFNv1#$J(*>N(l5yG4@I-^h%%SkYF#lum6(Aky0v=_GXH` zs$WTr{uGZBR0=$Xr1-0bmPF}KRyrCZf%`@#_z9h!UO5anzD3r!`D*>%Zd=D>|Ly zG%B@08;}y(AK~!e$xAaw0jVrn%@n78e+S5uDNt^b0^-<|!2U3Y=qHn)b0h`aO(|ae zK@M?Gra=ct3K&&WBKz;I-}ied-zfl5V+Pk-=w-2U{j)2S4wIHcTDC5KXSULVpYfRdM~RO!=0 zsmrc!>*GSnoK#@?)KDs?>kIlMPzsC+QlA-0gSmd9Ph@wAm60s|24yi>wAl+bX8c<> z$kQK18I`gzU2|lO(Q;&CkR80qe4u|{h4S(FN>;uYf)e&h9=_Pb67tF`d=QNiu}T5H zxZx6lO7`j)z7oDlzUtWO68cK6YKVJ@T%}NT+)fE@C7XK;eF;}3uX}8633Vl>JH(Jm;@UW?eQ z5-L|t3y4XHq^qDs+*}E zCHhAA8)gA;*%kP09SLq&#uzUk(Q{>&e-LQ08&&}Yva2Au zlAwVljd5-m1i+9>R(ACgrm&hZ$qkEueB=r+yh%vI^2P)=Oak(d%S(3eC4ynk#uPVf z0t%6v>3X2=#*w8=B30+DSUmv5`P(Or*E-E+_NKU{u$1aFZg0xFQ7?%Bq1X|h{ z_l6;W`j&thP68aU$D}tb5A#n}Ko%weZp&lB8>WYOC(EaH-z31TcT9Q1_OKB4Lc<-r zK3ekDLQVMiTYiT!ldXlD2=TXN4h(x>nhq>Q37hW!KDPE!Ou!MA<+PCHfXs3^F}V#f zail^JSU_rfOvq{~jYs*sGZ7jVWwlc#bTzfc<9{R4sK5j3She>o!rh{!cF}~Xrrvm> z+D8&WZ;?{lZ$bfp?@@Q}7KDXGUF{t3WY^7(yZZzp{sj~*1)*wDQacI08*3%U>3y^j zToxIBW6;JB&K6Cz3v-Mf^^z00K7t5pi=^7VIdYGG8$RnZ-=D*OR~k4h=av6t++wr# z&?G9;^%n*WR7tA?$DVpGBfKrzYG2JUy{iwLc~v1q8B zpJM>T`goX6Btpreuyz9UPHT?FzIdM@?pk!!uFkQ%YdD(Fu;*^cSQy%)1n78X{-TZp zz=9UG_lSa2LxZJDX*=u~m z3q|cUl;zcD;x#ts<;oz{_-k_Qx_sjwF=^Rt{Aj8@jUcCIiPp3A&Zcc1XvsZ`Ag^bs z*7Nl)^KA@h;yu+Mhi3`PGv3b9ZI)=kJ(D1hXDQ2b0B!*=8q=Omkjt~A`dCGhUVDQ$GV0mE6y>yq_zEpLc=YQD1_Gt@7%kNoZy~EQw=T}@lw2`9m_O4^?fJ3R@@8 zE_(skP+m(~jj4#}u*`;ZZ z1^36M>AvlqI{{DS72yRs!WC`P1KaOD1$>dmfj<~$1;O+Sx*ei`Sa}Zkqj4UW<{umy z1v~*Ldm6?2U^`j?puW!<~srbS@Qhw%yB;O2i|Y~t~Ov!o&lZ$4xLR+ zeG5B4Jt;2_&mR|ZX=@r-c()sXmB)iekF#we0$#}OFb1T``{{H9{1!mVczs2V2A(v| zx!D-dhupCWsF#<9=Zy<)wgwC!-z^2amnVhCjdT0}&e>Eo*?#8P0imY8H%$YXTdIdt{z^}-&<#V7|^bmZI-;e~xA$xz2XdqJ#96+uwG>0OjA-~J5;VJfBFW5FO*pn@I7h3S)qRrM#n{z;%G04A5wVxQ)*YO4n4wRY> z^Y3Nu4~Jp?hNKzqSBK4Z?AQP%G5q8*d zvU1+%aoeEfuHgQ^O`qAoX+GqC)CsHTmAIgJA zp6xB~zYqJ|@pT2~!{g6`;k%0a1z{5%n_y9)?DKH=Ug!Qw*oThKD|p}*GW2yfa{qbQ zYR88a(hn7%N51Zz?SBjV-f`uw0eEs+0xj-Oh9^~L5_c_>^9xrdUb}n}KY^VI+%*9q z{qn@x=BI!Y6cU%KGH$TOVxOvE`Z9x1f7*UDKdSfc<r=J3r=c|7g2?lJe7;WxMM$@k`zHw!;goZbL6_sOoew%CSa(=!k7 z>59EK4f+Py568i0;ol;^KluLg-dkmC;j!+S%b(}Z?w#Gco6hR?P~aAG=_Lc)s;HT3 zxvX9fg>JDpUJ}EFMU7s|V)b|^ILQ3=(r*~E7v}|jI>&tZ9G%`dCXsUtzUNpjJ)phy zfRX0`z3T(!?(R!^w{cBw@56&8XsQPl`hH*m>xn1R8iw zQH|G-MG<;zm9$0#e0auD)z?~z!t^*Q>1GK26pvOE`I2pm_6~s@o^@3HwYH-0mmFJk zp9sS6BBP#P>nge@!b(d^M1YHTJ?b$EaXUnWot7?{Ko##75KV+FhgOS#3(qjB3e|i& zOoStcZj`_o?;i-XGF0R3Pz1Xf9e||pJfd1qPj5#e*wD0qUBa`BszbHj4o7gH=>SWF z7arA#dVc$!FRKhKBLNAXT2u+@$?K5IG%xVDqcTucukZMB$uPhP$MNv5+557!(}Kbl zo@rDKs^xWlM?FJzzP|gBHH21yfEiCWssh#YI`kuZ2wew(4W3U_8|vBX z$d7Db`s%2`y?aQo|VDUL(655$zl)(0(Kp zkD=?;vfBVYQb|xsBn^m>?X|LdFQS_x4N8Kf4s6s>mq`;I5>-7UfjuNfJ|u#=G$CcZVs;A% zD>J3q%O*r%;HQ_*ZWdu-rU;50L>`cqUOBsEgpHZ9=Vd7(21rUTm)$hN9IXI)9YmIp zx?U-}R|spg((YwY)`R5t3favgEYXUf=0OBDZhDpMRuQ&nWyZ@SM0k+sUbeNDzGgBC zp!Gqd1}W(kT|@g?$tZ#52N5?UqnCGW#@9kd5l%Kvy=zv^tEnRTDt5_1fD;71=r?$E!!1=HI)dIx_TAYR(x&Sl@%^C z6OlsVdO6l6KbnOoBonUpQmhSqGy+>W6a~Zp4eE^%5e0+~kuW5?mw#>cqeX}!D3B2O zK-zlc*OoupgeU_JhlmA|*2}#%{n7kb0rW|TY#|N3(rd3iS|2L`T82m&QrIiJHviEQ zY{QU!BLZI|y~=B=A8m840KZ>Sx*BgWRKJ=h5XuE&#H1-Ty5eO0a-IMvCrI~_8r5Wr z;rjJF!BB3Hwj~{?J-L*0HAd~m4OOEXYFaN;tzM|9fV1HhHH}hLi&8ZaF?LGWBdUc* z6v#(3C;FEm`jk}h1genY9{op^u0{fU%$e~Ts%6Df`mjn*BOyK(<9I&R%;I7F%u077 z!D{B&cz4y7;zj-ZN^c|KY8J_OdexNTe*KI}H?Z-*4B|D_y5c$gyh^VbA$JyFhEvTi z9@o#V^Z*kK%s|nm+F87!Us&lgBfP^x9FMCSU5uK12y93K^vo&os;VW$lao2Fo)SXz zEZXs0su{&YlTcT83Bg?Ev3O_Irs9Q3xU08>a4w5rJhf_4ao=P*P$vmkFxSO@qqsnN zKM?2KPgh-Dsk*#U9_mA)pN_VAJ=^<*7wu@1XccHxXk~8|YvpT|YvpQ{Y87f#YGrE` zZRKs1ZRKp0Y!z%(Y~^SbZ{=^5Z{=>4ZWV4-4q^=w3E~No3Az#_5hM_#5X2rN7Q`1M z7sM4L6(kg-6vP%J8pInU8^jqT86+5_7{n1I9>gCcAH*Fb9V8s2jAg}&V0o}I*eh5G ztN>O4%Z?Sp@?qt$Tv#cr5LOAxh84x~Vr8+MSV^oPRuRjA702>p<+0pYX{>P81`?< zBT=$9*Fg}G1(e2;bGRN!Exn5lOo&u7ZXlDo_%1Q9_o;&-qQFeJR(cNaT@sMRIN%^2 zpjkadq%JTd68FYBa3CI`c|0Yga2b+Pdix#r0Z16H-OXj6ffzzldh$sT=cSHyJKHxQ z7SN2ILQZ`lY8=lFO$@|ZWH?MWLQ?Ql9GR>=7%03SZdVvli0^0deLONJm8xr75MY*D}arLZdU;Gg43+Kh3vBtBWS8! zJ|M?WUGDa_Z$rF7Gwlimkv>aP>}Ix4LkyrPc6q_qRBC6pjeP@R9?h^T2ui(ak=;u6 zg@_3>%`QJ^@umW=y?qyA70t3Mj3w2K;_k~>8``G~(NLf&px2GA=$l^K-X{uC1z#w1 z6HzXGO=}DLj3GJ-GzAP3(VKmTYbX1^q6pVN+K2dcT(BVrUpW0EubuY&Lqa>w+mJQH znD*DaHr{s+3GBcHss+e=|GU?L`(YtO1HO#hzV|a^Ak#9@O)_zZ?f0)+z2LO!r?Tpk zv>G5@dLg*f&$QI1xHN#H@Pdr_KMEd(fRy9~_iKuMb#M?TP@*b~)g5qoExvDl>={9# zL{k_yF+lU0aR279eFQ#eq{a#ln7-!UH$HZcAO;oGxP}4g*9`mG$IcOi{peFlPG z%kNtsdqN(5@8afJiIuW9x*!R4I* z^hRTC2Yg;j?^_;wosxi}Xx!=ma1!jR9Xp)jf1?CXc>}huh4)R5Jx+;12Q;p00JsA7 zb&p+62|?*I_TIp~*UJ00$3CZ|pye6I&6Z9+6#w=H0XyfT#9P{>Y*Xah@t<`i5k&oPKnr z`V6}}MPU5X8;b0zw=d{izQB4birqDe%`A!|M1__0_eQ|T$m8SxKL)z~E%5M$!lSEK z$SL9zUR<#k6NThxfaQ`O%Uq&yIhw%xO+gqBdBJWk3JQ!G0vuTs{PCGD`0OP?V^On~ zV~&C$KIH|My*Q{SYIt(AQpm^WzYwyQeiDb)+~vSh;KfJ3V0$A1N{AYa9H|uC@fk08 z-$;Pgp(dPToPs7k=>_MTKb+)xBMR)=8VVc*6vFY@FZka`g36#~2geEpOMKc3?lru>{Z@I># zM>B&X`t!EwPd}0C-Nz-meGV^#^`}dJ1;Kx_ZmM$s>V=(X+#)vD3-r-kMZB)KxzW@` zoURuwqNR!iUGc#DXc5QO1-WRUBK|Ghr_szs+*=pJqLqq-xA4A1pS#UUdjU6^?KTfB zZfrE!?JKkwRij033((^AM~6K8i5zu7gbc7JC`u73Eu3i-kqE`;`6d*j2+b(YA?iE` za?dBB$U%aOGlC)j(e3#f6g`5v7Uvxb7lgIv^H9_vrNw!LA_4L2`DZ9*kjvtHMV$kI z?D;qp8AxJr22l7Qf<0e>q67PwIGd=8Aap&SjiLf+E6zNM7{sjS+fYm(U&Z;1!U4hR z`Ck@CCs2eR$ve(Bpcp<L}l+ zxbOgMy0FV z-pcqZ(CKnLOn7_2pItWLuWM>=iTt@h$x$0z_tFmsPu`yQX9GfSEl^PW56!578e#hU z;JdfP2V9{^9onEbnErY2>sy=ywv+e>EhVMs7V=%CDkac|RIwZB^QH2sQdMZ^aaI`^xm6PxXYr|J zR`BUjRcRPGRTCIzR;wCUxa&z)Sr~a$lNe`Ls{zWihd1i{uPIZ?(i3MrUsok%WLeELTd;FA zuvAVzze>o+w3=Zyf9Kj!X_$Uzm6DNdHOp)v{Z-;pT>a=OHsIQ(m4wq@ODR>=FR2op zF>_~>EJ&;%ue{-YUh+}y4ej!BJ;N%unLF;dKnZRiQHx?&n$_THFvU&(hPZ za+>jXzXRpiXwou2|9 z%H3cpPt{Yaa+vYkxd6(;H}lKK^<1g~W z!Bycikvr#(9){geEHBX0t#Sbxwu_)?e6zEBMbD=ycqV)Y=jah=%#=UZv#s)(3Esgw z$^Z?Pa-jODx@SZ#$D5z5qXWEeQ&n3tcj)B=^HX(nU5dn~U|XYis6i(oC}0Y? zwRDGBPB=epT$iSZa0;^31NZ|TCN-Lpq-oBr^gFyyC9GqGG_y-arm40P?{Gd9vxd}b zn3mK`OK#=f5qv6T9apb8Ujiu8b%|>@zoty-r`QE2#p+)2)lJHIz2x$ml-heKv^S~5 z^pY)QE52S=x`<&aWvd^of$%OTd+W3nSx(h$&D~*mD!82Lts7hfBnn!}3&kIqkhJX%XI3^cL#VWzbnpX4Xk7QkyE-n*2lyy#A@ox&zbrci0sl z6x`A+=AJg(s`?}mCI>21>J!B-(*aw^PYPj5z!!WA)Ssp`x5_?=g~@hC*{FlQ)3nD{ z%O|-o#m)ySx4?;U+H$MzlT?^|XY`6XXf#cSZ*_iB3R8}}uXGDkn5NaXNP1n^1<_4w#CBJrdu_iB)`Z-Mn6{vt)%JTt!JMUzbKvEzk3VRkfwFF zDu7~E_AKhIIw%}X`)sv+lK-N3_Tbws;NG3K-D>zG{Y4(=cGW?pX!_n(*C%B;{0yji z{}mSl5nh;)mOB@5Mwa?Osf(Bh9ZU(v0k(fwwLMA{SvQ zT6X1^450}QiK2Zla`3H9X_(8~3v~iwb{K)y&2n->SXB@Bq>9eM=(V)VsSWe0dS{$= zL;+>$8+-ewUsI+ybdMg+L3E~+9NF#SG!G^?YU0e$ zl)r!il%nV}nBu67GfPvUY&X!tipIe>M)g6{1ulz%JL-s5z{E$*Hy8s7klj{}LZaC) z{!!x%dJwUrfZJ8H4JJQoy}=w%7}^bFuA*r$Zs5(QJA{X#Ivj088(`9-mK#im1t;AR zj!L41FyT?t4F-^pqfQ;~igv-2M{PG)GGercxg0W@c+pVs)+GrN$&j^sdHeEzVd9t;NSjGqr_XB0{8zAwyVwos7mSs26h(RBC zUIagN33a1jG`VpWy#t&+T$V|7V{>-z8jsL`GL_Lp-2e4v8>Dtnqjr?9cG$gkoW6F* zqIOKKb|kEJ0@rhpUCRDl6EQj#JS~d8it!qja>#2EL}!7QJW1dM8fkTS)x?BO_2h09 ze+Aha1_^7EBDw&)^GO3u&_ zv%B;`f*{)S zxUJh*fu7!_!wP_ab^{kjRdMh3CdL^s8MatPqG`CxC*eF%3NcHi3A* zCP$7xzir#tfS%uFzzTwNbpjZP8Vk`AyEIt-uPJBa-)`S)>_V^ZvS5Y3rfK(ZV$%JF zkd#&$LR8tgn!RP1DZgzbk(H_tMK)}t#|hKuw}51{(h;J`&Kv2)U=I9Fkms$g)n7Kv z;qRfsylJ<$@~gjKn$F*sxiRePg!H!xtv_%2sOE+7Mzyao(%mYs9@jLZrf+s*$2Sle z_A_M)=aA|CHD!8D=j|1p4N4u1gw7_>_*;ST4aRYd!uaNSp|_W5{Em>gR@dvvfT_4g z5|isUhNQOAtf!jK_2_NEEc)#sNvzcBDdu7CdIB*|{g#o;R=V{x^Lg)jk1${S&XDJp zu6kdV&SB^w#>D#dBFUC+c~eT~GW4ck`u*0CAwmx{-*Wj!r16rwH*s5*nOJ46uKw>wryvgiKid0*2c#jX@j(){W8((3h>5|8L;?G&(1D%^n zzAQ-HC71VvAbsnP+`Q|njI>?yc~1)BwgJwyjDw-$x8OCJvoKM242XOVwvRtW;DUXU zgo#m?wWfoG<6ZDp&0Ux@F$TOo2Pem;5$6Dz5idMSvzBz=7a{sw21tH}vfpSPIvqDg z$UaxFeE`Nx-tZq9A6G|6K9>W|pP~6T9*2R)Pa_n6rcB2v6n;aQvI!rM3m+0R9MCr$ z;`$s=`y7&dIAH#8c#h>DKJEBR1P*x2i}x9oUduZeJKg|q?VPKLK4ZWebg*}fjlcsF zx(OdfgV&xNEFZrIFY(-~Ngu|5M(E(|_}l4E027I486{ndJLo-L1Ml=#loMITfK}*V z{dhk@p|G3#fZ{j-@LXcxembnXUU4XX3_BILD+S*5M<&)c4+)PUU;s(9E5>$Mcs=`& z|2XrM52&YOZAXB{@Q~p+<&^8Lco$@K7DEpap!EaLFPB5~%{^5}HIPR3= zo9OqLd&A1>g@?k&*{A&9B*EEWq-%ZkkmWe-l>3|bcgXkQd+S|?%EyJL!r!F7$9*69 zzMgSO9pb3s&jxvDaEr5)dg_uJ-hTl7Qy!7Gl`jhDfB4(5NDNu$B>r>uAI%(i$$%62m}D^;AV$E0io&9T+0Nf zevS?*AOeMu_Nc98fZIMh@MPhyLRflq*RsJep96TS@c-qO^~KxQ%q~&K-n^|(i7P$FA1D*6LsQy&gv2k zs?QhSiXa<>@x5q;Z;G1rCAK1*M;-a%EM1aDjrkHT5wxN9eDRj>gHg-Aq)UXKQD+~2 zQn*Bl>iu|0fglaF{_%nWzAkF|Bas5(1nTfV(X#&k0rv{9Qd1HpK>FD2^+k0AxTt9~ z<2m~b?A@Luo0$l3XVLJ-Q}t=sI|1vKF}SzWc*INgS=j%wY1e;4>%~o#3+%iG?1EzK z{Qm611niVI^~s&U3#L9r;N)fPNpi1AGV4i-NYTsJ$r2u!*@7W^N`{1#J}!I1Cor@X zc<`bG4_AFs_Lfib(Kg`WhEhHuzfZ{C^hqAtdY29O3==y0l3XoHpxFjw*NK87o6t)+3?-}1l&vYkU#@c+G9XgRY}QBm652) zS(aA~Y)xTALPI>Eb4EU$Qk`L)MQcC*`D5|PvwA_Wjo4rO| z>6`&WRo#q^yD)fJ|MLrYDGyaON=hfEXx(Zhbm)cqeuixSYmDz574V9muA}Kv+B7A* z-SIyK_x@_vE;S=*s1HN#ua1OTSpZ*3=E&c6?dsW0Gr`&~h8}EyWm#E*8Q;uzL!y6~ z*?XWh4AmM*9vy~{jzkeT>1R2bn>ZTJIa*6O8n!xG205By9c@Y8>Z$r)na^ezB*v)v zJ0KI5jJ&y|vn>Y&F(&>V$dn}$Fv1Hq@R%?<{w~O*CFA#8!P#I+7h~h^gG^g8eb4xbCG7N4RT=g4_rf&6-=19)3Vnw0J8nBF}~n*2h|;_z=$81pTHw* z{-@yHi_j;_#mkzp)92lUY}k5luH`Mdp}A>02N;|tf*;j4g757S|4 z{dHs;{-@yH^Wcj5(85fxnA&)K#@^kpCC0)4kfbJHJ#E(CJrsEH^y^AZOhAi%*4;g@ zCDy{QuI$IComQWb6{k^AI$zloUr8fh#X)tEim?%=u?dy2v81sn@vISmcbR656=zLx zB#j=?R~^mbx?cx}QZuh&DPyo>HcRcU*^;?v0S3y9UsdhRlDMmZyQ%qJagZ^X8JlHx z*KNsOwA?Gf8h@=in>`0EybtBffO*e2uB!LP03K6Gs_{V8`fSM0knMks@%`t^cmEr3 z@431nlUw|?RFjGBeiov2?ItSxRhd&79!|}T7P566CfC6K%qhO#&f2+q1U5glP!ue; zqpv5Ue|alq$~9%uEM+=G`(+WAdpeg#V!3;6xks$CdzQ0D>V|v4hQ|YH_ghKLUo3Fy z9?#tZc*A6_`&jda1tIwR(D0~hnOt<=YsOmO{RCCaQ5`LUL11i5qVqxY$bokd{J3hdc=h|3< z%I%EDcFU1mn003X^YqUV7`DN*Y+I78VIE-+G{HJD0bmedHV#&S3 zVZohoD~6!mI`?%e^5|~ZJ#ZJ-11iP2xUK6)c3*rWW0VY7%F^Zrwj7T9zJw^+{0!Ot z*BD=lFY0GdP@pXV;|$xI|2eofxl~n*1No@umRqTq0fSp|v#K0N=OfghD+oy$%#&+X zr8u5F>K$}@E9TD-n%tqP#L=bS&ErZbM!;}0xmXqc57Tx$K1L#Z^qI-Ss#GP_`eT*e zz;8<5lDw$OR8p@$0VvZ43^C_^Lz%k%-qcw$fe1rn@^e+?k}lD1T2~@5T!!n(kNZU&+C_V4-N244!;k$tpDVNp{TCdHMTc@c zwM5J5r<1pT?B9)wZqOelpY)%1c>HA0%u_%#i+&^-(@)?~_GH-13-p-i-z6XQ<2sZ) z8A5w{inh|fO5W=yaj1AQg7yMCPxN1t&-%};7x@j!cruEn(hnrB_v5dZ`VGr?!9~aE zHm~a`pbI1VoPIU= zLqF+y#r_DWsEB@}|DJrs*+3iyTLP(x1V~24{`t7wsNIGHVDH8hoNdGlVXMEQ2*t+* zoT;TXb2!HgoZW!Aa!$Y{OPW82YD~k~sVUKXw$|B1+9OAD%;LwYUBA}o3+U>`j8Vm z7QPXA_~7Iv$Wo*Vb9BdCHUbVICsPql&!tv#e8z$|!VjZQCPB0!)shw(th~&oZIg^85!BGuw@c3#`RXbxs&tI20uHge75iMY~qhP3^CUb1q8-wt-K-Mmq zF!MKLP7M3}iXx-9vN@}I?3CyXpbDqmmp3|+KuYx@1v7W0WyDwFP9RHKx;riYM`ALvy zHFGay?D1la!gCdu3+yJET^5@5{(k-rYXGR@B^$ejX48e5JxQ!Zcz)*!$h(@Q7xMN5 zu_obpoy#kBADV*~p6w}OZNdvXS3&&MOu7)a$AQ%c!uJy1(B;D9BXD-_+|I*Z0W9DSF`Ox!=5zO@@xLt z3dqWul@|*4gt4Yy^UjvP*?n)mx6rkxjJ5q*nEyh3=So1jJTDxo!^ho{(XallG+;`e z4xS9;Voe!+LpwnGE-wp*>j-hTWeg0x13Gm1Ur~fFWdC8??m*{aMX}*f)vl3WwcIRx zM~Aqg+;F675A-nPj^H`bvhCMpy4je9A2apaF^#V=p&tD1*4`E?xBnmS;4S`J;NiYb zRK}K;FPB^fd}y4~rCNLp_WqXvym3aCdhrR^2LWGdxg>bsIJrwz)2R9TT3-{n8u;uu zy-QuwxcLW9Un#jf_}DnLOHI?*!uws{Ah~Do<#A@0hNg*y4~)Jfa&hq9aWb$5J}Ubj z?yDnL0iPbH+pG;3m;GSnDSYE8vSQ^l+b#k(B?t?YZcQwoTfokrh$^C!Nl`-1m}a8<^vVygK?zqJYx8df`=i} zDD6Ak?G(%E@Bcc1=h7~|Z2sOeI8}Zg3YQl07uC>$Kk( zw$QO_Ln2&}JuQ&v6|4Zb|d~E)C{U@}5KT55wgB z04>Zb)}S=j;1}gVx#hvJ_CZaIo zELgBDXOYXjL9{1tYiNHh7_aTwB7-}$5n;T^y`L4#*_OG;0R*Gn##=S}Q^AyNiHj`m zFrb#%blqHG--8L-;uaZqp+6D9o6`ILSbKN2b+Mmz zta4!!<^|H-F#rTU8b5Zt@Cgf&jV>A;S+PHY9UEP^g!zH6_y4B069eyD^Sr3+1GSSk z7XpBwlyClj)OH*|G@fg|P>Y&Aa6b8PArWTUQAoT0zf60y$E8{)^&`jCBPVUV$DheU z`?5ok2BAaKp>WaAfyU4t|Im@27oP}1SCs!JhljF@S{ULBoJ)o9H1LNBt#w#_GJZjR zsUDssJNGaCJKn?WlYxtSm#X2J9kU>jKAb+;y0~+x6rSGkWeM$m*myE`L4Bzip4~AA z0_ww`CubMe0q#Eq*j>@Ihsh^B7sQ~^l@UG*^6JBpll2R{OT}Ml;4dKB{IK?9`hxOO z<5yPr9Eh(EcTav^U|&A`mHManZsdaOQtemfuUU|0A11=kBZFse=dBVG9KD?*chk=wD+KDot#l^NA9pZUs3oBJ)z#4RVR4^gx71+Uz+ zd7s}jjKEg7a!ugXH3^GrB44k`5MI0gf0OOST*WPZ^|vCte{Xn5NXv8s(ivl6#mD}V zN*$*RYdq@Pp9VbO0l?aiI_ZqEuzb&ENX3Pdg*6bh+WEr5_C1FoH4w33ZABe+##&gv zX9wFCoCd79sGZIv3;Xw+V3LA!gmo5m(HZ&G!h=nWiV7zQt0!u?6Y|x@gF}ouA7>bA zJ!-%6*;gwM_9iM5oOf8$QCppfU+p|No2ch;zGMB2I_r%7YKdVBppwEV#2SfO?~MOy zi{S{MZo^r`+Ku|z8TZv1!+uN!HW^q;QM;YVU+poR$JAgdf%Pkj$#M+D^-_TFd|UTf z1zgB-me2I13{WfF7JQZi=dzpv>Af@nKHml|a=4V`BA@w7+22-#d^}vFqy%a)%<#vS z-`=YmiU8>y0cXrTxT@tUfI$malj;*V#|XopTJF5pG!(5S>wdt6c*t;rp8PRAwE#V( z7d2i6(w| zj4s>}b>N{SCI~tO`0Fv=@IchLhkO&C2?-B=c8nU_7PaT0*dzcd2Ka!85BEi#dOU36 zpC@s{2QL$FSJaV*a+4rv9N+_RJUkS2iIEH7lOmzPPmWQBTcdtp6aoZ50RbNf%HZCp z6U>7E{x%Xbd@%iiJEIOUN&$kPkAS}$;|~u;U0~#o`GE5azbHlvZjai>C>{%ddIJ7Z zj62*Pb%uF(%zsW2h7ZayaCg*CjPkJ{Xe;1@&I&x-^8YiF>gp51dk>!J+oNV6+e9|QW?Ej9K;sO7sGh%ssaP< z=yQ24G-2|M8>!Ekm>6$XJbEZ0kOJYdVZ?6keJF#g{haWHcIdxmn}ibLAo zU_zl#qwPF_^+9n*J9y%%uR?*g{lraQ#RYBuiR*_7?b_}W*oTT2+TlW1?kGfmwh+2; zM-l$nL+DzfLdj$NEqLPZOH^d|&HH&pOge0Pei@i6b{s)*;Dj7nmq|C`61}k}@vk7!$ zB7iZQ45FqIb)7XfwG3f^eogjL5HB&&`Oc=5Aqr5e$+!wPOCIQ;z|ctOMf?jzWC@W@ z-`gioBshqHfk|<-1Xl<7_VE+(N+P|)O2x?%3UKt(2L>eK$;3@XurkFwe=hg?%Jc>! ze;R}MV+P?d25A8X!8!&>F9y*)23g!_al>qL*mutiM$QW+GDGWKb_JG1J+7t2H6INp_fwrEtAOe)OxuBOxIQ(mTmY z3XCN>qZE=Q5^t?m7>wbrP*W-q8>vluB^?XNs@BWVb-a~_+>83%_ z^b{fry9<$pJ!S~AZZo7=&mv;6dl9+VBZH9XmO;w&d_;Wg{)qh86NU)u4nv0ZTp}*J zFOg{$Do`6kFRq(eL|~EKjeaj=_>_w}i)J9g79n7n1LZQ5%DOiYYun>xAr3V$bmJn( zA{&TX?fH*+LYXawprl~Zb#IEoIr;-~)^Z1mZ>U^NJVm}0<%?{wT!7LTYE_c~cvCcz z@Ahvl(+JP|$vD5SOz$K9a+%(?yh>_y_wUuBS+4z~ubCaTGTabdsU>z})O!1BG#P4HA@)p?7AKT!KRQJvIfez=pE#da05+J;;p`^(cebJzFy8|R+E@WeB=KjbwOH)3Smd88(@*00JvV<} znNp!y+)yIlzw&%X$s}Q}5d65c8~+o2wtO8Ec}y3=Cv$`L1pz#6nGutE%oZXfgQbP& zK`&!|9N!3GkijWR(CRElk7K?a-wt7s!7EA}>0C$eV@`m^g#P0#^90_`Z1ezT^%xhh z{&CF{YdfdWTbRRREHLZCSxRv4Y(&ptc8>8wSU=(|CGK|qM4w?Uj<256h24@(pzTaX z_h6QfaX^t27Z|iVN6_n-{o|XUIf~PfVBT4ap2ln)-vL!oypF`B&Rz6R%-QjE&<(v6 zo&X#o=n>5NF&-#`;)W-7bS|NHF+Y#7LHiR2Ks-7-&`X%zV**h3#QT-_tMeE77lujU zF#~yO{v-KPCQvMbh%wwr&3dF<$|^ue4pCRIW5BzsWy4%|_X~tdL6dwymuwG6m|xsQLWmSpib-^G*&YH2z}-~{u7YAQ5m@X$c*0zHcM?LOpixW; zM)(gWm^bepLa-Db7T*QC`UgVHxp#3Cyo+yw-MnHw%PgTQ#7`l(`1)w-hJp`E3!y2* zO~Jnydo+DR@qp!&5ZH!2qW)Z&UL&OHB)<0h%JeEu`ukgX9=EbFw~FKxqF_9C8=&$cltN_x?jBB5Q~zBEaezf9gvGb(S(hU5F#X#|n!- z{iWg{%Nn6KBoGl|brqUosKCXNMW_a`MR-}=gr*rPR=EARn?KTko0Vme&>iBB z2u5H3kqVTlEFTHYA?^r&H1>~lpfF{*Bn*dyD-a2==On0WmeJ{^RrF5SQ02s`tCca1 zr<3<4*sur)<~&Pag{6Jz-L}COV9kji)L5h6Pdn*7x4BwJXY`y)os>R44cUtZYHuc^ z7hD=y^aE+Dy?Zt{>lln6)$026RcVvGn>KgqSd8MUHKypd(hhr1ZLZhRe|herE<&G| zHq?9LpHB(zLsG?5QkYayh5Aysa2_SCs6>*eKr&RGJyA)VP>GHyRe4&fAyKLpRI0@w zK=)99;VkW<_j2Wm7oGTXDs_DNxHNb#3SeQF#9vTpB+(Q1{nz?XJTm{0CIf4_Zf^xZ z&q|0#=c^1e*r$8OIPcC1Hwk}<|q>tP_RmO?)|VL;U(Q1399-G zqUpxHH7g=slFiZcD&HCW(}R24S7f|o10$p!(J&CCEBBVH@b8HQMoFm@GH9jS_rg}h z_oMu{Nd!i>seltlx_@u$iu9h$Nkqsa83x*Pt={q#!9DSlC?Gjv zFi&^yZCsJulRk+A?jZ)*bo1WY712G(ljw7mONQ|D@ZOFUSpl5P3{@rO^2gfj6;GZx zaU`ieeDh{Z=Uc^X(ETIM%;|rC)HSMbdE&=`4T^w@t7SmJP!aMZtn!Lp3WvhIvKQKl z6;|N1djrTk6f?{EwQVcBo&;82(@U*X&?~Fd)~j%O;#-NOmkwU5$~LuqD}tVcR$iS< zaZ(U2%hlGXuzPatpHB%By4dm=*wTvGa;@01u8}DJ$dH3%DD-7KsK`+ImLV_SU&_^A zM%DjDs=u7@o;LkGozRM~C*e+4K;KZ|PFbw>!wSm@52qWzETWiL)~yZsV||z_r%}qH zlU~6-@x+NjxFA=4s1$%mE5s*EoM?oLp2~5TlIp})Fi$*oBL9&8R37wkbgC+ZC!RV{ ze<+-l1Dy$-ybA6KeJ9Ef1+(%yrG7fC719%CPP8A2B;=?|@pa-V7(oZ?zHh#Sd_k$E zPI-mkgwZCIZ()m^X(^9Rb_M5z-X?`_L5uuCshdt?h2(_kCXH`VkeqZWjZSg}>xAwm z`C&ewg_oM?)K-X27;jP^76OQOsf2y@cPMB}fX2xi$0#4vK z`$mQjhlDV-a{24=v2Pm(K3Ecr1(0EN``63gs(nNxBnzU4Ro08W#{)Ood}JhKO(S?7 zkrm^OD{d6~@VAJWM)9a*7psliZq)gRw@8^rzI$X)%sH;NQRySxB4HZ+PG!2-dE9rS z#YehDW+B4uk!UgHxW-1AkDx^4Kb{gwC|L_>5(}y53TX%msa?-434HoW@oBN`)7N@W zOMGWv(Yub3x{l-TjM40jKgZulN!s}6BikY?9YOPmpcs4n;l}F&z92E_C>oXIV&!q` z4TV3}hgz>#$I>_Y4oHGHq!SA@M_$>F!8X1ePzCWwCl_k*z9Jio-#{J^1+lj$m}vsM z+E~@bO+)%lsAZSoX%i!M#(C(8Q0LORwC=8aL(+s84x9lRs+7 zzM>sV-sm|XK4rg12-EC%WjxnkqR z-<%_*ZpK2JUc~;1#0HoDSq_7`4uDDLvv+3LsPezb5l}ZOqtY#``1HhvgFiEeLtU?o zLbsrzbHc`n|3i+1x@j4WZjs|BAsY(*#2glN-7@m@PycvINNmlAWq&KyhAr0aeyr^k zIKLDl9|I%5KnWj53BQCjUkX2YJd`}nlRWtcIpT(TuY$UH8SQux`KQ}9Sp3mB^g#A; zUofA%Gr>lQza)oWo#Bu5AqyXIjtUqX;tFQwbgSFj@d@S_4Z7Ij3ufo^4BC_O;pHd} zTG`>iGK{*p?DhFLbMywC?C!v_jC!i=MffOlGzRVL@L-u=x?SwS94^On(9Mnjmi?t? z+a8|}JLe%N6WsF75bvh4*W_c((H(RIN1QD2o_u>AKC&FOLEAN4@66_I6MNw3%P}5w zUBmazZtj`4r{N>WQ697gdyS01ZYg^+KHeOILFctQ`&ofKZT2#Jv^iP;iHx_OdD0zX zAI2w}V?OA?cDFr%3O5zf5C zq2V|Ym68DI{1!rC6 zOh0(r=P*vJ8J@CmuKO@E>q6bYW1L(wB4R;VmpIc6UjEtV5;QFS@suzTdOsd^L#>WP z4R(8=E@IWN@Sb66reThrVdkV^fv{n3ZZ&eY8s1XfbIN6PUBrg5fp;!>X9V8@yDoaB z6MRjuNhVMaCs`=hmCTH8-xo>!V|_?G1KDQs696Qve!#4S3C`pI9*u}(T)_Z<)WYy) zo^3OLeQ1nnKM03moHLmKPb1tKYdQeZU>N00;x>z)VC%DmemCnznB+_Wpw)=B#w`qh zNCk#H6AhLCe8Dl&{WR9eFxHuL0Iv}Wj+GuLv>t(x&BSjr9|-{DR==5bElhMK53p=R zg5%l;7Oi(-1T%2}#=#F@ul+LCMKIo(Y=E{AK8p<<_-MTZqn%0KW<3%-dv?(uX59gk zohbsO8_~14i-Ak)^#2!011(39LRxzLn><#^U7Kq;@}z_Wbx|&KlD${GqD<&Sd#~?B zh0w{eUBQid@QRP^+KVWwS7K~eRihri5@NgFALaE*>g^SdDAiX2Z?9EGIlYp2d(|oG z=_`@9*EgerUdcFIp@>p?#qV$}H_DFgst`7}oZ4sHdMsBtCQ*Pgt(N`3#zHDbe0Soj{1 z*dY;eR~`^Xetbo{L4XwzX+e1Zc5K9Ji~INSl_F9tNbcY1j!@tuO}M`N{|AyrQ>lpn zk9c+z@K~WA1OFuj4|jHw+KBB}0k52?fq^Yjbnp%188ubrkN6Kqhzhinb{qFTHbn!cM5yknh?-x@kZSy6TW<}&>% zmb8B3_mwHW*IzEvxTXla=I4K}7FAp6_F8WGF@FQRl0xzZHBe<<<4xb@Z-e@NeBRIy zYRzlE=>+g(=^LLL4|1cjyat+90lkm8@rChF4Qk43tLbna%Z;%SGB@aoYVewC+L^}( zUH|yGp&itb*ICoW{8eD}dM-IgjY{(BX<7#7cP9TAl0yZkVXyV3{rQ{V-51h2Xo`C0 zHQlr|e+LW$;#-FnP~W|NHl5912MVy~!Gi$i>NV1|K9BdE8N{eV?Wjes-KL-O*xwmJ zZaNr>`slUPv^!4#Rs`{9Ll>w^uU}0}A&+Iqi}Jx|^os6}3gExIQUAwN+M zv6I209kE}9{rGZ16`~0+OnD>l_0|0!Cnx_gPbdyR|K40mb4NC=&0$i=ssvPnuE(G!SYEjlb z>l4rOfUs+_sYM8_wQ`K^iQ~CX7?x~$5pra09pilxcpegV6{zYFyldGQwG-QOudtgP zY39hOPyEk=FRz1`4H3T9fiXXEKli`H2DuvY*V->k_(^yO z5q(99`XioF!pFE3F%u8+Q(ESXCDLW5=XUx zM2F3UhzHLgrm9OA)dC_M_IV;VJpY*1E@{+9klCW-2dNBO2$2k)c}#7WD5@32Fzn|v9c4=`(^Gb7=JWFtAzdOvalOxx%eN!%fgNJ+HmkHP@+5IPwWT1YaI6|MUt z=hy@s9ZAd~wMbF4@sEOIGjK;Fk%bf?dC>+x@{UcxX^1k^0 zr5TSo*guf4zDXTZ{Z@ML7>m6mL#3a~HWmG*`mqRmYsSNV_SG~mwZPK0$1?04|1nP} zyZk?%60);c{^l~h3P}%8Nl{Qqvr$QXqLS{@m-6a2m+2$iQtcQ2japRUkM*HO3X5ub zY2O%$W2KNrF3(Vkohq#K%NUj8J0Y!HUhWi9)%a567?EQ|z4}w0niPH2s?y0Z3dfpy z&8NJsDI%(Qr9)$+j#c#E!n2U#rrKCKH%9&KosU)vuXGBHYI14M81c7? z1N9&tU>#GfEu9{t{8n?I8N>@@V5&u>BV%M>xTSH*0~}qd9i>ZSwBKqEv{V^bGl6el zl?3<^GxMJ&rH}VIuKIWdfvcAeK=fz9dVhH7i|6H=0`69ZcVF|Wl$V)!QNB6Pf65b@ zPxp_fgjDJLzqw2!2m9K%dW*UG>Oir#y068hSNkuQsVx(>7n}0mt3|zv|5zWg_7bnE z?AZjqkkTt;(aN^(6f=bH~>O5kT*_y0a6gs{K-&1EWwA~Cy5qLWHuq(h=NN@B`S^7b#6DemKI z%ug8pUME@NjAnP|m3W^dL^WjA#7}w$M5S zqe?E_EKbgh%zh5r4|PgLRn@vvoRk@f{VcYyI>j%QF1ihzk{Jd4JhqK>%3rFsb&oi) zGot(HL5E#Iypl>ciIX)W9X#pky_CeO@^yzf$ui>mnOEz)6q_qebl-7`X5{sAuQqro zH&@N;e&-~}i0fxuh3+W?R!Zp>a`I+m_j9g(*i#CuYSUfhq|Hd~X9Xr6#gobq-H)8I z8AbiPtBrfgCspUVX>U~~ZJfM>pXEN*cvGgo3^M1Z;EZWD^vdpuU`5U(ms4A=-cXsH zf%jYSNfReG;pAL{q4G6@|ClF~}-rBmfQ3XUg# zxlHd>L{e0y&Km5L9~of31uV%;3jkSuLS2S$@PE{zxo`hiAL48(0H&K!L9wP@dByl7 z`KG#WmV|LZ$*>;i%TC_hd;kz{hNi_ldf62NllL}NeKT90nwGrNo37ZJytAnUh;K#< z#cq0y6?2o+o0`7aEyfEa-}Qc0oK0Q_AiId{J_#_p3sszVxX8cXQSQwTd@mkAeS^ zg1aV5Q?1tavw%}h{oqqlZnJ?(+wnSQ@%sFyJlu_0$^%ua<9p8kF;6JbKc5m>QI!4W zGW{%;IDJE7f=OeFL}OA&WBT?Tr@vgLvGsCzA07dN(ch>=)h7OHeK>mqj8s+fsx?N- zoW|?F&E5t&TD82Iq0u#`{rZ#HYp$;w9vN42k7hXy)UVFsy1r>pHLj@{opRc$Kb*w^ zi&mAnYS+;Qr@8u_S$x;>2DQ1GozWwwv-*qKt2?j!9!XYHk0v?w)GyECfRnwdWKF^7 zu+w_|{_IUKe^qI%HXVKEG+npQQH9tBrRj}|(O)UVIt z?Yucs4X$Y)U3A*5|2c~dwz4W`)uE#wotEl%X9>WMuG(46#ptEeuX-k+q|GTb(Ry7z zq5G`@_%9O+^|i{&rv*3257mS0q~mF7?I&U1z8q2oX-a1o8jqB$Pwsy^IsA`#LUI22 zl#ri#{4bX&^+x{iRus=>8qd~?cbmEIwqo&p|8kis2fd05D*b!4C@V1Qg7qPQ^yw6p zYE6}I=pH(r`h>>H=oY;hnOfiQJ`6k!0n9#a^HSca>DW<3ra|ztFgkx=U|%r+#h(ABLWW0ivI_Y$@$j@`m!EH9%y=0Ex$& zqN$M$`$O;3KmhpD=_oays@*U+bUyXHhz-;2c(XLMyWxKrd>RUPf7;=tvQtGHT8H+h z-WSg1T7z;P0ncP1sYqSyBwTNiI+LD=8)uHkIy_l<5or#ytNf z#bLs!()E(pqrCtd&!0;%lyIY@d9({);RT*jx+XLzN&d~0@MR=I- z0Z%{ydQmBV|9#g4exgKZx0rPsf9FdFbpaMi-Gqv6A?p@?_)Et@0Xs_XgywE3>yOY+ zh7Mc;q?Bq2Z@LAno1tBXj@1JCl+Fnsx+SdJp`9}hE&?Ky#tAjuBG#=?_>AMWfFEUW zLVLH2b%*CCF$XFEd`jhnl5YOxCeJQ0$9w@zO8W#@xA=0KXJ?ZGxZ6=0Bvf?^FSmHY zn;ho_+$jAMTDzr}KmPa>;2}PKJJzKEwpSgY%({ABDgWXMs^_P}5f@tnSF{iiu0J_W28Gu@|Y$p zf)>SkOdb|#juJhlzKoDX@g7rNMuwwgUm^gAQ!qV`eK5n0L+}H+eHs6F?zh1MJ1oJH zoIa2c@h=Zm+ldIa=DRSLM(SPFJT&k2ozFkFb#MVNHEWwk=G{TOl^Zt*U%R{iHgHhN zt&mSEw|sDXjeNg4a9GM6q+Pk$g9B^#_A3L2+T0fT+;bZT=Kyi@UEoNYI|#pWlLvd& zh=Ig@FvRU6pLuTW;4}bm)|?E7xPvS#w`g!=jcmW_Wa!)t;OBBX2A9@o_iIl^)UB95 zq#5P8P!T6h?_PEc&`tIhhv1jR49~qp$A_Y!OpV_8%Gn_@YKr-@Yn-a&pto zw-LM%)|lzLS0&$r@!>Vz`g3I(fi!AkHvD~M`dNT`ppLu8i+f~`+vcXegQC89Rng=U zg~gqEETiZedH^tfDLhYMnOLu6R8qqaR-#iB_KA%whQu{0Q#QaeF_~+p(P(EVSYtHh z;+!NrooheTNNR{zqc~;d4EZqe)Q-DR-;lFLZ_3Fz@x#FRFHjp zBan*MXieDz-NodoU1%e4eb<;zxo;&OPM_K{L(^ybwpaXcCEtLs&$Z`^<95BDgk*a` z=dgo)o#33&b^zc$3=O-jzxSSP-k$fPk*qBk8FnXok2m{lyUXux>s!-79=GiGYO`;) z$3XwE+H{!5-QYdvZ02^q-#uV}AA09D{oZ-@!}hEnb?ZCRk$3K*?!x4Zp_TPqd@ zHQ(pWac^eaI)HGq%<)jC^+|cn`qz+nu1G^;UY2#x421@@&cW z=+S-2Q5xrDSkD~sHspvYxDGTUowQ)(bAsDB0E5~f-Baj10$ZQM+kOTJ=+JhAnG-K8 zdyaEE6Hrkr{1Nk69q3#-nZs)5M7Q$*LbV~Z=cDryY&GBw$1ET7Oi|#Pz4%pHh?RN4J>lq9bG@Zg>9dokVMF6ncc+qp| z{0o*Yrcz*|=>=RwV=Akqe&~E5&8Msd>5F||ZF~TmzJN=!Eq$_Y&BotLOuWEE(~UJb zeY$Ub#UEGfX2AnZ%kt;C6YOgw{;Fck1&=iy%M)~`*w-`sImGT2sA}4lztEkmSbO5{ zBqm(&RMWLQNq4$peZrqY>`s9a$ciE36OL<4VnYR_nrh{lI|cZf%H`?6 zeTw$+Z4qB6pwZMS&mN!qwv3<}?4<7cb7lI~1Aq6{?<-S$AN3wDmmW`(9`6ur@knBc z)bZ(W>j(Z=V%H1g0T1`N-~{>FZGR;(#sVGi^O}&pk>CqnLke()73|XlzvQ6Reapnh z3&=sYCQEQGXL-cEN}ZBiJui*AC_NF0n=$Tm2Z-GPXRF~>STD&iZAE;4vViB z;0-ITr+I&AMw|G)6Q3@i9M)LR@}6s6p7;GO{<8pk_~Cl${!AcR%C}H_q=0N#Z9Q{; zHgLJkcTs$|fM8g8Jsk*O(ILJc#g__bhqczT_vcQQL0%)SGGFQ@AljVQrSYxIOSje2 zjY700Z&+g&@MBwY<_FzKMHh!Q?Yv>F;`8}#Jfe*NCc6bF0IfIYqd-jf-Wb8XN$MTn z$~>Ru#@<*D*s@z$-UF@o=3ju+u+A7+v#IZ0)haxn>&D&K08q1AQ{G#xcjjY3hzOlS zxNeGg6VI;!?(Cbne%GA_&$*VJ`6D;%#*(?doozqQ)|Q3&?*KzvJ~yzlbL45wvxeqD z{kbyr5YP6%`TNS0tfkDkxnZm6-B$C*`1wzF7J7HKj=axWug^zAlk1G@i*VJ@d|_H8rI+Lr10Ex^Pr3m$0S zS@hg(`8j{~{rb<>XT71@GM+^(BlGJ3k^APXKXm7#=Tgh={Lk;$KTFQ~F1EuwJ6e|J zcL6cC{A}Q2=hE|6%ddGRv&X<9J+Fp(bMQE@qFszPF?&jF{moB-0P=QqGdtdRvR&K5 zy1*~(RA!pI+1Yag%d3ZbfhXY;=<_!crW6rA|j%EW~ z+x^UfYon(}w^n?QS^`Yl-OT)JARu7L(1NaH{J(B-inGyu#_XJ1%zB0v@9*0TI zc}q?2OD#P#`})jmLkv=L6 z&}z3|^xl2;b1ZnZ{RsT$w)-yz??(R|JzEJq`WRr|?!M^18~1bkZ1v&@I2zl-&4^?x ziUzg5gLL<_;(Q`3zo=Vlt9*a_jQl(S9D`v+$mE}}(=X@SVfeD;fDXK~{$v02UG~1{gHP%bbbSfP`li}HSQUoxt=$KNp`e@viOGop5&S7`MWUDj@Bjk z?zf+N!Dpf8FOyH2wEkR~5`+w|hj#wHGL8HA&G_Svl^NSqG!hEH2`DW+5uns zw!7zl7JS}*DHGli{z-O&c8}mp`Md;Bjhn)|WWN>dX`R`h!!E^twSk)ZhWQ@vnZbG0 zrSPwoaCpbJr9JmE|MS*M>0cjzeG1=@-J?CzIxh#zY@ZZQg>PTeJ*vgUX zuw;F?2oN0p<-k0f96#p#m3tow^wrQEgeS;ZVAI%HjdaAB}8wTIG(AN2)yOu zi0d!Gealc8!%@QVmZLJZvV`I-OXV}C5{b7wm2sOTSa0c_Vkk;j-m*Kz68*z%8Imy8 zLxGM+=eg2ttGjYk=+p=WCVF!AM~W0ecYsHdorcOI3fr*V~|9A&8|ca=9D6{)A*k&_(dsi)kL z4<41Nr=^y|9;NrWPc5%J%I`x}Ajdk&?n6-^Z$B#TLt`pOHp=WnZYpmuD(pkOASXJ? z?L)aB?>{Q-Ln|#uFv@svUs_&kRPcbRU5f4A`c zw>+VA^bR!jx1M6vL`})(y>k7`<3Q_kO9HDPYFIw|mGfur4Vr^nL0Iiki}FQuq!z!q zOd}%jj^%D4GVd2Eb z{gP(zmK_!>>Pu(7g&QC5OIog5q*(D$$j&qi$M;-@G}X8Cv8tjbJ98~u-}4yKy4(`M z%8MH6%(8HP&pku4eajE4HEN-=(8B#a?+h)~EqtuFD0pY;R|gL+F`E2anpovgJ|-Fa#T-e`d3E`R{%}h zEiq@?&Cp!bD7HbJ_})sv0{7X^)|-o?Xw_<7{0$;rVmN5 zEblA*y;{`LN=$@`EQx?Mh8V7bTJca76V4~qB(RSWgd3r@Jv7Bc^T~z@$YSu|iYT;) zN|O*M#t|6AaKiOan;sfXA|_<-2t;Ej;Totl549%Yc~Un5{}@TQDeAk2R+H#F*>?hh z7;N}M6bkbwKuC&|hCnNZ6|Rf=hEWd?0rEcr-WW2t8fq1z8X(+8YDVB5BMLW0?O-$m zMBB&~320*o;L50FjLNZ42&oK#c?>Vy0JVkDI2H*Z`$!-gLkrhJtz*=Vh0jUD2mr<& zZjRc;XdR25ld(Y3l=_NSbY8I8W^kxdBNZKs>vdY#LNn<5@7ul*P&O()W^>Nq?x$IO z?xoaRJg-y8=AOaZPx~M9gsMKzRpu_v(y4muJHY}L0`arT)Wu0U|()GxQDA7P<<(2hD`)K_{WY&<{{w=ppnDG!d!+9fER0YoM;s9Vj)l z0BQstoOcvO>$D_Rw`G88jPe0G)=4LK~s}(4SBO zXfjj_Is)Z|)t-s@4dV1_;hx9i&gQx=!m1I|oPRYTiq zT>X1hv3fn=as+(}aC-RqWL0sKJ>aqfRWh^&7y}aLSmB4xm#bi37Q@{QYUEJc882Y2Ap)M_ zZqOTt`pyKoTyMAwtTWvW7RFH589x{724bL@={~XuhKA0BZC~*t1ka~#(Cda;&v% zNf%v#nfTY8C?{|gC#`?-MmJ;T18Agp3kgP&$v)wspJBQJ?zXYf#Ql3a(Y$4D%zvpp zjnOrjsQ}70?nQj}WdBc+=mN}e09hL+aM36I{1l9C$1DcWw($bJd@{i&Y;-iH^O!J% zP3AUjQt~HdbO~nk_uJaVedh@ z?m{-jY}gf`A?YGm zR>qV7W`Yfo`p?vCQLkcvmu-aJv0Sq7Rt{v zx!rAqNFq$pG@eBPa#Bn*catHk2wgNe=nl%aF#-E7L=<6+rv6cQEEmEgbGHb>i!eY_ zf_9)hm=)jcfXE`u(X^>CV5!8Ip3dHzVZ$LH{4YDvK~+0OSh{#`z73CnXinUq+8X12 z`pw=bV36fAis4f2PW|_GqH8vI0)^^y#C=&doOQxqVqMf480XTddy{Nf>jb|%+g9~s zY)zN$EwtgS6a5mmtp;wO>DPNBSLlGeErv=JpD`|-u{U*v%}Yo;mP##&u_v9l7qY_S zB_RGRUsaQ_JYBFiXNAj4gq)F|h!rP|i9L;lJdIgAjrAr`3IltpKt&2iMXH2j3X5ZE zO1+B0A2U-dn@373R9-yd$@yBKB9|85i(Db{VsB0`(R@c|kXF?@xkBN^-JE2i>x+y$dTeUcAl8^I9}?1Zi=-aL{sQ1CV^pLOQLq^4{?k@;xrl zOVcu=<4w!%9ay=y#{r6Hnu~PqX^p*eE7W^Dpn0YxLr0sI+}pE4yvGizW}1L+pH|yD zy+XOi4Z3AoKtq&P)H||5w#Ny|WSW}zKi7Lmv%-nz3 ziQ2xY)A>?C^+c0{EHkhF;p&?`os)`dPvk2J^{Q?b2?gGx0auIFH3XKUnC%g}tvr4Yze%g{1rW0;X1OTzFyi<;^ zja~6@!gBMLZ-#^tb-AWCYlZHFfqEmwy^QthoFUZ zA^y7txPXpbY+N2(38IsJPNPonI&KWUfdb#SOwuoCG?HKUj4f~cIJgnSAPp&02Q8bi z@r`c>w}V)u;|n!<91^-6qgWhYlsU%QIVP<+Mq<@JQma?ztXFle*QBghF%~Lyr5OEV zW_p!+?5=cNp&BUQjN@%QJ75UnZ;vrk1#rD_&W+3ijv(RoSTnWSlId~Ejl=_%AVC1= zR&_6F9GBcEIN%8q1w?MO-IAZ<*c;IY^rw6P!L3SLl0443k$%8_Dg;_DYDFa@<76B0 z03jd%YA&kgCAH(C8+ixZry`)&qPA4BJ5I0>cffec4~i_RfSx_hyODjsc`6K=D{37j zOXIW~$p@^bf}pCR8eY;dF1t~5zl;fiA z$AX=n-iKVV+v5w&2~iI#yP})Ijv%pn!Kaub_V4XP$MYRK5rR1C4C85z$a=e3KGz&S z_29DWEDnCcHkc;Crmxu?uuXvIpVfmEZ@T%OTgQ_A(%#v zOt1s6>m1L)0K02~sW}LByD~oA9LGT)5bLMsAP4QNZg+pZ-I;P5`S~{d{p}u1!lx@r zHcU!(BuchIO7^$AZMd)mM56Ei*UU600w?D=i2rTZ`1f;e4nDBE3wsIje%mbmft-8b zFVQ_%E(rK-0XjG5&Y+SVF)Zgxmy0bBF6K}VYJw0y?+bj}7AyjDt`EuscEd{$z}qJA z_v8=*!7_<=t~eZ!nfcdq@CFq@$ez>OWn%k|e>#T};15W>^P1tnhsXaj2Yc`#h|ymL zc1hV5@{i<@fj@co_HzT_fUeBHn?o?D41)5UlP-W$=3mO89n=EJc-{#d@RRvfW=cU% zMjW7C`pT?yVgIrdt#%O+kp$$IzBMavSl~>Xi;Re@aRhfSsTCefai-XX>fhUmx(+v3 zEPuHnlIq&mU}X$*ooR59Y>=Ld-0AhRl7yMgymJw4kOc6Uz9Xw(Sm?}07ug0`$q4FR zd@F3&! zvQWvga?G+c%CZjBx46n#N5l!kt*WD_f?+w=k>VNUDgH4tb@>$Qf&e_4y8W3G@TEcD z`W(c=mf3X!GppOUe$1^eKpt#4UAHxJ2tGU*TOkXBZkCO8b2B^J_#pF*Ul;wL5F*t4Qp2xxhzvkM14*{%q9<}`De=<`r!7YuZ+u6TJi zH%pnA@z7=$aelhDg6sLLnZZPdCyBHB-nyy>bMs>p$9K04vN(G(*Eu}yHLHRjJzOC4 z>DF6!@(^x*YU271-yplHXL6mw<4&`Zi8b)OWjJ>WuRrzp0i5IjOYzjRrdb4df2gMm zw?6rO5Qt@@#LGF)@EfJ6%Ni>COt4XLK|DytdnY(R|9z#1$pa zl4kySLpLhX!n{u!D=ePr&Fnz`Lm^s_*EzIe=Lu^Dzkg!N9!$!fLOmW_J)Tmm9udUi zkaY29y5foB;?aWQ@zME1^us8V;pGsXuMc?8YaZUsf%745R~u76nz)wbq1J3W@8x#0 zF%86rYf~Q1&A#(NZr2-AL0-7l;9=bCI`0P}!t^=h&f1YjaC7K<*!L^`DInfkOY%@| zwx0I{iC&r{vS4l4!@k*jJ`hBBsjUdpwRau{&CVb%{eNhC%cv^%y=_}XK%`WBi!*5J3 zu6h2><2cd0QaT1#b`G7r+Wfu*fFoU^-v^AjemMuV1?fK#W(4k@$?|ozlM3XVKdCTlLA>&m)jHQn z7IGZKR?I-h>y4>H@IwVT%{qW0s$*1;(@@~uA&cv^%xjqz>eoU$Ul zL3Qe@-bpob-k+?SbuHd$%4=QlBo8?WVlrl61Dd>C_dDrAuKH7Tv#%u_P2sMipM)a& zZXN|b2XdgvgmvkY66B{F;y@OWc&aJob%v7^x;htb{ zeA*;Bl}DC>x*dN{2)H(FYMt64o543pp`JJ3ytK)8s)ww;;RP3^(6!N{O|MfwWY>*w zph!?KxCU+Fo=PK2z&^mspb(K!pb0&-LN2hKF1 zzej=0^E3$Ab0Z=gm8dR5PfG-Oz!5c0+0F*7)W92w(Go7$ zZ?KW?Y~=kEh$1l(!WsJ2HnNWOf&UBN5TiDnuU~H?@7NGHw(x;RE1bPwYa{2_07(r# z!5BT^BK<}i1&Q}*QAc09Cfp6z@y-*`|ANssn#MgtN9ldd@c;`= zyjO(-3k#j5SBB$ZESg!bHU~~DI$o~?2ZjQgTCX|>wgNg=uL1|=INFQgyX238@8cKV zMbZ8T*nj8FW0}`z4^`fvxq~E7`_4VGr|WmXuPXZ82cq|Pg4>KKGjR!n!;K$nW2Fa| z8k1<_Xa=Vl6KG@42R9p2Xyft*#~I^&#(E!IZA|tV$1^z3nCLV1MR1of)n{Cs;L!C) zFR|i-OV){B;wS~DtmD7Lo(yhWCx3~{796wwq!p_sxN@De6~{3+XPvMW`!Kj;ow5~| zGB{%Wu{TzJaQQlkH;!R&#yWvF_G)m;I)yi`aB#vp9uliNxOSZki4z!Huug=;{uSJ_ zP9^hJ+gsG)Ai1g1i;PUYaT@Sa6?HXu&r}q+wX|8D5fW^D zFg10l4+A+cT{_{%NQ*&NQ=j?}ZB-DV5LQNN4BDD{)W6kMtD>7H1f94+U(bnE^PXTi>iZy$sWk9$=>S0m0eHC>q%>8o&-knd zyb%Q8Z~oxj&DSo8FSW^^;SfYb4GccslyOOYsY^~1PcR&{HHfh(0c>45xzCgcK#^&X zWK+Q<{iR-PRAyvMm`rr4Oib)ZbnZw@$O8%0R0$n*35_`k18xbmCW+@u&z?|xA`tpS zgz^HP#wGrxRxZON5m6-OpyZ~hOH`}6K0O|~@_>*^I+44A-azhF6spTGu@EFh%eg>aRJ5v#F)^kk%gI|n8zB4@ogim; z4ir@K8qjwTo{DyL@pp{yWLtR;Xgfrxq8r2j&v}wb z*5;%ox$n>m2zo`yoa{aeAcf>spob9Lit;)6eO3VQ$lXGJ&D^mm(a+eZd&P$n;CxXVz(Csz2OSUr^q}0gsL33tU_ujip zw==J#9LnQDBW7s!>dz#6nS@gE<=LSbGt7I6RCP z7R<2kwVX)3`xxb++wYJ^3R521mD>emdf_?e7{0WN9jF zv_$DKBa+)M+cNd_*{Cy8frn$86LflW^$kHLmdZSuw$0?K(Uz@mP(uw~T}PX@1zZi< z^7V~CM3zc68n;dFs@9hEMcx)~?^7AJKIC*3S3O(Q46X~R<#om4uVbON0;9-R#A#Z*?3vG=j& z(w-K|7u&CKwq^2ZrqXstPq$G|#C(!EwSmGd4M_U82~OmE(mHhwX=>9JMh~{J0q2*} zsk8dbDXnF6d7I)y$tR;z54hyhE=PZEqnwCdCHiXv!CP9w=QLd=vRv~4IOC6HKE3KGOu&HTM*-X1nrwV9k zh%U23>U%lC(ykd%06;?om<>{E8a`aJ?Y(dd%a=yIf7VVE3rTy=-(H1%rio<&iEj7}Ac zYC6-$)a|i{AOMxqsjgC;XF5ndA49V!X^>s4vR8f2w4C~V49B9pL4L6sp?bmeGxc`t z?slQ841X25YCO|$>K1r0gaX968c@|tyQ!yRsN2P0thGvCwT5XS^+CP-T4e5yNDSDB7dFUQcgOTg!&%3rmcX)X0=40pR6 z{K%_sRDUu3PNlVlfVfj%v8YU4t)c?{Cr(t8CnwurqG(4QpaSq$wuU?f*+#5|gzA_T z;qYg+sys@pWrSMtFgiHI)}}dDSCh3oU5gn;0GG41XpYv^s4mmgvV-x!b!{D*<8`&F z%jdPoVAyaeTeIe@XY9nRyi0{uA*rSRy9`9$pm{%pdp*4A*rFE2-gtj(U1>+SN#mG zY5-RY;879hfq+F8xX-@7$D4K)11Otj2237qvG3{;-VQM+tXQyc?9!<`|SsuzqwWcK0nO@m@?dI-|am78WK?2t+@ts zf_v@zori)b8ycwD12cjLyJou);MvW=GHz ztxE^Srz9)iY0SQ}<7vv)Wvza%DP36!pWU~^ZhEUrQ(ZqVVfT(_HrtN1$s1I)fDN&_ zXcpO%Ons(6*iY89vHZBv>?m+&3l@haxjOiWwaHa0ElDhzPz({MvdxOL6A zHMh78@wf}4vZ15d#TD6Qd)Y-<*`=Zr^NBmwH9I!lgw{obHf~LAORpTd-@n#_vCa_M z$v2fQaXPfU7XzQX8BII8rsgF9hpzXc%P@x-UOT;}>Lp%>j`!kV26e{M&abI!N!X#s z^R*z1Vg|=fx~XL8#rIZEG4L^+QL?jYY6M;LPES$5B+RhcX*E?Y@qBOh6bG2WjH8`b zQ^%6f_wI|=00Wqzv{P;>U*h`Sb|D5n(=PE9RKg5SF?M1R5pW`ymGnrfH$zIR-R zgMrnVK)ax(o+T01sC;$hGKK}UZ;a>azP5kjL;-nRX0_nbV#w5kwlQC(Op|4W2*omF-G3)CH+E{NvvC`9ojHu4F@<+F~tuxx^|bSiII5d21Qt^_EL7=SjH zc`f*T6FN8abpl32t)ueG1@vzy=c3of0g=M$RAsme(%)##Rj;iBVudxS$`ckCzTutA zUYiF*3u_dVDKA)k<2u*5wihZh6R5!xs8AEA<`SrM6R5=$n3gn{u`u|gVKD2lGOf5W zQ{;Fc28F3rjl^Rf2|*oFKh%Pi*rPKG3RvPw9f|PHV67oCl!QdEJI< zg-&yPdpYN<*O~!2-3Dt#M{{0#9p^&Vh5-fLMk0k&bGUmE=QQ9~Dl<@Dq^Mv{d9VDO z3vk%Efrg+UJIB74an5|LahnZhQi|5*K+W}B@Y>)uKhOwtQs=1l63!XG?_bt0{h*?r zInXRU=L67o-Y-MoYn%gR(R21|t=pVm2EU7b&w>8uxyZHAZ9)DA8CzPeWHQFsR4FE! z=09NL78j6VD6_K=?5SN*dOxIzX{}VI4FJ&z;L~d5|Vk*;#g@ceZ zCU$V>iCIPcxVB>zhbC!dEPRO6th#7>uWMw$`(afo2+oy$b4;};G` z(w5leA&RXUm#J2#R~(e239-XNcv}@e#=RYZN1U`ac43HYtNO>Jw-a!6lNQ8I4H0cs z{+K{I-f#qx_Qb9YQEk=!n36H2=Sj&Loxr!0147Cr1+y}q*{r<@EK4bHpI8JYN*-`U zm>{=Q0)EP6Ac*7v;r_%uOVP$eozE<$ggjf|zqmAp>CAvL1nNBuB20lOF>7Ul(oz{HE|(Ez7d$_+ZYS>Uymm|E|4eR*!xND;F!6Xt z1{g1w$j#z;hO@RNFm@!|lKB^NO_g}cvt}nqb`*dBb2&CEGb$%cHak@|Cw4SDcQhvi zL*Y}Z!lJqYd`@A7TVb|I!Fq|FlVX-fXqFF!i<`zRo_`_NYLbsA6LUfmTqL5}=JYMu z__Q*aCp30!-QwEj^{s07_%g{R6n8A$V%p$eEFJm0G6g3Lb{yRj+7`Z89rEF3qECne zkA0-i+$&2;KIKe?3AG)Y(^#MRS62Ca?3qLp@;er%(LV4_OG7@VOuh-d9f#9+pM_4V zRX(ar+zII&Gmrwz0ofa$Q6~F@){fn2+||6lRX3kVCe?)Uj@4<*75v6BkS{1xWWs32 z=``VL;l_%-K3R9P>Z|5M=F+q=Ifv5v8Qs0AGfgz+lC;q=d!Pi-U93WA;xLz|eH?QD zrVib!svFI_m4zB3O!frz(Yh|0FTfyLKa)*bgPfj4Rf8sfWv52pJ8O*wCOwU+cbYtv z?HU8`Y~T&HdLC8nnnIP`@LpSMo(57q#i}w*uF5uee{{=}Dv8Qc_!xMDs$bImUUi{~ zUReSk-M9CsZ`WO^I@H9iEQf#GcQ~)V*1fIzHGjvhkY|L{9=ran?m*SX`~y2E&lsr# zfU|YCs(#Ghw=3ou&9+ypFVmf^+MCC+E93c??J&qP-p|_qjCHJ-b;y);a+9_1Ub?kx zx;=VUs zF;8<)4_b1zLXG))>{S`_%m>ZqL*TDdOLF4)0wQWFSx1LBZ4*@O$C@E&CIs39nxSwLY;C;xkY*DK zZKCCe$I#^soL0QUkd6(?R-(hupBs0*A5n%x zY&`bHrwkq5!0>*OA5y+S;!T(zy1Rku{n#)hV}rn(z%X=S1KS&KHKb*O!kcI{^l}3Q z`A9e(Pl>i(GabhH7;+Oh-Uy{BMD*Gk`^wO51SvH_yTldq#=W#G`}vcYdT0MYF!($OQ- zOKFYUfW9n_C<3T=t583sO+th8vKgZO;-z1wP+z{aas$J%8lvKY+pk?{Am3)H!D{)R zW2Uk>4K_LTIysF#dUbDDmy%hRqpO#)tC!z8ETv;REKB_pGxao%@HC&Q-(5OITwUDr zE9x3Cv}do+So(L_rDW)%l@bhzaCpJ$T>OYWye z>K1Flcx*$LialXM`@sUmN-(bdkoICnnBe{!-(o`;-+t(IaUe{DG#IT|)S81dQpKv)+@zsH#V*#b{^M*?G&R;n!X4E>a$(xT9c4wLW!k|VeMRzeI^gV%kVL|?+1Y&|$*F0#vwK|fvyq0SJ2irhIRQikf3N!cTF zXHJ2v+;JsBhRT$Q(ZjFKt^#ejUz8{rYE!00kMNxz3WVqOgLWYdZx`P!T97U`S&6Z{ zNo|PnAk}S5kRUf2WP=TAgBAPgZtnznaVt=byASKCYUNf=^6a*|4Ycin1Gu19ZpWn1Zue=g&$m~ul!D5+<&#{y zZKwS{d!4R^f=;Au4B1afjYZ zt(9>_-O-jWE@xhGx6F&Hm1IT1(Gnws@@XoR=UT>w(XUNj*{RqzgWGg=>c9}R!BjKD_w87dTZX}pzVAG z%~2d2>OVVd@_OX7O{@?)cIK?px3jKj0{%X3dER07y_aAs#fp-n6|e@wzwdZ@frsac zp`%kv!t%oR-3u@DR+JS{&=`*toTJ#m@se((Sy2TK;#k3XirsiGhW|M0%C}?6cKC#C z55o4HlkLEj?dTz!v!s@*g_etkmYc_dv*LnlkzL1#hyKF3{u=g|>9{Zahx%Umf@=or zZ0-LwB#XjuoLp zL$894HKBD%cigs!6`DiU%S^v7z*_9C+*ZEAb*OWh>$lpqZs^Y5ma)PNlw#R_D?noG z?$p+@B6w(UneVq2urBOQ)t0craHw{f_45mG8oL{{)voXz>RsmjT)kZnbQftWSYbcZ zy3F~x0u;yY0BKwiIW)Q~$oU|@Pj{N^$Jm)_$i&{9F(iLbdOG7r(isb6gpC=4ANMUz z8~pe?a}C+pTQY_}9&DeU_@Q=&7*f~PX?>J)WkPLb`Wk;rwO7<$YZ5Vg{dva_@KLKJ8ZCWmZ1ZjY41f z^ACLTk5CQ2Nv@JR)$mQ_9I+k~`o?q)u0C<9Xc^Z#tUlKCt?Y!ak~&qlOzIsu9P|3- zbWW@iI#sqzEFXS9_Vn%OTv?@bs%@ECKB73r@r~#lSbYpKx^cn7ykjNb^3K^+lA|iG zNx>t7V>aK6&X21ENAJ8QIu2Kk9erCmmscr{YP_a8j)aaWeG@u|SMh)aZrty%>)6n@ zwsT>X?5O&3((fqXSlG9qb8407sPb~+=i%*fpl?s-+A7si?d6pGCc}Bk)#xogDE_4t zEGci5pU+)xOENm0ac4nwO_R^Dv=tuwt*f!Z;fVaw-+uBkRG?b|6$gZ>WBdu z1&W4gYfDaBE$7Qu-*0gOrGW-|5i~N+JFZr4DFc;zGS-%lwl2?qUftf_{q;I1QRFiy zXq-n}4ctEdB@>h?vP89&a6Wvs^?#UkO}NTT_!*{rovQpZcIrBJ>SqY9|ECQ9MJ<2$ zg8vGi|7?r@w`JiIinVj0wM!I{Gn$}yk%fZYsY@ax=B?x}Q@|F?8SSuNY9X0#HGrHV zu4mq8xAu|`Np`FF%Q7gY2fnuBbm@f@yfygc7?jYnu(o@2iHk(P6$b^ZNRZU*P+ck` z8E(~n*?{$`d6C_MOLipDt^6;G-_b$vo*ko0CnVpk9(aR^4_fHiUAv@0;@(RCG6U4Y zT+oilr4f?-Rts1#;(pHu?e<)XAgOMZe_8#G`3?WQ6LcAb6uC9}<@7t@_rmX8P!C5N z4f!e>{nR3nNrvK2oM;2uVhBPs{;5?W^9aRPj1#o0kQ>oAg~lq+pOfQbM5DQg{v}Sd z&}aHtB<_=t4}})fOx6@l7)xm1LoP%k3eBb&zmdCRw4<$r9Ev6sT1_*5qd3F3M!OC9 z)fa4R%<-I<91G(u+Ca!gU!<`)2NN+xEXEMpR>+V4!>sFvdn~;u&z_<%6{64^qp+=` zP~Uk&Ec1r^`5RK}H_R;x5a{8**J)Id^ z$$(HE9XBMRuVmfjm=-WZnEB}JAsKy@>mJASfa$?pMW+f$=qq1$JElXD`eSyZi-Z*P z)vkLTGa$)sFq6Y%2h2@QI3zPU6$r|3{=|vu4A`4oa7brzjT7wPoQC-f_?!F!j&2T6 zm%)h%lN@OMYnJnL#kO}I(@IGLJY zh8nMdn&_nHQHTmwsR~Y-3U;#!Zrn6h^`p0*kzx$);_PPwPq7A`=i*Ib?}ncaplk8i;z}y%-hIsP>%{VsDN(_)~OdM-^ z3wGiG>MHzl0DWWNSQYsaSjVvo!lwp^Ha;F}0O|>^8+$GMXaIL(_*e~qOizH_Abf3r zYGdkH3$RIezp#IY%N9db8=m{5J_D!9Xo&QmIMFKA_s{)OX~sylqg|zaiaS-ip9iTw zWg;esekd(jT&$|E&cZ~Q7AYrHT08^R>Fm|nn5Z-&nWWN+$5hi`w(6|!DB+Q|Qq9Fn zs(CO+b@q2uJdvbQam7QbDKMKk7F){Z$Umk%!NydyuCzn(d({qDz#KK0jfxhKHYl!9 zZGrjC(SRkWXkY1o;%?O*SP=J9Qey0AG->hTqEB_!-rUbfN#dfVq|J)!Kebx>b5my% zD@M~xs})y#YO?m_rpYFmh_;me=a}h8Wc0VlsLzoxNEz@2MhZeJEeDm-g-T1AOKIMx z5fn?pYfB=!QU!~`_!Ch(Qm4gNpF*rnnx5<4{2M3=z)(Faz=rzS3HphQ4t8f|{DT!; z^?SiPG>FW6gl7g(h-ZAkgJ!0ykU;W+%W@EriRWf!IG%u7&+*n&)n3`&$==952=N+W zj8H*1BV-WP2yKKnLIPoqP)E2U6cF|ZeS|+k3}K3ZAY2i02wQ|M!WSWhutaDgJP}F= zM}#3F5Fv^%L8u~J5V8mxgbu<7A&Ia+XdpZgiU0u12s?xx!Ve*h zutI1dyb#I=Cxj7LpT?JeOE(NLW~^7&wq?OiCzOvU9p*G9saMdp1kaOB>xfq%d;iKwUftcoD^BnQ3k4?z4>&jpH8IFX=ASgYl{DOr(fL3-r!)G-F$pyLJ8=%HAsjcS&Eh~x( z%AdgjA3*QAp8c~Hg6x9g=NllfGU=%o`D}!sO24lh%`lL%#dw_R&Gd>VA5A%?d|-Bq zfgH~`VT(zW#@mjBl>gm_V^d_4p8ntpo+!qi`X1E-atM8P~AhSxP-pH zHVXQ~`(A!z?ZCno*>N0_-k+-*buHRypk+(&I1kC@&qq1%f_xZ*e4SQlgL`tFWpd*c z+xj!M4bGZ%CL9;+1s4=P7t9tHbT1d&%O7`eUBaZ1l>Y49xN8Yiy||kZ#{DtVARXLnQ{CPNpQmip0V+3y-u4g$ID2H8@52)o&=Fzs?CJs zVIpJ83G@PL>YZ>+Qj{lft04bD=W&GNDjTjD9V&b3cYJ1Dv(HNeuqSqK9R)y zu8t^gBE{D`{Gx1$WMA+4hzciC;om_OrB)%vzbh&FLWMl_4xK2Y3Tf(H3sHU*O7%Mg zqI4=GAQ}|qQK10i>7uMEWMC&_Q-|h>9vK2CaLu(JEEM)kG>KiIt$o>ueI`ppbQ{ww*q149DiP7GMJ~pN$MwJSE zVa!5|J`{>!{4Dc6eJGbd0But56R5(CQxB-^=MEtRt{TS?(0M*c>iad>(2jl zc>iad>rwEdr;pwU8MA*zzX(NHfBN!1PAJX#^OtDxp?K@GFHx03xz<@;qECimu0LzN z&lbwO&eV!l6H2yD--_xOD!9(pihdZ1zE16ZpE8tTozWXDKa^;l&KuP*ly9BY8+|nt zcbx`#UpSO~of(PN9ZI#%fJ6-p6D@c~n&nDW8x|{oQqGTnF zOIXr_%jT%PxhE%jRtf;2=uZ=UM*YnL8}8^NvPclp$0SOQnwq;b+}BBFkxZxmm}oKT zYVOl;PbaBLLX*BSQDfBB+@k?aC#6bqp8g=wW7O9?pyBRfqP+w!eNLj{sHM4E11gF1 zds@Au>QP>Ey#|WKe8g){TEV2eQ8sg}2C~IGgeZV_lDbBP&5atU77NH<`P_EqtO&?l!;e3kAf>2ehP zt2h`=&h!@(rYlIA8YTKFe?oAT?JwR<2X?1MalcBR;9X_ihy~JtZKqMHugWJxS2;K0 zzvzA^$-%#Sk?cSd+Q{lTg~5F&T?uPBk4^l{znzU|Q&yENG;u`M^5W zg_%S&f|+CpiXW;;!is^U`lUt)lWbbCoSFr!L7o5ID~&hrWHgGI)HGo4)Op?sXoS9# zg%{hZdBED$h29CngKcGaib>TJVP)!E@A%;%(IvW&YS_Fw**jKvysffFp#UTgHmOeZ zju{@euXJAM3+aNbs#CpVhbQbSV;7=9LScP#k3gF@mQ*ROPzq84`!q*v%fb^+s;pQ@ z4@rTI&f(iK@x)~-f%yYSBW!Vw+?I_eAzK;r*dQ^m!MP{4jG(%vR9&bEsf5AjNNrjF zpo-@NY=xTNEXg<&^Q!5=s^@rZ1)D>cWPuD`?Zv|q=jg&a|4szcL7vd5JuHPJ{)-6C zaeba~^1R?7EKy8d0#w)_KVi3XclV!y#R3J;S%VD2w&pPQX~E09A}FbWzS-#<>i#p2 zsCET|q8i8o>|hRipWY*;U2&!85ON9oIft@OeIDtnAXJnOnS$-kVeZp`H-E*hqE*Nd z>~ao$pXNO3S|OmQ8?pvFn#0{^IFGqjye;|#`3<85{Ya9$TqV(RsM@EBJ#LVpQ{?4O zzP5sLeahNnan}?e%gY0LNvPYWw!K&Gh5}T11#GX0pqQV+_nx_{wi6rVvWaFunJ+>iFHrY-L4&bCEZcFrCe~DVo%B4svUDB?NG|A+;3WF&(Phe9d{+;Q2MeQeHttz zo*4s-C6!VNw_JLfW>59Z+80YGol-iXoM9SoPxj2*_n}Z)zLavg)il?h&Y8V04iMx^ zPn8o*W9~_wnfhXYrjrzVxz;rEp2nH2FLqb@A5^g~MOQvh144oRZ;$m%)0eC(Z&maN z3aos4#BrZqDozLgI}uE16P0cgu4yClKSXeoqF|G}Uz0Mry9|v$F_87`1)K$5-vM(u z5>#ag)6#opXD-+G1CoU$3(BUZt@hl`e6H^WBy~#|mDNsb?b)4qT%&=SwB%aZ(X`i| z-&w%*-P^=K36ZjbY2`huGq-Eh+vGsWp0c%Rr#-JTziX7+q+b$2Wj)hIdroIw*XXw? zza)Q`{hkim3vz!#&zKS`I|((0a8_i_DUi~$ro_umnHzI*W@U~m5YjWJ#EnjVHFo7} z%lx81Nza~=Fgk^A{E#y|vtQwH*>km6#>rG;InL6|83mFu7PWZBDRpBe&a})ikX|sU z#Z^qs8QXF;XD%sFl(DHLR7`OjlXAvo4k_T3G0w)?Og0&BW~M7JgNDmnn~zOqOI#G0 z@d^xOT(jYOWA0|{Ttb=o3hZTkvk`kA&&;m5P%__)KegoG3L_cAGJDHKlbJOB+>)E? zEy>4Nvmq|L%&2i%OHQuvtT9lU;o{278fUTO<%-Dq2wE~+n3>_@&w!6ROlOS6ES-xv zGi{s+RB7JoeEfqdZj9HNvNz`C%*mV>C$wa4j9Z*U7<+PdWUeU0_7Ue&6Zif*5gZx& zVI;O6hGqUgMDUO$`H;n{A**}z=8y1R_+@sD3tNh~1@n)9Mhus9X36-AotJJQ{G*@( z!)2A(IL^QG%I!_th`uQsmsV!wIM0rNTWH(p7gI+rugs2dp&jAVV4sm!rj%UDndReL zK=~TtGumlt$mNvTGA_6ybo%CM#NSky%P6yUoNq_)H1ui|q_bQ>nLXno^cXp*ibM2P zYITf@>h`w0*g5Hn!(~=nbtH=l_LjVuIcXC^mR4?c{EPbbj=Z=z856@hR+x3Di(>XB z?;q%;vJMei$=A^>LhNncW9g-{4yRi&*AXnr0c`o9URw2#rj=bC&!Voq!+RXPjOyWe zE3!K5MJZ4d!dOmq7~-|kt8)QL41(oshXEinuK&J>V=oQlK3U)UJuN!wR~9MlmERLB z=X@WyumE!4#k=57?IXcVihdl6i28xW#|Rlue8Fsrfq0AI`mIF_goNi4!7OmHwt`Jy1g;DXYxAfQ*+9Gu4&8Ni+o$HT)Y=W5JneNIbrf+bX&=8jIF8qOl&+EZ{XSp*I`oD(KpFE|BGcdi+&AHNVBGI_;y zOoCgTYfJ0$7m7nRuY`^%aGY~ZXdMRmBI9MO-z2!kxz@HWd?7nzy^Qyp0_Qi^g4QYE zsAIm2`#A~jZLU47YhS1i*)J31`x&-VevDq>`^yOv6l5z8lyA@e*t^2=mlDP+$eQZ6 z`dfEIC$0$n$^W|@(SWN!{~#c5N~HRLyAyFNer0mw9C%+OnQAa$XZZN9je`C`6$20K z750r(AYM-vP(E$9{8+xCxKRou>d8s?L7Z?34s!oa1Se&9XK8t-Mf{5hUhW*|=p6nD z7EE7l(tso&V{Q0o7xx(bO8mwI$X!!KhNyOxj~TAiZfrm>kS;P@u*-f-bR~ad@#`TV zQ-+LoosRjg^lltLPLR9f%FmgNA!{MUJVi zly9tlVFHY0C}=n6Smes+#_1RC?~LEW43Co^j)r{|dq`cHC?~@TeLVAUFYHVVjk+XJ zc7(tf-&Eq?JRAm@)Q=6sB3&Um67! z`-3Vz2s`gbGbyQ){mcT!#2+q)eecIHDF>!WRS zKix)yvt%n1xCCJGh2`|KZoGGvZe<3)nwYp@5&bk9^~Vw*v%|~BWDm>eXWnQ&mhxr> z;XWo+SVBL;M&q$0k_n{wm?B{X{p=ep$I?jV8@%L5*+Fwt*B9ZL5Cyt2!r4fhL3dN% z7onM|;6;P5G4k)-5&Z`r%J3dvFRFTw*HjPaw+sR0^1Bt|- zu&Ggf!Dl1#r#SfNQK5s>n<_4uFZIc(0&;oKNeEFz<(%R^+j*j|To-f| zLRC>ar@YUOoroqE3hkSDWCP1YyPV*H-$DG&6H&QXcM5^|{$^06P}azDt2(8?v#%11-xRAy)m zIBC@yX!TrawN7Y_z=Ek5g!X&Vh1^f*?abZ1LU$Pf7K)^Jxnbzm48|VRT~2^CFKJS4 z7kWB_x>xKj+smZxl8EJ8I--EGZ|kNp`?7dDd_GD=3eQU zoG&YYN92y6mow;lC11qdjYMPD=Eg6C%6x&L!R&6m~G{EwB z22k^F8@f6Hy_(h`!(|5g2+FqTiLp=QD|JeG+zjavnr+n+YhYW`q-03Q_row!_u`9nYw zls+|Lwe1FE{viMcq%}&f9nsphJMp-B3l=2l*3yqgyte&L0l3<)WCht8s0xIs zB6UuVl&(5iNw(Hpg_9{ObzF|{@7)o#`3E2R-|dKkWm~mtW|Y)7V^1yWI3-BlVX3`k zrb$f#Pm?B2slPS~`hgikuDC%-r`BGDmnkQ8VvNwDvO#gN2BG4~)RDR(r_hJ5PmN!g z_^@>PVM*P?^5f{j$Y|(DbTRCqI=7@2)}T7epeFgC#;ZXsuwa__gwZdxYfRXp$MrQo zj2wc)ES*|1_F}u$RgAv^pw-M)sf}a&+nuhWZ7`q^V%AEn9OKz;cNK4|0OT{XS8B(Y z(02F9YabYZnVFSS%g4C3+W>i7(FrkRc1mp-6Ws0sFfj~#KA4SCYsdJuI{+VC0eWXFbT52#xxVo(^h|x3^%geO5U?gw_TT7mpzjsIUAAG2btvnFq={l6W z*8nUY9LH9=Ib}%)#Bdq_uY*(CDg$4h9++9w0K^>p?*41=WY(rA#?gqV7=SP9 z($su3R3tSZ78OQ(QmW%tM8IkG zRnIeh^+B|!u3S+L=i1jf&-FFzDl}AQugHKi?`xcA`x=0xPaU+@;DY-G=lQ-y0fm69 zt4M$|?5mw;0SvCFTivLl7S6Y?cb<1`cv~2#4n`s1?E6~hIRI8G`lTLJ(E}IRH##rK zzE2-MYV4YMuPm&>*cKcs!uO1QGw)i4Wf@z7n??Adv1caAPFS0K@vm5G52lox^<=*#o6!y4+z4748fz{DlQ%8ot@$1d6BSK*R?Cq`t zD-YP(`Kqt%<{OrVdw(A&&GN#85cic=Fowl39*;rLc>U9%P2 zF+y-%sTK3^?TbiJ@+Xg8KY=8^#WJTx_j&&Mv7E}=hw9W}|Jcw|v=${3m=32rGr1!k zX?*{(x67I83odSN=<%ahSP8u)$HcF2lzUT-@n2z2^)?=pzrtnjjX8eOiB;QMc}&`g z^`Z9ogbvu!4t33YSlA$FzB^Gnta&7Qh` z)uHpM2T+gsc58!XM_sS#h1~~)+wIvjL{;jomv&oXPLl`fFtTb+Z z$l9#g1uVXV@T%rO73a&W)tYUV+#TNXs^yeU%mznZjXSvt`{@!M}nPN%FA>+MXj7{cSyD+r>MFgv+ zaO+-Kh5s%ot^oj36r>@E{A?ej-etf_Sq-Lj_Rr6*eNn&zM8>HK zWZ(M}XFI-_LQ3FiGNX6kaQ5C;u&WCM;V`gPb6{{*cH)+ z?fO+fclT=}82b#-f&5u1&|9{3i-G6VjMjnOS@S=s;)Anu5R8{}%dS;9eQMcXKKp)+ z6HpGcm({~yh08+>{oje;c9?v76?6ML@qZD)4lADwR%Qc)ro}1tlDehWDvxF_575s- zuc>eAK)C*nYBu43;Vk8v@wN$6W-AM3rw)kDVy@|K8$j0n4isMx_|9^`E9raCXsukE zJvzWWi@2t_tq0NjJCWIf1NO5FpfhRyB^6ZJGrM*`b(V0=aN7uy_;*3GJqIFZ1=sAi zEx)9HSN@(&A(o9ZmvW^EPnwajfbxRZ{Wy0iUz*UQPb22$ybZ)UarRQ4G!aR&BNktI zPl$cu{G|d*f>o!Vo8$9F6HCUK0)1YX>I_&W;00p@ajsH6B_XPxVCL$)?}#REarGY2Q1E4Dxl=er)g_*ZeCF9inEk*D+zyW)x@n!QXR)DrB{;oY4w}2J2yD| z#IZ?fmE?R{`DSv)?Mu=XCoE-DQt)Yw*cgi&jU+UVdPv1A^TiiplUQykl9IR=L)vD! zFIF>+6}ah1QsNkg)XlPAtYn&ub6b)$#_7+|CM1c8qZ@*lWz~PtHmTy) zB&m$!8PfeHRqQe3YZhAn>9e^#?|WjsIENumvxxfH&lU(?Q#8wUG?P33P6Uf{(~9%r zi}MuziwJ(dL0q#z(*2mY=uPa%XEOv3$X(-5hD5g#T|U1wCFhAJ8IHpnlHE#mS$b)f z%QH!`8;3b0xs~j)*lMcJQ$w;4M>eFmmF}|KYW9WakmNEBeMo#O>BnbpQ_%e(nTjJC zlHW@EvE*&m$phNkakxX$TPZ&lk*5AU-6U&qR71*J89$bhWb99)a>2y(;d{)VsJdMH+)f>y)b^TgMC`&^Rd$bs8O>o$A9jioECvwioNiQ z|Btw{4yyX!|2*B@NU2CkcbAlOcXyXGNXQWo5KuZifTWZ(2zZD?3P-wITJj(zq3-*8 ze><~#_wMYyvv=>TGyLrge9rm2->>KE`FIrMjv;n;@Xt!Gho5@__F?V`;%W!`tQbTq z9ufRqxoe1%9pba{>k%+3Ak25D@S6Z9H+AYXVTJbllJuvOWFxkeYf3}63yQqaG(irt~j ztBW?CO(LdwHQcjC?s?5C;4Rn`XxdSe9b@`Q$)x*#ZUmEYe@W%;*W-5i?~UM0Pw`Cm zkW6o2Fnz$;aA^`&6FwUOJQm{;4h${HCMq@dv%Uu}112RLp)I2(&NY6sAqUX`6YUO` zEgwycYurI0C^lfK-EpPm*d(YXY&IN7FUCV1q+9Y$v}>G!2QcPhGSm^)0w5GML9<~8 zkc$ZbjA-dJv99r+4LXRsn7VQN)$-dUvL@1q3}84AT3+RK`im8Z(}DLSYoMcA-p+M` zi#dk~kUafIJ)(c>haUb*9?@g>tH#?U^urebF-my8dq08yYlytmVJt-*UK=&<8b`nD5 zVjNHdEjPBLv{}{Nk{|&wTBwGW6IczHWLv&0+ zijShoGY1u418j-hV#!#0iA;OR0kj^%W($D+-71DXeAep4N^%dfpyMH}<_|Fa&^ybkVV zv471YdfWbM`8Qw&7lMJ{A(3xfd++kMW1OH8$zg`0WZ!>J3VI4U^?M)v<~rz>lfaO% z5s-%Wz5H4`B$uHenrx->w6?U?DR_I6BjgXJPM2e_W z-;;s{^Y*BpgO?kOa8=nmt#x5(!}FpgWC_Nws^y*4x|A4_9T)ZzTWYdcYSCV5c2jDV zTxudsYC&IW29m$?J^x!y{`NxtW?TO5H87Ym{&?t}(mJ=advrw(3 zS6abrF#T26lh;ABlDp6=o?vR2`l{neLeNadj^&kCuqezNwEB~S<~nv)t{8)fVJfTk zAaa=w+mXJq3g(3w12c5e)oj=<>`Eq>38ua3e3E!IbGs9M6%i~8vtIQ+Nx7Q4-DNpV zyZLgr6@e#PS}?4ARDL>j^Zo8T0t-k7zKk6@pZ;e(qB{}zvZDa7^e=csJ0oPfy1@SU z9`O(CTZOy#z!(1s$cDbB{7|{Izx%hOpb?)7*4b_j?k;{~0h_{?wL|aI)|;ifBak(h zca5wa4L(N2c&?pVuAPMggDKPX zTM$qmoSa?VV&6f2KloD@*(bZtbe3|<4+UFs}Bm!#%`(a62T(U%XF9Wo9$2I zpZ-7lk!M}EvUdf)dH=Nj8T@nb=PV6F72+WOpc5dwKG|GQ95hmW0tf+zt)31TOITBxWaz)qP?G>qX0c_x2d z_(X^Q1BC%mC59oyP5z=#Sx4{#BF0)7CPauH_h49GF6`GGr?~wv22PO<6BfnN?JuXW_LO_6p34uK58MiUv zlcFJgO`wcf4B_vYx3S=p$tKYt0456vN6)m48J~1EDT2TWvk@ZRvutCnWs2pkbs^W8-+Ulc?u7r77TNUXV0aLN}b?5 zsu~ccp0Rafq$H?H5dOwgg_qbi@P%YQ1lxOf`f;xCCfjzt@azW&8Yeu#I8%7FZ3|ym zHZy{D2hT4q1pe8!lP?mmxoN2I@Z*%=MYi>I!6py6XfyHD;~e1)wrzFK0jiq@aE{^( z;gz<{b)hEA)wHvC?r{O|c3W6o1R!_Qh~Ux1X~N5F8|y;mAHK#nkF9~v+UC`H&hvOM z1>#7?LgAyfS#|F7+=q;pIAO6c_$r`!d(ZP8G7;fm$3oye-`@DRh;h*~CgZ5Y7Q-h1 zT3O)l6;GQ&0tS{rgwflqv7C4O;o@ksoyap@}gneQLOF(!*arGqlr*ClNpT-(I zjnf#4wHS(f!XB%~9;fypmT&rrw9pg5rYDmAPejk3$P&Q$6m2PhfIIdU{_EQdq)jlp z6g}XH#}2|bzr`aRzybn8KJHlTF8u6U4AL%`<1;-d$;ZyY556TKoxnZ=pd> z8w6?lll?ip3~oW}7<~6zBGM78Copv4uEn0fufD}0?SFFI(F6E+>>B*!TME({Y%4H; zot4->@P7k|@_%pp%`K*4Cu&x#(Q%)~YF0YZ2?GrYMW~MRG-iO(icZip`h_A)$9o$4 zLg|-IB&ba&LdI=`FbI`;$9;s*k`#-_U4*cbls3nML6<@?ZQMZ!Q&VYb++PU&t77B0 z$3Fv{oU)^`6a~0QFGh(JX}Sn5Mz<7sx=1d*2rRO65&bWe3d-A8PlW7962 zoFas7=6}{B`nP`QzvdC$rvtm-D(FQoCJJ4AgdW|yN0=C^!d&!r;)9F75bM2vT?*Rt z2;f8$GgUZ?GA1fr0-9LO==xP~b?usX%$Pi1i74k4eFdgG_a^Q|MlelR?kHN(<$^zy zdiap!Eh**1L}c_jYInkY6cm@^XO^HC`qxiO0H}!GnVyV}0>kLntK`1qf#m+=L9ITm z0j++m!O_0afzkfaL7qOI0iJ%I!H<0(2R`9q@f{pv0MW97kY z8oEt8zJWmh-(}OC*+p=@im7K0WD67xO0Yf|0=-`zSBESetyG>?hbkQ`7hvj;0DKijpvPwGRt2CkEaz@hAEI~I)ZI!xxE5H(-G)Ad7TBWQ znm+i;So|m`SUz$nWI9n;1U9JH_t#O;&`4fjI258#y2xQ;@x8$G_#dW%f6p8c&C;K0 z`=y@3M2(9w^Il@_q>XF6zey+;dM4?}OUHo*pl1Ci{#Wppr00B*(Fewd^#UfQ)$~S; zRZ)h0k8LyRADb9f-!o#UdNI@IX4_mZVPaX$XvE|mCERzEsq+DO-1nRr(d&r*XK*C3V+dcFL-4Ul6~(8UrC zD%&vE>(0A)5QtFG#U%~0+K|_)f+0Je2xVTZ=Ae^}V7=+QhX;`ebza=pK`I;kdZl?g z4_vT|7Rxhb554#@&(JEAT7fmNxVZeA0}sOb`I zQF{64nfb_y`R>{CQEl?QI;DYQX!JeO7@*MT7t$CcK=g4T2Ivv}Qiwq`uD*wdM1j;D zaVvw2HpKNRVA78Z7UN>22d!*)>y78#!3m2hEDkm(W5ZOhJ?{+Y4wSdC;e!!2vh~*U z-oT$keH+KpleX~%xfP5j#gdPwoizB(71;#X0MhxWW3Qayf}5s5&H7LLuT})S$ywd% z8>Ps}VA{`IRz$oh#@(D78OY&a%FmAhRUmn;+kK-Mxfsmwna7H_Hbu0XZX*df01j## zs|4EJfAxDa!686+70WxZwRdTg0ht`k_E``d;u3;-J2s_}`N6!OMOU%Gg{${=6CL>i z2ub*4FqjgEd*e2lk#E6?K}ZIRDKVvYaFZMv|MSsv0U6AK1h8DZDTvJZ$@N@B2D>0} ztao=49~txW;dA~@4C@5m-mFbdWCl212zO#xC$eoEATNGmfmJ%(wb$M~ts6_oqn|{; zyMPZgKRs6)x5!^VQSa_Y-~g{rPs+w1a`Pwd-6L?#ODgCY+t@{({lo-&ceq`zt$S)W z=8y+J3GY}V@Vk-*eWL8elF7y5^~I6|#S;C*`aqFd`FVdkZ#sky+rZBMfd-iCw*Gn@q@*pKQRs zg9+d&yq7nBXyfCMt$OwqH5NH^<) z$~4t z7g0~-?I{3bAL*}n)IK>o68>zOCj>09q`mQ^eNXKu_;YC#Ub6rOZ9HzDq8%B3PWBV9 zi%L2bPur(qN5!9)t$<(w`nPz@z9)91_1Pv*fQ^K7B%ZQQ&5p7@*F>S3g)BaxFVqgb z{_VV?2Wtz7dAw&|pdEI78u;k3UXp~xhxbKnpa83gB0Xy|iAubEpYH|+(1<9#V+F*s zc)z}o4K&}kpA;=vKav>7yY~fbVELwfQd(xU!?@3f#)cF9h&`H>CYnVIjZEqV&I=OU z_&2yQI=D&WxDYAL4BI{Q{j%~H>v7SiGzTEcuus2YS}~m zG+&2%0^B*t8rn|x1ygf|5DruV`TxxSO2wR*#xj)Zz|kON8q1}g$vl!qIg|iu-U6mE z)oMn}RcXRQxenY7BBpWG>HrR!MmQAfz}&#U@X|v~gqeH@_+J}X77{!(TOKT>9t~YO zU^g%?#DikWgO1ddp<@T)2DXL7LroxXOZ_$Udkf{+eeqZH8blA`QhSHKZQ(q7B%VO8 znfzcdb#v%+3**^C@%VQdV0AHdYUukG!82Cz#CMvb4|Y?}hOW2Jo;_%LWuXD&6{#ab z+go_gSlSXSG=Z%mHGWItnRMHW<)>Z`MbpfOYPLk4NdhN@>hZ&%w6G!AmdrC*Afb55 z_>eeFWvFTRji2ld zO+2{gr&6e<5qwFd$5qW&ERjnnQ5-ILQdy$BUm~AdqO@3|&|ac);~*F7pa}L0!K&cx z7W$6|*RP&y$UG=W9UI!+!vDc?o$y?<^TAr`$ETz#;4Q<`h)+Y|209k zzk9Fp01)hOYC7EGPA(bJ00wXCj2&6QM0T}N58^#+TRUJI4xJ{ zYuS#DUq#6Db2rrHH)e|5Wtlqa6^_%-+%TI{!TL;GQ;e zqicpP${&>k>ULB}Pg}V$H5W+8F_aML##Jy+>w@I|orFBJL`%24LU7u2pFSYJT@DBa zbh9crrw#Y-1wh;7S4zBeTPtWV*7lV811X-G zqTPG#&nh7ZjY%&5Xa3jzy$t}6dSscvqnY)7WO94&hd*ZfL(BM&8piLdCTI5c{R!Jy zEfYU#&b>dFyx6<(M{j?y^2$p?^nKps*FB8C{I7r~SY$rsx!2+^*)F~E;`nJ$k>r%+ z-ba7YcF7gUvFcS(*i`slr@w5wtaKFPQ{p1*DTTfF=X{}J($S2nDMcz%_Ivf`Vxdyf zFY=#i7qLz0?^S@s2MK8iSga{>p7PskJC_QTfklB$nj-2c^}W(_flzT+G+3P}GM;kZ zYxaK#OSaPXE)<>2+xvP>1ynalt6C?8L6aSOE9Z=%yZ~{p%~VJ{8MoJaPI|)*nD$x) zh1!$ldsFAMVAVNUMjP3`lS5(AP*&?PX?Y(lq zVHf`u9iiG)WIg4**Lp5_BmL_Iz^fI>PFe5Oo{Qc{{(}5g{ZkY<6}i`SE-QhXmaaPR z$XSn%Bga6)jWt=dx5ROh|9cLBhB7NTpq0b>1pk@;)lS2=3`0Maqd(mVC{%KuX@r!a z>A$V$GjOWpGt6<*2q?qSPpjykcG~9)$O+X5FGB?wfIcCoTt3YlCk?bI;D2p$FypVu z5z#O&W0=bS-tF%o!4J*h(J(Hfn}UAt0c~D>SdNT_bs5uC0c|&d0~S9d=K(^;iAL}p zZO>~5W&YwEeuRk=ycAI^=awRswA=Mrmc5^I0IR}fG)-oB;D(WS|lpn>w!q}9{p`O;*a(iGrkzlqP5L|E=H z`W1w9OF4kOha5J9{toTgyO5sG4q(wCM-*Yc!*G^=-TmAFY&PWZB8+$F&Y;&lcMf2c zAx9Qry~C9DQgfKqKCO{sKHcN7h%nt?ne9}=_xW=VED`3s_^${j+fCq@`9J$#`CG)y zqq)Ci+Nn1>&Nq07w@8`4s2MV{<7_mXuk;XZkuZnUe3`X#Zw#1k_mFOpS&H%;60xIe z)SNH#5EOawm;cqgp=N&8gRX^pDcN%jP=Okt^P}MUz`2xkGW0MmesI^|=y+{8`q9R?p=y2xz=62)hCbTQHPX!|9kK=rcEqds?&Ze`@y{;Cms9s;^Hd|@x8hZ*ft8rkO44mkjEIaYck-+ru-dOq=xmI4s3ysuqjnu!{HtoZ!9#X4DJgy#gs~){q{l%>M zt3>rkX!RJD$B;6B5AlShz{bEWr6Fa05VW2+ZeNFwcG_4s)XvWV77_Pta`+gyv@{gV zj~!B9a^5EW8vSh(+0Zq=cF1(edz+#OXW35m{nAEZp~gd*m7BOZ>EqhwZxPCap7nO5 z&vB;#s9FDs|Meq{@jK3*j4d_a(l!AL(~tDV`BmM9TaSG++8$dNe!OQ4t?HTCa`SC& zlK|c9^ zX0jO|<=u7i5o|ME_V6MS&B`16x=ZDQ-=+jA)3^W|JHWkb_U}dC@ za9P=lyftSD?z!FKyVS<8tmQ@Bnzz(@w0-G&+lIa@e@qgTEeU7X23c$yIXF8}1m#Nh zLbpeKciZp*aDxo6TH%)4AARTA=$18)seW5) z0^ALDdD_Q1G5_mwHcgKtlIJt_NiR0?!E+3zUN$7hbF6}1Y9z~ZOzU1zB=>XdwO(Q* z^Bsn4FE5hw4y&t|3CVVc8QCj~z1J1jCNbzfn=Uy_z1zBT*ySw;E%!k;2zzU{8(6I;(bYZkG;8c&+^09^Bc}y$9HkfAxFS zK^HC;aJjaZPLHmMo~v|{ujQP;gSI3iZQq{$x<D|)^3fWwy-jwaZ)6Hw#JH-ex*_;Bn_BKdyuW7+Ko=P^apm%J0_w?)<6Tn|c zyRxm}01JCMa!q-s21<9i*1fgc!Z9r*-wO z?bu7L^E2+^=5KN2@6hINi!=U^N(p{J9TJ}v5@Q^aG#3I94M}Vbi3mWA9(lUZi-P|?%#WfRs6t({a$QrF{#U=dojwz{4QMg;s%Ow zT^{DXWG&`!d7K+tR!r-{nj7O(EbhXS8@E%8>GHtrB~>wt3x`>3W-+A;i&>0Ov9Jrb zn&SU!ay*3siY<-`#zWE=m%jT{zBmsVA3VBGs`^wJPw#E4zr%fU(;;P|XK&-4QxuXY z?Gd#n9>2c@W9V0m?+5pALlg4f?*fKayw&@;J;Kn$)%RCmHvLNG{n#GP9PlDdZ zjqC5RoKxN4gvUfYiL{O4)1i4pKoyIl5MvAXv3<#>N5k@(Y5>PR#upxJ8_lPi{YZnV z3`al474B~v%cq~sf}jG2%$N}PbK4hnIwp^}s4{WXV;tenY-8&5OjxR^fV3q>@joO? z&PMrLmHR%XS|O&g4W?EU8t;Ai|5fh%KdRgh$iU`POc*>Iq@p^(kEE#bakOKc;eH?n z)eC0%Otp&R9TNl(1G%Rz7+X?-FTogZcn}CW^?$P5QT@h=jEQ_g#$S=Gp}|u|qMuOF zH*NPWTN#jJ$fpu%`(E3z@;7EHy{2wVSm-;nBjPX5R!4AysaV2w-<=(5eWA%yE-ot4 z#DxC74LjWW5-_&s21Bxh?Y_s?}UZq*VzsefxHV^<{vX$qit52^W1gU~2Xr zfH1j4Nb?fD_F>ew0Wuy(3z>PMXJ3n*WIYVbw%GxoB+;_(qn&7d$GieK7m|e~hWB;a z$<}v?$w%e(-dmk`(23#M!zf;FUg@=3H4%KN4^XiuwywWN3f zOD`d-Zv+h8DuXpY^Q@A1C$#o0*=b<>t;(JHkY(~AbHhWnCvU0WvcD=~k8k+!s`4MJ z+%)k)eH|Opr=36Lp0mr4F(qpEm2U{1wt>MNM<}lF24o_tkEQ zo_2sa9>;I8$i&FLt_@lK_;dp`R+cQiryQjQdTtzAYRsh>ld9iK3G|dX($YS+U53_7%0y|~tbG?X)D4_d%M46fJRH@WX&$r?wm?5!bWCFBU=`+2Mif9Af z%14HofEHHjrWa5VYoK4rGLs1^e5Ij!;T11{8}yNIX6{qXQYXFWX$!Xp&FP@hR4Srp zUICr90%Wap2~}t*kDhTw-n1ovWu*h*U8#(obw$Cn^}YLq=~$|e(g%||uGvBs_Z}pr zE2|cl@=uz$z7w*_y|0)j&{GI?nTCA2?UQb0!%_luM zSW*90<$fBU>JtCfBtEUMPyH#`Bi+vQ6rL z&pEdUeE>@bV~tYLN%QZ}bE}*C;psA}1*N=`#^3YKEkQ#j9ZV8RWhbq_7o;m{J!VTw z8{ybWfA(0snVzlu?bPu1t@CGC;>GV&N4cEeZf;jU6A|xtr!dN~o9Z_bvi13yjCdE| z;;~bw;*Th86+Po``(*Kiha)RheZ+CA;hA{bXMo9LH%{doG2E(rCfwF;q41GoF4cV` zV5=RBK|7b_yx2uk=|(iS%AN^|%X{&(zA+!J*_wSu*H!~g{k%bMB!{6}qtB?@s=z^> z=ju(^Fl=k}8B<&Bvi31A@f+-6$W{+PTdt8ef_aL)C~cIy;V! z@Eh3G8@Mcfx#@#pEr@iU0Z8En67K@w6%&J8K!c4$)HeEW64N0i`SoIcg^ru3uS?% z>V7G4Flt~wRWoAAOSSy+9v}}n+A^fntXK+CtvL!Q4DdK&G9IewmS*c&aJ&Z}c8<~v z0X5UocY0P8g$4$XIWjUHs~MK&>RDF2pEdyeybK97%hG&3Yv9B-xW|!{!K$WTnv+^6 zWNgOHonfTrUYay%I_vXf`14m&s|2pHy+X&5`P3uc%C3tO^)aZWkH zn2H@gLuuH~F}}gTw2aHxh@CUTaM;Z;sliCq0Eoph2#1v&(;7?{iaZQkIF>RPhP52C z8q61p0rQFDHUoWFe*4Wc6Y(N?!(@)Z403=sOb0xI;&+DNY0tnPR@zPl3hE+omFAes zpc~fQ&U|Jb&ms4>D!1Ny3Nu>@qi+-+ka&6+N(PUVj3|^0|FO#ba69>#aa;MaF(W&1 zhRU%0cKi>6kTNM_D|X%t<6-yhBvAb?|73D!ZY>-fbR%+>&R|!t%0Nr|vgbK6@te02ePsacvVtu=!WhIY(Ru$)T#{T1g=5}Sv zD%Q$_>5F}=fZ}%5m1;08uUwiw+9wJqZ&zQb0m7Ba+v#6m4qh1gRJxi`H>GlLdUGH5 zq9jyJx+Y(Dta5ky42;E#!0VyfO1HLhZu(%K@S-eK9ab}7Q24hhcZJ^L8iB`E&mJ3u zP*y}gu1tMgl~DP=sdB#!Re@El>Yr2*PsafOV?7wHSIX!YRPjz{?Q>o<-zbMyb?UEG zF-@lc9%Cbzv{y#xcU8$w7wq$1wBD%vs`{;;=Azo{VD^kVCR0znv~+d@H2BQ8p_x`A zg^tq#t~t$IW}h<+N6H-Mp1FuOTbOxqr(_zBlyA@BxnMRwF|)0CWn{ovMmeYE!qTi~ z=34U_^q0yr<{rCHHmjLA)+87iR+Smf0jXfKnVDxzvXL>c1?RX<% zLRUmM6YJXBObQU0=^|!y#Yr;*uA9xci;4hEVwzW^IaB63)l9pn;h8C7o>%;J2KXAA zF&CeBzHKovFXEobbRB7?TvYSSXfZP{u9+cg4p%c{F%q*I6m@R#HzT9(eBb%hx|(+)Yk%Z? z`vxz(v{TKxrgma(KmJA{9M&lhq}7w62j=HBHzMI3oeFCeCzC-3VdtN~&ci3iij&cW>~2mHt+Xtm&Fq+dnzK0)Wk85S>&2m~-APKea6p(xa_N5@Sw!JNwkRL{xx=Hc3O-i8+zf+d;U2b|HygS&KRA z?b47vh-Yc9lhBmqi{I$Zv)fS!C(!mMk%2>Jy6z&oeY!C4MkL`WD;1~eE_|>9TwL0j zqP6#qDl1A#~^jY5*`fRFu4{z)3g*CGQn_DQ~= z@es{Fk?o)%Qbwbn!w>c>qSxI{8()RPsP@(l8^{(UK00!k$qnM%DnBN5Lg9Dk{+jt4tP ziR9C0Cpi!JZN{8V20MNhS*7t#3K|I8gq%+Nba*b(Nn@SlJrJ}RcRKac@lND7O=MD} zGMQjS4no7Lj88we0x|9ME@wc)9S}_OXc4cSSOpt%`d^DS<}M%(orna>0gBXfhyN`1 z8gb`@+E{2h#N`2krrdtSh7)dM2_TbtX7Z2ZZX^l)QmYI%J zd(QG79(GpG>(_r7xl9=bd~L>pk1cD8j}xbO&2=cyw~cLe;}+Ta$h9|er_+!4)AMQx)N z-XPD)%|m?Mq4KM0`?~CP%omi~fmi`aRc+hYvNt0iac&%<7hKFggdn86^7*uL%Mnu` zxT+2rmGZXYvKTJYuo*PAg1-|je4wNkkCQ3DS zM!r=q4JRKvX0!~OIMzHf3aN@VoTzj#Y^gLctZ@TYyI8}iO2?U&eUpHiP@{0L?Kke` zAl#B`qFLi)6#ZAfx4Fs8w5CP`z%-yUtNS+Kv||db;Q?>nyqT4K+l!`9Q&^3Rk#$wU z%-TI0!X_+JNX-Lq=E@dc277`{%BICN{D8diPIxufMze|4G_8gMyry%7S8{E?HaVF# z)`-tqxaSM6fjz<|D$~Ro7C`36XSNgG*w)Nn&GRzxfau*F-AUf*#k*B-e@n*Hi=7 z(lf5PA6#pA)#C}(lCzcv`2lNSsj-RCG^K_OU_x>(mVuSN37F?=M8TN?da(*D@l7(O z1vR|0#s_&9D?n<}6k*y`BRgw-P>|6F%AbvCOB{#kARlaIa4xT(TKs-^9*8Ab4E-|d z;atCY^w0dS{2iYFYSuNYL4C>bupv;qVO8tjj1tZiR~~A+-#b{2V~p}8poEX z4-+q0ZX3e;JKd}sYnMb1^FT1!!qE64Y2lORe2L~l)7SaxuM6Wlo(}jeF6u2FoGotd zEnajjuI4SCk}d9GE#BCHE-HX|`!Rg1(_6NVX))z+@RA%*mk<$NU3J!rwTE*6fm`!y zG{QTwPIj^2a11PHR{i?=+Y3~l7P}7DE}3p?e~oEvJPJq^{{p4ZQe(?VTa5Rc6my08 zYlX5w(k8xaIRrL{ooX4e<)y8B`L^W`h6qq8Ei1Nyv^9=(3V%HD80bT=JCm)y%<(PV zUroFeDxhUr{!V|jV%@+WQ0t+OwG7L1^;assfgK+4W~hXgWqH2-n(Mld|2^>}C@Z*S zVi5~!7ycX`Ux-1pt{AS^L- zs5}U!UkOgr?hphii!noW!J+fD;4JO#>mXJ!a;WO4gL8u5OwNu*kdv4o)D%3J$%1n^ zyNDnvF?^`fsGW0s@`YpwacmKV@bPq}N3`52LkxC$iN`R0`5W%27*I*$1V1U$M5E`5R!`)=R zxwhTqAVx7_sLH7QZv5GF$c|Kyl^8G7c+`D2>1;M+_j8bp7!y=`)Ok1YZ036Bc~FFy zEYy0`dpG55?t1r;Z(9489u2g)E;o5eh{E!EzV10a6YMZu4i>G-`}*~G z$H%X|ZF$*?QM5L1?CS}Lg4<)3;a;SzAIuTl$C*Cr?WN0;;5<-mKFWOplHvA@ue zhJ$3k!4C4}_~S=G4U+xPeJ#K84#DLdKoxG09E2W>`t5e$FUNp=z50$m%Y7cdtPalQ zjN`{a%^d@l2dwP}%NNI3LB$~aA>9Jk&M{yO;WmlmuFbFg~G8~gCR<5Dv| zuz7KD6Y>j&3dsI%MCa)?2rptodSRphc9brkVHg9WUHdPBf9YRmJo zCD8^hdJ15RRtraHD)F6|hRf2S}d4*eV_)k7}*B~7|tU;68mbg!WFNTc+i zpY+%ntQ#LT)Umm8aU605!vKA+>@;-7}Y*;Mhf2K+#x_Z zygIh;eAaj?e)ledN4B+KaO`0B?CcivE*flr)>-%Q?o*#7-m=`KMsRdBSr70YWSx!N zQr;y1I%I=&f9<~US=FuZU2X(-SBv#v?ZMpH!7brkYy@*xJ&2O`MbF6ZK)<)EbZyxC z2;ib`j_xi&u3WtK<>WBvwBu&w?l^+Dt9)(b+-clR@7*_$ zCY8tzGaaRz4&H3uor2W4NcKy?q4sI{&D7m@fQc@X9Vs{(JKeoGySoM<^m~A)Jmfvi zx*56K2Gr=%u3_t=+S9q4_}>zdu&$o9J?|f)x8`>>zeOTDK-T>I{5gy~?YddJI|0n<@;@Vgj{cnfx%qSV zNPhCZ=^Lr1q$LD;m=%yu_ch;$Jf$un7Qmo|Xvpu}S0`a|AZ)-~fY8g2-Zy?DIYhoi z_yhAAf+pWnsG}psPDVkPfY}crlmAj^pd-Ofo=!N7xedXS?=RHT5&uADKnON$A@}6J z78>bDejo=%63hz-mV9ra?zor>nGj(vChlMT-f;mJ$|j;k3{Oa){B5DaIR74nKT$h| zCB#eqs!(NIaF6nw2n-P*5%Pa*oa*F*yt_7LBmpEghU z__HZAh`_!f#I@(#Mww4An-W2^gW(4W>AAC!uj4bJ;3CSzP=`47{IF4~6ELByCYr@? zhxFN4*2&D1fL;t{9)!DR*2cU}dY<%?%bnNK7Z1U#5o5YC>Nbu%C7Po&EPUYM;A6O_MKm`0&870TiC$>D9u z;ZDoppLgRRy73OXahJRC@9yKk@8ca~1VO@jeyz(R`GP5=i1IPCAqieW9$O_&^DRRIhzx~0I*51*YG{s~9zxur%w7?n>=Lv7I?WhZ%e*l*C@Fe3b;U8^V>%!)l4{0y)!s5c=owi+dkz)7h zX^8N!;}qcU0q8qe>>)jEGM-ADJ-q(gC!gnH58lye;jzW(!z%#yJ5-GM9qlNdbDST% z?b~Och)?$|Xn63b7fPfM?B*=cX+d{-6tLkCa_=@n+N~;Ez`&S6ZbMB z$f9FA;49zqeY`*ME;BLW5XZ*Bd%wL!x&(7cF@k71wj4h7EeGil%p=8Qg~J=01t0mA zfpiPz{>%uH>eyEJk}Vg;-z!YvZ-{l-U)r(9Jp1s{?L$nc%S$Jhn83Z4UVAYSG%syw zK)l`Y4Tg*WogEq(Jf=8pc=@+RWC*C?(1N9&IB$6Cw+>|Z&j)ujpiC2I4X^#yiVOqI z7h3R@6Bh~Z`qss#nl1#`w<&sx9K{B@`|LbwF%7l-Qp`XE2e=SCr%3|88Uophf}OM%h$((yarq1#WK2UAFQWkK^x{ZmJ+1+0pQD-2ua-|O?nL`RmJ>Z z7-b@rh*@D&e>#qgpccu~o6+t{%MHHTA1+n=CEj9)|ZuR>1#T!pWk>>}<)e+3=yB95bu3XeRO z9xU0KLys7iNS8WVid*bkt~>?-zT?W1&4UT(g_#y*8lX+k251Yk9@;FtIJz*pB-0|i zAX6Xic8i$x=&-q6zKp5qzbrlCT$*b!S`uyX_FP+7^q}@!TZ*V_UW#b?<EZ;(gy3H=lKCwwHzG1f8a4Qjqzqz#G>?>Z&{1{Nv=)!PP#j{=E$ z9>vQ?KtuEsl^G@SJ_;Yo3po-J0-6^j_bG7DHRQxdP!-Xf?&H0}vO~cq!S6#ol|y@j z^9c1z6y;M?WwZ*pdvAzdqbZ})cGK8!@evJS44{)o#miCg;bs$Ppfgx!Gm=1u$OA1OQv}^S zs-|0HUAz!2m@yc2p6C$83L_A$BTCIi6iJ2@(82tSc8F?)S@~iv3f6rfM~K9#BMv72 zfO(1Tjfx!w>0au7u+FE0{TZDebrmxiZ7}L8YEw=cDdU6o6U7BZ215o-3#~kAs+)G5 zYaHht`Y1XRx@I?9cX_w7oS+ZtPx_x|E~uRtooJm{W-q*>ykDF|iL5_FN+Z$7iSBUj zFf7m{q6%JEM~y@gqM(pOq0q>oP;{fv*P#BjX(Gmhd}H(nPlqysHh zAIeWy=O|M5Q6An$6(~djX6zG`6O0oy>F$o6uo((b^k_tw z;d0V@_(bS&kcf4haV7#3!vB&GD)V6wVD`$9(-0{~y)C4DjaJ-4GmiE@7kgbW^}FBx zmyWQwd%^}w3=0^s(FJ=>*D-t^W@Bohu|f2^J$xRE5xyhZi4yG2Sr5125yJ=Q3e?@` zv+moTYa7N-D9=$WaCRVx-TmuibtunCEbwG7z+y6l7{b~81WAh2Me^6-Jg2w7l|iL~ zXh&Cp-yWHd@Fy$_{LJWs?u+#)8`@8(%Q!OVnUK70X8^#U^5OhM_?)O3r2yL+r4=IC zP2B@s=cyxGCIr7~0;3nTQDNQ2J#I*0AKsr5Cg`20$LMPq?%q}Qo7UDIgmoZSW@^R(YxJe>w`ArKXHF@{G^>H zutJf=?m{u|=IyENuI({G(jm=}l68ciaUzI+qqIO|qh()YbrT_-k<>^57j#q-j0YrG zq$HU9B-lrV=#S*cO62Z2$Wi%6L)R(m@b4(^2oJHu$1$xiYhOs;C&nwpQ7a^PT!^<{ zC|M}^zT-aep4T4Z2c|9Di#RN~t0z|DaxNr7H2;mgvy5%yYx{JYv`v#VObs`2pkZce zn3=g@X6A;OnVFfpuT|-u&Q~Cpe(*z}Ac`D`VNhO<>Gw}{KWgRh z(2+=gghIN-zo_S;o034%jQod_-%Xhl-becO3vA~|nQ}9~Py1}dAD=TciT)io4Nls> zNRVUliz%5SVFLV^pRu4rPU|H1fww7d0u0SBf?t>d;7MXrhK3K6zX$@71d#Yga&{+s zCgDnu-9NaayMLkdBM4Rzkp0m&89zyRKvD8R1EJD)UZ8N2)0F3iS?Lpm@hdR#V|SA5 zK;4w7;o~x#m4B8$WzK#sR?g`p;(@R!c>{b|fU_VSKb@fRB-JFrfpQ6sJHj$N5OMB@ z&5x%Xwp5=8f=-iMlPCw;2j3mPxFc~Q&Iz6ilII}hd^!+306^k* zaGVI4zT*OslN<-!Hw?2Myr8_`ygsoAV&zQa(&bK4f<3#z= z*iz%c4D`U-5@&oM?@?j@NB~>hZDz~K4M%`r^4s7~?FBnK8Ud2*FY<16h>f0+`{VfE z(&o>hEh0B`7VHMhes}$!r3*YrorBa#n1!_81^)-;PoOPt$7e`4voB<0v+zO?Qgm`W z(|1781`zrZ1`_&*{~3T(Luj@P&mZHi zdSkACvGIjeOMmwNz&*GK+!z ze~I@&x&?C`3G|Wh7gD!PPw<}}Tl{B4&kx>Mkh;l#!#}#`_TuRR_5r%({VVe8X9y$3 zPqxS8PrWU`6Ok9m=L=g`_V4WO?5?qkj}HzH@GT!-QD5O+ajXMDzMw#m|H_~6i~9>C zTdrroGnyyt*)N|UA78p2)~~<#zxwHY^_BnXZ?}lZ^%IIr53We>ld&H8Dy*(=`ybuS zjX%~Y{@M`lJI*TfbL7asJ=qP#w2i|BKpYi zsNuatmts(HAtXdYAsFKPBE+R)IB`)C0wMtH!LNqYjEF-*{Q$I>P%%tK*whFq{<_%G zL1shFIRDWf#>DqTtq|J~D@2wWJ}P)7x(9F@gxYy;NE8=MEr1D-jDgzWH>9{iuKS`M z#T`-c11?rHMl^OHhIq%$ko4+g0!xkTY?6jD#WE73vkELSTpA3BQhTS?od#aPU|R z;p$Tzk{ep7@EyR02qwmVaAlBahh8DL12UUj7mgwxh`Ep17UQ|%wTA+~GyB0S#48{} zTpTkqh`mES9RkUT0SE!ogXDw7gC=53_V2-XU??;GPN7bLP7#e*n;4te^BC40;wzpj z=;^5Ekmmp`0nV80SlyVB5QO*0$iB#5`H|7Pknw5(hyg#u0t8G0_|9`2qCJ;i_U za~2me&Io(S@f?LC3I^wUAAFuAMEHU5PyAZsUtAkGG@K}roY)fVNP+yRud{yrd3L7U zX}`$w#7!B^g%u}b{|RE}PfnSB;{1dk9wo>$b$Rf?kvJ_-Mu0qDanjO}5;9Ol?d32{ zrXF~i(sIIQMnV>G^R6eKrog5IZSTC^X@~6Phfnq$pfuB4WJcF&PU3pniRM} zxsktNX!z`frya`cioyY2m22(N!qe)^=z)Yt*0 zBUKxM7h>g)Y*F1G&G}rDSW}q?v<;|hk(~jZ5h}UWIUbX$Q|31;j&zTl8vdQWXM!6- z7E><=ng{Q1zCE(Kf98pp&pn6C(_NEG z31`jQpS(U8FhzTWeWZBAUXIZD!6yp(p*cx6RXtffrE-INqj|&CfB+2fj(+{sl+TyP zmzz9^cw=&db;D>b_#Rz|2wemPU6=t~^t1$;R1URJ4#!9i(*(bRD@$T z5E5|6<@p{BR}vyo5Usc*9vU;`qh41E3VfG9E&XUfpaF^+iE)2kjVbk~`k%FGc$m?oKSR|} zlOoh>(Je`m!V2{cAroNcB;Uxce*NtlDNAnF_vs-0#16MFt#;Uo6R- z36sLdx{VDSYFZb$PrNO8lY(h}6a2>12SX;!3{4-XeiQU2=_Bcl)a)+yEW%YFdwlRf z_xM89O)#LMFZ;7^F@BNqgreeuW@Kg8ynf*#rzOuFvr3TFZ&v+@pSz1>C+e0=O&?dn zta`F~C~Nj>v1(2sb+51`c@unjud@N29-V>mBGn?n34}G`fv^$|jGFst^Yf{OtyaU5 z?+(-X9aji25@KaEa9ZSotbk}ka?W2okhr4e49*S6YmjO_od}))PDmir`N+(!as9|e zjuY-XhWP+5Kd&&aAQl6xnu%Jv8q5>P6RH!73XG>uPnb`L7Cp538wPwoPZy&XWfw^+ zpr5dxKDI|J(Z7Rc`0UT{L6G4~4+GcU@6Qpv-y{0JM)YNw;eue!gFUuhF5f=@Td;VM2?LP&ftN%Na;q>4 z+no>ep6qAA(Z63V->v?F+2VJlx9%0ZkmLTswz=v0fgm*f@;f(9bQg^)H9_#eHmoag zRsi|73in6C(BdsKS5C-vC(`7P!A0!@J2x6(wCr#4E%krs8Wa7+TQe7ju86$Q*`XW3 z`&;!FOAmOSw7f_l!tCh%P529#i$GW2&d<6LbX|~*%fbi22S!hhSNcvUx?aLA!al;D z@QVS6y$a2h;gzHl&IgXJOLg1gqS2KC(%cix7n!_?dlC7-x21kB**>*+_T&B zM^CO!Xdeh8;k=vba_vF#VZ;^V6|NJ;2cx=Qx95JVdYk0|_ks6Wx&w0~8Wc$Q8)?gC zJNTl<75^2{`-2Y_Ul?J}Mo;wi?ZXoU;sM?9{tfx`Xdvgpz_HcNXe8zp&d?tT3Sq*|_kK(e0BEOV*hV#Za?{d@XJFnR=1Fi7>=AGnS zZC+JgSzety6P>?1 zC$nsHEp_#E&3zU-yI)(p3W1BA!>na|K`9dNjF;WfxB`$Zapk_Nrxyu`fJ0LQ(1y;om5UjkkPpTwUi zAm^R>liSn49obXy9p+Q=o#Y+j)5P6~b2@$C`zmv(9C?da?ZkwA_B0r(Ji9 z=fcU2=a0W0MHH1Ag@WiK`m5*9XS)CnsVFhg2*6P6Ne!n0zFCxf)RzHv(ISHm13!Z} zgF3(p!y3bkUA94!L6kw2L6$)$V50VS?O^R@;$u-()pa62x)=Q4b|4%+q? z;^2EOWSFxWF1#q20h=i60hZuD$oO%BPOJQ@;;Vu;fJZdw&vf1CUj-hJdtmvxvp;`> zf<;4-=|#R2V$>s52#FPLFmQQ$GzmP&2){0FoB3EL)UsGdq;#YF5zl} zT@y>lbO3j#)o3iexV^kv(s@aXvK_(@!yT#(T5w2@5dI~iU4Uycy96F!9T0_f+xyfD zy9FVWJ;XeOu#0C9%b=Nr)C&RZqS$3UrI=B&k+V^=QO0^dZaHkh=LJ5*J%l}^nUZ!A zb&_@hmP5jO?|YGixGn*gXm+6o-@M7ZiD=PSp}zfqBK`?QBnJhs?UrHx?Dq{eEC)8| zCoK7txE4`ch;Hach_xR;t5r_|3O-vU8%R*epXI z`*&`1hr)<|t?}YE_MbTtZisFR=r|(qWFBJyVm^$&m}7hmk+G$4hL9N(z5t{R*|GUW z;*1%?BFGHH;ISq9V=oP%QpLz(hYAv(z(TxiywT1l zdjR;0x{Nh(HYwXb2$Cy~IzP`WPv2FUvv0a2E^+OH683ChR4}8uaHqf-kuGWZ&;o=_ za%_kI{?r=n8DBwqA8!*2Gw8pwvO{!5uP)jtNI}N>?A^{PD$TWv+25pAU2U)L( z!8~B-C7D;TS0No@uEFdf-NBK9$PZ#M0b(gaVhO!s84dA>ao@z_h|S`N)ThOr<5UM} zuT-zt>e6?_u-p^AEf9#`*}DUF6WEVHw>YViXxN&aE0C9(J*9$X2 zDN>aP9HAV^A2F1LxMygH^YCLR%0dkF#U-fbER8`Ll8Fk(CAYIPO4xrb^*n-!is>aL zrDL<0kZ^XSdsJCYRB={45kIVa>rvE+3ULkW9qb&R}@iFqKh<#XC zyRb^02VE96K}#*Gv>CyU;ppEcU{I4_qep=_|hdVM)%3V?Lq@Wq0 zhV0XH&%tH`A&=i(F|;W(z8K6@S3@jfuHYg4vQY30iX(|tQT~A`XHe5*ts@@3Ecs-p zBWk9U<{`Q}Nv1^c)Zxu{cjip~=-h$n?E|TQXd)(4@draU=$z>gV^4nZ3CW@QtS#~vKQb}7dqei9?#=`ZgxrwM&(5bh*gwQN zIECCz6Lu#DhF2B1%+O8I%_!ec-4Hw~x21VUu1kVs7A9>bpAOg#HQf1LFui{9ih-mF z^N?noZnz-0679dh67OhUnT4728S(?9gHMlwkAO!KuP|Qe?A(dz$QzDF?iYqNAs+!B z2_F%*8LWeeL%IXZN6AO3M~k+^*Pz#=*C^|Jy6KG>zRA;@=o{G^(l-Cs)YrgHsTI>- zpUgsn%mPHrBKpm^PIF+>3MkTwu+s`N9m%}{&+>csrcr5T z;3}s%_Yn7F_GtV4Thm*E4+mTsUsB(X0wb`PVz7I^7l|HnN)WL(5JlX579$mE|ov^ucESf8>qif2sA6x|B( zI`1&Rr@*8HO7TM6v7^*_a49gUg`OrEwR*C$KZ~!nu%o;ca(Qex+rOBqN5M*CnBQ_Q*cU;6#g}$ zLx5W{$1tA3x>hNHFE|Dq@*mcEDS$&1$Asr7Geb6gHe)u!*yzVShdubB zKyVy544h_W)T!5L)M>Ds5g2tEAiZS1W_%f$NW=Z{bNKR@ZoK}aY4 zy8(n#h>p zKt0-Gs3j&uwmT}LSHDyWNhWiq_xy#5+}F0AP&>171!sql^E%UQoOHZ!d>})XQqDc;;}4qhO|)DQ9L8 zdl`Ezbux9)>~!?31LUB$pEvF|Zj>4ATy;o&yt>%hUSD)wIS!o(!?kh7J?qv|Uv-^1 z4#*VcigxN;aOq?N1EJTg}X@ORet zAfkv?7YKWr;f!5%BJ&ULADou>zc%`X!OZP(2SNwwRq|C6EhZP=CqIkL&YjLJjaHi$ zo7VG|@YVZOBrUFcfJ^98>Qi9*=o0%cXpRtnjsys_q}~BB>W^5|R+TNtZcPh`+zzhT zo^t`es$I*a{jrr>`$ZdC>%Of+3tHP>%U^rFiinmld42a7XYa}((iYqf1!1k`P%Roc z2DS)j>(RzjtzvA3Ig_?mRLNIORWVehR&i84X~SzFwP3a(s-*;_eV zIa#@!+MYTBPnNgc*Oa%*obYY&9f8MXE-Wp)_LqBjSwwjZRtx%qsv2TdS$ z>7i$I-gJoBV7vI5nGa$1$i$Y(wZlW}Gxw{vH*fX;-5O4wC^C0NL0{ zzCyYjdDwmKd4}tZ@d@xr@QI+?BHUNKlD+7Aj(?_nrRWUM9jo44xGH?+^yYbE*6p|X z!*(@svHMK+s_xAM3WP+SwzIdX9`?al52ui%hp;y}D7<>d<(lr2?ppbo>Y3nGxiift za$^KEzHni4@$|q3*6`+g!}R&ZHwYRd+(No`dggjYdDVXX?i1k?%{RVqeSS^;fb{U` zRqz!6@$rW7jb(36Ttz-}ymG%WZ1nnc`waW^vt467On~VgFkdBKsa`EQ6CtGWq_-%W zZMv(CYrc!q=jdnIXVOl82tOkbG`iyY3&t%Z*eyWREn>ip>-^7uz&bKL$$bLPw;+n& z?RK{)mrDrP!xL%Z8j9`;mF^m@`igTCaZ_fKwo9-@vqkiP+!gL6@O?MXFZmxdLPsD` zw_KO#Bz)&zW&I!W2;}F$cU|8;!0`*z{6rTBkRy_!hustiK&D6u{7$41ffIy|629;tW)a*>z@b1C zyRFR-3}~#08BujKxd7Z8Z|WvTmVd9VYgs6qh9MpO^v{J zbOICt3<9*UfPuioZZv_~i-H;nSBdW^D)1HojRK`LGHP_(GzqY{0g>HI00FgXx(-r2WJEX{_~3vZfy|32TOn6fc1k?7b+jn>+wP}s*iGnM{s*}SF?Na!R2g`a zfO>&^TN!pbPikh^?9bV7*|1~XA2%H~;d6x_6doiVG)yr%Q93a?(Ut?kyYIV^1llk1 zFXC;*50Jevy-{f4S>Gf7c#rz?J&N3WG}|s(_74L8Mn4o!QfQ&H1?UED1X%l`X>}`a zrcDAa{Jw?wkqr6~m-t1OV0rcFZP_x&eL?jX&i_gr6sDIa{sjxrD>g+f5;~6j6qonZKh9t%alP74-kbh5SqH>YUjr;KZ;5o8sA5u-^8w*K_-Lc z(2Kn#b;--1nn5~_xgX-t=eG5-<;ftc^^Nx%E&6qz@Rq(^sMyyGIq&o6la*asJfWty{f%DTjlzV4{0r`p4t^C8_4&e zHeroh-j_6&zg*=!HMvO$Fpqm(dI4MQTk@AF4_U5S6<8ZsvLS>a2wTBhqFdsZ39cI4 zfGiB$K8G#0OM_bRXQ5}MXDLfex{&N}-4L3sQ>!Un6sXQizJciRW{&eQFc3iMyvt#tE>{Y^}By@oXDIKH}TMUQVO;WHR zH!iv$*|Sh@+IC15hX^eBK8_zQ!LQ)w(Dy*GT!j?FxbDKw6bg)z@(K;;0QCYj3YoBE z)B+(2afze~g)n9XiNxswN3#TGjp3MnF@r)og`$6m33UbH(}reY2{h7)MdCAscxFM& zifyvPiT{C4a0D^y4##7PA&J2kdYZ*HsA&*mh#^Tx76wBgg!YGeW`RoId5C!^dB`xt zqa~>d$qV!k#my3L5|oH5ljg-N3Kh&U8+6eom@!Pu}IOJvG;*H8Ph@%q} zcbPe~2}q-pm>`f@HMfimihmsT)NXOy>RH4lBZ|9bSB@N_Sws^F=kX4^>Q|O-QQWFo zRTe5A>P<-06b8m&q?dL`B@VVpJuS0vC z2=x6t!DT4%${I`xHfojd7G4K{C{;(Qhdg!{c5%Q6ZrRU8T2$xB8*xa3FuTpWf>(O2 zGTx%R#2_ld#OR^(p@Cg@uopPs*?0Au&vze^>;&1N;$5aI^;UUa^6X^3r1Txx9ogN9 z9b>THbL(^9DzOiR52+7L^YF&t#_-0F)s-;V0}Ruu{VM+|-bvyz$TtESOg2jYGMMva zs3u~t1VVGLOvYy6A9+Lly zICx6XGD>39OwEVPuPE-Rt`oV9e6N1h$qlJuQiLaxO88#o)G4`%{be2ysHl7o90m;M z4;x6-UKP|yxJgjRt58`aG)k2I71DE8CQ#reL=H1awAP8csX#E1@=cU03Hu3fyKcK5 zjoRx3-5|W)69vk|wPDHO5sAdBusTsUeW{T|Z*_7E7 zW00J&!!CTGFjxUB0oE{6?v(FT?o?b(2p_&5Mv`d1%D;-Y7eAEqR`HgnrDFXk_v53& z&yVtQ9~Eu;s@Ty5h%h8_F+}t*ilsN45W zxoOq33RvZmvrxDEPNk1AZBp7*ycJb)@N=TGqH_bY#J6@%g^vLm6}+WY3fT&hvvUwo zaHU3BmEuCVY`M{24#H!EMwPWfwlZ6}=4|B=>n%s4fR~OJ|60|VoGyff+&(Me)chFt zSf^3gnRh0yt6V;}Fbh07HjjJ^YLoR+tW>@)w<(30^*>sHfOBdziaYZO@Sn z*==*+W2d{o%MU9#J|#W{*|Or<8AyL}#d1lO;zT)Nx%3hFQSp(9c|FAar1c_TB@a>p zDS%Wo=WJ$e=FVqXZ}T33kN(S5uO+VqItpB~*>k$HBW2PbmE;1I)P$9k`joU9%Mlah z#1j?F66MwBN}bD8XK8O$Z`m3(ca@Uem4QWfB^{I{d6cCW=+(Xz!Q;>8f;iUm&DcEC z&LmEeHexgc8pvgO;_+1D$cn)QV6`|FocwST zjRBS-kLW5K%}fPrE4-DsE^r(J>>)-dX?(@DI~iv2jg+NiGfB@74R+fX104f*l{VhS zZ%QWfQnDT6s~9WBR<`Mic5%65N120sQZJX1ReGbokgii%*ROuv!Mf0Dj-iGSuNGwCkF?d2A_|f z_?4KOw1Z=f&7*U>MnJMJJKJYpiy&$Er|dJ;C#SBr)r ziSziIQjR1aTA4#1dxW(;);I6LO|R$jt(WtM=X7)GQ{9x*SF1mVZ&Kf_Xcs2uLsnMz ze5f*PoCJ)OLi=zOF$06K(jP9wGRH}fW=8n2cSox4(2gd;b}<2<~mD@l~_@;ooO1C=S-h|-2_ zkh6p0Jt8f_)t6)ecHL@UPVJ2|$sXia!tf%W>V!k9&uj?O1sz1o7|#1n4&ykxn~i#@ zue<$MwwVOZD-G={MVm=_8#>Kb7k+XEAs(W5N!VJL$^_mHo{`I4HE)#^_tR&*5jAv0K7TUaEj+>`ZWi z%giJm$Xzmb2)W8^e_mR3Q>J~CFnYeBJ(aJ2j`hGIAWc(%6eJ-I2XA*wo zIOTYcXobC5W!F>sbNjcBxo26>%`{WRbOHP{jG4h04<_{3-qp#KCGcqm#cdK~5W`SF zUqw&r@zYr%t8rBgV_pC5%l(&$NUJF7(1teAIGt=PZM3q!>0=A1HyTr(9&_8`dn~KD z6*8kC4Zfqwm(FQ(9x-UdGpj<-*`-hKPv+j^c>7f|k2WXPpad}62d9slo6^IRfz>{h#dy=(jdGk}{+a#)L*(4@h}^fn>Etgo{@H5KYHj&cUsSqRj%zo}%=R#GQ>E0LS15-Z zhP#&bsFG$cvLE4GZBQF@qwnwW8bupb`osgukkhVkrbD8OtPC4RnE3{1^Rw@P%l|Tk zU8~Kna$i+Q^}Xw}=x&g@AB)d88(YN`KI{4YMH-N8LC2$(Kb}gu?~|;Bp1q!ZVJX&F zBkNpR-r7sigLEnL?N^(*m6>I7vsQD8q;{6ma4R^LuT)UitGq>%TPa~b*sB<{MrvtS z>B?w3dZ*DgFcQ$xuqM%b9MUvS=h{a$2xgM3rRd2LgcF5t!A>nte$I5^=Fx{C+(+xB zyTT4_C-tcLd8dVx$J~!a9=VU|r1OdW4w5N&1E0KxwIpO2?V2b&TC(!+Y4>xF3di+Tfp-J=^d%T(Gmaw>n zwBP0nN7OZoh$G3-=z1&|MF)i?wjX({np1z^_I1M`19$GL4w^dJ5`jEsqS^3gE+cct zYA}qn4vO2R@TOrezhY`TR+H%OGuF}&%O=|*I2X0drK9<83qU^Gdox8@SH%Dp0mAw8 zV@yG-qol9eL7Mh6<&w(I%1zGI*_wRK6Q{<~7H=v^9mnmUFZHScs$$ui;oyl3M&%bX z^tCXjjP~ZoJE@y=BLWaL1x>w^O0|c$zBqB#IC!~#rC-(B^2uxVYrl%xDh>1S8taUP z_rgGojm%ME8V!M>JvERqYdtX*Lx;)!>_fGk(_t3cSUlGrD-ET`jSY_tYw|p@CMVEY zyxMCiuIagHF2iOjDN4HU2}l2}!c1|Bk5W|BRMS(kjCYQ1iFt@VpQP4A|M2Eno=f3{ zY$u{=H_7I()_9CoO_Mhk*TI4MJQjxBwe^XdAk&y4LZSv!L^)z~bjWsp9Wx6}{U8e- zE`PPxE$~1eC{VFowX$ls*Fc6P;ud(b^z^{ffqUFCidP+TlG6RXQuQX#3TH0aLA7k& zVQEU8iE@UKY~$=wslXlRffV{U)iC0U>$aqp*A^{G;Vk$~MW#eK;^{rwcyt5O1O4`c3v zuFbsGQ}gzxLE$!qG>#2Cfkj%WQfBm5r&dLmk*c@glRLsoVI$(lPkQtFg3Lj$Bs%vC(XeBnPjK(X&)N^#QPiMTe>pcRKQ$ ziFEVM+L1!`60T|wp0i^DbG`Fb6bWsWGiUNDuhU2ii1w0@LfT5gZXZX##+lTK)F>_D zj0I?7>DHzz11z-GFDm`UNYwtV?pvMR$+;ITf4$kxfGPR1l;T?Nk$f8ou=RV#LMFa8 zvO0k_vKg*C^3o20=Gjc8xMVSsl{3x4ypZl#~n3n44DMk1Q}W(1F^!v+iOUzn^0Lf!%+A&Rdw?wPbS4Ga4s?3uJ&{a?3D z%EFt3)bnn{NA$xD;6%*N931xco<+IY?->_GOg--R;M-d3(O(-?Z>lJKlUz!4q0$mPgJePwSA5}hR1h0soKkg&h zOeP1Iy9(c|dz4<=Kc!g$oFi%?O~tIlDlf_}EJCe9*BG{JjeJe5tqKv++N#rM@+KwbQ^(`Hg) zK*_f{%2iAyo>|uJueC<5>2~2B_!b?V7PWyd7Ejk!uP&Pe(ENd22;$(Nu-|x+{98#e zZNEBh9)G*vb4+m6kmoQC(`c%Vl$Lb71AQ;gWi46DK`KWYMJQu($C0F7_s!buBl_qY zM>LXh&Womj5ZI+j{PPVld;P{~#^%~5GW|)_Oitdh&?C_rVf@Rw9<7+==jn8yzB$zG zSz>16S3p=^eT5l-CyzTWJZ~hAyHXnVA|)zTORIGbZv|O1L&3bN-ri0Wa70ra=RmyQ zKlh0So(f^uIU5?+k6VgnPs_zUP@dG6H1;va{XS}SB2!W?LDyEsu$5utU>!dYy+wAC zK>lN{G*QbGPIszfn_uk5+@eX!@+RI!-TMiabOE5?8acAIe2Yvn6XO^#k3{R<<};%Z zZl0w7;-E(TIMBrmfi}!K+#11}er2^zRO!4PL$JY_h8ZK!;tAG;z<7N2sEJJ&?@LuU zEfO8$yr}a>j6SSB5AwE!KLuqM_{I~iG+ybQq#@UIpBo-ba7Xo0yDUw0993NTO^Zqg z)bL}s*KZHTcBlG+jzU&*GJgA$$r`9Mu=LM-7R8Q$?Kd)}0cHpRTjw(fa|@eCPhwZo zI!3kP4|pwF?y;2*&wv9ZMzt)VETL&WqJ}bgv=zJ!yv!p<^Xye5HQ$#l#~D?Gj6WuP zICA89j~}~)0{b3Y&%3DUU3jSDdBu_tV^@MJb1p?LNv*4Ed@fN0GkSn=;C>Ls03JeZ zzhf#;Fr9{LlxNe(ZY)>Fx}74SaW?JpqQg~FEzx766ltb)Vz>{*?J}}QD%Z9~RZRLD zw!(HY^5oe%mf1@#8T0mIRmk`1OSd<{rG~$k6DRGly z-bPCDXsTj$Hf##K&FI%QDm*pj%MoitmY+NCSeJ61A=x4~N+^67fm2kap1AZ5tYYDLZcuGnQzO`TgKiw2GOs9WFT4D2H0^=8@XHbo~+Qv3?S%%R%Jg**eEr#ro-8GQ&> z4u9Wd+eJ{+=7^-2&O-E?>&8?<)jZAPTno|Tq7S4A?Aj}6I_7b= zM#mi@l_W}(X9*QGST-mFpsw;P+W65X;T69iPH?x*o{ZB>r`R6X*WoJl-A`K{`a2m& zPiB2Im#vC`)uHeu z$$jc*s9S5dSZ-9y9T!MnRhTO{iRqrB(Fbhp5Nctk(hh;Fy?0AawX9yH>qQVunZO@j!D^^msA&A418EJhs53Pqzvv%aV4Zx-+qhm(B856NAeKCl(meXIy}Nl0A|; z9v?t(as(|lP2f%55PmFhmD+~E)T@KNFge}8bfdCO_4U|L)U-u)Z(~VsU2i@s%EGbG zx$tf-Vm?S31!y`W>gJl1esxhKFP$HO0#vK7P#?<$n&#)-w+D=tpn_0A>8D8yNeo_X zruMp^5}cx?3KW%Qk@*l!!Q0m4;Qcnu7AJ`pKYw`KA~vaNT{+O7iTdn2gvB?b*LIN4 zGsIJ{Ar5o*qSFR|tj6YO-httvoS>`H*Ij)f$AscWLb%5|Qg5c7x9xq~dl-MD$5-D! z#}lUh)%oI`iDZfgG)gRhX8 z^DROX^<+qvDQ*bc(&TUrD%XXv!!?l;I<4x<(KBljU8=uio$6)Ae&~lm+AC*Wh*+ zO+eYIUSkHl=V0!z0t|qS1!P=1pf&8EG5%iR86MPMp z(TSCbcBPFI#SK1>5~mWwlFO-R+hUG``B$5(Yxwb-)0XwCLcP63#V!_J>7W3;^)oN& zOWX4Hj^b6Yq~MIF4A}UfKFAPh>}xE(0$1Kr@uD2}EPciF%1_4;!A5&lga*V@*b;l(vx{SFl|xO`B{b{EOXqBQs{F9kJB?=0P_=8zKK(oopW!29 z?2b;sRsNc6aToG3pp zelTh!f^e#Xtbwt9tV)0N_=3cgD%w?PW&xUhaEQ{-c+-34_kUY@mUVqij$QV6+h6wt zj=f1eikMzbHetVowmy>=c|mr&_wP4cdDh(r?TK$&y+V8w?Qf8kvwwdQ_t)xkx(W*I zTI^cVSXKvzf;*A1x|*VpRr--zkdD$tgl>*3Vjt)KIsE2sHgZ;@ocXg8 z;40|86ri)PZkuYLF+eS8-tx+p)gW-&39Vu{H~g(nsVGsjI5I&WN1^cnBUJcsj^Z(b z7syiC&~E(ZbGi!asbvIwyS&a&AD2pE6`yeoCX!BP%`D0l(}Zg{j5E_%E@D1}Vm_3L z6DN;}Ocggnsm9=!6XHj8Q=^GLvDv4rY{(2kivN5dyuO~L806nAy)UGKPr zs!jFC>7l}{uIlK#KmCNc(IAx_imN>@JwkwRTzAW`#yNX?yQnTpH+h^y)9T^d?lrXp zQZI|Pdr6J7FkwBjtT1P%FMjoW(Y1>7rhDUk^8!=YZ0H(hRU7NvJb_(!-?ZU(BGp55M7FiXVnBMNz;4L@!5iHPPTI&71tFew6e9~Ar`x9sv{8oA0>_auc zH(c5|?qm7N(D)eLk%pz&UE29c;4@JG^8fllhmr&1?PcS7FJS@hKYihUzMKE;XTc_; zit)NQrCh-=$@bP7&Sew7jtS`QLA?{v&u{V7m(+0}JDI+R146#n`aKkZ5L^xT|MiFe z-+tHs`I|9PVj*AM4=KiHr+FSlN$H4X>9~yzJHEtIg|lkzGVSBVtm=9!Jh$JFWM^KV zl{M~ZvuupLuYdh>@^}a%0JEpI8$I;;sJTb7EGz9j>Pe7-R_SSO-!Pq~?bEhCLCMGd z^y9k*1?Su;K2bnMS;wMJR<-BM6EKEXp?S9r<}2vUvnk7?T~Vi+?)2d4u3~v%BRcC) z=GKIVtJP|C)!TXd>M4o0$#P){1`~tE=TF8$vI}j8nfe+r)zxo~%>7f&_Un#;q_yUT z!aH9FYrdznTiN+FnyIJuLcA2khM()*Z4f+h#{YLW;^hV!|`6gUYkdoQNZ|MAD558?QiV$GPnBktoGW+i;NydobP28 zr95)iYNz>|Fqm_5-0ICX>(Y(5<%B#AsiWs*?G~@MbJv(h9r^aEYx$en@Ml#XWk#(*}P`6ifiJUsWc;PyRQF2&(=5Ve--wcOJ3w4yi605AA@ zwN{RHqS53x@qc#K{vZ7C|5whY|JOU+(Irp19j*hw_$65#`qaPWV3l4dyxiW-5wtHI zShz`}J5>x;dM&6YHR|sUIvX@viOVGK-mBSKLvBDYdK3hS^e8BY!Q3sJ!4s9kGjT4pCsoR)g1f$10r{1;pH+4dD=IRyI{RZKrO!}uzGSFSebK@z&{z-GVyUPB2mT`k@2E&^^^sKMlcEZiE`Ac=1sUxDF1gKb{yoduJ$g zW-Z`@6-4GciagJ9%z_a&qQHl3<7HwI)@v@?V73C(lmUR1yG2!&d z=kU2-ahLu4RkynM>U6ovldIM1uwFTP;iKDH?1HkJcIHB)TVV43vi2IP3N}z6>aHk$ z*2a7+Bm3a)xlU6hx-!zW(`c@;Z#G_uc;GwBV>~q#TN{(EYV5NI0rHD!pBPA)U8EXU zlr6HJ8Un=aZ_px~Xbz2z&KJFMHx-sK*_$Xd&u}(1T(b4n)l5=OaXuxlJET*-rp zBp7VYe5}y19=9oY?TpiXit^;*$P>()iCCvgb5o#t9I;zo+xM240!5YSZryvzcOs>v z5hiCm*5k-}T%XR_>{vbT3@f@70f1d^gy%O;{n$L*&9ArS2fDkQ|NR<6r$x7Op64@0 zSE%STPN!7-dV(VG`GqMgYbRU$ZPn#CFzbcyUitsCKle-JT!)g6msg`n!s{bX|H{1$ zaLplmB)rsL(J2D->aLr%;QROc-)!9~;Jp3oV)Jr*-1kg+F`LcvII!yVUt`&SjoAN5 z5%ymP=f4il|6HQ}zb-2N?+scvvbl*ER>t1iKAb4W2v#TS@nV{hG_i8d{HD@xKk8T; zTB@pOXX8SGah|rdc`gl0jNX25qaPBU97~-c1<&6*%?^vIzFkdXsA|cluk%fU$gy$7 zPO482&Kq^GJ=^hm3~t|QcP>p3SIyU4ldN9)hX?rp`*!O;zR%A9i_f2jqg-`4vnsUg zbX0wGIcG7BL$Y-_9#1F*OV6l`mQus11o2;ZUWTrzOk7fZCg8%|cZk&h3~Rvf&I zv`?3u9K9xM@!9pa;7-ysA+CRGzX4cxgZCk z;Am=EYUavasVE|nJ3yr60?`~m4kXKksHA}?uGjbX{_|Yd_rK?Q{&=3}y1)1L{&>cP z%w^KOOXKwn%Q|d|$Ui!*{#0)eqh<~qh4fcCD&M|T>1*eSTiY&3@{|-&gZq8F4b)5F zxpcEvjzVGE7hw$+(UNRqmfSq^Xivul`?4Gh!E}9T{z3Yavm2rgXZa|dleWfg1no)B_mNt+^8s zSiZZmHsNM6t_gz&Yp_^s4`f(9S^NDPd|0gAe(;(ZyFN&#ojuAb+E`uTt;V?vg~Bg^ z$$PX%q?NTG7Y`?mg1RhTftu5nEZ<|TuzHG+pcXv;Fd~riYWPb}VWB3Ca~ts$3~cQ} zUnpL7Dk*NBPw4e;29Q#NT)t`&v@5i-moH(d`y_Ru2Gyxlydj)1Zzud^hfE^PuX*w63bq8Z>f#O znzfj`Q>icjyx%UV*9#r}D*R(enHb<=LjUL7Q=;L!Yba_M2fpwy=D5dUgm%#>5lwZW zz4+TOyThb+VPd!gR5iLog!230r#g@H%ls3A8-QW zJO8;AYpu zT=27&T84(9@BAH8Q;e|oC%SMiuHm3kLU=7e({?#WSks4r^8Kq1`0dzp;z1L#MRasr z(`i`_FW2ynoksa9otRZf#(17~HmsT`?CB`}iTVS95pWW4=vQMUmYqMF6GC(4I`=aZ zYP-f&V|`USsuLD0(Sx8W#*yGr@d+SiV^#Gj*E_=Z=d!%dPxtw{($RnNGFOK^xC(4d zWQ5OZNP2!b_E56QkL0zWj|#hI?RuFw(4NqwS#0{*wx+WQMWBa=wvG)0HfU;9vEw}#t?92z2kAygmBv76PnYs zNdpMKJ(9(6zSi9NalC!&A1|}{1m;} z*yyJ!K0UqxTP(b#2@eX~wLcPLXnt^;zHsa`NBcJVzH$91p?al8>~011$2Q%UjvJ{` ztM>A<6x1Da0qa_0^*szjVC=?kQtj~$&4xmL49+kGJ+av<7Q3nK$_|y z8)_aG5{tG)qi-Ob55~mcg^JynYb>3|OK#Xq%#k*Kmssl#K7<8k$zK>}=<(l}jcz>_ z{a71xvr)LeXEuI$HXg-7)0$}6lcrCU9}|EGLsBF0_i>OeRqvBH45JkY9E~m!$eZr2 zqujF^3%_=5+DK{DGn}Gf4zRmj#jM9IU?w}HaN;8QS>d#o`v6i zPMmqZa3yGdF#g?tBO6Qq{$dPZUM3)oNupKJ0Q9(DL+JT`)X!{%ojkJ~YhBT$P5{(=vGm!$e~ggR z(@7auD)@cyRK>;k)_D4z)uL(NGsGS*U4>)wf86b>s%>1qMeqC90e`AV!o<7+;!9QTcN1aHOCMm&0N4t{+O zl-=M|)e?}bL53XZypl{2BamFJ5P0_abCuE~Ka#uGy={At9BJUuCo7kdkvEVjopW|e zX|ZojUU6K?$@@CGUsY*EMceuw=T|cJ0yKsHK`QkkFO~NFAHQiw4wL_6G1}85{rLx& z#g!r%ZO#gB3>%p8fSvqyM^!gSo!uTBI9lIEtP!%Co8Hs}2q!?A7-hWhi>3jft~CF- zaDxX+-JHAWH0_oO?KDZfsB@RPaymbjK_=!1>S!&!RXs`mtxRsVXuVcwRV4pKPrOh|TB(1s;=( z9G_@~L|DYezR`lfW2yCpQM3mF2jaPQNYsS!8+-t*9n1CBiV1y$p1LGGrfqFw9vw1P zUwMjkagznq6XX$f$AMQb*(D2OFD1l+QsCE&*Dp3){avM?YdWTv(=@^3(#vz$^2#Dt zk*|y%cL*esRDV#2(j*F;2SWD-bv`zP6|P?Fx`mkdFppxx%F5a-X zG4wZ0``LTW$*HuPP;U(~N05O#YfpJq_1|nR=qv4|)Y1l&^ zlU~OR^rIpQ(|eAeH*EBaeL%(s1b!|lJQ|qZ^@PxrmyI=LM2}nk-h2MM(auq!sVK*A z=fFO)YEgN5juD6e97 zd+=O~+C`}>prL)nU%r?m#%UfOJ!)zeAzIGNsn6^U%82}>3tEc>t%-xy>_BVkptT6l z+BwjgH)st2T0?@?^6NJr)o)gnbOng^>o}>dqx%i0ecVCQa=2)eQoH;*5YsOO+yT}e zeiTkH4UX~eY1MTstx>M@^-?gdY8cTahG)Yeg3c{{@sKnX%?7X=eEvrZO1@QIX&)gs zxp0MCC1-tDPAbmr!B5o~lkV)$hd+xK6Kv(2&_By(6Dab?=0KabgPiPRMuTUw!JNM^W#8qjX|RWM$9om0%6O->?v3fy{<~cF#BuFn?fXGhvr$#w z<SeaA zk=jb#4eJ$Hr^mJM%Bl^(lC3pq%EiNINh(`pXiXY%5zDXgRT`!1ki1Y4K?HXcvoEgP zo{9M$G-sbuUJ@Wy+qXkg+f>F&Eg5)jN*7B|_{#bgg-Mo1y5=b5sVZiQ&tc6ig41Ea za(>ugzLR<=B{WFXU@zInHvzZ@T~zayEbJuvC8Mnco5AnTLs) zEBzKy`C-MYF4NybXSZ7r`(n%AEqxg4s_ zZjt;>y~cjY^d5QT`=xbo%D4CsiGD$nEkiMvb52LTfb&WNpfy^hlk7Eb9w^>nc7-5St@8eq+ z?^&bF$3L3eHSO0ral^(}&lWrOfnpjzlw0lx` zvEnX!SC!Dq0WoQnf{ zdv1z~YWFw8M@CG@?UKC)+OVpz zri?K))zEr*jph)C1_pIOHDV(vn1&rz(r{*Q0#xt5X?Dbb-02sCX&4}*Oc&YzrdQLLcA{-uR>AY=7gHgOj>J+~SC|*rBJQsXkH;A$*;S)igr?50crE;)U`)$S( zhI{Y4TQJ3Ivc5qx3egWCCAxXq1yTs_z>U=w zo(u765g;E=Dj^@Xr$F@zP|~0_5d<4WUW{P(9CzH_;;3RF%WtVo%+_?IO2#`6TkP&I zJhykTvNw+}mh9_9;R&})!crd$@y_zalCnc_Y_51h<1gxO?)XASa(gH_@+9Afqs^B} z@Ld&d9y9gWlK0CEedBiT1IBhPOx-ou*RB9l>`Se9W8zEI^>Yw-O~3Q{(UufiU*k(9 z1Iu}!L96vXWM{=^7?*Fcyp~`m!E76poA?(f|0*%^S`0x+KVqS<=tR^Npco}+D~@!K z_rwjQzF+-?u-n*}a2>H6Uy^bmYK8M!LzHZTo1oQ6efX|03Vt1%jthFf^8+4Z4S>IGc;Pmvz1XN4(B)gy(9&W(c>M# z!9F0zPM<1g=o=EM)j?X?z0QICw&Rg~r>FSP@Uj!lvD=h6x*o=ER{y!U`+2GFL_hgPaWJxhKJD)391jUq>$;8N{^*88>D!_YIHUl)9@ziDg?j5#zM_GbP5_+pkVu2Ma8 z%1c4DL-r9?_oD8s9Z#(i_{lIUf8Cv0HtAwiUL@&Ibfk`=#(5cRN7x{?)CZ*(lSazh z>||-nbE^%tvvRtC#X*E!_(0@Hxu9U+-J;7XpcmO|pD@}lgOXvHq)h&ktKSEc`&lkTiWkIv;UW;GUt z%VyRisnt!8awUS6j-9@Q)t|z`@(XspHIJEAzBT#N{#Rn!nj1B98@g=^&gk^Xj& z6g;;MR*r&ix(72zo(#>e+)hYSZARm>GSss+9#%DP@9v)S;@2od5koiaVrbn>a9MBx z;-N1a8oB#jUJ^VxQ`CPH6KDa(xgQK_RKtAsxQGqBSI3gU->hiF=D!Y;5N2hCI6YB2x_nI+>UySBLtn zUF#gIs3WtbAiT(Pj*0&~0|@R*ddEur^}VgvcJ@%`>dr}TZQSjWJ+<(cPvSTmX#RHJSXQP>xT(j(ng zt}M$%zEFVjk0fT+0IqmKJawQ%8RzOyenZ!>WakxzC&DlB>t|v8BWwWznhX}ht+dG? zO=~(rbPhp30CgecVjTucTO6`Y)vp45_xmq7I6hhFH#CY(I~h9>BB>HWU01~`hi03c z2S$a({4w&GqZu^UIz<_8jzK`?mM^p{JfFG&r7Dc+s?X%k=~_z|+wojy6ynyL??ijU z3JU5VCk&s!RFX@q(@u4W?5*bwRHxmCj^w~T#I_0=P%RBFg~j10TduTzVdK=wUA=S73#qiwbK?xh@5i+>~|*52&g0T4IUNSo6;KPsukkIivj zpL5^A?(rAededq=HJJ_#tH2-}9-kaHO1QG~x-*5q6us7(c@u5hR~WnVw3UjFdFkpX z_!hGVmcKgpCC*4P2d=Cy?;BPdYgJwI)VcBLf50y?v*Y@~eYXMM2 zGX^}65w!2%|H^_4l}EWmuAVWvQUFNBCx{AyAf` z9@}zgbaT3(^u+u*_8+60(tjoCs_7IzL{{`C%@q#_EBklWitX1j?CBW;coiMowcM?d z4Eulcay8RtU)65U&g`Ij=5VVqD{JYbm1#BH>Yr&<^#aYMr*TD4m-yNE8sgKJIIq>MzIMdMgJp-#h*{+& z;)dcS!|1OomtqZF*lqi=_zb{JwhRs*A(=B}nau1mjyV-^lMU>hYQtqseVGD_mmKtn z5!-e1j;8Eb&c~|g_!;FI9c1K4r-~~p`b=OK^Ney;`+|bnrUP#KwIjV}v!`k#Snj~W zK!%xbp1cpc#6yF<8jUH z!F)n@GFV2X)buSyy|?UEe2Wge<#R}xIuoOqsc%eNd^PoQ>At)( zLQd7ZC48#Vvw&cDRK5|@oNZgBgagBt?nXobv2F`6Nx9SiLvRZ_btslbAvzQUh{vI7Oib`TUa2(-E- zDnz%W&-F)+1kaTWK#30Xcu^EUZEiN@gME?5_fj?CwvzD3xA_w~G`H&Fduem-YcJ z;{h+HXZ{g1mFU3f@G^|6(WL6%*+jMCm`eBeJ?L~rMBQ1NcErj1HbFx7JSm9btP}@V^@2T2l@+j za>IQ*gA}!mG0E7CLaRY9(&Iq|=Fy-@|AM?Tk#_EfPxiORf&R^f5S#1IM+Z;Nfu3Yg zYx)ic?w$OfLHSMj@jtgilnVRSpCHuX`L5~<+)8D@ajZua&uyk4176=An|5lUwH$dl zx-s&djcTQzrkmcQBulV z;aXgY{AZ{7yB193*hf(F{>Q19O8#IjAYW@lqVnH3r)hZYa~r5L18lnw6OeS=3W|mO zx9Ji6Uug?%g^og*(@T}_eg{Ran@V-{Nccsh`vuzNU6!=lGzKJ*`b@+qaHWYHns)ec>L!N8dL ziS#N(=XI#%5iii_>eD0}wAR@yJHspH=rrY2!#tyl`uKs3)2Dqk%0&-|^x>}$#B=)R zQf?Q}ay>R6Z8MNy&Ky>zq~@HK8{(0vg@d9?_}%xMDqD}iUbn{nuai@#bA-i;Mxx-FkVjK&I3 z!~v8dP{d4%%lVb3wxJq)+2XrXsrS~QNfL5KazczIJ)b)w3?G<~EN&C#G!z7uE&P@~ zje>P2)cAJx4!##9OlGgR-${?$I?H+;s=d_`4jn&Y^e0JgCjhX1f5(8Yps&8(vVKXh z^plV$eiPoB;@Hm{u?WAN8o624JckCv{HFJ^*tP7dQS>bZyeh7+Ht3q0)}ORDzj~Kr z!kph`HQx$s4Y1jW)VQ_y$d-K1=2l)v5m(x9`gBniFDBI80GnTI5#QxWoHVQ6&mTs( zj9NASNWP>#T?rl@9=o94&b4TRoPkWdo~QiT{HahS{^N`>eou}2>c9j6YdYP2u&1d? z9&jRxHa~CNsr2Y*KIHcSph0Zl+t68c_ACw}kFwcG*r?m8f5|X87_3rL!vxbVcbuff z;5<`s$&2mH4ygYWT|?*}BXT7A=W|mP(G(70fi87s?=cooF>|TIZQMapeR8aN4|qSN zOK=THE^Q{4fk>L6Z8q>i*PicdFOMYyWMLP;e$EziBbOC#$sZib_q9u?3KetZ!+j78 zznfpo9omap`*shu{EQNLIm;$*6+4?hsHnPXS8pe3S`Rn9->1FRoSE!-VnOoE_Cu3H zO}M%lylbIRgs`qMK8HZKUU8pTeQdJ5xJtR*s-w+OZb{@MRa|$+&lTH*ceqNI#jabw zU783Sj{5BC-+GncP=RVMAMsv}oRm9Yz8f~-Vc^Z!jd#URuZ3Lv(BzC*RP2X)p>d&` zBX_+we=N>NO`~A#%TfK)QS0N%^nJhj$Ta*}KM=xlO!g?q&}#W)@4ZH61*ZOC#~U-J zL__{!kztH{Z?e;^C(n(y?$0uw{r5>1*g+C&!$4>)Tu zT2mw4P_ZcVF6_gpuNc{#^|yO{5vvckZt3AZ%Q!45{x{r%!l`34uNvmQ7*X63=Y7AV zLVBbm@`-`YTw3y9{)gV)&HpQBvEqDF&B_RaYTy&1q*Y**4hpjIoWXsYI~ClaIUGQT zS$225;Y&urH|i=1G;`4JN-o2sNMljVoZ@&A+OJr-C337}h@iO_9W31n$%guw34v}PI*pHPtZl&dnmcS+240zY6Z`wc%w)wNZw|D=- zil?#+Y80+&4o#t8T`yP0RTc|xgl$Ndbab**kaLvvIqG_r7KT*|zbga728~Q3=4J| zKvpN3U8sFWDYa9}7h~T|p;t9aISN-gUb76FE!xap?rqQhwOjjPhdvcasC%07KjJkW zMdf_$!(lCq#Nby3m=*7O!KB)HRB(4!je6X->=f%0uw)OiUbA0dZtc5YbqYntVaZM? z9tMCh<~=n*jeT!gP8o)xg#&m8hvlO7*B(%*WFKj{zo(24yLp4H zq8SMETIRVKf`62Co%)lt@i@L!=wFZ=x_lIL@}7(!b5bkYSA)wh`O+Q58eW|`B&kf8 zR4`OIi}dm9HH>BcvsY*;x0i-xJ{GHD%|IuIeRqwKb4v^-zO?k-w1JqGxm{%{U#y;+ zzNB5Y>t`&MoMhB#RLUdJoP@V(o#|nN9~oQHyZjBd+R*K6<+h~R9@7tVY-{gzT5VULMNOo*!WS0cE%Lly0i zt!2ohMrG-wR^iaI$#&|(M!O~K;svCS^LaS8O%2iiLSZYXGctf>ZRMR-kvxGljcGHT z4@XX6U{1uig3buC`>;O~>NeY9Tl@wRZ$`jy;FOdA=DVxsabKGkl?X>tac&?~QU!j; zZ6iA(FI@Frg^qw1wfpEL=-mG6{OQ!Z=~T|*E~c_=AIjPtIu|OWY5NP=yK}74 zKlVP|F_rjsp&Y%VQCgcCc@TOae(3bI-j`Hcf2Q$bS0aQgesdoIc$ip+9LoP&>pVQw&fYx-qWi(6^w94Z;5!+`KR7NySnw9$0>Py0)C{e zp(Rs?a*X0ch4$xA?hAlh%iT5$Kh0)0Vx@xbq{Paen;2AYh@7_Z-tyZW&;UL-c} z(B#2=!EkGihOT30j~3nht)V_R zqLiF%#m!n*f5xXQN_gHSblxRJsKSVHjhh|w4yIl*$yxHG!BxU^Hi^MVDQCeR$ssv+|KdnY<1I~1JS`rjUlGZ3?Xt4w>lp)3xuv2O+$ WNG?0EUz(T9yprL5zr(fFUV~q$rRx1Aqhp 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�q!E~idn1Q(cOx47@)7##Hp-vrDIpj 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 EKd~#PtpET3 literal 0 HcmV?d00001 diff --git a/platforma/static/filebrowser/uploadify/uploadify.php b/platforma/static/filebrowser/uploadify/uploadify.php new file mode 100755 index 00000000..8bf14a67 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/uploadify.php @@ -0,0 +1,46 @@ + \ No newline at end of file diff --git a/platforma/static/filebrowser/uploadify/uploadify.swf b/platforma/static/filebrowser/uploadify/uploadify.swf new file mode 100755 index 0000000000000000000000000000000000000000..0385d9e6eb07271dca3f341ce9d45e914afee0dc GIT binary patch literal 23118 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 teD1;LUVJ`?pN^`!;6L{)(99h>we{% endblock %} + +{% block coltype %}colMS{% endblock %} + +{% block bodyclass %}dashboard{% endblock %} + +{% block breadcrumbs %}{% endblock %} + +{% block content %} +
+ +{% if app_list %} + + {% include "filebrowser/append.html" %} + + {% for app in app_list %} +
+ + + {% for model in app.models %} + + {% if model.perms.change %} + + {% else %} + + {% endif %} + + {% if model.perms.add %} + + {% else %} + + {% endif %} + + {% if model.perms.change %} + + {% else %} + + {% endif %} + + {% endfor %} +
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
{{ model.name }}{{ model.name }}{% trans 'Add' %} {% trans 'Change' %} 
+
+ {% endfor %} +{% else %} +

{% trans "You don't have permission to edit anything." %}

+{% endif %} +
+{% endblock %} + +{% block sidebar %} +
+{% endblock %} diff --git a/platforma/urls.py b/platforma/urls.py index 786a6538..498b5b2e 100644 --- a/platforma/urls.py +++ b/platforma/urls.py @@ -22,6 +22,7 @@ urlpatterns = patterns('', url(r'^file/(?P[^/]+)/print$', 'explorer.views.print_html', name="file_print"), # Admin panel + (r'^admin/filebrowser/', include('filebrowser.urls')), url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/(.*)', admin.site.root), -- 2.20.1 From 54d7b5abd1eddc6f22f8d3df75334a54a1420485 Mon Sep 17 00:00:00 2001 From: zuber Date: Fri, 6 Nov 2009 00:14:15 +0100 Subject: [PATCH 02/16] =?utf8?q?=C5=81atwiejsze=20wybieranie=20galerii=20d?= =?utf8?q?la=20dokument=C3=B3w=20w=20interfejsie=20administracyjnym.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- apps/explorer/admin.py | 25 ++++++++++++++++++++++++- apps/explorer/models.py | 13 +++++++------ 2 files changed, 31 insertions(+), 7 deletions(-) diff --git a/apps/explorer/admin.py b/apps/explorer/admin.py index 10c3e79a..097514a9 100644 --- a/apps/explorer/admin.py +++ b/apps/explorer/admin.py @@ -1,7 +1,30 @@ from django.contrib import admin +from django import forms +import os + +from django.conf import settings import explorer.models admin.site.register(explorer.models.EditorSettings) admin.site.register(explorer.models.EditorPanel) -admin.site.register(explorer.models.GalleryForDocument) \ No newline at end of file + + +class GalleryAdminForm(forms.ModelForm): + subpath = forms.ChoiceField(choices=()) + + def __init__(self, *args, **kwargs): + super(GalleryAdminForm, self).__init__(*args, **kwargs) + self.fields['subpath'].choices = [(x, x) for x in os.listdir(settings.MEDIA_ROOT + settings.IMAGE_DIR)] + + class Meta: + mode = explorer.models.GalleryForDocument + fields = ('document', 'subpath',) + + +class GalleryAdmin(admin.ModelAdmin): + form = GalleryAdminForm + list_display = ('document', 'subpath',) + search_fields = ('document', 'subpath',) + +admin.site.register(explorer.models.GalleryForDocument, GalleryAdmin) \ No newline at end of file diff --git a/apps/explorer/models.py b/apps/explorer/models.py index 73e9063a..e104cda6 100644 --- a/apps/explorer/models.py +++ b/apps/explorer/models.py @@ -58,13 +58,14 @@ class EditorPanel(models.Model): # Yes, this is intentionally unnormalized ! class GalleryForDocument(models.Model): - name = models.CharField(max_length=100) - - # directory containing scans under MEDIA_ROOT/ - subpath = models.CharField(max_length=255) + name = models.CharField(max_length=100, blank=True) # document associated with the gallery - document = models.CharField(max_length=255) + document = models.CharField(max_length=255, unique=True) + + # directory containing scans under MEDIA_ROOT/ + subpath = models.CharField(max_length=255) def __unicode__(self): - return u"%s:%s" % (self.subpath, self.document) \ No newline at end of file + return u"%s:%s" % (self.subpath, self.document) + -- 2.20.1 From 113e9584a18733aabe8a2ec20862eb6f5ed4b62d Mon Sep 17 00:00:00 2001 From: zuber Date: Fri, 6 Nov 2009 00:32:51 +0100 Subject: [PATCH 03/16] =?utf8?q?Ustawianie=20poprawnych=20=C5=9Bcie=C5=BCe?= =?utf8?q?k=20w=20interfejsie=20administracyjnym=20do=20przydzielania=20ga?= =?utf8?q?lerii.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- apps/explorer/admin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/explorer/admin.py b/apps/explorer/admin.py index 097514a9..c84a5d93 100644 --- a/apps/explorer/admin.py +++ b/apps/explorer/admin.py @@ -15,7 +15,7 @@ class GalleryAdminForm(forms.ModelForm): def __init__(self, *args, **kwargs): super(GalleryAdminForm, self).__init__(*args, **kwargs) - self.fields['subpath'].choices = [(x, x) for x in os.listdir(settings.MEDIA_ROOT + settings.IMAGE_DIR)] + self.fields['subpath'].choices = [(settings.IMAGE_DIR + '/' + x, x) for x in os.listdir(settings.MEDIA_ROOT + settings.IMAGE_DIR)] class Meta: mode = explorer.models.GalleryForDocument -- 2.20.1 From e5fa9dfb8508e5849544105de4594903e2ac66a0 Mon Sep 17 00:00:00 2001 From: zuber Date: Fri, 6 Nov 2009 12:29:31 +0100 Subject: [PATCH 04/16] =?utf8?q?Zmiana=20katalogu=20przegl=C4=85danego=20p?= =?utf8?q?rzez=20filebrowser=20na=20images=20oraz=20usuni=C4=99cie=20wy?= =?utf8?q?=C5=9Bwietlania=20wersji=20obrazk=C3=B3w=20z=20admina.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- platforma/settings.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/platforma/settings.py b/platforma/settings.py index 1e0d2127..1ca8c81d 100644 --- a/platforma/settings.py +++ b/platforma/settings.py @@ -127,6 +127,8 @@ INSTALLED_APPS = ( FILEBROWSER_URL_FILEBROWSER_MEDIA = STATIC_URL + 'filebrowser/' +FILEBROWSER_DIRECTORY = 'images/' +FILEBROWSER_ADMIN_VERSIONS = [] # REPOSITORY_PATH = '/Users/zuber/Projekty/platforma/files/books' -- 2.20.1 From 747e1708decfe38a56f6fa512ba91e9d7c5349f8 Mon Sep 17 00:00:00 2001 From: zuber Date: Fri, 6 Nov 2009 12:32:51 +0100 Subject: [PATCH 05/16] =?utf8?q?Zmiana=20podkatalogu,=20w=20kt=C3=B3rym=20?= =?utf8?q?filebrowser=20trzyma=20miniaturki=20obrazk=C3=B3w=20na=20thumbna?= =?utf8?q?ils.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- platforma/settings.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platforma/settings.py b/platforma/settings.py index 1ca8c81d..29974faa 100644 --- a/platforma/settings.py +++ b/platforma/settings.py @@ -129,7 +129,7 @@ INSTALLED_APPS = ( FILEBROWSER_URL_FILEBROWSER_MEDIA = STATIC_URL + 'filebrowser/' FILEBROWSER_DIRECTORY = 'images/' FILEBROWSER_ADMIN_VERSIONS = [] - +FILEBROWSER_VERSIONS_BASEDIR = 'thumbnails/' # REPOSITORY_PATH = '/Users/zuber/Projekty/platforma/files/books' IMAGE_DIR = 'images' -- 2.20.1 From e26ca139f24101d2e5578cb278b7a47b54f542f0 Mon Sep 17 00:00:00 2001 From: zuber Date: Fri, 6 Nov 2009 13:07:07 +0100 Subject: [PATCH 06/16] =?utf8?q?Interfejs=20do=20do=C5=82=C4=85czania=20ga?= =?utf8?q?lerii=20do=20dokumentu,=20je=C5=BCeli=20=C5=BCadna=20nie=20jest?= =?utf8?q?=20do=C5=82=C4=85czona.?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- apps/explorer/admin.py | 20 ++------------------ apps/explorer/forms.py | 22 ++++++++++++++++++---- apps/explorer/views.py | 7 +++++-- platforma/templates/explorer/editor.html | 9 ++++++++- 4 files changed, 33 insertions(+), 25 deletions(-) diff --git a/apps/explorer/admin.py b/apps/explorer/admin.py index c84a5d93..dd765f59 100644 --- a/apps/explorer/admin.py +++ b/apps/explorer/admin.py @@ -1,29 +1,13 @@ from django.contrib import admin -from django import forms -import os - -from django.conf import settings import explorer.models +from explorer import forms admin.site.register(explorer.models.EditorSettings) admin.site.register(explorer.models.EditorPanel) - -class GalleryAdminForm(forms.ModelForm): - subpath = forms.ChoiceField(choices=()) - - def __init__(self, *args, **kwargs): - super(GalleryAdminForm, self).__init__(*args, **kwargs) - self.fields['subpath'].choices = [(settings.IMAGE_DIR + '/' + x, x) for x in os.listdir(settings.MEDIA_ROOT + settings.IMAGE_DIR)] - - class Meta: - mode = explorer.models.GalleryForDocument - fields = ('document', 'subpath',) - - class GalleryAdmin(admin.ModelAdmin): - form = GalleryAdminForm + form = forms.GalleryChoiceForm list_display = ('document', 'subpath',) search_fields = ('document', 'subpath',) diff --git a/apps/explorer/forms.py b/apps/explorer/forms.py index 6c5c88d5..33585bce 100644 --- a/apps/explorer/forms.py +++ b/apps/explorer/forms.py @@ -1,12 +1,14 @@ # -*- coding: utf-8 -*- -from django import forms - -from lxml import etree +import os from librarian import dcparser + +from django import forms +from django.conf import settings import django.utils from explorer import models + class PersonField(forms.CharField): def clean(self, value): try: @@ -79,6 +81,17 @@ class SplitForm(forms.Form): fulltext = forms.CharField(widget=forms.HiddenInput(), required=False) splittext = forms.CharField(widget=forms.HiddenInput(), required=False) +class GalleryChoiceForm(forms.ModelForm): + subpath = forms.ChoiceField(choices=()) + + def __init__(self, *args, **kwargs): + super(GalleryChoiceForm, self).__init__(*args, **kwargs) + self.fields['subpath'].choices = [(settings.IMAGE_DIR + '/' + x, x) for x in os.listdir(settings.MEDIA_ROOT + settings.IMAGE_DIR)] + + class Meta: + model = models.GalleryForDocument + fields = ('document', 'subpath',) + class DublinCoreForm(forms.Form): about = forms.URLField(verify_exists=False) author = PersonField() @@ -109,4 +122,5 @@ class DublinCoreForm(forms.Form): vdict = info.to_dict() for name in self.fields.keys(): if vdict.has_key(name): - self.fields[name].initial = vdict[name] \ No newline at end of file + self.fields[name].initial = vdict[name] + diff --git a/apps/explorer/views.py b/apps/explorer/views.py index 2c9b17da..5ec452ae 100644 --- a/apps/explorer/views.py +++ b/apps/explorer/views.py @@ -13,8 +13,10 @@ from django.utils import simplejson as json from django.views.generic.simple import direct_to_template from django.contrib.auth.decorators import login_required +from explorer import forms from api.models import PullRequest + def ajax_login_required(view): """Similar ro @login_required, but instead of redirect, just return some JSON stuff with error.""" @@ -28,11 +30,12 @@ def ajax_login_required(view): @login_required def display_editor(request, path): user = request.GET.get('user', request.user.username) - log.info(user) + gallery_form = forms.GalleryChoiceForm() return direct_to_template(request, 'explorer/editor.html', extra_context={ 'fileid': path, - 'euser': user + 'euser': user, + 'gallery_form': gallery_form, }) # diff --git a/platforma/templates/explorer/editor.html b/platforma/templates/explorer/editor.html index 7bc9c617..0dcc06bc 100755 --- a/platforma/templates/explorer/editor.html +++ b/platforma/templates/explorer/editor.html @@ -135,7 +135,14 @@ -- 2.20.1 From 8d490fc7810e0052bad3414b445b24276bbfca63 Mon Sep 17 00:00:00 2001 From: zuber Date: Fri, 6 Nov 2009 13:41:22 +0100 Subject: [PATCH 07/16] Ustawianie galerii inline. --- apps/api/handlers/library_handlers.py | 25 ++++++++++++++++++++++-- platforma/static/js/models.js | 16 +++++++++++++++ platforma/static/js/views/gallery.js | 8 ++++++++ platforma/templates/explorer/editor.html | 2 +- 4 files changed, 48 insertions(+), 3 deletions(-) diff --git a/apps/api/handlers/library_handlers.py b/apps/api/handlers/library_handlers.py index 948bad4b..7e90e313 100755 --- a/apps/api/handlers/library_handlers.py +++ b/apps/api/handlers/library_handlers.py @@ -5,6 +5,7 @@ import logging log = logging.getLogger('platforma.api.library') from piston.handler import BaseHandler, AnonymousBaseHandler +from piston.utils import rc from datetime import date @@ -327,7 +328,7 @@ class DocumentHTMLHandler(BaseHandler): # class DocumentGalleryHandler(BaseHandler): - allowed_methods = ('GET') + allowed_methods = ('GET', 'POST') def read(self, request, docid): @@ -372,7 +373,27 @@ class DocumentGalleryHandler(BaseHandler): return galleries - + def create(self, request, docid): + if not request.user.is_superuser: + return rc.FORBIDDEN + + new_path = request.POST.get('path') + + if new_path: + gallery, created = GalleryForDocument.objects.get_or_create( + document = docid, + defaults = { + 'subpath': new_path, + } + ) + + if not created: + gallery.subpath = new_path + gallery.save() + + return rc.CREATED + + return rc.BAD_REQUEST # # Dublin Core handlers diff --git a/platforma/static/js/models.js b/platforma/static/js/models.js index ba2f3ce3..2c36e2bb 100755 --- a/platforma/static/js/models.js +++ b/platforma/static/js/models.js @@ -360,6 +360,22 @@ Editor.ImageGalleryModel = Editor.Model.extend({ this.pages = []; }, + setGallery: function(path) { + $.ajax({ + url: this.serverURL, + type: 'post', + data: { + path: path, + }, + success: this.settingGallerySucceeded.bind(this) + }); + }, + + settingGallerySucceeded: function(data) { + console.log('settingGallerySucceeded'); + this.load(true); + }, + load: function(force) { if (force || this.get('state') == 'empty') { console.log("setting state"); diff --git a/platforma/static/js/views/gallery.js b/platforma/static/js/views/gallery.js index d3398ce0..a403c9ef 100644 --- a/platforma/static/js/views/gallery.js +++ b/platforma/static/js/views/gallery.js @@ -220,6 +220,8 @@ var ImageGalleryView = View.extend({ { if(!this.model) return; + $('.choose-gallery-button', this.element).unbind(); + /* first unbind all */ if(this.$nextButton) this.$nextButton.unbind(); if(this.$prevButton) this.$prevButton.unbind(); @@ -261,6 +263,12 @@ var ImageGalleryView = View.extend({ this.changePageZoom(this.pageZoom); } else { this._super(template); + + var self = this; + $('.choose-gallery-button', self.element).click(function() { + console.log('CLICK CLICK') + self.model.setGallery($('#id_subpath', self.element).val()); + }); } }, diff --git a/platforma/templates/explorer/editor.html b/platforma/templates/explorer/editor.html index 0dcc06bc..8930c944 100755 --- a/platforma/templates/explorer/editor.html +++ b/platforma/templates/explorer/editor.html @@ -140,7 +140,7 @@ {% if user.is_superuser %} {% endif %}
-- 2.20.1 From 4607903456ce2c96d5c40d72c603093ef02f5d29 Mon Sep 17 00:00:00 2001 From: Lukasz Rekucki Date: Sun, 8 Nov 2009 14:31:12 +0100 Subject: [PATCH 08/16] Zapis na serwer na Gecko/Webkit/Opera. --- apps/explorer/views.py | 12 +- platforma/static/css/html.css | 6 +- .../static/js/lib/codemirror/codemirror.js | 10 +- platforma/static/js/models.js | 33 ++- platforma/static/js/views/html.js | 25 +- platforma/static/xsl/html2wl_client.xsl | 91 +++++-- platforma/static/xsl/wl2html_client.xsl | 250 ++++++++++++------ platforma/templates/base.html | 3 +- platforma/templates/explorer/editor.html | 1 + platforma/templates/renderer.html | 88 ++++-- 10 files changed, 350 insertions(+), 169 deletions(-) mode change 100644 => 100755 platforma/static/js/lib/codemirror/codemirror.js diff --git a/apps/explorer/views.py b/apps/explorer/views.py index 46cdd4ee..fd99f27e 100755 --- a/apps/explorer/views.py +++ b/apps/explorer/views.py @@ -11,6 +11,8 @@ from django.core.urlresolvers import reverse from django.http import HttpResponse from django.utils import simplejson as json from django.views.generic.simple import direct_to_template +from django.shortcuts import render_to_response +from django.template import RequestContext from django.contrib.auth.decorators import login_required from api.models import PullRequest @@ -29,11 +31,13 @@ def ajax_login_required(view): def display_editor(request, path): user = request.GET.get('user', request.user.username) log.info(user) - - return direct_to_template(request, 'explorer/editor.html', extra_context={ + + return render_to_response('explorer/editor.html', + mimetype="text/html", + dictionary = { 'fileid': path, 'euser': user - }) + }, context_instance=RequestContext(request)) # # View all files @@ -122,5 +126,5 @@ def pull_requests(request): # Testing # def renderer_test(request): - return direct_to_template(request, 'renderer.html', mimetype="text/html", + return direct_to_template(request, 'renderer.html', mimetype="application/xhtml+xml", extra_context = {} ) \ No newline at end of file diff --git a/platforma/static/css/html.css b/platforma/static/css/html.css index 5d4e08c2..acbeac2c 100755 --- a/platforma/static/css/html.css +++ b/platforma/static/css/html.css @@ -225,11 +225,11 @@ /* = Footnotes and themes = */ /* ======================== */ -.htmlview .theme-begin, .htmlview .theme-end { +.htmlview .begin, .htmlview .end { background: green; } -.htmlview .theme-ref { +.htmlview .motyw { position: absolute; right: -8em; @@ -299,7 +299,7 @@ padding: 3px 5px; text-decoration: none; - z-index: 10; + z-index: 11; } diff --git a/platforma/static/js/lib/codemirror/codemirror.js b/platforma/static/js/lib/codemirror/codemirror.js old mode 100644 new mode 100755 index 97e2657b..4eb5fb73 --- a/platforma/static/js/lib/codemirror/codemirror.js +++ b/platforma/static/js/lib/codemirror/codemirror.js @@ -55,9 +55,9 @@ var CodeMirror = (function(){ function wrapLineNumberDiv(place) { return function(node) { - var container = document.createElement("DIV"), - nums = document.createElement("DIV"), - scroller = document.createElement("DIV"); + var container = document.createElement("div"), + nums = document.createElement("div"), + scroller = document.createElement("div"); container.style.position = "relative"; nums.style.position = "absolute"; nums.style.height = "100%"; @@ -98,7 +98,7 @@ var CodeMirror = (function(){ function update() { var diff = 20 + Math.max(doc.body.offsetHeight, frame.offsetHeight) - scroller.offsetHeight; for (var n = Math.ceil(diff / 10); n > 0; n--) { - var div = document.createElement("DIV"); + var div = document.createElement("div"); div.appendChild(document.createTextNode(nextNum++)); scroller.appendChild(div); } @@ -120,7 +120,7 @@ var CodeMirror = (function(){ this.options = options = options || {}; setDefaults(options, CodeMirrorConfig); - var frame = this.frame = document.createElement("IFRAME"); + var frame = this.frame = document.createElement("iframe"); if (options.iframeClass) frame.className = options.iframeClass; frame.frameBorder = 0; frame.src = "javascript:false;"; diff --git a/platforma/static/js/models.js b/platforma/static/js/models.js index d2869ede..d0e7df13 100755 --- a/platforma/static/js/models.js +++ b/platforma/static/js/models.js @@ -99,16 +99,19 @@ Editor.HTMLModel = Editor.Model.extend({ }, asWLML: function(element) - { - var result = this.wlmlXSL.transformToFragment(element, document); + { + console.log("Source", element); + var doc = this.parser.parseFromString(this.serializer.serializeToString(element), 'text/xml'); + + var result = this.wlmlXSL.transformToDocument(doc); if(!result) { - console.log(this.wlmlXSL.transformToDocument(element)); + console.log("Failed", this.wlmlXSL, doc); throw "Failed to transform fragment"; } - console.log("Transform result:", result); - return this.serializer.serializeToString(result); + console.log("Transformed", doc, " to: ", result.documentElement); + return this.serializer.serializeToString(result.documentElement); }, updateWithWLML: function($element, text) @@ -131,6 +134,7 @@ Editor.HTMLModel = Editor.Model.extend({ throw "WLML->HTML transformation failed."; $element.replaceWith(result); + this.set('state', 'dirty'); }, createXSLT: function(xslt_doc) { @@ -201,20 +205,23 @@ Editor.HTMLModel = Editor.Model.extend({ save: function(message) { if (this.get('state') == 'dirty') { - this.set('state', 'updating'); - messageCenter.addMessage('info', 'xmlsave', 'Zapisuję XML...'); + this.set('state', 'saving'); + + messageCenter.addMessage('info', 'htmlsave', 'Zapisuję HTML...'); + var wlml = this.asWLML(this.get('data')); var payload = { - contents: this.get('data'), + contents: wlml, revision: this.get('revision'), user: this.document.get('user') }; + if (message) { payload.message = message; } $.ajax({ - url: this.serverURL, + url: this.textURL, type: 'post', dataType: 'json', data: payload, @@ -227,19 +234,19 @@ Editor.HTMLModel = Editor.Model.extend({ }, saveSucceeded: function(data) { - if (this.get('state') != 'updating') { + if (this.get('state') != 'saving') { alert('erroneous state:', this.get('state')); } this.set('revision', data.revision); this.set('state', 'updated'); - messageCenter.addMessage('success', 'xmlsave', 'Zapisałem XML :-)'); + messageCenter.addMessage('success', 'htmlsave', 'Zapisałem :-)'); }, saveFailed: function() { - if (this.get('state') != 'updating') { + if (this.get('state') != 'saving') { alert('erroneous state:', this.get('state')); } - messageCenter.addMessage('error', 'xmlsave', 'Nie udało mi się zapisać XML. Spróbuj ponownie :-('); + messageCenter.addMessage('error', 'htmlsave', 'Nie udało mi się zapisać.'); this.set('state', 'dirty'); }, diff --git a/platforma/static/js/views/html.js b/platforma/static/js/views/html.js index 8aff5f06..0b1234ce 100755 --- a/platforma/static/js/views/html.js +++ b/platforma/static/js/views/html.js @@ -106,9 +106,17 @@ var HTMLView = View.extend({ this.$docbase = $('.htmlview', this.element); this.$addThemeButton = $('.htmlview-toolbar .html-add-motive', this.element); + this.$debugButton = $('.htmlview-toolbar .html-serialize', this.element); + this.updatePrintLink(); this.$docbase.bind('click', this.itemClicked.bind(this)); this.$addThemeButton.click( this.addTheme.bind(this) ); + this.$debugButton.click( this.serialized.bind(this) ); + }, + + serialized: function() { + this.model.set('state', 'dirty'); + console.log( this.model.serializer.serializeToString(this.model.get('data')) ); }, renderPart: function($e, html) { @@ -360,7 +368,7 @@ var HTMLView = View.extend({ { var range = selection.getRangeAt(i); console.log(i, range.startContainer, range.endContainer); - var date = Date.now(); + var date = (new Date()).getTime(); var random = Math.floor(4000000000*Math.random()); var id = (''+date) + '-' + (''+random); @@ -372,17 +380,20 @@ var HTMLView = View.extend({ // insert theme-ref - var elem = $('Nowy motyw'); - elem.attr('x-attrib-id', 'm'+id); + var elem = $('Nowy motyw'); + elem.attr('x-attr-qname-'+id, 'id'); + elem.attr('x-attr-value-'+id, 'm'+id); spoint.insertNode(elem[0]); // insert theme-begin - elem = $(''); - elem.attr('x-attrib-id', 'b'+id); + elem = $(''); + elem.attr('x-attr-qname-'+id, 'id'); + elem.attr('x-attr-value-'+id, 'b'+id); spoint.insertNode(elem[0]); - elem = $(''); - elem.attr('x-attrib-id', 'e'+id); + elem = $(''); + elem.attr('x-attr-qname-'+id, 'id'); + elem.attr('x-attr-value-'+id, 'e'+id); epoint.insertNode(elem[0]); } diff --git a/platforma/static/xsl/html2wl_client.xsl b/platforma/static/xsl/html2wl_client.xsl index d92a4d3e..726a404a 100755 --- a/platforma/static/xsl/html2wl_client.xsl +++ b/platforma/static/xsl/html2wl_client.xsl @@ -1,56 +1,93 @@ + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:dc="http://purl.org/dc/elements/1.1/" +> - + + --> + + + + + + + + - + - + - - + + + - + - - - - - + - + - / + / - - - - / + + / + + + + + + + - - - + + + + + + + + + + + + + + + + + - / - - - + + + + + + / - + + + / + + + \ No newline at end of file diff --git a/platforma/static/xsl/wl2html_client.xsl b/platforma/static/xsl/wl2html_client.xsl index 7a7da8c4..234ea5cf 100755 --- a/platforma/static/xsl/wl2html_client.xsl +++ b/platforma/static/xsl/wl2html_client.xsl @@ -5,7 +5,7 @@ - + @@ -25,9 +25,12 @@ --> - - - +
+ + + + +
-

+

+ @@ -110,7 +118,8 @@ --> -

+

+ @@ -133,7 +142,8 @@ --> -

+

+ @@ -157,7 +167,8 @@ --> -

+

+ @@ -173,7 +184,8 @@ -
+
+ @@ -186,7 +198,8 @@ --> -
+
+ @@ -199,16 +212,18 @@ --> -
+
+ - +
-

+

+ @@ -224,7 +239,8 @@ --> -

+
+ @@ -233,7 +249,8 @@ -

+

+ @@ -243,7 +260,24 @@ -

+

+ + + + + +

+
+ + + + +

+ @@ -264,7 +298,8 @@ --> -

+

+ @@ -278,7 +313,8 @@ --> -

+

+ @@ -292,7 +328,8 @@ --> -

+

+ @@ -310,7 +347,8 @@ -

+

+ @@ -320,7 +358,8 @@ -

+

+ @@ -335,7 +374,8 @@ -

+

+ @@ -345,7 +385,8 @@ -

+

+ @@ -361,7 +402,8 @@ -
+
+ @@ -370,7 +412,8 @@ -
+
+ @@ -379,7 +422,8 @@ -
+
+ @@ -388,16 +432,18 @@ -
+
+ - +
-
+
+ @@ -406,7 +452,8 @@ -
+
+ @@ -421,7 +468,8 @@ -

+

+ @@ -431,7 +479,8 @@ -

+

+ @@ -441,7 +490,8 @@ -

+

+ @@ -455,8 +505,10 @@ ******** --> -

+
+ + @@ -485,42 +537,41 @@ - + + - -

- - + + +

+ -

-

- - - - - -

-
- -
+ + + + +
- - +

+ + +

- + + / + - + + @@ -545,7 +597,8 @@ - + + @@ -559,22 +612,22 @@ --> -
+

-
+
-
+
-
+
- + + + + @@ -602,21 +658,29 @@ - - + + + + + + + + + - - + + + - - + + @@ -631,18 +695,29 @@ - - - - - - + +
+ + + + + +
+ + + + +
+
+ -
+ + Unmatched tag + @@ -655,9 +730,24 @@ - + + + + + + + + + + + - + + + + + + diff --git a/platforma/templates/base.html b/platforma/templates/base.html index 50c7bfec..597a4320 100755 --- a/platforma/templates/base.html +++ b/platforma/templates/base.html @@ -1,6 +1,6 @@ - + {% block title %}Platforma Redakcyjna{% block subtitle %}{% endblock subtitle %}{% endblock title%} @@ -24,5 +24,6 @@
{% block maincontent %} {% endblock %}
{% block extrabody %}{% endblock %} + http://192.168.56.2:8000/editor/mickiewicz__pan_tadeusz__ksi%C4%99ga_1/ diff --git a/platforma/templates/explorer/editor.html b/platforma/templates/explorer/editor.html index 247f59ca..f6a76307 100755 --- a/platforma/templates/explorer/editor.html +++ b/platforma/templates/explorer/editor.html @@ -65,6 +65,7 @@
{% trans "Print version" %} +
diff --git a/platforma/templates/renderer.html b/platforma/templates/renderer.html index dabf3381..84de36d6 100755 --- a/platforma/templates/renderer.html +++ b/platforma/templates/renderer.html @@ -1,29 +1,46 @@ {% extends "base.html" %} {% block extrahead %} - + + {% endblock %} {% block maincontent %} -

Source

- - -

Rendered

- - - - - -
-
-
-
+ +
{% endblock %} {% block extrabody %} + +{% comment %} + +{% endcomment %} {% endblock %} \ No newline at end of file -- 2.20.1 From e459e4567cc578abd5d7e02e70a01ec9464f474d Mon Sep 17 00:00:00 2001 From: Lukasz Rekucki Date: Mon, 9 Nov 2009 15:16:01 +0100 Subject: [PATCH 09/16] Poprawki w motywach. Ukrywanie DC. Minimalna wysokosc pola tekstowego do edycji --- platforma/static/css/html.css | 34 +++-- platforma/static/js/models.js | 89 +++++++++--- platforma/static/js/views/html.js | 166 ++++++++++++++++++----- platforma/static/xsl/html2wl_client.xsl | 9 +- platforma/static/xsl/wl2html_client.xsl | 22 ++- platforma/templates/explorer/editor.html | 3 +- 6 files changed, 246 insertions(+), 77 deletions(-) diff --git a/platforma/static/css/html.css b/platforma/static/css/html.css index acbeac2c..682e905e 100755 --- a/platforma/static/css/html.css +++ b/platforma/static/css/html.css @@ -9,6 +9,10 @@ padding-left: 55px; } +.htmlview *[x-node='rdf:RDF'] { + display: none; +} + .htmlview * { position: relative; } @@ -230,18 +234,22 @@ } .htmlview .motyw { - position: absolute; - right: -8em; + /* position: absolute; */ + + float: right; + left: auto; + clear: right; + + width: 10em; - min-width: 5em; - max-width: 8em; - font-weight: normal; font-size: 10pt; font-variant: normal; text-decoration: none; - padding: 0.2em 0.2em 0.2em 0.5em; + padding: 0.2em; + + background-color: #efefef; border: 1px solid gray; border-left: 2px dotted gray; @@ -299,7 +307,7 @@ padding: 3px 5px; text-decoration: none; - z-index: 11; + z-index: 1000; } @@ -339,10 +347,10 @@ } /* focused editable element */ -/* .htmlview *[x-editable]:hover -{ - -} */ +.htmlview *[x-editable]:hover +{ + z-index: 900; +} .htmlview *[x-editable][x-open] { @@ -394,6 +402,7 @@ padding: 2px; cursor: pointer; border-bottom: 1px solid black; + } .context-menu *:last-child { @@ -402,7 +411,7 @@ } .context-menu *:hover { - background-color: orange; + background-color: orange; } /* @@ -415,6 +424,7 @@ .default-menu:hover { opacity: 1; + z-index: 5000; } .htmlview *[x-annotation-box] > .default-menu { diff --git a/platforma/static/js/models.js b/platforma/static/js/models.js index 59a285a1..dae64d8a 100755 --- a/platforma/static/js/models.js +++ b/platforma/static/js/models.js @@ -98,7 +98,7 @@ Editor.HTMLModel = Editor.Model.extend({ return false; }, - asWLML: function(element) + asWLML: function(element, inner) { console.log("Source", element); var doc = this.parser.parseFromString(this.serializer.serializeToString(element), 'text/xml'); @@ -111,30 +111,81 @@ Editor.HTMLModel = Editor.Model.extend({ } console.log("Transformed", doc, " to: ", result.documentElement); - return this.serializer.serializeToString(result.documentElement); + if(inner) { + var children = result.documentElement.childNodes; + var buf = ''; + + for(var i=0; i < children.length; i++) + buf += this.serializer.serializeToString(children.item(i)); + + return buf; + } + + return this.serializer.serializeToString(result.documentElement); + }, + + innerAsWLML: function(elem) + { + return this.asWLML(elem, true); + }, + + updateInnerWithWLML: function($element, innerML) + { + var e = $element.clone().html('')[0]; + var s = this.asWLML(e); + // hurray for dirty hacks :P + s = s.replace(/>%<\//, '>'+innerML+''); - var chunk = this.parser.parseFromString(""+text+"", "text/xml"); - - var errors = $('parsererror', chunk); + try { + var chunk = this.parser.parseFromString(""+text+"", "text/xml"); + } catch(e) { + console.log('Caught parse exception.'); + return "

Źle sformatowana zawartość:" + e.toString() + "

"; + } - // check if chunk is parsable - if(errors.length > 0) - throw {text: errors.text(), html: errors.html()}; + var parseError = chunk.getElementsByTagName('parsererror'); + console.log("Errors:", parseError); - var result = this.htmlXSL.transformToFragment(chunk, document); + if(parseError.length > 0) + { + console.log("Parse errors.") + return this.serializer.serializeToString(parseError.item(0)); + } - console.log("RESULT", this.serializer.serializeToString(result)); + console.log("Transforming to HTML"); + var result = this.htmlXSL.transformToFragment(chunk, $element[0].ownerDocument).firstChild; - if(!result) - throw "WLML->HTML transformation failed."; - - $element.replaceWith(result); - this.set('state', 'dirty'); + if(!result) { + return "Błąd aplikacji - nie udało się wygenerować nowego widoku HTML."; + } + + var errors = result.getElementsByTagName('error'); + if(errors.length > 0) + { + var errorMessage = 'Wystąpiły błędy:
    '; + for(var i=0; i < errors.length; i++) + { + var estr = this.serializer.serializeToString(errors.item(i)); + console.log("XFRM error:", estr); + errorMessage += "
  • "+estr+"
  • "; + } + errorMessage += "
"; + return errorMessage; + } + + try { + $element.replaceWith(result); + this.set('state', 'dirty'); + return false; + } catch(e) { + return "Błąd podczas wstawiania tekstu: '" + e.toString() + "'"; + } }, createXSLT: function(xslt_doc) { @@ -151,7 +202,9 @@ Editor.HTMLModel = Editor.Model.extend({ if(this.wlmlXSL && this.htmlXSL && this.rawText) this.loadSuccess(); } catch(e) { - this.loadingFailed(); + console.log(e); + this.set('error', e.toString() ); + this.set('state', 'error'); } }, @@ -163,7 +216,9 @@ Editor.HTMLModel = Editor.Model.extend({ if(this.wlmlXSL && this.htmlXSL && this.rawText) this.loadSuccess(); } catch(e) { - this.loadingFailed(); + console.log(e); + this.set('error', e.toString() ); + this.set('state', 'error'); } }, diff --git a/platforma/static/js/views/html.js b/platforma/static/js/views/html.js index 0b1234ce..cc42be24 100755 --- a/platforma/static/js/views/html.js +++ b/platforma/static/js/views/html.js @@ -105,19 +105,18 @@ var HTMLView = View.extend({ this.$printLink = $('.htmlview-toolbar .html-print-link', this.element); this.$docbase = $('.htmlview', this.element); this.$addThemeButton = $('.htmlview-toolbar .html-add-motive', this.element); - - this.$debugButton = $('.htmlview-toolbar .html-serialize', this.element); + // this.$debugButton = $('.htmlview-toolbar .html-serialize', this.element); this.updatePrintLink(); this.$docbase.bind('click', this.itemClicked.bind(this)); this.$addThemeButton.click( this.addTheme.bind(this) ); - this.$debugButton.click( this.serialized.bind(this) ); + // this.$debugButton.click( this.serialized.bind(this) ); }, - serialized: function() { + /* serialized: function() { this.model.set('state', 'dirty'); console.log( this.model.serializer.serializeToString(this.model.get('data')) ); - }, + }, */ renderPart: function($e, html) { // exceptions aren't good, but I don't have a better idea right now @@ -186,15 +185,18 @@ var HTMLView = View.extend({ * - this greatly simplifies the whole click check */ - if( $e.hasClass('theme-ref') ) + if( $e.hasClass('motyw') ) { console.log($e); - this.selectTheme($e.attr('x-theme-class')); + this.selectTheme($e.attr('theme-class')); return false; } /* other buttons */ try { + if($e.hasClass('delete-button')) + this.deleteElement( this.editableFor($e) ); + if($e.hasClass('edit-button')) this.openForEdit( this.editableFor($e) ); @@ -204,7 +206,7 @@ var HTMLView = View.extend({ if($e.hasClass('reject-button')) this.closeWithoutSave( this.editableFor($e) ); } catch(e) { - messageCenter.addMessage('error', "wlsave", 'Błąd:' + e.text); + messageCenter.addMessage('error', "wlsave", 'Błąd:' + e.toString()); } return false; @@ -248,10 +250,16 @@ var HTMLView = View.extend({ closeWithSave: function($e) { var $edit = $e.data('edit-overlay'); var newText = $('textarea', $edit).val(); - - this.model.updateWithWLML($e, newText); - $edit.remove(); - this.currentOpen = null; + var errors = null; + + errors = this.model.updateInnerWithWLML($e, newText); + + if(errors) + messageCenter.addMessage('error', 'render', errors); + else { + $edit.remove(); + this.currentOpen = null; + } }, closeWithoutSave: function($e) { @@ -305,6 +313,8 @@ var HTMLView = View.extend({ // start edition on this node var $overlay = $('
'); + + h = Math.max(h, 2*parseInt($box.css('line-height'))); $overlay.css({ position: 'absolute', @@ -315,7 +325,7 @@ var HTMLView = View.extend({ }); try { - $('textarea', $overlay).val( this.model.asWLML($origin[0]) ); + $('textarea', $overlay).val( this.model.innerAsWLML($origin[0]) ); if($origin.is(".annotation-inline-box")) { @@ -347,6 +357,62 @@ var HTMLView = View.extend({ return false; }, + + deleteElement: function($editable) + { + var relatedThemes = $("*[x-node='begin'], *[x-node='end']", $editable); + + var themeMarks = relatedThemes.map(function() { + return $(".motyw[theme-class='"+$(this).attr('theme-class')+"']"); + }); + + if($editable.is("*.motyw")) + { + console.log($editable); + var selector = "[theme-class='"+$editable.attr('theme-class')+"']"; + relatedThemes = relatedThemes.add("*[x-node='begin']"+selector+", *[x-node='end']"+selector); + } + + console.log(relatedThemes, themeMarks); + + var del = confirm("Usunięcie elementu jest nieodwracalne.\n" + +" Czy na pewno chcesz usunąć ten element, wraz z zawartymi motywami ?\n"); + + if(del) { + relatedThemes.remove(); + themeMarks.remove(); + $editable.remove(); + } + }, + + // Theme related stuff + verifyThemeInsertPoint: function(node) { + + if(node.nodeType == 3) { // Text Node + node = node.parentNode; + } + + if(node.nodeType != 1) return false; + + console.log('Selection point:', node); + + node = $(node); + var xtype = node.attr('x-node'); + + if(!xtype || (xtype.search(':') >= 0) || + xtype == 'motyw' || xtype == 'begin' || xtype == 'end') + return false; + + // this is hopefully redundant + //if(! node.is('*.utwor *') ) + // return false; + + // don't allow themes inside annotations + if( node.is('*[x-annotation-box] *') ) + return false; + + return true; + }, addTheme: function() { @@ -355,19 +421,37 @@ var HTMLView = View.extend({ console.log("Range count:", n); - if(n == 0) + if(n == 0) { window.alert("Nie zaznaczono żadnego obszaru"); + return false; + } // for now allow only 1 range - if(n > 1) + if(n > 1) { window.alert("Zaznacz jeden obszar"); - + return false; + } // from this point, we will assume that the ranges are disjoint for(var i=0; i < n; i++) { var range = selection.getRangeAt(i); console.log(i, range.startContainer, range.endContainer); + + // verify if the start/end points make even sense - + // they must be inside a x-node (otherwise they will be discarded) + // and the x-node must be a main text + if(! this.verifyThemeInsertPoint(range.startContainer) ) { + window.alert("Motyw nie może się zaczynać w tym miejscu."); + return false; + } + + if(! this.verifyThemeInsertPoint(range.endContainer) ) { + window.alert("Motyw nie może się kończyć w tym miejscu."); + return false; + } + + var date = (new Date()).getTime(); var random = Math.floor(4000000000*Math.random()); var id = (''+date) + '-' + (''+random); @@ -378,38 +462,52 @@ var HTMLView = View.extend({ spoint.setStart(range.startContainer, range.startOffset); epoint.setStart(range.endContainer, range.endOffset); - // insert theme-ref - - var elem = $('Nowy motyw'); - elem.attr('x-attr-qname-'+id, 'id'); - elem.attr('x-attr-value-'+id, 'm'+id); - spoint.insertNode(elem[0]); + var mtag, btag, etag, errors; + + // insert theme-ref + mtag = $(''); + spoint.insertNode(mtag[0]); + errors = this.model.updateWithWLML(mtag, 'Nowy Motyw'); + if(errors) { + messageCenter.addMessage('error', null, 'Błąd przy dodawaniu motywu :' + errors); + return false; + } // insert theme-begin - elem = $(''); - elem.attr('x-attr-qname-'+id, 'id'); - elem.attr('x-attr-value-'+id, 'b'+id); - spoint.insertNode(elem[0]); + btag = $(''); + spoint.insertNode(btag[0]); + errors = this.model.updateWithWLML(btag, ''); + if(errors) { + mtag.remove(); + messageCenter.addMessage('error', null, 'Błąd przy dodawaniu motywu :' + errors); + return false; + } + - elem = $(''); - elem.attr('x-attr-qname-'+id, 'id'); - elem.attr('x-attr-value-'+id, 'e'+id); - epoint.insertNode(elem[0]); + etag = $(''); + epoint.insertNode(etag[0]); + result = this.model.updateWithWLML(etag, ''); + if(errors) { + btag.remove(); + mtag.remove(); + messageCenter.addMessage('error', null, 'Błąd przy dodawaniu motywu :' + errors); + return false; + } } - //selection.removeAllRanges(); + selection.removeAllRanges(); }, selectTheme: function(themeId) { - var selection = document.getSelection(); + var selection = window.getSelection(); // remove current selection selection.removeAllRanges(); var range = document.createRange(); - var s = $('#m'+themeId)[0]; - var e = $('#e'+themeId)[0]; + var s = $(".motyw[theme-class='"+themeId+"']")[0]; + var e = $(".end[theme-class='"+themeId+"']")[0]; console.log('Selecting range:', themeId, range, s, e); if(s && e) { diff --git a/platforma/static/xsl/html2wl_client.xsl b/platforma/static/xsl/html2wl_client.xsl index 726a404a..3ee2f9ef 100755 --- a/platforma/static/xsl/html2wl_client.xsl +++ b/platforma/static/xsl/html2wl_client.xsl @@ -7,12 +7,11 @@ xmlns:dc="http://purl.org/dc/elements/1.1/" > - + - @@ -86,8 +85,8 @@ / - - - + + + \ No newline at end of file diff --git a/platforma/static/xsl/wl2html_client.xsl b/platforma/static/xsl/wl2html_client.xsl index 234ea5cf..72ac7771 100755 --- a/platforma/static/xsl/wl2html_client.xsl +++ b/platforma/static/xsl/wl2html_client.xsl @@ -5,7 +5,7 @@ - + @@ -660,6 +660,9 @@ + + + @@ -673,6 +676,9 @@ + + + @@ -680,7 +686,10 @@ - + + + + @@ -715,18 +724,17 @@ - - Unmatched tag - + Unknown tag: Edit + Delete - OK - Cancel + Accept + Close diff --git a/platforma/templates/explorer/editor.html b/platforma/templates/explorer/editor.html index 2e8a6b4b..a3ee0450 100755 --- a/platforma/templates/explorer/editor.html +++ b/platforma/templates/explorer/editor.html @@ -64,8 +64,7 @@ + + {% endblock %} {% block maincontent %} - - -
+
+

+ Przykładowy tekst, bo ala ma + Przycisk + + ślicznego kotka i burego psa. +

+

+ Ta linijka ma 2pt wysokości, oraz czcionkę 12pt. jest super. +

+
{% endblock %} {% block extrabody %} diff --git a/platforma/urls.py b/platforma/urls.py index 318d97cc..ccb9fcf7 100755 --- a/platforma/urls.py +++ b/platforma/urls.py @@ -11,9 +11,7 @@ PATH_END = PATH_SEC + "/$" urlpatterns = patterns('', # Explorer: url(r'^$', 'explorer.views.file_list', name='file_list'), - url(r'^file/upload', 'explorer.views.file_upload', name='file_upload'), - - url(r'^renderer$', 'explorer.views.renderer_test'), + url(r'^file/upload', 'explorer.views.file_upload', name='file_upload'), url(r'^management/pull-requests$', 'explorer.views.pull_requests'), @@ -50,11 +48,15 @@ else: ) # Static files -if settings.DEBUG and not hasattr(settings, 'DONT_SERVE_STATIC'): +if settings.DEBUG: urlpatterns += patterns('', - url(r'^%s(?P.+)$' % settings.MEDIA_URL[1:], 'django.views.static.serve', - {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}), - url(r'^%s(?P.+)$' % settings.STATIC_URL[1:], 'django.views.static.serve', - {'document_root': settings.STATIC_ROOT, 'show_indexes': True}), + url(r'^renderer$', 'explorer.views.renderer_test'), ) -# \ No newline at end of file + + if not hasattr(settings, 'DONT_SERVE_STATIC'): + urlpatterns += patterns('', + url(r'^%s(?P.+)$' % settings.MEDIA_URL[1:], 'django.views.static.serve', + {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}), + url(r'^%s(?P.+)$' % settings.STATIC_URL[1:], 'django.views.static.serve', + {'document_root': settings.STATIC_ROOT, 'show_indexes': True}), + ) \ No newline at end of file -- 2.20.1 From a9efc708bce6a636b314c58b3c9769488e8d5999 Mon Sep 17 00:00:00 2001 From: Lukasz Rekucki Date: Fri, 13 Nov 2009 18:54:57 +0100 Subject: [PATCH 14/16] Przywrocenie kodu, ktory zjadla samba :(( --- platforma/static/js/views/html.js | 60 ++++++++++++++++++++++++++++--- 1 file changed, 55 insertions(+), 5 deletions(-) diff --git a/platforma/static/js/views/html.js b/platforma/static/js/views/html.js index d2677d42..2dba1c12 100755 --- a/platforma/static/js/views/html.js +++ b/platforma/static/js/views/html.js @@ -102,16 +102,21 @@ var HTMLView = View.extend({ if(this.$addThemeButton) this.$addThemeButton.unbind(); + if(this.$addAnnotation) + this.$addAnnotation.unbind(); + this._super(); this.$printLink = $('.htmlview-toolbar .html-print-link', this.element); this.$docbase = $('.htmlview', this.element); - this.$addThemeButton = $('.htmlview-toolbar .html-add-motive', this.element); + this.$addThemeButton = $('.htmlview-toolbar .html-add-theme', this.element); + this.$addAnnotation = $('.htmlview-toolbar .html-add-annotation', this.element); // this.$debugButton = $('.htmlview-toolbar .html-serialize', this.element); this.updatePrintLink(); this.$docbase.bind('click', this.itemClicked.bind(this)); this.$addThemeButton.click( this.addTheme.bind(this) ); + this.$addAnnotation.click( this.addAnnotation.bind(this) ); // this.$debugButton.click( this.serialized.bind(this) ); }, @@ -179,6 +184,9 @@ var HTMLView = View.extend({ try { var editable = this.editableFor($e); + if(!editable) + return false; + if($e.hasClass('delete-button')) this.deleteElement(editable); @@ -273,7 +281,7 @@ var HTMLView = View.extend({ } if(!$e.attr('x-editable')) - throw Exception("Click outside of editable") + return null; console.log("Trigger", $button, " yields editable: ", $e); return $e; @@ -376,6 +384,10 @@ var HTMLView = View.extend({ } }, + // + // Special stuff for themes + // + // Theme related stuff verifyThemeInsertPoint: function(node) { @@ -418,9 +430,7 @@ var HTMLView = View.extend({ this.themeEditor.show(_editThemeFinish); }, - // - // Special stuff for themes - // + addTheme: function() { var selection = window.getSelection(); @@ -526,6 +536,46 @@ var HTMLView = View.extend({ range.setEndBefore(e); selection.addRange(range); } + }, + + addAnnotation: function() + { + var selection = window.getSelection(); + var n = selection.rangeCount; + + console.log("Range count:", n); + if(n == 0) { + window.alert("Nie zaznaczono żadnego obszaru"); + return false; + } + + // for now allow only 1 range + if(n > 1) { + window.alert("Zaznacz jeden obszar"); + return false; + } + + // remember the selected range + var range = selection.getRangeAt(0); + + if(! this.verifyThemeInsertPoint(range.endContainer) ) { + window.alert("Nie można wstawić w to miejsce przypisu."); + return false; + } + + var text = range.toString(); + var tag = $(''); + range.collapse(false); + range.insertNode(tag[0]); + var errors = this.model.updateWithWLML(tag, ''+text+" "); + + if(errors) { + tag.remove(); + messageCenter.addMessage('error', null, 'Błąd przy dodawaniu przypisu:' + errors); + return false; + } + + return true; } }); -- 2.20.1 From 563c8930b3b5643399dc409f6ed139f7289b6ea7 Mon Sep 17 00:00:00 2001 From: zuber Date: Tue, 17 Nov 2009 15:27:38 +0100 Subject: [PATCH 15/16] Poprawienie nazwy zmiennej "availble_themes" -> "available_themes". --- apps/explorer/views.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/explorer/views.py b/apps/explorer/views.py index fde7aeb9..7f866a35 100755 --- a/apps/explorer/views.py +++ b/apps/explorer/views.py @@ -40,7 +40,7 @@ def display_editor(request, path): 'fileid': path, 'euser': user, 'gallery_from': gallery_form, - 'availble_themes': ({'first_letter': t.name[0].upper(), 'name': t.name} for t in Theme.objects.order_by('name')), + 'available_themes': ({'first_letter': t.name[0].upper(), 'name': t.name} for t in Theme.objects.order_by('name')), }, context_instance=RequestContext(request)) # -- 2.20.1 From 325dea54f6083bbf3ffb2bde983922d799a46f68 Mon Sep 17 00:00:00 2001 From: zuber Date: Tue, 17 Nov 2009 15:44:06 +0100 Subject: [PATCH 16/16] Poprawienie "gallery_from" -> "gallery_form". --- apps/explorer/views.py | 2 +- platforma/templates/explorer/editor.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/explorer/views.py b/apps/explorer/views.py index 7f866a35..679d0065 100755 --- a/apps/explorer/views.py +++ b/apps/explorer/views.py @@ -39,7 +39,7 @@ def display_editor(request, path): dictionary = { 'fileid': path, 'euser': user, - 'gallery_from': gallery_form, + 'gallery_form': gallery_form, 'available_themes': ({'first_letter': t.name[0].upper(), 'name': t.name} for t in Theme.objects.order_by('name')), }, context_instance=RequestContext(request)) diff --git a/platforma/templates/explorer/editor.html b/platforma/templates/explorer/editor.html index 7eca642d..a2ec61f4 100755 --- a/platforma/templates/explorer/editor.html +++ b/platforma/templates/explorer/editor.html @@ -211,7 +211,7 @@ Themes in the database - {% regroup availble_themes by first_letter as grouped_themes %} + {% regroup available_themes by first_letter as grouped_themes %} {% for letter in grouped_themes %} {{ letter.grouper }} -- 2.20.1