+# wpml-name: 2aa138cc82b3b4c0b6440272bb5d6315
+msgid "Select Slider:"
+msgstr "×××רת ×צ×ת:"
+
+#
+#
+#
+# wpml-name: 51ec9bf4aaeab1b25bb57f9f8d4de557
+msgid "Title:"
+msgstr "××תרת:"
+
+# 'Meta Slider', // Name
+# array( 'description' => __( 'Meta Slider', 'metaslider' ) ) // Args
+# );
+# wpml-name: 94a7bae84ef2816494be4af66c577bfc
+msgid "Meta Slider"
+msgstr "×צ×ת שק×פ××ת"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-hr_HR.mo b/wp-content/plugins/ml-slider/languages/metaslider-hr_HR.mo
new file mode 100644
index 0000000..e285474
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-hr_HR.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-hr_HR.po b/wp-content/plugins/ml-slider/languages/metaslider-hr_HR.po
new file mode 100644
index 0000000..c948e8a
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-hr_HR.po
@@ -0,0 +1,603 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider\n"
+"POT-Creation-Date: 2013-12-16 17:31-0000\n"
+"PO-Revision-Date: 2014-03-03 20:37+0100\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.6.4\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n"
+"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n"
+"Language: hr_HR\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:102
+msgid "Go Pro"
+msgstr "Postani Pro"
+
+#: ../ml-slider.php:156
+msgid "Image"
+msgstr "Slika"
+
+#: ../ml-slider.php:157
+msgid "Add to slider"
+msgstr "Dodaj u Slider"
+
+#: ../ml-slider.php:177
+msgid "Post Feed"
+msgstr "Objave postova"
+
+#: ../ml-slider.php:178
+msgid "Vimeo"
+msgstr "Vimeo"
+
+#: ../ml-slider.php:179
+msgid "YouTube"
+msgstr "Youtube"
+
+#: ../ml-slider.php:180
+msgid "Layer Slide"
+msgstr "Layer Slide"
+
+#: ../ml-slider.php:235 ../inc/slide/metaslide.image.class.php:103
+msgid "URL"
+msgstr "URL"
+
+#: ../ml-slider.php:236 ../inc/slide/metaslide.image.class.php:101
+msgid "Caption"
+msgstr "Natpis"
+
+#: ../ml-slider.php:237 ../inc/slide/metaslide.image.class.php:102
+msgid "New Window"
+msgstr "Novi prozor"
+
+#: ../ml-slider.php:238
+msgid "Are you sure?"
+msgstr "Jeste li sigurni?"
+
+#: ../ml-slider.php:242
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr ""
+"Oprez: Ova postavka je samo za napredne korisnike. Ako niste sigurni, "
+"ostavite je oznaÄeno."
+
+#: ../ml-slider.php:278
+msgid "Upgrade to Pro $19"
+msgstr "Nadogradite na Pro $19"
+
+#: ../ml-slider.php:294
+msgid "Documentation"
+msgstr "Dokumentacija"
+
+#: ../ml-slider.php:430
+msgid "New Slider"
+msgstr "Novi Slider"
+
+#: ../ml-slider.php:692
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr ""
+"Napravili ste novi slideshow. Kliknite \"Dodaj Slide\" da biste poÄeli!"
+
+#: ../ml-slider.php:709
+msgid "or"
+msgstr "ili"
+
+#: ../ml-slider.php:710
+msgid "Add New Slideshow"
+msgstr "Dodaj novi Slideshow"
+
+#: ../ml-slider.php:726
+msgid "Create your first slideshow"
+msgstr "Napravite Vaš prvi slideshow"
+
+#: ../ml-slider.php:744
+msgid "Settings"
+msgstr "Postavke"
+
+#: ../ml-slider.php:745
+msgid "Save"
+msgstr "Spremi"
+
+#: ../ml-slider.php:746
+msgid "Save & Preview"
+msgstr "Spremi i pregledaj"
+
+#: ../ml-slider.php:759
+msgid "Flex Slider"
+msgstr "Flex Slider"
+
+#: ../ml-slider.php:760
+msgid "Responsive"
+msgstr "Responsive"
+
+#: ../ml-slider.php:761
+msgid "Nivo Slider"
+msgstr "Nivo Slider"
+
+#: ../ml-slider.php:762
+msgid "Coin Slider"
+msgstr "Coin Slider"
+
+#: ../ml-slider.php:773 ../ml-slider.php:995
+msgid "Width"
+msgstr "Å irina"
+
+#: ../ml-slider.php:775
+msgid "Slideshow width"
+msgstr "Å irina Slideshowa"
+
+#: ../ml-slider.php:776 ../ml-slider.php:789
+msgid "px"
+msgstr "px"
+
+#: ../ml-slider.php:786 ../ml-slider.php:1008
+msgid "Height"
+msgstr "Visina"
+
+#: ../ml-slider.php:788
+msgid "Slideshow height"
+msgstr "Visina Slideshowa"
+
+#: ../ml-slider.php:795
+msgid "Effect"
+msgstr "Efekt"
+
+#: ../ml-slider.php:797
+msgid "Slide transition effect"
+msgstr "Efekt izmjene slide-a"
+
+#: ../ml-slider.php:799 ../ml-slider.php:927
+msgid "Random"
+msgstr "NaizmjeniÄno"
+
+#: ../ml-slider.php:800
+msgid "Swirl"
+msgstr "Swirl"
+
+#: ../ml-slider.php:801
+msgid "Rain"
+msgstr "Kiša"
+
+#: ../ml-slider.php:802
+msgid "Straight"
+msgstr "Ravno"
+
+#: ../ml-slider.php:803
+msgid "Slide Down"
+msgstr "Slide dolje"
+
+#: ../ml-slider.php:804
+msgid "Slice Up"
+msgstr "Slice gore"
+
+#: ../ml-slider.php:805
+msgid "Slide Up Left"
+msgstr "Slide lijevo"
+
+#: ../ml-slider.php:806
+msgid "Slice Up Down"
+msgstr "Slice gore-dolje"
+
+#: ../ml-slider.php:807
+msgid "Slide Up Down Left"
+msgstr "Slice gore-dolje-lijevo"
+
+#: ../ml-slider.php:808
+msgid "Fold"
+msgstr "Savijeno"
+
+#: ../ml-slider.php:809
+msgid "Fade"
+msgstr "IzbljeljujuÄe"
+
+#: ../ml-slider.php:810
+msgid "Slide In Right"
+msgstr "Slide udesno"
+
+#: ../ml-slider.php:811
+msgid "Slide In Left"
+msgstr "Slide ulijevo"
+
+#: ../ml-slider.php:812
+msgid "Box Random"
+msgstr "Box nasumiÄno"
+
+#: ../ml-slider.php:813
+msgid "Box Rain"
+msgstr "Box kiša"
+
+#: ../ml-slider.php:814
+msgid "Box Rain Reverse"
+msgstr "Box kiša obrnuto"
+
+#: ../ml-slider.php:815
+msgid "Box Rain Grow Reverse"
+msgstr "Box Grow kiša obrnuto"
+
+#: ../ml-slider.php:816
+msgid "Slide"
+msgstr "Slide"
+
+#: ../ml-slider.php:823
+msgid "Theme"
+msgstr "Tema"
+
+#: ../ml-slider.php:825
+msgid "Slideshow theme"
+msgstr "Slideshow tema"
+
+#: ../ml-slider.php:827
+msgid "Default"
+msgstr "Zadano"
+
+#: ../ml-slider.php:828
+msgid "Dark (Nivo)"
+msgstr "Tamno (Nivo)"
+
+#: ../ml-slider.php:829
+msgid "Light (Nivo)"
+msgstr "Svijetlo (Nivo)"
+
+#: ../ml-slider.php:830
+msgid "Bar (Nivo)"
+msgstr "Bar (Nivo)"
+
+#: ../ml-slider.php:836
+msgid "Arrows"
+msgstr "Strijele"
+
+#: ../ml-slider.php:839
+msgid "Show the previous/next arrows"
+msgstr "Pokaži Natrag/Nazad strijele"
+
+#: ../ml-slider.php:844
+msgid "Navigation"
+msgstr "Navigacija"
+
+#: ../ml-slider.php:847
+msgid "Show the slide navigation bullets"
+msgstr "Pokaži navigacijske bullete slide-a"
+
+#: ../ml-slider.php:849
+msgid "Hidden"
+msgstr "Skriveno"
+
+#: ../ml-slider.php:850
+msgid "Dots"
+msgstr "ToÄke"
+
+#: ../ml-slider.php:851
+msgid "Thumbnails (Pro)"
+msgstr "Minijature (Pro)"
+
+#: ../ml-slider.php:862
+msgid "Title"
+msgstr "Naslov"
+
+#: ../ml-slider.php:863
+msgid "Slideshow title"
+msgstr "Naslova Slideshow-a"
+
+#: ../ml-slider.php:877
+msgid "Advanced Settings"
+msgstr "Napredne postavke"
+
+#: ../ml-slider.php:886
+msgid "Stretch"
+msgstr "Razvuci"
+
+#: ../ml-slider.php:888
+msgid "100% wide output"
+msgstr "100% širok izgled"
+
+#: ../ml-slider.php:890
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "Razvuci slideshow izgled da se uklapa sa glavnim container-om."
+
+#: ../ml-slider.php:895
+msgid "Center align"
+msgstr "Centriraj"
+
+#: ../ml-slider.php:898
+msgid "Center align the slideshow"
+msgstr "Centriraj poredak slideshow-a"
+
+#: ../ml-slider.php:903
+msgid "Auto play"
+msgstr "Auto play"
+
+#: ../ml-slider.php:906
+msgid "Transition between slides automatically"
+msgstr "Automatsko mijenjanje slide-ova"
+
+#: ../ml-slider.php:911
+msgid "Smart crop"
+msgstr "Smart crop"
+
+#: ../ml-slider.php:914
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+"Smart Crop omoguÄava vaÅ¡im slide-ovima da su prilagoÄeni istoj veliÄini za "
+"prikaz."
+
+#: ../ml-slider.php:919
+msgid "Carousel mode"
+msgstr "Opcija Vrtuljak"
+
+#: ../ml-slider.php:922
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr ""
+"Prikazuje viÅ¡e slide-ova odjednom. Slideshow izgled Äe biti 100% Å¡irok."
+
+#: ../ml-slider.php:930
+msgid "Randomise the order of the slides"
+msgstr "NasumiÄan poredak slide-ov"
+
+#: ../ml-slider.php:935
+msgid "Hover pause"
+msgstr "Pauziraj prijelazom miša"
+
+#: ../ml-slider.php:938
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr ""
+"Pauzirajte slideshow kada prelazite mišem preko slider-a, zatim nastavlja "
+"kada odmaknete miš."
+
+#: ../ml-slider.php:943
+msgid "Reverse"
+msgstr "Obrnuti smjer"
+
+#: ../ml-slider.php:946
+msgid "Reverse the animation direction"
+msgstr "Izmjenite smjer animacije."
+
+#: ../ml-slider.php:956
+msgid "Slide delay"
+msgstr "Odgoda slide-a"
+
+#: ../ml-slider.php:958
+msgid "How long to display each slide, in milliseconds"
+msgstr "Koliko dugo prikazivati slide, u milisekundama"
+
+#: ../ml-slider.php:959 ../ml-slider.php:972 ../ml-slider.php:985
+#: ../ml-slider.php:1061 ../ml-slider.php:1087
+msgid "ms"
+msgstr "ms"
+
+#: ../ml-slider.php:969
+msgid "Animation speed"
+msgstr "Brzina animacije"
+
+#: ../ml-slider.php:971
+msgid "Set the speed of animations, in milliseconds"
+msgstr "Podesite brzinu animacije, u milisekundama"
+
+#: ../ml-slider.php:982 ../ml-slider.php:984
+msgid "Number of slices"
+msgstr "Broj slice-eva"
+
+#: ../ml-slider.php:995 ../ml-slider.php:997 ../ml-slider.php:1008
+#: ../ml-slider.php:1010
+msgid "Number of squares"
+msgstr "Broj kocki"
+
+#: ../ml-slider.php:1016
+msgid "Slide direction"
+msgstr "Smjer slide-a"
+
+#: ../ml-slider.php:1018
+msgid "Select the sliding direction"
+msgstr "Odaberite smjer slide-a"
+
+#: ../ml-slider.php:1021
+msgid "Horizontal"
+msgstr "Horizontalno"
+
+#: ../ml-slider.php:1022
+msgid "Vertical"
+msgstr "Vertikalno"
+
+#: ../ml-slider.php:1028
+msgid "Easing"
+msgstr "Ublažavanje"
+
+#: ../ml-slider.php:1030
+msgid "Animation easing effect"
+msgstr "Ublažavanje efekta animacije"
+
+#: ../ml-slider.php:1037
+msgid "Previous text"
+msgstr "Prethodni tekst"
+
+#: ../ml-slider.php:1039
+msgid "Set the text for the 'previous' direction item"
+msgstr "Postavite tekst za \"Prethodni\" smjer stavke"
+
+#: ../ml-slider.php:1045
+msgid "Next text"
+msgstr "SljedeÄi tekst"
+
+#: ../ml-slider.php:1047
+msgid "Set the text for the 'next' direction item"
+msgstr "Postavite tekst za \"SljedeÄi\" smjer stavke"
+
+#: ../ml-slider.php:1058
+msgid "Square delay"
+msgstr "Odgoda kocke"
+
+#: ../ml-slider.php:1060
+msgid "Delay between squares in ms"
+msgstr "Odgoda izmeÄu kocki u ms"
+
+#: ../ml-slider.php:1071
+msgid "Opacity"
+msgstr "Vidljivost"
+
+#: ../ml-slider.php:1073
+msgid "Opacity of title and navigation"
+msgstr "Vidljivost naslova i navigacije"
+
+#: ../ml-slider.php:1084
+msgid "Caption speed"
+msgstr "Brzina natpisa"
+
+#: ../ml-slider.php:1086
+msgid "Set the fade in speed of the caption"
+msgstr "Postavite brzinu izbljeljivanja natpisa"
+
+#: ../ml-slider.php:1093
+msgid "Developer options"
+msgstr "Developer opcije"
+
+#: ../ml-slider.php:1098
+msgid "CSS classes"
+msgstr "CSS classes"
+
+#: ../ml-slider.php:1100
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr ""
+"Odredite bilokoji prilagoÄen CSS Class koji želite dodati u slider wrapper"
+
+#: ../ml-slider.php:1106
+msgid "Print CSS"
+msgstr "Print CSS"
+
+#: ../ml-slider.php:1109
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "OdznaÄite ovo ako biste željeli koristiti vlastiti CSS"
+
+#: ../ml-slider.php:1114
+msgid "Print JS"
+msgstr "Print JS"
+
+#: ../ml-slider.php:1117
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "OdznaÄite ovo ako biste željeli koristiti vlastiti Javascript"
+
+#: ../ml-slider.php:1122
+msgid "No conflict mode"
+msgstr "No conflict mode"
+
+#: ../ml-slider.php:1125
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr "Odgodite dodavanja flexslider class-a u slideshow"
+
+#: ../ml-slider.php:1139
+msgid "Usage"
+msgstr "Korištenje"
+
+#: ../ml-slider.php:1142
+msgid "Shortcode"
+msgstr "Shortcode"
+
+#: ../ml-slider.php:1143
+msgid "Template Include"
+msgstr "Template Include"
+
+#: ../ml-slider.php:1147
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+"Kopirajte & zalijepite shortcode direktno na bilokoju Wordpress stranicu ili "
+"post."
+
+#: ../ml-slider.php:1150
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+"Kopirajtw & zalijepite ovaj kod bilogdje u template file da biste koristili "
+"slideshow unutar vaše teme."
+
+#: ../ml-slider.php:1179
+msgid "Delete Slider"
+msgstr "Obriši slider"
+
+#: ../ml-slider.php:1190
+msgid "Slides"
+msgstr "Slide-ovi"
+
+#: ../ml-slider.php:1193 ../ml-slider.php:1194
+msgid "Add Slide"
+msgstr "Dodaj Slide"
+
+#: ../ml-slider.php:1224
+msgid "Select slideshow to insert into post"
+msgstr "Odaberi slideshow za umetanje u post"
+
+#: ../ml-slider.php:1227
+msgid "Add slider"
+msgstr "Dodaj slider"
+
+#: ../ml-slider.php:1258
+msgid "Insert Meta Slider"
+msgstr "Unesi Meta Slider"
+
+#: ../ml-slider.php:1260
+msgid "Choose slideshow"
+msgstr "Odaberi slideshow"
+
+#: ../ml-slider.php:1267 ../inc/metaslider.widget.class.php:124
+msgid "No slideshows found"
+msgstr "Slideshowi nisu pronaÄeni"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr "Meta Slider"
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Title:"
+msgstr "Naslov:"
+
+#: ../inc/metaslider.widget.class.php:114
+msgid "Select Slider:"
+msgstr "Odaberi Slider:"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr "Provjera sigurnosti neuspjela. Osvježite stranicu i probajte ponovo."
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr "Neuspjelo dodavanje slide-a. Slide je veÄ u slideshow-u."
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr "Neuspjelo dodavanje slide-a. Slide nije \"image\"."
+
+#: ../inc/slide/metaslide.image.class.php:110
+msgid "Image Slide"
+msgstr "Slide Slika"
+
+#: ../inc/slide/metaslide.image.class.php:115
+msgid "General"
+msgstr "Generalno"
+
+#: ../inc/slide/metaslide.image.class.php:116
+msgid "SEO"
+msgstr "SEO"
+
+#: ../inc/slide/metaslide.image.class.php:121
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr "Upozorenje: Slika ne postoji. Molimo Vas ponovo upload-ajte sliku."
+
+#: ../inc/slide/metaslide.image.class.php:130
+msgid "Image Title Text"
+msgstr "Naslov slike"
+
+#: ../inc/slide/metaslide.image.class.php:132
+msgid "Image Alt Text"
+msgstr "Alt Tekst Slike"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-hu_HU.mo b/wp-content/plugins/ml-slider/languages/metaslider-hu_HU.mo
new file mode 100644
index 0000000..15795d1
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-hu_HU.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-hu_HU.po b/wp-content/plugins/ml-slider/languages/metaslider-hu_HU.po
new file mode 100644
index 0000000..0f88871
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-hu_HU.po
@@ -0,0 +1,600 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider\n"
+"POT-Creation-Date: 2013-12-16 17:31-0000\n"
+"PO-Revision-Date: 2014-06-26 08:29+0100\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.7\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:102
+msgid "Go Pro"
+msgstr "Pro verzió"
+
+#: ../ml-slider.php:156
+msgid "Image"
+msgstr "Kép"
+
+#: ../ml-slider.php:157
+msgid "Add to slider"
+msgstr "Hozzáadás a slidehoz"
+
+#: ../ml-slider.php:177
+msgid "Post Feed"
+msgstr "Bejegyzés feed"
+
+#: ../ml-slider.php:178
+msgid "Vimeo"
+msgstr "Vimeo"
+
+#: ../ml-slider.php:179
+msgid "YouTube"
+msgstr "YouTube"
+
+#: ../ml-slider.php:180
+msgid "Layer Slide"
+msgstr "Réteg slide"
+
+#: ../ml-slider.php:235 ../inc/slide/metaslide.image.class.php:103
+msgid "URL"
+msgstr "URL"
+
+#: ../ml-slider.php:236 ../inc/slide/metaslide.image.class.php:101
+msgid "Caption"
+msgstr "Felirat"
+
+#: ../ml-slider.php:237 ../inc/slide/metaslide.image.class.php:102
+msgid "New Window"
+msgstr "Ãj ablak"
+
+#: ../ml-slider.php:238
+msgid "Are you sure?"
+msgstr "Biztos vagy benne?"
+
+#: ../ml-slider.php:242
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr ""
+"Figyelem: ez a beállÃtás csak fejlesztÅk részére ajánlott. Amennyiben nem "
+"vagy biztos benne, hagyd Ãgy."
+
+#: ../ml-slider.php:278
+msgid "Upgrade to Pro $19"
+msgstr "FrissÃtés Pro verzióra 19$-ért"
+
+#: ../ml-slider.php:294
+msgid "Documentation"
+msgstr "Dokumentáció"
+
+#: ../ml-slider.php:430
+msgid "New Slider"
+msgstr "Ãj slide"
+
+#: ../ml-slider.php:692
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr ""
+"Az új slideshow elkészült. Kattins a 'Slide hozzáadása' gombra a kezdéshez."
+
+#: ../ml-slider.php:709
+msgid "or"
+msgstr "vagy"
+
+#: ../ml-slider.php:710
+msgid "Add New Slideshow"
+msgstr "Ãj slideshow létrehozása"
+
+#: ../ml-slider.php:726
+msgid "Create your first slideshow"
+msgstr "KészÃtsd el az elsÅ slideshowdat"
+
+#: ../ml-slider.php:744
+msgid "Settings"
+msgstr "BeállÃtások"
+
+#: ../ml-slider.php:745
+msgid "Save"
+msgstr "Ment"
+
+#: ../ml-slider.php:746
+msgid "Save & Preview"
+msgstr "Ment & ElÅnézet"
+
+#: ../ml-slider.php:759
+msgid "Flex Slider"
+msgstr "Flex Slider"
+
+#: ../ml-slider.php:760
+msgid "Responsive"
+msgstr "ReszponzÃv"
+
+#: ../ml-slider.php:761
+msgid "Nivo Slider"
+msgstr "Nivo Slider"
+
+#: ../ml-slider.php:762
+msgid "Coin Slider"
+msgstr "Coin Slider"
+
+#: ../ml-slider.php:773 ../ml-slider.php:995
+msgid "Width"
+msgstr "Szélesség"
+
+#: ../ml-slider.php:775
+msgid "Slideshow width"
+msgstr "Slideshow szélessége"
+
+#: ../ml-slider.php:776 ../ml-slider.php:789
+msgid "px"
+msgstr "px"
+
+#: ../ml-slider.php:786 ../ml-slider.php:1008
+msgid "Height"
+msgstr "Magasság"
+
+#: ../ml-slider.php:788
+msgid "Slideshow height"
+msgstr "Slideshow magassága"
+
+#: ../ml-slider.php:795
+msgid "Effect"
+msgstr "Effektek"
+
+#: ../ml-slider.php:797
+msgid "Slide transition effect"
+msgstr "Slide átmenet effekt"
+
+#: ../ml-slider.php:799 ../ml-slider.php:927
+msgid "Random"
+msgstr "Váltakozó"
+
+#: ../ml-slider.php:800
+msgid "Swirl"
+msgstr "Forgás"
+
+#: ../ml-slider.php:801
+msgid "Rain"
+msgstr "EsÅ"
+
+#: ../ml-slider.php:802
+msgid "Straight"
+msgstr "Egyenes"
+
+#: ../ml-slider.php:803
+msgid "Slide Down"
+msgstr "Slide le"
+
+#: ../ml-slider.php:804
+msgid "Slice Up"
+msgstr "Slide fel"
+
+#: ../ml-slider.php:805
+msgid "Slide Up Left"
+msgstr "Slide fel balra"
+
+#: ../ml-slider.php:806
+msgid "Slice Up Down"
+msgstr "Slide fel le"
+
+#: ../ml-slider.php:807
+msgid "Slide Up Down Left"
+msgstr "Slide fel le balra"
+
+#: ../ml-slider.php:808
+msgid "Fold"
+msgstr "Fold"
+
+#: ../ml-slider.php:809
+msgid "Fade"
+msgstr "Halványul"
+
+#: ../ml-slider.php:810
+msgid "Slide In Right"
+msgstr "Slide be jobbról"
+
+#: ../ml-slider.php:811
+msgid "Slide In Left"
+msgstr "Slide be balról"
+
+#: ../ml-slider.php:812
+msgid "Box Random"
+msgstr "Váltakozó doboz"
+
+#: ../ml-slider.php:813
+msgid "Box Rain"
+msgstr "Doboz esÅ"
+
+#: ../ml-slider.php:814
+msgid "Box Rain Reverse"
+msgstr "Doboz esŠvisszafelé"
+
+#: ../ml-slider.php:815
+msgid "Box Rain Grow Reverse"
+msgstr "Doboz esÅ visszafelé növekvÅ"
+
+#: ../ml-slider.php:816
+msgid "Slide"
+msgstr "Slide"
+
+#: ../ml-slider.php:823
+msgid "Theme"
+msgstr "Sablon"
+
+#: ../ml-slider.php:825
+msgid "Slideshow theme"
+msgstr "Slideshow sablon"
+
+#: ../ml-slider.php:827
+msgid "Default"
+msgstr "Alapértelmezett"
+
+#: ../ml-slider.php:828
+msgid "Dark (Nivo)"
+msgstr "Sötét (Nivo)"
+
+#: ../ml-slider.php:829
+msgid "Light (Nivo)"
+msgstr "Világos (Nivo)"
+
+#: ../ml-slider.php:830
+msgid "Bar (Nivo)"
+msgstr "Sáv (Nivo)"
+
+#: ../ml-slider.php:836
+msgid "Arrows"
+msgstr "Nyilak"
+
+#: ../ml-slider.php:839
+msgid "Show the previous/next arrows"
+msgstr "Lapozó nyilak megjelenÃtése"
+
+#: ../ml-slider.php:844
+msgid "Navigation"
+msgstr "Vezérlés"
+
+#: ../ml-slider.php:847
+msgid "Show the slide navigation bullets"
+msgstr "Mutassa a slide lapozó pontjait"
+
+#: ../ml-slider.php:849
+msgid "Hidden"
+msgstr "Rejtett"
+
+#: ../ml-slider.php:850
+msgid "Dots"
+msgstr "Pontok"
+
+#: ../ml-slider.php:851
+msgid "Thumbnails (Pro)"
+msgstr "Miniatűrök (Pro)"
+
+#: ../ml-slider.php:862
+msgid "Title"
+msgstr "CÃm"
+
+#: ../ml-slider.php:863
+msgid "Slideshow title"
+msgstr "Slideshow cÃme"
+
+#: ../ml-slider.php:877
+msgid "Advanced Settings"
+msgstr "Haladó beállÃtások"
+
+#: ../ml-slider.php:886
+msgid "Stretch"
+msgstr "Széthúzás"
+
+#: ../ml-slider.php:888
+msgid "100% wide output"
+msgstr "100% széles kép"
+
+#: ../ml-slider.php:890
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "Széthúzza a slideshow kimenetét a megadott méretre"
+
+#: ../ml-slider.php:895
+msgid "Center align"
+msgstr "Középre igazÃtás"
+
+#: ../ml-slider.php:898
+msgid "Center align the slideshow"
+msgstr "Középre igazÃtja a slideshowt"
+
+#: ../ml-slider.php:903
+msgid "Auto play"
+msgstr "Auto lejátszás"
+
+#: ../ml-slider.php:906
+msgid "Transition between slides automatically"
+msgstr "A slideok automatikus vetÃtése"
+
+#: ../ml-slider.php:911
+msgid "Smart crop"
+msgstr "Intelligens vágás"
+
+#: ../ml-slider.php:914
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+"Az intelligens vágás a reszponzÃv megjelenés során olyan méretre vágja a "
+"képeket, hogy az kövessŠa slideshow méretét"
+
+#: ../ml-slider.php:919
+msgid "Carousel mode"
+msgstr "Körkép"
+
+#: ../ml-slider.php:922
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr "Az összes slideot egy képre rakja"
+
+#: ../ml-slider.php:930
+msgid "Randomise the order of the slides"
+msgstr "A slideok sorrenjének véletlenszerűsége"
+
+#: ../ml-slider.php:935
+msgid "Hover pause"
+msgstr "Szünet"
+
+#: ../ml-slider.php:938
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr ""
+"MegállÃtja a slideshowt, amikor egy slide fölé visszük a kruzort, majd "
+"folytatja, amint elvittük onnan azt"
+
+#: ../ml-slider.php:943
+msgid "Reverse"
+msgstr "FordÃtás"
+
+#: ../ml-slider.php:946
+msgid "Reverse the animation direction"
+msgstr "MegfordÃtja az animáció irányát"
+
+#: ../ml-slider.php:956
+msgid "Slide delay"
+msgstr "Slide késleltetés"
+
+#: ../ml-slider.php:958
+msgid "How long to display each slide, in milliseconds"
+msgstr "Az egyes slideok megjelenésének idÅtartama milliszekundumban"
+
+#: ../ml-slider.php:959 ../ml-slider.php:972 ../ml-slider.php:985
+#: ../ml-slider.php:1061 ../ml-slider.php:1087
+msgid "ms"
+msgstr "ms"
+
+#: ../ml-slider.php:969
+msgid "Animation speed"
+msgstr "Animáció sebessége"
+
+#: ../ml-slider.php:971
+msgid "Set the speed of animations, in milliseconds"
+msgstr "Az animációk sebességének beállÃtása"
+
+#: ../ml-slider.php:982 ../ml-slider.php:984
+msgid "Number of slices"
+msgstr "Szeletek száma"
+
+#: ../ml-slider.php:995 ../ml-slider.php:997 ../ml-slider.php:1008
+#: ../ml-slider.php:1010
+msgid "Number of squares"
+msgstr "Négyszögek száma"
+
+#: ../ml-slider.php:1016
+msgid "Slide direction"
+msgstr "Slide iránya"
+
+#: ../ml-slider.php:1018
+msgid "Select the sliding direction"
+msgstr "Válaszd ki a slide irányát"
+
+#: ../ml-slider.php:1021
+msgid "Horizontal"
+msgstr "VÃzszintes"
+
+#: ../ml-slider.php:1022
+msgid "Vertical"
+msgstr "FüggÅleges"
+
+#: ../ml-slider.php:1028
+msgid "Easing"
+msgstr "Viselkedés"
+
+#: ../ml-slider.php:1030
+msgid "Animation easing effect"
+msgstr "Animáció easing effektje"
+
+#: ../ml-slider.php:1037
+msgid "Previous text"
+msgstr "ElÅzÅ szöveg"
+
+#: ../ml-slider.php:1039
+msgid "Set the text for the 'previous' direction item"
+msgstr "Ez a szöveg jelenik meg akkor, ha az 'ElÅzÅ' irányba akarunk lapozni"
+
+#: ../ml-slider.php:1045
+msgid "Next text"
+msgstr "KövetkezŠszöveg"
+
+#: ../ml-slider.php:1047
+msgid "Set the text for the 'next' direction item"
+msgstr ""
+"Ez a szöveg jelenik meg akkor, ha a 'KövetkezÅ' irányba akarunk lapozni"
+
+#: ../ml-slider.php:1058
+msgid "Square delay"
+msgstr "Négyzetek késletetése"
+
+#: ../ml-slider.php:1060
+msgid "Delay between squares in ms"
+msgstr "A négyzetek közötti késleltetés ms-ben"
+
+#: ../ml-slider.php:1071
+msgid "Opacity"
+msgstr "ÃttetszÅség"
+
+#: ../ml-slider.php:1073
+msgid "Opacity of title and navigation"
+msgstr "A cÃm és a navigációk áttetszÅsége"
+
+#: ../ml-slider.php:1084
+msgid "Caption speed"
+msgstr "Felirat sebessége"
+
+#: ../ml-slider.php:1086
+msgid "Set the fade in speed of the caption"
+msgstr "A felirat elÅtűnésének sebessége"
+
+#: ../ml-slider.php:1093
+msgid "Developer options"
+msgstr "FejlesztÅi beállÃtások"
+
+#: ../ml-slider.php:1098
+msgid "CSS classes"
+msgstr "CSS osztályok"
+
+#: ../ml-slider.php:1100
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr "Egyedi CSS osztályok megadása"
+
+#: ../ml-slider.php:1106
+msgid "Print CSS"
+msgstr "Nyomtatási CSS"
+
+#: ../ml-slider.php:1109
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "Szedd ki a jelölÅt, ha szeretnéd a saját CSS osztályodat használni"
+
+#: ../ml-slider.php:1114
+msgid "Print JS"
+msgstr "Nyomtatási JS"
+
+#: ../ml-slider.php:1117
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "Szedd ki a jelölÅt, ha szeretnéd a saját Javascripted használni"
+
+#: ../ml-slider.php:1122
+msgid "No conflict mode"
+msgstr "Nincs ütközési mód"
+
+#: ../ml-slider.php:1125
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr "Késlelteti a flexsider osztály hozzáadását a slideshowhoz"
+
+#: ../ml-slider.php:1139
+msgid "Usage"
+msgstr "Használat"
+
+#: ../ml-slider.php:1142
+msgid "Shortcode"
+msgstr "Shortcode"
+
+#: ../ml-slider.php:1143
+msgid "Template Include"
+msgstr "Sablonba foglalás"
+
+#: ../ml-slider.php:1147
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+"Shortcode másolása és beillesztése közvetlenül bármilyen Wordpress oldalba "
+"vagy bejegyzésbe"
+
+#: ../ml-slider.php:1150
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+"Kód másolása és beillesztése a sablon fájlba, hogy beilleszd a slideshowt az "
+"oldal sablonjába."
+
+#: ../ml-slider.php:1179
+msgid "Delete Slider"
+msgstr "Slider törlése"
+
+#: ../ml-slider.php:1190
+msgid "Slides"
+msgstr "Slideok"
+
+#: ../ml-slider.php:1193 ../ml-slider.php:1194
+msgid "Add Slide"
+msgstr "Slide hozzáadása"
+
+#: ../ml-slider.php:1224
+msgid "Select slideshow to insert into post"
+msgstr "Slideshow kiválasztása egy bejegyzéshez"
+
+#: ../ml-slider.php:1227
+msgid "Add slider"
+msgstr "Slider hozzáadása"
+
+#: ../ml-slider.php:1258
+msgid "Insert Meta Slider"
+msgstr "Meta Slider beillesztése"
+
+#: ../ml-slider.php:1260
+msgid "Choose slideshow"
+msgstr "Válassz slideshowt"
+
+#: ../ml-slider.php:1267 ../inc/metaslider.widget.class.php:124
+msgid "No slideshows found"
+msgstr "Nincs találat"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr "Meta Slider"
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Title:"
+msgstr "CÃm:"
+
+#: ../inc/metaslider.widget.class.php:114
+msgid "Select Slider:"
+msgstr "Slider kiválasztása:"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr "Biztonsági ellenÅrzés hiba. FrissÃtsd az oldalt és próbáld meg újra."
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr ""
+"Nem lehet beilleszteni a slideot. Ez a slide már szerepel a slideshowban."
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr "Nem lehet beilleszteni a slideot. A slide nem kép tÃpusú fájl."
+
+#: ../inc/slide/metaslide.image.class.php:110
+msgid "Image Slide"
+msgstr "Kép slide"
+
+#: ../inc/slide/metaslide.image.class.php:115
+msgid "General"
+msgstr "Ãltalános"
+
+#: ../inc/slide/metaslide.image.class.php:116
+msgid "SEO"
+msgstr "SEO"
+
+#: ../inc/slide/metaslide.image.class.php:121
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr "Figyelem: a kép nem létezik. Kérem töltse fel újra a képet."
+
+#: ../inc/slide/metaslide.image.class.php:130
+msgid "Image Title Text"
+msgstr "Kép cÃme"
+
+#: ../inc/slide/metaslide.image.class.php:132
+msgid "Image Alt Text"
+msgstr "Kép alt szöveg"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-ja.mo b/wp-content/plugins/ml-slider/languages/metaslider-ja.mo
new file mode 100644
index 0000000..c806b4e
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-ja.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-ja.po b/wp-content/plugins/ml-slider/languages/metaslider-ja.po
new file mode 100644
index 0000000..fcd44f5
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-ja.po
@@ -0,0 +1,633 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider\n"
+"POT-Creation-Date: 2014-05-17 16:30+0900\n"
+"PO-Revision-Date: 2014-05-17 16:31+0900\n"
+"Last-Translator: Naoko Takano \n"
+"Language-Team: \n"
+"Language: ja\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.6.5\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Generator: Poedit 1.6.5\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Generator: Poedit 1.6.5\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Generator: Poedit 1.6.5\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=1; plural=0;\n"
+"X-Generator: Poedit 1.6.5\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Generator: Poedit 1.6.5\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Generator: Poedit 1.6.5\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr "Meta Slider"
+
+#: ../inc/metaslider.widget.class.php:108
+msgid "Title:"
+msgstr "ã¿ã¤ãã«:"
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Select Slider:"
+msgstr "ã¹ã©ã¤ãã¼ã鏿:"
+
+#: ../inc/metaslider.widget.class.php:121 ../ml-slider.php:1508
+msgid "No slideshows found"
+msgstr "ã¹ã©ã¤ãã·ã§ã¼ãããã¾ãã"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr ""
+"ã»ãã¥ãªãã£ãã§ãã¯ã«å¤±æãã¾ããããã¼ã¸ãæ´æ°ããããä¸åº¦ã試ããã ããã"
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr ""
+"ã¹ã©ã¤ãã®è¿½å ã«å¤±æãã¾ãããã¹ã©ã¤ãã¯æ¢ã«ã¹ã©ã¤ãã·ã§ã¼ã«è¿½å ããã¦ãã¾"
+"ãã"
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr "ã¹ã©ã¤ãã追å ã§ãã¾ããã§ãããç»åã¿ã¤ãã®ã¹ã©ã¤ãã§ã¯ããã¾ããã"
+
+#: ../inc/slide/metaslide.image.class.php:101 ../ml-slider.php:387
+msgid "Caption"
+msgstr "ãã£ãã·ã§ã³"
+
+#: ../inc/slide/metaslide.image.class.php:102 ../ml-slider.php:388
+msgid "New Window"
+msgstr "æ°è¦ã¦ã¤ã³ãã¦"
+
+#: ../inc/slide/metaslide.image.class.php:103 ../ml-slider.php:386
+msgid "URL"
+msgstr "URL"
+
+#: ../inc/slide/metaslide.image.class.php:104
+msgid "Image Slide"
+msgstr "ç»åã¹ã©ã¤ã"
+
+#: ../inc/slide/metaslide.image.class.php:118
+msgid "General"
+msgstr "ä¸è¬"
+
+#: ../inc/slide/metaslide.image.class.php:119
+msgid "SEO"
+msgstr "SEO"
+
+#: ../inc/slide/metaslide.image.class.php:124
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr "注: ç»åãã¼ã¿ãåå¨ãã¾ãããããä¸åº¦ã¢ãããã¼ããã¦ãã ããã"
+
+#: ../inc/slide/metaslide.image.class.php:133
+msgid "Image Title Text"
+msgstr "ç»åã¿ã¤ãã«ããã¹ã"
+
+#: ../inc/slide/metaslide.image.class.php:135
+msgid "Image Alt Text"
+msgstr "ç»åã®ä»£æ¿æåå"
+
+#: ../ml-slider.php:333
+msgid "Documentation"
+msgstr "ããã¥ã¡ã³ãã¼ã·ã§ã³"
+
+#: ../ml-slider.php:389
+msgid "Are you sure?"
+msgstr "ããããã§ãã ?"
+
+#: ../ml-slider.php:394
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr ""
+"注æ: ãã®è¨å®ã¯ä¸ç´ã®éçºè
ã®ã¿ä½¿ç¨ã§ãã¾ãããã確信ãæã¦ãªããã°ãã§ãã¯"
+"ããã¾ã¾ã«ãã¦ãã ããã"
+
+#: ../ml-slider.php:443
+msgid "Image"
+msgstr "ç»å"
+
+#: ../ml-slider.php:444
+msgid "Add to slider"
+msgstr "ã¹ã©ã¤ãã¼ã«è¿½å "
+
+#: ../ml-slider.php:470
+msgid "Post Feed"
+msgstr "ãã£ã¼ããæç¨¿ãã"
+
+#: ../ml-slider.php:471
+msgid "Vimeo"
+msgstr "Vimeo"
+
+#: ../ml-slider.php:472
+msgid "YouTube"
+msgstr "YouTube"
+
+#: ../ml-slider.php:473
+msgid "Layer Slide"
+msgstr "ã¬ã¤ã¤ã¼ã¹ã©ã¤ã"
+
+#: ../ml-slider.php:597
+msgid "New Slider"
+msgstr "æ°è¦ã¹ã©ã¤ãã¼"
+
+#: ../ml-slider.php:917
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr ""
+"æ°ããã¹ã©ã¤ãã·ã§ã¼ã使ããã¾ããã'ã¹ã©ã¤ãã追å 'ãã¯ãªãã¯ãã¦ã¹ã©ã¤ã"
+"ã·ã§ã¼ãéå§ãã¦ãã ãã!"
+
+#: ../ml-slider.php:934
+msgid "or"
+msgstr "ãããã¯"
+
+#: ../ml-slider.php:935
+msgid "Add New Slideshow"
+msgstr "æ°è¦ã¹ã©ã¤ãã·ã§ã¼ã追å "
+
+#: ../ml-slider.php:951
+msgid "Create your first slideshow"
+msgstr "æåã®ã¹ã©ã¤ãã·ã§ã¼ã使"
+
+#: ../ml-slider.php:970
+msgid "Slides"
+msgstr "ã¹ã©ã¤ã"
+
+#: ../ml-slider.php:973 ../ml-slider.php:974
+msgid "Add Slide"
+msgstr "ã¹ã©ã¤ãã追å "
+
+#: ../ml-slider.php:994
+msgid "Settings"
+msgstr "è¨å®"
+
+#: ../ml-slider.php:995
+msgid "Save"
+msgstr "ä¿å"
+
+#: ../ml-slider.php:996
+msgid "Save & Preview"
+msgstr "ä¿åãã¦ãã¬ãã¥ã¼"
+
+#: ../ml-slider.php:1009
+msgid "Flex Slider"
+msgstr "Flex Slider"
+
+#: ../ml-slider.php:1010
+msgid "R. Slides"
+msgstr "R. Slides"
+
+#: ../ml-slider.php:1011
+msgid "Nivo Slider"
+msgstr "Nivo Slider"
+
+#: ../ml-slider.php:1012
+msgid "Coin Slider"
+msgstr "Coin Slider"
+
+#: ../ml-slider.php:1023 ../ml-slider.php:1257
+msgid "Width"
+msgstr "å¹
"
+
+#: ../ml-slider.php:1025
+msgid "Slideshow width"
+msgstr "ã¹ã©ã¤ãã·ã§ã¼å¹
"
+
+#: ../ml-slider.php:1026 ../ml-slider.php:1039 ../ml-slider.php:1184
+msgid "px"
+msgstr "px"
+
+#: ../ml-slider.php:1036 ../ml-slider.php:1270
+msgid "Height"
+msgstr "é«ã"
+
+#: ../ml-slider.php:1038
+msgid "Slideshow height"
+msgstr "ã¹ã©ã¤ãã·ã§ã¼ã®é«ã"
+
+#: ../ml-slider.php:1045
+msgid "Effect"
+msgstr "广"
+
+#: ../ml-slider.php:1047
+msgid "Slide transition effect"
+msgstr "ã¹ã©ã¤ãé·ç§»ã¨ãã§ã¯ã"
+
+#: ../ml-slider.php:1049 ../ml-slider.php:1189
+msgid "Random"
+msgstr "ã©ã³ãã "
+
+#: ../ml-slider.php:1050
+msgid "Swirl"
+msgstr "å転"
+
+#: ../ml-slider.php:1051
+msgid "Rain"
+msgstr "ã¬ã¤ã³"
+
+#: ../ml-slider.php:1052
+msgid "Straight"
+msgstr "ã¹ãã¬ã¼ã"
+
+#: ../ml-slider.php:1053
+msgid "Slide Down"
+msgstr "ã¹ã©ã¤ããã¦ã³"
+
+#: ../ml-slider.php:1054
+msgid "Slice Up"
+msgstr "ã¹ã©ã¤ã¹ã¢ãã"
+
+#: ../ml-slider.php:1055
+msgid "Slide Up Left"
+msgstr "ã¹ã©ã¤ãã¢ããå·¦"
+
+#: ../ml-slider.php:1056
+msgid "Slice Up Down"
+msgstr "ä¸ä¸ããçåãã¹ã©ã¤ã (å·¦ããå³ã¸)"
+
+#: ../ml-slider.php:1057
+msgid "Slide Up Down Left"
+msgstr "ä¸ä¸ããçåãã¹ã©ã¤ã (å³ããå·¦ã¸)"
+
+#: ../ml-slider.php:1058
+msgid "Fold"
+msgstr "å·¦ããçåã¯ã¤ã"
+
+#: ../ml-slider.php:1059
+msgid "Fade"
+msgstr "ãã§ã¼ã"
+
+#: ../ml-slider.php:1060
+msgid "Slide In Right"
+msgstr "å³ã«ã¹ã©ã¤ãã¤ã³"
+
+#: ../ml-slider.php:1061
+msgid "Slide In Left"
+msgstr "å·¦ã«ã¹ã©ã¤ãã¤ã³"
+
+#: ../ml-slider.php:1062
+msgid "Box Random"
+msgstr "è§åãã©ã³ãã ã¯ã¤ã"
+
+#: ../ml-slider.php:1063
+msgid "Box Rain"
+msgstr "å³ä¸ã¸è§åãã¯ã¤ã"
+
+#: ../ml-slider.php:1064
+msgid "Box Rain Reverse"
+msgstr "å·¦ä¸ã¸è§åãã¯ã¤ã"
+
+#: ../ml-slider.php:1065
+msgid "Box Rain Grow Reverse"
+msgstr "å·¦ä¸ã¸è§åãã¯ã¤ã (ãµã¤ãºå¢)"
+
+#: ../ml-slider.php:1066
+msgid "Slide"
+msgstr "ã¹ã©ã¤ã"
+
+#: ../ml-slider.php:1073
+msgid "Theme"
+msgstr "ãã¼ã"
+
+#: ../ml-slider.php:1075
+msgid "Slideshow theme"
+msgstr "ã¹ã©ã¤ãã·ã§ã¼ã®ãã¼ã"
+
+#: ../ml-slider.php:1077
+msgid "Default"
+msgstr "æ¨æº"
+
+#: ../ml-slider.php:1078
+msgid "Dark (Nivo)"
+msgstr "ãã¼ã¯ (Nivo)"
+
+#: ../ml-slider.php:1079
+msgid "Light (Nivo)"
+msgstr "ã©ã¤ã (Nivo)"
+
+#: ../ml-slider.php:1080
+msgid "Bar (Nivo)"
+msgstr "ãã¼ (Nivo)"
+
+#: ../ml-slider.php:1086
+msgid "Arrows"
+msgstr "ç¢å°"
+
+#: ../ml-slider.php:1089
+msgid "Show the previous/next arrows"
+msgstr "åå¾ã¸ã®ç¢å°ã表示ãã"
+
+#: ../ml-slider.php:1094
+msgid "Navigation"
+msgstr "ããã²ã¼ã·ã§ã³"
+
+#: ../ml-slider.php:1097
+msgid "Show the slide navigation bullets"
+msgstr "ããã²ã¼ã·ã§ã³ç¨ã®ç¹ã表示ãã"
+
+#: ../ml-slider.php:1099
+msgid "Hidden"
+msgstr "é表示"
+
+#: ../ml-slider.php:1100
+msgid "Dots"
+msgstr "ç¹"
+
+#: ../ml-slider.php:1101
+msgid "Thumbnails (Pro)"
+msgstr "ãµã ãã¤ã« (ããç)"
+
+#: ../ml-slider.php:1112
+msgid "Title"
+msgstr "ã¿ã¤ãã«"
+
+#: ../ml-slider.php:1113
+msgid "Slideshow title"
+msgstr "ã¹ã©ã¤ãã·ã§ã¼ã®ã¿ã¤ãã«"
+
+#: ../ml-slider.php:1127
+msgid "Advanced Settings"
+msgstr "é«åº¦ãªè¨å®"
+
+#: ../ml-slider.php:1136
+msgid "Stretch"
+msgstr "å¼ã伸ã°ã"
+
+#: ../ml-slider.php:1138
+msgid "100% wide output"
+msgstr "100%å¹
ã§è¡¨ç¤º"
+
+#: ../ml-slider.php:1140
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "親ã³ã³ãããã£ã±ãã«ä¼¸ç¸®"
+
+#: ../ml-slider.php:1145
+msgid "Center align"
+msgstr "ä¸å¤®æã"
+
+#: ../ml-slider.php:1148
+msgid "Center align the slideshow"
+msgstr "ã¹ã©ã¤ãã·ã§ã¼ãä¸å¤®æã"
+
+#: ../ml-slider.php:1153
+msgid "Auto play"
+msgstr "èªååç"
+
+#: ../ml-slider.php:1156
+msgid "Transition between slides automatically"
+msgstr "èªåãã©ã¸ã·ã§ã³"
+
+#: ../ml-slider.php:1161
+msgid "Smart crop"
+msgstr "èªååãæã"
+
+#: ../ml-slider.php:1164
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+"èªååãæãã使ãã¨ãã¬ã¹ãã³ã·ãã¹ã©ã¤ããã¹ã©ã¤ãã·ã§ã¼ã®ãµã¤ãºã«åã£ãæ¯"
+"çã§åãæãããã¾ã"
+
+#: ../ml-slider.php:1169
+msgid "Carousel mode"
+msgstr "ã«ã«ã¼ã»ã«ã»ã¢ã¼ã"
+
+#: ../ml-slider.php:1172
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr "100%å¹
ã§ã¹ã©ã¤ãã·ã§ã¼ã表示"
+
+#: ../ml-slider.php:1180
+msgid "Carousel margin"
+msgstr "ã«ã«ã¼ã»ã«ãã¼ã¸ã³"
+
+#: ../ml-slider.php:1183
+msgid "Pixel margin between slides in carousel."
+msgstr "ã«ã«ã¼ã»ã«å
ã®ã¹ã©ã¤ãã®éé (px) ã"
+
+#: ../ml-slider.php:1192
+msgid "Randomise the order of the slides"
+msgstr "ã¹ã©ã¤ãã®é çªãã©ã³ãã ã«ãã"
+
+#: ../ml-slider.php:1197
+msgid "Hover pause"
+msgstr "忢ãã¿ã³è¡¨ç¤º"
+
+#: ../ml-slider.php:1200
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr ""
+"ã¹ã©ã¤ãã¼ããã¤ã³ãããã¨ãã«ã¹ã©ã¤ã ã·ã§ã¼ã䏿忢ãããããªã³ã°ãåéã"
+"ãã"
+
+#: ../ml-slider.php:1205
+msgid "Reverse"
+msgstr "éæ»ã"
+
+#: ../ml-slider.php:1208
+msgid "Reverse the animation direction"
+msgstr "ã¢ãã¡ã¼ã·ã§ã³æ¹åå転"
+
+#: ../ml-slider.php:1218
+msgid "Slide delay"
+msgstr "ã¹ã©ã¤ãã®é
å»¶"
+
+#: ../ml-slider.php:1220
+msgid "How long to display each slide, in milliseconds"
+msgstr "åç»åã®è¡¨ç¤ºæé (ããªç§)"
+
+#: ../ml-slider.php:1221 ../ml-slider.php:1234 ../ml-slider.php:1247
+#: ../ml-slider.php:1323 ../ml-slider.php:1349
+msgid "ms"
+msgstr "ms"
+
+#: ../ml-slider.php:1231
+msgid "Animation speed"
+msgstr "ã¢ãã¡ã¼ã·ã§ã³ã®é度"
+
+#: ../ml-slider.php:1233
+msgid "Set the speed of animations, in milliseconds"
+msgstr "ããªç§åä½ã§ã¢ãã¡ã¼ã·ã§ã³ã®é度ãè¨å®ãã¾ãã"
+
+#: ../ml-slider.php:1244 ../ml-slider.php:1246
+msgid "Number of slices"
+msgstr "ã¹ã©ã¤ã¹ã®æ°"
+
+#: ../ml-slider.php:1257 ../ml-slider.php:1259 ../ml-slider.php:1270
+#: ../ml-slider.php:1272
+msgid "Number of squares"
+msgstr "ã¹ã¯ã¨ã¢ã®æ°"
+
+#: ../ml-slider.php:1278
+msgid "Slide direction"
+msgstr "ã¹ã©ã¤ãã®æ¹å"
+
+#: ../ml-slider.php:1280
+msgid "Select the sliding direction"
+msgstr "ã¹ã©ã¤ãã®æ¹åã鏿"
+
+#: ../ml-slider.php:1283
+msgid "Horizontal"
+msgstr "æ°´å¹³æ¹å"
+
+#: ../ml-slider.php:1284
+msgid "Vertical"
+msgstr "åç´æ¹å"
+
+#: ../ml-slider.php:1290
+msgid "Easing"
+msgstr "ã¤ã¼ã¸ã³ã°"
+
+#: ../ml-slider.php:1292
+msgid "Animation easing effect"
+msgstr "ã¢ãã¡ã¼ã·ã§ã³ã¤ã¼ã¸ã³ã°ã®å¹æ"
+
+#: ../ml-slider.php:1299
+msgid "Previous text"
+msgstr "åã®ããã¹ã"
+
+#: ../ml-slider.php:1301
+msgid "Set the text for the 'previous' direction item"
+msgstr "ãåã¸ã é
ç®ã®ããã¹ããè¨å®ãã¾ãã"
+
+#: ../ml-slider.php:1307
+msgid "Next text"
+msgstr "次ã®ããã¹ã"
+
+#: ../ml-slider.php:1309
+msgid "Set the text for the 'next' direction item"
+msgstr "ãæ¬¡ã¸ãé
ç®ã®ããã¹ãã®è¨å®ãã¾ãã"
+
+#: ../ml-slider.php:1320
+msgid "Square delay"
+msgstr "ã¹ã¯ã¨ã¢ã®è¡¨ç¤ºé
å»¶"
+
+#: ../ml-slider.php:1322
+msgid "Delay between squares in ms"
+msgstr "ã¹ã¯ã¨ã¢ã®é
å»¶é度ãç§åä½ã§è¨å®ãã"
+
+#: ../ml-slider.php:1333
+msgid "Opacity"
+msgstr "ä¸éæåº¦"
+
+#: ../ml-slider.php:1335
+msgid "Opacity of title and navigation"
+msgstr "ã¿ã¤ãã«ã¨ããã®ä¸éæåº¦"
+
+#: ../ml-slider.php:1346
+msgid "Caption speed"
+msgstr "è¦åºãã®ã¹ãã¼ã"
+
+#: ../ml-slider.php:1348
+msgid "Set the fade in speed of the caption"
+msgstr "è¦åºãã®ãã§ã¼ãã¤ã³é度ãè¨å®"
+
+#: ../ml-slider.php:1355
+msgid "Developer options"
+msgstr "éçºç¨ãªãã·ã§ã³"
+
+#: ../ml-slider.php:1360
+msgid "CSS classes"
+msgstr "CSS ã¯ã©ã¹"
+
+#: ../ml-slider.php:1362
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr "ã¹ã©ã¤ãã¼ã©ããã¼ã«è¿½å ãããã«ã¹ã¿ã CSS ã¯ã©ã¹ãæå®ãã¾ãã"
+
+#: ../ml-slider.php:1368
+msgid "Print CSS"
+msgstr "CSS ãåºå"
+
+#: ../ml-slider.php:1371
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "ç¬èªã® CSS ãå«ãããå ´åã¯ãã§ãã¯ãå¤ãã¦ãã ãã"
+
+#: ../ml-slider.php:1376
+msgid "Print JS"
+msgstr "JS ãåºå"
+
+#: ../ml-slider.php:1379
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "ç¬èªã® Javascript ãå«ãããå ´åã¯ãã§ãã¯ãå¤ãã¦ãã ãã"
+
+#: ../ml-slider.php:1384
+msgid "No conflict mode"
+msgstr "ç«¶åã¢ã¼ããªã"
+
+#: ../ml-slider.php:1387
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr "ãã¬ãã¯ã¹ã¹ã©ã¤ãã¼åãé
å»¶ãã"
+
+#: ../ml-slider.php:1401
+msgid "Usage"
+msgstr "ä½¿ãæ¹"
+
+#: ../ml-slider.php:1404
+msgid "Shortcode"
+msgstr "ã·ã§ã¼ãã³ã¼ã"
+
+#: ../ml-slider.php:1405
+msgid "Template Include"
+msgstr "ãã³ãã¬ã¼ãã«å«ãã"
+
+#: ../ml-slider.php:1409
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+"ã·ã§ã¼ãã³ã¼ããã³ãã¼ã㦠WordPress ã®æç¨¿ã¾ãã¯åºå®ãã¼ã¸ã«è²¼ãä»ãã¦ãã ã"
+"ãã"
+
+#: ../ml-slider.php:1412
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+"ãã¼ãå
ã«ã¹ã©ã¤ãã·ã§ã¼ãé©ç¨ããã«ã¯ãã®ã³ã¼ããã³ãã¼ & ãã¼ã¹ããã¦ãã ã"
+"ãã"
+
+#: ../ml-slider.php:1441
+msgid "Delete Slider"
+msgstr "ã¹ã©ã¤ãã¼åé¤"
+
+#: ../ml-slider.php:1462
+msgid "Select slideshow to insert into post"
+msgstr "æç¨¿ã«æ¿å
¥ããã¹ã©ã¤ãã·ã§ã¼ã鏿"
+
+#: ../ml-slider.php:1465
+msgid "Add slider"
+msgstr "ã¹ã©ã¤ãã¼ã追å "
+
+#: ../ml-slider.php:1499
+msgid "Insert Meta Slider"
+msgstr "Meta Slider ãæ¿å
¥"
+
+#: ../ml-slider.php:1501
+msgid "Choose slideshow"
+msgstr "ã¹ã©ã¤ãã·ã§ã¼ã鏿"
+
+#: ../ml-slider.php:1525
+msgid "Go Pro"
+msgstr "Pro çã¸ã¢ããã°ã¬ã¼ã"
+
+#: ../ml-slider.php:1581
+msgid "Upgrade to Pro $19"
+msgstr "$19ã§ããçã¸ã¢ããã°ã¬ã¼ã"
+
+#~ msgid "Responsive"
+#~ msgstr "ã¬ã·ãã³ã·ã"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-nb_NO.mo b/wp-content/plugins/ml-slider/languages/metaslider-nb_NO.mo
new file mode 100644
index 0000000..6414b2c
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-nb_NO.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-nb_NO.po b/wp-content/plugins/ml-slider/languages/metaslider-nb_NO.po
new file mode 100644
index 0000000..2b1eee2
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-nb_NO.po
@@ -0,0 +1,602 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider\n"
+"POT-Creation-Date: 2013-12-16 17:31-0000\n"
+"PO-Revision-Date: 2013-12-18 21:32+0100\n"
+"Last-Translator: Roger Haugli \n"
+"Language-Team: Dreamsoft (www.dreamsoft.no) \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.6.3\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"Plural-Forms: nplurals=2; plural=(n != 1);\n"
+"Language: nb\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:102
+msgid "Go Pro"
+msgstr "Oppgrader til Pro"
+
+#: ../ml-slider.php:156
+msgid "Image"
+msgstr "Bilde"
+
+#: ../ml-slider.php:157
+msgid "Add to slider"
+msgstr "Legg til i lydbildeserie"
+
+#: ../ml-slider.php:177
+msgid "Post Feed"
+msgstr "Post feed"
+
+#: ../ml-slider.php:178
+msgid "Vimeo"
+msgstr "Vimeo"
+
+#: ../ml-slider.php:179
+msgid "YouTube"
+msgstr "YouTube"
+
+#: ../ml-slider.php:180
+msgid "Layer Slide"
+msgstr "Layer lysbilde"
+
+#: ../ml-slider.php:235 ../inc/slide/metaslide.image.class.php:103
+msgid "URL"
+msgstr "URL"
+
+#: ../ml-slider.php:236 ../inc/slide/metaslide.image.class.php:101
+msgid "Caption"
+msgstr "Bildetekst"
+
+#: ../ml-slider.php:237 ../inc/slide/metaslide.image.class.php:102
+msgid "New Window"
+msgstr "Nytt Vindu"
+
+#: ../ml-slider.php:238
+msgid "Are you sure?"
+msgstr "Er du sikker?"
+
+#: ../ml-slider.php:242
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr ""
+"Advarsel: Denne innstillingen er kun for avanserte brukere. Hvis du er "
+"usikker, la det stå avkrysset."
+
+#: ../ml-slider.php:278
+msgid "Upgrade to Pro $19"
+msgstr "Oppgrader til Pro for kun $19 USD"
+
+#: ../ml-slider.php:294
+msgid "Documentation"
+msgstr "Dokumentasjon"
+
+#: ../ml-slider.php:430
+msgid "New Slider"
+msgstr "Nytt lysbilde"
+
+#: ../ml-slider.php:692
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr "Ny lysbildeserie laget. Klikk \"Nytt lysbilde\" for å komme igang!"
+
+#: ../ml-slider.php:709
+msgid "or"
+msgstr "eller"
+
+#: ../ml-slider.php:710
+msgid "Add New Slideshow"
+msgstr "Legg til ny lysbildeserie"
+
+#: ../ml-slider.php:726
+msgid "Create your first slideshow"
+msgstr "Lag din første lysbildeserie"
+
+#: ../ml-slider.php:744
+msgid "Settings"
+msgstr "Innstillinger"
+
+#: ../ml-slider.php:745
+msgid "Save"
+msgstr "Lagre"
+
+#: ../ml-slider.php:746
+msgid "Save & Preview"
+msgstr "Lagre & Vis"
+
+#: ../ml-slider.php:759
+msgid "Flex Slider"
+msgstr "Flex Slider"
+
+#: ../ml-slider.php:760
+msgid "Responsive"
+msgstr "Responsiv"
+
+#: ../ml-slider.php:761
+msgid "Nivo Slider"
+msgstr "Nivo Slider"
+
+#: ../ml-slider.php:762
+msgid "Coin Slider"
+msgstr "Mynt Slider"
+
+#: ../ml-slider.php:773 ../ml-slider.php:995
+msgid "Width"
+msgstr "Bredde"
+
+#: ../ml-slider.php:775
+msgid "Slideshow width"
+msgstr "Lysbildeseriebredde"
+
+#: ../ml-slider.php:776 ../ml-slider.php:789
+msgid "px"
+msgstr "pixler"
+
+#: ../ml-slider.php:786 ../ml-slider.php:1008
+msgid "Height"
+msgstr "Høyde"
+
+#: ../ml-slider.php:788
+msgid "Slideshow height"
+msgstr "Lysbildeseriehøyde"
+
+#: ../ml-slider.php:795
+msgid "Effect"
+msgstr "Effekt"
+
+#: ../ml-slider.php:797
+msgid "Slide transition effect"
+msgstr "Lysbilde overgangseffekt"
+
+#: ../ml-slider.php:799 ../ml-slider.php:927
+msgid "Random"
+msgstr "Tilfeldig"
+
+#: ../ml-slider.php:800
+msgid "Swirl"
+msgstr "Virvel"
+
+#: ../ml-slider.php:801
+msgid "Rain"
+msgstr "Regn"
+
+#: ../ml-slider.php:802
+msgid "Straight"
+msgstr "Rett"
+
+#: ../ml-slider.php:803
+msgid "Slide Down"
+msgstr "Skli ned"
+
+#: ../ml-slider.php:804
+msgid "Slice Up"
+msgstr "Skjære opp"
+
+#: ../ml-slider.php:805
+msgid "Slide Up Left"
+msgstr "Skli opp, Venstre"
+
+#: ../ml-slider.php:806
+msgid "Slice Up Down"
+msgstr "Skjære opp, Ned"
+
+#: ../ml-slider.php:807
+msgid "Slide Up Down Left"
+msgstr "Skjære opp, Venstre"
+
+#: ../ml-slider.php:808
+msgid "Fold"
+msgstr "Brett"
+
+#: ../ml-slider.php:809
+msgid "Fade"
+msgstr "Ton ut"
+
+#: ../ml-slider.php:810
+msgid "Slide In Right"
+msgstr "Skli inn, Høyre"
+
+#: ../ml-slider.php:811
+msgid "Slide In Left"
+msgstr "Skli inn, Venstre"
+
+#: ../ml-slider.php:812
+msgid "Box Random"
+msgstr "Boks tilfeldig"
+
+#: ../ml-slider.php:813
+msgid "Box Rain"
+msgstr "Boks regn"
+
+#: ../ml-slider.php:814
+msgid "Box Rain Reverse"
+msgstr "Boks regn, Omvendt"
+
+#: ../ml-slider.php:815
+msgid "Box Rain Grow Reverse"
+msgstr "Boks regn, Voks omvendt"
+
+#: ../ml-slider.php:816
+msgid "Slide"
+msgstr "Lysbilde"
+
+#: ../ml-slider.php:823
+msgid "Theme"
+msgstr "Tema"
+
+#: ../ml-slider.php:825
+msgid "Slideshow theme"
+msgstr "Lysbildeserie Tema"
+
+#: ../ml-slider.php:827
+msgid "Default"
+msgstr "Standard"
+
+#: ../ml-slider.php:828
+msgid "Dark (Nivo)"
+msgstr "Mørk (Nivo)"
+
+#: ../ml-slider.php:829
+msgid "Light (Nivo)"
+msgstr "Lys (Nivo)"
+
+#: ../ml-slider.php:830
+msgid "Bar (Nivo)"
+msgstr "Bar (Nivo)"
+
+#: ../ml-slider.php:836
+msgid "Arrows"
+msgstr "Piler"
+
+#: ../ml-slider.php:839
+msgid "Show the previous/next arrows"
+msgstr "Vis forrige/neste piler."
+
+#: ../ml-slider.php:844
+msgid "Navigation"
+msgstr "Navigasjon"
+
+#: ../ml-slider.php:847
+msgid "Show the slide navigation bullets"
+msgstr "Vis lysbildenavigasjonskuler"
+
+#: ../ml-slider.php:849
+msgid "Hidden"
+msgstr "Skjult"
+
+#: ../ml-slider.php:850
+msgid "Dots"
+msgstr "Prikker"
+
+#: ../ml-slider.php:851
+msgid "Thumbnails (Pro)"
+msgstr "Miniatyr (Pro)"
+
+#: ../ml-slider.php:862
+msgid "Title"
+msgstr "Tittel"
+
+#: ../ml-slider.php:863
+msgid "Slideshow title"
+msgstr "Lysbildeserie tittel"
+
+#: ../ml-slider.php:877
+msgid "Advanced Settings"
+msgstr "Avanserte Innstillinger"
+
+#: ../ml-slider.php:886
+msgid "Stretch"
+msgstr "Strekk"
+
+#: ../ml-slider.php:888
+msgid "100% wide output"
+msgstr "100% bredt effekt"
+
+#: ../ml-slider.php:890
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "Stekk lysbildeserie for å fylle overordnet beholder"
+
+#: ../ml-slider.php:895
+msgid "Center align"
+msgstr "Midtstill"
+
+#: ../ml-slider.php:898
+msgid "Center align the slideshow"
+msgstr "Midtstill lysbildeserie"
+
+#: ../ml-slider.php:903
+msgid "Auto play"
+msgstr "Automatisk avspilling"
+
+#: ../ml-slider.php:906
+msgid "Transition between slides automatically"
+msgstr "Automatisk overgang mellom lysbilder"
+
+#: ../ml-slider.php:911
+msgid "Smart crop"
+msgstr "Smart beskjæring"
+
+#: ../ml-slider.php:914
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+"Smart beskjæring sikrer at dine responsive lysbilder blir beskåret til et "
+"forhold som resulterer i en konsekvent lysbildeseriestørrelse"
+
+#: ../ml-slider.php:919
+msgid "Carousel mode"
+msgstr "Karusellmodus"
+
+#: ../ml-slider.php:922
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr ""
+"Vis flere lysbilder samtidig. Lysbildeserieeffekt vil være 100% bredde."
+
+#: ../ml-slider.php:930
+msgid "Randomise the order of the slides"
+msgstr "Tilfeldig rekkefølge på lysbilder"
+
+#: ../ml-slider.php:935
+msgid "Hover pause"
+msgstr "Mus-over pause"
+
+#: ../ml-slider.php:938
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr ""
+"Pause lysbildefremvisningen når mus er over glideren, deretter gjenoppta når "
+"den ikke lenger er over."
+
+#: ../ml-slider.php:943
+msgid "Reverse"
+msgstr "Omvendt"
+
+#: ../ml-slider.php:946
+msgid "Reverse the animation direction"
+msgstr "Omvendt animasjonsretning"
+
+#: ../ml-slider.php:956
+msgid "Slide delay"
+msgstr "Lysbildeforsinkelse"
+
+#: ../ml-slider.php:958
+msgid "How long to display each slide, in milliseconds"
+msgstr "Visningstid pr lysbilde, i millisekund"
+
+#: ../ml-slider.php:959 ../ml-slider.php:972 ../ml-slider.php:985
+#: ../ml-slider.php:1061 ../ml-slider.php:1087
+msgid "ms"
+msgstr "ms"
+
+#: ../ml-slider.php:969
+msgid "Animation speed"
+msgstr "Animasjonshastighet"
+
+#: ../ml-slider.php:971
+msgid "Set the speed of animations, in milliseconds"
+msgstr "Angi hastigheten på animasjoner, i millisekund"
+
+#: ../ml-slider.php:982 ../ml-slider.php:984
+msgid "Number of slices"
+msgstr "Antall lysbilder"
+
+#: ../ml-slider.php:995 ../ml-slider.php:997 ../ml-slider.php:1008
+#: ../ml-slider.php:1010
+msgid "Number of squares"
+msgstr "Antall firkanter"
+
+#: ../ml-slider.php:1016
+msgid "Slide direction"
+msgstr "Lysbilderetning"
+
+#: ../ml-slider.php:1018
+msgid "Select the sliding direction"
+msgstr "Velg lysbilderetning"
+
+#: ../ml-slider.php:1021
+msgid "Horizontal"
+msgstr "Horisontalt"
+
+#: ../ml-slider.php:1022
+msgid "Vertical"
+msgstr "Vertikalt"
+
+#: ../ml-slider.php:1028
+msgid "Easing"
+msgstr "Forenklinger"
+
+#: ../ml-slider.php:1030
+msgid "Animation easing effect"
+msgstr "Animasjonsforenklende effekt"
+
+#: ../ml-slider.php:1037
+msgid "Previous text"
+msgstr "Forrige tekst"
+
+#: ../ml-slider.php:1039
+msgid "Set the text for the 'previous' direction item"
+msgstr "Angi tekst for 'forrige' element"
+
+#: ../ml-slider.php:1045
+msgid "Next text"
+msgstr "Neste tekst"
+
+#: ../ml-slider.php:1047
+msgid "Set the text for the 'next' direction item"
+msgstr "Angi tekst for 'neste' element"
+
+#: ../ml-slider.php:1058
+msgid "Square delay"
+msgstr "Firkant forsinkelse"
+
+#: ../ml-slider.php:1060
+msgid "Delay between squares in ms"
+msgstr "Forsinkelse mellom firkanter i ms"
+
+#: ../ml-slider.php:1071
+msgid "Opacity"
+msgstr "Gjennomsiktighet"
+
+#: ../ml-slider.php:1073
+msgid "Opacity of title and navigation"
+msgstr "Gjennomsiktighet for tittel og navigasjon"
+
+#: ../ml-slider.php:1084
+msgid "Caption speed"
+msgstr "Bildetekst hastighet"
+
+#: ../ml-slider.php:1086
+msgid "Set the fade in speed of the caption"
+msgstr "Angi ton inn hastighet for bildetekst"
+
+#: ../ml-slider.php:1093
+msgid "Developer options"
+msgstr "Utvikleralternativer"
+
+#: ../ml-slider.php:1098
+msgid "CSS classes"
+msgstr "CSS klasser"
+
+#: ../ml-slider.php:1100
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr ""
+"Spesifiser hvilken egendefinerte CSS klasse du vil legge til lysbilde wrapper"
+
+#: ../ml-slider.php:1106
+msgid "Print CSS"
+msgstr "Print CSS"
+
+#: ../ml-slider.php:1109
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "Fjern markeringen dersom du vil inkludere din egen CSS"
+
+#: ../ml-slider.php:1114
+msgid "Print JS"
+msgstr "Print JS"
+
+#: ../ml-slider.php:1117
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "Fjern markeringen dersom du vil inkludere ditt eget Javascript"
+
+#: ../ml-slider.php:1122
+msgid "No conflict mode"
+msgstr "Ingen konflikt modus"
+
+#: ../ml-slider.php:1125
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr "Forsink tilleggelse av flexslider-klasse til lysbildeserie"
+
+#: ../ml-slider.php:1139
+msgid "Usage"
+msgstr "Bruk"
+
+#: ../ml-slider.php:1142
+msgid "Shortcode"
+msgstr "Hurtigkode"
+
+#: ../ml-slider.php:1143
+msgid "Template Include"
+msgstr "Inkluder i mal"
+
+#: ../ml-slider.php:1147
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+"Kopier og lim inn hurtigkoden direkte i hvilken som helst WordPress post "
+"eller side."
+
+#: ../ml-slider.php:1150
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+"Kopier og lim inn denne koden i en mal-fil for å inkludere lysbildeserien "
+"innenfor temaet ditt"
+
+#: ../ml-slider.php:1179
+msgid "Delete Slider"
+msgstr "Slett lysbilde"
+
+#: ../ml-slider.php:1190
+msgid "Slides"
+msgstr "Lysbilder"
+
+#: ../ml-slider.php:1193 ../ml-slider.php:1194
+msgid "Add Slide"
+msgstr "Legg til lysbilde"
+
+#: ../ml-slider.php:1224
+msgid "Select slideshow to insert into post"
+msgstr "Velg slideshow du vil sette inn i post"
+
+#: ../ml-slider.php:1227
+msgid "Add slider"
+msgstr "Legg til lysbildeserie"
+
+#: ../ml-slider.php:1258
+msgid "Insert Meta Slider"
+msgstr "Sett inn Meta Lysbildeserie"
+
+#: ../ml-slider.php:1260
+msgid "Choose slideshow"
+msgstr "Velg slideshow"
+
+#: ../ml-slider.php:1267 ../inc/metaslider.widget.class.php:124
+msgid "No slideshows found"
+msgstr "Ingen slideshow funnet"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr "Meta Lysbildeserie"
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Title:"
+msgstr "Tittel:"
+
+#: ../inc/metaslider.widget.class.php:114
+msgid "Select Slider:"
+msgstr "Velg Lysbildeserie:"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr "Sikkerhetssjekk feilet. Last inn siden på nytt og prøv igjen."
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr ""
+"Kunne ikke legge til lysbilde. Lysbilde eksisterer allerede i slideshow"
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr "Kunne ikke legge til lysbilde. Lysbilde er ikke 'bilde'."
+
+#: ../inc/slide/metaslide.image.class.php:110
+msgid "Image Slide"
+msgstr "Bilde Lysbilde"
+
+#: ../inc/slide/metaslide.image.class.php:115
+msgid "General"
+msgstr "Generelt"
+
+#: ../inc/slide/metaslide.image.class.php:116
+msgid "SEO"
+msgstr "Søkemotoroptimalisering"
+
+#: ../inc/slide/metaslide.image.class.php:121
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr "Advarsel: Bildedata finnes ikke. Vennligst last opp bildet på nytt."
+
+#: ../inc/slide/metaslide.image.class.php:130
+msgid "Image Title Text"
+msgstr "Bildetittel tekst"
+
+#: ../inc/slide/metaslide.image.class.php:132
+msgid "Image Alt Text"
+msgstr "Bilde alternativ tekst"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-nl_NL.mo b/wp-content/plugins/ml-slider/languages/metaslider-nl_NL.mo
new file mode 100644
index 0000000..d145ddb
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-nl_NL.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-nl_NL.po b/wp-content/plugins/ml-slider/languages/metaslider-nl_NL.po
new file mode 100644
index 0000000..89a942c
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-nl_NL.po
@@ -0,0 +1,602 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider\n"
+"POT-Creation-Date: 2013-12-16 17:31-0000\n"
+"PO-Revision-Date: 2014-04-02 16:41+0100\n"
+"Last-Translator: Nick te Morsche \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.6.4\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"Language: nl_NL\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:102
+msgid "Go Pro"
+msgstr "Kies voor Pro"
+
+#: ../ml-slider.php:156
+msgid "Image"
+msgstr "Afbeelding"
+
+#: ../ml-slider.php:157
+msgid "Add to slider"
+msgstr "Aan Slider toevoegen"
+
+#: ../ml-slider.php:177
+msgid "Post Feed"
+msgstr ""
+
+#: ../ml-slider.php:178
+msgid "Vimeo"
+msgstr ""
+
+#: ../ml-slider.php:179
+msgid "YouTube"
+msgstr ""
+
+#: ../ml-slider.php:180
+msgid "Layer Slide"
+msgstr ""
+
+#: ../ml-slider.php:235 ../inc/slide/metaslide.image.class.php:103
+msgid "URL"
+msgstr ""
+
+#: ../ml-slider.php:236 ../inc/slide/metaslide.image.class.php:101
+msgid "Caption"
+msgstr "Onderschrift"
+
+#: ../ml-slider.php:237 ../inc/slide/metaslide.image.class.php:102
+msgid "New Window"
+msgstr "Nieuw venster"
+
+#: ../ml-slider.php:238
+msgid "Are you sure?"
+msgstr "Zeker weten?"
+
+#: ../ml-slider.php:242
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr ""
+"Let op! Deze instellingen zijn alleen bedoelt voor voor ervaren "
+"ontwikkelaars. Bij twijfel aangevinkt laten"
+
+#: ../ml-slider.php:278
+msgid "Upgrade to Pro $19"
+msgstr "Upgraden naar Pro $19"
+
+#: ../ml-slider.php:294
+msgid "Documentation"
+msgstr "Documentatie"
+
+#: ../ml-slider.php:430
+msgid "New Slider"
+msgstr "Nieuwe Slider"
+
+#: ../ml-slider.php:692
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr ""
+"Nieuwe slideshow gecreëerd. Klik op 'Slideshow Toevoegen' om te beginnen!"
+
+#: ../ml-slider.php:709
+msgid "or"
+msgstr "of"
+
+#: ../ml-slider.php:710
+msgid "Add New Slideshow"
+msgstr "Nieuwe Slideshow toevoegen"
+
+#: ../ml-slider.php:726
+msgid "Create your first slideshow"
+msgstr "Maak je eerste slideshow"
+
+#: ../ml-slider.php:744
+msgid "Settings"
+msgstr "Instellingen"
+
+#: ../ml-slider.php:745
+msgid "Save"
+msgstr "Opslaan"
+
+#: ../ml-slider.php:746
+msgid "Save & Preview"
+msgstr "Opslaan & Bekijken"
+
+#: ../ml-slider.php:759
+msgid "Flex Slider"
+msgstr ""
+
+#: ../ml-slider.php:760
+msgid "Responsive"
+msgstr ""
+
+#: ../ml-slider.php:761
+msgid "Nivo Slider"
+msgstr ""
+
+#: ../ml-slider.php:762
+msgid "Coin Slider"
+msgstr ""
+
+#: ../ml-slider.php:773 ../ml-slider.php:995
+msgid "Width"
+msgstr "Breedte"
+
+#: ../ml-slider.php:775
+msgid "Slideshow width"
+msgstr "Slideshow breedte"
+
+#: ../ml-slider.php:776 ../ml-slider.php:789
+msgid "px"
+msgstr ""
+
+#: ../ml-slider.php:786 ../ml-slider.php:1008
+msgid "Height"
+msgstr "Hoogte"
+
+#: ../ml-slider.php:788
+msgid "Slideshow height"
+msgstr "Slideshow hoogte"
+
+#: ../ml-slider.php:795
+msgid "Effect"
+msgstr ""
+
+#: ../ml-slider.php:797
+msgid "Slide transition effect"
+msgstr "Slide overgangs effect"
+
+#: ../ml-slider.php:799 ../ml-slider.php:927
+msgid "Random"
+msgstr "Willekeurig"
+
+#: ../ml-slider.php:800
+msgid "Swirl"
+msgstr ""
+
+#: ../ml-slider.php:801
+msgid "Rain"
+msgstr ""
+
+#: ../ml-slider.php:802
+msgid "Straight"
+msgstr "Recht"
+
+#: ../ml-slider.php:803
+msgid "Slide Down"
+msgstr "Slide Omlaag"
+
+#: ../ml-slider.php:804
+msgid "Slice Up"
+msgstr ""
+
+#: ../ml-slider.php:805
+msgid "Slide Up Left"
+msgstr "Slide Omhoog Links"
+
+#: ../ml-slider.php:806
+msgid "Slice Up Down"
+msgstr ""
+
+#: ../ml-slider.php:807
+msgid "Slide Up Down Left"
+msgstr "Slide Omhoog Omlaag Links"
+
+#: ../ml-slider.php:808
+msgid "Fold"
+msgstr "vouwen"
+
+#: ../ml-slider.php:809
+msgid "Fade"
+msgstr "Vervaag"
+
+#: ../ml-slider.php:810
+msgid "Slide In Right"
+msgstr "Slide in Rechts"
+
+#: ../ml-slider.php:811
+msgid "Slide In Left"
+msgstr "Slide in Links"
+
+#: ../ml-slider.php:812
+msgid "Box Random"
+msgstr ""
+
+#: ../ml-slider.php:813
+msgid "Box Rain"
+msgstr ""
+
+#: ../ml-slider.php:814
+msgid "Box Rain Reverse"
+msgstr ""
+
+#: ../ml-slider.php:815
+msgid "Box Rain Grow Reverse"
+msgstr ""
+
+#: ../ml-slider.php:816
+msgid "Slide"
+msgstr ""
+
+#: ../ml-slider.php:823
+msgid "Theme"
+msgstr ""
+
+#: ../ml-slider.php:825
+msgid "Slideshow theme"
+msgstr ""
+
+#: ../ml-slider.php:827
+msgid "Default"
+msgstr "Standaart"
+
+#: ../ml-slider.php:828
+msgid "Dark (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:829
+msgid "Light (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:830
+msgid "Bar (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:836
+msgid "Arrows"
+msgstr "Pijlen"
+
+#: ../ml-slider.php:839
+msgid "Show the previous/next arrows"
+msgstr "Vorige/Volgende pijlen weergeven"
+
+#: ../ml-slider.php:844
+msgid "Navigation"
+msgstr "Navigatie"
+
+#: ../ml-slider.php:847
+msgid "Show the slide navigation bullets"
+msgstr "Slide Navigatiebalk weergeven"
+
+#: ../ml-slider.php:849
+msgid "Hidden"
+msgstr "Verborgen"
+
+#: ../ml-slider.php:850
+msgid "Dots"
+msgstr ""
+
+#: ../ml-slider.php:851
+msgid "Thumbnails (Pro)"
+msgstr ""
+
+#: ../ml-slider.php:862
+msgid "Title"
+msgstr "Titel"
+
+#: ../ml-slider.php:863
+msgid "Slideshow title"
+msgstr "Titel Slideshow"
+
+#: ../ml-slider.php:877
+msgid "Advanced Settings"
+msgstr "Geavanceerde Instellingen"
+
+#: ../ml-slider.php:886
+msgid "Stretch"
+msgstr "Uitrekken"
+
+#: ../ml-slider.php:888
+msgid "100% wide output"
+msgstr ""
+
+#: ../ml-slider.php:890
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr ""
+
+#: ../ml-slider.php:895
+msgid "Center align"
+msgstr "Uitlijnen midden"
+
+#: ../ml-slider.php:898
+msgid "Center align the slideshow"
+msgstr "Slideshow in midden uitlijnen"
+
+#: ../ml-slider.php:903
+msgid "Auto play"
+msgstr "Automatisch Afspelen"
+
+#: ../ml-slider.php:906
+msgid "Transition between slides automatically"
+msgstr "Overgang tussen slides automatisch"
+
+#: ../ml-slider.php:911
+msgid "Smart crop"
+msgstr "Slim knippen"
+
+#: ../ml-slider.php:914
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+"Slim uitsnijden garandeerd dat de slides optimaal worden uitgesneden, zodat "
+"deze in het juiste formaat worden weergegeven"
+
+#: ../ml-slider.php:919
+msgid "Carousel mode"
+msgstr "Carousel modus"
+
+#: ../ml-slider.php:922
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr ""
+
+#: ../ml-slider.php:930
+msgid "Randomise the order of the slides"
+msgstr "Stel de volgorde van de slides in op Willekeurig"
+
+#: ../ml-slider.php:935
+msgid "Hover pause"
+msgstr "Pause bij zweven"
+
+#: ../ml-slider.php:938
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr ""
+"Pauseer de slideshow zodra de cursor over de slider hangt en hervat de "
+"slideshow wanneer deze wordt verwijdert "
+
+#: ../ml-slider.php:943
+msgid "Reverse"
+msgstr "Omkeren"
+
+#: ../ml-slider.php:946
+msgid "Reverse the animation direction"
+msgstr "Keer de animatie richting om"
+
+#: ../ml-slider.php:956
+msgid "Slide delay"
+msgstr "Slide Vertraging"
+
+#: ../ml-slider.php:958
+msgid "How long to display each slide, in milliseconds"
+msgstr "Weergave tijd per slide, in milliseconden"
+
+#: ../ml-slider.php:959 ../ml-slider.php:972 ../ml-slider.php:985
+#: ../ml-slider.php:1061 ../ml-slider.php:1087
+msgid "ms"
+msgstr ""
+
+#: ../ml-slider.php:969
+msgid "Animation speed"
+msgstr "Animatie snelheid"
+
+#: ../ml-slider.php:971
+msgid "Set the speed of animations, in milliseconds"
+msgstr "Animatie snelheid instellen, in milliseconden"
+
+#: ../ml-slider.php:982 ../ml-slider.php:984
+msgid "Number of slices"
+msgstr ""
+
+#: ../ml-slider.php:995 ../ml-slider.php:997 ../ml-slider.php:1008
+#: ../ml-slider.php:1010
+msgid "Number of squares"
+msgstr ""
+
+#: ../ml-slider.php:1016
+msgid "Slide direction"
+msgstr "Slide Richting"
+
+#: ../ml-slider.php:1018
+msgid "Select the sliding direction"
+msgstr "Selecteer slide richting"
+
+#: ../ml-slider.php:1021
+msgid "Horizontal"
+msgstr "Horizontaal"
+
+#: ../ml-slider.php:1022
+msgid "Vertical"
+msgstr "Verticaal"
+
+#: ../ml-slider.php:1028
+msgid "Easing"
+msgstr "Versoepelen"
+
+#: ../ml-slider.php:1030
+msgid "Animation easing effect"
+msgstr "Versoepeling annimatie effect"
+
+#: ../ml-slider.php:1037
+msgid "Previous text"
+msgstr "Vorige text"
+
+#: ../ml-slider.php:1039
+msgid "Set the text for the 'previous' direction item"
+msgstr ""
+"Stel hier uw text in om naar de vorige afbeelding te gaan, bijvoorbeeld: "
+"Vorige Afbeelding"
+
+#: ../ml-slider.php:1045
+msgid "Next text"
+msgstr "Volgende text"
+
+#: ../ml-slider.php:1047
+msgid "Set the text for the 'next' direction item"
+msgstr ""
+"Stel hier uw text in om naar de volgende afbeelding te gaan, bijvoorbeeld: "
+"Volgende Afbeelding"
+
+#: ../ml-slider.php:1058
+msgid "Square delay"
+msgstr ""
+
+#: ../ml-slider.php:1060
+msgid "Delay between squares in ms"
+msgstr ""
+
+#: ../ml-slider.php:1071
+msgid "Opacity"
+msgstr "(on)Doorzichtigheid"
+
+#: ../ml-slider.php:1073
+msgid "Opacity of title and navigation"
+msgstr "(on)Doorzichtigheid van de Titel en Navigatie"
+
+#: ../ml-slider.php:1084
+msgid "Caption speed"
+msgstr "Onderschrift snelheid"
+
+#: ../ml-slider.php:1086
+msgid "Set the fade in speed of the caption"
+msgstr "Stel hier de snelheid in waarmee het onderschrift vervaagt"
+
+#: ../ml-slider.php:1093
+msgid "Developer options"
+msgstr "Ontwikkelaar opties"
+
+#: ../ml-slider.php:1098
+msgid "CSS classes"
+msgstr ""
+
+#: ../ml-slider.php:1100
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr ""
+
+#: ../ml-slider.php:1106
+msgid "Print CSS"
+msgstr ""
+
+#: ../ml-slider.php:1109
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "Vink deze uit wanneer je een eigen CSS wilt invoegen"
+
+#: ../ml-slider.php:1114
+msgid "Print JS"
+msgstr ""
+
+#: ../ml-slider.php:1117
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "Vink deze uit wanneer je een eigen javascript wilt invoegen"
+
+#: ../ml-slider.php:1122
+msgid "No conflict mode"
+msgstr ""
+
+#: ../ml-slider.php:1125
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1139
+msgid "Usage"
+msgstr "Gebruik"
+
+#: ../ml-slider.php:1142
+msgid "Shortcode"
+msgstr ""
+
+#: ../ml-slider.php:1143
+msgid "Template Include"
+msgstr ""
+
+#: ../ml-slider.php:1147
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr "Kopieer & plak de shortcode direct in elk Wordpress bericht of pagina"
+
+#: ../ml-slider.php:1150
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+"Kopieer & plak deze code in een template bestand om een slideshow in je "
+"thema op te nemen."
+
+#: ../ml-slider.php:1179
+msgid "Delete Slider"
+msgstr "Verwijder Slider"
+
+#: ../ml-slider.php:1190
+msgid "Slides"
+msgstr ""
+
+#: ../ml-slider.php:1193 ../ml-slider.php:1194
+msgid "Add Slide"
+msgstr "Slide toevoegen"
+
+#: ../ml-slider.php:1224
+msgid "Select slideshow to insert into post"
+msgstr "Selecteer een slideshow om in uw bericht te plaatsen"
+
+#: ../ml-slider.php:1227
+msgid "Add slider"
+msgstr "Slider toevoegen"
+
+#: ../ml-slider.php:1258
+msgid "Insert Meta Slider"
+msgstr "Meta Slider invoegen"
+
+#: ../ml-slider.php:1260
+msgid "Choose slideshow"
+msgstr "Slideshow kiezen"
+
+#: ../ml-slider.php:1267 ../inc/metaslider.widget.class.php:124
+msgid "No slideshows found"
+msgstr "geen slideshows gevonden"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr ""
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Title:"
+msgstr "Titel:"
+
+#: ../inc/metaslider.widget.class.php:114
+msgid "Select Slider:"
+msgstr "Slider Selecteren:"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr "Beveiligings probleem. Vernieuw de pagina en probeer opnieuw."
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr "Toevoegen slide mislukt. Slide bestaat al in slideshow"
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr "Toevoegen slide mislukt. Het bestand is geen 'afbeelding'"
+
+#: ../inc/slide/metaslide.image.class.php:110
+msgid "Image Slide"
+msgstr "Afbeelding Slide"
+
+#: ../inc/slide/metaslide.image.class.php:115
+msgid "General"
+msgstr "Algemeen"
+
+#: ../inc/slide/metaslide.image.class.php:116
+msgid "SEO"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:121
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr ""
+"Waarschuwing: Afbeelding data bestaat niet, upload aub uw afbeelding opnieuw"
+
+#: ../inc/slide/metaslide.image.class.php:130
+msgid "Image Title Text"
+msgstr "Text Titel Afbeelding"
+
+#: ../inc/slide/metaslide.image.class.php:132
+msgid "Image Alt Text"
+msgstr "Alternatieve Afbeelding text"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-pl_PL.mo b/wp-content/plugins/ml-slider/languages/metaslider-pl_PL.mo
new file mode 100644
index 0000000..824e895
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-pl_PL.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-pl_PL.po b/wp-content/plugins/ml-slider/languages/metaslider-pl_PL.po
new file mode 100644
index 0000000..9c8213a
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-pl_PL.po
@@ -0,0 +1,652 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider\n"
+"POT-Creation-Date: 2013-12-16 17:32-0000\n"
+"PO-Revision-Date: 2013-12-16 17:32-0000\n"
+"Last-Translator: Kamil \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.7\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:102
+msgid "Go Pro"
+msgstr "Zaktualizuj do wersji PRO"
+
+#: ../ml-slider.php:156
+msgid "Image"
+msgstr "ZdjÄcie"
+
+#: ../ml-slider.php:157
+msgid "Add to slider"
+msgstr "Dodaj do slidera"
+
+#: ../ml-slider.php:177
+msgid "Post Feed"
+msgstr ""
+
+#: ../ml-slider.php:178
+msgid "Vimeo"
+msgstr ""
+
+#: ../ml-slider.php:179
+msgid "YouTube"
+msgstr ""
+
+#: ../ml-slider.php:180
+#, fuzzy
+msgid "Layer Slide"
+msgstr "Nowy slider"
+
+#: ../ml-slider.php:235 ../inc/slide/metaslide.image.class.php:103
+msgid "URL"
+msgstr "URL"
+
+#: ../ml-slider.php:236 ../inc/slide/metaslide.image.class.php:101
+msgid "Caption"
+msgstr "Podpis"
+
+#: ../ml-slider.php:237 ../inc/slide/metaslide.image.class.php:102
+msgid "New Window"
+msgstr "Nowe okno"
+
+#: ../ml-slider.php:238
+msgid "Are you sure?"
+msgstr "Na pewno?"
+
+#: ../ml-slider.php:242
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr ""
+"Uwaga: Ta opcja jest tylko dla zaawansowanych użytkowników. JeÅli nie jesteÅ "
+"pewny co robisz, nie rób tego."
+
+#: ../ml-slider.php:278
+msgid "Upgrade to Pro $19"
+msgstr "Zaktualizuj do wersji Pro za $19"
+
+#: ../ml-slider.php:294
+msgid "Documentation"
+msgstr "Dokumentacja"
+
+#: ../ml-slider.php:430
+msgid "New Slider"
+msgstr "Nowy slider"
+
+#: ../ml-slider.php:692
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr ""
+
+#: ../ml-slider.php:709
+msgid "or"
+msgstr ""
+
+#: ../ml-slider.php:710
+#, fuzzy
+msgid "Add New Slideshow"
+msgstr "Dodaj slajd"
+
+#: ../ml-slider.php:726
+#, fuzzy
+msgid "Create your first slideshow"
+msgstr "WyÅrodkuj pokaz slajdów"
+
+#: ../ml-slider.php:744
+msgid "Settings"
+msgstr "Ustawienia"
+
+#: ../ml-slider.php:745
+msgid "Save"
+msgstr "Zapisz"
+
+#: ../ml-slider.php:746
+msgid "Save & Preview"
+msgstr "Zapisz i pokaż"
+
+#: ../ml-slider.php:759
+msgid "Flex Slider"
+msgstr ""
+
+#: ../ml-slider.php:760
+msgid "Responsive"
+msgstr "Responsywny"
+
+#: ../ml-slider.php:761
+msgid "Nivo Slider"
+msgstr ""
+
+#: ../ml-slider.php:762
+msgid "Coin Slider"
+msgstr ""
+
+#: ../ml-slider.php:773 ../ml-slider.php:995
+msgid "Width"
+msgstr "SzerokoÅc"
+
+#: ../ml-slider.php:775
+msgid "Slideshow width"
+msgstr ""
+
+#: ../ml-slider.php:776 ../ml-slider.php:789
+msgid "px"
+msgstr ""
+
+#: ../ml-slider.php:786 ../ml-slider.php:1008
+msgid "Height"
+msgstr "WysokoÅÄ"
+
+#: ../ml-slider.php:788
+#, fuzzy
+msgid "Slideshow height"
+msgstr "Wjeżdżanie od prawej"
+
+#: ../ml-slider.php:795
+msgid "Effect"
+msgstr "Efekt"
+
+#: ../ml-slider.php:797
+msgid "Slide transition effect"
+msgstr "Efekt przenikania slajdów"
+
+#: ../ml-slider.php:799 ../ml-slider.php:927
+msgid "Random"
+msgstr "Losowo"
+
+#: ../ml-slider.php:800
+msgid "Swirl"
+msgstr "Wirowanie"
+
+#: ../ml-slider.php:801
+msgid "Rain"
+msgstr "Deszcz"
+
+#: ../ml-slider.php:802
+msgid "Straight"
+msgstr "Sekwens"
+
+#: ../ml-slider.php:803
+msgid "Slide Down"
+msgstr "Od doÅu"
+
+#: ../ml-slider.php:804
+msgid "Slice Up"
+msgstr "Paski od góry"
+
+#: ../ml-slider.php:805
+msgid "Slide Up Left"
+msgstr "Paski od lewej"
+
+#: ../ml-slider.php:806
+msgid "Slice Up Down"
+msgstr "Paski od doÅu"
+
+#: ../ml-slider.php:807
+msgid "Slide Up Down Left"
+msgstr "Paski od doÅu i lewej"
+
+#: ../ml-slider.php:808
+msgid "Fold"
+msgstr "SkÅadanie"
+
+#: ../ml-slider.php:809
+msgid "Fade"
+msgstr "Zanikanie"
+
+#: ../ml-slider.php:810
+msgid "Slide In Right"
+msgstr "Wjeżdżanie od prawej"
+
+#: ../ml-slider.php:811
+msgid "Slide In Left"
+msgstr "Wjeżdżanie od lewej"
+
+#: ../ml-slider.php:812
+msgid "Box Random"
+msgstr ""
+
+#: ../ml-slider.php:813
+msgid "Box Rain"
+msgstr ""
+
+#: ../ml-slider.php:814
+msgid "Box Rain Reverse"
+msgstr ""
+
+#: ../ml-slider.php:815
+msgid "Box Rain Grow Reverse"
+msgstr ""
+
+#: ../ml-slider.php:816
+msgid "Slide"
+msgstr "Slajd"
+
+#: ../ml-slider.php:823
+msgid "Theme"
+msgstr "Szablon"
+
+#: ../ml-slider.php:825
+msgid "Slideshow theme"
+msgstr ""
+
+#: ../ml-slider.php:827
+msgid "Default"
+msgstr ""
+
+#: ../ml-slider.php:828
+msgid "Dark (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:829
+msgid "Light (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:830
+msgid "Bar (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:836
+msgid "Arrows"
+msgstr ""
+
+#: ../ml-slider.php:839
+msgid "Show the previous/next arrows"
+msgstr ""
+
+#: ../ml-slider.php:844
+msgid "Navigation"
+msgstr "Nawigacja"
+
+#: ../ml-slider.php:847
+#, fuzzy
+msgid "Show the slide navigation bullets"
+msgstr "Pokaż pasek nawigacji slajdami"
+
+#: ../ml-slider.php:849
+msgid "Hidden"
+msgstr ""
+
+#: ../ml-slider.php:850
+msgid "Dots"
+msgstr ""
+
+#: ../ml-slider.php:851
+msgid "Thumbnails (Pro)"
+msgstr ""
+
+#: ../ml-slider.php:862
+#, fuzzy
+msgid "Title"
+msgstr "TytuÅ:"
+
+#: ../ml-slider.php:863
+msgid "Slideshow title"
+msgstr ""
+
+#: ../ml-slider.php:877
+msgid "Advanced Settings"
+msgstr "Ustawienia zaawansowane"
+
+#: ../ml-slider.php:886
+msgid "Stretch"
+msgstr ""
+
+#: ../ml-slider.php:888
+msgid "100% wide output"
+msgstr ""
+
+#: ../ml-slider.php:890
+#, fuzzy
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "Rozpocznij pokaz slajdów przy starcie strony"
+
+#: ../ml-slider.php:895
+msgid "Center align"
+msgstr "WyÅrodkuj"
+
+#: ../ml-slider.php:898
+msgid "Center align the slideshow"
+msgstr "WyÅrodkuj pokaz slajdów"
+
+#: ../ml-slider.php:903
+msgid "Auto play"
+msgstr "Automatyczny start"
+
+#: ../ml-slider.php:906
+msgid "Transition between slides automatically"
+msgstr ""
+
+#: ../ml-slider.php:911
+msgid "Smart crop"
+msgstr ""
+
+#: ../ml-slider.php:914
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+
+#: ../ml-slider.php:919
+msgid "Carousel mode"
+msgstr "Tryb karuzeli"
+
+#: ../ml-slider.php:922
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr ""
+
+#: ../ml-slider.php:930
+msgid "Randomise the order of the slides"
+msgstr ""
+
+#: ../ml-slider.php:935
+msgid "Hover pause"
+msgstr "Zatrzymaj podczas najechania"
+
+#: ../ml-slider.php:938
+#, fuzzy
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr ""
+"Zatrzymaj pokaz slajdów kiedy kursor znajdzie siÄ na slajdzie. Wznów pokaz "
+"jeÅli z niego zjedzie."
+
+#: ../ml-slider.php:943
+msgid "Reverse"
+msgstr "Odwróc"
+
+#: ../ml-slider.php:946
+msgid "Reverse the animation direction"
+msgstr "OdwrÃ³Ä kierunek animacji"
+
+#: ../ml-slider.php:956
+msgid "Slide delay"
+msgstr "Czas opóźnienia"
+
+#: ../ml-slider.php:958
+msgid "How long to display each slide, in milliseconds"
+msgstr "Jak dÅugo ma byÄ wyÅwietlany slajd, w milisekundach"
+
+#: ../ml-slider.php:959 ../ml-slider.php:972 ../ml-slider.php:985
+#: ../ml-slider.php:1061 ../ml-slider.php:1087
+msgid "ms"
+msgstr "ms"
+
+#: ../ml-slider.php:969
+msgid "Animation speed"
+msgstr "PrÄdkoÅc animacji"
+
+#: ../ml-slider.php:971
+msgid "Set the speed of animations, in milliseconds"
+msgstr "Ustaw szybkoÅÄ animacji, w milisekundach"
+
+#: ../ml-slider.php:982 ../ml-slider.php:984
+msgid "Number of slices"
+msgstr "IloÅÄ ciÄÄ"
+
+#: ../ml-slider.php:995 ../ml-slider.php:997 ../ml-slider.php:1008
+#: ../ml-slider.php:1010
+msgid "Number of squares"
+msgstr "IloÅÄ kwadracików"
+
+#: ../ml-slider.php:1016
+msgid "Slide direction"
+msgstr "Kierunek slajdu"
+
+#: ../ml-slider.php:1018
+msgid "Select the sliding direction"
+msgstr "Zaznacz kierunek slajdów"
+
+#: ../ml-slider.php:1021
+msgid "Horizontal"
+msgstr "Poziomo"
+
+#: ../ml-slider.php:1022
+msgid "Vertical"
+msgstr "Pionowo"
+
+#: ../ml-slider.php:1028
+msgid "Easing"
+msgstr "Åagodzenie"
+
+#: ../ml-slider.php:1030
+msgid "Animation easing effect"
+msgstr "Animacja Åagodzenia efektu"
+
+#: ../ml-slider.php:1037
+msgid "Previous text"
+msgstr "Tekst \"Poprzedni\""
+
+#: ../ml-slider.php:1039
+msgid "Set the text for the 'previous' direction item"
+msgstr "Ustaw tekst dla \"poprzedniego\" slajdu"
+
+#: ../ml-slider.php:1045
+msgid "Next text"
+msgstr "Tekst \"Nastepny\""
+
+#: ../ml-slider.php:1047
+msgid "Set the text for the 'next' direction item"
+msgstr "Ustaw tekst dla \"nastÄpnego\" slajdu"
+
+#: ../ml-slider.php:1058
+msgid "Square delay"
+msgstr ""
+
+#: ../ml-slider.php:1060
+msgid "Delay between squares in ms"
+msgstr ""
+
+#: ../ml-slider.php:1071
+msgid "Opacity"
+msgstr "PrzeźroczystoÅÄ"
+
+#: ../ml-slider.php:1073
+msgid "Opacity of title and navigation"
+msgstr "PrzeźroczystoÅc tytuÅu i nawigacji"
+
+#: ../ml-slider.php:1084
+msgid "Caption speed"
+msgstr "PrÄdkoÅc pojawiania opisu"
+
+#: ../ml-slider.php:1086
+msgid "Set the fade in speed of the caption"
+msgstr "Ustaw czas zanikania podpisu"
+
+#: ../ml-slider.php:1093
+#, fuzzy
+msgid "Developer options"
+msgstr "Opcje deweloperskie"
+
+#: ../ml-slider.php:1098
+msgid "CSS classes"
+msgstr "Klasy CSS"
+
+#: ../ml-slider.php:1100
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr ""
+"Wpisz wÅasne klasy CSS, które majÄ
zostaÄ doÅÄ
czone do kontenera gÅównego "
+"slajdera"
+
+#: ../ml-slider.php:1106
+msgid "Print CSS"
+msgstr "WyÅwietl CSS"
+
+#: ../ml-slider.php:1109
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "Odznacz jeÅli chcesz doÅÄ
czyÄ swój wÅasny kod CSS"
+
+#: ../ml-slider.php:1114
+msgid "Print JS"
+msgstr "WyÅwietl JS"
+
+#: ../ml-slider.php:1117
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "Odznacz jeÅli chcesz doÅÄ
czyÄ swój wÅasny kod Javascript"
+
+#: ../ml-slider.php:1122
+msgid "No conflict mode"
+msgstr ""
+
+#: ../ml-slider.php:1125
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1139
+msgid "Usage"
+msgstr "Zastosowanie"
+
+#: ../ml-slider.php:1142
+msgid "Shortcode"
+msgstr "Kod skórtu"
+
+#: ../ml-slider.php:1143
+msgid "Template Include"
+msgstr "DoÅÄ
cz szablon"
+
+#: ../ml-slider.php:1147
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+
+#: ../ml-slider.php:1150
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+
+#: ../ml-slider.php:1179
+msgid "Delete Slider"
+msgstr "UsuÅ slajder"
+
+#: ../ml-slider.php:1190
+msgid "Slides"
+msgstr "Slajdy"
+
+#: ../ml-slider.php:1193 ../ml-slider.php:1194
+msgid "Add Slide"
+msgstr "Dodaj slajd"
+
+#: ../ml-slider.php:1224
+msgid "Select slideshow to insert into post"
+msgstr ""
+
+#: ../ml-slider.php:1227
+#, fuzzy
+msgid "Add slider"
+msgstr "Dodaj do slidera"
+
+#: ../ml-slider.php:1258
+msgid "Insert Meta Slider"
+msgstr ""
+
+#: ../ml-slider.php:1260
+#, fuzzy
+msgid "Choose slideshow"
+msgstr "Nie znaleziono skÅadników pokazu"
+
+#: ../ml-slider.php:1267 ../inc/metaslider.widget.class.php:124
+msgid "No slideshows found"
+msgstr "Nie znaleziono skÅadników pokazu"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr "Meta S;lider"
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Title:"
+msgstr "TytuÅ:"
+
+#: ../inc/metaslider.widget.class.php:114
+msgid "Select Slider:"
+msgstr "Zaznacz slajder"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:110
+#, fuzzy
+msgid "Image Slide"
+msgstr "Nowy slider"
+
+#: ../inc/slide/metaslide.image.class.php:115
+msgid "General"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:116
+msgid "SEO"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:121
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:130
+msgid "Image Title Text"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:132
+msgid "Image Alt Text"
+msgstr ""
+
+#~ msgid "Change the slider style"
+#~ msgstr "ZmieÅ styl slajdera"
+
+#~ msgid ""
+#~ "Display as carousel - when selected the effect and direction options will "
+#~ "be ignored."
+#~ msgstr ""
+#~ "WyÅwietl jako karuzele - jeÅli zaznaczono, opcje efektu i kierunku "
+#~ "zostanÄ
pominÄte."
+
+#~ msgid "Version"
+#~ msgstr "Wersja"
+
+#~ msgid "Yes"
+#~ msgstr "Tak"
+
+#~ msgid "No"
+#~ msgstr "Nie"
+
+#~ msgid "Size"
+#~ msgstr "Rozmiar"
+
+#~ msgid "kb"
+#~ msgstr "kb"
+
+#~ msgid "Mobile Friendly"
+#~ msgstr "Przystosowane do wersji mobilnej"
+
+#~ msgid "Set the initial size for the slides (width x height)"
+#~ msgstr "Ustaw poczÄ
tkowy rozmiar slajdów (szerokoÅc x wysokoÅÄ)"
+
+#~ msgid "Controls"
+#~ msgstr "Kontrolery"
+
+#~ msgid "Number of squares (width x height)"
+#~ msgstr "IloÅÄ kwadracików (szerokoÅÄ x wysokoÅÄ)"
+
+#, fuzzy
+#~ msgid "Print Scripts"
+#~ msgstr "WyÅwietl JavaScript"
+
+#~ msgid "More Slide Types"
+#~ msgstr "WiÄcej typów slideów"
+
+#~ msgid "Pager"
+#~ msgstr "Paginacje"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-ro_RO.mo b/wp-content/plugins/ml-slider/languages/metaslider-ro_RO.mo
new file mode 100644
index 0000000..deb575b
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-ro_RO.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-ro_RO.po b/wp-content/plugins/ml-slider/languages/metaslider-ro_RO.po
new file mode 100644
index 0000000..59ef3e3
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-ro_RO.po
@@ -0,0 +1,604 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider\n"
+"POT-Creation-Date: 2013-12-16 17:31-0000\n"
+"PO-Revision-Date: 2014-03-28 12:41+0200\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.7\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:102
+msgid "Go Pro"
+msgstr "CumpÄrÄ varianta PRO"
+
+#: ../ml-slider.php:156
+msgid "Image"
+msgstr "Imagine"
+
+#: ../ml-slider.php:157
+msgid "Add to slider"
+msgstr "AdaugÄ la diapozitiv"
+
+#: ../ml-slider.php:177
+msgid "Post Feed"
+msgstr "Flux PostÄri"
+
+#: ../ml-slider.php:178
+msgid "Vimeo"
+msgstr "Vimeo"
+
+#: ../ml-slider.php:179
+msgid "YouTube"
+msgstr "YouTube"
+
+#: ../ml-slider.php:180
+msgid "Layer Slide"
+msgstr "Layer Slide"
+
+#: ../ml-slider.php:235 ../inc/slide/metaslide.image.class.php:103
+msgid "URL"
+msgstr "URL"
+
+#: ../ml-slider.php:236 ../inc/slide/metaslide.image.class.php:101
+msgid "Caption"
+msgstr "Titlu"
+
+#: ../ml-slider.php:237 ../inc/slide/metaslide.image.class.php:102
+msgid "New Window"
+msgstr "FereastrÄ NouÄ"
+
+#: ../ml-slider.php:238
+msgid "Are you sure?"
+msgstr "EÅti sigur ?"
+
+#: ../ml-slider.php:242
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr ""
+"AtenÅ£ie : AceastÄ opÅ£iune este destinatÄ doar dezvoltatorilor. DacÄ nu "
+"sunteÅ£i sigur, lÄsaÅ£i bifat ."
+
+#: ../ml-slider.php:278
+msgid "Upgrade to Pro $19"
+msgstr "Actualizaţi la varianta Pro $19"
+
+#: ../ml-slider.php:294
+msgid "Documentation"
+msgstr "Documentaţie"
+
+#: ../ml-slider.php:430
+msgid "New Slider"
+msgstr "Diapozitiv Nou"
+
+#: ../ml-slider.php:692
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr "Diapoziv nou creat. ApÄsaÅ£i 'AdaugÄ Diapozitiv' pentru a începe !"
+
+#: ../ml-slider.php:709
+msgid "or"
+msgstr "sau"
+
+#: ../ml-slider.php:710
+msgid "Add New Slideshow"
+msgstr "AdaugÄ Diapozitiv Nou"
+
+#: ../ml-slider.php:726
+msgid "Create your first slideshow"
+msgstr "Creaţi primul dvs. diapozitiv"
+
+#: ../ml-slider.php:744
+msgid "Settings"
+msgstr "SetÄri"
+
+#: ../ml-slider.php:745
+msgid "Save"
+msgstr "Salvaţi"
+
+#: ../ml-slider.php:746
+msgid "Save & Preview"
+msgstr "Previzualizare & Salvare"
+
+#: ../ml-slider.php:759
+msgid "Flex Slider"
+msgstr "Flex Slider"
+
+#: ../ml-slider.php:760
+msgid "Responsive"
+msgstr "Responsive"
+
+#: ../ml-slider.php:761
+msgid "Nivo Slider"
+msgstr "Nivo Slider"
+
+#: ../ml-slider.php:762
+msgid "Coin Slider"
+msgstr "Coin Slider"
+
+#: ../ml-slider.php:773 ../ml-slider.php:995
+msgid "Width"
+msgstr "LÄÅ£ime"
+
+#: ../ml-slider.php:775
+msgid "Slideshow width"
+msgstr "LÄÅ£ime Diapozitiv"
+
+#: ../ml-slider.php:776 ../ml-slider.php:789
+msgid "px"
+msgstr "px"
+
+#: ../ml-slider.php:786 ../ml-slider.php:1008
+msgid "Height"
+msgstr "ÃnÄlÅ£ime"
+
+#: ../ml-slider.php:788
+msgid "Slideshow height"
+msgstr "ÃnÄÅ£ime Diapozitiv"
+
+#: ../ml-slider.php:795
+msgid "Effect"
+msgstr "Efect"
+
+#: ../ml-slider.php:797
+msgid "Slide transition effect"
+msgstr "Efect tranziţie diapozitiv"
+
+#: ../ml-slider.php:799 ../ml-slider.php:927
+msgid "Random"
+msgstr "Aleatoriu"
+
+#: ../ml-slider.php:800
+msgid "Swirl"
+msgstr "Ãnvârtire"
+
+#: ../ml-slider.php:801
+msgid "Rain"
+msgstr "CurgÄtor"
+
+#: ../ml-slider.php:802
+msgid "Straight"
+msgstr "Liniar"
+
+#: ../ml-slider.php:803
+msgid "Slide Down"
+msgstr "Glisaţi în Jos"
+
+#: ../ml-slider.php:804
+msgid "Slice Up"
+msgstr "Decupaţi Sus"
+
+#: ../ml-slider.php:805
+msgid "Slide Up Left"
+msgstr "Decupaţi în Stânga Sus"
+
+#: ../ml-slider.php:806
+msgid "Slice Up Down"
+msgstr "Decupaţi Sus Jos"
+
+#: ../ml-slider.php:807
+msgid "Slide Up Down Left"
+msgstr "Decupaţi în Sânga Sus Jos"
+
+#: ../ml-slider.php:808
+msgid "Fold"
+msgstr "Pliaţi"
+
+#: ../ml-slider.php:809
+msgid "Fade"
+msgstr "Apunere"
+
+#: ../ml-slider.php:810
+msgid "Slide In Right"
+msgstr "Glisare Spre Dreapta"
+
+#: ../ml-slider.php:811
+msgid "Slide In Left"
+msgstr "Glisare Spre Stânga"
+
+#: ../ml-slider.php:812
+msgid "Box Random"
+msgstr "Caseta Aleatoriu"
+
+#: ../ml-slider.php:813
+msgid "Box Rain"
+msgstr "Caseta CurgÄtor"
+
+#: ../ml-slider.php:814
+msgid "Box Rain Reverse"
+msgstr "Caseta CurgÄtor Invers"
+
+#: ../ml-slider.php:815
+msgid "Box Rain Grow Reverse"
+msgstr "Caseta CurgÄtor CrescÄtor Invers"
+
+#: ../ml-slider.php:816
+msgid "Slide"
+msgstr "Glisaţi"
+
+#: ../ml-slider.php:823
+msgid "Theme"
+msgstr "TemÄ"
+
+#: ../ml-slider.php:825
+msgid "Slideshow theme"
+msgstr "Diapozitiv temÄ"
+
+#: ../ml-slider.php:827
+msgid "Default"
+msgstr "Implicit"
+
+#: ../ml-slider.php:828
+msgid "Dark (Nivo)"
+msgstr "Dark (Nivo)"
+
+#: ../ml-slider.php:829
+msgid "Light (Nivo)"
+msgstr "Light (Nivo)"
+
+#: ../ml-slider.php:830
+msgid "Bar (Nivo)"
+msgstr "Bar (Nivo)"
+
+#: ../ml-slider.php:836
+msgid "Arrows"
+msgstr "SÄgeÅ£i"
+
+#: ../ml-slider.php:839
+msgid "Show the previous/next arrows"
+msgstr "AfiÅaÅ£i sÄgeÅ£ile Ãnapoi/Ãnainte"
+
+#: ../ml-slider.php:844
+msgid "Navigation"
+msgstr "Navigare"
+
+#: ../ml-slider.php:847
+msgid "Show the slide navigation bullets"
+msgstr "AfiÅaÅ£i bulinele de navigare ale diapozitivului"
+
+#: ../ml-slider.php:849
+msgid "Hidden"
+msgstr "Ascuns"
+
+#: ../ml-slider.php:850
+msgid "Dots"
+msgstr "Puncte (buline)"
+
+#: ../ml-slider.php:851
+msgid "Thumbnails (Pro)"
+msgstr "Miniaturi (Pro)"
+
+#: ../ml-slider.php:862
+msgid "Title"
+msgstr "Titlu"
+
+#: ../ml-slider.php:863
+msgid "Slideshow title"
+msgstr "Titlu diapozitiv"
+
+#: ../ml-slider.php:877
+msgid "Advanced Settings"
+msgstr "SetÄri Avansate"
+
+#: ../ml-slider.php:886
+msgid "Stretch"
+msgstr "Ãntindere(extindere)"
+
+#: ../ml-slider.php:888
+msgid "100% wide output"
+msgstr "lÄrgime 100%"
+
+#: ../ml-slider.php:890
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "ExtindeÅ£i diapozitivul pentru încadrare optimÄ"
+
+#: ../ml-slider.php:895
+msgid "Center align"
+msgstr "Aliniere centralÄ"
+
+#: ../ml-slider.php:898
+msgid "Center align the slideshow"
+msgstr "Alinierea centralÄ a diapozitivului"
+
+#: ../ml-slider.php:903
+msgid "Auto play"
+msgstr "Redare automatÄ"
+
+#: ../ml-slider.php:906
+msgid "Transition between slides automatically"
+msgstr "TranziÅ£ie automatÄ Ã®ntre diapozitive"
+
+#: ../ml-slider.php:911
+msgid "Smart crop"
+msgstr "Decupare inteligentÄ"
+
+#: ../ml-slider.php:914
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+"Decupare InteligentÄ se asigurÄ cÄ diapozitivele sunt decupate la un raport "
+"din care rezultÄ un diapozitiv la mÄrimea doritÄ"
+
+#: ../ml-slider.php:919
+msgid "Carousel mode"
+msgstr "Modul Carusel"
+
+#: ../ml-slider.php:922
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr ""
+"AfiÅaÅ£i mai multe diapozitive simultan. Dimensiunea diapozitivului va fi de "
+"100% ."
+
+#: ../ml-slider.php:930
+msgid "Randomise the order of the slides"
+msgstr "Sortaţi ordinea diapozitivelor"
+
+#: ../ml-slider.php:935
+msgid "Hover pause"
+msgstr "PauzÄ la planare cursor"
+
+#: ../ml-slider.php:938
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr ""
+"PuneÅ£i pauzÄ diapozitivului la planarea cursorului , apoi reluaÅ£i când "
+"planarea cursorului înceteazÄ."
+
+#: ../ml-slider.php:943
+msgid "Reverse"
+msgstr "Invers"
+
+#: ../ml-slider.php:946
+msgid "Reverse the animation direction"
+msgstr "Inversaţi direcţia animaţiei"
+
+#: ../ml-slider.php:956
+msgid "Slide delay"
+msgstr "Temporizare diapozitiv"
+
+#: ../ml-slider.php:958
+msgid "How long to display each slide, in milliseconds"
+msgstr "Durata de afiÅare a fiecÄrui diapozitiv , în milisecunde"
+
+#: ../ml-slider.php:959 ../ml-slider.php:972 ../ml-slider.php:985
+#: ../ml-slider.php:1061 ../ml-slider.php:1087
+msgid "ms"
+msgstr "ms"
+
+#: ../ml-slider.php:969
+msgid "Animation speed"
+msgstr "Viteza animaţiei"
+
+#: ../ml-slider.php:971
+msgid "Set the speed of animations, in milliseconds"
+msgstr "Setaţi viteza animaţiilor, în milisecunde"
+
+#: ../ml-slider.php:982 ../ml-slider.php:984
+msgid "Number of slices"
+msgstr "NumÄrul decupÄturilor"
+
+#: ../ml-slider.php:995 ../ml-slider.php:997 ../ml-slider.php:1008
+#: ../ml-slider.php:1010
+msgid "Number of squares"
+msgstr "NumÄrul pÄtratelor"
+
+#: ../ml-slider.php:1016
+msgid "Slide direction"
+msgstr "Direcţie de glisare"
+
+#: ../ml-slider.php:1018
+msgid "Select the sliding direction"
+msgstr "Selectaţi direcţia de glisare"
+
+#: ../ml-slider.php:1021
+msgid "Horizontal"
+msgstr "Orizontal"
+
+#: ../ml-slider.php:1022
+msgid "Vertical"
+msgstr "Vertical"
+
+#: ../ml-slider.php:1028
+msgid "Easing"
+msgstr "Easing"
+
+#: ../ml-slider.php:1030
+msgid "Animation easing effect"
+msgstr "Efectul de easing al animaţiei"
+
+#: ../ml-slider.php:1037
+msgid "Previous text"
+msgstr "Textul anterior"
+
+#: ../ml-slider.php:1039
+msgid "Set the text for the 'previous' direction item"
+msgstr "Setaţi textul pentru elementul din direcţia 'anterior'"
+
+#: ../ml-slider.php:1045
+msgid "Next text"
+msgstr "Textul urmator"
+
+#: ../ml-slider.php:1047
+msgid "Set the text for the 'next' direction item"
+msgstr "Setaţi textul pentru elementul din direcţia 'urmator'"
+
+#: ../ml-slider.php:1058
+msgid "Square delay"
+msgstr "Temporizare casetÄ(pÄtrat)"
+
+#: ../ml-slider.php:1060
+msgid "Delay between squares in ms"
+msgstr "Temporizare între casete în ms"
+
+#: ../ml-slider.php:1071
+msgid "Opacity"
+msgstr "Opacitate"
+
+#: ../ml-slider.php:1073
+msgid "Opacity of title and navigation"
+msgstr "Opacitate titlu Åi navigaÅ£ie"
+
+#: ../ml-slider.php:1084
+msgid "Caption speed"
+msgstr "Viteza titlu"
+
+#: ../ml-slider.php:1086
+msgid "Set the fade in speed of the caption"
+msgstr "Setaţi viteza de apunere a titlului"
+
+#: ../ml-slider.php:1093
+msgid "Developer options"
+msgstr "Opţiuni dezvoltator"
+
+#: ../ml-slider.php:1098
+msgid "CSS classes"
+msgstr "Clase CSS"
+
+#: ../ml-slider.php:1100
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr ""
+"SpecificaÅ£i orice Clase CSS pe care aÅ£i dorii sÄ fie adÄugate la ambalatorul "
+"diapozitivului"
+
+#: ../ml-slider.php:1106
+msgid "Print CSS"
+msgstr "Publicare CSS"
+
+#: ../ml-slider.php:1109
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "Prin debifarea acesteia doriÅ£i sÄ includeÅ£i propriul dvs. CSS"
+
+#: ../ml-slider.php:1114
+msgid "Print JS"
+msgstr "Publicare JS"
+
+#: ../ml-slider.php:1117
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "Prin debifarea acesteia doriÅ£i sÄ includeÅ£i propriul dvs. Javascript"
+
+#: ../ml-slider.php:1122
+msgid "No conflict mode"
+msgstr "Modul farÄ conflict"
+
+#: ../ml-slider.php:1125
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr "Temporizare în adÄugarea clasei flexslider la diapozitiv"
+
+#: ../ml-slider.php:1139
+msgid "Usage"
+msgstr "Utilizare"
+
+#: ../ml-slider.php:1142
+msgid "Shortcode"
+msgstr "Cod scurt"
+
+#: ../ml-slider.php:1143
+msgid "Template Include"
+msgstr "Åablonul Include"
+
+#: ../ml-slider.php:1147
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+"CopiaÅ£i Åi lipiÅ£i codul scurt direct in orice postare sau pagina Wordpress"
+
+#: ../ml-slider.php:1150
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+"CopiaÅ£i Åi lipiÅ£i acest cod într-un fiÅier Åablon pentru a include "
+"diapozitivul in tema dvs."
+
+#: ../ml-slider.php:1179
+msgid "Delete Slider"
+msgstr "Återgere Diapozitiv"
+
+#: ../ml-slider.php:1190
+msgid "Slides"
+msgstr "Diapozitive"
+
+#: ../ml-slider.php:1193 ../ml-slider.php:1194
+msgid "Add Slide"
+msgstr "AdÄugare Diapozitiv"
+
+#: ../ml-slider.php:1224
+msgid "Select slideshow to insert into post"
+msgstr "SelectaÅ£i diapozitivul pe care doriÅ£i sÄ-l inseraÅ£i în postare"
+
+#: ../ml-slider.php:1227
+msgid "Add slider"
+msgstr "AdÄugare diapozitiv"
+
+#: ../ml-slider.php:1258
+msgid "Insert Meta Slider"
+msgstr "Inserare Meta Slider"
+
+#: ../ml-slider.php:1260
+msgid "Choose slideshow"
+msgstr "Alegeţi diapozitiv"
+
+#: ../ml-slider.php:1267 ../inc/metaslider.widget.class.php:124
+msgid "No slideshows found"
+msgstr "Nici un diapozitiv gÄsit"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr "Meta Slider"
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Title:"
+msgstr "Titlu"
+
+#: ../inc/metaslider.widget.class.php:114
+msgid "Select Slider:"
+msgstr "Selectaţi Diapozitivul"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr ""
+"Verificarea de securitate a eÅuat. ReîmprospÄtaÅ£i pagina Åi încercaÅ£i din "
+"nou."
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr ""
+"EÅuare în adaugarea diapozitivului. Diapozitivul existÄ deja în diapozitive."
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr ""
+"EÅuare în adaugarea diapozitivului. Diapozitivul nu este de tip 'imagine'."
+
+#: ../inc/slide/metaslide.image.class.php:110
+msgid "Image Slide"
+msgstr "Imagine Diapozitiv"
+
+#: ../inc/slide/metaslide.image.class.php:115
+msgid "General"
+msgstr "General"
+
+#: ../inc/slide/metaslide.image.class.php:116
+msgid "SEO"
+msgstr "SEO"
+
+#: ../inc/slide/metaslide.image.class.php:121
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr "Avertisment: Imaginea nu existÄ. VÄ rugÄm sÄ reîncÄrcaÅ£i imaginea."
+
+#: ../inc/slide/metaslide.image.class.php:130
+msgid "Image Title Text"
+msgstr "Titlu Imagine"
+
+#: ../inc/slide/metaslide.image.class.php:132
+msgid "Image Alt Text"
+msgstr "Text Alt Imagine"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-ru_RU.mo b/wp-content/plugins/ml-slider/languages/metaslider-ru_RU.mo
new file mode 100644
index 0000000..a7d5a97
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-ru_RU.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-ru_RU.po b/wp-content/plugins/ml-slider/languages/metaslider-ru_RU.po
new file mode 100644
index 0000000..ddee32f
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-ru_RU.po
@@ -0,0 +1,782 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: Meta Slider v2.8-beta\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2014-04-25 01:29:30+0000\n"
+"Last-Translator: admin \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=3; plural=n%100/10==1 ? 2 : n%10==1 ? 0 : (n+9)%10>3 ? 2 : 1;\n"
+"X-Generator: CSL v1.x\n"
+"X-Poedit-Language: Russian\n"
+"X-Poedit-Country: RUSSIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
+"X-Poedit-Basepath: ../\n"
+"X-Poedit-Bookmarks: \n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Textdomain-Support: yes"
+
+#. translators: plugin header field 'Name'
+#: inc/metaslider.widget.class.php:18
+#: ml-slider.php:0
+#@ metaslider
+msgid "Meta Slider"
+msgstr "ÐеÑа ÑлайдеÑ"
+
+#: inc/metaslider.widget.class.php:108
+#@ metaslider
+msgid "Title:"
+msgstr "Ðазвание:"
+
+#: inc/metaslider.widget.class.php:111
+#@ metaslider
+msgid "Select Slider:"
+msgstr "ÐÑбеÑиÑе ÑлайдеÑ:"
+
+#: inc/metaslider.widget.class.php:121
+#: ml-slider.php:1494
+#@ metaslider
+msgid "No slideshows found"
+msgstr "Ðе найдено ни одного Ñлайд-ÑоÑ"
+
+#: inc/slide/metaslide.image.class.php:23
+#@ metaslider
+msgid "Security check failed. Refresh page and try again."
+msgstr "ÐÑовеÑка безопаÑноÑÑи не ÑдалаÑÑ. ÐбновиÑÑ ÑÑÑаниÑÑ Ð¸ попÑобÑйÑе еÑе Ñаз."
+
+#: inc/slide/metaslide.image.class.php:36
+#@ metaslider
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr "ÐобавиÑÑ Ñлайд не ÑдалоÑÑ. Такой Ñлайд Ñже ÑÑÑеÑÑвÑÐµÑ Ð² Ñлайд-ÑоÑ."
+
+#: inc/slide/metaslide.image.class.php:38
+#@ metaslider
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr "ÐобавиÑÑ Ñлайд не ÑдалоÑÑ. ÐÑÐ¾Ñ Ñлайд не ÑвлÑеÑÑÑ Ð¸Ð·Ð¾Ð±Ñажением."
+
+#: inc/slide/metaslide.image.class.php:101
+#: ml-slider.php:381
+#@ metaslider
+msgid "Caption"
+msgstr "ÐпиÑание"
+
+#: inc/slide/metaslide.image.class.php:102
+#: ml-slider.php:382
+#@ metaslider
+msgid "New Window"
+msgstr "ÐÑкÑÑваÑÑ Ð² новом окне"
+
+#: inc/slide/metaslide.image.class.php:103
+#: ml-slider.php:380
+#@ metaslider
+msgid "URL"
+msgstr "СÑÑлка (URL)"
+
+#: inc/slide/metaslide.image.class.php:104
+#@ metaslider
+msgid "Image Slide"
+msgstr "Слайд"
+
+#: inc/slide/metaslide.image.class.php:118
+#@ metaslider
+msgid "General"
+msgstr "ÐÑновное"
+
+#: inc/slide/metaslide.image.class.php:119
+#@ metaslider
+msgid "SEO"
+msgstr "CEO"
+
+#: inc/slide/metaslide.image.class.php:124
+#@ metaslider
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr "Ðнимание: даннÑе изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð½Ðµ ÑÑÑеÑÑвÑÑÑ. ÐожалÑйÑÑа, загÑÑзиÑÑ Ð¸Ð·Ð¾Ð±Ñажение еÑе Ñаз."
+
+#: inc/slide/metaslide.image.class.php:133
+#@ metaslider
+msgid "Image Title Text"
+msgstr "Title изобÑажниÑ"
+
+#: inc/slide/metaslide.image.class.php:135
+#@ metaslider
+msgid "Image Alt Text"
+msgstr "Alt изобÑажениÑ"
+
+#. translators: plugin header field 'PluginURI'
+#: ml-slider.php:0
+#@ metaslider
+msgid "http://www.metaslider.com"
+msgstr "http://www.metaslider.com"
+
+#. translators: plugin header field 'Description'
+#: ml-slider.php:0
+#@ metaslider
+msgid "Easy to use slideshow plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides."
+msgstr "ÐÑоÑÑой в иÑполÑзовании Ñлайд-ÑÐ¾Ñ Ð¿Ð»Ð°Ð³Ð¸Ð½. СоздавайÑе СÐÐ-опÑимизиÑованнÑе адапÑивнÑе Ñлайд-ÑÐ¾Ñ Ñ Nivo Slider, Flex Slider, Coin Slider и Responsive Slides."
+
+#. translators: plugin header field 'Author'
+#: ml-slider.php:0
+#@ metaslider
+msgid "Matcha Labs"
+msgstr "Matcha Labs"
+
+#. translators: plugin header field 'AuthorURI'
+#: ml-slider.php:0
+#@ metaslider
+msgid "http://www.matchalabs.com"
+msgstr "http://www.matchalabs.com"
+
+#. translators: plugin header field 'Version'
+#: ml-slider.php:0
+#@ metaslider
+msgid "2.8-beta"
+msgstr "2.8-beta"
+
+#: ml-slider.php:328
+#@ metaslider
+msgid "Documentation"
+msgstr "ÐокÑменÑаÑиÑ"
+
+#: ml-slider.php:383
+#@ metaslider
+msgid "Are you sure?"
+msgstr "ÐÑ ÑвеÑенÑ?"
+
+#: ml-slider.php:388
+#@ metaslider
+msgid "Caution: This setting is for advanced developers only. If you're unsure, leave it checked."
+msgstr "Ðнимание: Ð´Ð°Ð½Ð½Ð°Ñ Ð½Ð°ÑÑÑойка ÑолÑко Ð´Ð»Ñ Ð¾Ð¿ÑÑнÑÑ
полÑзоваÑелей. ÐÑли Ð²Ñ Ð½Ðµ ÑвеÑенÑ, оÑÑавÑÑе ÐµÑ Ð¾ÑмеÑенной."
+
+#: ml-slider.php:437
+#@ metaslider
+msgid "Image"
+msgstr "ÐзобÑажение"
+
+#: ml-slider.php:438
+#@ metaslider
+msgid "Add to slider"
+msgstr "ÐобавиÑÑ Ð² ÑлайдеÑ"
+
+#: ml-slider.php:464
+#@ metaslider
+msgid "Post Feed"
+msgstr "ÐенÑа запиÑей"
+
+#: ml-slider.php:465
+#@ metaslider
+msgid "Vimeo"
+msgstr "Vimeo"
+
+#: ml-slider.php:466
+#@ metaslider
+msgid "YouTube"
+msgstr "YouTube"
+
+#: ml-slider.php:467
+#@ metaslider
+msgid "Layer Slide"
+msgstr "Слайд-Ñлой"
+
+#: ml-slider.php:584
+#@ metaslider
+msgid "New Slider"
+msgstr "ÐовÑй ÑлайдеÑ"
+
+#: ml-slider.php:903
+#@ metaslider
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr "Ðовое Ñлайд-ÑÐ¾Ñ Ñоздано. ÐажмиÑе ÐºÐ½Ð¾Ð¿ÐºÑ \"ÐобавиÑÑ Ñлайд\", ÑÑÐ¾Ð±Ñ Ð½Ð°ÑаÑÑ ÑабоÑÑ!"
+
+#: ml-slider.php:920
+#@ metaslider
+msgid "or"
+msgstr "или"
+
+#: ml-slider.php:921
+#@ metaslider
+msgid "Add New Slideshow"
+msgstr "ÐобавиÑÑ Ð½Ð¾Ð²Ð¾Ðµ Ñлайд-ÑоÑ"
+
+#: ml-slider.php:937
+#@ metaslider
+msgid "Create your first slideshow"
+msgstr "СоздайÑе ÐаÑе пеÑвое Ñлайд-ÑоÑ"
+
+#: ml-slider.php:956
+#@ metaslider
+msgid "Slides"
+msgstr "СлайдÑ"
+
+#: ml-slider.php:959
+#: ml-slider.php:960
+#@ metaslider
+msgid "Add Slide"
+msgstr "ÐобавиÑÑ Ñлайд"
+
+#: ml-slider.php:980
+#@ metaslider
+msgid "Settings"
+msgstr "ÐаÑÑÑойки"
+
+#: ml-slider.php:981
+#@ metaslider
+msgid "Save"
+msgstr "СоÑ
ÑаниÑÑ"
+
+#: ml-slider.php:982
+#@ metaslider
+msgid "Save & Preview"
+msgstr "ÐÑоÑмоÑÑ"
+
+#: ml-slider.php:995
+#@ metaslider
+msgid "Flex Slider"
+msgstr "Flex Slider"
+
+#: ml-slider.php:996
+#@ metaslider
+msgid "R. Slides"
+msgstr "R. Slides"
+
+#: ml-slider.php:997
+#@ metaslider
+msgid "Nivo Slider"
+msgstr "Nivo Slider"
+
+#: ml-slider.php:998
+#@ metaslider
+msgid "Coin Slider"
+msgstr "Coin Slider"
+
+#: ml-slider.php:1009
+#: ml-slider.php:1243
+#@ metaslider
+msgid "Width"
+msgstr "ШиÑина"
+
+#: ml-slider.php:1011
+#@ metaslider
+msgid "Slideshow width"
+msgstr "ШиÑина Ñлайд-ÑоÑ"
+
+#: ml-slider.php:1012
+#: ml-slider.php:1025
+#: ml-slider.php:1170
+#@ metaslider
+msgid "px"
+msgstr "пикÑелей"
+
+#: ml-slider.php:1022
+#: ml-slider.php:1256
+#@ metaslider
+msgid "Height"
+msgstr "ÐÑÑоÑа"
+
+#: ml-slider.php:1024
+#@ metaslider
+msgid "Slideshow height"
+msgstr "ÐÑÑоÑа Ñлайд-ÑоÑ"
+
+#: ml-slider.php:1031
+#@ metaslider
+msgid "Effect"
+msgstr "ÐÑÑекÑ"
+
+#: ml-slider.php:1033
+#@ metaslider
+msgid "Slide transition effect"
+msgstr "ÐÑÑÐµÐºÑ ÑÐ¼ÐµÐ½Ñ Ñлайдов"
+
+#: ml-slider.php:1035
+#: ml-slider.php:1175
+#@ metaslider
+msgid "Random"
+msgstr "СлÑÑайно"
+
+#: ml-slider.php:1036
+#@ metaslider
+msgid "Swirl"
+msgstr "ÐÑÑÑение"
+
+#: ml-slider.php:1037
+#@ metaslider
+msgid "Rain"
+msgstr "ÐождÑ"
+
+#: ml-slider.php:1038
+#@ metaslider
+msgid "Straight"
+msgstr "ÐлаÑÑиÑеÑкий"
+
+#: ml-slider.php:1039
+#@ metaslider
+msgid "Slide Down"
+msgstr "СколÑжение вниз"
+
+#: ml-slider.php:1040
+#@ metaslider
+msgid "Slice Up"
+msgstr "Сдвиг"
+
+#: ml-slider.php:1041
+#@ metaslider
+msgid "Slide Up Left"
+msgstr "СколÑжение ввеÑÑ
влево"
+
+#: ml-slider.php:1042
+#@ metaslider
+msgid "Slice Up Down"
+msgstr "Сдвиг вниз"
+
+#: ml-slider.php:1043
+#@ metaslider
+msgid "Slide Up Down Left"
+msgstr "Сдвиг влево вниз"
+
+#: ml-slider.php:1044
+#@ metaslider
+msgid "Fold"
+msgstr "ÐалÑзи"
+
+#: ml-slider.php:1045
+#@ metaslider
+msgid "Fade"
+msgstr "РаÑÑвоÑение"
+
+#: ml-slider.php:1046
+#@ metaslider
+msgid "Slide In Right"
+msgstr "СколÑжение впÑаво"
+
+#: ml-slider.php:1047
+#@ metaslider
+msgid "Slide In Left"
+msgstr "СколÑжение влево"
+
+#: ml-slider.php:1048
+#@ metaslider
+msgid "Box Random"
+msgstr "СлÑÑайнÑе квадÑаÑÑ"
+
+#: ml-slider.php:1049
+#@ metaslider
+msgid "Box Rain"
+msgstr "Ðозаика"
+
+#: ml-slider.php:1050
+#@ metaslider
+msgid "Box Rain Reverse"
+msgstr "ÐбÑаÑÐ½Ð°Ñ Ð¼Ð¾Ð·Ð°Ð¸ÐºÐ°"
+
+#: ml-slider.php:1051
+#@ metaslider
+msgid "Box Rain Grow Reverse"
+msgstr "ÐозÑаÑÑаÑÑÐ°Ñ Ð¼Ð¾Ð·Ð°Ð¸ÐºÐ°"
+
+#: ml-slider.php:1052
+#@ metaslider
+msgid "Slide"
+msgstr "СколÑжение"
+
+#: ml-slider.php:1059
+#@ metaslider
+msgid "Theme"
+msgstr "Ðизайн"
+
+#: ml-slider.php:1061
+#@ metaslider
+msgid "Slideshow theme"
+msgstr "Ðизайн Ñлайд-ÑоÑ"
+
+#: ml-slider.php:1063
+#@ metaslider
+msgid "Default"
+msgstr "Ðо ÑмолÑаниÑ"
+
+#: ml-slider.php:1064
+#@ metaslider
+msgid "Dark (Nivo)"
+msgstr "ТемнÑй (Nivo)"
+
+#: ml-slider.php:1065
+#@ metaslider
+msgid "Light (Nivo)"
+msgstr "СвеÑлÑй (Nivo)"
+
+#: ml-slider.php:1066
+#@ metaslider
+msgid "Bar (Nivo)"
+msgstr "ÐлиÑка (Nivo)"
+
+#: ml-slider.php:1072
+#@ metaslider
+msgid "Arrows"
+msgstr "СÑÑелоÑки"
+
+#: ml-slider.php:1075
+#@ metaslider
+msgid "Show the previous/next arrows"
+msgstr "ÐоказÑваÑÑ ÑÑÑелки впеÑед/назад"
+
+#: ml-slider.php:1080
+#@ metaslider
+msgid "Navigation"
+msgstr "ÐавигаÑиÑ"
+
+#: ml-slider.php:1083
+#@ metaslider
+msgid "Show the slide navigation bullets"
+msgstr "ÐоказÑваÑÑ Ð¼ÐµÑки навигаÑии"
+
+#: ml-slider.php:1085
+#@ metaslider
+msgid "Hidden"
+msgstr "Ðе показÑваÑÑ"
+
+#: ml-slider.php:1086
+#@ metaslider
+msgid "Dots"
+msgstr "ТоÑки"
+
+#: ml-slider.php:1087
+#@ metaslider
+msgid "Thumbnails (Pro)"
+msgstr "ÐиниаÑÑÑÑ (Pro)"
+
+#: ml-slider.php:1098
+#@ metaslider
+msgid "Title"
+msgstr "Ðазвание"
+
+#: ml-slider.php:1099
+#@ metaslider
+msgid "Slideshow title"
+msgstr "Ðазвание Ñлай-ÑоÑ"
+
+#: ml-slider.php:1113
+#@ metaslider
+msgid "Advanced Settings"
+msgstr "РаÑÑиÑеннÑе наÑÑÑойки"
+
+#: ml-slider.php:1122
+#@ metaslider
+msgid "Stretch"
+msgstr "РаÑÑÑнÑÑÑ"
+
+#: ml-slider.php:1124
+#@ metaslider
+msgid "100% wide output"
+msgstr "Ðо вÑÑ ÑиÑинÑ"
+
+#: ml-slider.php:1126
+#@ metaslider
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "РаÑÑÑÐ³Ð¸Ð²Ð°ÐµÑ Ñлайд-ÑÐ¾Ñ Ð½Ð° вÑÑ ÑиÑÐ¸Ð½Ñ ÑодиÑелÑÑкого ÑлеменÑа"
+
+#: ml-slider.php:1131
+#@ metaslider
+msgid "Center align"
+msgstr "ÐÑÑавнÑÑÑ Ð¿Ð¾ ÑенÑÑÑ"
+
+#: ml-slider.php:1134
+#@ metaslider
+msgid "Center align the slideshow"
+msgstr "ЦенÑÑиÑÑÐµÑ Ñлайд-ÑоÑ"
+
+#: ml-slider.php:1139
+#@ metaslider
+msgid "Auto play"
+msgstr "ÐоÑпÑоизводиÑÑ Ð°Ð²ÑомаÑиÑеÑки"
+
+#: ml-slider.php:1142
+#@ metaslider
+msgid "Transition between slides automatically"
+msgstr "ÐадеÑжка Ð¼ÐµÐ¶Ð´Ñ Ñменой Ñлайдов опÑеделÑеÑÑÑ Ð°Ð²ÑомаÑиÑеÑки"
+
+#: ml-slider.php:1147
+#@ metaslider
+msgid "Smart crop"
+msgstr "ÐадÑиÑование"
+
+#: ml-slider.php:1150
+#@ metaslider
+msgid "Smart Crop ensures your responsive slides are cropped to a ratio that results in a consistent slideshow size"
+msgstr "Ð¡Ð»Ð°Ð¹Ð´Ñ Ð±ÑдÑÑ Ð¾Ð±ÑÐµÐ·Ð°Ð½Ñ Ñ Ð¾Ð¿ÑеделÑннÑм ÑооÑноÑением, ÑÑÐ¾Ð±Ñ ÑÐ°Ð·Ð¼ÐµÑ Ñлайд-ÑÐ¾Ñ Ð½Ðµ изменÑлÑÑ"
+
+#: ml-slider.php:1155
+#@ metaslider
+msgid "Carousel mode"
+msgstr "Режим каÑÑÑели"
+
+#: ml-slider.php:1158
+#@ metaslider
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr "ÐоказÑваÑÑ Ð½ÐµÑколÑко Ñлайдов одновÑеменно. Слайд-ÑÐ¾Ñ Ð±ÑÐ´ÐµÑ Ð¸Ð¼ÐµÑÑ ÑиÑÐ¸Ð½Ñ 100%."
+
+#: ml-slider.php:1166
+#@ metaslider
+msgid "Carousel margin"
+msgstr "ÐÑÑÑÑп каÑÑÑели"
+
+#: ml-slider.php:1169
+#@ metaslider
+msgid "Pixel margin between slides in carousel."
+msgstr "ÐÑÑÑÑп (в пикÑелÑÑ
) Ð¼ÐµÐ¶Ð´Ñ Ñлайдами в каÑÑÑели"
+
+#: ml-slider.php:1178
+#@ metaslider
+msgid "Randomise the order of the slides"
+msgstr "СлÑÑайнÑй поÑÑдок Ñалйдов"
+
+#: ml-slider.php:1183
+#@ metaslider
+msgid "Hover pause"
+msgstr "ÐаÑза пÑи наведении мÑÑи"
+
+#: ml-slider.php:1186
+#@ metaslider
+msgid "Pause the slideshow when hovering over slider, then resume when no longer hovering."
+msgstr "ÐÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ñлайд-ÑÐ¾Ñ Ð¿Ñи наведении на него мÑÑки и Ñнова возобновлÑеÑ, когда мÑÑка ÑбÑана."
+
+#: ml-slider.php:1191
+#@ metaslider
+msgid "Reverse"
+msgstr "РобÑаÑном поÑÑдке"
+
+#: ml-slider.php:1194
+#@ metaslider
+msgid "Reverse the animation direction"
+msgstr "ÐзмениÑÑ Ð¿Ð¾ÑÑдок Ñлайдов на обÑаÑнÑй"
+
+#: ml-slider.php:1204
+#@ metaslider
+msgid "Slide delay"
+msgstr "ÐÑÐµÐ¼Ñ Ð¿Ð¾ÐºÐ°Ð·Ð° Ñлайда"
+
+#: ml-slider.php:1206
+#@ metaslider
+msgid "How long to display each slide, in milliseconds"
+msgstr "Ðак долго бÑÐ´ÐµÑ Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½ каждÑй Ñлайд (в миллиÑекÑндаÑ
)"
+
+#: ml-slider.php:1207
+#: ml-slider.php:1220
+#: ml-slider.php:1233
+#: ml-slider.php:1309
+#: ml-slider.php:1335
+#@ metaslider
+msgid "ms"
+msgstr "мÑ"
+
+#: ml-slider.php:1217
+#@ metaslider
+msgid "Animation speed"
+msgstr "СкоÑоÑÑÑ Ð°Ð½Ð¸Ð¼Ð°Ñии"
+
+#: ml-slider.php:1219
+#@ metaslider
+msgid "Set the speed of animations, in milliseconds"
+msgstr "УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ ÑкоÑоÑÑÑ Ð°Ð½Ð¸Ð¼Ð°Ñии (в миллиÑекÑндаÑ
)"
+
+#: ml-slider.php:1230
+#: ml-slider.php:1232
+#@ metaslider
+msgid "Number of slices"
+msgstr "ÐолиÑеÑÑво ÑекÑий"
+
+#: ml-slider.php:1243
+#: ml-slider.php:1245
+#: ml-slider.php:1256
+#: ml-slider.php:1258
+#@ metaslider
+msgid "Number of squares"
+msgstr "ÐолиÑеÑÑво квадÑаÑов"
+
+#: ml-slider.php:1264
+#@ metaslider
+msgid "Slide direction"
+msgstr "ÐапÑавление воÑпÑоизведениÑ"
+
+#: ml-slider.php:1266
+#@ metaslider
+msgid "Select the sliding direction"
+msgstr "ÐÑÐ±Ð¾Ñ Ð½Ð°Ð¿ÑÐ°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð¾ÑпÑоизведениÑ"
+
+#: ml-slider.php:1269
+#@ metaslider
+msgid "Horizontal"
+msgstr "ÐоÑизонÑалÑно"
+
+#: ml-slider.php:1270
+#@ metaslider
+msgid "Vertical"
+msgstr "ÐеÑÑикалÑно"
+
+#: ml-slider.php:1276
+#@ metaslider
+msgid "Easing"
+msgstr "Сглаживание"
+
+#: ml-slider.php:1278
+#@ metaslider
+msgid "Animation easing effect"
+msgstr "ÐнимиÑованнÑй ÑÑÑÐµÐºÑ ÑглаживаниÑ"
+
+#: ml-slider.php:1285
+#@ metaslider
+msgid "Previous text"
+msgstr "ТекÑÑ \"назад\""
+
+#: ml-slider.php:1287
+#@ metaslider
+msgid "Set the text for the 'previous' direction item"
+msgstr "УÑÑановиÑÑ ÑекÑÑ Ð´Ð»Ñ Ð¼ÐµÑки \"назад\" (пÑедÑдÑÑий Ñлайд)"
+
+#: ml-slider.php:1293
+#@ metaslider
+msgid "Next text"
+msgstr "ТекÑÑ \"впеÑед\""
+
+#: ml-slider.php:1295
+#@ metaslider
+msgid "Set the text for the 'next' direction item"
+msgstr "УÑÑановиÑÑ ÑекÑÑ Ð´Ð»Ñ Ð¼ÐµÑки \"впеÑед\" (ÑледÑÑÑий Ñлайд)"
+
+#: ml-slider.php:1306
+#@ metaslider
+msgid "Square delay"
+msgstr "ÐадеÑжка Ð¼ÐµÐ¶Ð´Ñ ÐºÐ²Ð°Ð´ÑаÑами"
+
+#: ml-slider.php:1308
+#@ metaslider
+msgid "Delay between squares in ms"
+msgstr "ÐадеÑжка Ð¼ÐµÐ¶Ð´Ñ ÐºÐ²Ð°Ð´ÑаÑами (в миллиÑекÑндаÑ
)"
+
+#: ml-slider.php:1319
+#@ metaslider
+msgid "Opacity"
+msgstr "ÐÑозÑаÑноÑÑÑ"
+
+#: ml-slider.php:1321
+#@ metaslider
+msgid "Opacity of title and navigation"
+msgstr "ÐÑозÑаÑноÑÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ñ Ð¸ навигаÑии"
+
+#: ml-slider.php:1332
+#@ metaslider
+msgid "Caption speed"
+msgstr "СкоÑоÑÑÑ Ð¾Ð¿Ð¸ÑаниÑ"
+
+#: ml-slider.php:1334
+#@ metaslider
+msgid "Set the fade in speed of the caption"
+msgstr "УÑÑановиÑÑ ÑкоÑоÑÑÑ ÑаÑÑвоÑÐµÐ½Ð¸Ñ Ð¾Ð¿Ð¸ÑаниÑ"
+
+#: ml-slider.php:1341
+#@ metaslider
+msgid "Developer options"
+msgstr "ÐпÑии Ð´Ð»Ñ ÑазÑабоÑÑиков"
+
+#: ml-slider.php:1346
+#@ metaslider
+msgid "CSS classes"
+msgstr "CSS клаÑÑÑ"
+
+#: ml-slider.php:1348
+#@ metaslider
+msgid "Specify any custom CSS Classes you would like to be added to the slider wrapper"
+msgstr "УкажиÑе лÑбÑе полÑзоваÑелÑÑкие CSS клаÑÑÑ, коÑоÑÑе Ð²Ñ Ñ
оÑиÑе добавиÑÑ Ðº конÑейнеÑÑ ÑлайдеÑа"
+
+#: ml-slider.php:1354
+#@ metaslider
+msgid "Print CSS"
+msgstr "ÐÑводиÑÑ CSS"
+
+#: ml-slider.php:1357
+#@ metaslider
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "СнимиÑе галоÑкÑ, еÑли ÐÑ Ñ
оÑиÑе иÑполÑзоваÑÑ Ñвой ÑобÑÑвеннÑй CSS"
+
+#: ml-slider.php:1362
+#@ metaslider
+msgid "Print JS"
+msgstr "ÐÑводиÑÑ JS"
+
+#: ml-slider.php:1365
+#@ metaslider
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "СнимиÑе галоÑкÑ, еÑли ÐÑ Ñ
оÑиÑе иÑполÑзоваÑÑ Ñвой ÑобÑÑвеннÑй Javascript"
+
+#: ml-slider.php:1370
+#@ metaslider
+msgid "No conflict mode"
+msgstr "ÐеÑконÑликÑнÑй Ñежим"
+
+#: ml-slider.php:1373
+#@ metaslider
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr "ÐадеÑжка пÑи добавлении клаÑÑа flexslider в ÑлайдÑоÑ"
+
+#: ml-slider.php:1387
+#@ metaslider
+msgid "Usage"
+msgstr "ÐÑполÑзование"
+
+#: ml-slider.php:1390
+#@ metaslider
+msgid "Shortcode"
+msgstr "ШоÑÑкод"
+
+#: ml-slider.php:1391
+#@ metaslider
+msgid "Template Include"
+msgstr "ÐÑÑавка в Ñаблон"
+
+#: ml-slider.php:1395
+#@ metaslider
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr "СкопиÑÑйÑе ÑоÑÑкод и вÑÑавÑÑе его в лÑбÑÑ ÑÑÑаниÑÑ Ð¸Ð»Ð¸ запиÑÑ ÐаÑего ÑайÑа"
+
+#: ml-slider.php:1398
+#@ metaslider
+msgid "Copy & paste this code into a template file to include the slideshow within your theme."
+msgstr "СкопиÑÑйÑе ÑÑÐ¾Ñ ÐºÐ¾Ð´ и вÑÑавÑÑе его в Ñайл Ñаблона , ÑÑÐ¾Ð±Ñ Ð´Ð¾Ð±Ð°Ð²Ð¸ÑÑ Ñлайд-ÑÐ¾Ñ Ð² ÐаÑÑ ÑемÑ"
+
+#: ml-slider.php:1427
+#@ metaslider
+msgid "Delete Slider"
+msgstr "УдалиÑÑ ÑлайдеÑ"
+
+#: ml-slider.php:1448
+#@ metaslider
+msgid "Select slideshow to insert into post"
+msgstr "ÐÑбеÑиÑе Ñлайд-ÑÐ¾Ñ Ð´Ð»Ñ Ð²ÑÑавки в запиÑÑ"
+
+#: ml-slider.php:1451
+#@ metaslider
+msgid "Add slider"
+msgstr "ÐобавиÑÑ ÑлайдеÑ"
+
+#: ml-slider.php:1485
+#@ metaslider
+msgid "Insert Meta Slider"
+msgstr "ÐÑÑавиÑÑ ÐеÑа СлайдеÑ"
+
+#: ml-slider.php:1487
+#@ metaslider
+msgid "Choose slideshow"
+msgstr "ÐÑбеÑиÑе ÑлайдÑоÑ"
+
+#: ml-slider.php:1511
+#@ metaslider
+msgid "Go Pro"
+msgstr "ÐолÑÑиÑÑ Pro"
+
+#: ml-slider.php:1567
+#@ metaslider
+msgid "Upgrade to Pro $19"
+msgstr "ÐбновиÑеÑÑ Ð´Ð¾ Pro за $19"
+
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-zh_CN.mo b/wp-content/plugins/ml-slider/languages/metaslider-zh_CN.mo
new file mode 100644
index 0000000..b15ab10
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-zh_CN.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-zh_CN.po b/wp-content/plugins/ml-slider/languages/metaslider-zh_CN.po
new file mode 100644
index 0000000..efeec2b
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-zh_CN.po
@@ -0,0 +1,631 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider-zh_CN\n"
+"POT-Creation-Date: 2013-12-16 17:32-0000\n"
+"PO-Revision-Date: 2013-12-16 17:32-0000\n"
+"Last-Translator: æéä¸ <181138991@qq.com>\n"
+"Language-Team: æéä¸ <181138991@qq.com>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.7\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:102
+msgid "Go Pro"
+msgstr "æ¥çä¸ä¸ç"
+
+#: ../ml-slider.php:156
+msgid "Image"
+msgstr "å¾å"
+
+#: ../ml-slider.php:157
+msgid "Add to slider"
+msgstr "æ·»å å°å¹»ç¯ç"
+
+#: ../ml-slider.php:177
+msgid "Post Feed"
+msgstr "æç« èµè®¯"
+
+#: ../ml-slider.php:178
+msgid "Vimeo"
+msgstr ""
+
+#: ../ml-slider.php:179
+msgid "YouTube"
+msgstr ""
+
+#: ../ml-slider.php:180
+msgid "Layer Slide"
+msgstr "å¹»ç¯ç"
+
+#: ../ml-slider.php:235 ../inc/slide/metaslide.image.class.php:103
+msgid "URL"
+msgstr ""
+
+#: ../ml-slider.php:236 ../inc/slide/metaslide.image.class.php:101
+msgid "Caption"
+msgstr "æ é¢"
+
+#: ../ml-slider.php:237 ../inc/slide/metaslide.image.class.php:102
+msgid "New Window"
+msgstr "æ°çªå£"
+
+#: ../ml-slider.php:238
+msgid "Are you sure?"
+msgstr "ä½ ç¡®å®åï¼"
+
+#: ../ml-slider.php:242
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr "注æï¼æ¤è®¾ç½®ä»
éç¨äºé«çº§å¼åã"
+
+#: ../ml-slider.php:278
+msgid "Upgrade to Pro $19"
+msgstr "å级å°ä¸ä¸ç$19"
+
+#: ../ml-slider.php:294
+msgid "Documentation"
+msgstr "ææ¡£"
+
+#: ../ml-slider.php:430
+msgid "New Slider"
+msgstr "æ°çæ»å"
+
+#: ../ml-slider.php:692
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr "å建æ°çå¹»ç¯çãç¹å»âæ·»å å¹»ç¯çâ以å¼å§æµè§ç½é¡µï¼"
+
+#: ../ml-slider.php:709
+msgid "or"
+msgstr "æ"
+
+#: ../ml-slider.php:710
+msgid "Add New Slideshow"
+msgstr "æ·»å æ°çå¹»ç¯ç"
+
+#: ../ml-slider.php:726
+msgid "Create your first slideshow"
+msgstr "å建第ä¸ä»½å¹»ç¯ç"
+
+#: ../ml-slider.php:744
+msgid "Settings"
+msgstr "设置"
+
+#: ../ml-slider.php:745
+msgid "Save"
+msgstr "ä¿å"
+
+#: ../ml-slider.php:746
+msgid "Save & Preview"
+msgstr "ä¿åå¹¶é¢è§"
+
+#: ../ml-slider.php:759
+msgid "Flex Slider"
+msgstr ""
+
+#: ../ml-slider.php:760
+msgid "Responsive"
+msgstr "ååº"
+
+#: ../ml-slider.php:761
+msgid "Nivo Slider"
+msgstr ""
+
+#: ../ml-slider.php:762
+msgid "Coin Slider"
+msgstr ""
+
+#: ../ml-slider.php:773 ../ml-slider.php:995
+msgid "Width"
+msgstr "宽度"
+
+#: ../ml-slider.php:775
+#, fuzzy
+msgid "Slideshow width"
+msgstr "å¹»ç¯çæ é¢"
+
+#: ../ml-slider.php:776 ../ml-slider.php:789
+msgid "px"
+msgstr ""
+
+#: ../ml-slider.php:786 ../ml-slider.php:1008
+msgid "Height"
+msgstr "é«åº¦"
+
+#: ../ml-slider.php:788
+#, fuzzy
+msgid "Slideshow height"
+msgstr "å¹»ç¯çæ é¢"
+
+#: ../ml-slider.php:795
+msgid "Effect"
+msgstr "ææ"
+
+#: ../ml-slider.php:797
+msgid "Slide transition effect"
+msgstr "å¹»ç¯çè¿æ¸¡ææ"
+
+#: ../ml-slider.php:799 ../ml-slider.php:927
+msgid "Random"
+msgstr "éæº"
+
+#: ../ml-slider.php:800
+msgid "Swirl"
+msgstr "漩涡"
+
+#: ../ml-slider.php:801
+msgid "Rain"
+msgstr "é¨"
+
+#: ../ml-slider.php:802
+msgid "Straight"
+msgstr "ç´"
+
+#: ../ml-slider.php:803
+msgid "Slide Down"
+msgstr "å䏿»å¨"
+
+#: ../ml-slider.php:804
+msgid "Slice Up"
+msgstr "åç"
+
+#: ../ml-slider.php:805
+msgid "Slide Up Left"
+msgstr "åå·¦æ»å¨"
+
+#: ../ml-slider.php:806
+msgid "Slice Up Down"
+msgstr "åçåä¸"
+
+#: ../ml-slider.php:807
+msgid "Slide Up Down Left"
+msgstr "å䏿»å¨"
+
+#: ../ml-slider.php:808
+msgid "Fold"
+msgstr "æ"
+
+#: ../ml-slider.php:809
+msgid "Fade"
+msgstr "褪è²"
+
+#: ../ml-slider.php:810
+msgid "Slide In Right"
+msgstr "å峿»å¨"
+
+#: ../ml-slider.php:811
+msgid "Slide In Left"
+msgstr "åå·¦æ»å¨"
+
+#: ../ml-slider.php:812
+msgid "Box Random"
+msgstr "éæº"
+
+#: ../ml-slider.php:813
+msgid "Box Rain"
+msgstr "ç®±å¼"
+
+#: ../ml-slider.php:814
+msgid "Box Rain Reverse"
+msgstr "ç®±å¼"
+
+#: ../ml-slider.php:815
+msgid "Box Rain Grow Reverse"
+msgstr ""
+
+#: ../ml-slider.php:816
+msgid "Slide"
+msgstr "æ»å¨"
+
+#: ../ml-slider.php:823
+msgid "Theme"
+msgstr "主é¢"
+
+#: ../ml-slider.php:825
+#, fuzzy
+msgid "Slideshow theme"
+msgstr "å¹»ç¯çæ é¢"
+
+#: ../ml-slider.php:827
+msgid "Default"
+msgstr ""
+
+#: ../ml-slider.php:828
+msgid "Dark (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:829
+msgid "Light (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:830
+msgid "Bar (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:836
+msgid "Arrows"
+msgstr "ç®å¤´"
+
+#: ../ml-slider.php:839
+msgid "Show the previous/next arrows"
+msgstr ""
+
+#: ../ml-slider.php:844
+msgid "Navigation"
+msgstr "导èª"
+
+#: ../ml-slider.php:847
+#, fuzzy
+msgid "Show the slide navigation bullets"
+msgstr "æ¾ç¤ºå¹»ç¯ç导èª"
+
+#: ../ml-slider.php:849
+msgid "Hidden"
+msgstr "éè"
+
+#: ../ml-slider.php:850
+msgid "Dots"
+msgstr "ç¹"
+
+#: ../ml-slider.php:851
+msgid "Thumbnails (Pro)"
+msgstr "缩ç¥å¾ï¼ä¸´ï¼"
+
+#: ../ml-slider.php:862
+msgid "Title"
+msgstr "æ é¢"
+
+#: ../ml-slider.php:863
+msgid "Slideshow title"
+msgstr "å¹»ç¯çæ é¢"
+
+#: ../ml-slider.php:877
+msgid "Advanced Settings"
+msgstr "âé«çº§è®¾ç½®â"
+
+#: ../ml-slider.php:886
+msgid "Stretch"
+msgstr ""
+
+#: ../ml-slider.php:888
+msgid "100% wide output"
+msgstr ""
+
+#: ../ml-slider.php:890
+#, fuzzy
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "å¨é¡µé¢å è½½å¯å¨å¹»ç¯ç"
+
+#: ../ml-slider.php:895
+msgid "Center align"
+msgstr "å±
ä¸å¯¹é½"
+
+#: ../ml-slider.php:898
+msgid "Center align the slideshow"
+msgstr "å±
ä¸å¯¹é½å¹»ç¯ç"
+
+#: ../ml-slider.php:903
+msgid "Auto play"
+msgstr "èªå¨ææ¾"
+
+#: ../ml-slider.php:906
+msgid "Transition between slides automatically"
+msgstr ""
+
+#: ../ml-slider.php:911
+msgid "Smart crop"
+msgstr "æºè½è£åª"
+
+#: ../ml-slider.php:914
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+"æºè½è£åªï¼å°æ¨çå¹»ç¯çå¾çè£åªå°ä¸ä¸ªç¸åæ¯ä¾ï¼ä½¿å
¶æ¾ç¤ºç»æå¨å¹»ç¯çä¸å¤§å°ä¿å"
+"ä¸è´ã"
+
+#: ../ml-slider.php:919
+msgid "Carousel mode"
+msgstr "ä¼ é带模å¼"
+
+#: ../ml-slider.php:922
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr ""
+
+#: ../ml-slider.php:930
+msgid "Randomise the order of the slides"
+msgstr "éæºé¡ºåºå¹»ç¯ç"
+
+#: ../ml-slider.php:935
+msgid "Hover pause"
+msgstr "æ¬åæ¶é´"
+
+#: ../ml-slider.php:938
+#, fuzzy
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr "å½é¼ æ æ¬åå¨å¾ç䏿¶æåå¹»ç¯ç"
+
+#: ../ml-slider.php:943
+msgid "Reverse"
+msgstr "é转"
+
+#: ../ml-slider.php:946
+msgid "Reverse the animation direction"
+msgstr "ååå¨ç»"
+
+#: ../ml-slider.php:956
+msgid "Slide delay"
+msgstr "æ»å¨å»¶è¿"
+
+#: ../ml-slider.php:958
+msgid "How long to display each slide, in milliseconds"
+msgstr "å¹»ç¯ççææ¾é´éï¼å使¯«ç§"
+
+#: ../ml-slider.php:959 ../ml-slider.php:972 ../ml-slider.php:985
+#: ../ml-slider.php:1061 ../ml-slider.php:1087
+msgid "ms"
+msgstr "毫ç§"
+
+#: ../ml-slider.php:969
+msgid "Animation speed"
+msgstr "å¨ç»é度"
+
+#: ../ml-slider.php:971
+msgid "Set the speed of animations, in milliseconds"
+msgstr "设置å¨ç»çé度ï¼å使¯«ç§"
+
+#: ../ml-slider.php:982 ../ml-slider.php:984
+msgid "Number of slices"
+msgstr "åçæ°"
+
+#: ../ml-slider.php:995 ../ml-slider.php:997 ../ml-slider.php:1008
+#: ../ml-slider.php:1010
+msgid "Number of squares"
+msgstr "æ¹æ ¼æ°"
+
+#: ../ml-slider.php:1016
+msgid "Slide direction"
+msgstr "æ»å¨æ¹å"
+
+#: ../ml-slider.php:1018
+msgid "Select the sliding direction"
+msgstr "éæ©çæ»å¨æ¹å"
+
+#: ../ml-slider.php:1021
+msgid "Horizontal"
+msgstr "横å"
+
+#: ../ml-slider.php:1022
+msgid "Vertical"
+msgstr "åç´"
+
+#: ../ml-slider.php:1028
+msgid "Easing"
+msgstr "æ¾"
+
+#: ../ml-slider.php:1030
+msgid "Animation easing effect"
+msgstr "å¨ç»å®½æ¾ææ"
+
+#: ../ml-slider.php:1037
+msgid "Previous text"
+msgstr "ä¸ä¸å¼ å¾ç"
+
+#: ../ml-slider.php:1039
+msgid "Set the text for the 'previous' direction item"
+msgstr "éæ©å¾ç为'ä¸ä¸å¼ '"
+
+#: ../ml-slider.php:1045
+msgid "Next text"
+msgstr "ä¸ä¸å¼ å¾ç"
+
+#: ../ml-slider.php:1047
+msgid "Set the text for the 'next' direction item"
+msgstr "éæ©å¾ç为'ä¸ä¸å¼ '"
+
+#: ../ml-slider.php:1058
+msgid "Square delay"
+msgstr "å»¶è¿"
+
+#: ../ml-slider.php:1060
+#, fuzzy
+msgid "Delay between squares in ms"
+msgstr "以毫ç§ä¸ºåä½"
+
+#: ../ml-slider.php:1071
+msgid "Opacity"
+msgstr "éæåº¦"
+
+#: ../ml-slider.php:1073
+msgid "Opacity of title and navigation"
+msgstr "æ é¢å导èªçéæåº¦"
+
+#: ../ml-slider.php:1084
+msgid "Caption speed"
+msgstr "é度"
+
+#: ../ml-slider.php:1086
+msgid "Set the fade in speed of the caption"
+msgstr "设置éåº¦çæ é¢æ·¡å
¥"
+
+#: ../ml-slider.php:1093
+#, fuzzy
+msgid "Developer options"
+msgstr "å¼å人åé项"
+
+#: ../ml-slider.php:1098
+msgid "CSS classes"
+msgstr "CSS ç±»"
+
+#: ../ml-slider.php:1100
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr "æå®çä»»ä½èªå®ä¹CSSç±»"
+
+#: ../ml-slider.php:1106
+msgid "Print CSS"
+msgstr "æ¾ç¤ºCSS"
+
+#: ../ml-slider.php:1109
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "åæ¶éä¸ï¼å使ç¨èªå·±çCSS"
+
+#: ../ml-slider.php:1114
+#, fuzzy
+msgid "Print JS"
+msgstr "æ¾ç¤ºJavaScript"
+
+#: ../ml-slider.php:1117
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "åæ¶éä¸ï¼å使ç¨èªå·±çJavascript"
+
+#: ../ml-slider.php:1122
+msgid "No conflict mode"
+msgstr ""
+
+#: ../ml-slider.php:1125
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1139
+msgid "Usage"
+msgstr "ç¨æ³"
+
+#: ../ml-slider.php:1142
+msgid "Shortcode"
+msgstr "ç®ç "
+
+#: ../ml-slider.php:1143
+msgid "Template Include"
+msgstr "使ç¨å¨ä¸»é¢ä»£ç ä¸ç代ç "
+
+#: ../ml-slider.php:1147
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+
+#: ../ml-slider.php:1150
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+
+#: ../ml-slider.php:1179
+msgid "Delete Slider"
+msgstr "å é¤å¹»ç¯ç"
+
+#: ../ml-slider.php:1190
+msgid "Slides"
+msgstr "å¹»ç¯ç"
+
+#: ../ml-slider.php:1193 ../ml-slider.php:1194
+msgid "Add Slide"
+msgstr "æ·»å å¹»ç¯ç"
+
+#: ../ml-slider.php:1224
+msgid "Select slideshow to insert into post"
+msgstr ""
+
+#: ../ml-slider.php:1227
+#, fuzzy
+msgid "Add slider"
+msgstr "æ·»å å°å¹»ç¯ç"
+
+#: ../ml-slider.php:1258
+msgid "Insert Meta Slider"
+msgstr ""
+
+#: ../ml-slider.php:1260
+#, fuzzy
+msgid "Choose slideshow"
+msgstr "没æå¹»ç¯ç"
+
+#: ../ml-slider.php:1267 ../inc/metaslider.widget.class.php:124
+msgid "No slideshows found"
+msgstr "没æå¹»ç¯ç"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr "æ¢
å¡å¹»ç¯ç"
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Title:"
+msgstr "æ é¢ï¼"
+
+#: ../inc/metaslider.widget.class.php:114
+msgid "Select Slider:"
+msgstr "鿩幻ç¯çï¼"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr "å®å
¨æ£æ¥å¤±è´¥ãå·æ°é¡µé¢ï¼ç¶åéè¯ã"
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr "æ æ³æ·»å å¹»ç¯çã"
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr "æªè½æ·»å å¹»ç¯çãå¹»ç¯çç±»å䏿£ç¡®'ã"
+
+#: ../inc/slide/metaslide.image.class.php:110
+#, fuzzy
+msgid "Image Slide"
+msgstr "å¹»ç¯ç"
+
+#: ../inc/slide/metaslide.image.class.php:115
+msgid "General"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:116
+msgid "SEO"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:121
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr "è¦åï¼å¾åæ°æ®ä¸åå¨ãè¯·éæ°ä¸ä¼ å¾çã"
+
+#: ../inc/slide/metaslide.image.class.php:130
+msgid "Image Title Text"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:132
+msgid "Image Alt Text"
+msgstr ""
+
+#~ msgid "Change the slider style"
+#~ msgstr "æ´æ¹æ»çé å"
+
+#~ msgid ""
+#~ "Display as carousel - when selected the effect and direction options will "
+#~ "be ignored."
+#~ msgstr "æ¾ç¤ºä¸ºæè½¬ - å½éæ©åå
¶ä»ææåæ¹å设置å°è¢«å¿½ç¥ã"
+
+#~ msgid "Version"
+#~ msgstr "çæ¬"
+
+#~ msgid "Size"
+#~ msgstr "大å°"
+
+#~ msgid "Mobile Friendly"
+#~ msgstr "ç§»å¨"
+
+#~ msgid "Set the initial size for the slides (width x height)"
+#~ msgstr "设置幻ç¯ççåå§å¤§å°ï¼ 宽 x é« ï¼"
+
+#~ msgid "Controls"
+#~ msgstr "æ§å¶"
+
+#~ msgid "Number of squares (width x height)"
+#~ msgstr "宽 x é«"
+
+#~ msgid "More Slide Types"
+#~ msgstr "æ´å¤å¹»ç¯çç±»å"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-zh_TW.mo b/wp-content/plugins/ml-slider/languages/metaslider-zh_TW.mo
new file mode 100644
index 0000000..482f7b1
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider-zh_TW.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider-zh_TW.po b/wp-content/plugins/ml-slider/languages/metaslider-zh_TW.po
new file mode 100644
index 0000000..9e6ec56
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider-zh_TW.po
@@ -0,0 +1,631 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider-zh_CN\n"
+"POT-Creation-Date: 2013-12-16 17:31-0000\n"
+"PO-Revision-Date: 2013-12-16 17:31-0000\n"
+"Last-Translator: æéä¸ <181138991@qq.com>\n"
+"Language-Team: æéä¸ <181138991@qq.com>\n"
+"Language: zh_CN\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.7\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:102
+msgid "Go Pro"
+msgstr "æ¥çå°æ¥ç"
+
+#: ../ml-slider.php:156
+msgid "Image"
+msgstr "åå"
+
+#: ../ml-slider.php:157
+msgid "Add to slider"
+msgstr "æ·»å å°å¹»çç"
+
+#: ../ml-slider.php:177
+msgid "Post Feed"
+msgstr "æç« è³è¨"
+
+#: ../ml-slider.php:178
+msgid "Vimeo"
+msgstr ""
+
+#: ../ml-slider.php:179
+msgid "YouTube"
+msgstr ""
+
+#: ../ml-slider.php:180
+msgid "Layer Slide"
+msgstr "å¹»çç"
+
+#: ../ml-slider.php:235 ../inc/slide/metaslide.image.class.php:103
+msgid "URL"
+msgstr ""
+
+#: ../ml-slider.php:236 ../inc/slide/metaslide.image.class.php:101
+msgid "Caption"
+msgstr "æ¨é¡"
+
+#: ../ml-slider.php:237 ../inc/slide/metaslide.image.class.php:102
+msgid "New Window"
+msgstr "æ°çªå£"
+
+#: ../ml-slider.php:238
+msgid "Are you sure?"
+msgstr "ä½ ç¢ºå®å"
+
+#: ../ml-slider.php:242
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr "注æï¼æ¤åè½å
é©ç¨æ¼é«ç´éç¼ã"
+
+#: ../ml-slider.php:278
+msgid "Upgrade to Pro $19"
+msgstr "åç´å°å°æ¥çåªé$19"
+
+#: ../ml-slider.php:294
+msgid "Documentation"
+msgstr "ææª"
+
+#: ../ml-slider.php:430
+msgid "New Slider"
+msgstr "æ°çæ»å¡"
+
+#: ../ml-slider.php:692
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr "åµå»ºæ°çå¹»ççãé»æâæ·»å å¹»ççâ以éå§ç覽網é ï¼"
+
+#: ../ml-slider.php:709
+msgid "or"
+msgstr "æ"
+
+#: ../ml-slider.php:710
+msgid "Add New Slideshow"
+msgstr "æ·»å æ°çå¹»çç"
+
+#: ../ml-slider.php:726
+msgid "Create your first slideshow"
+msgstr "åµå»ºç¬¬ä¸ä»½å¹»çç"
+
+#: ../ml-slider.php:744
+msgid "Settings"
+msgstr "è¨ç½®"
+
+#: ../ml-slider.php:745
+msgid "Save"
+msgstr "ä¿å"
+
+#: ../ml-slider.php:746
+msgid "Save & Preview"
+msgstr "ä¿å並é 覽"
+
+#: ../ml-slider.php:759
+msgid "Flex Slider"
+msgstr ""
+
+#: ../ml-slider.php:760
+msgid "Responsive"
+msgstr "é¿æ"
+
+#: ../ml-slider.php:761
+msgid "Nivo Slider"
+msgstr ""
+
+#: ../ml-slider.php:762
+msgid "Coin Slider"
+msgstr ""
+
+#: ../ml-slider.php:773 ../ml-slider.php:995
+msgid "Width"
+msgstr "寬度"
+
+#: ../ml-slider.php:775
+#, fuzzy
+msgid "Slideshow width"
+msgstr "å¹»ççæ¨é¡"
+
+#: ../ml-slider.php:776 ../ml-slider.php:789
+msgid "px"
+msgstr ""
+
+#: ../ml-slider.php:786 ../ml-slider.php:1008
+msgid "Height"
+msgstr "é«åº¦"
+
+#: ../ml-slider.php:788
+#, fuzzy
+msgid "Slideshow height"
+msgstr "å¹»ççæ¨é¡"
+
+#: ../ml-slider.php:795
+msgid "Effect"
+msgstr "ææ"
+
+#: ../ml-slider.php:797
+msgid "Slide transition effect"
+msgstr "å¹»çç鿏¡ææ"
+
+#: ../ml-slider.php:799 ../ml-slider.php:927
+msgid "Random"
+msgstr "鍿©"
+
+#: ../ml-slider.php:800
+msgid "Swirl"
+msgstr "漩渦"
+
+#: ../ml-slider.php:801
+msgid "Rain"
+msgstr "é¨é»"
+
+#: ../ml-slider.php:802
+msgid "Straight"
+msgstr "ç´æ¥"
+
+#: ../ml-slider.php:803
+msgid "Slide Down"
+msgstr "å䏿»å"
+
+#: ../ml-slider.php:804
+msgid "Slice Up"
+msgstr "åç"
+
+#: ../ml-slider.php:805
+msgid "Slide Up Left"
+msgstr "åå·¦æ»å"
+
+#: ../ml-slider.php:806
+msgid "Slice Up Down"
+msgstr "åçåä¸"
+
+#: ../ml-slider.php:807
+msgid "Slide Up Down Left"
+msgstr "å䏿»å"
+
+#: ../ml-slider.php:808
+msgid "Fold"
+msgstr "æç"
+
+#: ../ml-slider.php:809
+msgid "Fade"
+msgstr "褪è²"
+
+#: ../ml-slider.php:810
+msgid "Slide In Right"
+msgstr "å峿»å"
+
+#: ../ml-slider.php:811
+msgid "Slide In Left"
+msgstr "åå·¦æ»å"
+
+#: ../ml-slider.php:812
+msgid "Box Random"
+msgstr "鍿©"
+
+#: ../ml-slider.php:813
+msgid "Box Rain"
+msgstr "ç®±å¼"
+
+#: ../ml-slider.php:814
+msgid "Box Rain Reverse"
+msgstr "ç®±å¼åå"
+
+#: ../ml-slider.php:815
+msgid "Box Rain Grow Reverse"
+msgstr ""
+
+#: ../ml-slider.php:816
+msgid "Slide"
+msgstr "æ»å"
+
+#: ../ml-slider.php:823
+msgid "Theme"
+msgstr "主é¡"
+
+#: ../ml-slider.php:825
+#, fuzzy
+msgid "Slideshow theme"
+msgstr "å¹»ççæ¨é¡"
+
+#: ../ml-slider.php:827
+msgid "Default"
+msgstr ""
+
+#: ../ml-slider.php:828
+msgid "Dark (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:829
+msgid "Light (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:830
+msgid "Bar (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:836
+msgid "Arrows"
+msgstr "ç®é "
+
+#: ../ml-slider.php:839
+msgid "Show the previous/next arrows"
+msgstr ""
+
+#: ../ml-slider.php:844
+msgid "Navigation"
+msgstr "å°èª"
+
+#: ../ml-slider.php:847
+#, fuzzy
+msgid "Show the slide navigation bullets"
+msgstr "顯示幻ççå°èª"
+
+#: ../ml-slider.php:849
+msgid "Hidden"
+msgstr "é±è"
+
+#: ../ml-slider.php:850
+msgid "Dots"
+msgstr "é»"
+
+#: ../ml-slider.php:851
+msgid "Thumbnails (Pro)"
+msgstr "縮ç¥åï¼è¨ï¼"
+
+#: ../ml-slider.php:862
+msgid "Title"
+msgstr "æ¨é¡"
+
+#: ../ml-slider.php:863
+msgid "Slideshow title"
+msgstr "å¹»ççæ¨é¡"
+
+#: ../ml-slider.php:877
+msgid "Advanced Settings"
+msgstr "é«ç´è¨ç½®"
+
+#: ../ml-slider.php:886
+msgid "Stretch"
+msgstr ""
+
+#: ../ml-slider.php:888
+msgid "100% wide output"
+msgstr ""
+
+#: ../ml-slider.php:890
+#, fuzzy
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr "å¨é é¢å è¼ååå¹»çç"
+
+#: ../ml-slider.php:895
+msgid "Center align"
+msgstr "å±
ä¸å°é½"
+
+#: ../ml-slider.php:898
+msgid "Center align the slideshow"
+msgstr "å±
ä¸å°é½å¹»çç"
+
+#: ../ml-slider.php:903
+msgid "Auto play"
+msgstr "èªåææ¾"
+
+#: ../ml-slider.php:906
+msgid "Transition between slides automatically"
+msgstr ""
+
+#: ../ml-slider.php:911
+msgid "Smart crop"
+msgstr "æºè½è£åª"
+
+#: ../ml-slider.php:914
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+"æºè½è£åªï¼å°æ¨çå¹»ççåçè£åªå°ä¸åç¸åæ¯ä¾ï¼ä½¿å
¶é¡¯ç¤ºçµæå¨å¹»ççä¸å¤§å°ä¿å"
+"ä¸è´ã"
+
+#: ../ml-slider.php:919
+msgid "Carousel mode"
+msgstr "å³é帶模å¼"
+
+#: ../ml-slider.php:922
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr ""
+
+#: ../ml-slider.php:930
+msgid "Randomise the order of the slides"
+msgstr "å¹»ççé åºé¨æ©"
+
+#: ../ml-slider.php:935
+msgid "Hover pause"
+msgstr "æ¸åæé"
+
+#: ../ml-slider.php:938
+#, fuzzy
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr "ç¶é¼ æ¨æ¸åå¨åç䏿æ«åå¹»çç"
+
+#: ../ml-slider.php:943
+msgid "Reverse"
+msgstr "éè½"
+
+#: ../ml-slider.php:946
+msgid "Reverse the animation direction"
+msgstr "åååç«"
+
+#: ../ml-slider.php:956
+msgid "Slide delay"
+msgstr "åç«å»¶é²"
+
+#: ../ml-slider.php:958
+msgid "How long to display each slide, in milliseconds"
+msgstr "å¹»çççææ¾ééï¼å®ä½æ¯«ç§"
+
+#: ../ml-slider.php:959 ../ml-slider.php:972 ../ml-slider.php:985
+#: ../ml-slider.php:1061 ../ml-slider.php:1087
+msgid "ms"
+msgstr "毫ç§"
+
+#: ../ml-slider.php:969
+msgid "Animation speed"
+msgstr "åç«é度"
+
+#: ../ml-slider.php:971
+msgid "Set the speed of animations, in milliseconds"
+msgstr "è¨ç½®åç«çé度ï¼å®ä½æ¯«ç§"
+
+#: ../ml-slider.php:982 ../ml-slider.php:984
+msgid "Number of slices"
+msgstr "åçæ¸"
+
+#: ../ml-slider.php:995 ../ml-slider.php:997 ../ml-slider.php:1008
+#: ../ml-slider.php:1010
+msgid "Number of squares"
+msgstr "æ¹æ ¼æ¸"
+
+#: ../ml-slider.php:1016
+msgid "Slide direction"
+msgstr "æ»åæ¹å"
+
+#: ../ml-slider.php:1018
+msgid "Select the sliding direction"
+msgstr "é¸æçæ»åæ¹å"
+
+#: ../ml-slider.php:1021
+msgid "Horizontal"
+msgstr "æ©«å"
+
+#: ../ml-slider.php:1022
+msgid "Vertical"
+msgstr "åç´"
+
+#: ../ml-slider.php:1028
+msgid "Easing"
+msgstr "ç·©å"
+
+#: ../ml-slider.php:1030
+msgid "Animation easing effect"
+msgstr "åç«å¯¬é¬ææ"
+
+#: ../ml-slider.php:1037
+msgid "Previous text"
+msgstr "ä¸ä¸å¼µåç"
+
+#: ../ml-slider.php:1039
+msgid "Set the text for the 'previous' direction item"
+msgstr "鏿åççºâä¸ä¸å¼µâ"
+
+#: ../ml-slider.php:1045
+msgid "Next text"
+msgstr "ä¸ä¸å¼µåç"
+
+#: ../ml-slider.php:1047
+msgid "Set the text for the 'next' direction item"
+msgstr "鏿åççº'ä¸ä¸å¼µ'"
+
+#: ../ml-slider.php:1058
+msgid "Square delay"
+msgstr "å»¶é²"
+
+#: ../ml-slider.php:1060
+#, fuzzy
+msgid "Delay between squares in ms"
+msgstr "以毫ç§çºå®ä½"
+
+#: ../ml-slider.php:1071
+msgid "Opacity"
+msgstr "éæåº¦"
+
+#: ../ml-slider.php:1073
+msgid "Opacity of title and navigation"
+msgstr "æ¨é¡åå°èªçéæåº¦"
+
+#: ../ml-slider.php:1084
+msgid "Caption speed"
+msgstr "é度"
+
+#: ../ml-slider.php:1086
+msgid "Set the fade in speed of the caption"
+msgstr "è¨ç½®éåº¦çæ¨é¡æ·¡å
¥"
+
+#: ../ml-slider.php:1093
+#, fuzzy
+msgid "Developer options"
+msgstr "éç¼äººå¡é¸é
"
+
+#: ../ml-slider.php:1098
+msgid "CSS classes"
+msgstr "CSS é¡"
+
+#: ../ml-slider.php:1100
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr "æå®çä»»ä½èªå®ç¾©CSSé¡"
+
+#: ../ml-slider.php:1106
+msgid "Print CSS"
+msgstr "顯示CSS"
+
+#: ../ml-slider.php:1109
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr "åæ¶é¸ä¸ï¼å使ç¨ä¸»é¡èªèº«çCSS"
+
+#: ../ml-slider.php:1114
+#, fuzzy
+msgid "Print JS"
+msgstr "顯示JavaScript"
+
+#: ../ml-slider.php:1117
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr "åæ¶é¸ä¸ï¼å使ç¨ä¸»é¡èªèº«çJavascript"
+
+#: ../ml-slider.php:1122
+msgid "No conflict mode"
+msgstr ""
+
+#: ../ml-slider.php:1125
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1139
+msgid "Usage"
+msgstr "ä½¿ç¨æ¹æ³"
+
+#: ../ml-slider.php:1142
+msgid "Shortcode"
+msgstr "簡碼"
+
+#: ../ml-slider.php:1143
+msgid "Template Include"
+msgstr "使ç¨å¨ä¸»é¡ä»£ç¢¼ä¸ç代碼"
+
+#: ../ml-slider.php:1147
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+
+#: ../ml-slider.php:1150
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+
+#: ../ml-slider.php:1179
+msgid "Delete Slider"
+msgstr "åªé¤å¹»çç"
+
+#: ../ml-slider.php:1190
+msgid "Slides"
+msgstr "å¹»çç"
+
+#: ../ml-slider.php:1193 ../ml-slider.php:1194
+msgid "Add Slide"
+msgstr "æ·»å å¹»çç"
+
+#: ../ml-slider.php:1224
+msgid "Select slideshow to insert into post"
+msgstr ""
+
+#: ../ml-slider.php:1227
+#, fuzzy
+msgid "Add slider"
+msgstr "æ·»å å°å¹»çç"
+
+#: ../ml-slider.php:1258
+msgid "Insert Meta Slider"
+msgstr ""
+
+#: ../ml-slider.php:1260
+#, fuzzy
+msgid "Choose slideshow"
+msgstr "æ²æå¹»çç"
+
+#: ../ml-slider.php:1267 ../inc/metaslider.widget.class.php:124
+msgid "No slideshows found"
+msgstr "æ²æå¹»çç"
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr "å¤å½©å¹»çç"
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Title:"
+msgstr "æ¨é¡ï¼"
+
+#: ../inc/metaslider.widget.class.php:114
+msgid "Select Slider:"
+msgstr "鏿幻ççï¼"
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr "å®å
¨æª¢æ¥å¤±æãå·æ°é é¢ï¼ç¶å¾é試ã"
+
+#: ../inc/slide/metaslide.image.class.php:36
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr "ç¡æ³æ·»å å¹»ççã"
+
+#: ../inc/slide/metaslide.image.class.php:38
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr "æªè½æ·»å å¹»ççãå¹»ççé¡å䏿£ç¢º'ã"
+
+#: ../inc/slide/metaslide.image.class.php:110
+#, fuzzy
+msgid "Image Slide"
+msgstr "å¹»çç"
+
+#: ../inc/slide/metaslide.image.class.php:115
+msgid "General"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:116
+msgid "SEO"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:121
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr "è¦åï¼å忏æä¸åå¨ãè«éæ°ä¸å³åçã"
+
+#: ../inc/slide/metaslide.image.class.php:130
+msgid "Image Title Text"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:132
+msgid "Image Alt Text"
+msgstr ""
+
+#~ msgid "Change the slider style"
+#~ msgstr "æ´æ¹æ»èé å"
+
+#~ msgid ""
+#~ "Display as carousel - when selected the effect and direction options will "
+#~ "be ignored."
+#~ msgstr "é¡¯ç¤ºçºæè½- ç¶é¸æå¾å
¶ä»ææåæ¹åè¨ç½®å°è¢«å¿½ç¥ã"
+
+#~ msgid "Version"
+#~ msgstr "çæ¬"
+
+#~ msgid "Size"
+#~ msgstr "大å°"
+
+#~ msgid "Mobile Friendly"
+#~ msgstr "ç§»å"
+
+#~ msgid "Set the initial size for the slides (width x height)"
+#~ msgstr "è¨ç½®å¹»çççåå§å¤§å°ï¼ 寬 x é« ï¼"
+
+#~ msgid "Controls"
+#~ msgstr "æ§å¶"
+
+#~ msgid "Number of squares (width x height)"
+#~ msgstr "寬 x é«"
+
+#~ msgid "More Slide Types"
+#~ msgstr "æ´å¤å¹»ç¯çç±»å"
diff --git a/wp-content/plugins/ml-slider/languages/metaslider.mo b/wp-content/plugins/ml-slider/languages/metaslider.mo
new file mode 100644
index 0000000..c15cb5a
Binary files /dev/null and b/wp-content/plugins/ml-slider/languages/metaslider.mo differ
diff --git a/wp-content/plugins/ml-slider/languages/metaslider.po b/wp-content/plugins/ml-slider/languages/metaslider.po
new file mode 100644
index 0000000..759d214
--- /dev/null
+++ b/wp-content/plugins/ml-slider/languages/metaslider.po
@@ -0,0 +1,659 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: metaslider\n"
+"POT-Creation-Date: 2014-08-11 14:52-0000\n"
+"PO-Revision-Date: 2014-08-11 14:52-0000\n"
+"Last-Translator: \n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Generator: Poedit 1.5.7\n"
+"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
+"X-Poedit-Basepath: .\n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Poedit-SearchPath-1: ..\n"
+
+#: ../ml-slider.php:335
+msgid "Documentation"
+msgstr ""
+
+#: ../ml-slider.php:388 ../inc/slide/metaslide.image.class.php:147
+msgid "URL"
+msgstr ""
+
+#: ../ml-slider.php:389 ../inc/slide/metaslide.image.class.php:146
+msgid "Caption"
+msgstr ""
+
+#: ../ml-slider.php:390 ../inc/slide/metaslide.image.class.php:149
+msgid "New Window"
+msgstr ""
+
+#: ../ml-slider.php:391
+msgid "Are you sure?"
+msgstr ""
+
+#: ../ml-slider.php:396
+msgid ""
+"Caution: This setting is for advanced developers only. If you're unsure, "
+"leave it checked."
+msgstr ""
+
+#: ../ml-slider.php:459
+msgid "Image"
+msgstr ""
+
+#: ../ml-slider.php:460
+msgid "Add to slider"
+msgstr ""
+
+#: ../ml-slider.php:486
+msgid "Post Feed"
+msgstr ""
+
+#: ../ml-slider.php:487
+msgid "Vimeo"
+msgstr ""
+
+#: ../ml-slider.php:488
+msgid "YouTube"
+msgstr ""
+
+#: ../ml-slider.php:489
+msgid "Layer Slide"
+msgstr ""
+
+#: ../ml-slider.php:645
+msgid "New Slider"
+msgstr ""
+
+#: ../ml-slider.php:956
+msgid "Switch to Dropdown view"
+msgstr ""
+
+#: ../ml-slider.php:977
+msgid "New slideshow created. Click 'Add Slide' to get started!"
+msgstr ""
+
+#: ../ml-slider.php:981
+msgid "Switch to Tab view"
+msgstr ""
+
+#: ../ml-slider.php:983
+msgid "Select Slider"
+msgstr ""
+
+#: ../ml-slider.php:1002
+msgid "or"
+msgstr ""
+
+#: ../ml-slider.php:1003
+msgid "Add New Slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1009
+msgid "Create your first slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1069
+msgid "Slides"
+msgstr ""
+
+#: ../ml-slider.php:1072 ../ml-slider.php:1073
+msgid "Add Slide"
+msgstr ""
+
+#: ../ml-slider.php:1093
+msgid "Settings"
+msgstr ""
+
+#: ../ml-slider.php:1094
+msgid "Save"
+msgstr ""
+
+#: ../ml-slider.php:1095
+msgid "Save & Preview"
+msgstr ""
+
+#: ../ml-slider.php:1108
+msgid "Flex Slider"
+msgstr ""
+
+#: ../ml-slider.php:1109
+msgid "R. Slides"
+msgstr ""
+
+#: ../ml-slider.php:1110
+msgid "Nivo Slider"
+msgstr ""
+
+#: ../ml-slider.php:1111
+msgid "Coin Slider"
+msgstr ""
+
+#: ../ml-slider.php:1122 ../ml-slider.php:1360
+msgid "Width"
+msgstr ""
+
+#: ../ml-slider.php:1124
+msgid "Slideshow width"
+msgstr ""
+
+#: ../ml-slider.php:1125 ../ml-slider.php:1138 ../ml-slider.php:1287
+msgid "px"
+msgstr ""
+
+#: ../ml-slider.php:1135 ../ml-slider.php:1373
+msgid "Height"
+msgstr ""
+
+#: ../ml-slider.php:1137
+msgid "Slideshow height"
+msgstr ""
+
+#: ../ml-slider.php:1144
+msgid "Effect"
+msgstr ""
+
+#: ../ml-slider.php:1146
+msgid "Slide transition effect"
+msgstr ""
+
+#: ../ml-slider.php:1148 ../ml-slider.php:1292
+msgid "Random"
+msgstr ""
+
+#: ../ml-slider.php:1149
+msgid "Swirl"
+msgstr ""
+
+#: ../ml-slider.php:1150
+msgid "Rain"
+msgstr ""
+
+#: ../ml-slider.php:1151
+msgid "Straight"
+msgstr ""
+
+#: ../ml-slider.php:1152
+msgid "Slide Down"
+msgstr ""
+
+#: ../ml-slider.php:1153
+msgid "Slice Up"
+msgstr ""
+
+#: ../ml-slider.php:1154
+msgid "Slide Up Left"
+msgstr ""
+
+#: ../ml-slider.php:1155
+msgid "Slice Up Down"
+msgstr ""
+
+#: ../ml-slider.php:1156
+msgid "Slide Up Down Left"
+msgstr ""
+
+#: ../ml-slider.php:1157
+msgid "Fold"
+msgstr ""
+
+#: ../ml-slider.php:1158
+msgid "Fade"
+msgstr ""
+
+#: ../ml-slider.php:1159
+msgid "Slide In Right"
+msgstr ""
+
+#: ../ml-slider.php:1160
+msgid "Slide In Left"
+msgstr ""
+
+#: ../ml-slider.php:1161
+msgid "Box Random"
+msgstr ""
+
+#: ../ml-slider.php:1162
+msgid "Box Rain"
+msgstr ""
+
+#: ../ml-slider.php:1163
+msgid "Box Rain Reverse"
+msgstr ""
+
+#: ../ml-slider.php:1164
+msgid "Box Rain Grow Reverse"
+msgstr ""
+
+#: ../ml-slider.php:1165
+msgid "Slide"
+msgstr ""
+
+#: ../ml-slider.php:1172
+msgid "Theme"
+msgstr ""
+
+#: ../ml-slider.php:1174
+msgid "Slideshow theme"
+msgstr ""
+
+#: ../ml-slider.php:1176
+msgid "Default"
+msgstr ""
+
+#: ../ml-slider.php:1177
+msgid "Dark (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:1178
+msgid "Light (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:1179
+msgid "Bar (Nivo)"
+msgstr ""
+
+#: ../ml-slider.php:1185
+msgid "Arrows"
+msgstr ""
+
+#: ../ml-slider.php:1188
+msgid "Show the previous/next arrows"
+msgstr ""
+
+#: ../ml-slider.php:1193
+msgid "Navigation"
+msgstr ""
+
+#: ../ml-slider.php:1196
+msgid "Show the slide navigation bullets"
+msgstr ""
+
+#: ../ml-slider.php:1198
+msgid "Hidden"
+msgstr ""
+
+#: ../ml-slider.php:1199
+msgid "Dots"
+msgstr ""
+
+#: ../ml-slider.php:1210
+msgid "Title"
+msgstr ""
+
+#: ../ml-slider.php:1211
+msgid "Slideshow title"
+msgstr ""
+
+#: ../ml-slider.php:1225
+msgid "Advanced Settings"
+msgstr ""
+
+#: ../ml-slider.php:1234
+msgid "Stretch"
+msgstr ""
+
+#: ../ml-slider.php:1236
+msgid "100% wide output"
+msgstr ""
+
+#: ../ml-slider.php:1238
+msgid "Stretch the slideshow output to fill it's parent container"
+msgstr ""
+
+#: ../ml-slider.php:1243
+msgid "Center align"
+msgstr ""
+
+#: ../ml-slider.php:1246
+msgid "Center align the slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1251
+msgid "Auto play"
+msgstr ""
+
+#: ../ml-slider.php:1254
+msgid "Transition between slides automatically"
+msgstr ""
+
+#: ../ml-slider.php:1259
+msgid "Image Crop"
+msgstr ""
+
+#: ../ml-slider.php:1263
+msgid "Smart"
+msgstr ""
+
+#: ../ml-slider.php:1264
+msgid "Standard"
+msgstr ""
+
+#: ../ml-slider.php:1265
+msgid "Disabled"
+msgstr ""
+
+#: ../ml-slider.php:1267
+msgid ""
+"Smart Crop ensures your responsive slides are cropped to a ratio that "
+"results in a consistent slideshow size"
+msgstr ""
+
+#: ../ml-slider.php:1272
+msgid "Carousel mode"
+msgstr ""
+
+#: ../ml-slider.php:1275
+msgid "Display multiple slides at once. Slideshow output will be 100% wide."
+msgstr ""
+
+#: ../ml-slider.php:1283
+msgid "Carousel margin"
+msgstr ""
+
+#: ../ml-slider.php:1286
+msgid "Pixel margin between slides in carousel."
+msgstr ""
+
+#: ../ml-slider.php:1295
+msgid "Randomise the order of the slides"
+msgstr ""
+
+#: ../ml-slider.php:1300
+msgid "Hover pause"
+msgstr ""
+
+#: ../ml-slider.php:1303
+msgid ""
+"Pause the slideshow when hovering over slider, then resume when no longer "
+"hovering."
+msgstr ""
+
+#: ../ml-slider.php:1308
+msgid "Reverse"
+msgstr ""
+
+#: ../ml-slider.php:1311
+msgid "Reverse the animation direction"
+msgstr ""
+
+#: ../ml-slider.php:1321
+msgid "Slide delay"
+msgstr ""
+
+#: ../ml-slider.php:1323
+msgid "How long to display each slide, in milliseconds"
+msgstr ""
+
+#: ../ml-slider.php:1324 ../ml-slider.php:1337 ../ml-slider.php:1350
+#: ../ml-slider.php:1426 ../ml-slider.php:1452
+msgid "ms"
+msgstr ""
+
+#: ../ml-slider.php:1334
+msgid "Animation speed"
+msgstr ""
+
+#: ../ml-slider.php:1336
+msgid "Set the speed of animations, in milliseconds"
+msgstr ""
+
+#: ../ml-slider.php:1347 ../ml-slider.php:1349
+msgid "Number of slices"
+msgstr ""
+
+#: ../ml-slider.php:1360 ../ml-slider.php:1362 ../ml-slider.php:1373
+#: ../ml-slider.php:1375
+msgid "Number of squares"
+msgstr ""
+
+#: ../ml-slider.php:1381
+msgid "Slide direction"
+msgstr ""
+
+#: ../ml-slider.php:1383
+msgid "Select the sliding direction"
+msgstr ""
+
+#: ../ml-slider.php:1386
+msgid "Horizontal"
+msgstr ""
+
+#: ../ml-slider.php:1387
+msgid "Vertical"
+msgstr ""
+
+#: ../ml-slider.php:1393
+msgid "Easing"
+msgstr ""
+
+#: ../ml-slider.php:1395
+msgid "Animation easing effect"
+msgstr ""
+
+#: ../ml-slider.php:1402
+msgid "Previous text"
+msgstr ""
+
+#: ../ml-slider.php:1404
+msgid "Set the text for the 'previous' direction item"
+msgstr ""
+
+#: ../ml-slider.php:1410
+msgid "Next text"
+msgstr ""
+
+#: ../ml-slider.php:1412
+msgid "Set the text for the 'next' direction item"
+msgstr ""
+
+#: ../ml-slider.php:1423
+msgid "Square delay"
+msgstr ""
+
+#: ../ml-slider.php:1425
+msgid "Delay between squares in ms"
+msgstr ""
+
+#: ../ml-slider.php:1436
+msgid "Opacity"
+msgstr ""
+
+#: ../ml-slider.php:1438
+msgid "Opacity of title and navigation"
+msgstr ""
+
+#: ../ml-slider.php:1449
+msgid "Caption speed"
+msgstr ""
+
+#: ../ml-slider.php:1451
+msgid "Set the fade in speed of the caption"
+msgstr ""
+
+#: ../ml-slider.php:1458
+msgid "Developer options"
+msgstr ""
+
+#: ../ml-slider.php:1463
+msgid "CSS classes"
+msgstr ""
+
+#: ../ml-slider.php:1465
+msgid ""
+"Specify any custom CSS Classes you would like to be added to the slider "
+"wrapper"
+msgstr ""
+
+#: ../ml-slider.php:1471
+msgid "Print CSS"
+msgstr ""
+
+#: ../ml-slider.php:1474
+msgid "Uncheck this is you would like to include your own CSS"
+msgstr ""
+
+#: ../ml-slider.php:1479
+msgid "Print JS"
+msgstr ""
+
+#: ../ml-slider.php:1482
+msgid "Uncheck this is you would like to include your own Javascript"
+msgstr ""
+
+#: ../ml-slider.php:1487
+msgid "No conflict mode"
+msgstr ""
+
+#: ../ml-slider.php:1490
+msgid "Delay adding the flexslider class to the slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1504
+msgid "Usage"
+msgstr ""
+
+#: ../ml-slider.php:1507
+msgid "Shortcode"
+msgstr ""
+
+#: ../ml-slider.php:1508
+msgid "Template Include"
+msgstr ""
+
+#: ../ml-slider.php:1512
+msgid "Copy & paste the shortcode directly into any WordPress post or page."
+msgstr ""
+
+#: ../ml-slider.php:1515
+msgid ""
+"Copy & paste this code into a template file to include the slideshow within "
+"your theme."
+msgstr ""
+
+#: ../ml-slider.php:1544
+msgid "Delete Slider"
+msgstr ""
+
+#: ../ml-slider.php:1565
+msgid "Select slideshow to insert into post"
+msgstr ""
+
+#: ../ml-slider.php:1568
+msgid "Add slider"
+msgstr ""
+
+#: ../ml-slider.php:1602
+msgid "Insert Meta Slider"
+msgstr ""
+
+#: ../ml-slider.php:1604
+msgid "Choose slideshow"
+msgstr ""
+
+#: ../ml-slider.php:1611 ../inc/metaslider.widget.class.php:121
+msgid "No slideshows found"
+msgstr ""
+
+#: ../ml-slider.php:1628
+msgid "Go Pro"
+msgstr ""
+
+#: ../ml-slider.php:1684
+msgid "Upgrade to Pro $19"
+msgstr ""
+
+#: ../inc/metaslider.widget.class.php:18
+msgid "Meta Slider"
+msgstr ""
+
+#: ../inc/metaslider.widget.class.php:108
+msgid "Title:"
+msgstr ""
+
+#: ../inc/metaslider.widget.class.php:111
+msgid "Select Slider:"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:23
+msgid "Security check failed. Refresh page and try again."
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:39
+msgid "Failed to add slide. Slide already exists in slideshow."
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:43
+msgid "Failed to add slide. Slide is not of type 'image'."
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:107
+msgid "Image Slide"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:153
+msgid "Warning: Image data does not exist. Please re-upload the image."
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:158
+msgid "Image Title Text"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:160
+msgid "Image Alt Text"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:163
+msgid "Crop Position"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:166
+msgid "Top Left"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:167
+msgid "Top Center"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:168
+msgid "Top Right"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:169
+msgid "Center Left"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:170
+msgid "Center Center"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:171
+msgid "Center Right"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:172
+msgid "Bottom Left"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:173
+msgid "Bottom Center"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:174
+msgid "Bottom Right"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:180
+msgid "General"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:184
+msgid "SEO"
+msgstr ""
+
+#: ../inc/slide/metaslide.image.class.php:192
+msgid "Crop"
+msgstr ""
diff --git a/wp-content/plugins/ml-slider/ml-slider.php b/wp-content/plugins/ml-slider/ml-slider.php
new file mode 100644
index 0000000..b0a0968
--- /dev/null
+++ b/wp-content/plugins/ml-slider/ml-slider.php
@@ -0,0 +1,1757 @@
+define_constants();
+ $this->includes();
+ $this->setup_actions();
+ $this->setup_filters();
+ $this->setup_shortcode();
+ $this->register_slide_types();
+
+ }
+
+
+ /**
+ * Define Meta Slider constants
+ */
+ private function define_constants() {
+
+ define( 'METASLIDER_VERSION', $this->version );
+ define( 'METASLIDER_BASE_URL', trailingslashit( plugins_url( 'ml-slider' ) ) );
+ define( 'METASLIDER_ASSETS_URL', trailingslashit( METASLIDER_BASE_URL . 'assets' ) );
+ define( 'METASLIDER_PATH', plugin_dir_path( __FILE__ ) );
+
+ }
+
+
+ /**
+ * All Meta Slider classes
+ */
+ private function plugin_classes() {
+
+ return array(
+ 'metaslider' => METASLIDER_PATH . 'inc/slider/metaslider.class.php',
+ 'metacoinslider' => METASLIDER_PATH . 'inc/slider/metaslider.coin.class.php',
+ 'metaflexslider' => METASLIDER_PATH . 'inc/slider/metaslider.flex.class.php',
+ 'metanivoslider' => METASLIDER_PATH . 'inc/slider/metaslider.nivo.class.php',
+ 'metaresponsiveslider' => METASLIDER_PATH . 'inc/slider/metaslider.responsive.class.php',
+ 'metaslide' => METASLIDER_PATH . 'inc/slide/metaslide.class.php',
+ 'metaimageslide' => METASLIDER_PATH . 'inc/slide/metaslide.image.class.php',
+ 'metasliderimagehelper' => METASLIDER_PATH . 'inc/metaslider.imagehelper.class.php',
+ 'metaslidersystemcheck' => METASLIDER_PATH . 'inc/metaslider.systemcheck.class.php',
+ 'metaslider_widget' => METASLIDER_PATH . 'inc/metaslider.widget.class.php',
+ 'simple_html_dom' => METASLIDER_PATH . 'inc/simple_html_dom.php'
+ );
+
+ }
+
+
+ /**
+ * Load required classes
+ */
+ private function includes() {
+
+ $autoload_is_disabled = defined( 'METASLIDER_AUTOLOAD_CLASSES' ) && METASLIDER_AUTOLOAD_CLASSES === false;
+
+ if ( function_exists( "spl_autoload_register" ) && ! ( $autoload_is_disabled ) ) {
+
+ // >= PHP 5.2 - Use auto loading
+ if ( function_exists( "__autoload" ) ) {
+ spl_autoload_register( "__autoload" );
+ }
+
+ spl_autoload_register( array( $this, 'autoload' ) );
+
+ } else {
+
+ // < PHP5.2 - Require all classes
+ foreach ( $this->plugin_classes() as $id => $path ) {
+ if ( is_readable( $path ) && ! class_exists( $id ) ) {
+ require_once( $path );
+ }
+ }
+
+ }
+
+ }
+
+
+ /**
+ * Autoload Meta Slider classes to reduce memory consumption
+ */
+ public function autoload( $class ) {
+
+ $classes = $this->plugin_classes();
+
+ $class_name = strtolower( $class );
+
+ if ( isset( $classes[$class_name] ) && is_readable( $classes[$class_name] ) ) {
+ require_once( $classes[$class_name] );
+ }
+
+ }
+
+
+ /**
+ * Register the [metaslider] shortcode.
+ */
+ private function setup_shortcode() {
+
+ add_shortcode( 'metaslider', array( $this, 'register_shortcode' ) );
+ add_shortcode( 'ml-slider', array( $this, 'register_shortcode' ) ); // backwards compatibility
+
+ }
+
+
+ /**
+ * Hook Meta Slider into WordPress
+ */
+ private function setup_actions() {
+
+ add_action( 'admin_menu', array( $this, 'register_admin_menu' ), 9553 );
+ add_action( 'init', array( $this, 'register_post_type' ) );
+ add_action( 'init', array( $this, 'register_taxonomy' ) );
+ add_action( 'init', array( $this, 'load_plugin_textdomain' ) );
+ add_action( 'admin_footer', array( $this, 'admin_footer' ), 11 );
+ add_action( 'media_upload_vimeo', array( $this, 'upgrade_to_pro_tab' ) );
+ add_action( 'media_upload_youtube', array( $this, 'upgrade_to_pro_tab' ) );
+ add_action( 'media_upload_post_feed', array( $this, 'upgrade_to_pro_tab' ) );
+ add_action( 'media_upload_layer', array( $this, 'upgrade_to_pro_tab' ) );
+ add_action( 'admin_post_metaslider_preview', array( $this, 'do_preview' ) );
+ add_action( 'widgets_init', array( $this, 'register_metaslider_widget' ) );
+
+ if ( defined( 'METASLIDER_ENABLE_RESOURCE_MANAGER' ) && METASLIDER_ENABLE_RESOURCE_MANAGER === true ) {
+
+ add_action( 'template_redirect', array( $this, 'start_resource_manager'), 0 );
+
+ }
+
+ }
+
+
+ /**
+ * Hook Meta Slider into WordPress
+ */
+ private function setup_filters() {
+
+ add_filter( 'media_upload_tabs', array( $this, 'custom_media_upload_tab_name' ), 998 );
+ add_filter( 'media_view_strings', array( $this, 'custom_media_uploader_tabs' ), 5 );
+ add_filter( 'media_buttons_context', array( $this, 'insert_metaslider_button' ) );
+
+ // add 'go pro' link to plugin options
+ $plugin = plugin_basename( __FILE__ );
+
+ add_filter( "plugin_action_links_{$plugin}", array( $this, 'upgrade_to_pro_link' ) );
+
+ }
+
+
+ /**
+ * Register Meta Slider widget
+ */
+ public function register_metaslider_widget() {
+
+ register_widget( 'MetaSlider_Widget' );
+
+ }
+
+
+ /**
+ * Register ML Slider post type
+ */
+ public function register_post_type() {
+
+ register_post_type( 'ml-slider', array(
+ 'query_var' => false,
+ 'rewrite' => false,
+ 'public' => true,
+ 'exclude_from_search' => true,
+ 'publicly_queryable' => false,
+ 'show_in_nav_menus' => false,
+ 'show_ui' => false,
+ 'labels' => array(
+ 'name' => 'Meta Slider'
+ )
+ )
+ );
+
+ }
+
+
+ /**
+ * Register taxonomy to store slider => slides relationship
+ */
+ public function register_taxonomy() {
+
+ register_taxonomy( 'ml-slider', 'attachment', array(
+ 'hierarchical' => true,
+ 'public' => false,
+ 'query_var' => false,
+ 'rewrite' => false
+ )
+ );
+
+ }
+
+
+ /**
+ * Register our slide types
+ */
+ private function register_slide_types() {
+
+ $image = new MetaImageSlide();
+
+ }
+
+
+ /**
+ * Add the menu page
+ */
+ public function register_admin_menu() {
+
+ $title = apply_filters( 'metaslider_menu_title', 'Meta Slider' );
+
+ $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
+
+ $page = add_menu_page( $title, $title, $capability, 'metaslider', array(
+ $this, 'render_admin_page'
+ ), METASLIDER_ASSETS_URL . 'metaslider/matchalabs.png', 9501 );
+
+ // ensure our JavaScript is only loaded on the Meta Slider admin page
+ add_action( 'admin_print_scripts-' . $page, array( $this, 'register_admin_scripts' ) );
+ add_action( 'admin_print_styles-' . $page, array( $this, 'register_admin_styles' ) );
+ add_action( 'load-' . $page, array( $this, 'help_tab' ) );
+
+ }
+
+
+ /**
+ * Shortcode used to display slideshow
+ *
+ * @return string HTML output of the shortcode
+ */
+ public function register_shortcode( $atts ) {
+
+ extract( shortcode_atts( array(
+ 'id' => false,
+ 'restrict_to' => false
+ ), $atts, 'metaslider' ) );
+
+
+ if ( ! $id ) {
+ return false;
+ }
+
+ // handle [metaslider id=123 restrict_to=home]
+ if ( $restrict_to == 'home' && ! is_front_page() ) {
+ return;
+ }
+
+ // we have an ID to work with
+ $slider = get_post( $id );
+
+ // check the slider is published and the ID is correct
+ if ( ! $slider || $slider->post_status != 'publish' || $slider->post_type != 'ml-slider' ) {
+ return "";
+ }
+
+ // lets go
+ $this->set_slider( $id, $atts );
+ $this->slider->enqueue_scripts();
+
+ return $this->slider->render_public_slides();
+
+ }
+
+
+ /**
+ * Initialise translations
+ */
+ public function load_plugin_textdomain() {
+
+ load_plugin_textdomain( 'metaslider', false, dirname( plugin_basename( __FILE__ ) ) . '/languages/' );
+
+ }
+
+
+ /**
+ * Add the help tab to the screen.
+ */
+ public function help_tab() {
+
+ $screen = get_current_screen();
+
+ // documentation tab
+ $screen->add_help_tab( array(
+ 'id' => 'documentation',
+ 'title' => __( 'Documentation', 'metaslider' ),
+ 'content' => "Meta Slider Documentation
",
+ )
+ );
+
+ }
+
+
+ /**
+ * Rehister admin styles
+ */
+ public function register_admin_styles() {
+
+ wp_enqueue_style( 'metaslider-admin-styles', METASLIDER_ASSETS_URL . 'metaslider/admin.css', false, METASLIDER_VERSION );
+ wp_enqueue_style( 'metaslider-colorbox-styles', METASLIDER_ASSETS_URL . 'colorbox/colorbox.css', false, METASLIDER_VERSION );
+ wp_enqueue_style( 'metaslider-tipsy-styles', METASLIDER_ASSETS_URL . 'tipsy/tipsy.css', false, METASLIDER_VERSION );
+
+ do_action( 'metaslider_register_admin_styles' );
+
+ }
+
+
+ /**
+ * Register admin JavaScript
+ */
+ public function register_admin_scripts() {
+
+ // media library dependencies
+ wp_enqueue_media();
+
+ // plugin dependencies
+ wp_enqueue_script( 'jquery-ui-core', array( 'jquery' ) );
+ wp_enqueue_script( 'jquery-ui-sortable', array( 'jquery', 'jquery-ui-core' ) );
+ wp_enqueue_script( 'metaslider-colorbox', METASLIDER_ASSETS_URL . 'colorbox/jquery.colorbox-min.js', array( 'jquery' ), METASLIDER_VERSION );
+ wp_enqueue_script( 'metaslider-tipsy', METASLIDER_ASSETS_URL . 'tipsy/jquery.tipsy.js', array( 'jquery' ), METASLIDER_VERSION );
+ wp_enqueue_script( 'metaslider-admin-script', METASLIDER_ASSETS_URL . 'metaslider/admin.js', array( 'jquery', 'metaslider-tipsy', 'media-upload' ), METASLIDER_VERSION );
+
+ wp_dequeue_script( 'link' ); // WP Posts Filter Fix (Advanced Settings not toggling)
+ wp_dequeue_script( 'ai1ec_requirejs' ); // All In One Events Calendar Fix (Advanced Settings not toggling)
+
+ $this->localize_admin_scripts();
+
+ do_action( 'metaslider_register_admin_scripts' );
+
+ }
+
+
+ /**
+ * Localise admin script
+ */
+ public function localize_admin_scripts() {
+
+ wp_localize_script( 'metaslider-admin-script', 'metaslider', array(
+ 'url' => __( "URL", "metaslider" ),
+ 'caption' => __( "Caption", "metaslider" ),
+ 'new_window' => __( "New Window", "metaslider" ),
+ 'confirm' => __( "Are you sure?", "metaslider" ),
+ 'ajaxurl' => admin_url( 'admin-ajax.php' ),
+ 'resize_nonce' => wp_create_nonce( 'metaslider_resize' ),
+ 'addslide_nonce' => wp_create_nonce( 'metaslider_addslide' ),
+ 'iframeurl' => admin_url( 'admin-post.php?action=metaslider_preview' ),
+ 'useWithCaution' => __( "Caution: This setting is for advanced developers only. If you're unsure, leave it checked.", "metaslider" )
+ )
+ );
+
+ }
+
+
+ /**
+ * Outputs a blank page containing a slideshow preview (for use in the 'Preview' iFrame)
+ */
+ public function do_preview() {
+
+ remove_action('wp_footer', 'wp_admin_bar_render', 1000);
+
+ if ( isset( $_GET['slider_id'] ) && absint( $_GET['slider_id'] ) > 0 ) {
+ $id = absint( $_GET['slider_id'] );
+
+ ?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+ check();
+
+ }
+
+
+ /**
+ * Update the tab options in the media manager
+ */
+ public function custom_media_uploader_tabs( $strings ) {
+
+ //update strings
+ if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) ) {
+ $strings['insertMediaTitle'] = __( "Image", "metaslider" );
+ $strings['insertIntoPost'] = __( "Add to slider", "metaslider" );
+ // remove options
+ if ( isset( $strings['createGalleryTitle'] ) ) unset( $strings['createGalleryTitle'] );
+ if ( isset( $strings['insertFromUrlTitle'] ) ) unset( $strings['insertFromUrlTitle'] );
+ }
+
+ return $strings;
+
+ }
+
+
+ /**
+ * Add extra tabs to the default wordpress Media Manager iframe
+ *
+ * @var array existing media manager tabs
+ */
+ public function custom_media_upload_tab_name( $tabs ) {
+
+ $metaslider_tabs = array( 'post_feed', 'layer', 'youtube', 'vimeo' );
+
+ // restrict our tab changes to the meta slider plugin page
+ if ( ( isset( $_GET['page'] ) && $_GET['page'] == 'metaslider' ) || ( isset( $_GET['tab'] ) && in_array( $_GET['tab'], $metaslider_tabs ) ) ) {
+ $newtabs = array();
+
+ if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) ) {
+ $newtabs = array(
+ 'post_feed' => __( "Post Feed", "metaslider" ),
+ 'vimeo' => __( "Vimeo", "metaslider" ),
+ 'youtube' => __( "YouTube", "metaslider" ),
+ 'layer' => __( "Layer Slide", "metaslider" )
+ );
+ }
+
+ if ( isset( $tabs['nextgen'] ) )
+ unset( $tabs['nextgen'] );
+
+
+ if ( is_array( $tabs ) ) {
+ return array_merge( $tabs, $newtabs );
+ } else {
+ return $newtabs;
+ }
+
+ }
+
+ return $tabs;
+
+ }
+
+
+ /**
+ * Set the current slider
+ */
+ public function set_slider( $id, $shortcode_settings = array() ) {
+
+ $type = 'flex';
+
+ if ( isset( $shortcode_settings['type'] ) ) {
+ $type = $shortcode_settings['type'];
+ } else if ( $settings = get_post_meta( $id, 'ml-slider_settings', true ) ) {
+ if ( is_array( $settings ) && isset( $settings['type'] ) ) {
+ $type = $settings['type'];
+ }
+ }
+
+ if ( ! in_array( $type, array( 'flex', 'coin', 'nivo', 'responsive' ) ) ) {
+ $type = 'flex';
+ }
+
+ $this->slider = $this->create_slider( $type, $id, $shortcode_settings );
+
+ }
+
+
+ /**
+ * Create a new slider based on the sliders type setting
+ */
+ private function create_slider( $type, $id, $shortcode_settings ) {
+
+ switch ( $type ) {
+ case( 'coin' ):
+ return new MetaCoinSlider( $id, $shortcode_settings );
+ case( 'flex' ):
+ return new MetaFlexSlider( $id, $shortcode_settings );
+ case( 'nivo' ):
+ return new MetaNivoSlider( $id, $shortcode_settings );
+ case( 'responsive' ):
+ return new MetaResponsiveSlider( $id, $shortcode_settings );
+ default:
+ return new MetaFlexSlider( $id, $shortcode_settings );
+
+ }
+ }
+
+
+ /**
+ * Handle slide uploads/changes.
+ */
+ public function admin_process() {
+
+ // this function should only ever be called from the Meta Slider admin page.
+ if ( ! is_admin() ) {
+ return;
+ }
+
+ $capability = apply_filters( 'metaslider_capability', 'edit_others_posts' );
+
+ if ( ! current_user_can( $capability ) ) {
+ return;
+ }
+
+ // handle switching view
+ if ( isset( $_GET['view'] ) ) {
+ $this->switch_view();
+ }
+
+ // default to the latest slider
+ $slider_id = $this->find_slider( 'modified', 'DESC' );
+
+ // delete a slider
+ if ( isset( $_GET['delete'] ) ) {
+ $slider_id = $this->delete_slider( absint( $_GET['delete'] ) );
+ }
+
+ // load a slider by ID
+ if ( isset( $_REQUEST['id'] ) ) {
+ $temp_id = absint( $_REQUEST['id'] );
+
+ // check valid post ID
+ if ( get_post( $temp_id ) ) {
+ $slider_id = $temp_id;
+ }
+ }
+
+ // create a new slider
+ if ( isset( $_GET['add'] ) ) {
+ $slider_id = $this->add_slider();
+ }
+
+ // finally, set the slider
+ if ( $slider_id > 0 ) {
+ $this->set_slider( $slider_id );
+ }
+
+ }
+
+ /**
+ *
+ */
+ private function switch_view() {
+ global $user_ID;
+
+ $view = $_GET['view'];
+
+ $allowed_views = array('tabs', 'dropdown');
+
+ if ( ! in_array( $view, $allowed_views ) ) {
+ return;
+ }
+
+ delete_user_meta( $user_ID, "metaslider_view" );
+
+ if ( $view == 'dropdown' ) {
+ add_user_meta( $user_ID, "metaslider_view", "dropdown");
+ }
+
+ }
+
+ /**
+ * Create a new slider
+ */
+ private function add_slider() {
+
+ // check nonce
+ check_admin_referer( "metaslider_add_slider" );
+
+ $defaults = array();
+
+ // if possible, take a copy of the last edited slider settings in place of default settings
+ if ( $last_modified = $this->find_slider( 'modified', 'DESC' ) ) {
+ $defaults = get_post_meta( $last_modified, 'ml-slider_settings', true );
+ }
+
+ // insert the post
+ $id = wp_insert_post( array(
+ 'post_title' => __( "New Slider", "metaslider" ),
+ 'post_status' => 'publish',
+ 'post_type' => 'ml-slider'
+ )
+ );
+
+ // use the default settings if we can't find anything more suitable.
+ if ( empty( $defaults ) ) {
+ $slider = new MetaSlider( $id, array() );
+ $defaults = $slider->get_default_parameters();
+ }
+
+ // insert the post meta
+ add_post_meta( $id, 'ml-slider_settings', $defaults, true );
+
+ // create the taxonomy term, the term is the ID of the slider itself
+ wp_insert_term( $id, 'ml-slider' );
+
+ return $id;
+
+ }
+
+
+ /**
+ * Delete a slider (send it to trash)
+ *
+ * @param int $id
+ */
+ private function delete_slider( $id ) {
+
+ // check nonce
+ check_admin_referer( "metaslider_delete_slider" );
+
+ // send the post to trash
+ wp_update_post( array(
+ 'ID' => $id,
+ 'post_status' => 'trash'
+ )
+ );
+
+ return $this->find_slider( 'date', 'DESC' );
+
+ }
+
+
+ /**
+ * Find a single slider ID. For example, last edited, or first published.
+ *
+ * @param string $orderby field to order.
+ * @param string $order direction (ASC or DESC).
+ * @return int slider ID.
+ */
+ private function find_slider( $orderby, $order ) {
+
+ $args = array(
+ 'force_no_custom_order' => true,
+ 'post_type' => 'ml-slider',
+ 'num_posts' => 1,
+ 'post_status' => 'publish',
+ 'suppress_filters' => 1, // wpml, ignore language filter
+ 'orderby' => $orderby,
+ 'order' => $order
+ );
+
+ $the_query = new WP_Query( $args );
+
+ while ( $the_query->have_posts() ) {
+ $the_query->the_post();
+ return $the_query->post->ID;
+ }
+
+ wp_reset_query();
+
+ return false;
+
+ }
+
+
+ /**
+ * Get sliders. Returns a nicely formatted array of currently
+ * published sliders.
+ *
+ * @param string $sort_key
+ * @return array all published sliders
+ */
+ private function all_meta_sliders( $sort_key = 'date' ) {
+
+ $sliders = false;
+
+ // list the tabs
+ $args = array(
+ 'post_type' => 'ml-slider',
+ 'post_status' => 'publish',
+ 'orderby' => $sort_key,
+ 'suppress_filters' => 1, // wpml, ignore language filter
+ 'order' => 'ASC',
+ 'posts_per_page' => -1
+ );
+
+ $args = apply_filters( 'metaslider_all_meta_sliders_args', $args );
+
+ // WP_Query causes issues with other plugins using admin_footer to insert scripts
+ // use get_posts instead
+ $all_sliders = get_posts( $args );
+
+ foreach( $all_sliders as $slideshow ) {
+
+ $active = $this->slider && ( $this->slider->id == $slideshow->ID ) ? true : false;
+
+ $sliders[] = array(
+ 'active' => $active,
+ 'title' => $slideshow->post_title,
+ 'id' => $slideshow->ID
+ );
+
+ }
+
+ return $sliders;
+
+ }
+
+
+ /**
+ * Compare array values
+ *
+ * @param array $elem1
+ * @param array $elem2
+ * @return bool
+ */
+ private function compare_elems( $elem1, $elem2 ) {
+
+ return $elem1['priority'] > $elem2['priority'];
+
+ }
+
+
+ /**
+ *
+ * @param array $aFields - array of field to render
+ * @return string
+ */
+ public function build_settings_rows( $aFields ) {
+
+ // order the fields by priority
+ uasort( $aFields, array( $this, "compare_elems" ) );
+
+ $return = "";
+
+ // loop through the array and build the settings HTML
+ foreach ( $aFields as $id => $row ) {
+ // checkbox input type
+ if ( $row['type'] == 'checkbox' ) {
+ $return .= "{$row['label']} ";
+
+ if ( isset( $row['after'] ) ) {
+ $return .= "{$row['after']} ";
+ }
+
+ $return .= " ";
+ }
+
+ // navigation row
+ if ( $row['type'] == 'navigation' ) {
+ $navigation_row = "{$row['label']} ";
+
+ $return .= apply_filters( 'metaslider_navigation_options', $navigation_row, $this->slider );
+ }
+
+ // navigation row
+ if ( $row['type'] == 'radio' ) {
+ $navigation_row = "{$row['label']} ";
+
+ $return .= apply_filters( 'metaslider_navigation_options', $navigation_row, $this->slider );
+ }
+
+ // header/divider row
+ if ( $row['type'] == 'divider' ) {
+ $return .= "{$row['value']} ";
+ }
+
+ // slideshow select row
+ if ( $row['type'] == 'slider-lib' ) {
+ $return .= "";
+
+ foreach ( $row['options'] as $k => $v ) {
+ $checked = checked( $k, $row['value'], false );
+ $return .= "
+ {$v['label']} ";
+ }
+
+ $return .= " ";
+ }
+
+ // number input type
+ if ( $row['type'] == 'number' ) {
+ $return .= "{$row['label']} {$row['after']} ";
+ }
+
+ // select drop down
+ if ( $row['type'] == 'select' ) {
+ $return .= "{$row['label']} ";
+ foreach ( $row['options'] as $k => $v ) {
+ $selected = selected( $k, $row['value'], false );
+ $return .= "{$v['label']} ";
+ }
+ $return .= " ";
+ }
+
+ // theme drop down
+ if ( $row['type'] == 'theme' ) {
+ $return .= "{$row['label']} ";
+ $themes = "";
+
+ foreach ( $row['options'] as $k => $v ) {
+ $selected = selected( $k, $row['value'], false );
+ $themes .= "{$v['label']} ";
+ }
+
+ $return .= apply_filters( 'metaslider_get_available_themes', $themes, $this->slider->get_setting( 'theme' ) );
+
+ $return .= " ";
+ }
+
+ // text input type
+ if ( $row['type'] == 'text' ) {
+ $return .= "{$row['label']} ";
+ }
+
+ // text input type
+ if ( $row['type'] == 'textarea' ) {
+ $return .= "{$row['label']} {$row['value']} ";
+ }
+
+ // text input type
+ if ( $row['type'] == 'title' ) {
+ $return .= "{$row['label']} ";
+ }
+ }
+
+ return $return;
+
+ }
+
+
+ /**
+ * Return an indexed array of all easing options
+ *
+ * @return array
+ */
+ private function get_easing_options() {
+
+ $options = array(
+ 'linear', 'swing', 'jswing', 'easeInQuad', 'easeOutQuad', 'easeInOutQuad',
+ 'easeInCubic', 'easeOutCubic', 'easeInOutCubic', 'easeInQuart',
+ 'easeOutQuart', 'easeInOutQuart', 'easeInQuint', 'easeOutQuint',
+ 'easeInOutQuint', 'easeInSine', 'easeOutSine', 'easeInOutSine',
+ 'easeInExpo', 'easeOutExpo', 'easeInOutExpo', 'easeInCirc', 'easeOutCirc',
+ 'easeInOutCirc', 'easeInElastic', 'easeOutElastic', 'easeInOutElastic',
+ 'easeInBack', 'easeOutBack', 'easeInOutBack', 'easeInBounce', 'easeOutBounce',
+ 'easeInOutBounce'
+ );
+
+ foreach ( $options as $option ) {
+ $return[$option] = array(
+ 'label' => ucfirst( preg_replace( '/(\w+)([A-Z])/U', '\\1 \\2', $option ) ),
+ 'class' => ''
+ );
+ }
+
+ return $return;
+
+ }
+
+ /**
+ * Output the slideshow selector.
+ *
+ * Show tabs or a dropdown list depending on the users saved preference.
+ */
+ public function print_slideshow_selector() {
+ global $user_ID;
+
+ $add_url = wp_nonce_url( "?page=metaslider&add=true", "metaslider_add_slider" );
+
+ if ( $tabs = $this->all_meta_sliders() ) {
+
+ if ( $this->get_view() == 'tabs' ) {
+
+ echo "";
+
+ echo "";
+
+ foreach ( $tabs as $tab ) {
+
+ if ( $tab['active'] ) {
+ echo "
";
+ } else {
+ echo "" . esc_html( $tab['title'] ) . " ";
+ }
+
+ }
+
+ echo "+ ";
+ echo "";
+
+ } else {
+
+ if ( isset( $_GET['add'] ) && $_GET['add'] == 'true' ) {
+
+ echo "" . __( "New slideshow created. Click 'Add Slide' to get started!", "metaslider" ) . "
";
+
+ }
+
+ echo "";
+
+ echo "" . __("Select Slider", "metaslider") . ": ";
+ echo "
";
+
+ $tabs = $this->all_meta_sliders( 'title' );
+
+ foreach ( $tabs as $tab ) {
+
+ $selected = $tab['active'] ? " selected" : "";
+
+ if ( $tab['active'] ) {
+
+ $title = $tab['title'];
+
+ }
+
+ echo "{$tab['title']} ";
+
+ }
+
+ echo " " . __( 'or', "metaslider" ) . " ";
+ echo "
" . __( 'Add New Slideshow', "metaslider" ) . " ";
+
+ }
+ } else {
+ echo "";
+ echo "+ ";
+ echo " " . __( "Create your first slideshow", "metaslider" ) . "
";
+ echo "";
+ }
+ }
+
+
+ /**
+ * Return the users saved view preference.
+ */
+ public function get_view() {
+ global $user_ID;
+
+ if ( get_user_meta( $user_ID, "metaslider_view", true ) ) {
+ return get_user_meta( $user_ID, "metaslider_view", true );
+ }
+
+ return 'tabs';
+ }
+
+
+ /**
+ * Render the admin page (tabs, slides, settings)
+ */
+ public function render_admin_page() {
+
+ $this->admin_process();
+ $this->upgrade_to_pro_cta();
+ $this->do_system_check();
+
+ $slider_id = $this->slider ? $this->slider->id : 0;
+
+ ?>
+
+
+
+
+ ' .
+ __( "Add slider", "metaslider" ) . '';
+ }
+
+ return $context;
+
+ }
+
+
+ /**
+ * Append the 'Choose Meta Slider' thickbox content to the bottom of selected admin pages
+ */
+ public function admin_footer() {
+
+ global $pagenow;
+
+ // Only run in post/page creation and edit screens
+ if ( in_array( $pagenow, array( 'post.php', 'page.php', 'post-new.php', 'post-edit.php' ) ) ) {
+ $sliders = $this->all_meta_sliders( 'title' );
+ ?>
+
+
+
+
+
+ ' . __( "Go Pro", "metaslider" ) . '';
+ }
+
+ return $links;
+
+ }
+
+
+ /**
+ * Return the meta slider pro upgrade iFrame
+ */
+ public function upgrade_to_pro_tab() {
+
+ if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) ) {
+ return wp_iframe( array( $this, 'upgrade_to_pro_iframe' ) );
+ }
+
+ }
+
+
+ /**
+ * Media Manager iframe HTML
+ */
+ public function upgrade_to_pro_iframe() {
+
+ wp_enqueue_style( 'metaslider-admin-styles', METASLIDER_ASSETS_URL . 'metaslider/admin.css', false, METASLIDER_VERSION );
+ wp_enqueue_script( 'google-font-api', 'http://fonts.googleapis.com/css?family=PT+Sans:400,700' );
+
+ $link = apply_filters( 'metaslider_hoplink', 'http://www.metaslider.com/upgrade/' );
+ $link .= '?utm_source=lite&utm_medium=more-slide-types&utm_campaign=pro';
+
+ echo implode("", array(
+ ""
+ ));
+
+ }
+
+
+ /**
+ * Upgrade CTA.
+ */
+ public function upgrade_to_pro_cta() {
+
+ if ( function_exists( 'is_plugin_active' ) && ! is_plugin_active( 'ml-slider-pro/ml-slider-pro.php' ) ) {
+ $link = apply_filters( 'metaslider_hoplink', 'http://www.metaslider.com/upgrade/' );
+
+ $link .= '?utm_source=lite&utm_medium=nag&utm_campaign=pro';
+
+ $goPro = "";
+
+ echo $goPro;
+ }
+
+ }
+
+
+ /**
+ * Start output buffering.
+ *
+ * Note: wp_ob_end_flush_all is called by default
+ * - see shutdown action in default-filters.php
+ */
+ public function start_resource_manager() {
+
+ ob_start( array( $this, 'resource_manager' ) );
+
+ }
+
+ /**
+ * Process the whole page output. Move link tags with an ID starting
+ * with 'metaslider' into the of the page.
+ */
+ public function resource_manager( $buffer ) {
+
+ // create dom document from buffer
+ $html = new simple_html_dom();
+
+ // Load from a string
+ $html->load( $buffer, true, false );
+
+ if ( ! $html->find( 'body link[id^="metaslider"]' ) )
+ return $buffer;
+
+ // selectors to find Meta Slider links
+ $selectors = array(
+ 'body link[id^="metaslider"]',
+ );
+
+ $selectors = apply_filters( "metaslider_resource_manager_selectors", $selectors );
+
+ if ( $head = $html->find( 'head', 0 ) ) {
+
+ // move meta slider elemends to
+ foreach ( $selectors as $selector ) {
+
+ foreach ( $html->find( $selector ) as $element ) {
+
+ $head->innertext .= "\t" . $element->outertext . "\n";
+ $element->outertext = '';
+
+ }
+
+ }
+
+ }
+
+ return $html->save();
+
+ }
+
+}
+
+endif;
+
+add_action( 'plugins_loaded', array( 'MetaSliderPlugin', 'init' ), 10 );
\ No newline at end of file
diff --git a/wp-content/plugins/ml-slider/readme.txt b/wp-content/plugins/ml-slider/readme.txt
new file mode 100644
index 0000000..7e73471
--- /dev/null
+++ b/wp-content/plugins/ml-slider/readme.txt
@@ -0,0 +1,465 @@
+=== Plugin Name ===
+Contributors: matchalabs
+Tags: wordpress slideshow,seo,slideshow,slider,widget,wordpress slider,image slider,flexslider,flex slider,nivoslider,nivo slider,responsive,responsive slides,coinslider,coin slider,slideshow,carousel,responsive slider,vertical slides
+Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=CQ84KC4X8YKW8
+Requires at least: 3.5
+Tested up to: 3.9
+Stable tag: 3.0
+License: GPLv2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+
+Easy to use WordPress slider plugin. Create SEO optimised responsive slideshows with Nivo Slider, Flex Slider, Coin Slider and Responsive Slides.
+
+== Description ==
+
+http://www.youtube.com/watch?v=o0f3uAvL6Ic
+
+The most popular WordPress slider plugin. Creating slideshows with [Meta Slider](http://www.metaslider.com/) is fast and easy. Simply select images from your WordPress Media Library, drag and drop them into place, set slide captions, links and SEO fields all from one page. You can choose from 4 different slideshow types (Flex Slider, Nivo Slider, Responsive Slides & Coin Slider) and use the provided shortcode or template include to easily embed slideshows in your blog.
+
+**Includes**
+
+* **Flex Slider 2** - Responsive, 2 transition effects, carousel mode
+* **Nivo Slider** - Responsive, 16 transition effects, 4 themes
+* **Responsive Slides** - Responsive & incredibly light weight
+* **Coin Slider** - 4 transition effects
+
+**Features**
+
+* Simple, easy to use interface - perfect for individual users, developers & clients!
+* Create Responsive, SEO optimised slideshows in seconds
+* Unrestricted support for Image slides (supports caption, link, title text, alt text)
+* Full width slideshow support
+* Drag and drop slide reordering
+* Admin preview
+* Intelligent image cropping
+* Set image crop position
+* Built in Widget and Shortcode
+* Loads of slideshow configuration options - transition effect, speed etc (per slideshow)
+* Fully localised
+* WordPress Multi Site compatible
+* Compatible with translation plugins (WPML, PolyLang & qTranslate)
+* Extensive Developer API (hooks & filters)
+* Fast - only the minimum JavaScript/CSS is included on your page
+* Free basic support (covering installation issues and theme/plugin conflicts)
+* Lightbox support with the [Meta Slider Lightbox](http://wordpress.org/plugins/ml-slider-lightbox/) addon
+
+Upgrade to [Meta Slider Pro](http://www.metaslider.com/upgrade) to add support for:
+
+* YouTube & Vimeo slides
+* HTML slides
+* Layer slides with CSS3 animations
+* Dynamic Post Feed/Featured Image Slides (content slider)
+* Custom Themes
+* Thumbnail Navigation
+* Premium Support
+
+**Translations**
+
+* French (thanks to fb-graphiklab)
+* Spanish (thanks to eltipografico)
+* German (thanks to Rewolve44)
+* Polish (thanks to gordon34)
+* Chinese (thanks to æéä¸)
+* Taiwanese (thanks to æéä¸)
+* Norwegian (thanks to Dreamsoft)
+* Romanian (thanks to Octav Madalin Stanoaia)
+* Japanese (thanks to Dorrie)
+* Persian (thanks to aliamini)
+* Hungarian (thanks to szripio)
+* Croatian
+* Hebrew (thanks to Ahrale)
+
+Read more and thanks to:
+
+* [Flex Slider](http://flexslider.woothemes.com/)
+* [Responsive Slides](http://responsive-slides.viljamis.com/)
+* [Coin Slider](http://workshop.rs/projects/coin-slider/)
+* [Nivo Slider](http://dev7studios.com/nivo-slider/)
+
+Find out more at http://www.metaslider.com
+
+Follow us on Twitter: [@wpmetaslider](https://twitter.com/wpmetaslider)
+
+== Installation ==
+
+The easy way:
+
+1. Go to the Plugins Menu in WordPress
+1. Search for "Meta Slider"
+1. Click "Install"
+
+The not so easy way:
+
+1. Upload the `ml-slider` folder to the `/wp-content/plugins/` directory
+1. Activate the plugin through the 'Plugins' menu in WordPress
+1. Manage your slideshows using the 'Meta Slider' menu option
+
+== Frequently Asked Questions ==
+
+http://www.metaslider.com/documentation/
+
+= How do I include a slideshow in the header of my site? =
+
+Video Guide:
+
+http://www.youtube.com/watch?v=gSsWgd66Jjk
+
+Text Guide:
+
+You will need to paste the "Template Include" code into your theme (you can find this in the 'Usage' section underneath the slideshow settings)
+
+* Go to Appearance > Editor in WordPress
+* Edit a file called 'header.php' (or similar)
+* Find the correct place to add it (for example above or below the logo)
+* Paste in the code and save.
+
+= I only want to show the slideshow on my homepage, how can I do that? =
+
+Add the 'restrict_to' parameter to the shortcode, eg:
+
+`[metaslider id=XXX restrict_to=home]");`
+
+Theme specific instructions:
+
+http://www.metaslider.com/documentation/theme-integration/
+
+= It's not working - what can I do? =
+
+Check out the troubleshooting page here:
+
+http://www.metaslider.com/documentation/troubleshooting/
+
+= Meta Slider is cropping my images in the wrong place - what can I do? =
+
+See www.metaslider.com/documentation/image-cropping/
+
+== Screenshots ==
+
+1. Meta Slider - for live demos see http://www.metaslider.com/examples/
+2. Nivo Slider example
+3. Coin Slider example
+4. Flex Slider example
+5. Carousel Example
+6. Administration panel - selecting slides
+
+== Changelog ==
+
+= 3.0.1 [19/08/14] =
+
+* Fix: Escape admin setting text fields
+* Fix: Escape admin tab names (thanks to Dylan Irzi for spotting and reporting this!)
+* Change: Allow shortcode parameters to be filtered
+
+= 3.0 [30/07/14] =
+
+**This is not a major update. We're just following the WordPress versioning conventions (3.0 comes after 2.9)**
+
+* New feature: Set crop position for slides (requires WP 3.9+)
+* New feature: Disable cropping setting
+* Fix: Use get_posts instead of WP_Query to extract slideshows (fix conflicts with plugins using get_post_type in admin_footer hooks)
+* Change: Add filter for capability required to use meta slider
+
+= 2.9.1 [15/07/14] =
+
+* New feature: Hungarian Language Pack added
+* Fix: Escape attributes and JS in slideshow output (credit to jwenerd!)
+* Fix: Escape attributes and text fields in admin
+* New feature: Admin slide tabs can be modified with filters
+
+= 2.9 [25/06/14] =
+
+* New feature: Japanese Language Pack added
+* New feature: Persian Language Pack added
+* New feature: Switch between tab and list view
+* New feature: Added ms-left and ms-right css classes to align slideshow to left or right
+* Improvement: Flex Slider updated to 2.3.0-bleeding (fix initial image fade)
+* Fix: reference to window.parent in media library
+* Fix: Thumbnail outline in firefox
+
+= 2.8.1 [28/04/14] =
+
+* Fix: All in One Events Calendar conflict fix (Advanced Settings not toggling)
+* Fix: CSS resets to avoid theme conflicts
+* Fix: Autoload visibility conflict (http://wordpress.org/support/topic/autoload-visibillity-conflict)
+* Fix: Layer Editor in IE11 - text fields not accessible in modal windows
+* Fix: FlexSlider IE11 Fade transition
+
+= 2.8 [28/04/14] =
+
+* New feature: Russian Language Pack added
+* Fix: Carousel image scaling in FireFox
+* Fix: wpautop issue with double ampersand
+* New feature: Shortcode parameter added to restrict slideshow to displaying on homepage only (see FAQ)
+* Improvement: Save slideshow after reordering slides
+* Fix: PHP Warning when no slideshows have been created
+
+= 2.8-beta [16/04/14] =
+
+* Improvement: Preview now uses admin-post action
+* Improvement: Classes are now auto loaded to reduce memory footprint
+(Thanks to Viktor Szépe for the above suggestions!)
+* Improvement: Slideshow initilisation time reduced
+* Improvement: HTML5 Compatibility: Alt tags always present on image tag - even if empty.
+* Improvement: Flex Slider slideshows should now 'reserve' a space for themselves while they fully load
+* Update: Flex Slider updated to v2.2.2
+* New feature: Romanian Language Pack added (Thanks to Octav Madalin Stanoaia)
+* New feature: Dutch Language Pack added
+* New feature: WP Super Cache compatibility - cache is cleared when saving slideshow
+* New feature: HTML5 Compatibility (Experimental). Set `define('METASLIDER_ENABLE_RESOURCE_MANAGER', true);` in wp-config.php to move Meta Slider link tags head of the page.
+
+= 2.7.2 [25/03/14] =
+
+* Fix: Only apply carousel margin to slides
+* Fix: Enqueue Easing library when carousel mode is enabled, regardless of effect selection
+* Fix: Thumbnail margin when theme has #content div
+
+= 2.7.1 [19/03/14] =
+
+* Fix: Remove easing parameter when effect is set to fade
+* Fix: Navigation options greyed out in IE
+* Fix: qTranslate captions not being processed (typo)
+
+= 2.7 [18/03/14] =
+
+* New feature: Crotatian Lang pack added
+* New feature: Carousel margin option added
+* New feature: Process shortcodes in captions
+* Improvement: Tab rename UX
+* Improvement: Admin save spinner functionality improved
+* Improvement: CSS Resets updated
+* Improvement: Use plugins_loaded action to initialise plugin
+* Fix: PHP Warnings when one slideshow exists
+* Fix: Smart Cropping sometimes not returning smart cropped image
+* Fix: Add z-index to meta slider, attempted conflict fix for themes with drop down menus.
+* Fix: Only include the easing library when transition effect is set to slide
+* Fix: White Label Branding plugin compatibility.
+* Change: "Responsive" option renamed to "R. Slides". The (old) "Responsive" option refers to the "Responsive Slides" jQuery library, but users were getting confused as the naming suggested it was the only responsive option. Flex Slider & Nivo Slider are also responsive.
+
+= 2.6.3 [23/01/14] =
+
+* Improvement: Various admin screen styling improvements
+* Fix: Add 'ms-' prefix to Advanced settings toggle boxes and Preview button (avoid theme conflicts)
+* Fix: RTL fixes
+* Improvement: Filters added for complete slideshow output
+* Improvement: Filter added for slide image label
+* Improvement: 'No Conflict' mode refactored
+* Improvement: 'slider' parameter added to flexslider before/start/after etc callbacks
+* Change: Renamed in admin menu from "Meta Slider Lite" to "Meta Slider"
+
+= 2.6.2 [02/01/14] =
+
+* Fix: Vantage background image tiling
+
+= 2.6.1 [31/12/13] =
+
+* Fix: Advanced settings arrow toggle
+* Fix: All in one SEO / Page builder / Meta Slider conflict
+* Fix: NextGen "Insert Gallery" conflict
+* New feature: Norwegian language pack added
+
+= 2.6 [19/12/13] =
+
+* Fix: Typo in metaslider_responsive_slide_image_attributes filter
+* Fix: Caption not working in Nivo Slider
+* Fix: Tab styling improved
+* Fix: New window styling improved in WP3.7 and below
+
+More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
+
+= 2.6-beta [15/12/13] =
+
+* New feature: Interface update for WordPress 3.8 admin redesign
+* New feature: 'Stretch' setting for full width slideshows
+* New feature: No conflict mode
+* New feature: 'Add slider' button for posts and pages
+* New feature: SEO options (add title & alt text to slides)
+* Change: CSS is now enqueued using wp_enqueue_style (Use a minification plugin or caching plugin to move styles to the if HTML5 validity is required - eg W3 Total Cache)
+
+More info/Comments: http://www.metaslider.com/coming-soon-meta-slider-2-6-free/
+
+= 2.5 [25/11/13] =
+* Fix: JetPack Photon conflict
+* Improvement: German Language pack added (thanks to gordon34)
+* Improvement: Chinese language pack updated (thanks to æéä¸)
+* Improvement: MP6 styling fixes
+
+= 2.5-beta2 [14/11/13] =
+* Fix: Vantage theme backwards compatibility
+* Fix: Flexslider anchor attributes filter
+
+= 2.5-beta1 [12/11/13] =
+* Fix: Center align slideshow
+
+= 2.5-beta [12/11/13] =
+* New Feature: 'percentwidth' parameter added to shortcode to allow for 100% wide slideshows
+* Improvement: Generate resized images through multiple Ajax requests on save (blank screen fix)
+* Improvement: IE9 admin styling tidied up
+* Improvement: Filters added to add/change attributes in and tags
+* Improvement: Security - nonce checking added
+* Change: Remove bottom margin from flex slider when navigation is hidden (add a CSS Class of 'add-margin' if you need the margin)
+* Fix: Add slides to slideshow in the same order they're selected in the Media Library
+* Fix: Symlink path resolution
+* Fix: Do not try to resize/open images that are corrupt (missing metadata) (blank screen fix)
+
+= 2.4.2 [17/10/13] =
+* Fix: qTranslate caption & URL parsing for image slides
+
+= 2.4.1 [17/10/13] =
+* Fix: PHP Warning (reported by & thanks to: fgirardey)
+
+= 2.4 [16/10/13] =
+* Fix: FlexSlider styling in twenty twelve theme
+* Fix: IE10 - "Caption" placeholder text being saved as actual caption
+* Improvement: Settings table tidied up
+* Improvement: New slides are resized during addition to the slideshow
+* Improvement: Default slideshow size increased to 700x300
+* Improvement: Image filename now displayed for each slide (instead of image dimensions)
+* Improvement: Replace deprecated 'live()' jQuery call with 'on()'
+* Improvement: Polish Language pack added (thanks to gordon34)
+* Improvement: Chinese language pack added (thanks to æéä¸)
+* Improvement: 'metaslider_resized_image_url' filter added (could be used to disable cropping)
+* Change: qTranslate support for slide URLs (see: http://screencast.com/t/FrsrptyhoT)
+* Change: PolyLang fix to ensure slides are extracted for all languages (set up a new slideshow for each language)
+* Change: WPML fix to ensure slides are extracted for all languages (set up a new slideshow for each language)
+
+
+= 2.3 [18/09/13] =
+* Improvement: Flex Slider upgraded to v2.2
+* Improvement: Responsive Slides upgraded to v1.54
+* Improvement: 'Create first slideshow' prompt added for new users
+* Change: 'scoped' attribute removed from inline CSS tag until browsers catch up with supporting it properly. A new filter has been added: "metaslider_style_attributes" if you wish to add the scoped attribute back in.
+* Change: wp_footer check removed due to confusion
+* New Feature: 'metaslider_max_tabs' filter added to convert tab list to ordered drop down menu
+* Fix: Remove 'Insert Media' tab from 'Add Slide' modal (WP 3.6 only)
+* New Feature: Filters added to allow modification of image slide HTML
+* Improvement: Settings area tidied up
+* Improvement: Image URL Field less restrictive
+* Improvement: HTML Output tidied up
+
+= 2.2.2 [21/08/13] =
+* Improvement: System check added with option to dismiss messages. Checks made for: role scoper plugin, wp_footer, wordpress version & GD/ImageMagick.
+
+= 2.2.1 [08/08/13] =
+* Fix: Responsive slides styling in FireFox (reported by and thanks to: dznr418)
+* Fix: Flex Slider carousel causing browser to crash in some circumstances
+
+= 2.2 [01/08/13] =
+* Fix: Paragraph tags being added to output using Nivo Slider
+
+= 2.1.6 [22/07/2013] =
+* Fix: Use the original image file if the slideshow size is the same size as the image file
+* Fix: Conflict with Advanced Post Types Order plugin
+* Fix: Colorbox conflict when using resizable elements in lightbox
+* Improvement: Refresh slides after clicking 'save'
+* Improvement: Ensure taxonomy category exists before tagging slide to slideshow
+* Fix: Only submit form when submit button is clicked (not all buttons)
+* Fix: Coin slider caption width in FireFox
+* Improvement: Added hook to adjust carousel image margin
+
+= 2.1.5 [24/05/13] =
+* Fix: HTML 5 Validation
+
+= 2.1.4 [21/05/13] =
+* Fix: Widget markup invalid (reported by and thanks to: CarlosCanvas)
+
+= 2.1.3 [21/05/13] =
+* Fix: User Access Manager Plugin incompatibility issues (reported by and thanks to: eltipografico)
+
+= 2.1.2 [21/05/13] =
+* Fix: Nivo Slider theme select dropdown (reported by and thanks to: macks)
+* Fix: HTML5 Validation fix for inline styles
+* Improvement: Title field added to widget (suggested by and thanks to: pa_esp)
+* New feature: Spanish language pack (thanks to eltipografico)
+
+= 2.1.1 [13/05/13] =
+* Fix: PHP version compatibility
+
+= 2.1 [12/05/13] =
+* New feature: Widget added
+* New feature: System check added (checks for required image libraries and WordPress version)
+* Fix: Multiple CSS fixes added for popular themes
+* Fix: Flex slider shows first slide when JS is disabled
+* Improvement: Display warning message when unchecking Print JS and Print CSS options
+* Improvement: Coinslider navigation centered
+
+= 2.0.2 [02/05/13] =
+* Fix: PHP Error when using slides the same size as the slideshow
+
+= 2.0.1 [28/04/13] =
+* New feature: French language pack (thanks to: fb-graphiklab)
+* Fix: Use transparent background on default flexslider theme
+* Fix: Set direction to LTR for flexslider viewport (fix for RTL languages)
+* Fix: Nivoslider HTML Captions
+* Fix: Responsive slides navigation positioning
+
+= 2.0 [21/04/13] =
+* Fix: Responsive slides navigation styling
+* Fix: Update slide order on save
+* Fix: Smart crop edge cases
+* Fix: Flexslider navigation overflow
+
+= 2.0-betaX [17/04/13] =
+* Improvement: Error messages exposed in admin is Meta Slider cannot load the slides
+* Improvement: Load default settings if original settings are corrupt/incomplete
+* Fix: Smart Crop ratio
+* Fix: UTF-8 characters in captions (reported by and thanks to: javitopo)
+* Fix: JetPack Photo not loading images (reported by and thanks to: Jason)
+* Fix: Double slash on jQuery easing path
+* Fix: Paragraph tags outputted in JavaScript (reported by and thanks to: CrimsonRaddish)
+
+= 2.0-beta =
+* New feature: Preview slideshows in admin control panel
+* New feature: 'Easing' options added to flex slider
+* New feature: 'Carousel mode' option added for flex slider
+* New feature: 'Auto play' option added
+* New feature: 'Smart Crop' setting ensures your slideshow size remains consitent regardless of image dimensions
+* New feature: 'Center align slideshow' option added for all sliders
+* New feature: Coin Slider upgraded to latest version, new options now exposed in Meta Slider
+* New feature: Captions now supported by responsive slides
+* Improvement: Responsive AJAX powered administration screen
+* Improvement: Code refactored
+* Improvement: Flex Slider captions now sit over the slide
+* Fix: Nivo slider invalid markup (reported by and thanks to: nellyshark)
+* Fix: JS && encoding error (reported by and thanks to: neefje)
+
+= 1.3 [28/02/13] =
+* Renamed to Meta Slider (previously ML Slider)
+* Improvement: Admin styling cleaned up
+* Improvement: Code refactored
+* Improvement: Plugin localised
+* Improvement: Template include PHP code now displayed on slider edit page
+* Improvement: jQuery tablednd replaced with jQuery sortable for reordering slides
+* New feature: Open URL in new window option added
+* Improvement: max-width css rule added to slider wrapper
+* Fix: UTF-8 support in captions (reported by and thanks to: petergluk)
+* Fix: JS && encoding error (reported by and thanks to: neefje)
+* Fix: Editors now have permission to use MetaSlider (reported by and thanks to: rritsud)
+
+= 1.2.1 [20/02/13] =
+* Fix: Number of slides per slideshow limited to WordPress 'blog pages show at most' setting (reported by and thanks to: Kenny)
+* Fix: Add warning when BMP file is added to slider (reported by and thanks to: MadBong)
+* Fix: Allow images smaller than default thumbnail size to be added to slider (reported by and thanks to: MadBong)
+
+= 1.2 [19/02/13] =
+* Improvement: Code refactored
+* Fix: Unable to assign the same image to more than one slider
+* Fix: JavaScript error when jQuery is loaded in page footer
+* Improvement: Warning notice when the slider has unsaved changes
+* Fix: Captions not being escaped (reported by and thanks to: papabeers)
+* Improvement: Add multiple files to slider from Media Browser
+
+= 1.1 [18/02/13] =
+* Improvement: Code refactored
+* Fix: hitting [enter] brings up Media Library
+* Improvement: Settings for new sliders now based on the last edited slider
+* Improvement: More screenshots added
+
+= 1.0.1 [17/02/13] =
+* Fix: min version incorrect (should be 3.5)
+
+= 1.0 [15/02/13] =
+* Initial version
+
+== Upgrade Notice ==
+
+
diff --git a/wp-content/plugins/really-simple-captcha/gentium/FONTLOG.txt b/wp-content/plugins/really-simple-captcha/gentium/FONTLOG.txt
new file mode 100644
index 0000000..354e4b9
--- /dev/null
+++ b/wp-content/plugins/really-simple-captcha/gentium/FONTLOG.txt
@@ -0,0 +1,153 @@
+FONTLOG
+Gentium Basic and Gentium Book Basic v1.1
+==========================================================
+
+
+This file provides detailed information on the Gentium Basic and Gentium Book Basic font families. This information should be distributed along with the Gentium Basic and Gentium Book Basic fonts and any derivative works.
+
+
+Basic Font Information
+----------------------
+
+Gentium ("belonging to the nations" in Latin) is a Unicode typeface family designed to enable the many diverse ethnic groups around the world who use the Latin script to produce readable, high-quality publications. The design is intended to be highly readable, reasonably compact, and visually attractive. Gentium has won a "Certificate of Excellence in Typeface Design" in two major international typeface design competitions: bukva:raz! (2001), TDC2003 (2003).
+
+The Gentium Basic and Gentium Book Basic font famililes are based on the original design, but with additional weights. The "Book" family is slightly heavier. Both families come with a complete regular, bold, italic and bold italic set of fonts.
+
+The supported character set, however, is much smaller than for the main Gentium fonts. These "Basic" fonts support only the Basic Latin and Latin-1 Supplement Unicode ranges, plus a selection of the more commonly used extended Latin characters, with miscellaneous diacritical marks, symbols and punctuation. For a complete list of supported characters see the list at the end of this document.
+
+In particular, these fonts do not support:
+
+- Full extended Latin IPA
+- Complete support for Central European languages
+- Greek
+- Cyrillic
+
+A much more complete character set will be supported in a future version of the complete Gentium fonts. These "Basic" fonts are intended as a way to provide additional weights for basic font users without waiting until the complete Gentium character set is finished. So please don't request additional glyphs or characters to be supported in the Basic fonts - such support will become available in the main Gentium family in the future.
+
+There are also some other limitations of the Basic fonts:
+
+- They are not completely metric-compatible with the full Gentium family
+ (some glyphs may have different widths, although changes have been minimal)
+- There is no kerning
+- There are no "Alt" versions, or ones with low-profile diacritics
+- The default stacking style for some diacritic combinations does not match Vietnamese-style conventions (although this is available through a OpenType/Graphite feature)
+- No support for TypeTuner
+
+There are, however, some wonderful new features that are still missing from the main Gentium family:
+
+- Bold!
+- Bold Italic!
+- The slightly-heavier Book family!
+- OpenType and Graphite smart code for diacritic placement!
+- A few useful OpenType and Graphite features
+- Support for a few more recent additions to Unicode and the SIL PUA (http://scripts.sil.org/UnicodePUA)
+- Character assignments are updated to conform to Unicode 5.1
+
+In particular, the Basic fonts support a subset of the smart font features that the Doulos SIL font supports. Those features are:
+
+- Capital Eng alternates
+- Literacy alternates
+- Capital Y-hook alternate
+- Capital N-left-hook alternate
+- Modifier apostrophe alternate
+- Modifier colon alternate
+- Open o alternate
+- Vietnamese-style diacritics
+
+More detail on the features can be seen in the Doulos SIL Technical Documentation (http://scripts.sil.org/DoulosSIL_Technical).
+
+
+Known Problems
+--------------
+
+We know of the following problems. Please report any other problems you encounter.
+
+- logicalnot (U+00AC) appears distorted in Bold Italic and Book Italic.
+- Opening the fonts with FontLab 5.0.x, then closing them, crashes FontLab. We are working to get this bug fixed in the next version of FontLab. A workaround is to open the font, save as a .vfb file, close (which still causes a crash). Then restart FontLab and open the .vfb file.
+
+
+ChangeLog
+---------
+(This should list both major and minor changes, most recent first.)
+
+4 Apr 2008 (Victor Gaultney) Gentium Basic/Gentium Book Basic version 1.1
+- Final release
+
+12 Nov 2007 (Victor Gaultney) Gentium Basic/Gentium Book Basic version 1.1b1
+- trimmed character set down to Basic
+- added additional weights
+- no FontLab source files
+
+28 Nov 2005 (Victor Gaultney) Gentium version 1.02
+- Changed licensing to the SIL Open Font License
+- Included FontLab source files
+- Fixed some duplicate PostScript glyphs names
+- Fixed italic angle
+
+19 Sep 2003 (Victor Gaultney) Gentium version 1.01
+- Maintenance release focused on changing internal font
+- Information to reflect the changeover to an SIL project
+- There is only one bug fix - the Greek mu PS name was changed to try and fix a display/printing problem. There is still no manual hinting
+
+16 Sep 2002 (Victor Gaultney) Gentium version 1.00
+- First public release
+- No manual hinting is included in this version. Some has been done - with good results - but is not yet complete enough.
+
+
+Information for Developers/Contributors
+---------------------------------------
+
+The source release contains FontLab source files for the eight fonts, but those files do not include the OpenType and Graphite code, as those are inserted after the fonts are generated from FontLab. The files are included as a source for the PostScript-style cubic curves. You are welcome, however, to open the font files themselves to gain access to the smart font code, although most editors will not let you edit that code directly. We will provide a richer set of sources for the full Gentium fonts at a later time.
+
+SIL will remain as maintainers of this font project, but we do not intend any further major releases. Our primary efforts will be going into the full Gentium package. Any contributions should be directed toward that project.
+
+
+Acknowledgements
+----------------
+(Here is where contributors can be acknowledged. If you make modifications be sure to add your name (N), email (E), web-address (W) and description (D). This list is sorted by last name in alphabetical order.)
+
+N: Victor Gaultney
+E: victor_gaultney@sil.org
+W: http://www.sil.org/~gaultney/
+D: Original Designer
+
+N: Annie Olsen
+E: nrsi@sil.org
+W: http://scripts.sil.org/
+D: Contributed some extended Latin glyphs
+
+N: SIL font engineers
+E: nrsi@sil.org
+W: http://scripts.sil.org/
+D: OpenType code and build support
+
+The Gentium project, and the Gentium Basic and Gentium Book Basic fonts, are maintained by SIL International.
+
+For more information please visit the Gentium page on SIL International's Computers and Writing systems website:
+http://scripts.sil.org/gentium
+
+Or send an email to
+
+
+Character Range Coverage
+------------------------
+
+C0 Controls and Basic Latin (U+0020..U+007E)
+C1 Controls and Latin-1 Supplement (U+00A0..U+00FF)
+Latin Extended-A (U+0100..U+0103, U+0106..U+010E, U+011A..U+0121, U+0124..U+0125, U+0128..U+012D, U+0130..U+0133, U+0139..U+013A, U+0141..U+0144, U+0147..U+0148, U+014A..U+0155, U+0158..U+015D, U+0160..U+0161, U+0164, U+0168..U+0171, U+00174..U+017E)
+Latin Extended-B (U+0181, U+0186, U+0189..U+018A, U+018E, U+0190, U+0192, U+0197..U+019A, U+019D, U+019F..U+01A1, U+01A9..U+01AA, U+01AF..U+01B0, U+01B3..U+01B4, U+01B7, U+01CD..U+01E3, U+01E6..U+01E9, U+01EE..U+01EF, U+01F4..U+01F5, U+01F8..U+01FF, U+021E..U+021F, U+0226..U+0233, U+0237, U+023D, U+0241..U+0242, U+0244..U+0245, U+024A..U+024B)
+IPA Extensions (U+0251, U+0253..U+0254, U+0256..U+0257, U+0259, U+025B, U+0263, U+0268..U+0269, U+026B, U+0272, U+0275, U+0283, U+0289..U+028A, U+028C, U+0292, U+0294, U+02A0)
+Spacing Modifier Letters (U+02BC, U+02C0, U+02C6..U+02C7, U+02C9..U+02CB, U+02CD, U+02D7..U+02DD)
+Combining Diacritical Marks (U+0300..U+0304,U+0306..U+030C, U+031B, U+0323, U+0327..U+0328, U+0331, U+033F, U+035F)
+Greek and Coptic (U+03A0, U+03A9, U+03C0)
+Latin Extended Additional (U+1E02..U+1E0F, U+1E14..U+1E17, U+1E1C..U+1E27, U+1E2E..U+1E3B, U+1E3E..U+1E49, U+1E4C..U+1E6F, U+1E78..U+1E99, U+1EA0..U+1EF9)
+General Punctuation (U+2011, U+2013..U+2014, U+2018..U+201A, U+201C..U+201E, U+2020..U+2022, U+2026, U+2030, U+2039..U+203A, U+2044)
+Currency Symbols (U+20AC)
+Letterlike Symbols (U+2122..U+2123, U+2126)
+Mathematical Operators (U+2202, U+2205..U+2206, U+220F, U+2211..U+2212, U+2219..U+221A, U+221E, U+222B, U+2248, U+2260, U+2264..U+2265)
+Geometric Shapes (U+25CA, U+25CC)
+Latin Extended-C (U+2C60..U+2C62)
+Modifier Tone Letters (U+A700..U+A71A)
+Latin Extended-D (U+A789..U+A78C)
+Alphabetic Presentation Forms (U+FB01..U+FB02)
+SIL PUA (U+F130..U+F131, U+F195, U+F197, U+F1C8, U+F1E9..U+F1EA, U+F20E..U+F20F, U+F211..U+F212, U+F218..U+F219, U+F21D..U+F21F, U+F242, U+F26A)
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GENTIUM-FAQ.txt b/wp-content/plugins/really-simple-captcha/gentium/GENTIUM-FAQ.txt
new file mode 100644
index 0000000..ec803d5
--- /dev/null
+++ b/wp-content/plugins/really-simple-captcha/gentium/GENTIUM-FAQ.txt
@@ -0,0 +1,249 @@
+GENTIUM-FAQ
+Gentium Basic Release 1.1
+4 April 2008
+========================
+
+Here are some answers to frequently asked questions about the Gentium fonts:
+
+
+General
+========
+
+How do you pronounce Gentium?
+
+ The preferred pronunciation is with a soft G as in 'general', not a
+ hard one as in 'gold': JEN-tee-oom.
+
+What is GentiumAlt?
+
+ It is a version of the font with redesigned diacritics (flatter
+ ones) to make it more suitable for use with stacking diacritics, and
+ for languages such as Vietnamese. The Greek glyphs also use the
+ Porsonic (single-curve) design for the circumflex. Since the main
+ Gentium fonts do not currently include any 'smart' rendering routines,
+ there is no easy way to access these alternate diacritic shapes from
+ within the regular Gentium font. The encoding of the fonts are the same,
+ so the same text can be viewed with either one. There is also no
+ problem with having both font families installed at the same time.
+
+
+Licensing
+=========
+
+I want to use Gentium in my publication - can I?
+
+ Gentium is released under the SIL Open Font License, which permits use
+ for any publication, whether electronic or printed. For more answers
+ to use questions see the OFL-FAQ. The license, alongside information
+ specific to Gentium, is in the release package.
+
+I would like to bundle Gentium with my application - can I?
+
+ This is our most common question. The SIL Open Font License allows
+ bundling with applications, even commercial ones, with some restrictions.
+ See the OFL file.
+
+Can I use the font on my web site?
+
+ You can certainly create web pages that request that Gentium be used to
+ display them (if that font is available on the user's system). According
+ to the license, you are even allowed to place the font on your site for
+ people to download it. We would strongly recommend, however, that you
+ direct users to our site to download the font. This ensures that they
+ are always using the most recent version with bug fixes, etc. To make
+ this easier, we've simplified the URL for Gentium:
+ http://scripts.sil.org/gentium
+
+Is Gentium going to stay free?
+
+ There is no intention to ever charge users for using Gentium. The
+ current version is licensed under a free/open license and future
+ versions will be similar.
+
+
+Modification
+============
+
+I would like to modify Gentium to add a couple of characters I need. Can I?
+
+ Yes - that is allowed as long as you abide by the conditions of the
+ SIL Open Font License.
+
+So will you add glyphs upon request?
+
+ If you have a special symbol that you need (say, for a particular
+ transcription system), the best means of doing so will be to ensure
+ that the symbol makes it into the Unicode Standard. It is impossible
+ for us to add every glyph that every person desires, but we do place
+ a high priority on adding pretty much anything that falls in certain
+ Unicode ranges (extended Latin, Greek, Cyrillic). You can send us your
+ requests, but please understand that we are unlikely to add symbols
+ where the user base is very small, unless they have been accepted
+ into Unicode.
+
+Can I send you work I've done to be incorporated into Gentium?
+
+ Yes! See the FONTLOG for information on becoming a contributor.
+
+
+Technical
+=========
+
+Can you help me get Gentium working on my system?
+
+ We cannot afford to offer individual technical support. The best
+ resource is this website, where we hope to offer some limited help.
+ However, we do want to hear of any problems you encounter, so that
+ we can add them to the list of bugs to fix in later releases.
+
+ Our contact address is . Please understand
+ that we cannot guarantee a personal response.
+
+I can't find all the extended Latin letters in the font. How do I type them?
+
+ Gentium is Unicode-encoded, which means that the computer stores a
+ special, unique code for each letter in your document. Since most
+ keyboards do not have hundreds of keys, special software is needed
+ in order to type the hundreds of special characters supported by the
+ font.
+
+I can't find the 'o with right hook' in the font. Where is it?
+
+ Combinations of base letters with diacritics are often called
+ composite, or pre-composed glyphs. Gentium has hundreds of these
+ (the ones that are included in Unicode). There are, however, many
+ common combinations that are not represented by a single composite.
+ It is possible to enter these into a document, but only as
+ individual components. So 'o with right hook' would be entered as
+ 'o', then 'right hook'. Although this may not look very good in some
+ cases, we're not able to anticipate every possible combination.
+ Future versions of Gentium will include 'smart font' support for
+ technologies such as OpenType and SIL's Graphite. This will make
+ diacritic positioning much better. The Gentium Basic fonts do,
+ however, include limited support for both OpenType and Graphite,
+ and demonstrate the type of support that will eventually be provided.
+
+Some diacritics are not aligning well with base glyphs, and if I type more
+than one diacritic, they run into each other. Why is that?
+
+ Gentium currently has no 'smart font' code for automatic diacritic
+ positioning, but the Gentium Basic fonts do, and similar support will
+ appear in the main fonts in the near future.
+
+How do I type the Greek letters?
+
+ You need a Unicode-compatible keyboarding system, which is not
+ included in the distribution package.
+
+I'm having problems making PDFs -- why won't my document distill?
+
+ Gentium is a large font, with lots of glyphs. As a result, some
+ printers can balk at PDFs that have the complete font embedded. The
+ easiest way to avoid this is to have Acrobat/Distiller subset the
+ font. This is generally a good idea anyway (with any font) and can
+ reduce the size of your files.
+
+
+Basic
+=====
+
+How are the Basic fonts (Gentium Basic, Gentium Book Basic) different
+from Gentium?
+
+ These font families are based on the original Gentium design, but with
+ additional weights. Both families come with a complete regular, bold,
+ italic and bold italic set of fonts. The supported character set,
+ however, is much smaller than for the main Gentium fonts. These
+ 'Basic' fonts support only the Basic Latin and Latin-1 Supplement
+ Unicode ranges, plus a selection of the more commonly used extended
+ Latin characters, with miscellaneous diacritical marks, symbols and
+ punctuation. In particular, these fonts do not support full extended
+ Latin IPA, complete support for Central European languages, Greek and
+ Cyrillic.
+
+What is the Book weight?
+
+ It is a complete second font family that is slightly heavier overall,
+ and more useful for some purposes. The main Gentium family will
+ eventually have a complete matching Book weight, along with matching
+ italics.
+
+Why is the line spacing greater for the Basic fonts?
+
+ In some environments, stacked diacritics in Gentium could display as
+ 'chopped-off'. Gentium Basic has slightly wider default line spacing
+ in order to avoid this problem. Most applications do, however, let you
+ set the line spacing explicitly, so you can have the lines spaced
+ precisely as you wish.
+
+Will you be accepting requests for additions to the Basic character set?
+
+ No. We are now focusing our development efforts on the main Gentium
+ fonts, which already provide richer character set support.
+
+Is there an Alt version of the Basic fonts?
+
+ No, although you may notice that capitals and some tall lowercase
+ letters do use 'low-profile' versions.
+
+
+Future
+======
+
+Now that SIL International has taken over Gentium, who will be the next
+designer?
+
+ Victor Gaultney will remain as primary designer, but Annie Olsen, a
+ fellow type designer from the SIL Non-Roman Script Initiative, has
+ joined the project team. She is a former calligraphy teacher, and is
+ well suited for the task. Other members of the NRSI team will also
+ add their expertise in technical matters.
+
+Do you plan to include other typographic enhancements (small caps, old style
+figures, etc.)?
+
+ Those would be nice, wouldn't they? From a design point of view,
+ it would be great to have these refinements, and we haven't ruled
+ them out. But there are other needs that are much higher priority
+ (Bold, Cyrillic, etc.). If you think you could contribute some of
+ your time and effort to these enhancements, see the FONTLOG file for
+ information on becoming a contributor.
+
+What about bold?
+
+ The Gentium Basic fonts include Bold and Bold Italic versions. The
+ main Gentium fonts will also include them in the future.
+
+Sans-serif?
+
+ There is a definite need for a sans-serif font that shares some of
+ Gentiums strengths -- high readability, economy of space, etc. It
+ would also be great if that font also harmonized well with Gentium.
+ We don't currently have any plans for a companion face, although one
+ of our other projects - Andika - may be useful. Andika is a sans-serif
+ font designed specifically for use in literacy programs around the
+ world, and is available from our web site.
+
+Will you be extending Gentium to cover other scripts, and Hebrew in
+particular?
+
+ It is very unlikely that we would do this, as there are so many
+ pressing needs in Latin, Greek and Cyrillic scripts. But you could
+ contribute to the project.
+
+When will Cyrillic be completed?
+
+ As soon as we can get it done, but it is still a few months away.
+
+I need a couple of ancient Greek glyphs, such as the digamma. When will
+those be ready?
+
+ These have already been designed and will be in the next main release.
+
+Will there be a Type 1 version? What about OpenType?
+
+ The next generation of Gentium will have OpenType, Graphite and AAT
+ support. We do not plan to produce Type 1 versions at this time, but
+ please write us if this is important (and tell us why). We are, however,
+ considering releasing a version in OT-CFF format, but it will not go
+ through the same careful testing as the standard OT/Graphite/AAT version.
\ No newline at end of file
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GenBasB.ttf b/wp-content/plugins/really-simple-captcha/gentium/GenBasB.ttf
new file mode 100644
index 0000000..0538a00
Binary files /dev/null and b/wp-content/plugins/really-simple-captcha/gentium/GenBasB.ttf differ
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GenBasBI.ttf b/wp-content/plugins/really-simple-captcha/gentium/GenBasBI.ttf
new file mode 100644
index 0000000..786c627
Binary files /dev/null and b/wp-content/plugins/really-simple-captcha/gentium/GenBasBI.ttf differ
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GenBasI.ttf b/wp-content/plugins/really-simple-captcha/gentium/GenBasI.ttf
new file mode 100644
index 0000000..e326cd7
Binary files /dev/null and b/wp-content/plugins/really-simple-captcha/gentium/GenBasI.ttf differ
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GenBasR.ttf b/wp-content/plugins/really-simple-captcha/gentium/GenBasR.ttf
new file mode 100644
index 0000000..6f37980
Binary files /dev/null and b/wp-content/plugins/really-simple-captcha/gentium/GenBasR.ttf differ
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GenBkBasB.ttf b/wp-content/plugins/really-simple-captcha/gentium/GenBkBasB.ttf
new file mode 100644
index 0000000..0677a11
Binary files /dev/null and b/wp-content/plugins/really-simple-captcha/gentium/GenBkBasB.ttf differ
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GenBkBasBI.ttf b/wp-content/plugins/really-simple-captcha/gentium/GenBkBasBI.ttf
new file mode 100644
index 0000000..cf89857
Binary files /dev/null and b/wp-content/plugins/really-simple-captcha/gentium/GenBkBasBI.ttf differ
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GenBkBasI.ttf b/wp-content/plugins/really-simple-captcha/gentium/GenBkBasI.ttf
new file mode 100644
index 0000000..c62506b
Binary files /dev/null and b/wp-content/plugins/really-simple-captcha/gentium/GenBkBasI.ttf differ
diff --git a/wp-content/plugins/really-simple-captcha/gentium/GenBkBasR.ttf b/wp-content/plugins/really-simple-captcha/gentium/GenBkBasR.ttf
new file mode 100644
index 0000000..9c76a38
Binary files /dev/null and b/wp-content/plugins/really-simple-captcha/gentium/GenBkBasR.ttf differ
diff --git a/wp-content/plugins/really-simple-captcha/gentium/OFL-FAQ.txt b/wp-content/plugins/really-simple-captcha/gentium/OFL-FAQ.txt
new file mode 100644
index 0000000..cc9e6c2
--- /dev/null
+++ b/wp-content/plugins/really-simple-captcha/gentium/OFL-FAQ.txt
@@ -0,0 +1,216 @@
+OFL FAQ - Frequently Asked Questions about the SIL Open Font License (OFL)
+Version 1.1 - 1 February 2007
+(See http://scripts.sil.org/OFL for updates)
+
+
+1 ABOUT USING AND DISTRIBUTING FONTS LICENSED UNDER THE OFL
+
+1.1 Can I use the fonts in any publication, even embedded in the file?
+Yes. You may use them like most other fonts, but unlike some fonts you may include an embedded subset of the fonts in your document. Such use does not require you to include this license or other files (listed in OFL condition 2), nor does it require any type of acknowledgement within the publication. Some mention of the font name within the publication information (such as in a colophon) is usually appreciated. If you wish to include the complete font as a separate file, you should distribute the full font package, including all existing acknowledgements, and comply with the OFL conditions. Of course, referencing or embedding an OFL font in any document does not change the license of the document itself. The requirement for fonts to remain under the OFL does not apply to any document created using the fonts and their derivatives. Similarly, creating any kind of graphic using a font under OFL does not make the resulting artwork subject to the OFL.
+
+1.2 Can I make web pages using these fonts?
+Yes! Go ahead! Using CSS (Cascading Style Sheets) is recommended.
+
+1.3 Can I make the fonts available to others from my web site?
+Yes, as long as you meet the conditions of the license (do not sell by itself, include the necessary files, rename Modified Versions, do not abuse the Author(s)' name(s) and do not sublicense).
+
+1.4 Can the fonts be included with Free/Libre and Open Source Software collections such as GNU/Linux and BSD distributions?
+Yes! Fonts licensed under the OFL can be freely agreggated with software under FLOSS (Free/Libre and Open Source Software) licenses. Since fonts are much more useful aggregated to than merged with existing software, possible incompatibility with existing software licenses is not a problem. You can also repackage the fonts and the accompanying components in a .rpm or .deb package and include them in distro CD/DVDs and online repositories.
+
+1.5 I want to distribute the fonts with my program. Does this mean my program also has to be free and open source software?
+No. Only the portions based on the font software are required to be released under the OFL. The intent of the license is to allow aggregation or bundling with software under restricted licensing as well.
+
+1.6 Can I include the fonts on a CD of freeware or commercial fonts?
+Yes, as long some other font or software is also on the disk, so the OFL font is not sold by itself.
+
+1.7 Can I sell a software package that includes these fonts?
+Yes, you can do this with both the Original Version and a Modified Version. Examples of bundling made possible by the OFL would include: word processors, design and publishing applications, training and educational software, edutainment software, etc.
+
+1.8 Why won't the OFL let me sell the fonts alone?
+The intent is to keep people from making money by simply redistributing the fonts. The only people who ought to profit directly from the fonts should be the original authors, and those authors have kindly given up potential direct income to distribute their fonts under the OFL. Please honor and respect their contribution!
+
+1.9 I've come across a font released under the OFL. How can I easily get more information about the Original Version? How can I know where it stands compared to the Original Version or other Modified Versions?
+Consult the copyright statement in the license for ways to contact the original authors. Consult the FONTLOG for information on how the font differs from the Original Version, and get in touch with the various contributors via the information in the acknowledgment section. Please consider using the Original Versions of the fonts whenever possible.
+
+1.10 What do you mean in condition 4? Can you provide examples of abusive promotion / endorsement / advertisement vs. normal acknowledgement?
+The intent is that the goodwill and reputation of the author(s) should not be used in a way that makes it sound like the original author(s) endorse or approve of a specific Modified Version or software bundle. For example, it would not be right to advertise a word processor by naming the author(s) in a listing of software features, or to promote a Modified Version on a web site by saying "designed by ...". However, it would be appropriate to acknowledge the author(s) if your software package has a list of people who deserve thanks. We realize that this can seem to be a gray area, but the standard used to judge an acknowledgement is that if the acknowledgement benefits the author(s) it is allowed, but if it primarily benefits other parties, or could reflect poorly on the author(s), then it is not.
+
+
+2 ABOUT MODIFYING OFL LICENSED FONTS
+
+2.1 Can I change the fonts? Are there any limitations to what things I can and cannot change?
+You are allowed to change anything, as long as such changes do not violate the terms of the license. In other words, you are not allowed to remove the copyright statement(s) from the font, but you could add additional information into it that covers your contribution.
+
+2.2 I have a font that needs a few extra glyphs - can I take them from an OFL licensed font and copy them into mine?
+Yes, but if you distribute that font to others it must be under the OFL, and include the information mentioned in condition 2 of the license.
+
+2.3 Can I charge people for my additional work? In other words, if I add a bunch of special glyphs and/or OpenType/Graphite code, can I sell the enhanced font?
+Not by itself. Derivative fonts must be released under the OFL and cannot be sold by themselves. It is permitted, however, to include them in a larger software package (such as text editors, office suites or operating systems), even if the larger package is sold. In that case, you are strongly encouraged, but not required, to also make that derived font easily and freely available outside of the larger package.
+
+2.4 Can I pay someone to enhance the fonts for my use and distribution?
+Yes. This is a good way to fund the further development of the fonts. Keep in mind, however, that if the font is distributed to others it must be under the OFL. You won't be able to recover your investment by exclusively selling the font, but you will be making a valuable contribution to the community. Please remember how you have benefitted from the contributions of others.
+
+2.5 I need to make substantial revisions to the font to make it work with my program. It will be a lot of work, and a big investment, and I want to be sure that it can only be distributed with my program. Can I restrict its use?
+No. If you redistribute a Modified Version of the font it must be under the OFL. You may not restrict it in any way. This is intended to ensure that all released improvements to the fonts become available to everyone. But you will likely get an edge over competitors by being the first to distribute a bundle with the enhancements. Again, please remember how you have benefitted from the contributions of others.
+
+2.6 Do I have to make any derivative fonts (including source files, build scripts, documentation, etc.) publicly available?
+No, but please do share your improvements with others. You may find that you receive more than what you gave in return.
+
+2.7 Why can't I use the Reserved Font Name(s) in my derivative font names? I'd like people to know where the design came from.
+The best way to acknowledge the source of the design is to thank the original authors and any other contributors in the files that are distributed with your revised font (although no acknowledgement is required). The FONTLOG is a natural place to do this. Reserved Font Name(s) ensure that the only fonts that have the original names are the unmodified Original Versions. This allows designers to maintain artistic integrity while allowing collaboration to happen. It eliminates potential confusion and name conflicts. When choosing a name be creative and avoid names that reuse almost all the same letters in the same order or sound like the original. Keep in mind that the Copyright Holder(s) can allow a specific trusted partner to use Reserved Font Name(s) through a separate written agreement.
+
+2.8 What do you mean by "primary name as presented to the user"? Are you are referring to the font menu name?
+Yes, the requirement to change the visible name used to differentiate the font from others applies to the font menu name and other mechanisms to specify a font in a document. It would be fine, for example, to keep a text reference to the original fonts in the description field, in your modified source file or in documentation provided alongside your derivative as long as no one could be confused that your modified source is the original. But you cannot use the Reserved Font Names in any way to identify the font to the user (unless the Copyright Holder(s) allow(s) it through a separate agreement, see section 2.7). Users who install derivatives ("Modified Versions") on their systems should not see any of the original names ("Reserved Font Names") in their font menus, for example. Again, this is to ensure that users are not confused and do not mistake a font for another and so expect features only another derivative or the Original Version can actually offer. Ultimately, creating name conflicts will cause many problems for the users as well as for the designer of both the Original and Modified versions, so please think ahead and find a good name for your own derivative. Font substitution systems like fontconfig, or application-level font fallback configuration within OpenOffice.org or Scribus, will also get very confused if the name of the font they are configured to substitute to actually refers to another physical font on the user's hard drive. It will help everyone if Original Versions and Modified Versions can easily be distinguished from one another and from other derivatives. The substitution mechanism itself is outside the scope of the license. Users can always manually change a font reference in a document or set up some kind of substitution at a higher level but at the lower level the fonts themselves have to respect the Reserved Font Name(s) requirement to prevent ambiguity. If a substitution is currently active the user should be aware of it.
+
+2.9 Am I not allowed to use any part of the Reserved Font Names?
+You may not use the words of the font names, but you would be allowed to use parts of words, as long as you do not use any word from the Reserved Font Names entirely. We do not recommend using parts of words because of potential confusion, but it is allowed. For example, if "Foobar" was a Reserved Font Name, you would be allowed to use "Foo" or "bar", although we would not recommend it. Such an unfortunate choice would confuse the users of your fonts as well as make it harder for other designers to contribute.
+
+2.10 So what should I, as an author, identify as Reserved Font Names?
+Original authors are encouraged to name their fonts using clear, distinct names, and only declare the unique parts of the name as Reserved Font Names. For example, the author of a font called "Foobar Sans" would declare "Foobar" as a Reserved Font Name, but not "Sans", as that is a common typographical term, and may be a useful word to use in a derivative font name. Reserved Font Names should also be single words. A font called "Flowing River" should have Reserved Font Names "Flowing" and "River", not "Flowing River".
+
+2.11 Do I, as an author, have to identify and Reserved Font Names?
+No, but we strongly encourage you to do so. This is to avoid confusion between your work and Modified versions. You may, however, give certain trusted parties the right to use any of your Reserved Font Names through separate written agreements. For example, even if "Foobar" is a RFN, you could write up an agreement to give company "XYZ" the right to distribute a modified version with a name that includes "Foobar". This allows for freedom without confusion.
+
+2.12 Are any names (such as the main font name) reserved by default?
+No. That is a change to the license as of version 1.1. If you want any names to be Reserved Font Names, they must be specified after the copyright statement.
+
+2.13 What is this FONTLOG thing exactly?
+It has three purposes: 1) to provide basic information on the font to users and other developers, 2) to document changes that have been made to the font or accompanying files, either by the original authors or others, and 3) to provide a place to acknowledge the authors and other contributors. Please use it! See below for details on how changes should be noted.
+
+2.14 Am I required to update the FONTLOG?
+No, but users, designers and other developers might get very frustrated at you if you don't! People need to know how derivative fonts differ from the originals, and how to take advantage of the changes, or build on them.
+
+
+3 ABOUT THE FONTLOG
+
+The FONTLOG can take a variety of formats, but should include these four sections:
+
+3.1 FONTLOG for
+This file provides detailed information on the font software. This information should be distributed along with the fonts and any derivative works.
+
+3.2 Basic Font Information
+(Here is where you would describe the purpose and brief specifications for the font project, and where users can find more detailed documentation. It can also include references to how changes can be contributed back to the Original Version. You may also wish to include a short guide to the design, or a reference to such a document.)
+
+3.3 ChangeLog
+(This should list both major and minor changes, most recent first. Here are some examples:)
+
+1 Feb 2005 (Jane Doe) Version 1.1
+- Improved build script performance and verbosity
+- Extended the smart code documentation
+- Corrected minor typos in the documentation
+- Fixed position of combining inverted breve below (U+032F)
+- Added OpenType/Graphite smart code for Armenian
+- Added Armenian glyphs (U+0531 -> U+0587)
+- Released as ""
+
+1 Jan 2005 (Joe Smith) Version 1.0
+- Initial release of font ""
+
+3.4 Acknowledgements
+(Here is where contributors can be acknowledged.
+
+If you make modifications be sure to add your name (N), email (E), web-address (W) and description (D). This list is sorted by last name in alphabetical order.)
+
+N: Jane Doe
+E: jane@university.edu
+W: http://art.university.edu/projects/fonts
+D: Contributor - Armenian glyphs and code
+
+N: Fred Foobar
+E: fred@foobar.org
+W: http://foobar.org
+D: Contributor - misc Graphite fixes
+
+N: Pat Johnson
+E: pat@fontstudio.org
+W: http://pat.fontstudio.org
+D: Designer - Greek & Cyrillic glyphs based on Roman design
+
+N: Tom Parker
+E: tom@company.com
+W: http://www.company.com/tom/projects/fonts
+D: Engineer - original smart font code
+
+N: Joe Smith
+E: joe@fontstudio.org
+W: http://joe.fontstudio.org
+D: Designer - original Roman glyphs
+
+(Original authors can also include information here about their organization.)
+
+
+4 ABOUT MAKING CONTRIBUTIONS
+
+4.1 Why should I contribute my changes back to the original authors?
+It would benefit many people if you contributed back to what you've received. Providing your contributions and improvements to the fonts and other components (data files, source code, build scripts, documentation, etc.) could be a tremendous help and would encourage others to contribute as well and 'give back', which means you will have an opportunity to benefit from other people's contributions as well. Sometimes maintaining your own separate version takes more effort than merging back with the original. Be aware that any contributions, however, must be either your own original creation or work that you own, and you may be asked to affirm that clearly when you contribute.
+
+4.2 I've made some very nice improvements to the font, will you consider adopting them and putting them into future Original Versions?
+Most authors would be very happy to receive such contributions. Keep in mind that it is unlikely that they would want to incorporate major changes that would require additional work on their end. Any contributions would likely need to be made for all the fonts in a family and match the overall design and style. Authors are encouraged to include a guide to the design with the fonts. It would also help to have contributions submitted as patches or clearly marked changes (the use of smart source revision control systems like subversion, svk or bzr is a good idea). Examples of useful contributions are bug fixes, additional glyphs, stylistic alternates (and the smart font code to access them) or improved hinting.
+
+4.3 How can I financially support the development of OFL fonts?
+It is likely that most authors of OFL fonts would accept financial contributions - contact them for instructions on how to do this. Such contributions would support future development. You can also pay for others to enhance the fonts and contribute the results back to the original authors for inclusion in the Original Version.
+
+
+5 ABOUT THE LICENSE
+
+5.1 I see that this is version 1.1 of the license. Will there be later changes?
+Version 1.1 is the first minor revision of the OFL. We are confident that version 1.1 will meet most needs, but are open to future improvements. Any revisions would be for future font releases, and previously existing licenses would remain in effect. No retroactive changes are possible, although the Copyright Holder(s) can re-release the font under a revised OFL. All versions will be available on our web site: http://scripts.sil.org/OFL.
+
+5.2 Can I use the SIL Open Font License for my own fonts?
+Yes! We heartily encourage anyone to use the OFL to distribute their own original fonts. It is a carefully constructed license that allows great freedom along with enough artistic integrity protection for the work of the authors as well as clear rules for other contributors and those who redistribute the fonts. Some additional information about using the OFL is included at the end of this FAQ.
+
+5.3 Does this license restrict the rights of the Copyright Holder(s)?
+No. The Copyright Holder(s) still retains all the rights to their creation; they are only releasing a portion of it for use in a specific way. For example, the Copyright Holder(s) may choose to release a 'basic' version of their font under the OFL, but sell a restricted 'enhanced' version. Only the Copyright Holder(s) can do this.
+
+5.4 Is the OFL a contract or a license?
+The OFL is a license and not a contract and so does not require you to sign it to have legal validity. By using, modifying and redistributing components under the OFL you indicate that you accept the license.
+
+5.5 How about translating the license and the FAQ into other languages?
+SIL certainly recognises the need for people who are not familiar with English to be able to understand the OFL and this FAQ better in their own language. Making the license very clear and readable is a key goal of the OFL.
+
+If you are an experienced translator, you are very welcome to help translating the OFL and its FAQ so that designers and users in your language community can understand the license better. But only the original English version of the license has legal value and has been approved by the community. Translations do not count as legal substitutes and should only serve as a way to explain the original license. SIL - as the author and steward of the license for the community at large - does not approve any translation of the OFL as legally valid because even small translations ambiguities could be abused and create problems.
+
+We give permission to publish unofficial translations into other languages provided that they comply with the following guidelines:
+
+- put the following disclaimer in both English and the target language stating clearly that the translation is unofficial:
+
+"This is an unofficial translation of the SIL Open Font License into $language. It was not published by SIL International, and does not legally state the distribution terms for fonts that use the OFL. A release under the OFL is only valid when using the original English text.
+
+However, we recognize that this unofficial translation will help users and designers not familiar with English to understand the SIL OFL better and make it easier to use and release font families under this collaborative font design model. We encourage designers who consider releasing their creation under the OFL to read the FAQ in their own language if it is available.
+
+Please go to http://scripts.sil.org/OFL for the official version of the license and the accompanying FAQ."
+"
+
+- keep your unofficial translation current and update it at our request if needed, for example if there is any ambiguity which could lead to confusion.
+
+If you start such a unofficial translation effort of the OFL and its accompanying FAQ please let us know, thank you.
+
+
+6 ABOUT SIL INTERNATIONAL
+
+6.1 Who is SIL International and what does it do?
+SIL International is a worldwide faith-based education and development organization (NGO) that studies, documents, and assists in developing the world's lesser-known languages through literacy, linguistics, translation, and other academic disciplines. SIL makes its services available to all without regard to religious belief, political ideology, gender, race, or ethnic background. SIL's members and volunteers share a Christian commitment.
+
+6.2 What does this have to do with font licensing?
+The ability to read, write, type and publish in one's own language is one of the most critical needs for millions of people around the world. This requires fonts that are widely available and support lesser-known languages. SIL develops - and encourages others to develop - a complete stack of writing systems implementation components available under open licenses. This open stack includes input methods, smart fonts, smart rendering libraries and smart applications. There has been a need for a common open license that is specifically applicable to fonts and related software (a crucial component of this stack) so SIL developed the SIL Open Font License with the help of the FLOSS community.
+
+6.3 How can I contact SIL?
+Our main web site is: http://www.sil.org/
+Our site about complex scripts is: http://scripts.sil.org/
+Information about this license (including contact email information) is at: http://scripts.sil.org/OFL
+
+
+7 ABOUT USING THE OFL FOR YOUR ORIGINAL FONTS
+
+If you want to release your fonts under the OFL, you only need to do the following:
+
+7.1 Put your copyright and reserved font names information in the beginning of the main OFL file.
+7.2 Put your copyright and the OFL references in your various font files (such as in the copyright, license and description fields) and in your other components (build scripts, glyph databases, documentation, rendering samples, etc).
+7.3 Write an initial FONTLOG for your font and include it in the release package.
+7.4 Include the OFL in your release package.
+7.5 We also highly recommend you include the relevant practical documentation on the license by putting the OFL-FAQ in your package.
+
+
+That's all. If you have any more questions please get in touch with us.
+
+
diff --git a/wp-content/plugins/really-simple-captcha/gentium/OFL.txt b/wp-content/plugins/really-simple-captcha/gentium/OFL.txt
new file mode 100644
index 0000000..2c09f25
--- /dev/null
+++ b/wp-content/plugins/really-simple-captcha/gentium/OFL.txt
@@ -0,0 +1,94 @@
+Copyright (c) 2003-2008 SIL International (http://www.sil.org/),
+with Reserved Font Names "Gentium" and "SIL".
+
+This Font Software is licensed under the SIL Open Font License, Version 1.1.
+This license is copied below, and is also available with a FAQ at:
+http://scripts.sil.org/OFL
+
+
+-----------------------------------------------------------
+SIL OPEN FONT LICENSE Version 1.1 - 1 February 2007
+-----------------------------------------------------------
+
+PREAMBLE
+The goals of the Open Font License (OFL) are to stimulate worldwide
+development of collaborative font projects, to support the font creation
+efforts of academic and linguistic communities, and to provide a free and
+open framework in which fonts may be shared and improved in partnership
+with others.
+
+The OFL allows the licensed fonts to be used, studied, modified and
+redistributed freely as long as they are not sold by themselves. The
+fonts, including any derivative works, can be bundled, embedded,
+redistributed and/or sold with any software provided that the font
+names of derivative works are changed. The fonts and derivatives,
+however, cannot be released under any other type of license. The
+requirement for fonts to remain under this license does not apply
+to any document created using the fonts or their derivatives.
+
+DEFINITIONS
+"Font Software" refers to the set of files released by the Copyright
+Holder(s) under this license and clearly marked as such. This may
+include source files, build scripts and documentation.
+
+"Reserved Font Name" refers to any names specified as such after the
+copyright statement(s).
+
+"Original Version" refers to the collection of Font Software components as
+distributed by the Copyright Holder(s).
+
+"Modified Version" refers to any derivative made by adding to, deleting,
+or substituting -- in part or in whole -- any of the components of the
+Original Version, by changing formats or by porting the Font Software to a
+new environment.
+
+"Author" refers to any designer, engineer, programmer, technical
+writer or other person who contributed to the Font Software.
+
+PERMISSION & CONDITIONS
+Permission is hereby granted, free of charge, to any person obtaining
+a copy of the Font Software, to use, study, copy, merge, embed, modify,
+redistribute, and sell modified and unmodified copies of the Font
+Software, subject to the following conditions:
+
+1) Neither the Font Software nor any of its individual components,
+in Original or Modified Versions, may be sold by itself.
+
+2) Original or Modified Versions of the Font Software may be bundled,
+redistributed and/or sold with any software, provided that each copy
+contains the above copyright notice and this license. These can be
+included either as stand-alone text files, human-readable headers or
+in the appropriate machine-readable metadata fields within text or
+binary files as long as those fields can be easily viewed by the user.
+
+3) No Modified Version of the Font Software may use the Reserved Font
+Name(s) unless explicit written permission is granted by the corresponding
+Copyright Holder. This restriction only applies to the primary font name as
+presented to the users.
+
+4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
+Software shall not be used to promote, endorse or advertise any
+Modified Version, except to acknowledge the contribution(s) of the
+Copyright Holder(s) and the Author(s) or with their explicit written
+permission.
+
+5) The Font Software, modified or unmodified, in part or in whole,
+must be distributed entirely under this license, and must not be
+distributed under any other license. The requirement for fonts to
+remain under this license does not apply to any document created
+using the Font Software.
+
+TERMINATION
+This license becomes null and void if any of the above conditions are
+not met.
+
+DISCLAIMER
+THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
+OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
+COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
+DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
+OTHER DEALINGS IN THE FONT SOFTWARE.
diff --git a/wp-content/plugins/really-simple-captcha/license.txt b/wp-content/plugins/really-simple-captcha/license.txt
new file mode 100644
index 0000000..d159169
--- /dev/null
+++ b/wp-content/plugins/really-simple-captcha/license.txt
@@ -0,0 +1,339 @@
+ GNU GENERAL PUBLIC LICENSE
+ Version 2, June 1991
+
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+ Preamble
+
+ The licenses for most software are designed to take away your
+freedom to share and change it. By contrast, the GNU General Public
+License is intended to guarantee your freedom to share and change free
+software--to make sure the software is free for all its users. This
+General Public License applies to most of the Free Software
+Foundation's software and to any other program whose authors commit to
+using it. (Some other Free Software Foundation software is covered by
+the GNU Lesser General Public License instead.) You can apply it to
+your programs, too.
+
+ When we speak of free software, we are referring to freedom, not
+price. Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+this service if you wish), that you receive source code or can get it
+if you want it, that you can change the software or use pieces of it
+in new free programs; and that you know you can do these things.
+
+ To protect your rights, we need to make restrictions that forbid
+anyone to deny you these rights or to ask you to surrender the rights.
+These restrictions translate to certain responsibilities for you if you
+distribute copies of the software, or if you modify it.
+
+ For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must give the recipients all the rights that
+you have. You must make sure that they, too, receive or can get the
+source code. And you must show them these terms so they know their
+rights.
+
+ We protect your rights with two steps: (1) copyright the software, and
+(2) offer you this license which gives you legal permission to copy,
+distribute and/or modify the software.
+
+ Also, for each author's protection and ours, we want to make certain
+that everyone understands that there is no warranty for this free
+software. If the software is modified by someone else and passed on, we
+want its recipients to know that what they have is not the original, so
+that any problems introduced by others will not reflect on the original
+authors' reputations.
+
+ Finally, any free program is threatened constantly by software
+patents. We wish to avoid the danger that redistributors of a free
+program will individually obtain patent licenses, in effect making the
+program proprietary. To prevent this, we have made it clear that any
+patent must be licensed for everyone's free use or not licensed at all.
+
+ The precise terms and conditions for copying, distribution and
+modification follow.
+
+ GNU GENERAL PUBLIC LICENSE
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
+
+ 0. This License applies to any program or other work which contains
+a notice placed by the copyright holder saying it may be distributed
+under the terms of this General Public License. The "Program", below,
+refers to any such program or work, and a "work based on the Program"
+means either the Program or any derivative work under copyright law:
+that is to say, a work containing the Program or a portion of it,
+either verbatim or with modifications and/or translated into another
+language. (Hereinafter, translation is included without limitation in
+the term "modification".) Each licensee is addressed as "you".
+
+Activities other than copying, distribution and modification are not
+covered by this License; they are outside its scope. The act of
+running the Program is not restricted, and the output from the Program
+is covered only if its contents constitute a work based on the
+Program (independent of having been made by running the Program).
+Whether that is true depends on what the Program does.
+
+ 1. You may copy and distribute verbatim copies of the Program's
+source code as you receive it, in any medium, provided that you
+conspicuously and appropriately publish on each copy an appropriate
+copyright notice and disclaimer of warranty; keep intact all the
+notices that refer to this License and to the absence of any warranty;
+and give any other recipients of the Program a copy of this License
+along with the Program.
+
+You may charge a fee for the physical act of transferring a copy, and
+you may at your option offer warranty protection in exchange for a fee.
+
+ 2. You may modify your copy or copies of the Program or any portion
+of it, thus forming a work based on the Program, and copy and
+distribute such modifications or work under the terms of Section 1
+above, provided that you also meet all of these conditions:
+
+ a) You must cause the modified files to carry prominent notices
+ stating that you changed the files and the date of any change.
+
+ b) You must cause any work that you distribute or publish, that in
+ whole or in part contains or is derived from the Program or any
+ part thereof, to be licensed as a whole at no charge to all third
+ parties under the terms of this License.
+
+ c) If the modified program normally reads commands interactively
+ when run, you must cause it, when started running for such
+ interactive use in the most ordinary way, to print or display an
+ announcement including an appropriate copyright notice and a
+ notice that there is no warranty (or else, saying that you provide
+ a warranty) and that users may redistribute the program under
+ these conditions, and telling the user how to view a copy of this
+ License. (Exception: if the Program itself is interactive but
+ does not normally print such an announcement, your work based on
+ the Program is not required to print an announcement.)
+
+These requirements apply to the modified work as a whole. If
+identifiable sections of that work are not derived from the Program,
+and can be reasonably considered independent and separate works in
+themselves, then this License, and its terms, do not apply to those
+sections when you distribute them as separate works. But when you
+distribute the same sections as part of a whole which is a work based
+on the Program, the distribution of the whole must be on the terms of
+this License, whose permissions for other licensees extend to the
+entire whole, and thus to each and every part regardless of who wrote it.
+
+Thus, it is not the intent of this section to claim rights or contest
+your rights to work written entirely by you; rather, the intent is to
+exercise the right to control the distribution of derivative or
+collective works based on the Program.
+
+In addition, mere aggregation of another work not based on the Program
+with the Program (or with a work based on the Program) on a volume of
+a storage or distribution medium does not bring the other work under
+the scope of this License.
+
+ 3. You may copy and distribute the Program (or a work based on it,
+under Section 2) in object code or executable form under the terms of
+Sections 1 and 2 above provided that you also do one of the following:
+
+ a) Accompany it with the complete corresponding machine-readable
+ source code, which must be distributed under the terms of Sections
+ 1 and 2 above on a medium customarily used for software interchange; or,
+
+ b) Accompany it with a written offer, valid for at least three
+ years, to give any third party, for a charge no more than your
+ cost of physically performing source distribution, a complete
+ machine-readable copy of the corresponding source code, to be
+ distributed under the terms of Sections 1 and 2 above on a medium
+ customarily used for software interchange; or,
+
+ c) Accompany it with the information you received as to the offer
+ to distribute corresponding source code. (This alternative is
+ allowed only for noncommercial distribution and only if you
+ received the program in object code or executable form with such
+ an offer, in accord with Subsection b above.)
+
+The source code for a work means the preferred form of the work for
+making modifications to it. For an executable work, complete source
+code means all the source code for all modules it contains, plus any
+associated interface definition files, plus the scripts used to
+control compilation and installation of the executable. However, as a
+special exception, the source code distributed need not include
+anything that is normally distributed (in either source or binary
+form) with the major components (compiler, kernel, and so on) of the
+operating system on which the executable runs, unless that component
+itself accompanies the executable.
+
+If distribution of executable or object code is made by offering
+access to copy from a designated place, then offering equivalent
+access to copy the source code from the same place counts as
+distribution of the source code, even though third parties are not
+compelled to copy the source along with the object code.
+
+ 4. You may not copy, modify, sublicense, or distribute the Program
+except as expressly provided under this License. Any attempt
+otherwise to copy, modify, sublicense or distribute the Program is
+void, and will automatically terminate your rights under this License.
+However, parties who have received copies, or rights, from you under
+this License will not have their licenses terminated so long as such
+parties remain in full compliance.
+
+ 5. You are not required to accept this License, since you have not
+signed it. However, nothing else grants you permission to modify or
+distribute the Program or its derivative works. These actions are
+prohibited by law if you do not accept this License. Therefore, by
+modifying or distributing the Program (or any work based on the
+Program), you indicate your acceptance of this License to do so, and
+all its terms and conditions for copying, distributing or modifying
+the Program or works based on it.
+
+ 6. Each time you redistribute the Program (or any work based on the
+Program), the recipient automatically receives a license from the
+original licensor to copy, distribute or modify the Program subject to
+these terms and conditions. You may not impose any further
+restrictions on the recipients' exercise of the rights granted herein.
+You are not responsible for enforcing compliance by third parties to
+this License.
+
+ 7. If, as a consequence of a court judgment or allegation of patent
+infringement or for any other reason (not limited to patent issues),
+conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License. If you cannot
+distribute so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you
+may not distribute the Program at all. For example, if a patent
+license would not permit royalty-free redistribution of the Program by
+all those who receive copies directly or indirectly through you, then
+the only way you could satisfy both it and this License would be to
+refrain entirely from distribution of the Program.
+
+If any portion of this section is held invalid or unenforceable under
+any particular circumstance, the balance of the section is intended to
+apply and the section as a whole is intended to apply in other
+circumstances.
+
+It is not the purpose of this section to induce you to infringe any
+patents or other property right claims or to contest validity of any
+such claims; this section has the sole purpose of protecting the
+integrity of the free software distribution system, which is
+implemented by public license practices. Many people have made
+generous contributions to the wide range of software distributed
+through that system in reliance on consistent application of that
+system; it is up to the author/donor to decide if he or she is willing
+to distribute software through any other system and a licensee cannot
+impose that choice.
+
+This section is intended to make thoroughly clear what is believed to
+be a consequence of the rest of this License.
+
+ 8. If the distribution and/or use of the Program is restricted in
+certain countries either by patents or by copyrighted interfaces, the
+original copyright holder who places the Program under this License
+may add an explicit geographical distribution limitation excluding
+those countries, so that distribution is permitted only in or among
+countries not thus excluded. In such case, this License incorporates
+the limitation as if written in the body of this License.
+
+ 9. The Free Software Foundation may publish revised and/or new versions
+of the General Public License from time to time. Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+Each version is given a distinguishing version number. If the Program
+specifies a version number of this License which applies to it and "any
+later version", you have the option of following the terms and conditions
+either of that version or of any later version published by the Free
+Software Foundation. If the Program does not specify a version number of
+this License, you may choose any version ever published by the Free Software
+Foundation.
+
+ 10. If you wish to incorporate parts of the Program into other free
+programs whose distribution conditions are different, write to the author
+to ask for permission. For software which is copyrighted by the Free
+Software Foundation, write to the Free Software Foundation; we sometimes
+make exceptions for this. Our decision will be guided by the two goals
+of preserving the free status of all derivatives of our free software and
+of promoting the sharing and reuse of software generally.
+
+ NO WARRANTY
+
+ 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
+FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
+OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
+PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
+OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
+MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
+TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
+PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
+REPAIR OR CORRECTION.
+
+ 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
+REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
+INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
+OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
+TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
+YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
+PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
+POSSIBILITY OF SUCH DAMAGES.
+
+ END OF TERMS AND CONDITIONS
+
+ How to Apply These Terms to Your New Programs
+
+ If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+ To do so, attach the following notices to the program. It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+
+ Copyright (C)
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License along
+ with this program; if not, write to the Free Software Foundation, Inc.,
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+ Gnomovision version 69, Copyright (C) year name of author
+ Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+ This is free software, and you are welcome to redistribute it
+ under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License. Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary. Here is a sample; alter the names:
+
+ Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+ `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+ , 1 April 1989
+ Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs. If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library. If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.
diff --git a/wp-content/plugins/really-simple-captcha/readme.txt b/wp-content/plugins/really-simple-captcha/readme.txt
new file mode 100644
index 0000000..cc96206
--- /dev/null
+++ b/wp-content/plugins/really-simple-captcha/readme.txt
@@ -0,0 +1,113 @@
+=== Really Simple CAPTCHA ===
+Contributors: takayukister
+Donate link: http://contactform7.com/donate/
+Tags: captcha
+Requires at least: 3.7
+Tested up to: 3.8.1
+Stable tag: 1.8
+License: GPLv2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+
+Really Simple CAPTCHA is a CAPTCHA module intended to be called from other plugins. It is originally created for my Contact Form 7 plugin.
+
+== Description ==
+
+Really Simple CAPTCHA does not work alone and is intended to work with other plugins. It is originally created for [Contact Form 7](http://contactform7.com/), however, you can use it with your own plugin.
+
+Note: This product is "really simple" as its name suggests, i.e., it is not strongly secure. If you need perfect security, you should try other solutions.
+
+= How does it work? =
+
+Really Simple CAPTCHA does not use PHP "Sessions" for storing states, unlike many other PHP CAPTCHA solutions, but stores them as temporary files. This allows you to embed it into WordPress without worrying about conflicts.
+
+When you generate a CAPTCHA, Really Simple CAPTCHA creates two files for it; one is an image file of CAPTCHA, and the other is a text file which stores the correct answer to the CAPTCHA.
+
+The two files have the same (random) prefix in their file names, for example, "a7hk3ux8p.png" and "a7hk3ux8p.txt." In this case, for example, when the respondent answers "K5GF" as an answer to the "a7hk3ux8p.png" image, then Really Simple CAPTCHA calculates hash of "K5GF" and tests it against the hash stored in the "a7hk3ux8p.txt" file. If the two match, the answer is confirmed as correct.
+
+= How to use with your plugin =
+
+Note: Below are instructions for plugin developers.
+
+First, create an instance of ReallySimpleCaptcha class:
+
+ $captcha_instance = new ReallySimpleCaptcha();
+
+You can change the instance variables as you wish.
+
+ // Change the background color of CAPTCHA image to black
+ $captcha_instance->bg = array( 0, 0, 0 );
+
+See really-simple-captcha.php if you are interested in other variables.
+
+Generate a random word for CAPTCHA.
+
+ $word = $captcha_instance->generate_random_word();
+
+Generate an image file and a corresponding text file in the temporary directory.
+
+ $prefix = mt_rand();
+ $captcha_instance->generate_image( $prefix, $word );
+
+Then, show the image and get an answer from respondent.
+
+Check the correctness of the answer.
+
+ $correct = $captcha_instance->check( $prefix, $the_answer_from_respondent );
+
+If the $correct is true, go ahead. Otherwise, block the respondent -- as it would appear not to be human.
+
+And last, remove the temporary image and text files, as they are no longer in use.
+
+ $captcha_instance->remove( $prefix );
+
+That's all.
+
+If you wish to see a live sample of this, you can try [Contact Form 7](http://contactform7.com/).
+
+== Installation ==
+
+In most cases you can install automatically from WordPress.
+
+However, if you install this manually, follow these steps:
+
+1. Upload the entire `really-simple-captcha` folder to the `/wp-content/plugins/` directory.
+1. Activate the plugin through the 'Plugins' menu in WordPress.
+
+FYI: There is no "control panel" for this plugin.
+
+== Frequently Asked Questions ==
+
+= CAPTCHA does not work; the image does not show up. =
+
+Really Simple CAPTCHA needs GD and FreeType library installed on your server. Ask your server administrator if they are installed.
+
+Also, make the temporary file folder writable. The location of the temporary file folder is managed by the instance variable `tmp_dir` of ReallySimpleCaptcha class. Note that the setting varies depending on the calling plugin. For example, Contact Form 7 uses `wp-contents/uploads/wpcf7_captcha` as the temporary folder basically, but it can use different folder depending on your settings.
+
+If you have any further questions, please submit them [to the support forum](http://wordpress.org/support/plugin/really-simple-captcha).
+
+== Screenshots ==
+
+1. screenshot-1.png
+
+== Changelog ==
+
+= 1.8 =
+
+* The required WordPress version changed to 3.7 and higher.
+* Introduce normalize_path() to normalize file paths on different file systems.
+
+= 1.7 =
+
+* The required WordPress version changed to 3.5 and higher.
+* Remove spaces from response automatically as some users misthink there are spaces between letters.
+
+= 1.6 =
+
+* Bundled font changed to Gentium Basic 1.1.
+* Some workarounds for infrequently reported problems on Windows server.
+* Do temp file cleanup every time before generating CAPTCHA image.
+
+= 1.5 =
+
+* The required WordPress version changed to 3.2 and higher.
+* Use plain text file as answer file (again). This time, hash value generated with hash_hmac() is stored in the file.
diff --git a/wp-content/plugins/really-simple-captcha/really-simple-captcha.php b/wp-content/plugins/really-simple-captcha/really-simple-captcha.php
new file mode 100644
index 0000000..daef6e0
--- /dev/null
+++ b/wp-content/plugins/really-simple-captcha/really-simple-captcha.php
@@ -0,0 +1,315 @@
+chars = 'ABCDEFGHJKLMNPQRSTUVWXYZ23456789';
+
+ /* Length of a word in an image */
+ $this->char_length = 4;
+
+ /* Array of fonts. Randomly picked up per character */
+ $this->fonts = array(
+ dirname( __FILE__ ) . '/gentium/GenBkBasR.ttf',
+ dirname( __FILE__ ) . '/gentium/GenBkBasI.ttf',
+ dirname( __FILE__ ) . '/gentium/GenBkBasBI.ttf',
+ dirname( __FILE__ ) . '/gentium/GenBkBasB.ttf' );
+
+ /* Directory temporary keeping CAPTCHA images and corresponding text files */
+ $this->tmp_dir = path_join( dirname( __FILE__ ), 'tmp' );
+
+ /* Array of CAPTCHA image size. Width and height */
+ $this->img_size = array( 72, 24 );
+
+ /* Background color of CAPTCHA image. RGB color 0-255 */
+ $this->bg = array( 255, 255, 255 );
+
+ /* Foreground (character) color of CAPTCHA image. RGB color 0-255 */
+ $this->fg = array( 0, 0, 0 );
+
+ /* Coordinates for a text in an image. I don't know the meaning. Just adjust. */
+ $this->base = array( 6, 18 );
+
+ /* Font size */
+ $this->font_size = 14;
+
+ /* Width of a character */
+ $this->font_char_width = 15;
+
+ /* Image type. 'png', 'gif' or 'jpeg' */
+ $this->img_type = 'png';
+
+ /* Mode of temporary image files */
+ $this->file_mode = 0444;
+
+ /* Mode of temporary answer text files */
+ $this->answer_file_mode = 0440;
+ }
+
+ /**
+ * Generate and return a random word.
+ *
+ * @return string Random word with $chars characters x $char_length length
+ */
+ public function generate_random_word() {
+ $word = '';
+
+ for ( $i = 0; $i < $this->char_length; $i++ ) {
+ $pos = mt_rand( 0, strlen( $this->chars ) - 1 );
+ $char = $this->chars[$pos];
+ $word .= $char;
+ }
+
+ return $word;
+ }
+
+ /**
+ * Generate CAPTCHA image and corresponding answer file.
+ *
+ * @param string $prefix File prefix used for both files
+ * @param string $word Random word generated by generate_random_word()
+ * @return string|bool The file name of the CAPTCHA image. Return false if temp directory is not available.
+ */
+ public function generate_image( $prefix, $word ) {
+ if ( ! $this->make_tmp_dir() )
+ return false;
+
+ $this->cleanup();
+
+ $dir = trailingslashit( $this->tmp_dir );
+ $filename = null;
+
+ if ( $im = imagecreatetruecolor( $this->img_size[0], $this->img_size[1] ) ) {
+ $bg = imagecolorallocate( $im, $this->bg[0], $this->bg[1], $this->bg[2] );
+ $fg = imagecolorallocate( $im, $this->fg[0], $this->fg[1], $this->fg[2] );
+
+ imagefill( $im, 0, 0, $bg );
+
+ $x = $this->base[0] + mt_rand( -2, 2 );
+
+ for ( $i = 0; $i < strlen( $word ); $i++ ) {
+ $font = $this->fonts[array_rand( $this->fonts )];
+ $font = $this->normalize_path( $font );
+
+ imagettftext( $im, $this->font_size, mt_rand( -12, 12 ), $x,
+ $this->base[1] + mt_rand( -2, 2 ), $fg, $font, $word[$i] );
+ $x += $this->font_char_width;
+ }
+
+ switch ( $this->img_type ) {
+ case 'jpeg':
+ $filename = sanitize_file_name( $prefix . '.jpeg' );
+ $file = $this->normalize_path( $dir . $filename );
+ imagejpeg( $im, $file );
+ break;
+ case 'gif':
+ $filename = sanitize_file_name( $prefix . '.gif' );
+ $file = $this->normalize_path( $dir . $filename );
+ imagegif( $im, $file );
+ break;
+ case 'png':
+ default:
+ $filename = sanitize_file_name( $prefix . '.png' );
+ $file = $this->normalize_path( $dir . $filename );
+ imagepng( $im, $file );
+ }
+
+ imagedestroy( $im );
+ @chmod( $file, $this->file_mode );
+ }
+
+ $this->generate_answer_file( $prefix, $word );
+
+ return $filename;
+ }
+
+ /**
+ * Generate answer file corresponding to CAPTCHA image.
+ *
+ * @param string $prefix File prefix used for answer file
+ * @param string $word Random word generated by generate_random_word()
+ */
+ public function generate_answer_file( $prefix, $word ) {
+ $dir = trailingslashit( $this->tmp_dir );
+ $answer_file = $dir . sanitize_file_name( $prefix . '.txt' );
+ $answer_file = $this->normalize_path( $answer_file );
+
+ if ( $fh = @fopen( $answer_file, 'w' ) ) {
+ $word = strtoupper( $word );
+ $salt = wp_generate_password( 64 );
+ $hash = hash_hmac( 'md5', $word, $salt );
+
+ $code = $salt . '|' . $hash;
+
+ fwrite( $fh, $code );
+ fclose( $fh );
+ }
+
+ @chmod( $answer_file, $this->answer_file_mode );
+ }
+
+ /**
+ * Check a response against the code kept in the temporary file.
+ *
+ * @param string $prefix File prefix used for both files
+ * @param string $response CAPTCHA response
+ * @return bool Return true if the two match, otherwise return false.
+ */
+ public function check( $prefix, $response ) {
+ if ( 0 == strlen( $prefix ) ) {
+ return false;
+ }
+
+ $response = str_replace( array( " ", "\t" ), '', $response );
+ $response = strtoupper( $response );
+
+ $dir = trailingslashit( $this->tmp_dir );
+ $filename = sanitize_file_name( $prefix . '.txt' );
+ $file = $this->normalize_path( $dir . $filename );
+
+ if ( @is_readable( $file ) && ( $code = file_get_contents( $file ) ) ) {
+ $code = explode( '|', $code, 2 );
+
+ $salt = $code[0];
+ $hash = $code[1];
+
+ if ( hash_hmac( 'md5', $response, $salt ) == $hash )
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Remove temporary files with given prefix.
+ *
+ * @param string $prefix File prefix
+ */
+ public function remove( $prefix ) {
+ $suffixes = array( '.jpeg', '.gif', '.png', '.php', '.txt' );
+
+ foreach ( $suffixes as $suffix ) {
+ $dir = trailingslashit( $this->tmp_dir );
+ $filename = sanitize_file_name( $prefix . $suffix );
+ $file = $this->normalize_path( $dir . $filename );
+
+ if ( @is_file( $file ) ) {
+ unlink( $file );
+ }
+ }
+ }
+
+ /**
+ * Clean up dead files older than given length of time.
+ *
+ * @param int $minutes Consider older files than this time as dead files
+ * @return int|bool The number of removed files. Return false if error occurred.
+ */
+ public function cleanup( $minutes = 60 ) {
+ $dir = trailingslashit( $this->tmp_dir );
+ $dir = $this->normalize_path( $dir );
+
+ if ( ! @is_dir( $dir ) || ! @is_readable( $dir ) )
+ return false;
+
+ $is_win = ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) );
+
+ if ( ! ( $is_win ? win_is_writable( $dir ) : @is_writable( $dir ) ) )
+ return false;
+
+ $count = 0;
+
+ if ( $handle = @opendir( $dir ) ) {
+ while ( false !== ( $filename = readdir( $handle ) ) ) {
+ if ( ! preg_match( '/^[0-9]+\.(php|txt|png|gif|jpeg)$/', $filename ) )
+ continue;
+
+ $file = $this->normalize_path( $dir . $filename );
+
+ $stat = @stat( $file );
+ if ( ( $stat['mtime'] + $minutes * 60 ) < time() ) {
+ @unlink( $file );
+ $count += 1;
+ }
+ }
+
+ closedir( $handle );
+ }
+
+ return $count;
+ }
+
+ /**
+ * Make a temporary directory and generate .htaccess file in it.
+ *
+ * @return bool True on successful create, false on failure.
+ */
+ public function make_tmp_dir() {
+ $dir = trailingslashit( $this->tmp_dir );
+ $dir = $this->normalize_path( $dir );
+
+ if ( ! wp_mkdir_p( $dir ) )
+ return false;
+
+ $htaccess_file = $this->normalize_path( $dir . '.htaccess' );
+
+ if ( file_exists( $htaccess_file ) )
+ return true;
+
+ if ( $handle = @fopen( $htaccess_file, 'w' ) ) {
+ fwrite( $handle, 'Order deny,allow' . "\n" );
+ fwrite( $handle, 'Deny from all' . "\n" );
+ fwrite( $handle, '' . "\n" );
+ fwrite( $handle, ' Allow from all' . "\n" );
+ fwrite( $handle, ' ' . "\n" );
+ fclose( $handle );
+ }
+
+ return true;
+ }
+
+ /**
+ * Normalize a filesystem path.
+ *
+ * This should be replaced by wp_normalize_path when the plugin's
+ * minimum requirement becomes WordPress 3.9 or higher.
+ *
+ * @param string $path Path to normalize.
+ * @return string Normalized path.
+ */
+ private function normalize_path( $path ) {
+ $path = str_replace( '\\', '/', $path );
+ $path = preg_replace( '|/+|', '/', $path );
+ return $path;
+ }
+}
+
+?>
\ No newline at end of file
diff --git a/wp-content/plugins/really-simple-captcha/tmp/index.php b/wp-content/plugins/really-simple-captcha/tmp/index.php
new file mode 100644
index 0000000..4e6c07c
--- /dev/null
+++ b/wp-content/plugins/really-simple-captcha/tmp/index.php
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/wp-content/plugins/wordfence/css/colorbox.css b/wp-content/plugins/wordfence/css/colorbox.css
new file mode 100644
index 0000000..ed2ef06
--- /dev/null
+++ b/wp-content/plugins/wordfence/css/colorbox.css
@@ -0,0 +1,64 @@
+/*
+ ColorBox Core Style:
+ The following CSS is consistent between example themes and should not be altered.
+*/
+#colorbox, #cboxOverlay, #cboxWrapper{position:absolute; top:0; left:0; z-index:9999; overflow:hidden;}
+#cboxOverlay{position:fixed; width:100%; height:100%;}
+#cboxMiddleLeft, #cboxBottomLeft{clear:left;}
+#cboxContent{position:relative;}
+#cboxLoadedContent{overflow:auto;}
+#cboxTitle{margin:0;}
+#cboxLoadingOverlay, #cboxLoadingGraphic{position:absolute; top:0; left:0; width:100%;}
+#cboxPrevious, #cboxNext, #cboxClose, #cboxSlideshow{cursor:pointer;}
+.cboxPhoto{float:left; margin:auto; border:0; display:block;}
+.cboxIframe{width:100%; height:100%; display:block; border:0;}
+
+/*
+ User Style:
+ Change the following styles to modify the appearance of ColorBox. They are
+ ordered & tabbed in a way that represents the nesting of the generated HTML.
+*/
+#cboxOverlay{
+ background: #777;
+ background: -webkit-radial-gradient(rgba(120, 120, 120, 0.8), rgba(100, 100, 100, 0.8) 50%, rgba(70, 70, 70, 1));
+ background: -moz-radial-gradient(rgba(120, 120, 120, 0.6), rgba(100, 100, 100, 0.8) 20%, rgba(70, 70, 70, 1));
+}
+#colorbox { }
+ #cboxContent { background:#fff; overflow:hidden; padding: 0 0 8px; margin: 20px;
+ -webkit-border-radius: 3px 3px 2px 2px; -moz-border-radius: 3px 3px 2px 2px; border-radius: 3px 3px 2px 2px; /* border radius */
+ -webkit-box-shadow: 0 2px 4px rgba(0,0,0,.4); -moz-box-shadow: 0 2px 4px rgba(0,0,0,.4); box-shadow: 0 2px 4px rgba(0,0,0,.4); /* box shadow */
+ -webkit-background-clip: padding-box; /* smoother borders with webkit */ }
+ #cboxError{padding:50px; border:1px solid #ccc;}
+ #cboxLoadedContent {
+ /* margin-bottom:28px; */
+ /* MDM added: */ margin: 10px 20px 28px 20px; font-family: Arial; color: #333;
+ -webkit-border-radius: 2px 2px 0 0; -moz-border-radius: 2px 2px 0 0; border-radius: 2px 2px 0 0; /* border radius */
+ }
+ #cboxTitle{position:absolute; bottom:8px; left:5px; text-align:center; width:100%; color:#949494;}
+ #cboxCurrent{position:absolute; bottom:8px; left:63px; color:#949494; text-indent: -9999px;}
+ #cboxSlideshow{position:absolute; bottom:8px; right:35px; color:#0092ef;}
+ #cboxPrevious{position:absolute; bottom:5px; left:5px; background:url(../images/lightbox-controls.png) no-repeat -75px 0; width:25px; height:25px; text-indent:-9999px;}
+ #cboxPrevious.hover{background-position:-75px -25px;}
+ #cboxNext{position:absolute; bottom:5px; left:32px; background:url(../images/lightbox-controls.png) no-repeat -50px 0; width:25px; height:25px; text-indent:-9999px;}
+ #cboxNext.hover{background-position:-50px -25px;}
+ #cboxLoadingOverlay{background:url(../images/loading_background.png) no-repeat center center;}
+ #cboxLoadingGraphic{background:url(../images/loading.gif) no-repeat center center;}
+ #cboxClose{position:absolute; bottom:5px; right:5px; background:url(../images/lightbox-controls.png) no-repeat -25px 0; width:25px; height:25px; text-indent:-9999px;}
+ #cboxClose.hover{background-position:-25px -25px;}
+
+/*
+ The following fixes a problem where IE7+ replaces a PNG's alpha transparency with a black fill
+ when an alpha filter (opacity change) is set on the element or ancestor element.
+*/
+.cboxIE #cboxTopLeft,
+.cboxIE #cboxTopCenter,
+.cboxIE #cboxTopRight,
+.cboxIE #cboxBottomLeft,
+.cboxIE #cboxBottomCenter,
+.cboxIE #cboxBottomRight,
+.cboxIE #cboxMiddleLeft,
+.cboxIE #cboxMiddleRight {
+ filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00FFFFFF,endColorstr=#00FFFFFF);
+}
+
+
diff --git a/wp-content/plugins/wordfence/css/diff.css b/wp-content/plugins/wordfence/css/diff.css
new file mode 100644
index 0000000..4d9bbc2
--- /dev/null
+++ b/wp-content/plugins/wordfence/css/diff.css
@@ -0,0 +1,118 @@
+body {
+ background: #fff;
+ font-family: Arial;
+ font-size: 12px;
+}
+.Differences {
+ width: 100%;
+ border-collapse: collapse;
+ border-spacing: 0;
+ empty-cells: show;
+}
+
+.Differences thead th {
+ text-align: left;
+ border-bottom: 1px solid #000;
+ background: #aaa;
+ color: #000;
+ padding: 4px;
+}
+.Differences tbody th {
+ text-align: right;
+ background: #ccc;
+ width: 4em;
+ padding: 1px 2px;
+ border-right: 1px solid #000;
+ vertical-align: top;
+ font-size: 13px;
+}
+
+.Differences td {
+ padding: 1px 2px;
+ font-family: Consolas, monospace;
+ font-size: 13px;
+}
+
+.DifferencesSideBySide .ChangeInsert td.Left {
+ background: #dfd;
+}
+
+.DifferencesSideBySide .ChangeInsert td.Right {
+ background: #cfc;
+}
+
+.DifferencesSideBySide .ChangeDelete td.Left {
+ background: #f88;
+}
+
+.DifferencesSideBySide .ChangeDelete td.Right {
+ background: #faa;
+}
+
+.DifferencesSideBySide .ChangeReplace .Left {
+ background: #fe9;
+}
+
+.DifferencesSideBySide .ChangeReplace .Right {
+ background: #fd8;
+}
+
+.Differences ins, .Differences del {
+ text-decoration: none;
+}
+
+.DifferencesSideBySide .ChangeReplace ins, .DifferencesSideBySide .ChangeReplace del {
+ background: #fc0;
+}
+
+.Differences .Skipped {
+ background: #f7f7f7;
+}
+
+.DifferencesInline .ChangeReplace .Left,
+.DifferencesInline .ChangeDelete .Left {
+ background: #fdd;
+}
+
+.DifferencesInline .ChangeReplace .Right,
+.DifferencesInline .ChangeInsert .Right {
+ background: #dfd;
+}
+
+.DifferencesInline .ChangeReplace ins {
+ background: #9e9;
+}
+
+.DifferencesInline .ChangeReplace del {
+ background: #e99;
+}
+
+pre {
+ width: 100%;
+ overflow: auto;
+}
+h1 {
+ background: url(../images/wordfence-logo-64x64.png);
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ height: 64px;
+ vertical-align: middle;
+ padding: 10px 0 0 70px;
+ margin: 20px 0 10px 0;
+ font-size: 34px;
+ color: #777;
+}
+table.summary {
+ font-weight: bold;
+}
+.diffFooter {
+ text-align: center;
+ font-size: 16px;
+ color: #999;
+ font-family: Verdana;
+ margin: 50px auto 50px auto;
+}
+.diffFooter a {
+ color: #999;
+}
+
diff --git a/wp-content/plugins/wordfence/css/dt_table.css b/wp-content/plugins/wordfence/css/dt_table.css
new file mode 100644
index 0000000..9ec00c1
--- /dev/null
+++ b/wp-content/plugins/wordfence/css/dt_table.css
@@ -0,0 +1,54 @@
+.paging_two_button .ui-button{float:left;cursor:hand}
+.paging_full_numbers .ui-button{cursor:hand;margin:0;padding:2px 6px}
+.dataTables_paginate .ui-button{margin-right:-.1em!important}
+.dataTables_wrapper .ui-toolbar{padding:5px}
+.dataTables_paginate{width:auto;float:right;text-align:right}
+.dataTables_info{float:left}
+table.display thead th{cursor:pointer;text-align:left;font-size:11px;border:1px solid #ccc;padding-right:4px;text-transform:uppercase}
+table.display thead th .th_wrapp{padding:8px 4px 5px 9px}
+table.display thead th.sorting_disabled{cursor:default}
+div.dataTables_wrapper .ui-widget-header{font-weight:400}
+table.display thead th div.DataTables_sort_wrapper{position:relative;padding-right:20px}
+table.display thead th div.DataTables_sort_wrapper span{position:absolute;top:50%;margin-top:-8px;right:0}
+.dataTables_wrapper{position:relative;_height:302px;clear:both;overflow:hidden}
+.dataTables_processing{position:absolute;top:0;left:50%;width:250px;margin-left:-125px;border:1px solid #ddd;text-align:center;color:#999;padding:2px 0}
+.dataTables_length{width:40%;float:left}
+.dataTables_filter{width:50%;float:right;text-align:right}
+.dataTables_filter input {border:1px;border-color:#b8b8b8 #e2e2e2 #e2e2e2 #b8b8b8;border-style:solid;padding:2px}
+.paginate_disabled_previous,.paginate_enabled_previous,.paginate_disabled_next,.paginate_enabled_next{height:19px;width:19px;margin-left:3px;float:left}
+.paginate_enabled_previous,.paginate_enabled_next{cursor:pointer}
+.paginate_disabled_previous{background-image:url(../images/back_disabled.jpg)}
+.paginate_enabled_previous{background-image:url(../images/back_enabled.jpg)}
+.paginate_disabled_next{background-image:url(../images/forward_disabled.jpg)}
+.paginate_enabled_next{background-image:url(../images/forward_enabled.jpg)}
+table.display{width:800px;clear:both;border-collapse:collapse;margin:0 0 24px;background:#fff;position:relative;top:12px}
+table.display tfoot th{font-weight:400;padding:3px 8px 3px 8px}
+table.display tr.heading2 td{border-bottom:1px solid #aaa}
+table.display td{padding:5px 8px;border:1px solid #ccc}
+.sorting_asc div.th_wrapp{background:url(../images/sort_asc.gif) no-repeat right center}
+.sorting_desc div.th_wrapp{background:url(../images/sort_desc.gif) no-repeat right center}
+.sorting_asc_disabled div.th_wrapp{background: url('../images/sort_asc_disabled.gif') no-repeat center right}
+.sorting_desc_disabled div.th_wrapp{background: url('../images/sort_desc_disabled.gif') no-repeat center right}
+.sorting div.th_wrapp{background:url(../images/sort_both.gif) no-repeat right center}
+tr.odd{background-color:#f5f5f5}
+tr.even{background-color:#fff}
+.top,.bottom{background-color:#F5F5F5;border:1px solid #CCC;padding:15px}
+.top .dataTables_info{float:none}
+tfoot input{width:100%;color:#444;margin:.5em 0}
+tfoot input.search_init{color:#999}
+td.group{background-color:#d1cfd0;border-bottom:2px solid #A19B9E;border-top:2px solid #A19B9E}
+td.details{background-color:#d1cfd0;border:2px solid #A19B9E}
+.example_alt_pagination div.dataTables_info{width:40%}
+.paging_full_numbers span.paginate_button,.paging_full_numbers span.paginate_active{border:1px solid #ccc;cursor:pointer;margin:0 0 0 5px;padding:2px 5px}
+.paging_full_numbers span.paginate_button:hover{background-color:#e5e5e5}
+.paging_full_numbers span.paginate_active{background-color:#e5e5e5}
+.paging_full_numbers span.paginate_button_disabled {color:#ccc;cursor:default}
+.paging_full_numbers span.paginate_button_disabled:hover {background:#fff}
+table.display tr.even.row_selected td{background-color:#B0BED9}
+table.display tr.odd.row_selected td{background-color:#9FAFD1}
+.sorting_1 {background:#f5f5f5}
+table.display td.center,.dataTables_empty{text-align:center}
+.dataTables_empty{background:#fff}
+.paging_full_numbers span.paginate_button{background-color:#fff}
+.dataTables_scroll,.clear{clear:both}
+.dataTables_info,.dataTables_length,.dataTables_filter,.dataTables_processing,.paging_full_numbers span.paginate_button,.paging_full_numbers span.paginate_active {font-size:11px}
diff --git a/wp-content/plugins/wordfence/css/fullLog.css b/wp-content/plugins/wordfence/css/fullLog.css
new file mode 100644
index 0000000..76a5284
--- /dev/null
+++ b/wp-content/plugins/wordfence/css/fullLog.css
@@ -0,0 +1,21 @@
+body {
+ background: #fff;
+ font-family: Arial;
+ font-size: 12px;
+}
+h1 {
+ background: url(../images/wordfence-logo-64x64.png);
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ height: 64px;
+ vertical-align: middle;
+ padding: 10px 0 0 70px;
+ margin: 20px 0 10px 0;
+ font-size: 34px;
+ color: #777;
+}
+.error {
+ color: #F00;
+ font-weight: bold;
+ margin: 20px 0 20px 0;
+}
diff --git a/wp-content/plugins/wordfence/css/iptraf.css b/wp-content/plugins/wordfence/css/iptraf.css
new file mode 100644
index 0000000..3381e77
--- /dev/null
+++ b/wp-content/plugins/wordfence/css/iptraf.css
@@ -0,0 +1,49 @@
+body {
+ background: #fff;
+ font-family: Arial;
+ font-size: 12px;
+}
+
+
+pre {
+ width: 100%;
+ overflow: auto;
+}
+h1 {
+ background: url(../images/wordfence-logo-64x64.png);
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ height: 64px;
+ vertical-align: middle;
+ padding: 10px 0 0 70px;
+ margin: 20px 0 10px 0;
+ font-size: 34px;
+ color: #777;
+}
+
+.footer {
+ text-align: center;
+ font-size: 16px;
+ color: #999;
+ font-family: Verdana;
+ margin: 50px auto 50px auto;
+}
+.footer a {
+ color: #999;
+}
+td, th {
+ vertical-align: top;
+}
+th, td {
+ text-align: left;
+ padding-bottom: 5px;
+}
+th {
+ white-space:nowrap;
+}
+th.HTTP, td.HTTP {
+ padding: 0;
+ font-weight: normal;
+ font-size: 10px;
+}
+th.HTTP { padding-right: 5px; }
diff --git a/wp-content/plugins/wordfence/css/main.css b/wp-content/plugins/wordfence/css/main.css
new file mode 100644
index 0000000..0aaa7e3
--- /dev/null
+++ b/wp-content/plugins/wordfence/css/main.css
@@ -0,0 +1,422 @@
+.wordfenceWrap {
+ margin: 20px 0 0 20px;
+}
+div.wordfenceLive {
+ height: 29px;
+ white-space: nowrap;
+ overflow: hidden;
+ border-width: 1px 0 1px 0;
+ background-color: #FFFCEF;
+ border-color: #666;
+ border-style: solid;
+ margin: 20px 0 10px 0;
+ padding: 3px 3px 3px 10px;
+ font-family: Arial;
+ font-size: 14px;
+ -webkit-font-smoothing: antialiased;
+}
+div.wordfenceLive h2 {
+ font-weight: bold;
+ color: #888;
+ margin: 0 10px 0 0;
+ padding: 0;
+ display: inline;
+ font-size: 14px;
+ font-family: Georgia, serif;
+ font-style: italic;
+ -webkit-font-smoothing: antialiased;
+}
+div.wordfenceLive p {
+ color: #000;
+ font-weight: normal;
+ display: inline;
+}
+.wordfence-icon32 {
+ width: 32px;
+ height: 32px;
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ padding: 0;
+ margin: 7px 5px 0 0;
+ float: left;
+}
+#wfHeading {
+ white-space: nowrap;
+}
+div.wordfence-lock-icon {
+ background-image: url(../images/wordfence-logo-32x32.png);
+}
+
+.wordfence .resulticon {
+ display: block;
+ float: left;
+ width: 16px;
+ height: 16px;
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ border-width: 0;
+ padding: 0;
+ margin: 0 3px 0 0;
+ background-image: url(../images/icons/bullet_yellow.png);
+}
+
+.wordfence .wordfenceScanButton { margin: 20px 0 20px 0; }
+
+.wordfenceBoldTD {
+ font-weight: bold;
+}
+
+.wfAjax24 {
+ display: none;
+ width: 24px;
+ height: 24px;
+ background-image: url(../images/icons/ajax24.gif);
+ margin: 0;
+ padding: 0;
+}
+
+
+div.wfLoadingWhite32 {
+ width: 32px;
+ height: 32px;
+ background-image: url(../images/icons/ajaxWhite32x32.gif);
+ margin: 0;
+ padding: 0;
+}
+
+div.wordfenceScanButton input.button-wf-grey {
+ background: #EFEFEF url(../images/button-grad-grey.png) repeat-x scroll left top;
+ border-color: #EFEFEF;
+}
+.wordfenceScanButton table td { vertical-align: top; }
+
+.wfTabsContainer {
+ background-color: #FFF;
+ overflow: hidden;
+ border: 1px solid #CCC;
+ max-width: 900px;
+ padding: 15px;
+ min-height: 200px;
+ -webkit-font-smoothing: antialiased;
+}
+#wfTabs::after {
+ content: ".";
+ display: block;
+ height: 0;
+ width: 0;
+ line-height: 0;
+ clear: both;
+ visibility: hidden;
+}
+#wfTabs a {
+ float: left;
+ z-index: 10;
+ height: 18px;
+ margin: 0 5px -1px 0;
+ padding: 5px 8px;
+ border: 1px solid #CCC;
+ text-decoration: none;
+ background-color: #EFEFEF;
+ color: #21759B;
+ -moz-border-radius-topright: 3px;
+ -moz-border-radius-topleft: 3px;
+ border-top-right-radius: 3px;
+ border-top-left-radius: 3px;
+}
+#wfTabs a.selected {
+ border-bottom: 1px solid #FFF;
+ background-color: #FFF;
+ color: #777;
+}
+table.wfSummaryParent { font-family: sans-serif; font-size: 14px; color: #000; z-index: 9;}
+table.wfSummaryParent td { vertical-align: top; padding: 0; margin: 0; }
+table.wfSummaryParent table.wfSummaryChild th { font-weight: bold; text-align: right; font-family: Georgia, serif; color: #000; padding: 5px 10px 5px 0; border-top: 1px solid #CCC; }
+table.wfSummaryParent table.wfSummaryChild td { font-weight: normal; text-align: left; padding: 5px 0 5px 0; border-top: 1px solid #CCC; }
+table.wfSummaryParent table.wfSC1 td { width: 300px; padding: 0px 25px 10px 0; }
+table.wfSummaryParent table.wfSC2 th { width: 80px; }
+table.wfSummaryParent table.wfSC2 td { width: 100px; }
+table.wfSummaryParent table.wfSC3 th { width: 80px; }
+table.wfSummaryParent table.wfSC3 td { width: 250px; }
+table.wfSummaryParent th.wfHead { font-size: 22px; font-family: Georgia, serif; font-style: italic; color: #555; font-weight: bold; text-align: left; padding: 20px 0 20px 0px; -webkit-font-smoothing: antialiased; }
+
+div.wfIssue table.wfIssue td { padding: 2px; margin: 0; border-width: 0px; text-align: left; }
+div.wfIssue table.wfIssue th { padding: 2px; margin: 0; font-weight: bold; text-align: left; color: #777; }
+div.wfIssue h2 { margin: 0px 0 5px 0; padding: 0; }
+div.wfIssue table.wfIssueLinks td { border-width: 0px; text-align: left; padding-right: 10px; }
+.wfIssueOptions {
+ border-top: 1px solid #CCC;
+ padding: 10px;
+}
+.wfIssueOptions a {
+ margin-left: 10px;
+}
+.wfIssueOptions strong {
+ float: left;
+ display: block;
+ width: 60px;
+}
+.wfProbSev1, .wfProbSev2, .wfAjaxLight128, .wfResolved {
+ width: 128px;
+ height: 128px;
+ border: 0;
+ margin: 0 auto;
+ background-repeat: no-repeat; background-position: 0 0;
+ text-decoration: none;
+ display: block;
+}
+.wfProbSev1 { background-image: url(../images/icons/error128.png); }
+.wfProbSev2 { background-image: url(../images/icons/warning128.png); }
+.wfResolved { background-image: url(../images/icons/tick128.png); }
+.wfAjaxLight128 { background-image: url(../images/icons/ajax3.gif); }
+.wfStrong { font-weight: bold; }
+.wordfenceModeElem { display: none; }
+.wfIssuesContainer { width: 800px; display: none; }
+.wfIssuesContainer p { width: 550px; }
+.wfWarn { color: #F00; }
+img.wfFlag { vertical-align: middle; margin: -3px 4px 0 0; }
+.wfHitTime { font-style: italic; }
+.wfAvatar img { vertical-align: middle; }
+.wfActEvent { border-bottom: 1px solid #CCC; margin: 0 0 10px 0; padding: 0 0 10px 0; }
+.wfTimeAgo { font-family: Georgia, times; color: #999; font-weight: bold; font-style: italic; }
+table.wfConfigForm th {
+ font-weight: normal;
+ text-align: left;
+ padding: 2px 3px 1px 0;
+ vertical-align: middle;
+}
+table.wfConfigForm td {
+ vertical-align: middle;
+}
+table th.wfConfigEnable { font-weight: bold; }
+.wfSavedMsg { display: none; color: #A00; }
+table th.wfSubheading { font-weight: bold; padding-top: 10px; }
+.wfALogTime { color: #999; }
+.wfALogEntry { }
+.wfALogMailLink, .wfALogViewLink {
+ display: block;
+ position: absolute;
+ padding: 0 0 0 18px;
+ margin: 0;
+ right: 10px;
+ top: 0px;
+ background-repeat: no-repeat;
+ font-weight: normal;
+}
+.wfALogMailLink {
+ background-image: url(../images/icons/email_go.png);
+}
+.wfALogViewLink {
+ background-image: url(../images/icons/magnifier.png);
+}
+#wfActivity { position: relative; }
+h3.wfConfigHeading {
+ font-size: 22px;
+ color: #777;
+ font-family: Georgia;
+ font-style: italic;
+ font-weight: normal
+}
+.wfTipText {
+ color: #777;
+ font-family: Georgia;
+ font-style: italic;
+}
+
+.consoleHead {
+ position: relative;
+ padding: 0 0 0 3px;
+ font-weight: bold;
+ width: 800px;
+}
+.consoleHeadText {
+ font-size: 18px;
+ font-family: Georgia, serif;
+ font-style: italic;
+ color: #555;
+ font-weight: bold;
+ -webkit-font-smoothing: antialiased;
+
+}
+.consoleOuter { width: 800px; }
+.consoleInner { height: 116px; overflow: auto; z-index: 1; }
+.bevelDiv1 { border: 1px solid #EFEFEF; }
+.bevelDiv2 { border: 1px solid #AAA; }
+.bevelDiv3 { border: 1px solid #555;
+ background-color: #FFFFE0; /* #FFFFF0; /* #FFEBCD; #FFFACD; */
+ color: #000; padding: 5px; font-family: Arial; -webkit-font-smoothing: none; }
+
+.wfBlackCursor{ color: #FFF; }
+.wfSecure { color: #0A0; font-weight: bold; }
+.wfActivityLine {
+}
+.wfSummaryDate { float: left; margin-left: 3px; }
+.wfSummaryMsg { float: left; margin-left: 3px; }
+.wfSummaryResult { float: right; text-align: left; width: 280px; }
+.wfSummaryLoading { width: 16px; height: 11px; background-image: url('../images/icons/ajaxScan.gif'); }
+.wfSummaryBad, .wfSummaryErr { color: #A00; }
+.wfSummaryOK { color: #0A0; }
+.wfClear {
+ content: ".";
+ display: block;
+ height: 0;
+ width: 0;
+ line-height: 0;
+ clear: both;
+ visibility: hidden;
+}
+.wfSummaryFinal {
+ -webkit-font-smoothing: antialiased;
+ font-weight: bold;
+ color: #555;
+}
+input.wfStartScanButton { width: 160px; text-align: left; padding-left: 20px; }
+.wferror {
+ color: #F00;
+}
+#wordfenceWorking {
+ padding: 2px 8px 2px 24px;
+ z-index: 100000;
+ position: fixed;
+ right: 2px;
+ bottom: 2px;
+ border: 1px solid #000;
+ background-color: #F00;
+ color: #FFF;
+ font-size: 12px;
+ font-weight: bold;
+ font-family: Arial;
+ text-align: center;
+ background-image: url('../images/icons/ajaxRed16.gif');
+ background-position: 2px 2px;
+ background-repeat: no-repeat;
+}
+#paidWrap {
+ position: relative;
+}
+#paidCover {
+}
+.paidInnerMsg {
+ width: 500px;
+ margin: 150px auto 0 auto;
+ color: #000;
+ font-size: 18px;
+ font-family: Georgia, Times;
+ line-height: 1.8em;
+ text-align: center;
+ -webkit-font-smoothing: antialiased;
+}
+.wfMarker {
+ height: 1px;
+ width: 1px;
+}
+.wfPaidOnlyNotice {
+ width: 500px;
+ background-color: #FFFFE0;
+ border: 1px solid #000;
+ padding: 10px;
+ margin: 20px;
+}
+.wfFalconNotice {
+ width: 500px;
+ background-color: #FFD7CE;
+ border: 1px solid #000;
+ padding: 10px;
+ margin: 20px;
+}
+.wfFalcon {
+ width: 63px;
+ height: 63px;
+ border-width: 0px;
+ background-color: transparent;
+ background-image: url(../images/wordfenceFalcon.png);
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ position: absolute;
+ right: 2px;
+ top: 3px;
+}
+.wfFalconImage {
+ width: 63px;
+ height: 63px;
+ border-width: 0px;
+ background-color: transparent;
+ background-image: url(../images/wordfenceFalcon.png);
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ margin: 5px auto 15px auto;
+}
+.wfSmallFalcon {
+ width: 33px;
+ height: 16px;
+ border-width: 0px;
+ background-color: transparent;
+ background-image: url(../images/wordfenceFalconSmall.png);
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ margin: 0px;
+ padding: 0px;
+ display: inline;
+ float: right;
+}
+
+
+
+.wfOnOffSwitch {
+ position: relative !important ; width: 69px !important ;
+ -webkit-user-select:none !important ; -moz-user-select:none !important ; -ms-user-select: none !important ;
+}
+.wfOnOffSwitch-checkbox {
+ display: none !important ;
+}
+.wfOnOffSwitch-label {
+ display: block !important ; overflow: hidden !important ; cursor: pointer !important ;
+ border: 2px solid #999999 !important ; border-radius: 19px !important ;
+}
+.wfOnOffSwitch-inner {
+ width: 200% !important ; margin-left: -100% !important ;
+ -moz-transition: margin 0.3s ease-in 0s !important ; -webkit-transition: margin 0.3s ease-in 0s !important ;
+ -o-transition: margin 0.3s ease-in 0s !important ; transition: margin 0.3s ease-in 0s !important ;
+}
+.wfOnOffSwitch-inner:before, .wfOnOffSwitch-inner:after {
+ float: left !important ; width: 50% !important ; height: 19px !important ; padding: 0 !important ; line-height: 19px !important ;
+ font-size: 14px !important ; color: white !important ; font-family: Trebuchet, Arial, sans-serif !important ; font-weight: bold !important ;
+ -moz-box-sizing: border-box !important ; -webkit-box-sizing: border-box !important ; box-sizing: border-box !important ;
+ border-radius: 19px !important ;
+ box-shadow: 0px 9.5px 0px rgba(0,0,0,0.08) inset !important ;
+}
+.wfOnOffSwitch-inner:before {
+ content: "ON" !important ;
+ padding-left: 10px !important ;
+ background-color: #30D965 !important ; color: #FFFFFF !important ;
+ border-radius: 19px 0 0 19px !important ;
+}
+.wfOnOffSwitch-inner:after {
+ content: "OFF" !important ;
+ padding-right: 10px !important ;
+ background-color: #EEEEEE !important ; color: #999999 !important ;
+ text-align: right !important ;
+ border-radius: 0 19px 19px 0 !important ;
+}
+.wfOnOffSwitch-switch {
+ width: 19px !important ; margin: 0px !important ;
+ background: #FFFFFF !important ;
+ border: 2px solid #999999 !important ; border-radius: 19px !important ;
+ position: absolute !important ; top: 0 !important ; bottom: 0 !important ; right: 46px !important ;
+ -moz-transition: all 0.3s ease-in 0s !important ; -webkit-transition: all 0.3s ease-in 0s !important ;
+ -o-transition: all 0.3s ease-in 0s !important ; transition: all 0.3s ease-in 0s !important ;
+ background-image: -moz-linear-gradient(center top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 80%) !important ;
+ background-image: -webkit-linear-gradient(center top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 80%) !important ;
+ background-image: -o-linear-gradient(center top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 80%) !important ;
+ background-image: linear-gradient(center top, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0) 80%) !important ;
+ box-shadow: 0 1px 1px white inset !important ;
+}
+.wfOnOffSwitch-checkbox:checked + .wfOnOffSwitch-label .wfOnOffSwitch-inner {
+ margin-left: 0 !important ;
+}
+.wfOnOffSwitch-checkbox:checked + .wfOnOffSwitch-label .wfOnOffSwitch-switch {
+ right: 0px !important ;
+}
+#wordfenceConfigWarning {
+ clear: left;
+ margin-top: 5px;
+}
diff --git a/wp-content/plugins/wordfence/css/phpinfo.css b/wp-content/plugins/wordfence/css/phpinfo.css
new file mode 100644
index 0000000..41e8385
--- /dev/null
+++ b/wp-content/plugins/wordfence/css/phpinfo.css
@@ -0,0 +1,30 @@
+
+
+h1.p {
+ background: url(../images/wordfence-logo-64x64.png);
+ background-position: 0 0;
+ background-repeat: no-repeat;
+ height: 64px;
+ vertical-align: middle;
+ padding: 10px 0 0 70px;
+ margin: 20px 0 10px 0;
+ font-family: Arial;
+ font-weight: normal;
+ font-size: 26px;
+}
+h1.p:before {
+ content: "Wordfence System Info for ";
+}
+td img { display: none; }
+
+.diffFooter {
+ text-align: center;
+ font-size: 16px;
+ color: #999;
+ font-family: Verdana;
+ margin: 50px auto 50px auto;
+}
+.diffFooter a {
+ color: #999;
+}
+
diff --git a/wp-content/plugins/wordfence/images/back_disabled.jpg b/wp-content/plugins/wordfence/images/back_disabled.jpg
new file mode 100644
index 0000000..3cc8fa5
Binary files /dev/null and b/wp-content/plugins/wordfence/images/back_disabled.jpg differ
diff --git a/wp-content/plugins/wordfence/images/back_enabled.jpg b/wp-content/plugins/wordfence/images/back_enabled.jpg
new file mode 100644
index 0000000..2298da9
Binary files /dev/null and b/wp-content/plugins/wordfence/images/back_enabled.jpg differ
diff --git a/wp-content/plugins/wordfence/images/button-grad-grey.png b/wp-content/plugins/wordfence/images/button-grad-grey.png
new file mode 100644
index 0000000..b3c4996
Binary files /dev/null and b/wp-content/plugins/wordfence/images/button-grad-grey.png differ
diff --git a/wp-content/plugins/wordfence/images/forward_disabled.jpg b/wp-content/plugins/wordfence/images/forward_disabled.jpg
new file mode 100644
index 0000000..f213fb2
Binary files /dev/null and b/wp-content/plugins/wordfence/images/forward_disabled.jpg differ
diff --git a/wp-content/plugins/wordfence/images/forward_enabled.jpg b/wp-content/plugins/wordfence/images/forward_enabled.jpg
new file mode 100644
index 0000000..4295e3c
Binary files /dev/null and b/wp-content/plugins/wordfence/images/forward_enabled.jpg differ
diff --git a/wp-content/plugins/wordfence/images/icons/ajax24.gif b/wp-content/plugins/wordfence/images/icons/ajax24.gif
new file mode 100644
index 0000000..53dd589
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/ajax24.gif differ
diff --git a/wp-content/plugins/wordfence/images/icons/ajax3.gif b/wp-content/plugins/wordfence/images/icons/ajax3.gif
new file mode 100644
index 0000000..e907ecc
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/ajax3.gif differ
diff --git a/wp-content/plugins/wordfence/images/icons/ajaxRed16.gif b/wp-content/plugins/wordfence/images/icons/ajaxRed16.gif
new file mode 100644
index 0000000..dd8511b
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/ajaxRed16.gif differ
diff --git a/wp-content/plugins/wordfence/images/icons/ajaxScan.gif b/wp-content/plugins/wordfence/images/icons/ajaxScan.gif
new file mode 100644
index 0000000..896b49e
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/ajaxScan.gif differ
diff --git a/wp-content/plugins/wordfence/images/icons/ajaxWhite32x32.gif b/wp-content/plugins/wordfence/images/icons/ajaxWhite32x32.gif
new file mode 100644
index 0000000..3c2f7c0
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/ajaxWhite32x32.gif differ
diff --git a/wp-content/plugins/wordfence/images/icons/arrow_refresh.png b/wp-content/plugins/wordfence/images/icons/arrow_refresh.png
new file mode 100644
index 0000000..0de2656
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/arrow_refresh.png differ
diff --git a/wp-content/plugins/wordfence/images/icons/bullet_yellow.png b/wp-content/plugins/wordfence/images/icons/bullet_yellow.png
new file mode 100644
index 0000000..6469cea
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/bullet_yellow.png differ
diff --git a/wp-content/plugins/wordfence/images/icons/email_go.png b/wp-content/plugins/wordfence/images/icons/email_go.png
new file mode 100644
index 0000000..4a6c5d3
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/email_go.png differ
diff --git a/wp-content/plugins/wordfence/images/icons/error128.png b/wp-content/plugins/wordfence/images/icons/error128.png
new file mode 100644
index 0000000..122a09c
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/error128.png differ
diff --git a/wp-content/plugins/wordfence/images/icons/magnifier.png b/wp-content/plugins/wordfence/images/icons/magnifier.png
new file mode 100644
index 0000000..cf3d97f
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/magnifier.png differ
diff --git a/wp-content/plugins/wordfence/images/icons/tick128.png b/wp-content/plugins/wordfence/images/icons/tick128.png
new file mode 100644
index 0000000..dd4ad0e
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/tick128.png differ
diff --git a/wp-content/plugins/wordfence/images/icons/warning128.png b/wp-content/plugins/wordfence/images/icons/warning128.png
new file mode 100644
index 0000000..79c6d8a
Binary files /dev/null and b/wp-content/plugins/wordfence/images/icons/warning128.png differ
diff --git a/wp-content/plugins/wordfence/images/lightbox-controls.png b/wp-content/plugins/wordfence/images/lightbox-controls.png
new file mode 100644
index 0000000..f1ee226
Binary files /dev/null and b/wp-content/plugins/wordfence/images/lightbox-controls.png differ
diff --git a/wp-content/plugins/wordfence/images/loading.gif b/wp-content/plugins/wordfence/images/loading.gif
new file mode 100644
index 0000000..53dd589
Binary files /dev/null and b/wp-content/plugins/wordfence/images/loading.gif differ
diff --git a/wp-content/plugins/wordfence/images/loading_background.png b/wp-content/plugins/wordfence/images/loading_background.png
new file mode 100644
index 0000000..6ae83e6
Binary files /dev/null and b/wp-content/plugins/wordfence/images/loading_background.png differ
diff --git a/wp-content/plugins/wordfence/images/sort_asc.gif b/wp-content/plugins/wordfence/images/sort_asc.gif
new file mode 100644
index 0000000..12078b3
Binary files /dev/null and b/wp-content/plugins/wordfence/images/sort_asc.gif differ
diff --git a/wp-content/plugins/wordfence/images/sort_asc_disabled.gif b/wp-content/plugins/wordfence/images/sort_asc_disabled.gif
new file mode 100644
index 0000000..34132c3
Binary files /dev/null and b/wp-content/plugins/wordfence/images/sort_asc_disabled.gif differ
diff --git a/wp-content/plugins/wordfence/images/sort_both.gif b/wp-content/plugins/wordfence/images/sort_both.gif
new file mode 100644
index 0000000..bd16873
Binary files /dev/null and b/wp-content/plugins/wordfence/images/sort_both.gif differ
diff --git a/wp-content/plugins/wordfence/images/sort_desc.gif b/wp-content/plugins/wordfence/images/sort_desc.gif
new file mode 100644
index 0000000..03dddb1
Binary files /dev/null and b/wp-content/plugins/wordfence/images/sort_desc.gif differ
diff --git a/wp-content/plugins/wordfence/images/sort_desc_disabled.gif b/wp-content/plugins/wordfence/images/sort_desc_disabled.gif
new file mode 100644
index 0000000..3a4ee98
Binary files /dev/null and b/wp-content/plugins/wordfence/images/sort_desc_disabled.gif differ
diff --git a/wp-content/plugins/wordfence/images/wordfence-logo-16x16.png b/wp-content/plugins/wordfence/images/wordfence-logo-16x16.png
new file mode 100644
index 0000000..7027d79
Binary files /dev/null and b/wp-content/plugins/wordfence/images/wordfence-logo-16x16.png differ
diff --git a/wp-content/plugins/wordfence/images/wordfence-logo-32x32.png b/wp-content/plugins/wordfence/images/wordfence-logo-32x32.png
new file mode 100644
index 0000000..c9e858e
Binary files /dev/null and b/wp-content/plugins/wordfence/images/wordfence-logo-32x32.png differ
diff --git a/wp-content/plugins/wordfence/images/wordfence-logo-64x64.png b/wp-content/plugins/wordfence/images/wordfence-logo-64x64.png
new file mode 100644
index 0000000..bb062a1
Binary files /dev/null and b/wp-content/plugins/wordfence/images/wordfence-logo-64x64.png differ
diff --git a/wp-content/plugins/wordfence/images/wordfenceFalcon.png b/wp-content/plugins/wordfence/images/wordfenceFalcon.png
new file mode 100644
index 0000000..4d2067f
Binary files /dev/null and b/wp-content/plugins/wordfence/images/wordfenceFalcon.png differ
diff --git a/wp-content/plugins/wordfence/images/wordfenceFalconEngineSmall.png b/wp-content/plugins/wordfence/images/wordfenceFalconEngineSmall.png
new file mode 100644
index 0000000..9f0c5a0
Binary files /dev/null and b/wp-content/plugins/wordfence/images/wordfenceFalconEngineSmall.png differ
diff --git a/wp-content/plugins/wordfence/images/wordfenceFalconSmall.png b/wp-content/plugins/wordfence/images/wordfenceFalconSmall.png
new file mode 100644
index 0000000..6658623
Binary files /dev/null and b/wp-content/plugins/wordfence/images/wordfenceFalconSmall.png differ
diff --git a/wp-content/plugins/wordfence/index.php b/wp-content/plugins/wordfence/index.php
new file mode 100644
index 0000000..1580272
--- /dev/null
+++ b/wp-content/plugins/wordfence/index.php
@@ -0,0 +1,3 @@
+
diff --git a/wp-content/plugins/wordfence/js/admin.js b/wp-content/plugins/wordfence/js/admin.js
new file mode 100644
index 0000000..23a76a4
--- /dev/null
+++ b/wp-content/plugins/wordfence/js/admin.js
@@ -0,0 +1,1619 @@
+if(! window['wordfenceAdmin']){ //To compile for checking: java -jar /usr/local/bin/closure.jar --js=admin.js --js_output_file=test.js
+window['wordfenceAdmin'] = {
+ loading16: '
',
+ loadingCount: 0,
+ dbCheckTables: [],
+ dbCheckCount_ok: 0,
+ dbCheckCount_skipped: 0,
+ dbCheckCount_errors: 0,
+ issues: [],
+ ignoreData: false,
+ iconErrorMsgs: [],
+ scanIDLoaded: 0,
+ colorboxQueue: [],
+ colorboxOpen: false,
+ mode: '',
+ visibleIssuesPanel: 'new',
+ preFirstScanMsgsLoaded: false,
+ newestActivityTime: 0, //must be 0 to force loading of all initially
+ elementGeneratorIter: 1,
+ reloadConfigPage: false,
+ nonce: false,
+ tickerUpdatePending: false,
+ activityLogUpdatePending: false,
+ lastALogCtime: 0,
+ activityQueue: [],
+ totalActAdded: 0,
+ maxActivityLogItems: 1000,
+ scanReqAnimation: false,
+ debugOn: false,
+ blockedCountriesPending: [],
+ ownCountry: "",
+ schedStartHour: false,
+ currentPointer: false,
+ countryMap: false,
+ countryCodesToSave: "",
+ performanceScale: 3,
+ performanceMinWidth: 20,
+ init: function(){
+ this.nonce = WordfenceAdminVars.firstNonce;
+ this.debugOn = WordfenceAdminVars.debugOn == '1' ? true : false;
+ this.tourClosed = WordfenceAdminVars.tourClosed == '1' ? true : false;
+ var startTicker = false;
+ if(jQuery('#wordfenceMode_scan').length > 0){
+ this.mode = 'scan';
+ jQuery('#wfALogViewLink').prop('href', WordfenceAdminVars.siteBaseURL + '?_wfsf=viewActivityLog&nonce=' + this.nonce);
+ jQuery('#consoleActivity').scrollTop(jQuery('#consoleActivity').prop('scrollHeight'));
+ jQuery('#consoleScan').scrollTop(jQuery('#consoleScan').prop('scrollHeight'));
+ this.noScanHTML = jQuery('#wfNoScanYetTmpl').tmpl().html();
+ this.loadIssues();
+ this.startActivityLogUpdates();
+ if(! this.tourClosed){
+ this.scanTourStart();
+ }
+ } else if(jQuery('#wordfenceMode_activity').length > 0){
+ this.mode = 'activity';
+ var self = this;
+ this.setupSwitches('wfLiveTrafficOnOff', 'liveTrafficEnabled', function(){});
+ jQuery('#wfLiveTrafficOnOff').change(function(){
+ if(/^(?:falcon|php)$/.test(WordfenceAdminVars.cacheType) ){
+ jQuery('#wfLiveTrafficOnOff').attr('checked', false);
+ self.colorbox('400px', "Live Traffic not available in high performance mode", "Please note that you can't enable live traffic when Falcon Engine or basic caching is enabled. This is done for performance reasons. If you want live traffic, go to the 'Performance Setup' menu and disable caching.");
+ } else {
+ self.updateSwitch('wfLiveTrafficOnOff', 'liveTrafficEnabled', function(){ window.location.reload(true); });
+ }
+ });
+
+ if(WordfenceAdminVars.liveTrafficEnabled){
+ this.activityMode = 'hit';
+ } else {
+ this.activityMode = 'loginLogout';
+ this.switchTab(jQuery('#wfLoginLogoutTab'), 'wfTab1', 'wfDataPanel', 'wfActivity_loginLogout', function(){ WFAD.activityTabChanged(); });
+ }
+ startTicker = true;
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfWelcomeContent3', 'wfHeading', 'top', 'left', "Learn about Site Performance", function(){ self.tourRedir('WordfenceSitePerf'); });
+ }
+ } else if(jQuery('#wordfenceMode_options').length > 0){
+ this.mode = 'options';
+ jQuery('.wfConfigElem').change(function(){ jQuery('#securityLevel').val('CUSTOM'); });
+ this.updateTicker(true);
+ startTicker = true;
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfContentBasicOptions', 'wfMarkerBasicOptions', 'top', 'left', "Learn about Live Traffic Options", function(){
+ self.tour('wfContentLiveTrafficOptions', 'wfMarkerLiveTrafficOptions', 'bottom', 'left', "Learn about Scanning Options", function(){
+ self.tour('wfContentScansToInclude', 'wfMarkerScansToInclude', 'bottom', 'left', "Learn about Firewall Rules", function(){
+ self.tour('wfContentFirewallRules', 'wfMarkerFirewallRules', 'bottom', 'left', "Learn about Login Security", function(){
+ self.tour('wfContentLoginSecurity', 'wfMarkerLoginSecurity', 'bottom', 'left', "Learn about Other Options", function(){
+ self.tour('wfContentOtherOptions', 'wfMarkerOtherOptions', 'bottom', 'left', false, false);
+ });
+ });
+ });
+ });
+ });
+ }
+ } else if(jQuery('#wordfenceMode_blockedIPs').length > 0){
+ this.mode = 'blocked';
+ this.staticTabChanged();
+ this.updateTicker(true);
+ startTicker = true;
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfWelcomeContent4', 'wfHeading', 'top', 'left', "Learn about Cellphone Sign-in", function(){ self.tourRedir('WordfenceTwoFactor'); });
+ }
+ } else if(jQuery('#wordfenceMode_twoFactor').length > 0){
+ this.mode = 'twoFactor';
+ startTicker = false;
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfWelcomeTwoFactor', 'wfHeading', 'top', 'left', "Learn how to Block Countries", function(){ self.tourRedir('WordfenceCountryBlocking'); });
+ }
+ this.loadTwoFactor();
+
+ } else if(jQuery('#wordfenceMode_countryBlocking').length > 0){
+ this.mode = 'countryBlocking';
+ startTicker = false;
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfWelcomeContentCntBlk', 'wfHeading', 'top', 'left', "Learn how to Schedule Scans", function(){ self.tourRedir('WordfenceScanSchedule'); });
+ }
+ } else if(jQuery('#wordfenceMode_rangeBlocking').length > 0){
+ this.mode = 'rangeBlocking';
+ startTicker = false;
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfWelcomeContentRangeBlocking', 'wfHeading', 'top', 'left', "Learn how to Customize Wordfence", function(){ self.tourRedir('WordfenceSecOpt'); });
+ }
+ this.calcRangeTotal();
+ this.loadBlockRanges();
+ } else if(jQuery('#wordfenceMode_whois').length > 0){
+ this.mode = 'whois';
+ startTicker = false;
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfWelcomeContentWhois', 'wfHeading', 'top', 'left', "Learn how to use Advanced Blocking", function(){ self.tourRedir('WordfenceRangeBlocking'); });
+ }
+ this.calcRangeTotal();
+ this.loadBlockRanges();
+
+ } else if(jQuery('#wordfenceMode_scanScheduling').length > 0){
+ this.mode = 'scanScheduling';
+ startTicker = false;
+ this.sched_modeChange();
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfWelcomeContentScanSched', 'wfHeading', 'top', 'left', "Learn about WHOIS", function(){ self.tourRedir('WordfenceWhois'); });
+ }
+ } else if(jQuery('#wordfenceMode_caching').length > 0){
+ this.mode = 'caching';
+ startTicker = false;
+ if(! this.tourClosed){
+ var self = this;
+ this.tour('wfWelcomeContentCaching', 'wfHeading', 'top', 'left', "Learn about IP Blocking", function(){ self.tourRedir('WordfenceBlockedIPs'); });
+ }
+ this.loadCacheExclusions();
+// } else if(jQuery('#wordfenceMode_perfStats').length > 0){
+// var self = this;
+// this.loadAvgSitePerf();
+// this.setupSwitches('wfPerfOnOff', 'perfLoggingEnabled', function(){});
+// jQuery('#wfPerfOnOff').change(function(){ self.updateSwitch('wfPerfOnOff', 'perfLoggingEnabled', function(){}); });
+// this.mode = 'perfStats';
+// startTicker = true;
+// if(! this.tourClosed){
+// var self = this;
+// this.tour('wfWelcomeContentCaching', 'wfHeading', 'top', 'left', "Learn about IP Blocking", function(){ self.tourRedir('WordfenceBlockedIPs'); });
+// }
+ } else {
+ this.mode = false;
+ }
+ if(this.mode){ //We are in a Wordfence page
+ var self = this;
+ if(startTicker){
+ this.updateTicker();
+ this.liveInt = setInterval(function(){ self.updateTicker(); }, WordfenceAdminVars.actUpdateInterval);
+ }
+ jQuery(document).bind('cbox_closed', function(){ self.colorboxIsOpen = false; self.colorboxServiceQueue(); });
+ }
+ },
+ loadAvgSitePerf: function(){
+ var self = this;
+ this.ajax('wordfence_loadAvgSitePerf', { limit: jQuery('#wfAvgPerfNum').val() }, function(res){
+ res['scale'] = self.performanceScale;
+ res['min'] = self.performanceMinWidth;
+ jQuery('#wfAvgSitePerfContent').empty();
+ var newElem = jQuery('#wfAvgPerfTmpl').tmpl(res);
+ newElem.prependTo('#wfAvgSitePerfContent').fadeIn();
+ });
+ },
+ updateSwitch: function(elemID, configItem, cb){
+ var setting = jQuery('#' + elemID).is(':checked');
+ this.updateConfig(configItem, jQuery('#' + elemID).is(':checked') ? 1 : 0, cb);
+ },
+ setupSwitches: function(elemID, configItem, cb){
+ jQuery('.wfOnOffSwitch-checkbox').change(function(){
+ jQuery.data(this, 'lastSwitchChange', (new Date()).getTime());
+ });
+ var self = this;
+ jQuery('div.wfOnOffSwitch').mouseup( function(){
+ var elem = jQuery(this);
+ setTimeout(function(){
+ var checkedElem = elem.find('.wfOnOffSwitch-checkbox');
+ if((new Date()).getTime() - jQuery.data(checkedElem[0], 'lastSwitchChange') > 300){
+ checkedElem.prop('checked', ! checkedElem.is(':checked') );
+ self.updateSwitch(elemID, configItem, cb);
+ }
+ }, 50);
+ });
+ },
+ scanTourStart: function(){
+ var self = this;
+ this.tour('wfWelcomeContent1', 'wfHeading', 'top', 'left', "Continue the Tour", function(){
+ self.tour('wfWelcomeContent2', 'wfHeading', 'top', 'left', "Learn how to use Wordfence", function(){
+ self.tour('wfWelcomeContent3', 'wfHeading', 'top', 'left', "Learn about Live Traffic", function(){ self.tourRedir('WordfenceActivity'); });
+ });
+ });
+ },
+ tourRedir: function(menuItem){
+ window.location.href = 'admin.php?page=' + menuItem;
+ },
+ updateConfig: function(key, val, cb){
+ this.ajax('wordfence_updateConfig', { key: key, val: val }, function(){ cb(); });
+ },
+ tourFinish: function(){
+ this.ajax('wordfence_tourClosed', {}, function(res){});
+ },
+ downgradeLicense: function(){
+ this.colorbox('400px', "Confirm Downgrade", "Are you sure you want to downgrade your Wordfence Premium License? This will disable all Premium features and return you to the free version of Wordfence. Click here to renew your paid membership or click the button below to confirm you want to downgrade. ");
+ },
+ downgradeLicenseConfirm: function(){
+ jQuery.colorbox.close();
+ this.ajax('wordfence_downgradeLicense', {}, function(res){ location.reload(true); });
+ },
+ tour: function(contentID, elemID, edge, align, buttonLabel, buttonCallback){
+ var self = this;
+ if(this.currentPointer){
+ this.currentPointer.pointer('destroy');
+ this.currentPointer = false;
+ }
+ var options = {
+ buttons: function(event, t){
+ var buttonElem = jQuery('');
+ buttonElem.find('#pointer-close').bind('click.pointer', function (evtObj) {
+ var evtSourceElem = evtObj.srcElement ? evtObj.srcElement : evtObj.target;
+ if(evtSourceElem.id == 'wfRateLink'){
+ return true;
+ }
+ self.tourFinish();
+ t.element.pointer('close');
+ return false;
+ });
+ return buttonElem;
+ },
+ close: function(){},
+ content: jQuery('#' + contentID).tmpl().html(),
+ pointerWidth: 400,
+ position: {
+ edge: edge,
+ align: align
+ }
+ };
+ this.currentPointer = jQuery('#' + elemID).pointer(options).pointer('open');
+ if(buttonLabel && buttonCallback){
+ jQuery('#pointer-close').after('' + buttonLabel + ' ');
+ jQuery('#pointer-primary').click(buttonCallback);
+ }
+ },
+ startTourAgain: function(){
+ this.ajax('wordfence_startTourAgain', {}, function(res){});
+ this.tourClosed = false;
+ this.scanTourStart();
+ },
+ showLoading: function(){
+ this.loadingCount++;
+ if(this.loadingCount == 1){
+ jQuery('Wordfence is working...
').appendTo('body');
+ }
+ },
+ removeLoading: function(){
+ this.loadingCount--;
+ if(this.loadingCount == 0){
+ jQuery('#wordfenceWorking').remove();
+ }
+ },
+ startActivityLogUpdates: function(){
+ var self = this;
+ setInterval(function(){
+ self.updateActivityLog();
+ }, parseInt(WordfenceAdminVars.actUpdateInterval));
+ },
+ updateActivityLog: function(){
+ if(this.activityLogUpdatePending){
+ return;
+ }
+ this.activityLogUpdatePending = true;
+ var self = this;
+ this.ajax('wordfence_activityLogUpdate', {
+ lastctime: this.lastALogCtime
+ }, function(res){ self.doneUpdateActivityLog(res); }, function(){ self.activityLogUpdatePending = false; }, true);
+
+ },
+ doneUpdateActivityLog: function(res){
+ this.actNextUpdateAt = (new Date()).getTime() + parseInt(WordfenceAdminVars.actUpdateInterval);
+ if(res.ok){
+ if(res.items.length > 0){
+ this.activityQueue.push.apply(this.activityQueue, res.items);
+ this.lastALogCtime = res.items[res.items.length - 1].ctime;
+ this.processActQueue(res.currentScanID);
+ }
+ }
+ this.activityLogUpdatePending = false;
+ },
+ processActQueue: function(currentScanID){
+ if(this.activityQueue.length > 0){
+ this.addActItem(this.activityQueue.shift());
+ this.totalActAdded++;
+ if(this.totalActAdded > this.maxActivityLogItems){
+ jQuery('#consoleActivity div:first').remove();
+ this.totalActAdded--;
+ }
+ var timeTillNextUpdate = this.actNextUpdateAt - (new Date()).getTime();
+ var maxRate = 50 / 1000; //Rate per millisecond
+ var bulkTotal = 0;
+ while(this.activityQueue.length > 0 && this.activityQueue.length / timeTillNextUpdate > maxRate ){
+ var item = this.activityQueue.shift();
+ if(item){
+ bulkTotal++;
+ this.addActItem(item);
+ }
+ }
+ this.totalActAdded += bulkTotal;
+ if(this.totalActAdded > this.maxActivityLogItems){
+ jQuery('#consoleActivity div:lt(' + bulkTotal + ')').remove();
+ this.totalActAdded -= bulkTotal;
+ }
+ var minDelay = 100;
+ var delay = minDelay;
+ if(timeTillNextUpdate < 1){
+ delay = minDelay;
+ } else {
+ delay = Math.round(timeTillNextUpdate / this.activityQueue.length);
+ if(delay < minDelay){ delay = minDelay; }
+ }
+ var self = this;
+ setTimeout(function(){ self.processActQueue(); }, delay);
+ }
+ jQuery('#consoleActivity').scrollTop(jQuery('#consoleActivity').prop('scrollHeight'));
+ },
+ processActArray: function(arr){
+ for(var i = 0; i < arr.length; i++){
+ this.addActItem(arr[i]);
+ }
+ },
+ addActItem: function(item){
+ if(! item){ return; }
+ if(! item.msg){ return; }
+ if(item.msg.indexOf('SUM_') == 0){
+ this.processSummaryLine(item);
+ jQuery('#consoleSummary').scrollTop(jQuery('#consoleSummary').prop('scrollHeight'));
+ jQuery('#wfStartingScan').addClass('wfSummaryOK').html('Done.');
+ } else if(this.debugOn || item.level < 4){
+
+ var html = '[' + item.date + '] ' + item.msg + '
';
+ jQuery('#consoleActivity').append(html);
+ if(/Scan complete\./i.test(item.msg)){
+ this.loadIssues();
+ }
+ }
+ },
+ processSummaryLine: function(item){
+ if(item.msg.indexOf('SUM_START:') != -1){
+ var msg = item.msg.replace('SUM_START:', '');
+ jQuery('#consoleSummary').append('[' + item.date + ']
' + msg + '
');
+ summaryUpdated = true;
+ } else if(item.msg.indexOf('SUM_ENDBAD') != -1){
+ var msg = item.msg.replace('SUM_ENDBAD:', '');
+ jQuery('div.wfSummaryMsg:contains("' + msg + '")').next().addClass('wfSummaryBad').html('Problems found.');
+ summaryUpdated = true;
+ } else if(item.msg.indexOf('SUM_ENDFAILED') != -1){
+ var msg = item.msg.replace('SUM_ENDFAILED:', '');
+ jQuery('div.wfSummaryMsg:contains("' + msg + '")').next().addClass('wfSummaryBad').html('Failed.');
+ summaryUpdated = true;
+ } else if(item.msg.indexOf('SUM_ENDOK') != -1){
+ var msg = item.msg.replace('SUM_ENDOK:', '');
+ jQuery('div.wfSummaryMsg:contains("' + msg + '")').next().addClass('wfSummaryOK').html('Secure.');
+ summaryUpdated = true;
+ } else if(item.msg.indexOf('SUM_ENDSUCCESS') != -1){
+ var msg = item.msg.replace('SUM_ENDSUCCESS:', '');
+ jQuery('div.wfSummaryMsg:contains("' + msg + '")').next().addClass('wfSummaryOK').html('Success.');
+ summaryUpdated = true;
+ } else if(item.msg.indexOf('SUM_ENDERR') != -1){
+ var msg = item.msg.replace('SUM_ENDERR:', '');
+ jQuery('div.wfSummaryMsg:contains("' + msg + '")').next().addClass('wfSummaryErr').html('An error occurred.');
+ summaryUpdated = true;
+ } else if(item.msg.indexOf('SUM_DISABLED:') != -1){
+ var msg = item.msg.replace('SUM_DISABLED:', '');
+ jQuery('#consoleSummary').append('
[' + item.date + ']
' + msg + '
');
+ summaryUpdated = true;
+ } else if(item.msg.indexOf('SUM_PAIDONLY:') != -1){
+ var msg = item.msg.replace('SUM_PAIDONLY:', '');
+ jQuery('#consoleSummary').append('
[' + item.date + ']
' + msg + '
');
+ summaryUpdated = true;
+ } else if(item.msg.indexOf('SUM_FINAL:') != -1){
+ var msg = item.msg.replace('SUM_FINAL:', '');
+ jQuery('#consoleSummary').append('
[' + item.date + ']
' + msg + '
Scan Complete.
');
+ } else if(item.msg.indexOf('SUM_PREP:') != -1){
+ var msg = item.msg.replace('SUM_PREP:', '');
+ jQuery('#consoleSummary').empty().html('
[' + item.date + ']
' + msg + '
');
+ } else if(item.msg.indexOf('SUM_KILLED:') != -1){
+ var msg = item.msg.replace('SUM_KILLED:', '');
+ jQuery('#consoleSummary').empty().html('
[' + item.date + ']
' + msg + '
Scan Complete.
');
+ }
+ },
+ processActQueueItem: function(){
+ var item = this.activityQueue.shift();
+ if(item){
+ jQuery('#consoleActivity').append('
[' + item.date + '] ' + item.msg + '
');
+ this.totalActAdded++;
+ if(this.totalActAdded > this.maxActivityLogItems){
+ jQuery('#consoleActivity div:first').remove();
+ this.totalActAdded--;
+ }
+ if(item.msg == 'Scan complete.'){
+ this.loadIssues();
+ }
+ }
+ },
+ updateTicker: function(forceUpdate){
+ if( (! forceUpdate) && this.tickerUpdatePending){
+ return;
+ }
+ this.tickerUpdatePending = true;
+ var self = this;
+ var alsoGet = '';
+ var otherParams = '';
+ if(this.mode == 'activity' && /^(?:404|hit|human|ruser|gCrawler|crawler|loginLogout)$/.test(this.activityMode)){
+ alsoGet = 'logList_' + this.activityMode;
+ otherParams = this.newestActivityTime;
+ } else if(this.mode == 'perfStats'){
+ alsoGet = 'perfStats';
+ otherParams = this.newestActivityTime;
+ }
+ this.ajax('wordfence_ticker', {
+ alsoGet: alsoGet,
+ otherParams: otherParams
+ }, function(res){ self.handleTickerReturn(res); }, function(){ self.tickerUpdatePending = false; }, true);
+ },
+ handleTickerReturn: function(res){
+ this.tickerUpdatePending = false;
+ var newMsg = "";
+ var oldMsg = jQuery('#wfLiveStatus').text();
+ if( res.msg ){
+ newMsg = res.msg;
+ } else {
+ newMsg = "Idle";
+ }
+ if(newMsg && newMsg != oldMsg){
+ jQuery('#wfLiveStatus').hide().html(newMsg).fadeIn(200);
+ }
+
+ if(this.mode == 'activity'){
+ if(res.alsoGet != 'logList_' + this.activityMode){ return; } //user switched panels since ajax request started
+ if(res.events.length > 0){
+ this.newestActivityTime = res.events[0]['ctime'];
+ }
+ var haveEvents = false;
+ if(jQuery('#wfActivity_' + this.activityMode + ' .wfActEvent').length > 0){
+ haveEvents = true;
+ }
+ if(res.events.length > 0){
+ if(! haveEvents){
+ jQuery('#wfActivity_' + this.activityMode).empty();
+ }
+ for(i = res.events.length - 1; i >= 0; i--){
+ var elemID = '#wfActEvent_' + res.events[i].id;
+ if(jQuery(elemID).length < 1){
+ res.events[i]['activityMode'] = this.activityMode;
+ var newElem;
+ if(this.activityMode == 'loginLogout'){
+ newElem = jQuery('#wfLoginLogoutEventTmpl').tmpl(res.events[i]);
+ } else {
+ newElem = jQuery('#wfHitsEventTmpl').tmpl(res.events[i]);
+ }
+ jQuery(newElem).find('.wfTimeAgo').data('wfctime', res.events[i].ctime);
+ newElem.prependTo('#wfActivity_' + this.activityMode).fadeIn();
+ }
+ }
+ this.reverseLookupIPs();
+ } else {
+ if(! haveEvents){
+ jQuery('#wfActivity_' + this.activityMode).html('
No events to report yet.
');
+ }
+ }
+ var self = this;
+ jQuery('.wfTimeAgo').each(function(idx, elem){
+ jQuery(elem).html(self.makeTimeAgo(res.serverTime - jQuery(elem).data('wfctime')) + ' ago');
+ });
+ } else if(this.mode == 'perfStats'){
+ var haveEvents = false;
+ if(jQuery('#wfPerfStats .wfPerfEvent').length > 0){
+ haveEvents = true;
+ }
+ if(res.events.length > 0){
+ if(! haveEvents){
+ jQuery('#wfPerfStats').empty();
+ }
+ var curLength = parseInt(jQuery('#wfPerfStats').css('width'));
+ if(res.longestLine > curLength){
+ jQuery('#wfPerfStats').css('width', (res.longestLine + 200) + 'px');
+ }
+ this.newestActivityTime = res.events[0]['ctime'];
+ for(var i = res.events.length - 1; i >= 0; i--){
+ res.events[i]['scale'] = this.performanceScale;
+ res.events[i]['min'] = this.performanceMinWidth;
+ var newElem = jQuery('#wfPerfStatTmpl').tmpl(res.events[i]);
+ jQuery(newElem).find('.wfTimeAgo').data('wfctime', res.events[i].ctime);
+ newElem.prependTo('#wfPerfStats').fadeIn();
+ }
+ } else {
+ if(! haveEvents){
+ jQuery('#wfPerfStats').html('
No events to report yet.
');
+ }
+ }
+ var self = this;
+ jQuery('.wfTimeAgo').each(function(idx, elem){
+ jQuery(elem).html(self.makeTimeAgo(res.serverTime - jQuery(elem).data('wfctime')) + ' ago');
+ });
+ }
+ },
+ reverseLookupIPs: function(){
+ var ips = [];
+ jQuery('.wfReverseLookup').each(function(idx, elem){
+ var txt = jQuery(elem).text();
+ if(/^\d+\.\d+\.\d+\.\d+$/.test(txt) && (! jQuery(elem).data('wfReverseDone'))){
+ jQuery(elem).data('wfReverseDone', true);
+ ips.push(jQuery(elem).text());
+ }
+ });
+ if(ips.length < 1){ return; }
+ var uni = {};
+ var uniqueIPs = [];
+ for(var i = 0; i < ips.length; i++){
+ if(! uni[ips[i]]){
+ uni[ips[i]] = true;
+ uniqueIPs.push(ips[i]);
+ }
+ }
+ this.ajax('wordfence_reverseLookup', {
+ ips: uniqueIPs.join(',')
+ },
+ function(res){
+ if(res.ok){
+ jQuery('.wfReverseLookup').each(function(idx, elem){
+ var txt = jQuery(elem).text();
+ for(ip in res.ips){
+ if(txt == ip){
+ if(res.ips[ip]){
+ jQuery(elem).html('
Hostname: ' + res.ips[ip]);
+ } else {
+ jQuery(elem).html('');
+ }
+ }
+ }
+ });
+ }
+ }, false, false);
+ },
+ killScan: function(){
+ var self = this;
+ this.ajax('wordfence_killScan', {}, function(res){
+ if(res.ok){
+ self.colorbox('400px', "Kill requested", "A termination request has been sent to any running scans.");
+ } else {
+ self.colorbox('400px', "Kill failed", "We failed to send a termination request.");
+ }
+ });
+ },
+ startScan: function(){
+ var scanReqAnimation = setInterval(function(){
+ var str = jQuery('#wfStartScanButton1').prop('value');
+ ch = str.charAt(str.length - 1);
+ if(ch == '/'){ ch = '-'; }
+ else if(ch == '-'){ ch = '\\'; }
+ else if(ch == '\\'){ ch = '|'; }
+ else if(ch == '|'){ ch = '/'; }
+ else {ch = '/'; }
+ jQuery('#wfStartScanButton1,#wfStartScanButton2').prop('value', "Requesting a New Scan " + ch);
+ }, 100);
+ setTimeout(function(res){
+ clearInterval(scanReqAnimation);
+ jQuery('#wfStartScanButton1,#wfStartScanButton2').prop('value', "Start a Wordfence Scan");
+ }, 3000);
+ this.ajax('wordfence_scan', {}, function(res){ } );
+ },
+ loadIssues: function(callback){
+ if(this.mode != 'scan'){
+ return;
+ }
+ var self = this;
+ this.ajax('wordfence_loadIssues', { }, function(res){
+ self.displayIssues(res, callback);
+ });
+ },
+ sev2num: function(str){
+ if(/wfProbSev1/.test(str)){
+ return 1;
+ } else if(/wfProbSev2/.test(str)){
+ return 2;
+ } else {
+ return 0;
+ }
+ },
+ displayIssues: function(res, callback){
+ var self = this;
+ try {
+ res.summary['lastScanCompleted'] = res['lastScanCompleted'];
+ } catch(err){
+ res.summary['lastScanCompleted'] = 'Never';
+ }
+ jQuery('.wfIssuesContainer').hide();
+ for(issueStatus in res.issuesLists){
+ var containerID = 'wfIssues_dataTable_' + issueStatus;
+ var tableID = 'wfIssuesTable_' + issueStatus;
+ if(jQuery('#' + containerID).length < 1){
+ //Invalid issue status
+ continue;
+ }
+ if(res.issuesLists[issueStatus].length < 1){
+ if(issueStatus == 'new'){
+ if(res.lastScanCompleted == 'ok'){
+ jQuery('#' + containerID).html('
Congratulations! You have no security issues on your site.
');
+ } else if(res['lastScanCompleted']){
+ //jQuery('#' + containerID).html('
The latest scan failed: ' + res.lastScanCompleted + '
');
+ } else {
+ jQuery('#' + containerID).html();
+ }
+
+ } else {
+ jQuery('#' + containerID).html('
There are currently no issues being ignored on this site.
');
+ }
+ continue;
+ }
+ jQuery('#' + containerID).html('
');
+
+ jQuery.fn.dataTableExt.oSort['severity-asc'] = function(y,x){ x = WFAD.sev2num(x); y = WFAD.sev2num(y); if(x < y){ return 1; } if(x > y){ return -1; } return 0; };
+ jQuery.fn.dataTableExt.oSort['severity-desc'] = function(y,x){ x = WFAD.sev2num(x); y = WFAD.sev2num(y); if(x > y){ return 1; } if(x < y){ return -1; } return 0; };
+
+ jQuery('#' + tableID).dataTable({
+ "bFilter": false,
+ "bInfo": false,
+ "bPaginate": false,
+ "bLengthChange": false,
+ "bAutoWidth": false,
+ "aaData": res.issuesLists[issueStatus],
+ "aoColumns": [
+ {
+ "sTitle": '
Severity
',
+ "sWidth": '128px',
+ "sClass": "center",
+ "sType": 'severity',
+ "fnRender": function(obj) {
+ var cls = "";
+ cls = 'wfProbSev' + obj.aData.severity;
+ return '
';
+ }
+ },
+ {
+ "sTitle": '
Issue
',
+ "bSortable": false,
+ "sWidth": '400px',
+ "sType": 'html',
+ fnRender: function(obj){
+ var tmplName = 'issueTmpl_' + obj.aData.type;
+ return jQuery('#' + tmplName).tmpl(obj.aData).html();
+ }
+ }
+ ]
+ });
+ }
+ if(callback){
+ jQuery('#wfIssues_' + this.visibleIssuesPanel).fadeIn(500, function(){ callback(); });
+ } else {
+ jQuery('#wfIssues_' + this.visibleIssuesPanel).fadeIn(500);
+ }
+ return true;
+ },
+ ajax: function(action, data, cb, cbErr, noLoading){
+ if(typeof(data) == 'string'){
+ if(data.length > 0){
+ data += '&';
+ }
+ data += 'action=' + action + '&nonce=' + this.nonce;
+ } else if(typeof(data) == 'object'){
+ data['action'] = action;
+ data['nonce'] = this.nonce;
+ }
+ if(! cbErr){
+ cbErr = function(){};
+ }
+ var self = this;
+ if(! noLoading){
+ this.showLoading();
+ }
+ jQuery.ajax({
+ type: 'POST',
+ url: WordfenceAdminVars.ajaxURL,
+ dataType: "json",
+ data: data,
+ success: function(json){
+ if(! noLoading){
+ self.removeLoading();
+ }
+ if(json && json.nonce){
+ self.nonce = json.nonce;
+ }
+ if(json && json.errorMsg){
+ self.colorbox('400px', 'An error occurred', json.errorMsg);
+ }
+ cb(json);
+ },
+ error: function(){
+ if(! noLoading){
+ self.removeLoading();
+ }
+ cbErr();
+ }
+ });
+ },
+ colorbox: function(width, heading, body){
+ this.colorboxQueue.push([width, heading, body]);
+ this.colorboxServiceQueue();
+ },
+ colorboxServiceQueue: function(){
+ if(this.colorboxIsOpen){ return; }
+ if(this.colorboxQueue.length < 1){ return; }
+ var elem = this.colorboxQueue.shift();
+ this.colorboxOpen(elem[0], elem[1], elem[2]);
+ },
+ colorboxOpen: function(width, heading, body){
+ this.colorboxIsOpen = true;
+ jQuery.colorbox({ width: width, html: "
" + heading + " " + body + "
"});
+ },
+ scanRunningMsg: function(){ this.colorbox('400px', "A scan is running", "A scan is currently in progress. Please wait until it finishes before starting another scan."); },
+ errorMsg: function(msg){ this.colorbox('400px', "An error occurred:", msg); },
+ bulkOperation: function(op){
+ var self = this;
+ if(op == 'del' || op == 'repair'){
+ var ids = jQuery('input.wf' + op + 'Checkbox:checked').map(function(){ return jQuery(this).val(); }).get();
+ if(ids.length < 1){
+ this.colorbox('400px', "No files were selected", "You need to select files to perform a bulk operation. There is a checkbox in each issue that lets you select that file. You can then select a bulk operation and hit the button to perform that bulk operation.");
+ return;
+ }
+ if(op == 'del'){
+ this.colorbox('400px', "Are you sure you want to delete?", "Are you sure you want to delete a total of " + ids.length + " files? Do not delete files on your system unless you're ABSOLUTELY sure you know what you're doing. If you delete the wrong file it could cause your WordPress website to stop functioning and you will probably have to restore from backups. If you're unsure, Cancel and work with your hosting provider to clean your system of infected files.
");
+ } else if(op == 'repair'){
+ this.colorbox('400px', "Are you sure you want to repair?", "Are you sure you want to repair a total of " + ids.length + " files? Do not repair files on your system unless you're sure you have reviewed the differences between the original file and your version of the file in the files you are repairing. If you repair a file that has been customized for your system by a developer or your hosting provider it may leave your system unusable. If you're unsure, Cancel and work with your hosting provider to clean your system of infected files.
");
+ }
+ } else {
+ return;
+ }
+ },
+ bulkOperationConfirmed: function(op){
+ jQuery.colorbox.close();
+ var self = this;
+ this.ajax('wordfence_bulkOperation', {
+ op: op,
+ ids: jQuery('input.wf' + op + 'Checkbox:checked').map(function(){ return jQuery(this).val(); }).get()
+ }, function(res){ self.doneBulkOperation(res); });
+ },
+ doneBulkOperation: function(res){
+ var self = this;
+ if(res.ok){
+ this.loadIssues(function(){ self.colorbox('400px', res.bulkHeading, res.bulkBody); });
+ } else {
+ this.loadIssues(function(){});
+ }
+ },
+ deleteFile: function(issueID){
+ var self = this;
+ this.ajax('wordfence_deleteFile', {
+ issueID: issueID
+ }, function(res){ self.doneDeleteFile(res); });
+ },
+ doneDeleteFile: function(res){
+ var cb = false;
+ var self = this;
+ if(res.ok){
+ this.loadIssues(function(){ self.colorbox('400px', "Success deleting file", "The file " + res.file + " was successfully deleted."); });
+ } else if(res.cerrorMsg){
+ this.loadIssues(function(){ self.colorbox('400px', 'An error occurred', res.cerrorMsg); });
+ }
+ },
+ restoreFile: function(issueID){
+ var self = this;
+ this.ajax('wordfence_restoreFile', {
+ issueID: issueID
+ }, function(res){ self.doneRestoreFile(res); });
+ },
+ doneRestoreFile: function(res){
+ var self = this;
+ if(res.ok){
+ this.loadIssues(function(){ self.colorbox("400px", "File restored OK", "The file " + res.file + " was restored succesfully."); });
+ } else if(res.cerrorMsg){
+ this.loadIssues(function(){ self.colorbox('400px', 'An error occurred', res.cerrorMsg); });
+ }
+ },
+ deleteIssue: function(id){
+ var self = this;
+ this.ajax('wordfence_deleteIssue', { id: id }, function(res){
+ self.loadIssues();
+ });
+ },
+ updateIssueStatus: function(id, st){
+ var self = this;
+ this.ajax('wordfence_updateIssueStatus', { id: id, 'status': st }, function(res){
+ if(res.ok){
+ self.loadIssues();
+ }
+ });
+ },
+ updateAllIssues: function(op){ // deleteIgnored, deleteNew, ignoreAllNew
+ var head = "Please confirm";
+ if(op == 'deleteIgnored'){
+ body = "You have chosen to remove all ignored issues. Once these issues are removed they will be re-scanned by Wordfence and if they have not been fixed, they will appear in the 'new issues' list. Are you sure you want to do this?";
+ } else if(op == 'deleteNew'){
+ body = "You have chosen to mark all new issues as fixed. If you have not really fixed these issues, they will reappear in the new issues list on the next scan. If you have not fixed them and want them excluded from scans you should choose to 'ignore' them instead. Are you sure you want to mark all new issues as fixed?";
+ } else if(op == 'ignoreAllNew'){
+ body = "You have chosen to ignore all new issues. That means they will be excluded from future scans. You should only do this if you're sure all new issues are not a problem. Are you sure you want to ignore all new issues?";
+ } else {
+ return;
+ }
+ this.colorbox('450px', head, body + '
');
+ },
+ confirmUpdateAllIssues: function(op){
+ var self = this;
+ this.ajax('wordfence_updateAllIssues', { op: op }, function(res){ self.loadIssues(); });
+ },
+ es: function(val){
+ if(val){
+ return val;
+ } else {
+ return "";
+ }
+ },
+ noQuotes: function(str){
+ return str.replace(/"/g,'"').replace(/\'/g, '');
+ },
+ commify: function(num){
+ return ("" + num).replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,");
+ },
+ switchToLiveTab: function(elem){
+ jQuery('.wfTab1').removeClass('selected');
+ jQuery(elem).addClass('selected');
+ jQuery('.wfDataPanel').hide();
+ var self = this;
+ jQuery('#wfActivity').fadeIn(function(){ self.completeLiveTabSwitch(); });
+ },
+ completeLiveTabSwitch: function(){
+ this.ajax('wordfence_loadActivityLog', {}, function(res){
+ var html = ' ';
+ if(res.events && res.events.length > 0){
+ jQuery('#wfActivity').empty();
+ for(var i = 0; i < res.events.length; i++){
+ var timeTaken = '0.0000';
+ if(res.events[i + 1]){
+ timeTaken = (res.events[i].ctime - res.events[i + 1].ctime).toFixed(4);
+ }
+ var red = "";
+ if(res.events[i].type == 'error'){
+ red = ' class="wfWarn" ';
+ }
+ html += '[' + res.events[i].type + ' : ' + timeTaken + ' : ' + res.events[i].timeAgo + ' ago] ' + res.events[i].msg + "
";
+ }
+ jQuery('#wfActivity').html(html);
+ } else {
+ jQuery('#wfActivity').html(" No activity to report yet. Please complete your first scan.
");
+ }
+ });
+ },
+ emailActivityLog: function(){
+ this.colorbox('400px', 'Email Wordfence Activity Log', "Enter the email address you would like to send the Wordfence activity log to. Note that the activity log may contain thousands of lines of data. This log is usually only sent to a member of the Wordfence support team. It also contains your PHP configuration from the phpinfo() function for diagnostic data. ");
+ },
+ completeEmailActivityLog: function(){
+ jQuery.colorbox.close();
+ var email = jQuery('#wfALogRecip').val();
+ if(! /^[^@]+@[^@]+$/.test(email)){
+ alert("Please enter a valid email address.");
+ return;
+ }
+ var self = this;
+ this.ajax('wordfence_sendActivityLog', { email: jQuery('#wfALogRecip').val() }, function(res){
+ if(res.ok){
+ self.colorbox('400px', 'Activity Log Sent', "Your Wordfence activity log was sent to " + email + " ");
+ }
+ });
+ },
+ reloadActivityData: function(){
+ jQuery('#wfActivity').html('
'); //
+ this.completeLiveTabSwitch();
+ },
+ switchToSummaryTab: function(elem){
+ jQuery('.wfTab1').removeClass('selected');
+ jQuery(elem).addClass('selected');
+ jQuery('.wfDataPanel').hide();
+ jQuery('#wfSummaryTables').fadeIn();
+ },
+ switchIssuesTab: function(elem, type){
+ jQuery('.wfTab2').removeClass('selected');
+ jQuery('.wfIssuesContainer').hide();
+ jQuery(elem).addClass('selected');
+ this.visibleIssuesPanel = type;
+ jQuery('#wfIssues_' + type).fadeIn();
+ },
+ switchTab: function(tabElement, tabClass, contentClass, selectedContentID, callback){
+ jQuery('.' + tabClass).removeClass('selected');
+ jQuery(tabElement).addClass('selected');
+ jQuery('.' + contentClass).hide().html('
');
+ var func = function(){};
+ if(callback){
+ func = function(){ callback(); };
+ }
+ jQuery('#' + selectedContentID).fadeIn(func);
+ },
+ activityTabChanged: function(){
+ var mode = jQuery('.wfDataPanel:visible')[0].id.replace('wfActivity_','');
+ if(! mode){ return; }
+ this.activityMode = mode;
+ this.reloadActivities();
+ },
+ reloadActivities: function(){
+ jQuery('#wfActivity_' + this.activityMode).html('
');
+ this.newestActivityTime = 0;
+ this.updateTicker(true);
+ },
+ staticTabChanged: function(){
+ var mode = jQuery('.wfDataPanel:visible')[0].id.replace('wfActivity_','');
+ if(! mode){ return; }
+ this.activityMode = mode;
+
+ var self = this;
+ this.ajax('wordfence_loadStaticPanel', {
+ mode: this.activityMode
+ }, function(res){
+ self.completeLoadStaticPanel(res);
+ });
+ },
+ completeLoadStaticPanel: function(res){
+ var contentElem = '#wfActivity_' + this.activityMode;
+ jQuery(contentElem).empty();
+ if(res.results && res.results.length > 0){
+ var tmpl;
+ if(this.activityMode == 'topScanners' || this.activityMode == 'topLeechers'){
+ tmpl = '#wfLeechersTmpl';
+ } else if(this.activityMode == 'blockedIPs'){
+ tmpl = '#wfBlockedIPsTmpl';
+ } else if(this.activityMode == 'lockedOutIPs'){
+ tmpl = '#wfLockedOutIPsTmpl';
+ } else if(this.activityMode == 'throttledIPs'){
+ tmpl = '#wfThrottledIPsTmpl';
+ } else { return; }
+ var i, j, chunk = 1000;
+ var bigArray = res.results.slice(0);
+ res.results = false;
+ for(i = 0, j = bigArray.length; i < j; i += chunk){
+ res.results = bigArray.slice(i, i + chunk);
+ jQuery(tmpl).tmpl(res).appendTo(contentElem);
+ }
+ this.reverseLookupIPs();
+ } else {
+ if(this.activityMode == 'topScanners' || this.activityMode == 'topLeechers'){
+ jQuery(contentElem).html("No site hits have been logged yet. Check back soon.");
+ } else if(this.activityMode == 'blockedIPs'){
+ jQuery(contentElem).html("No IP addresses have been blocked yet. If you manually block an IP address or if Wordfence automatically blocks one, it will appear here.");
+ } else if(this.activityMode == 'lockedOutIPs'){
+ jQuery(contentElem).html("No IP addresses have been locked out from signing in or using the password recovery system.");
+ } else if(this.activityMode == 'throttledIPs'){
+ jQuery(contentElem).html("No IP addresses have been throttled yet. If an IP address accesses the site too quickly and breaks one of the Wordfence rules, it will appear here.");
+ } else { return; }
+ }
+ },
+ ucfirst: function(str){
+ str = "" + str;
+ return str.charAt(0).toUpperCase() + str.slice(1);
+ },
+ makeIPTrafLink: function(IP){
+ return WordfenceAdminVars.siteBaseURL + '?_wfsf=IPTraf&nonce=' + this.nonce + '&IP=' + encodeURIComponent(IP);
+ },
+ makeDiffLink: function(dat){
+ return WordfenceAdminVars.siteBaseURL + '?_wfsf=diff&nonce=' + this.nonce +
+ '&file=' + encodeURIComponent(this.es(dat['file'])) +
+ '&cType=' + encodeURIComponent(this.es(dat['cType'])) +
+ '&cKey=' + encodeURIComponent(this.es(dat['cKey'])) +
+ '&cName=' + encodeURIComponent(this.es(dat['cName'])) +
+ '&cVersion=' + encodeURIComponent(this.es(dat['cVersion']));
+ },
+ makeViewFileLink: function(file){
+ return WordfenceAdminVars.siteBaseURL + '?_wfsf=view&nonce=' + this.nonce + '&file=' + encodeURIComponent(file);
+ },
+ makeTimeAgo: function(t){
+ var months = Math.floor(t / (86400 * 30));
+ var days = Math.floor(t / 86400);
+ var hours = Math.floor(t / 3600);
+ var minutes = Math.floor(t / 60);
+ if(months > 0){
+ days -= months * 30;
+ return this.pluralize(months, 'month', days, 'day');
+ } else if(days > 0){
+ hours -= days * 24;
+ return this.pluralize(days, 'day', hours, 'hour');
+ } else if(hours > 0) {
+ minutes -= hours * 60;
+ return this.pluralize(hours, 'hour', minutes, 'min');
+ } else if(minutes > 0) {
+ //t -= minutes * 60;
+ return this.pluralize(minutes, 'minute');
+ } else {
+ return Math.round(t) + " seconds";
+ }
+ },
+ pluralize: function(m1, t1, m2, t2){
+ if(m1 != 1) {
+ t1 = t1 + 's';
+ }
+ if(m2 != 1) {
+ t2 = t2 + 's';
+ }
+ if(m1 && m2){
+ return m1 + ' ' + t1 + ' ' + m2 + ' ' + t2;
+ } else {
+ return m1 + ' ' + t1;
+ }
+ },
+ calcRangeTotal: function(){
+ var range = jQuery('#ipRange').val();
+ if(! range){ return; }
+ range = range.replace(/ /g, '');
+ if(range && /^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\s*\-\s*\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.test(range)){
+ var ips = range.split('-');
+ var total = this.inet_aton(ips[1]) - this.inet_aton(ips[0]) + 1;
+ if(total < 1){
+ jQuery('#wfShowRangeTotal').html("Invalid. Starting IP is greater than ending IP. ");
+ return;
+ }
+ jQuery('#wfShowRangeTotal').html("Valid: " + total + " addresses in range. ");
+ } else {
+ jQuery('#wfShowRangeTotal').empty();
+ }
+ },
+ loadBlockRanges: function(){
+ var self = this;
+ this.ajax('wordfence_loadBlockRanges', {}, function(res){ self.completeLoadBlockRanges(res); });
+
+ },
+ completeLoadBlockRanges: function(res){
+ jQuery('#currentBlocks').empty();
+ if(res.results && res.results.length > 0){
+ jQuery('#wfBlockedRangesTmpl').tmpl(res).prependTo('#currentBlocks');
+ } else {
+ jQuery('#currentBlocks').html("You have not blocked any IP ranges or other patterns yet.");
+ }
+ },
+ whois: function(val){
+ val = val.replace(' ','');
+ if( ! /\w+/.test(val)){
+ this.colorbox('300px', "Enter a valid IP or domain", "Please enter a valid IP address or domain name for your whois lookup.");
+ return;
+ }
+ var self = this;
+ jQuery('#whoisbutton').attr('disabled', 'disabled');
+ jQuery('#whoisbutton').attr('value', 'Loading...');
+ this.ajax('wordfence_whois', {
+ val: val
+ }, function(res){
+ jQuery('#whoisbutton').removeAttr('disabled');
+ jQuery('#whoisbutton').attr('value', 'Look up IP or Domain');
+ if(res.ok){
+ self.completeWhois(res);
+ }
+ });
+ },
+ completeWhois: function(res){
+ if(res.ok && res.result && res.result.rawdata && res.result.rawdata.length > 0){
+ var rawhtml = "";
+ for(var i = 0; i < res.result.rawdata.length; i++){
+ res.result.rawdata[i] = jQuery('
').text(res.result.rawdata[i]).html();
+ res.result.rawdata[i] = res.result.rawdata[i].replace(/([^\s\t\r\n:;]+@[^\s\t\r\n:;\.]+\.[^\s\t\r\n:;]+)/, "$1<\/a>");
+ res.result.rawdata[i] = res.result.rawdata[i].replace(/(https?:\/\/[^\/]+[^\s\r\n\t]+)/, " $1<\/a>");
+ var redStyle = "";
+ if(this.getQueryParam('wfnetworkblock')){
+ redStyle = " style=\"color: #F00;\"";
+ }
+ var self = this;
+ function wfm21(str, ipRange, offset, totalStr){
+ var ips = ipRange.split(/\s*\-\s*/);
+ var ip1num = self.inet_aton(ips[0]);
+ var ip2num = self.inet_aton(ips[1]);
+ var totalIPs = ip2num - ip1num + 1;
+ return " " + ipRange + " [" + totalIPs + " addresses in this network. Click to block this network]<\/a>";
+ }
+
+ res.result.rawdata[i] = res.result.rawdata[i].replace(/(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3} - \d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3})/, wfm21);
+ rawhtml += res.result.rawdata[i] + " ";
+ }
+ jQuery('#wfrawhtml').html(rawhtml);
+ } else {
+ jQuery('#wfrawhtml').html('Sorry, but no data for that IP or domain was found. ');
+ }
+ },
+ blockIPUARange: function(ipRange, uaRange, reason){
+ if(! /\w+/.test(reason)){
+ this.colorbox('300px', "Please specify a reason", "You forgot to include a reason you're blocking this IP range. We ask you to include this for your own record keeping.");
+ return;
+ }
+ ipRange = ipRange.replace(/ /g, '');
+ if(ipRange){
+ if(! /^\d+\.\d+\.\d+\.\d+\-\d+\.\d+\.\d+\.\d+$/.test(ipRange)){
+ this.colorbox('300px', 'Specify a valid IP range', "Please specify a valid IP address range in the form of \"1.2.3.4 - 1.2.3.5\" without quotes. Make sure the dash between the IP addresses in a normal dash (a minus sign on your keyboard) and not another character that looks like a dash.");
+ return;
+ }
+ }
+ if( ! (/\w+/.test(ipRange) || /\w+/.test(uaRange))){
+ this.colorbox('300px', 'Specify an IP range or Browser pattern', "Please specify either an IP address range or a web browser pattern to match.");
+ return;
+ }
+ var self = this;
+ this.ajax('wordfence_blockIPUARange', {
+ ipRange: ipRange,
+ uaRange: uaRange,
+ reason: reason
+ }, function(res){
+ if(res.ok){
+ self.loadBlockRanges();
+ return;
+ }
+ });
+ },
+ unblockRange: function(id){
+ var self = this;
+ this.ajax('wordfence_unblockRange', {
+ id: id
+ }, function(res){
+ self.loadBlockRanges();
+ });
+ },
+ blockIP: function(IP, reason){
+ var self = this;
+ this.ajax('wordfence_blockIP', {
+ IP: IP,
+ reason: reason
+ }, function(res){
+ if(res.errorMsg){
+ return;
+ } else {
+ self.reloadActivities();
+ }
+ });
+ },
+ blockIPTwo: function(IP, reason, perm){
+ var self = this;
+ this.ajax('wordfence_blockIP', {
+ IP: IP,
+ reason: reason,
+ perm: (perm ? '1' : '0')
+ }, function(res){
+ if(res.errorMsg){
+ return;
+ } else {
+ self.staticTabChanged();
+ }
+ });
+ },
+ unlockOutIP: function(IP){
+ var self = this;
+ this.ajax('wordfence_unlockOutIP', {
+ IP: IP
+ }, function(res){ self.staticTabChanged(); });
+ },
+ unblockIP: function(IP){
+ var self = this;
+ this.ajax('wordfence_unblockIP', {
+ IP: IP
+ }, function(res){
+ self.reloadActivities();
+ });
+ },
+ unblockIPTwo: function(IP){
+ var self = this;
+ this.ajax('wordfence_unblockIP', {
+ IP: IP
+ }, function(res){
+ self.staticTabChanged();
+ });
+ },
+ permBlockIP: function(IP){
+ var self = this;
+ this.ajax('wordfence_permBlockIP', {
+ IP: IP
+ }, function(res){ self.staticTabChanged(); });
+ },
+ makeElemID: function(){
+ return 'wfElemGen' + this.elementGeneratorIter++;
+ },
+ pulse: function(sel){
+ jQuery(sel).fadeIn(function(){
+ setTimeout(function(){ jQuery(sel).fadeOut(); }, 2000);
+ });
+ },
+ getCacheStats: function(){
+ var self = this;
+ this.ajax('wordfence_getCacheStats', {}, function(res){
+ if(res.ok){
+ self.colorbox('400px', res.heading, res.body);
+ }
+ });
+ },
+ clearPageCache: function(){
+ var self = this;
+ this.ajax('wordfence_clearPageCache', {}, function(res){
+ if(res.ok){
+ self.colorbox('400px', res.heading, res.body);
+ }
+ });
+ },
+ switchToFalcon: function(){
+ var self = this;
+ this.ajax('wordfence_checkFalconHtaccess', {
+ }, function(res){
+ if(res.ok){
+ self.colorbox('400px', "Enabling Falcon Engine", 'First read this Introduction to Falcon Engine . Falcon modifies your website configuration file which is called your .htaccess file. To enable Falcon we ask that you make a backup of this file. This is a safety precaution in case for some reason Falcon is not compatible with your site.Click here to download a backup copy of your .htaccess file now ');
+ } else if(res.nginx){
+ self.colorbox('400px', "Enabling Falcon Engine", 'You are using an Nginx web server and using a FastCGI processor like PHP5-FPM. To use Falcon you will need to manually modify your nginx.conf configuration file and reload your Nginx server for the changes to take effect. You can find the rules you need to make these changes to nginx.conf on this page on wordfence.com . Once you have made these changes, compressed cached files will be served to your visitors directly from Nginx making your site extremely fast. When you have made the changes and reloaded your Nginx server, you can click the button below to enable Falcon. ');
+ } else if(res.err){
+ self.colorbox('400px', "We encountered a problem", "We can't modify your .htaccess file for you because: " + res.err + " Advanced users: If you would like to manually enable Falcon yourself by editing your .htaccess, you can add the rules below to the beginning of your .htaccess file. Then click the button below to enable Falcon. Don't do this unless you understand website configuration." + jQuery('
').text(res.code).html() + " ");
+ }
+ });
+ },
+ confirmSwitchToFalcon: function(noEditHtaccess){
+ jQuery.colorbox.close();
+ var cacheType = 'falcon';
+ var self = this;
+ this.ajax('wordfence_saveCacheConfig', {
+ cacheType: cacheType,
+ noEditHtaccess: noEditHtaccess
+ }, function(res){
+ if(res.ok){
+ self.colorbox('400px', res.heading, res.body);
+ }
+ }
+ );
+ },
+ saveCacheConfig: function(){
+ var cacheType = jQuery('input:radio[name=cacheType]:checked').val();
+ if(cacheType == 'falcon'){
+ return this.switchToFalcon();
+ }
+ var self = this;
+ this.ajax('wordfence_saveCacheConfig', {
+ cacheType: cacheType
+ }, function(res){
+ if(res.ok){
+ self.colorbox('400px', res.heading, res.body);
+ }
+ }
+ );
+ },
+ saveCacheOptions: function(){
+ var self = this;
+ this.ajax('wordfence_saveCacheOptions', {
+ allowHTTPSCaching: (jQuery('#wfallowHTTPSCaching').is(':checked') ? 1 : 0),
+ addCacheComment: (jQuery('#wfaddCacheComment').is(':checked') ? 1 : 0),
+ clearCacheSched: (jQuery('#wfclearCacheSched').is(':checked') ? 1 : 0)
+ }, function(res){
+ if(res.updateErr){
+ self.colorbox('400px', "You need to manually update your .htaccess", res.updateErr + " Your option was updated but you need to change the Wordfence code in your .htaccess to the following:" + jQuery('
').text(res.code).html() + ' ');
+ }
+ }
+ );
+ },
+ saveConfig: function(){
+ var qstr = jQuery('#wfConfigForm').serialize();
+ var self = this;
+ jQuery('.wfSavedMsg').hide();
+ jQuery('.wfAjax24').show();
+ this.ajax('wordfence_saveConfig', qstr, function(res){
+ jQuery('.wfAjax24').hide();
+ if(res.ok){
+ if(res['paidKeyMsg']){
+ self.colorbox('400px', "Congratulations! You have been upgraded to Premium Scanning.", "You have upgraded to a Premium API key. Once this page reloads, you can choose which premium scanning options you would like to enable and then click save. Click the button below to reload this page now. ");
+ return;
+ } else if(res['reload'] == 'reload' || WFAD.reloadConfigPage){
+ self.colorbox('400px', "Please reload this page", "You selected a config option that requires a page reload. Click the button below to reload this page to update the menu. ");
+ return;
+ } else {
+ self.pulse('.wfSavedMsg');
+ }
+ } else if(res.errorMsg){
+ return;
+ } else {
+ self.colorbox('400px', 'An error occurred', 'We encountered an error trying to save your changes.');
+ }
+ });
+ },
+ changeSecurityLevel: function(){
+ var level = jQuery('#securityLevel').val();
+ for(var k in WFSLevels[level].checkboxes){
+ if(k != 'liveTraf_ignorePublishers'){
+ jQuery('#' + k).prop("checked", WFSLevels[level].checkboxes[k]);
+ }
+ }
+ for(var k in WFSLevels[level].otherParams){
+ if(! /^(?:apiKey|securityLevel|alertEmails|liveTraf_ignoreUsers|liveTraf_ignoreIPs|liveTraf_ignoreUA|liveTraf_hitsMaxSize|maxMem|maxExecutionTime|actUpdateInterval)$/.test(k)){
+ jQuery('#' + k).val(WFSLevels[level].otherParams[k]);
+ }
+ }
+ },
+ clearAllBlocked: function(op){
+ if(op == 'blocked'){
+ body = "Are you sure you want to clear all blocked IP addresses and allow visitors from those addresses to access the site again?";
+ } else if(op == 'locked'){
+ body = "Are you sure you want to clear all locked IP addresses and allow visitors from those addresses to sign in again?";
+ } else {
+ return;
+ }
+ this.colorbox('450px', "Please confirm", body +
+ ' ' +
+ ' ');
+ },
+ confirmClearAllBlocked: function(op){
+ var self = this;
+ this.ajax('wordfence_clearAllBlocked', { op: op }, function(res){
+ self.staticTabChanged();
+ });
+ },
+ setOwnCountry: function(code){
+ this.ownCountry = (code + "").toUpperCase();
+ },
+ loadBlockedCountries: function(str){
+ var codes = str.split(',');
+ for(var i = 0; i < codes.length; i++){
+ jQuery('#wfCountryCheckbox_' + codes[i]).prop('checked', true);
+ }
+ },
+ saveCountryBlocking: function(){
+ var action = jQuery('#wfBlockAction').val();
+ var redirURL = jQuery('#wfRedirURL').val();
+ var bypassRedirURL = jQuery('#wfBypassRedirURL').val();
+ var bypassRedirDest = jQuery('#wfBypassRedirDest').val();
+ var bypassViewURL = jQuery('#wfBypassViewURL').val();
+
+ if(action == 'redir' && (! /^https?:\/\/[^\/]+/i.test(redirURL))){
+ this.colorbox('400px', "Please enter a URL for redirection", "You have chosen to redirect blocked countries to a specific page. You need to enter a URL in the text box provided that starts with http:// or https://");
+ return;
+ }
+ if( bypassRedirURL || bypassRedirDest ){
+ if(! (bypassRedirURL && bypassRedirDest)){
+ this.colorbox('400px', "Missing data from form", "If you want to set up a URL that will bypass country blocking, you must enter a URL that a visitor can hit and the destination they will be redirected to. You have only entered one of these components. Please enter both.");
+ return;
+ }
+ if(bypassRedirURL == bypassRedirDest){
+ this.colorbox('400px', "URLs are the same", "The URL that a user hits to bypass country blocking and the URL they are redirected to are the same. This would cause a circular redirect. Please fix this.");
+ return;
+ }
+ }
+ if(bypassRedirURL && (! /^(?:\/|http:\/\/)/.test(bypassRedirURL))){ this.invalidCountryURLMsg(bypassRedirURL); return; }
+ if(bypassRedirDest && (! /^(?:\/|http:\/\/)/.test(bypassRedirDest))){ this.invalidCountryURLMsg(bypassRedirDest); return; }
+ if(bypassViewURL && (! /^(?:\/|http:\/\/)/.test(bypassViewURL))){ this.invalidCountryURLMsg(bypassViewURL); return; }
+
+ var codesArr = [];
+ var ownCountryBlocked = false;
+ var self = this;
+ jQuery('.wfCountryCheckbox').each(function(idx, elem){
+ if(jQuery(elem).is(':checked')){
+ var code = jQuery(elem).val();
+ codesArr.push(code);
+ if(code == self.ownCountry){
+ ownCountryBlocked = true;
+ }
+ }
+ });
+ var codes = codesArr.join(',');
+ this.countryCodesToSave = codes;
+ if(ownCountryBlocked){
+ this.colorbox('400px', "Please confirm blocking yourself", "You are about to block your own country. This could lead to you being locked out. Please make sure that your user profile on this machine has a current and valid email address and make sure you know what it is. That way if you are locked out, you can send yourself an unlock email. If you're sure you want to block your own country, click 'Confirm' below, otherwise click 'Cancel'. " +
+ ' ');
+ } else {
+ this.confirmSaveCountryBlocking();
+ }
+ },
+ invalidCountryURLMsg: function(URL){
+ this.colorbox('400px', "Invalid URL", "URL's that you provide for bypassing country blocking must start with '/' or 'http://' without quotes. The URL that is invalid is: " + URL);
+ return;
+ },
+ confirmSaveCountryBlocking: function(){
+ var action = jQuery('#wfBlockAction').val();
+ var redirURL = jQuery('#wfRedirURL').val();
+ var loggedInBlocked = jQuery('#wfLoggedInBlocked').is(':checked') ? '1' : '0';
+ var loginFormBlocked = jQuery('#wfLoginFormBlocked').is(':checked') ? '1' : '0';
+ var restOfSiteBlocked = jQuery('#wfRestOfSiteBlocked').is(':checked') ? '1' : '0';
+ var bypassRedirURL = jQuery('#wfBypassRedirURL').val();
+ var bypassRedirDest = jQuery('#wfBypassRedirDest').val();
+ var bypassViewURL = jQuery('#wfBypassViewURL').val();
+
+ jQuery('.wfAjax24').show();
+ var self = this;
+ this.ajax('wordfence_saveCountryBlocking', {
+ blockAction: action,
+ redirURL: redirURL,
+ loggedInBlocked: loggedInBlocked,
+ loginFormBlocked: loginFormBlocked,
+ restOfSiteBlocked: restOfSiteBlocked,
+ bypassRedirURL: bypassRedirURL,
+ bypassRedirDest: bypassRedirDest,
+ bypassViewURL: bypassViewURL,
+ codes: this.countryCodesToSave
+ }, function(res){
+ jQuery('.wfAjax24').hide();
+ self.pulse('.wfSavedMsg');
+ });
+ },
+ paidUsersOnly: function(msg){
+ var pos = jQuery('#paidWrap').position();
+ var width = jQuery('#paidWrap').width();
+ var height = jQuery('#paidWrap').height();
+ jQuery('').insertAfter('#paidWrap').fadeTo(10000, 0.7);
+ },
+ sched_modeChange: function(){
+ var self = this;
+ if(jQuery('#schedMode').val() == 'auto'){
+ jQuery('.wfSchedCheckbox').attr('disabled', true);
+ } else {
+ jQuery('.wfSchedCheckbox').attr('disabled', false);
+ }
+ },
+ sched_shortcut: function(mode){
+ if(jQuery('#schedMode').val() == 'auto'){
+ this.colorbox('400px', 'Change the scan mode', "You need to change the scan mode to manually scheduled scans if you want to select scan times.");
+ return;
+ }
+ jQuery('.wfSchedCheckbox').prop('checked', false);
+ if(this.schedStartHour === false){
+ this.schedStartHour = Math.floor((Math.random()*24));
+ } else {
+ this.schedStartHour++;
+ if(this.schedStartHour > 23){
+ this.schedStartHour = 0;
+ }
+ }
+ if(mode == 'onceDaily'){
+ for(var i = 0; i <= 6; i++){
+ jQuery('#wfSchedDay_' + i + '_' + this.schedStartHour).attr('checked', true);
+ }
+ } else if(mode == 'twiceDaily'){
+ var secondHour = this.schedStartHour + 12;
+ if(secondHour >= 24){ secondHour = secondHour - 24; }
+ for(var i = 0; i <= 6; i++){
+ jQuery('#wfSchedDay_' + i + '_' + this.schedStartHour).attr('checked', true);
+ jQuery('#wfSchedDay_' + i + '_' + secondHour).attr('checked', true);
+ }
+ } else if(mode == 'oddDaysWE'){
+ var startDay = Math.floor((Math.random()));
+ jQuery('#wfSchedDay_1_' + this.schedStartHour).attr('checked', true);
+ jQuery('#wfSchedDay_3_' + this.schedStartHour).attr('checked', true);
+ jQuery('#wfSchedDay_5_' + this.schedStartHour).attr('checked', true);
+ jQuery('#wfSchedDay_6_' + this.schedStartHour).attr('checked', true);
+ jQuery('#wfSchedDay_0_' + this.schedStartHour).attr('checked', true);
+ } else if(mode == 'weekends'){
+ var startDay = Math.floor((Math.random()));
+ jQuery('#wfSchedDay_6_' + this.schedStartHour).attr('checked', true);
+ jQuery('#wfSchedDay_0_' + this.schedStartHour).attr('checked', true);
+ } else if(mode == 'every6hours'){
+ for(var i = 0; i <= 6; i++){
+ for(var hour = this.schedStartHour; hour < this.schedStartHour + 24; hour = hour + 6){
+ var displayHour = hour;
+ if(displayHour >= 24){ displayHour = displayHour - 24; }
+ jQuery('#wfSchedDay_' + i + '_' + displayHour).attr('checked', true);
+ }
+ }
+ }
+
+ },
+ sched_save: function(){
+ var schedMode = jQuery('#schedMode').val();
+ var schedule = [];
+ for(var day = 0; day <= 6; day++){
+ var hours = [];
+ for(var hour = 0; hour <= 23; hour++){
+ var elemID = '#wfSchedDay_' + day + '_' + hour;
+ hours[hour] = jQuery(elemID).is(':checked') ? '1' : '0';
+ }
+ schedule[day] = hours.join(',');
+ }
+ scheduleTxt = schedule.join('|');
+ var self = this;
+ this.ajax('wordfence_saveScanSchedule', {
+ schedMode: schedMode,
+ schedTxt: scheduleTxt
+ }, function(res){
+ jQuery('#wfScanStartTime').html(res.nextStart);
+ jQuery('.wfAjax24').hide();
+ self.pulse('.wfSaveMsg');
+ });
+ },
+ twoFacStatus: function(msg){
+ jQuery('#wfTwoFacMsg').html(msg);
+ jQuery('#wfTwoFacMsg').fadeIn(function(){
+ setTimeout(function(){ jQuery('#wfTwoFacMsg').fadeOut(); }, 2000);
+ });
+ },
+ addTwoFactor: function(username, phone){
+ var self = this;
+ this.ajax('wordfence_addTwoFactor', {
+ username: username,
+ phone: phone
+ }, function(res){
+ if(res.ok){
+ self.twoFacStatus('User added! Check the user\'s phone to get the activation code.');
+ jQuery('' + jQuery('#wfTwoFacUserTmpl').tmpl(res).html() + '
').prependTo(jQuery('#wfTwoFacUsers'));
+ }
+ });
+ },
+ twoFacActivate: function(userID, code){
+ var self = this;
+ this.ajax('wordfence_twoFacActivate', {
+ userID: userID,
+ code: code
+ }, function(res){
+ if(res.ok){
+ jQuery('#twoFacCont_' + res.userID).html(
+ jQuery('#wfTwoFacUserTmpl').tmpl(res)
+ );
+ self.twoFacStatus('Cellphone Sign-in activated for user.');
+ }
+ });
+ },
+ delTwoFac: function(userID){
+ this.ajax('wordfence_twoFacDel', {
+ userID: userID
+ }, function(res){
+ if(res.ok){
+ jQuery('#twoFacCont_' + res.userID).fadeOut(function(){ jQuery(this).remove(); });
+ }
+ });
+ },
+ loadTwoFactor: function(){
+ this.ajax('wordfence_loadTwoFactor', {}, function(res){
+ if(res.users && res.users.length > 0){
+ for(var i = 0; i < res.users.length; i++){
+ jQuery('' +
+ jQuery('#wfTwoFacUserTmpl').tmpl(res.users[i]).html() +
+ + '
').appendTo(jQuery('#wfTwoFacUsers'));
+ }
+ }
+ });
+ },
+ getQueryParam: function(name){
+ name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
+ var regexS = "[\\?&]" + name + "=([^]*)";
+ var regex = new RegExp(regexS);
+ var results = regex.exec(window.location.search);
+ if(results == null){
+ return "";
+ } else {
+ return decodeURIComponent(results[1].replace(/\+/g, " "));
+ }
+ },
+ inet_aton: function(dot) {
+ var d = dot.split('.');
+ return ((((((+d[0])*256)+(+d[1]))*256)+(+d[2]))*256)+(+d[3]);
+ },
+ inet_ntoa: function(num){
+ var d = num % 256;
+ for(var i = 3; i > 0; i--) {
+ num = Math.floor(num/256);
+ d = num%256 + '.' + d;
+ }
+ return d;
+ },
+ removeCacheExclusion: function(id){
+ this.ajax('wordfence_removeCacheExclusion', { id: id }, function(res){ window.location.reload(true); });
+ },
+ addCacheExclusion: function(patternType, pattern){
+ if(/^https?:\/\//.test(pattern)){
+ this.colorbox('400px', "Incorrect pattern for exclusion", "You can not enter full URL's for exclusion from caching. You entered a full URL that started with http:// or https://. You must enter relative URL's e.g. /exclude/this/page/. You can also enter text that might be contained in the path part of a URL or at the end of the path part of a URL.");
+ return;
+ }
+
+ this.ajax('wordfence_addCacheExclusion', {
+ patternType: patternType,
+ pattern: pattern
+ }, function(res){
+ if(res.ok){ //Otherwise errorMsg will get caught
+ window.location.reload(true);
+ }
+ });
+ },
+ loadCacheExclusions: function(){
+ this.ajax('wordfence_loadCacheExclusions', {}, function(res){
+ if(res.ex instanceof Array && res.ex.length > 0){
+ for(var i = 0; i < res.ex.length; i++){
+ var newElem = jQuery('#wfCacheExclusionTmpl').tmpl(res.ex[i]);
+ newElem.prependTo('#wfCacheExclusions').fadeIn();
+ }
+ jQuery('Cache Exclusions ').prependTo('#wfCacheExclusions');
+ } else {
+ jQuery('Cache Exclusions There are not currently any exclusions. If you have a site that does not change often, it is perfectly normal to not have any pages you want to exclude from the cache.
').prependTo('#wfCacheExclusions');
+ }
+
+ });
+ }
+};
+window['WFAD'] = window['wordfenceAdmin'];
+}
+jQuery(function(){
+ wordfenceAdmin.init();
+});
diff --git a/wp-content/plugins/wordfence/js/jquery.colorbox-min.js b/wp-content/plugins/wordfence/js/jquery.colorbox-min.js
new file mode 100644
index 0000000..e84ff66
--- /dev/null
+++ b/wp-content/plugins/wordfence/js/jquery.colorbox-min.js
@@ -0,0 +1,4 @@
+// ColorBox v1.3.19 - jQuery lightbox plugin
+// (c) 2011 Jack Moore - jacklmoore.com
+// License: http://www.opensource.org/licenses/mit-license.php
+(function(a,b,c){function Z(c,d,e){var g=b.createElement(c);return d&&(g.id=f+d),e&&(g.style.cssText=e),a(g)}function $(a){var b=y.length,c=(Q+a)%b;return c<0?b+c:c}function _(a,b){return Math.round((/%/.test(a)?(b==="x"?z.width():z.height())/100:1)*parseInt(a,10))}function ba(a){return K.photo||/\.(gif|png|jpe?g|bmp|ico)((#|\?).*)?$/i.test(a)}function bb(){var b;K=a.extend({},a.data(P,e));for(b in K)a.isFunction(K[b])&&b.slice(0,2)!=="on"&&(K[b]=K[b].call(P));K.rel=K.rel||P.rel||"nofollow",K.href=K.href||a(P).attr("href"),K.title=K.title||P.title,typeof K.href=="string"&&(K.href=a.trim(K.href))}function bc(b,c){a.event.trigger(b),c&&c.call(P)}function bd(){var a,b=f+"Slideshow_",c="click."+f,d,e,g;K.slideshow&&y[1]?(d=function(){F.text(K.slideshowStop).unbind(c).bind(j,function(){if(K.loop||y[Q+1])a=setTimeout(W.next,K.slideshowSpeed)}).bind(i,function(){clearTimeout(a)}).one(c+" "+k,e),r.removeClass(b+"off").addClass(b+"on"),a=setTimeout(W.next,K.slideshowSpeed)},e=function(){clearTimeout(a),F.text(K.slideshowStart).unbind([j,i,k,c].join(" ")).one(c,function(){W.next(),d()}),r.removeClass(b+"on").addClass(b+"off")},K.slideshowAuto?d():e()):r.removeClass(b+"off "+b+"on")}function be(b){U||(P=b,bb(),y=a(P),Q=0,K.rel!=="nofollow"&&(y=a("."+g).filter(function(){var b=a.data(this,e).rel||this.rel;return b===K.rel}),Q=y.index(P),Q===-1&&(y=y.add(P),Q=y.length-1)),S||(S=T=!0,r.show(),K.returnFocus&&a(P).blur().one(l,function(){a(this).focus()}),q.css({opacity:+K.opacity,cursor:K.overlayClose?"pointer":"auto"}).show(),K.w=_(K.initialWidth,"x"),K.h=_(K.initialHeight,"y"),W.position(),o&&z.bind("resize."+p+" scroll."+p,function(){q.css({width:z.width(),height:z.height(),top:z.scrollTop(),left:z.scrollLeft()})}).trigger("resize."+p),bc(h,K.onOpen),J.add(D).hide(),I.html(K.close).show()),W.load(!0))}function bf(){!r&&b.body&&(Y=!1,z=a(c),r=Z(X).attr({id:e,"class":n?f+(o?"IE6":"IE"):""}).hide(),q=Z(X,"Overlay",o?"position:absolute":"").hide(),s=Z(X,"Wrapper"),t=Z(X,"Content").append(A=Z(X,"LoadedContent","width:0; height:0; overflow:hidden"),C=Z(X,"LoadingOverlay").add(Z(X,"LoadingGraphic")),D=Z(X,"Title"),E=Z(X,"Current"),G=Z(X,"Next"),H=Z(X,"Previous"),F=Z(X,"Slideshow").bind(h,bd),I=Z(X,"Close")),s.append(Z(X).append(Z(X,"TopLeft"),u=Z(X,"TopCenter"),Z(X,"TopRight")),Z(X,!1,"clear:left").append(v=Z(X,"MiddleLeft"),t,w=Z(X,"MiddleRight")),Z(X,!1,"clear:left").append(Z(X,"BottomLeft"),x=Z(X,"BottomCenter"),Z(X,"BottomRight"))).find("div div").css({"float":"left"}),B=Z(X,!1,"position:absolute; width:9999px; visibility:hidden; display:none"),J=G.add(H).add(E).add(F),a(b.body).append(q,r.append(s,B)))}function bg(){return r?(Y||(Y=!0,L=u.height()+x.height()+t.outerHeight(!0)-t.height(),M=v.width()+w.width()+t.outerWidth(!0)-t.width(),N=A.outerHeight(!0),O=A.outerWidth(!0),r.css({"padding-bottom":L,"padding-right":M}),G.click(function(){W.next()}),H.click(function(){W.prev()}),I.click(function(){W.close()}),q.click(function(){K.overlayClose&&W.close()}),a(b).bind("keydown."+f,function(a){var b=a.keyCode;S&&K.escKey&&b===27&&(a.preventDefault(),W.close()),S&&K.arrowKey&&y[1]&&(b===37?(a.preventDefault(),H.click()):b===39&&(a.preventDefault(),G.click()))}),a("."+g,b).live("click",function(a){a.which>1||a.shiftKey||a.altKey||a.metaKey||(a.preventDefault(),be(this))})),!0):!1}var d={transition:"elastic",speed:300,width:!1,initialWidth:"600",innerWidth:!1,maxWidth:!1,height:!1,initialHeight:"450",innerHeight:!1,maxHeight:!1,scalePhotos:!0,scrolling:!0,inline:!1,html:!1,iframe:!1,fastIframe:!0,photo:!1,href:!1,title:!1,rel:!1,opacity:.9,preloading:!0,current:"image {current} of {total}",previous:"previous",next:"next",close:"close",open:!1,returnFocus:!0,reposition:!0,loop:!0,slideshow:!1,slideshowAuto:!0,slideshowSpeed:2500,slideshowStart:"start slideshow",slideshowStop:"stop slideshow",onOpen:!1,onLoad:!1,onComplete:!1,onCleanup:!1,onClosed:!1,overlayClose:!0,escKey:!0,arrowKey:!0,top:!1,bottom:!1,left:!1,right:!1,fixed:!1,data:undefined},e="colorbox",f="cbox",g=f+"Element",h=f+"_open",i=f+"_load",j=f+"_complete",k=f+"_cleanup",l=f+"_closed",m=f+"_purge",n=!a.support.opacity&&!a.support.style,o=n&&!c.XMLHttpRequest,p=f+"_IE6",q,r,s,t,u,v,w,x,y,z,A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X="div",Y;if(a.colorbox)return;a(bf),W=a.fn[e]=a[e]=function(b,c){var f=this;b=b||{},bf();if(bg()){if(!f[0]){if(f.selector)return f;f=a(" "),b.open=!0}c&&(b.onComplete=c),f.each(function(){a.data(this,e,a.extend({},a.data(this,e)||d,b))}).addClass(g),(a.isFunction(b.open)&&b.open.call(f)||b.open)&&be(f[0])}return f},W.position=function(a,b){function i(a){u[0].style.width=x[0].style.width=t[0].style.width=a.style.width,t[0].style.height=v[0].style.height=w[0].style.height=a.style.height}var c=0,d=0,e=r.offset(),g=z.scrollTop(),h=z.scrollLeft();z.unbind("resize."+f),r.css({top:-9e4,left:-9e4}),K.fixed&&!o?(e.top-=g,e.left-=h,r.css({position:"fixed"})):(c=g,d=h,r.css({position:"absolute"})),K.right!==!1?d+=Math.max(z.width()-K.w-O-M-_(K.right,"x"),0):K.left!==!1?d+=_(K.left,"x"):d+=Math.round(Math.max(z.width()-K.w-O-M,0)/2),K.bottom!==!1?c+=Math.max(z.height()-K.h-N-L-_(K.bottom,"y"),0):K.top!==!1?c+=_(K.top,"y"):c+=Math.round(Math.max(z.height()-K.h-N-L,0)/2),r.css({top:e.top,left:e.left}),a=r.width()===K.w+O&&r.height()===K.h+N?0:a||0,s[0].style.width=s[0].style.height="9999px",r.dequeue().animate({width:K.w+O,height:K.h+N,top:c,left:d},{duration:a,complete:function(){i(this),T=!1,s[0].style.width=K.w+O+M+"px",s[0].style.height=K.h+N+L+"px",K.reposition&&setTimeout(function(){z.bind("resize."+f,W.position)},1),b&&b()},step:function(){i(this)}})},W.resize=function(a){S&&(a=a||{},a.width&&(K.w=_(a.width,"x")-O-M),a.innerWidth&&(K.w=_(a.innerWidth,"x")),A.css({width:K.w}),a.height&&(K.h=_(a.height,"y")-N-L),a.innerHeight&&(K.h=_(a.innerHeight,"y")),!a.innerHeight&&!a.height&&(A.css({height:"auto"}),K.h=A.height()),A.css({height:K.h}),W.position(K.transition==="none"?0:K.speed))},W.prep=function(b){function g(){return K.w=K.w||A.width(),K.w=K.mw&&K.mw1){typeof K.current=="string"&&E.html(K.current.replace("{current}",Q+1).replace("{total}",g)).show(),G[K.loop||QK.mw&&(a=(R.width-K.mw)/R.width,d()),K.mh&&R.height>K.mh&&(a=(R.height-K.mh)/R.height,d())),K.h&&(R.style.marginTop=Math.max(K.h-R.height,0)/2+"px"),y[1]&&(K.loop||y[Q+1])&&(R.style.cursor="pointer",R.onclick=function(){W.next()}),n&&(R.style.msInterpolationMode="bicubic"),setTimeout(function(){e(R)},1)}),setTimeout(function(){R.src=c},1)):c&&B.load(c,K.data,function(b,c,d){e(c==="error"?Z(X,"Error").text("Request unsuccessful: "+d.statusText):a(this).contents())})},W.next=function(){!T&&y[1]&&(K.loop||y[Q+1])&&(Q=$(1),W.load())},W.prev=function(){!T&&y[1]&&(K.loop||Q)&&(Q=$(-1),W.load())},W.close=function(){S&&!U&&(U=!0,S=!1,bc(k,K.onCleanup),z.unbind("."+f+" ."+p),q.fadeTo(200,0),r.stop().fadeTo(300,0,function(){r.add(q).css({opacity:1,cursor:"auto"}).hide(),bc(m),A.remove(),setTimeout(function(){U=!1,bc(l,K.onClosed)},1)}))},W.remove=function(){a([]).add(r).add(q).remove(),r=null,a("."+g).removeData(e).removeClass(g).die()},W.element=function(){return a(P)},W.settings=d})(jQuery,document,this);
\ No newline at end of file
diff --git a/wp-content/plugins/wordfence/js/jquery.dataTables.min.js b/wp-content/plugins/wordfence/js/jquery.dataTables.min.js
new file mode 100644
index 0000000..4280c6d
--- /dev/null
+++ b/wp-content/plugins/wordfence/js/jquery.dataTables.min.js
@@ -0,0 +1,151 @@
+/*
+ * File: jquery.dataTables.min.js
+ * Version: 1.8.2
+ * Author: Allan Jardine (www.sprymedia.co.uk)
+ * Info: www.datatables.net
+ *
+ * Copyright 2008-2011 Allan Jardine, all rights reserved.
+ *
+ * This source file is free software, under either the GPL v2 license or a
+ * BSD style license, as supplied with this software.
+ *
+ * This source file is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. See the license files for details.
+ */
+(function(i,za,p){i.fn.dataTableSettings=[];var D=i.fn.dataTableSettings;i.fn.dataTableExt={};var n=i.fn.dataTableExt;n.sVersion="1.8.2";n.sErrMode="alert";n.iApiIndex=0;n.oApi={};n.afnFiltering=[];n.aoFeatures=[];n.ofnSearch={};n.afnSortData=[];n.oStdClasses={sPagePrevEnabled:"paginate_enabled_previous",sPagePrevDisabled:"paginate_disabled_previous",sPageNextEnabled:"paginate_enabled_next",sPageNextDisabled:"paginate_disabled_next",sPageJUINext:"",sPageJUIPrev:"",sPageButton:"paginate_button",sPageButtonActive:"paginate_active",
+sPageButtonStaticDisabled:"paginate_button paginate_button_disabled",sPageFirst:"first",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",
+sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:""};n.oJUIClasses={sPagePrevEnabled:"fg-button ui-button ui-state-default ui-corner-left",
+sPagePrevDisabled:"fg-button ui-button ui-state-default ui-corner-left ui-state-disabled",sPageNextEnabled:"fg-button ui-button ui-state-default ui-corner-right",sPageNextDisabled:"fg-button ui-button ui-state-default ui-corner-right ui-state-disabled",sPageJUINext:"ui-icon ui-icon-circle-arrow-e",sPageJUIPrev:"ui-icon ui-icon-circle-arrow-w",sPageButton:"fg-button ui-button ui-state-default",sPageButtonActive:"fg-button ui-button ui-state-default ui-state-disabled",sPageButtonStaticDisabled:"fg-button ui-button ui-state-default ui-state-disabled",
+sPageFirst:"first ui-corner-tl ui-corner-bl",sPagePrevious:"previous",sPageNext:"next",sPageLast:"last ui-corner-tr ui-corner-br",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"ui-state-default",sSortDesc:"ui-state-default",sSortable:"ui-state-default",
+sSortableAsc:"ui-state-default",sSortableDesc:"ui-state-default",sSortableNone:"ui-state-default",sSortColumn:"sorting_",sSortJUIAsc:"css_right ui-icon ui-icon-triangle-1-n",sSortJUIDesc:"css_right ui-icon ui-icon-triangle-1-s",sSortJUI:"css_right ui-icon ui-icon-carat-2-n-s",sSortJUIAscAllowed:"css_right ui-icon ui-icon-carat-1-n",sSortJUIDescAllowed:"css_right ui-icon ui-icon-carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollWrapper:"dataTables_scroll",
+sScrollHead:"dataTables_scrollHead ui-state-default",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot ui-state-default",sScrollFootInner:"dataTables_scrollFootInner",sFooterTH:"ui-state-default"};n.oPagination={two_button:{fnInit:function(g,l,s){var t,w,y;if(g.bJUI){t=p.createElement("a");w=p.createElement("a");y=p.createElement("span");y.className=g.oClasses.sPageJUINext;w.appendChild(y);y=p.createElement("span");y.className=g.oClasses.sPageJUIPrev;
+t.appendChild(y)}else{t=p.createElement("div");w=p.createElement("div")}t.className=g.oClasses.sPagePrevDisabled;w.className=g.oClasses.sPageNextDisabled;t.title=g.oLanguage.oPaginate.sPrevious;w.title=g.oLanguage.oPaginate.sNext;l.appendChild(t);l.appendChild(w);i(t).bind("click.DT",function(){g.oApi._fnPageChange(g,"previous")&&s(g)});i(w).bind("click.DT",function(){g.oApi._fnPageChange(g,"next")&&s(g)});i(t).bind("selectstart.DT",function(){return false});i(w).bind("selectstart.DT",function(){return false});
+if(g.sTableId!==""&&typeof g.aanFeatures.p=="undefined"){l.setAttribute("id",g.sTableId+"_paginate");t.setAttribute("id",g.sTableId+"_previous");w.setAttribute("id",g.sTableId+"_next")}},fnUpdate:function(g){if(g.aanFeatures.p)for(var l=g.aanFeatures.p,s=0,t=l.length;s=w-t){t=w-s+1;x=w}else{t=y-Math.ceil(s/2)+1;x=t+s-1}for(s=t;s<=x;s++)F+=y!=s?''+s+" ":''+s+" ";x=g.aanFeatures.p;var z,$=function(M){g._iDisplayStart=(this.innerHTML*1-1)*g._iDisplayLength;l(g);M.preventDefault()},X=function(){return false};s=0;for(t=x.length;sl?1:0},"string-desc":function(g,l){if(typeof g!="string")g="";if(typeof l!="string")l="";g=g.toLowerCase();l=l.toLowerCase();return gl?-1:0},"html-asc":function(g,l){g=g.replace(/<.*?>/g,"").toLowerCase();l=l.replace(/<.*?>/g,"").toLowerCase();return g<
+l?-1:g>l?1:0},"html-desc":function(g,l){g=g.replace(/<.*?>/g,"").toLowerCase();l=l.replace(/<.*?>/g,"").toLowerCase();return gl?-1:0},"date-asc":function(g,l){g=Date.parse(g);l=Date.parse(l);if(isNaN(g)||g==="")g=Date.parse("01/01/1970 00:00:00");if(isNaN(l)||l==="")l=Date.parse("01/01/1970 00:00:00");return g-l},"date-desc":function(g,l){g=Date.parse(g);l=Date.parse(l);if(isNaN(g)||g==="")g=Date.parse("01/01/1970 00:00:00");if(isNaN(l)||l==="")l=Date.parse("01/01/1970 00:00:00");return l-
+g},"numeric-asc":function(g,l){return(g=="-"||g===""?0:g*1)-(l=="-"||l===""?0:l*1)},"numeric-desc":function(g,l){return(l=="-"||l===""?0:l*1)-(g=="-"||g===""?0:g*1)}};n.aTypes=[function(g){if(typeof g=="number")return"numeric";else if(typeof g!="string")return null;var l,s=false;l=g.charAt(0);if("0123456789-".indexOf(l)==-1)return null;for(var t=1;t")!=-1)return"html";return null}];n.fnVersionCheck=function(g){var l=function(x,v){for(;x.length=parseInt(w,10)};n._oExternConfig={iNextUnique:0};i.fn.dataTable=function(g){function l(){this.fnRecordsTotal=
+function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsTotal,10):this.aiDisplayMaster.length};this.fnRecordsDisplay=function(){return this.oFeatures.bServerSide?parseInt(this._iRecordsDisplay,10):this.aiDisplay.length};this.fnDisplayEnd=function(){return this.oFeatures.bServerSide?this.oFeatures.bPaginate===false||this._iDisplayLength==-1?this._iDisplayStart+this.aiDisplay.length:Math.min(this._iDisplayStart+this._iDisplayLength,this._iRecordsDisplay):this._iDisplayEnd};this.sInstance=
+this.oInstance=null;this.oFeatures={bPaginate:true,bLengthChange:true,bFilter:true,bSort:true,bInfo:true,bAutoWidth:true,bProcessing:false,bSortClasses:true,bStateSave:false,bServerSide:false,bDeferRender:false};this.oScroll={sX:"",sXInner:"",sY:"",bCollapse:false,bInfinite:false,iLoadGap:100,iBarWidth:0,bAutoCss:true};this.aanFeatures=[];this.oLanguage={sProcessing:"Processing...",sLengthMenu:"Show _MENU_ entries",sZeroRecords:"No matching records found",sEmptyTable:"No data available in table",
+sLoadingRecords:"Loading...",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sInfoThousands:",",sSearch:"Search:",sUrl:"",oPaginate:{sFirst:"First",sPrevious:"Previous",sNext:"Next",sLast:"Last"},fnInfoCallback:null};this.aoData=[];this.aiDisplay=[];this.aiDisplayMaster=[];this.aoColumns=[];this.aoHeader=[];this.aoFooter=[];this.iNextId=0;this.asDataSearch=[];this.oPreviousSearch={sSearch:"",
+bRegex:false,bSmart:true};this.aoPreSearchCols=[];this.aaSorting=[[0,"asc",0]];this.aaSortingFixed=null;this.asStripeClasses=[];this.asDestroyStripes=[];this.sDestroyWidth=0;this.fnFooterCallback=this.fnHeaderCallback=this.fnRowCallback=null;this.aoDrawCallback=[];this.fnInitComplete=this.fnPreDrawCallback=null;this.sTableId="";this.nTableWrapper=this.nTBody=this.nTFoot=this.nTHead=this.nTable=null;this.bInitialised=this.bDeferLoading=false;this.aoOpenRows=[];this.sDom="lfrtip";this.sPaginationType=
+"two_button";this.iCookieDuration=7200;this.sCookiePrefix="SpryMedia_DataTables_";this.fnCookieCallback=null;this.aoStateSave=[];this.aoStateLoad=[];this.sAjaxSource=this.oLoadedState=null;this.sAjaxDataProp="aaData";this.bAjaxDataGet=true;this.jqXHR=null;this.fnServerData=function(a,b,c,d){d.jqXHR=i.ajax({url:a,data:b,success:function(f){i(d.oInstance).trigger("xhr",d);c(f)},dataType:"json",cache:false,error:function(f,e){e=="parsererror"&&alert("DataTables warning: JSON data from server could not be parsed. This is caused by a JSON formatting error.")}})};
+this.aoServerParams=[];this.fnFormatNumber=function(a){if(a<1E3)return a;else{var b=a+"";a=b.split("");var c="";b=b.length;for(var d=0;d=0;e--)!a.aoColumns[e].bVisible&&!c&&h[d].splice(e,1);j.push([])}d=0;for(f=h.length;d=a.fnRecordsDisplay()?0:a.iInitDisplayStart;a.iInitDisplayStart=-1;E(a)}if(a.bDeferLoading){a.bDeferLoading=false;a.iDraw++}else if(a.oFeatures.bServerSide){if(!a.bDestroying&&!Ca(a))return}else a.iDraw++;if(a.aiDisplay.length!==0){var h=a._iDisplayStart,j=a._iDisplayEnd;if(a.oFeatures.bServerSide){h=0;j=a.aoData.length}for(h=
+h;h=0;b--)c[b].parentNode.removeChild(c[b])}b=0;for(c=d.length;b=0;b--)a.aoDrawCallback[b].fn.call(a.oInstance,a);i(a.oInstance).trigger("draw",a);a.bSorted=false;a.bFiltered=false;a.bDrawing=false;if(a.oFeatures.bServerSide){K(a,false);typeof a._bInitComplete=="undefined"&&w(a)}}}function da(a){if(a.oFeatures.bSort)R(a,a.oPreviousSearch);else if(a.oFeatures.bFilter)N(a,
+a.oPreviousSearch);else{E(a);C(a)}}function Ca(a){if(a.bAjaxDataGet){a.iDraw++;K(a,true);var b=Da(a);ha(a,b);a.fnServerData.call(a.oInstance,a.sAjaxSource,b,function(c){Ea(a,c)},a);return false}else return true}function Da(a){var b=a.aoColumns.length,c=[],d,f;c.push({name:"sEcho",value:a.iDraw});c.push({name:"iColumns",value:b});c.push({name:"sColumns",value:ka(a)});c.push({name:"iDisplayStart",value:a._iDisplayStart});c.push({name:"iDisplayLength",value:a.oFeatures.bPaginate!==false?a._iDisplayLength:
+-1});for(f=0;f")c=c.parentNode;else if(h=="l"&&a.oFeatures.bPaginate&&a.oFeatures.bLengthChange){f=Ga(a);e=1}else if(h=="f"&&a.oFeatures.bFilter){f=Ha(a);e=1}else if(h=="r"&&a.oFeatures.bProcessing){f=Ia(a);e=1}else if(h=="t"){f=Ja(a);e=1}else if(h=="i"&&a.oFeatures.bInfo){f=Ka(a);e=1}else if(h=="p"&&a.oFeatures.bPaginate){f=La(a);e=1}else if(n.aoFeatures.length!==0){j=n.aoFeatures;u=0;for(k=j.length;ui(a.nTable).height()-a.oScroll.iLoadGap)if(a.fnDisplayEnd()0&&a.nTable.removeChild(h[0]);if(a.nTFoot!==null){k=a.nTable.getElementsByTagName("tfoot");k.length>0&&a.nTable.removeChild(k[0])}h=a.nTHead.cloneNode(true);a.nTable.insertBefore(h,a.nTable.childNodes[0]);if(a.nTFoot!==null){k=a.nTFoot.cloneNode(true);
+a.nTable.insertBefore(k,a.nTable.childNodes[1])}if(a.oScroll.sX===""){d.style.width="100%";b.parentNode.style.width="100%"}var U=S(a,h);f=0;for(e=U.length;fd.offsetHeight||i(d).css("overflow-y")=="scroll"))a.nTable.style.width=q(i(a.nTable).outerWidth()-a.oScroll.iBarWidth)}else if(a.oScroll.sXInner!==
+"")a.nTable.style.width=q(a.oScroll.sXInner);else if(f==i(d).width()&&i(d).height()f-a.oScroll.iBarWidth)a.nTable.style.width=q(f)}else a.nTable.style.width=q(f);f=i(a.nTable).outerWidth();e=a.nTHead.getElementsByTagName("tr");h=h.getElementsByTagName("tr");P(function(I,na){m=I.style;m.paddingTop="0";m.paddingBottom="0";m.borderTopWidth="0";m.borderBottomWidth="0";m.height=0;r=i(I).width();na.style.width=
+q(r);H.push(r)},h,e);i(h).height(0);if(a.nTFoot!==null){j=k.getElementsByTagName("tr");k=a.nTFoot.getElementsByTagName("tr");P(function(I,na){m=I.style;m.paddingTop="0";m.paddingBottom="0";m.borderTopWidth="0";m.borderBottomWidth="0";m.height=0;r=i(I).width();na.style.width=q(r);H.push(r)},j,k);i(j).height(0)}P(function(I){I.innerHTML="";I.style.width=q(H.shift())},h);a.nTFoot!==null&&P(function(I){I.innerHTML="";I.style.width=q(H.shift())},j);if(i(a.nTable).outerWidth()d.offsetHeight||
+i(d).css("overflow-y")=="scroll"?f+a.oScroll.iBarWidth:f;if(B&&(d.scrollHeight>d.offsetHeight||i(d).css("overflow-y")=="scroll"))a.nTable.style.width=q(j-a.oScroll.iBarWidth);d.style.width=q(j);b.parentNode.style.width=q(j);if(a.nTFoot!==null)L.parentNode.style.width=q(j);if(a.oScroll.sX==="")J(a,1,"The table cannot fit into the current element which will cause column misalignment. The table has been drawn at its minimum possible width.");else a.oScroll.sXInner!==""&&J(a,1,"The table cannot fit into the current element which will cause column misalignment. Increase the sScrollXInner value or remove it to allow automatic calculation")}else{d.style.width=
+q("100%");b.parentNode.style.width=q("100%");if(a.nTFoot!==null)L.parentNode.style.width=q("100%")}if(a.oScroll.sY==="")if(B)d.style.height=q(a.nTable.offsetHeight+a.oScroll.iBarWidth);if(a.oScroll.sY!==""&&a.oScroll.bCollapse){d.style.height=q(a.oScroll.sY);B=a.oScroll.sX!==""&&a.nTable.offsetWidth>d.offsetWidth?a.oScroll.iBarWidth:0;if(a.nTable.offsetHeight '):b===""?' ':b+' ';var c=p.createElement("div");
+c.className=a.oClasses.sFilter;c.innerHTML=""+b+" ";a.sTableId!==""&&typeof a.aanFeatures.f=="undefined"&&c.setAttribute("id",a.sTableId+"_filter");b=i("input",c);b.val(a.oPreviousSearch.sSearch.replace('"',"""));b.bind("keyup.DT",function(){for(var d=a.aanFeatures.f,f=0,e=d.length;f=0;d--){f=qa(G(a,a.aiDisplay[d],c,"filter"),a.aoColumns[c].sType);if(!b.test(f)){a.aiDisplay.splice(d,1);e++}}}}function Oa(a,b,c,d,f){var e=pa(b,d,f);if(typeof c=="undefined"||c===null)c=0;if(n.afnFiltering.length!==0)c=1;if(b.length<=0){a.aiDisplay.splice(0,a.aiDisplay.length);a.aiDisplay=a.aiDisplayMaster.slice()}else if(a.aiDisplay.length==a.aiDisplayMaster.length||
+a.oPreviousSearch.sSearch.length>b.length||c==1||b.indexOf(a.oPreviousSearch.sSearch)!==0){a.aiDisplay.splice(0,a.aiDisplay.length);oa(a,1);for(c=0;c/g,"");else if(typeof a=="string")return a.replace(/\n/g," ");else if(a===null)return"";return a}function R(a,b){var c,d,f,e,h=[],j=[],k=n.oSort;d=a.aoData;var m=a.aoColumns;if(!a.oFeatures.bServerSide&&
+(a.aaSorting.length!==0||a.aaSortingFixed!==null)){h=a.aaSortingFixed!==null?a.aaSortingFixed.concat(a.aaSorting):a.aaSorting.slice();for(c=0;c=h)for(b=0;b=0?a._iDisplayStart-a._iDisplayLength:0;if(a._iDisplayStart<0)a._iDisplayStart=0}else if(b=="next")if(a._iDisplayLength>=0){if(a._iDisplayStart+a._iDisplayLength=0){b=parseInt((a.fnRecordsDisplay()-
+1)/a._iDisplayLength,10)+1;a._iDisplayStart=(b-1)*a._iDisplayLength}else a._iDisplayStart=0;else J(a,0,"Unknown paging action: "+b);i(a.oInstance).trigger("page",a);return c!=a._iDisplayStart}function Ka(a){var b=p.createElement("div");b.className=a.oClasses.sInfo;if(typeof a.aanFeatures.i=="undefined"){a.aoDrawCallback.push({fn:Ra,sName:"information"});a.sTableId!==""&&b.setAttribute("id",a.sTableId+"_info")}return b}function Ra(a){if(!(!a.oFeatures.bInfo||a.aanFeatures.i.length===0)){var b=a._iDisplayStart+
+1,c=a.fnDisplayEnd(),d=a.fnRecordsTotal(),f=a.fnRecordsDisplay(),e=a.fnFormatNumber(b),h=a.fnFormatNumber(c),j=a.fnFormatNumber(d),k=a.fnFormatNumber(f);if(a.oScroll.bInfinite)e=a.fnFormatNumber(1);e=a.fnRecordsDisplay()===0&&a.fnRecordsDisplay()==a.fnRecordsTotal()?a.oLanguage.sInfoEmpty+a.oLanguage.sInfoPostFix:a.fnRecordsDisplay()===0?a.oLanguage.sInfoEmpty+" "+a.oLanguage.sInfoFiltered.replace("_MAX_",j)+a.oLanguage.sInfoPostFix:a.fnRecordsDisplay()==a.fnRecordsTotal()?a.oLanguage.sInfo.replace("_START_",
+e).replace("_END_",h).replace("_TOTAL_",k)+a.oLanguage.sInfoPostFix:a.oLanguage.sInfo.replace("_START_",e).replace("_END_",h).replace("_TOTAL_",k)+" "+a.oLanguage.sInfoFiltered.replace("_MAX_",a.fnFormatNumber(a.fnRecordsTotal()))+a.oLanguage.sInfoPostFix;if(a.oLanguage.fnInfoCallback!==null)e=a.oLanguage.fnInfoCallback(a,b,c,d,f,e);a=a.aanFeatures.i;b=0;for(c=a.length;b",c,d;if(a.aLengthMenu.length==2&&typeof a.aLengthMenu[0]=="object"&&typeof a.aLengthMenu[1]=="object"){c=0;for(d=a.aLengthMenu[0].length;c'+a.aLengthMenu[1][c]+""}else{c=0;for(d=a.aLengthMenu.length;c'+a.aLengthMenu[c]+""}b+="";var f=p.createElement("div");a.sTableId!==""&&typeof a.aanFeatures.l=="undefined"&&f.setAttribute("id",a.sTableId+"_length");
+f.className=a.oClasses.sLength;f.innerHTML=""+a.oLanguage.sLengthMenu.replace("_MENU_",b)+" ";i('select option[value="'+a._iDisplayLength+'"]',f).attr("selected",true);i("select",f).bind("change.DT",function(){var e=i(this).val(),h=a.aanFeatures.l;c=0;for(d=h.length;ca.aiDisplay.length||a._iDisplayLength==-1?a.aiDisplay.length:a._iDisplayStart+a._iDisplayLength}function Sa(a,b){if(!a||a===null||a==="")return 0;if(typeof b=="undefined")b=p.getElementsByTagName("body")[0];var c=p.createElement("div");c.style.width=q(a);b.appendChild(c);a=c.offsetWidth;b.removeChild(c);return a}function ga(a){var b=0,c,d=0,f=a.aoColumns.length,e,h=i("th",
+a.nTHead);for(e=0;etd",b);h=S(a,e);for(e=d=0;e0)a.aoColumns[e].sWidth=q(c);d++}a.nTable.style.width=q(i(b).outerWidth());b.parentNode.removeChild(b)}}function Ua(a,b){if(a.oScroll.sX===""&&a.oScroll.sY!==""){i(b).width();b.style.width=q(i(b).outerWidth()-a.oScroll.iBarWidth)}else if(a.oScroll.sX!==
+"")b.style.width=q(i(b).outerWidth())}function Ta(a,b){var c=Va(a,b);if(c<0)return null;if(a.aoData[c].nTr===null){var d=p.createElement("td");d.innerHTML=G(a,c,b,"");return d}return Q(a,c)[b]}function Va(a,b){for(var c=-1,d=-1,f=0;f/g,"");if(e.length>c){c=e.length;d=f}}return d}function q(a){if(a===null)return"0px";if(typeof a=="number"){if(a<0)return"0px";return a+"px"}var b=a.charCodeAt(a.length-1);if(b<48||b>57)return a;return a+
+"px"}function Za(a,b){if(a.length!=b.length)return 1;for(var c=0;cb&&a[d]--;c!=-1&&a.splice(c,1)}function Fa(a,b){b=b.split(",");for(var c=[],d=0,f=a.aoColumns.length;d4096){a=p.cookie.split(";");for(var j=0,k=a.length;j=d.aiDisplay.length){d._iDisplayStart-=d._iDisplayLength;if(d._iDisplayStart<0)d._iDisplayStart=0}if(typeof c=="undefined"||c){E(d);C(d)}return f};this.fnClearTable=function(a){var b=A(this[n.iApiIndex]);la(b);if(typeof a=="undefined"||a)C(b)};this.fnOpen=function(a,b,c){var d=A(this[n.iApiIndex]);this.fnClose(a);var f=p.createElement("tr"),e=p.createElement("td");f.appendChild(e);e.className=c;
+e.colSpan=Z(d);if(typeof b.jquery!="undefined"||typeof b=="object")e.appendChild(b);else e.innerHTML=b;b=i("tr",d.nTBody);i.inArray(a,b)!=-1&&i(f).insertAfter(a);d.aoOpenRows.push({nTr:f,nParent:a});return f};this.fnClose=function(a){for(var b=A(this[n.iApiIndex]),c=0;c=Z(d);if(!j)for(f=a;ftr>td."+a.oClasses.sRowEmpty,a.nTable).parent().remove();
+if(a.nTable!=a.nTHead.parentNode){i(a.nTable).children("thead").remove();a.nTable.appendChild(a.nTHead)}if(a.nTFoot&&a.nTable!=a.nTFoot.parentNode){i(a.nTable).children("tfoot").remove();a.nTable.appendChild(a.nTFoot)}a.nTable.parentNode.removeChild(a.nTable);i(a.nTableWrapper).remove();a.aaSorting=[];a.aaSortingFixed=[];V(a);i(ba(a)).removeClass(a.asStripeClasses.join(" "));if(a.bJUI){i("th",a.nTHead).removeClass([n.oStdClasses.sSortable,n.oJUIClasses.sSortableAsc,n.oJUIClasses.sSortableDesc,n.oJUIClasses.sSortableNone].join(" "));
+i("th span."+n.oJUIClasses.sSortIcon,a.nTHead).remove();i("th",a.nTHead).each(function(){var e=i("div."+n.oJUIClasses.sSortJUIWrapper,this),h=e.contents();i(this).append(h);e.remove()})}else i("th",a.nTHead).removeClass([n.oStdClasses.sSortable,n.oStdClasses.sSortableAsc,n.oStdClasses.sSortableDesc,n.oStdClasses.sSortableNone].join(" "));a.nTableReinsertBefore?b.insertBefore(a.nTable,a.nTableReinsertBefore):b.appendChild(a.nTable);d=0;for(f=a.aoData.length;dt<"F"ip>'}if(e.oScroll.sX!==""||e.oScroll.sY!==
+"")e.oScroll.iBarWidth=Ya();if(typeof g.iDisplayStart!="undefined"&&typeof e.iInitDisplayStart=="undefined"){e.iInitDisplayStart=g.iDisplayStart;e._iDisplayStart=g.iDisplayStart}if(typeof g.bStateSave!="undefined"){e.oFeatures.bStateSave=g.bStateSave;Xa(e,g);e.aoDrawCallback.push({fn:va,sName:"state_save"})}if(typeof g.iDeferLoading!="undefined"){e.bDeferLoading=true;e._iRecordsTotal=g.iDeferLoading;e._iRecordsDisplay=g.iDeferLoading}if(typeof g.aaData!="undefined")j=true;if(typeof g!="undefined"&&
+typeof g.aoData!="undefined")g.aoColumns=g.aoData;if(typeof g.oLanguage!="undefined")if(typeof g.oLanguage.sUrl!="undefined"&&g.oLanguage.sUrl!==""){e.oLanguage.sUrl=g.oLanguage.sUrl;i.getJSON(e.oLanguage.sUrl,null,function(u){y(e,u,true)});h=true}else y(e,g.oLanguage,false)}else g={};if(typeof g.asStripClasses=="undefined"&&typeof g.asStripeClasses=="undefined"){e.asStripeClasses.push(e.oClasses.sStripeOdd);e.asStripeClasses.push(e.oClasses.sStripeEven)}c=false;d=i(this).children("tbody").children("tr");
+a=0;for(b=e.asStripeClasses.length;a=0;a--){var m=
+g.aoColumnDefs[a].aTargets;i.isArray(m)||J(e,1,"aTargets must be an array of targets, not a "+typeof m);c=0;for(d=m.length;c=0){for(;e.aoColumns.length<=m[c];)F(e);x(e,m[c],g.aoColumnDefs[a])}else if(typeof m[c]=="number"&&m[c]<0)x(e,e.aoColumns.length+m[c],g.aoColumnDefs[a]);else if(typeof m[c]=="string"){b=0;for(f=e.aoColumns.length;b=e.aoColumns.length)e.aaSorting[a][0]=0;k=e.aoColumns[e.aaSorting[a][0]];if(typeof e.aaSorting[a][2]=="undefined")e.aaSorting[a][2]=0;if(typeof g.aaSorting=="undefined"&&typeof e.saved_aaSorting=="undefined")e.aaSorting[a][1]=k.asSorting[0];c=0;for(d=k.asSorting.length;c0){e.nTFoot=a[0];Y(e.aoFooter,e.nTFoot)}if(j)for(a=0;a)[^>]*$|\{\{\! /,b={},f={},e,p={key:0,data:{}},i=0,c=0,l=[];function g(g,d,h,e){var c={data:e||(e===0||e===false)?e:d?d.data:{},_wrap:d?d._wrap:null,tmpl:null,parent:d||null,nodes:[],calls:u,nest:w,wrap:x,html:v,update:t};g&&a.extend(c,g,{nodes:[],parent:d});if(h){c.tmpl=h;c._ctnt=c._ctnt||c.tmpl(a,c);c.key=++i;(l.length?f:b)[i]=c}return c}a.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(f,d){a.fn[f]=function(n){var g=[],i=a(n),k,h,m,l,j=this.length===1&&this[0].parentNode;e=b||{};if(j&&j.nodeType===11&&j.childNodes.length===1&&i.length===1){i[d](this[0]);g=this}else{for(h=0,m=i.length;h0?this.clone(true):this).get();a(i[h])[d](k);g=g.concat(k)}c=0;g=this.pushStack(g,f,i.selector)}l=e;e=null;a.tmpl.complete(l);return g}});a.fn.extend({tmpl:function(d,c,b){return a.tmpl(this[0],d,c,b)},tmplItem:function(){return a.tmplItem(this[0])},template:function(b){return a.template(b,this[0])},domManip:function(d,m,k){if(d[0]&&a.isArray(d[0])){var g=a.makeArray(arguments),h=d[0],j=h.length,i=0,f;while(i").join(">").split('"').join(""").split("'").join("'")}});a.extend(a.tmpl,{tag:{tmpl:{_default:{$2:"null"},open:"if($notnull_1){__=__.concat($item.nest($1,$2));}"},wrap:{_default:{$2:"null"},open:"$item.calls(__,$1,$2);__=[];",close:"call=$item.calls();__=call._.concat($item.wrap(call,__));"},each:{_default:{$2:"$index, $value"},open:"if($notnull_1){$.each($1a,function($2){with(this){",close:"}});}"},"if":{open:"if(($notnull_1) && $1a){",close:"}"},"else":{_default:{$1:"true"},open:"}else if(($notnull_1) && $1a){"},html:{open:"if($notnull_1){__.push($1a);}"},"=":{_default:{$1:"$data"},open:"if($notnull_1){__.push($.encode($1a));}"},"!":{open:""}},complete:function(){b={}},afterManip:function(f,b,d){var e=b.nodeType===11?a.makeArray(b.childNodes):b.nodeType===1?[b]:[];d.call(f,b);m(e);c++}});function j(e,g,f){var b,c=f?a.map(f,function(a){return typeof a==="string"?e.key?a.replace(/(<\w+)(?=[\s>])(?![^>]*_tmplitem)([^>]*)/g,"$1 "+d+'="'+e.key+'" $2'):a:j(a,e,a._ctnt)}):e;if(g)return c;c=c.join("");c.replace(/^\s*([^<\s][^<]*)?(<[\w\W]+>)([^>]*[^>\s])?\s*$/,function(f,c,e,d){b=a(e).get();m(b);if(c)b=k(c).concat(b);if(d)b=b.concat(k(d))});return b?b:k(c)}function k(c){var b=document.createElement("div");b.innerHTML=c;return a.makeArray(b.childNodes)}function o(b){return new Function("jQuery","$item","var $=jQuery,call,__=[],$data=$item.data;with($data){__.push('"+a.trim(b).replace(/([\\'])/g,"\\$1").replace(/[\r\t\n]/g," ").replace(/\$\{([^\}]*)\}/g,"{{= $1}}").replace(/\{\{(\/?)(\w+|.)(?:\(((?:[^\}]|\}(?!\}))*?)?\))?(?:\s+(.*?)?)?(\(((?:[^\}]|\}(?!\}))*?)\))?\s*\}\}/g,function(m,l,k,g,b,c,d){var j=a.tmpl.tag[k],i,e,f;if(!j)throw"Unknown template tag: "+k;i=j._default||[];if(c&&!/\w$/.test(b)){b+=c;c=""}if(b){b=h(b);d=d?","+h(d)+")":c?")":"";e=c?b.indexOf(".")>-1?b+h(c):"("+b+").call($item"+d:b;f=c?e:"(typeof("+b+")==='function'?("+b+").call($item):("+b+"))"}else f=e=i.$1||"null";g=h(g);return"');"+j[l?"close":"open"].split("$notnull_1").join(b?"typeof("+b+")!=='undefined' && ("+b+")!=null":"true").split("$1a").join(f).split("$1").join(e).split("$2").join(g||i.$2||"")+"__.push('"})+"');}return __;")}function n(c,b){c._wrap=j(c,true,a.isArray(b)?b:[q.test(b)?b:a(b).html()]).join("")}function h(a){return a?a.replace(/\\'/g,"'").replace(/\\\\/g,"\\"):null}function s(b){var a=document.createElement("div");a.appendChild(b.cloneNode(true));return a.innerHTML}function m(o){var n="_"+c,k,j,l={},e,p,h;for(e=0,p=o.length;e=0;h--)m(j[h]);m(k)}function m(j){var p,h=j,k,e,m;if(m=j.getAttribute(d)){while(h.parentNode&&(h=h.parentNode).nodeType===1&&!(p=h.getAttribute(d)));if(p!==m){h=h.parentNode?h.nodeType===11?0:h.getAttribute(d)||0:0;if(!(e=b[m])){e=f[m];e=g(e,b[h]||f[h]);e.key=++i;b[i]=e}c&&o(m)}j.removeAttribute(d)}else if(c&&(e=a.data(j,"tmplItem"))){o(e.key);b[e.key]=e;h=a.data(j.parentNode,"tmplItem");h=h?h.key:0}if(e){k=e;while(k&&k.key!=h){k.nodes.push(j);k=k.parent}delete e._ctnt;delete e._wrap;a.data(j,"tmplItem",e)}function o(a){a=a+n;e=l[a]=l[a]||g(e,b[e.parent.key+n]||e.parent)}}}function u(a,d,c,b){if(!a)return l.pop();l.push({_:a,tmpl:d,item:this,data:c,options:b})}function w(d,c,b){return a.tmpl(a.template(d),c,b,this)}function x(b,d){var c=b.options||{};c.wrapped=d;return a.tmpl(a.template(b.tmpl),b.data,c,b.item)}function v(d,c){var b=this._wrap;return a.map(a(a.isArray(b)?b.join(""):b).filter(d||"*"),function(a){return c?a.innerText||a.textContent:a.outerHTML||s(a)})}function t(){var b=this.nodes;a.tmpl(null,null,null,this).insertBefore(b[0]);a(b).remove()}})(jQuery);
\ No newline at end of file
diff --git a/wp-content/plugins/wordfence/js/jquery.tools.min.js b/wp-content/plugins/wordfence/js/jquery.tools.min.js
new file mode 100644
index 0000000..c626d96
--- /dev/null
+++ b/wp-content/plugins/wordfence/js/jquery.tools.min.js
@@ -0,0 +1,15 @@
+/*!
+ * jQuery Tools v1.2.6 - The missing UI library for the Web
+ *
+ * tooltip/tooltip.js
+ * tooltip/tooltip.dynamic.js
+ * tooltip/tooltip.slide.js
+ *
+ * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
+ *
+ * http://flowplayer.org/tools/
+ *
+ */
+(function(a){a.tools=a.tools||{version:"v1.2.6"},a.tools.tooltip={conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,fadeIE:!1,position:["top","center"],offset:[0,0],relative:!1,cancelDefault:!0,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"
",tipClass:"tooltip"},addEffect:function(a,c,d){b[a]=[c,d]}};var b={toggle:[function(a){var b=this.getConf(),c=this.getTip(),d=b.opacity;d<1&&c.css({opacity:d}),c.show(),a.call()},function(a){this.getTip().hide(),a.call()}],fade:[function(b){var c=this.getConf();!a.browser.msie||c.fadeIE?this.getTip().fadeTo(c.fadeInSpeed,c.opacity,b):(this.getTip().show(),b())},function(b){var c=this.getConf();!a.browser.msie||c.fadeIE?this.getTip().fadeOut(c.fadeOutSpeed,b):(this.getTip().hide(),b())}]};function c(b,c,d){var e=d.relative?b.position().top:b.offset().top,f=d.relative?b.position().left:b.offset().left,g=d.position[0];e-=c.outerHeight()-d.offset[0],f+=b.outerWidth()+d.offset[1],/iPad/i.test(navigator.userAgent)&&(e-=a(window).scrollTop());var h=c.outerHeight()+b.outerHeight();g=="center"&&(e+=h/2),g=="bottom"&&(e+=h),g=d.position[1];var i=c.outerWidth()+b.outerWidth();g=="center"&&(f-=i/2),g=="left"&&(f-=i);return{top:e,left:f}}function d(d,e){var f=this,g=d.add(f),h,i=0,j=0,k=d.attr("title"),l=d.attr("data-tooltip"),m=b[e.effect],n,o=d.is(":input"),p=o&&d.is(":checkbox, :radio, select, :button, :submit"),q=d.attr("type"),r=e.events[q]||e.events[o?p?"widget":"input":"def"];if(!m)throw"Nonexistent effect \""+e.effect+"\"";r=r.split(/,\s*/);if(r.length!=2)throw"Tooltip: bad events configuration for "+q;d.bind(r[0],function(a){clearTimeout(i),e.predelay?j=setTimeout(function(){f.show(a)},e.predelay):f.show(a)}).bind(r[1],function(a){clearTimeout(j),e.delay?i=setTimeout(function(){f.hide(a)},e.delay):f.hide(a)}),k&&e.cancelDefault&&(d.removeAttr("title"),d.data("title",k)),a.extend(f,{show:function(b){if(!h){l?h=a(l):e.tip?h=a(e.tip).eq(0):k?h=a(e.layout).addClass(e.tipClass).appendTo(document.body).hide().append(k):(h=d.next(),h.length||(h=d.parent().next()));if(!h.length)throw"Cannot find tooltip for "+d}if(f.isShown())return f;h.stop(!0,!0);var o=c(d,h,e);e.tip&&h.html(d.data("title")),b=a.Event(),b.type="onBeforeShow",g.trigger(b,[o]);if(b.isDefaultPrevented())return f;o=c(d,h,e),h.css({position:"absolute",top:o.top,left:o.left}),n=!0,m[0].call(f,function(){b.type="onShow",n="full",g.trigger(b)});var p=e.events.tooltip.split(/,\s*/);h.data("__set")||(h.unbind(p[0]).bind(p[0],function(){clearTimeout(i),clearTimeout(j)}),p[1]&&!d.is("input:not(:checkbox, :radio), textarea")&&h.unbind(p[1]).bind(p[1],function(a){a.relatedTarget!=d[0]&&d.trigger(r[1].split(" ")[0])}),e.tip||h.data("__set",!0));return f},hide:function(c){if(!h||!f.isShown())return f;c=a.Event(),c.type="onBeforeHide",g.trigger(c);if(!c.isDefaultPrevented()){n=!1,b[e.effect][1].call(f,function(){c.type="onHide",g.trigger(c)});return f}},isShown:function(a){return a?n=="full":n},getConf:function(){return e},getTip:function(){return h},getTrigger:function(){return d}}),a.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(b,c){a.isFunction(e[c])&&a(f).bind(c,e[c]),f[c]=function(b){b&&a(f).bind(c,b);return f}})}a.fn.tooltip=function(b){var c=this.data("tooltip");if(c)return c;b=a.extend(!0,{},a.tools.tooltip.conf,b),typeof b.position=="string"&&(b.position=b.position.split(/,?\s/)),this.each(function(){c=new d(a(this),b),a(this).data("tooltip",c)});return b.api?c:this}})(jQuery);
+(function(a){var b=a.tools.tooltip;b.dynamic={conf:{classNames:"top right bottom left"}};function c(b){var c=a(window),d=c.width()+c.scrollLeft(),e=c.height()+c.scrollTop();return[b.offset().top<=c.scrollTop(),d<=b.offset().left+b.width(),e<=b.offset().top+b.height(),c.scrollLeft()>=b.offset().left]}function d(a){var b=a.length;while(b--)if(a[b])return!1;return!0}a.fn.dynamic=function(e){typeof e=="number"&&(e={speed:e}),e=a.extend({},b.dynamic.conf,e);var f=a.extend(!0,{},e),g=e.classNames.split(/\s/),h;this.each(function(){var b=a(this).tooltip().onBeforeShow(function(b,e){var i=this.getTip(),j=this.getConf();h||(h=[j.position[0],j.position[1],j.offset[0],j.offset[1],a.extend({},j)]),a.extend(j,h[4]),j.position=[h[0],h[1]],j.offset=[h[2],h[3]],i.css({visibility:"hidden",position:"absolute",top:e.top,left:e.left}).show();var k=a.extend(!0,{},f),l=c(i);if(!d(l)){l[2]&&(a.extend(j,k.top),j.position[0]="top",i.addClass(g[0])),l[3]&&(a.extend(j,k.right),j.position[1]="right",i.addClass(g[1])),l[0]&&(a.extend(j,k.bottom),j.position[0]="bottom",i.addClass(g[2])),l[1]&&(a.extend(j,k.left),j.position[1]="left",i.addClass(g[3]));if(l[0]||l[2])j.offset[0]*=-1;if(l[1]||l[3])j.offset[1]*=-1}i.css({visibility:"visible"}).hide()});b.onBeforeShow(function(){var a=this.getConf(),b=this.getTip();setTimeout(function(){a.position=[h[0],h[1]],a.offset=[h[2],h[3]]},0)}),b.onHide(function(){var a=this.getTip();a.removeClass(e.classNames)}),ret=b});return e.api?ret:this}})(jQuery);
+(function(a){var b=a.tools.tooltip;a.extend(b.conf,{direction:"up",bounce:!1,slideOffset:10,slideInSpeed:200,slideOutSpeed:200,slideFade:!a.browser.msie});var c={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};b.addEffect("slide",function(a){var b=this.getConf(),d=this.getTip(),e=b.slideFade?{opacity:b.opacity}:{},f=c[b.direction]||c.up;e[f[1]]=f[0]+"="+b.slideOffset,b.slideFade&&d.css({opacity:0}),d.show().animate(e,b.slideInSpeed,a)},function(b){var d=this.getConf(),e=d.slideOffset,f=d.slideFade?{opacity:0}:{},g=c[d.direction]||c.up,h=""+g[0];d.bounce&&(h=h=="+"?"-":"+"),f[g[1]]=h+"="+e,this.getTip().animate(f,d.slideOutSpeed,function(){a(this).hide(),b.call()})})})(jQuery);
diff --git a/wp-content/plugins/wordfence/js/perf.js b/wp-content/plugins/wordfence/js/perf.js
new file mode 100644
index 0000000..daa963a
--- /dev/null
+++ b/wp-content/plugins/wordfence/js/perf.js
@@ -0,0 +1,36 @@
+jQuery(document).ready(function(){
+ if(typeof(performance) !== 'undefined'){
+ var timing = {
+ fetchStart: false,
+ domainLookupStart: false,
+ domainLookupEnd: false,
+ connectStart: false,
+ connectEnd: false,
+ requestStart: false,
+ responseStart: false,
+ responseEnd: false
+ };
+ for(var k in timing){
+ timing[k] = performance.timing[k];
+ }
+ timing['domReady'] = new Date().getTime();
+ jQuery(window).load(function(){
+ timing['URL'] = document.URL;
+ timing['loaded'] = new Date().getTime();
+ var fields = ['fetchStart', 'domainLookupStart', 'domainLookupEnd', 'connectStart', 'connectEnd', 'requestStart', 'responseStart', 'responseEnd', 'domReady', 'loaded'];
+ for(var i = fields.length - 1; i >= 1; i--){
+ timing[fields[i]] -= timing[fields[i - 1]];
+ }
+ timing['fetchStart'] = 0;
+ timing['action'] = 'wordfence_perfLog';
+ jQuery.ajax({
+ type: 'POST',
+ url: wordfenceAjaxURL,
+ dataType: 'json',
+ data: timing,
+ success: function(json){},
+ error: function(){}
+ });
+ });
+ }
+});
diff --git a/wp-content/plugins/wordfence/js/tourTip.js b/wp-content/plugins/wordfence/js/tourTip.js
new file mode 100644
index 0000000..212d7f6
--- /dev/null
+++ b/wp-content/plugins/wordfence/js/tourTip.js
@@ -0,0 +1,162 @@
+if(! window['wordfenceExt']){
+window['wordfenceExt'] = {
+ nonce: false,
+ loadingCount: 0,
+ init: function(){
+ this.nonce = WordfenceAdminVars.firstNonce;
+ },
+ showLoading: function(){
+ this.loadingCount++;
+ if(this.loadingCount == 1){
+ jQuery('Wordfence is working...
').appendTo('body');
+ }
+ },
+ removeLoading: function(){
+ this.loadingCount--;
+ if(this.loadingCount == 0){
+ jQuery('#wordfenceWorking').remove();
+ }
+ },
+ autoUpdateChoice: function(choice){
+ this.ajax('wordfence_autoUpdateChoice', {
+ choice: choice
+ },
+ function(res){ jQuery('#wordfenceAutoUpdateChoice').fadeOut(); },
+ function(){ jQuery('#wordfenceAutoUpdateChoice').fadeOut(); }
+ );
+ },
+ removeFromCache: function(postID){
+ this.ajax('wordfence_removeFromCache', {
+ id: postID
+ },
+ function(res){ if(res.ok){ alert("Item removed from the Wordfence cache."); } },
+ function(){}
+ );
+ },
+ ajax: function(action, data, cb, cbErr, noLoading){
+ if(typeof(data) == 'string'){
+ if(data.length > 0){
+ data += '&';
+ }
+ data += 'action=' + action + '&nonce=' + this.nonce;
+ } else if(typeof(data) == 'object'){
+ data['action'] = action;
+ data['nonce'] = this.nonce;
+ }
+ if(! cbErr){
+ cbErr = function(){};
+ }
+ var self = this;
+ if(! noLoading){
+ this.showLoading();
+ }
+ jQuery.ajax({
+ type: 'POST',
+ url: WordfenceAdminVars.ajaxURL,
+ dataType: "json",
+ data: data,
+ success: function(json){
+ if(! noLoading){
+ self.removeLoading();
+ }
+ if(json && json.nonce){
+ self.nonce = json.nonce;
+ }
+ cb(json);
+ },
+ error: function(){
+ if(! noLoading){
+ self.removeLoading();
+ }
+ cbErr();
+ }
+ });
+ }
+};
+}
+jQuery(function(){
+ wordfenceExt.init();
+});
+
+if(! window['wordfenceTour']){
+window['wordfenceTour'] = {
+ wfClearEmailField: function(){
+ if(jQuery('#wfListEmail').val() == "Enter your email"){
+ jQuery('#wfListEmail').val('');
+ }
+ },
+ processEmailClick: function(evt){
+ var email = jQuery('#wfListEmail').val();
+ if(! /[^\@]+\@[^\.]+\.[^\.]+/.test(email)){
+ alert("Please enter a valid email address.");
+ return false;
+ }
+ jQuery.ajax({
+ type: 'POST',
+ url: WordfenceAdminVars.ajaxURL,
+ dataType: "json",
+ data: {
+ nonce: WordfenceAdminVars.firstNonce,
+ email: email,
+ action: 'wordfence_updateAlertEmail'
+ },
+ success: function(json){
+ if(json.ok){
+ jQuery('#wordfenceEmailDiv').html('Your admin alert email address has been set to ' + jQuery('
').text(json.email).html() + '.
');
+ } else if(json.err){
+ alert(json.err);
+ }
+ },
+ error: function(){
+ }
+ });
+
+ if(jQuery('#wfJoinListCheck').is(':checked')){
+ return true;
+ } else {
+ try {
+ if(evt.preventDefault) evt.preventDefault();
+ evt.returnValue = false;
+ } catch(e){}
+
+ return false;
+ }
+ }
+};
+}
+
+jQuery(function(){
+if(WordfenceAdminVars.tourClosed != '1'){
+ var formHTML = '';
+ var elem = '#toplevel_page_Wordfence';
+ jQuery(elem).pointer({
+ close: function(){},
+ content: "Congratulations! You've just installed Wordfence! Start by entering the administrator email address where you would like to receive security alerts for your site:
" +
+ formHTML +
+ "Then click \"Start Tour\" to get a quick introduction to how Wordfence protects your site, keeps you off Google's SEO black-list and can even help clean a hacked site.
",
+ pointerWidth: 300,
+ position: { edge: 'bottom', align: 'left' },
+ buttons: function(event, t){
+ buttonElem = jQuery('Close ');
+ buttonElem.bind('click.pointer', function(){ t.element.pointer('close');
+ var ajaxData = {
+ action: 'wordfence_tourClosed',
+ nonce: WordfenceAdminVars.firstNonce
+ };
+ jQuery.ajax({
+ type: 'POST',
+ url: WordfenceAdminVars.ajaxURL,
+ dataType: "json",
+ data: ajaxData,
+ success: function(json){},
+ error: function(){}
+ });
+ });
+ return buttonElem;
+ }
+ }).pointer('open');
+ jQuery('#pointer-close').after('Start Tour ');
+ jQuery('#pointer-primary').click(function(){ window.location.href = 'admin.php?page=Wordfence'; });
+}
+});
+
diff --git a/wp-content/plugins/wordfence/lib/.htaccess b/wp-content/plugins/wordfence/lib/.htaccess
new file mode 100644
index 0000000..c9c4d1b
--- /dev/null
+++ b/wp-content/plugins/wordfence/lib/.htaccess
@@ -0,0 +1,2 @@
+deny from all
+
diff --git a/wp-content/plugins/wordfence/lib/Diff.php b/wp-content/plugins/wordfence/lib/Diff.php
new file mode 100644
index 0000000..9e0b1b4
--- /dev/null
+++ b/wp-content/plugins/wordfence/lib/Diff.php
@@ -0,0 +1,176 @@
+
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - 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.
+ * - Neither the name of the Chris Boulton 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+ *
+ * @package Diff
+ * @author Chris Boulton
+ * @copyright (c) 2009 Chris Boulton
+ * @license New BSD License http://www.opensource.org/licenses/bsd-license.php
+ * @version 1.1
+ * @link http://github.com/chrisboulton/php-diff
+ */
+
+class Diff
+{
+ /**
+ * @var array The "old" sequence to use as the basis for the comparison.
+ */
+ private $a = null;
+
+ /**
+ * @var array The "new" sequence to generate the changes for.
+ */
+ private $b = null;
+
+ /**
+ * @var array Array containing the generated opcodes for the differences between the two items.
+ */
+ private $groupedCodes = null;
+
+ /**
+ * @var array Associative array of the default options available for the diff class and their default value.
+ */
+ private $defaultOptions = array(
+ 'context' => 3,
+ 'ignoreNewLines' => false,
+ 'ignoreWhitespace' => false,
+ 'ignoreCase' => false
+ );
+
+ /**
+ * @var array Array of the options that have been applied for generating the diff.
+ */
+ private $options = array();
+
+ /**
+ * The constructor.
+ *
+ * @param array $a Array containing the lines of the first string to compare.
+ * @param array $b Array containing the lines for the second string to compare.
+ */
+ public function __construct($a, $b, $options=array())
+ {
+ $this->a = $a;
+ $this->b = $b;
+
+ $this->options = array_merge($this->defaultOptions, $options);
+ }
+
+ /**
+ * Render a diff using the supplied rendering class and return it.
+ *
+ * @param object $renderer An instance of the rendering object to use for generating the diff.
+ * @return mixed The generated diff. Exact return value depends on the rendered.
+ */
+ public function render(Diff_Renderer_Abstract $renderer)
+ {
+ $renderer->diff = $this;
+ return $renderer->render();
+ }
+
+ /**
+ * Get a range of lines from $start to $end from the first comparison string
+ * and return them as an array. If no values are supplied, the entire string
+ * is returned. It's also possible to specify just one line to return only
+ * that line.
+ *
+ * @param int $start The starting number.
+ * @param int $end The ending number. If not supplied, only the item in $start will be returned.
+ * @return array Array of all of the lines between the specified range.
+ */
+ public function getA($start=0, $end=null)
+ {
+ if($start == 0 && $end === null) {
+ return $this->a;
+ }
+
+ if($end === null) {
+ $length = 1;
+ }
+ else {
+ $length = $end - $start;
+ }
+
+ return array_slice($this->a, $start, $length);
+
+ }
+
+ /**
+ * Get a range of lines from $start to $end from the second comparison string
+ * and return them as an array. If no values are supplied, the entire string
+ * is returned. It's also possible to specify just one line to return only
+ * that line.
+ *
+ * @param int $start The starting number.
+ * @param int $end The ending number. If not supplied, only the item in $start will be returned.
+ * @return array Array of all of the lines between the specified range.
+ */
+ public function getB($start=0, $end=null)
+ {
+ if($start == 0 && $end === null) {
+ return $this->b;
+ }
+
+ if($end === null) {
+ $length = 1;
+ }
+ else {
+ $length = $end - $start;
+ }
+
+ return array_slice($this->b, $start, $length);
+ }
+
+ /**
+ * Generate a list of the compiled and grouped opcodes for the differences between the
+ * two strings. Generally called by the renderer, this class instantiates the sequence
+ * matcher and performs the actual diff generation and return an array of the opcodes
+ * for it. Once generated, the results are cached in the diff class instance.
+ *
+ * @return array Array of the grouped opcodes for the generated diff.
+ */
+ public function getGroupedOpcodes()
+ {
+ if(!is_null($this->groupedCodes)) {
+ return $this->groupedCodes;
+ }
+
+ require_once dirname(__FILE__).'/Diff/SequenceMatcher.php';
+ $sequenceMatcher = new Diff_SequenceMatcher($this->a, $this->b, null, $this->options);
+ $this->groupedCodes = $sequenceMatcher->getGroupedOpcodes();
+ return $this->groupedCodes;
+ }
+}
diff --git a/wp-content/plugins/wordfence/lib/Diff/Renderer/Abstract.php b/wp-content/plugins/wordfence/lib/Diff/Renderer/Abstract.php
new file mode 100644
index 0000000..f63c3e7
--- /dev/null
+++ b/wp-content/plugins/wordfence/lib/Diff/Renderer/Abstract.php
@@ -0,0 +1,82 @@
+
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - 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.
+ * - Neither the name of the Chris Boulton 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+ *
+ * @package DiffLib
+ * @author Chris Boulton
+ * @copyright (c) 2009 Chris Boulton
+ * @license New BSD License http://www.opensource.org/licenses/bsd-license.php
+ * @version 1.1
+ * @link http://github.com/chrisboulton/php-diff
+ */
+
+abstract class Diff_Renderer_Abstract
+{
+ /**
+ * @var object Instance of the diff class that this renderer is generating the rendered diff for.
+ */
+ public $diff;
+
+ /**
+ * @var array Array of the default options that apply to this renderer.
+ */
+ protected $defaultOptions = array();
+
+ /**
+ * @var array Array containing the user applied and merged default options for the renderer.
+ */
+ protected $options = array();
+
+ /**
+ * The constructor. Instantiates the rendering engine and if options are passed,
+ * sets the options for the renderer.
+ *
+ * @param array $options Optionally, an array of the options for the renderer.
+ */
+ public function __construct(array $options = array())
+ {
+ $this->setOptions($options);
+ }
+
+ /**
+ * Set the options of the renderer to those supplied in the passed in array.
+ * Options are merged with the default to ensure that there aren't any missing
+ * options.
+ *
+ * @param array $options Array of options to set.
+ */
+ public function setOptions(array $options)
+ {
+ $this->options = array_merge($this->defaultOptions, $options);
+ }
+}
\ No newline at end of file
diff --git a/wp-content/plugins/wordfence/lib/Diff/Renderer/Html/Array.php b/wp-content/plugins/wordfence/lib/Diff/Renderer/Html/Array.php
new file mode 100644
index 0000000..c4b80b6
--- /dev/null
+++ b/wp-content/plugins/wordfence/lib/Diff/Renderer/Html/Array.php
@@ -0,0 +1,224 @@
+
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - 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.
+ * - Neither the name of the Chris Boulton 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+ *
+ * @package DiffLib
+ * @author Chris Boulton
+ * @copyright (c) 2009 Chris Boulton
+ * @license New BSD License http://www.opensource.org/licenses/bsd-license.php
+ * @version 1.1
+ * @link http://github.com/chrisboulton/php-diff
+ */
+
+require_once dirname(__FILE__).'/../Abstract.php';
+
+class Diff_Renderer_Html_Array extends Diff_Renderer_Abstract
+{
+ /**
+ * @var array Array of the default options that apply to this renderer.
+ */
+ protected $defaultOptions = array(
+ 'tabSize' => 4
+ );
+
+ /**
+ * Render and return an array structure suitable for generating HTML
+ * based differences. Generally called by subclasses that generate a
+ * HTML based diff and return an array of the changes to show in the diff.
+ *
+ * @return array An array of the generated chances, suitable for presentation in HTML.
+ */
+ public function render()
+ {
+ // As we'll be modifying a & b to include our change markers,
+ // we need to get the contents and store them here. That way
+ // we're not going to destroy the original data
+ $a = $this->diff->getA();
+ $b = $this->diff->getB();
+
+ $changes = array();
+ $opCodes = $this->diff->getGroupedOpcodes();
+ foreach($opCodes as $group) {
+ $blocks = array();
+ $lastTag = null;
+ $lastBlock = 0;
+ foreach($group as $code) {
+ list($tag, $i1, $i2, $j1, $j2) = $code;
+
+ if($tag == 'replace' && $i2 - $i1 == $j2 - $j1) {
+ for($i = 0; $i < ($i2 - $i1); ++$i) {
+ $fromLine = $a[$i1 + $i];
+ $toLine = $b[$j1 + $i];
+
+ list($start, $end) = $this->getChangeExtent($fromLine, $toLine);
+ if($start != 0 || $end != 0) {
+ $last = $end + strlen($fromLine);
+ $fromLine = substr_replace($fromLine, "\0", $start, 0);
+ $fromLine = substr_replace($fromLine, "\1", $last + 1, 0);
+ $last = $end + strlen($toLine);
+ $toLine = substr_replace($toLine, "\0", $start, 0);
+ $toLine = substr_replace($toLine, "\1", $last + 1, 0);
+ $a[$i1 + $i] = $fromLine;
+ $b[$j1 + $i] = $toLine;
+ }
+ }
+ }
+
+ if($tag != $lastTag) {
+ $blocks[] = array(
+ 'tag' => $tag,
+ 'base' => array(
+ 'offset' => $i1,
+ 'lines' => array()
+ ),
+ 'changed' => array(
+ 'offset' => $j1,
+ 'lines' => array()
+ )
+ );
+ $lastBlock = count($blocks)-1;
+ }
+
+ $lastTag = $tag;
+
+ if($tag == 'equal') {
+ $lines = array_slice($a, $i1, ($i2 - $i1));
+ $blocks[$lastBlock]['base']['lines'] += $this->formatLines($lines);
+ $lines = array_slice($b, $j1, ($j2 - $j1));
+ $blocks[$lastBlock]['changed']['lines'] += $this->formatLines($lines);
+ }
+ else {
+ if($tag == 'replace' || $tag == 'delete') {
+ $lines = array_slice($a, $i1, ($i2 - $i1));
+ $lines = $this->formatLines($lines);
+ $lines = str_replace(array("\0", "\1"), array('', ''), $lines);
+ $blocks[$lastBlock]['base']['lines'] += $lines;
+ }
+
+ if($tag == 'replace' || $tag == 'insert') {
+ $lines = array_slice($b, $j1, ($j2 - $j1));
+ $lines = $this->formatLines($lines);
+ $lines = str_replace(array("\0", "\1"), array('', ' '), $lines);
+ $blocks[$lastBlock]['changed']['lines'] += $lines;
+ }
+ }
+ }
+ $changes[] = $blocks;
+ }
+ return $changes;
+ }
+
+ /**
+ * Given two strings, determine where the changes in the two strings
+ * begin, and where the changes in the two strings end.
+ *
+ * @param string $fromLine The first string.
+ * @param string $toLine The second string.
+ * @return array Array containing the starting position (0 by default) and the ending position (-1 by default)
+ */
+ private function getChangeExtent($fromLine, $toLine)
+ {
+ $start = 0;
+ $limit = min(strlen($fromLine), strlen($toLine));
+ while($start < $limit && $fromLine{$start} == $toLine{$start}) {
+ ++$start;
+ }
+ $end = -1;
+ $limit = $limit - $start;
+ while(-$end <= $limit && substr($fromLine, $end, 1) == substr($toLine, $end, 1)) {
+ --$end;
+ }
+ return array(
+ $start,
+ $end + 1
+ );
+ }
+
+ /**
+ * Format a series of lines suitable for output in a HTML rendered diff.
+ * This involves replacing tab characters with spaces, making the HTML safe
+ * for output, ensuring that double spaces are replaced with etc.
+ *
+ * @param array $lines Array of lines to format.
+ * @return array Array of the formatted lines.
+ */
+ private function formatLines($lines)
+ {
+ $lines = array_map(array($this, 'ExpandTabs'), $lines);
+ $lines = array_map(array($this, 'HtmlSafe'), $lines);
+ foreach($lines as &$line) {
+ $line = preg_replace('# ( +)|^ #e', "\$this->fixSpaces('\\1')", $line);
+ }
+ return $lines;
+ }
+
+ /**
+ * Replace a string containing spaces with a HTML representation using .
+ *
+ * @param string $spaces The string of spaces.
+ * @return string The HTML representation of the string.
+ */
+ function fixSpaces($spaces='')
+ {
+ $count = strlen($spaces);
+ if($count == 0) {
+ return '';
+ }
+
+ $div = floor($count / 2);
+ $mod = $count % 2;
+ return str_repeat(' ', $div).str_repeat(' ', $mod);
+ }
+
+ /**
+ * Replace tabs in a single line with a number of spaces as defined by the tabSize option.
+ *
+ * @param string $line The containing tabs to convert.
+ * @return string The line with the tabs converted to spaces.
+ */
+ private function expandTabs($line)
+ {
+ return str_replace("\t", str_repeat(' ', $this->options['tabSize']), $line);
+ }
+
+ /**
+ * Make a string containing HTML safe for output on a page.
+ *
+ * @param string $string The string.
+ * @return string The string with the HTML characters replaced by entities.
+ */
+ private function htmlSafe($string)
+ {
+ return @htmlspecialchars($string, ENT_NOQUOTES, 'UTF-8');
+ }
+}
diff --git a/wp-content/plugins/wordfence/lib/Diff/Renderer/Html/SideBySide.php b/wp-content/plugins/wordfence/lib/Diff/Renderer/Html/SideBySide.php
new file mode 100644
index 0000000..b78267a
--- /dev/null
+++ b/wp-content/plugins/wordfence/lib/Diff/Renderer/Html/SideBySide.php
@@ -0,0 +1,163 @@
+
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - 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.
+ * - Neither the name of the Chris Boulton 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+ *
+ * @package DiffLib
+ * @author Chris Boulton
+ * @copyright (c) 2009 Chris Boulton
+ * @license New BSD License http://www.opensource.org/licenses/bsd-license.php
+ * @version 1.1
+ * @link http://github.com/chrisboulton/php-diff
+ */
+
+require_once dirname(__FILE__).'/Array.php';
+
+class Diff_Renderer_Html_SideBySide extends Diff_Renderer_Html_Array
+{
+ /**
+ * Render a and return diff with changes between the two sequences
+ * displayed side by side.
+ *
+ * @return string The generated side by side diff.
+ */
+ public function render()
+ {
+ $changes = parent::render();
+
+ $html = '';
+ if(empty($changes)) {
+ return $html;
+ }
+
+ $html .= '';
+ $html .= '';
+ $html .= '';
+ $html .= 'The Original Version of the file ';
+ $html .= 'The Modified Version on your WordPress system ';
+ $html .= ' ';
+ $html .= ' ';
+ foreach($changes as $i => $blocks) {
+ if($i > 0) {
+ $html .= '';
+ $html .= '… ';
+ $html .= '… ';
+ $html .= ' ';
+ }
+
+ foreach($blocks as $change) {
+ $html .= '';
+ // Equal changes should be shown on both sides of the diff
+ if($change['tag'] == 'equal') {
+ foreach($change['base']['lines'] as $no => $line) {
+ $fromLine = $change['base']['offset'] + $no + 1;
+ $toLine = $change['changed']['offset'] + $no + 1;
+ $html .= '';
+ $html .= ''.$fromLine.' ';
+ $html .= ''.$line.' ';
+ $html .= ''.$toLine.' ';
+ $html .= ''.$line.' ';
+ $html .= ' ';
+ }
+ }
+ // Added lines only on the right side
+ else if($change['tag'] == 'insert') {
+ foreach($change['changed']['lines'] as $no => $line) {
+ $toLine = $change['changed']['offset'] + $no + 1;
+ $html .= '';
+ $html .= ' ';
+ $html .= ' ';
+ $html .= ''.$toLine.' ';
+ $html .= ''.$line.' ';
+ $html .= ' ';
+ }
+ }
+ // Show deleted lines only on the left side
+ else if($change['tag'] == 'delete') {
+ foreach($change['base']['lines'] as $no => $line) {
+ $fromLine = $change['base']['offset'] + $no + 1;
+ $html .= '';
+ $html .= ''.$fromLine.' ';
+ $html .= ''.$line.' ';
+ $html .= ' ';
+ $html .= ' ';
+ $html .= ' ';
+ }
+ }
+ // Show modified lines on both sides
+ else if($change['tag'] == 'replace') {
+ if(count($change['base']['lines']) >= count($change['changed']['lines'])) {
+ foreach($change['base']['lines'] as $no => $line) {
+ $fromLine = $change['base']['offset'] + $no + 1;
+ $html .= '';
+ $html .= ''.$fromLine.' ';
+ $html .= ''.$line.' ';
+ if(!isset($change['changed']['lines'][$no])) {
+ $toLine = ' ';
+ $changedLine = ' ';
+ }
+ else {
+ $toLine = $change['base']['offset'] + $no + 1;
+ $changedLine = ''.$change['changed']['lines'][$no].' ';
+ }
+ $html .= ''.$toLine.' ';
+ $html .= ''.$changedLine.' ';
+ $html .= ' ';
+ }
+ }
+ else {
+ foreach($change['changed']['lines'] as $no => $changedLine) {
+ if(!isset($change['base']['lines'][$no])) {
+ $fromLine = ' ';
+ $line = ' ';
+ }
+ else {
+ $fromLine = $change['base']['offset'] + $no + 1;
+ $line = ''.$change['base']['lines'][$no].' ';
+ }
+ $html .= '';
+ $html .= ''.$fromLine.' ';
+ $html .= ''.$line.' ';
+ $toLine = $change['changed']['offset'] + $no + 1;
+ $html .= ''.$toLine.' ';
+ $html .= ''.$changedLine.' ';
+ $html .= ' ';
+ }
+ }
+ }
+ $html .= ' ';
+ }
+ }
+ $html .= '
';
+ return $html;
+ }
+}
diff --git a/wp-content/plugins/wordfence/lib/Diff/SequenceMatcher.php b/wp-content/plugins/wordfence/lib/Diff/SequenceMatcher.php
new file mode 100644
index 0000000..a55dd2f
--- /dev/null
+++ b/wp-content/plugins/wordfence/lib/Diff/SequenceMatcher.php
@@ -0,0 +1,742 @@
+
+ *
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * - Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * - 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.
+ * - Neither the name of the Chris Boulton 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 COPYRIGHT HOLDERS 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 COPYRIGHT OWNER 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.
+ *
+ * @package Diff
+ * @author Chris Boulton
+ * @copyright (c) 2009 Chris Boulton
+ * @license New BSD License http://www.opensource.org/licenses/bsd-license.php
+ * @version 1.1
+ * @link http://github.com/chrisboulton/php-diff
+ */
+
+class Diff_SequenceMatcher
+{
+ /**
+ * @var string|array Either a string or an array containing a callback function to determine if a line is "junk" or not.
+ */
+ private $junkCallback = null;
+
+ /**
+ * @var array The first sequence to compare against.
+ */
+ private $a = null;
+
+ /**
+ * @var array The second sequence.
+ */
+ private $b = null;
+
+ /**
+ * @var array Array of characters that are considered junk from the second sequence. Characters are the array key.
+ */
+ private $junkDict = array();
+
+ /**
+ * @var array Array of indices that do not contain junk elements.
+ */
+ private $b2j = array();
+
+ private $options = array();
+
+ private $defaultOptions = array(
+ 'ignoreNewLines' => false,
+ 'ignoreWhitespace' => false,
+ 'ignoreCase' => false
+ );
+
+ /**
+ * The constructor. With the sequences being passed, they'll be set for the
+ * sequence matcher and it will perform a basic cleanup & calculate junk
+ * elements.
+ *
+ * @param string|array $a A string or array containing the lines to compare against.
+ * @param string|array $b A string or array containing the lines to compare.
+ * @param string|array $junkCallback Either an array or string that references a callback function (if there is one) to determine 'junk' characters.
+ */
+ public function __construct($a, $b, $junkCallback=null, $options)
+ {
+ $this->a = null;
+ $this->b = null;
+ $this->junkCallback = $junkCallback;
+ $this->setOptions($options);
+ $this->setSequences($a, $b);
+ }
+
+ public function setOptions($options)
+ {
+ $this->options = array_merge($this->defaultOptions, $options);
+ }
+
+ /**
+ * Set the first and second sequences to use with the sequence matcher.
+ *
+ * @param string|array $a A string or array containing the lines to compare against.
+ * @param string|array $b A string or array containing the lines to compare.
+ */
+ public function setSequences($a, $b)
+ {
+ $this->setSeq1($a);
+ $this->setSeq2($b);
+ }
+
+ /**
+ * Set the first sequence ($a) and reset any internal caches to indicate that
+ * when calling the calculation methods, we need to recalculate them.
+ *
+ * @param string|array $a The sequence to set as the first sequence.
+ */
+ public function setSeq1($a)
+ {
+ if(!is_array($a)) {
+ $a = str_split($a);
+ }
+ if($a == $this->a) {
+ return;
+ }
+
+ $this->a= $a;
+ $this->matchingBlocks = null;
+ $this->opCodes = null;
+ }
+
+ /**
+ * Set the second sequence ($b) and reset any internal caches to indicate that
+ * when calling the calculation methods, we need to recalculate them.
+ *
+ * @param string|array $b The sequence to set as the second sequence.
+ */
+ public function setSeq2($b)
+ {
+ if(!is_array($b)) {
+ $b = str_split($b);
+ }
+ if($b == $this->b) {
+ return;
+ }
+
+ $this->b = $b;
+ $this->matchingBlocks = null;
+ $this->opCodes = null;
+ $this->fullBCount = null;
+ $this->chainB();
+ }
+
+ /**
+ * Generate the internal arrays containing the list of junk and non-junk
+ * characters for the second ($b) sequence.
+ */
+ private function chainB()
+ {
+ $length = count ($this->b);
+ $this->b2j = array();
+ $popularDict = array();
+
+ for($i = 0; $i < $length; ++$i) {
+ $char = $this->b[$i];
+ if(isset($this->b2j[$char])) {
+ if($length >= 200 && count($this->b2j[$char]) * 100 > $length) {
+ $popularDict[$char] = 1;
+ unset($this->b2j[$char]);
+ }
+ else {
+ $this->b2j[$char][] = $i;
+ }
+ }
+ else {
+ $this->b2j[$char] = array(
+ $i
+ );
+ }
+ }
+
+ // Remove leftovers
+ foreach(array_keys($popularDict) as $char) {
+ unset($this->b2j[$char]);
+ }
+
+ $this->junkDict = array();
+ if(is_callable($this->junkCallback)) {
+ foreach(array_keys($popularDict) as $char) {
+ if(call_user_func($this->junkCallback, $char)) {
+ $this->junkDict[$char] = 1;
+ unset($popularDict[$char]);
+ }
+ }
+
+ foreach(array_keys($this->b2j) as $char) {
+ if(call_user_func($this->junkCallback, $char)) {
+ $this->junkDict[$char] = 1;
+ unset($this->b2j[$char]);
+ }
+ }
+ }
+ }
+
+ /**
+ * Checks if a particular character is in the junk dictionary
+ * for the list of junk characters.
+ *
+ * @return boolean $b True if the character is considered junk. False if not.
+ */
+ private function isBJunk($b)
+ {
+ if(isset($this->juncDict[$b])) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Find the longest matching block in the two sequences, as defined by the
+ * lower and upper constraints for each sequence. (for the first sequence,
+ * $alo - $ahi and for the second sequence, $blo - $bhi)
+ *
+ * Essentially, of all of the maximal matching blocks, return the one that
+ * startest earliest in $a, and all of those maximal matching blocks that
+ * start earliest in $a, return the one that starts earliest in $b.
+ *
+ * If the junk callback is defined, do the above but with the restriction
+ * that the junk element appears in the block. Extend it as far as possible
+ * by matching only junk elements in both $a and $b.
+ *
+ * @param int $alo The lower constraint for the first sequence.
+ * @param int $ahi The upper constraint for the first sequence.
+ * @param int $blo The lower constraint for the second sequence.
+ * @param int $bhi The upper constraint for the second sequence.
+ * @return array Array containing the longest match that includes the starting position in $a, start in $b and the length/size.
+ */
+ public function findLongestMatch($alo, $ahi, $blo, $bhi)
+ {
+ $a = $this->a;
+ $b = $this->b;
+
+ $bestI = $alo;
+ $bestJ = $blo;
+ $bestSize = 0;
+
+ $j2Len = array();
+ $nothing = array();
+
+ for($i = $alo; $i < $ahi; ++$i) {
+ $newJ2Len = array();
+ $jDict = $this->arrayGetDefault($this->b2j, $a[$i], $nothing);
+ foreach($jDict as $jKey => $j) {
+ if($j < $blo) {
+ continue;
+ }
+ else if($j >= $bhi) {
+ break;
+ }
+
+ $k = $this->arrayGetDefault($j2Len, $j -1, 0) + 1;
+ $newJ2Len[$j] = $k;
+ if($k > $bestSize) {
+ $bestI = $i - $k + 1;
+ $bestJ = $j - $k + 1;
+ $bestSize = $k;
+ }
+ }
+
+ $j2Len = $newJ2Len;
+ }
+
+ while($bestI > $alo && $bestJ > $blo && !$this->isBJunk($b[$bestJ - 1]) &&
+ !$this->linesAreDifferent($bestI - 1, $bestJ - 1)) {
+ --$bestI;
+ --$bestJ;
+ ++$bestSize;
+ }
+
+ while($bestI + $bestSize < $ahi && ($bestJ + $bestSize) < $bhi &&
+ !$this->isBJunk($b[$bestJ + $bestSize]) && !$this->linesAreDifferent($bestI + $bestSize, $bestJ + $bestSize)) {
+ ++$bestSize;
+ }
+
+ while($bestI > $alo && $bestJ > $blo && $this->isBJunk($b[$bestJ - 1]) &&
+ !$this->isLineDifferent($bestI - 1, $bestJ - 1)) {
+ --$bestI;
+ --$bestJ;
+ ++$bestSize;
+ }
+
+ while($bestI + $bestSize < $ahi && $bestJ + $bestSize < $bhi &&
+ $this->isBJunk($b[$bestJ + $bestSize]) && !$this->linesAreDifferent($bestI + $bestSize, $bestJ + $bestSize)) {
+ ++$bestSize;
+ }
+
+ return array(
+ $bestI,
+ $bestJ,
+ $bestSize
+ );
+ }
+
+ /**
+ * Check if the two lines at the given indexes are different or not.
+ *
+ * @param int $aIndex Line number to check against in a.
+ * @param int $bIndex Line number to check against in b.
+ * @return boolean True if the lines are different and false if not.
+ */
+ public function linesAreDifferent($aIndex, $bIndex)
+ {
+ $lineA = $this->a[$aIndex];
+ $lineB = $this->b[$bIndex];
+
+ if($this->options['ignoreWhitespace']) {
+ $replace = array("\t", ' ');
+ $lineA = str_replace($replace, '', $lineA);
+ $lineB = str_replace($replace, '', $lineB);
+ }
+
+ if($this->options['ignoreCase']) {
+ $lineA = strtolower($lineA);
+ $lineB = strtolower($lineB);
+ }
+
+ if($lineA != $lineB) {
+ return true;
+ }
+
+ return false;
+ }
+
+ /**
+ * Return a nested set of arrays for all of the matching sub-sequences
+ * in the strings $a and $b.
+ *
+ * Each block contains the lower constraint of the block in $a, the lower
+ * constraint of the block in $b and finally the number of lines that the
+ * block continues for.
+ *
+ * @return array Nested array of the matching blocks, as described by the function.
+ */
+ public function getMatchingBlocks()
+ {
+ if(!empty($this->matchingBlocks)) {
+ return $this->matchingBlocks;
+ }
+
+ $aLength = count($this->a);
+ $bLength = count($this->b);
+
+ $queue = array(
+ array(
+ 0,
+ $aLength,
+ 0,
+ $bLength
+ )
+ );
+
+ $matchingBlocks = array();
+ while(!empty($queue)) {
+ list($alo, $ahi, $blo, $bhi) = array_pop($queue);
+ $x = $this->findLongestMatch($alo, $ahi, $blo, $bhi);
+ list($i, $j, $k) = $x;
+ if($k) {
+ $matchingBlocks[] = $x;
+ if($alo < $i && $blo < $j) {
+ $queue[] = array(
+ $alo,
+ $i,
+ $blo,
+ $j
+ );
+ }
+
+ if($i + $k < $ahi && $j + $k < $bhi) {
+ $queue[] = array(
+ $i + $k,
+ $ahi,
+ $j + $k,
+ $bhi
+ );
+ }
+ }
+ }
+
+ usort($matchingBlocks, array($this, 'tupleSort'));
+
+ $i1 = 0;
+ $j1 = 0;
+ $k1 = 0;
+ $nonAdjacent = array();
+ foreach($matchingBlocks as $block) {
+ list($i2, $j2, $k2) = $block;
+ if($i1 + $k1 == $i2 && $j1 + $k1 == $j2) {
+ $k1 += $k2;
+ }
+ else {
+ if($k1) {
+ $nonAdjacent[] = array(
+ $i1,
+ $j1,
+ $k1
+ );
+ }
+
+ $i1 = $i2;
+ $j1 = $j2;
+ $k1 = $k2;
+ }
+ }
+
+ if($k1) {
+ $nonAdjacent[] = array(
+ $i1,
+ $j1,
+ $k1
+ );
+ }
+
+ $nonAdjacent[] = array(
+ $aLength,
+ $bLength,
+ 0
+ );
+
+ $this->matchingBlocks = $nonAdjacent;
+ return $this->matchingBlocks;
+ }
+
+ /**
+ * Return a list of all of the opcodes for the differences between the
+ * two strings.
+ *
+ * The nested array returned contains an array describing the opcode
+ * which includes:
+ * 0 - The type of tag (as described below) for the opcode.
+ * 1 - The beginning line in the first sequence.
+ * 2 - The end line in the first sequence.
+ * 3 - The beginning line in the second sequence.
+ * 4 - The end line in the second sequence.
+ *
+ * The different types of tags include:
+ * replace - The string from $i1 to $i2 in $a should be replaced by
+ * the string in $b from $j1 to $j2.
+ * delete - The string in $a from $i1 to $j2 should be deleted.
+ * insert - The string in $b from $j1 to $j2 should be inserted at
+ * $i1 in $a.
+ * equal - The two strings with the specified ranges are equal.
+ *
+ * @return array Array of the opcodes describing the differences between the strings.
+ */
+ public function getOpCodes()
+ {
+ if(!empty($this->opCodes)) {
+ return $this->opCodes;
+ }
+
+ $i = 0;
+ $j = 0;
+ $this->opCodes = array();
+
+ $blocks = $this->getMatchingBlocks();
+ foreach($blocks as $block) {
+ list($ai, $bj, $size) = $block;
+ $tag = '';
+ if($i < $ai && $j < $bj) {
+ $tag = 'replace';
+ }
+ else if($i < $ai) {
+ $tag = 'delete';
+ }
+ else if($j < $bj) {
+ $tag = 'insert';
+ }
+
+ if($tag) {
+ $this->opCodes[] = array(
+ $tag,
+ $i,
+ $ai,
+ $j,
+ $bj
+ );
+ }
+
+ $i = $ai + $size;
+ $j = $bj + $size;
+
+ if($size) {
+ $this->opCodes[] = array(
+ 'equal',
+ $ai,
+ $i,
+ $bj,
+ $j
+ );
+ }
+ }
+ return $this->opCodes;
+ }
+
+ /**
+ * Return a series of nested arrays containing different groups of generated
+ * opcodes for the differences between the strings with up to $context lines
+ * of surrounding content.
+ *
+ * Essentially what happens here is any big equal blocks of strings are stripped
+ * out, the smaller subsets of changes are then arranged in to their groups.
+ * This means that the sequence matcher and diffs do not need to include the full
+ * content of the different files but can still provide context as to where the
+ * changes are.
+ *
+ * @param int $context The number of lines of context to provide around the groups.
+ * @return array Nested array of all of the grouped opcodes.
+ */
+ public function getGroupedOpcodes($context=3)
+ {
+ $opCodes = $this->getOpCodes();
+ if(empty($opCodes)) {
+ $opCodes = array(
+ array(
+ 'equal',
+ 0,
+ 1,
+ 0,
+ 1
+ )
+ );
+ }
+
+ if($opCodes[0][0] == 'equal') {
+ $opCodes[0] = array(
+ $opCodes[0][0],
+ max($opCodes[0][1], $opCodes[0][2] - $context),
+ $opCodes[0][2],
+ max($opCodes[0][3], $opCodes[0][4] - $context),
+ $opCodes[0][4]
+ );
+ }
+
+ $lastItem = count($opCodes) - 1;
+ if($opCodes[$lastItem][0] == 'equal') {
+ list($tag, $i1, $i2, $j1, $j2) = $opCodes[$lastItem];
+ $opCodes[$lastItem] = array(
+ $tag,
+ $i1,
+ min($i2, $i1 + $context),
+ $j1,
+ min($j2, $j1 + $context)
+ );
+ }
+
+ $maxRange = $context * 2;
+ $groups = array();
+ $group = array();
+ foreach($opCodes as $code) {
+ list($tag, $i1, $i2, $j1, $j2) = $code;
+ if($tag == 'equal' && $i2 - $i1 > $maxRange) {
+ $group[] = array(
+ $tag,
+ $i1,
+ min($i2, $i1 + $context),
+ $j1,
+ min($j2, $j1 + $context)
+ );
+ $groups[] = $group;
+ $group = array();
+ $i1 = max($i1, $i2 - $context);
+ $j1 = max($j1, $j2 - $context);
+ }
+ $group[] = array(
+ $tag,
+ $i1,
+ $i2,
+ $j1,
+ $j2
+ );
+ }
+
+ if(!empty($group) && !(count($group) == 1 && $group[0][0] == 'equal')) {
+ $groups[] = $group;
+ }
+
+ return $groups;
+ }
+
+ /**
+ * Return a measure of the similarity between the two sequences.
+ * This will be a float value between 0 and 1.
+ *
+ * Out of all of the ratio calculation functions, this is the most
+ * expensive to call if getMatchingBlocks or getOpCodes is yet to be
+ * called. The other calculation methods (quickRatio and realquickRatio)
+ * can be used to perform quicker calculations but may be less accurate.
+ *
+ * The ratio is calculated as (2 * number of matches) / total number of
+ * elements in both sequences.
+ *
+ * @return float The calculated ratio.
+ */
+ public function Ratio()
+ {
+ $matches = array_reduce($this->getMatchingBlocks(), array($this, 'ratioReduce'), 0);
+ return $this->calculateRatio($matches, count ($this->a) + count ($this->b));
+ }
+
+ /**
+ * Helper function to calculate the number of matches for Ratio().
+ *
+ * @param int $sum The running total for the number of matches.
+ * @param array $triple Array containing the matching block triple to add to the running total.
+ * @return int The new running total for the number of matches.
+ */
+ private function ratioReduce($sum, $triple)
+ {
+ return $sum + ($triple[count($triple) - 1]);
+ }
+
+ /**
+ * Quickly return an upper bound ratio for the similarity of the strings.
+ * This is quicker to compute than Ratio().
+ *
+ * @return float The calculated ratio.
+ */
+ private function quickRatio()
+ {
+ if($this->fullBCount === null) {
+ $this->fullBCount = array();
+ $bLength = count ($b);
+ for($i = 0; $i < $bLength; ++$i) {
+ $char = $this->b[$i];
+ $this->fullBCount[$char] = $this->arrayGetDefault($this->fullBCount, $char, 0) + 1;
+ }
+ }
+
+ $avail = array();
+ $matches = 0;
+ $aLength = count ($this->a);
+ for($i = 0; $i < $aLength; ++$i) {
+ $char = $this->a[$i];
+ if(isset($avail[$char])) {
+ $numb = $avail[$char];
+ }
+ else {
+ $numb = $this->arrayGetDefault($this->fullBCount, $char, 0);
+ }
+ $avail[$char] = $numb - 1;
+ if($numb > 0) {
+ ++$matches;
+ }
+ }
+
+ $this->calculateRatio($matches, count ($this->a) + count ($this->b));
+ }
+
+ /**
+ * Return an upper bound ratio really quickly for the similarity of the strings.
+ * This is quicker to compute than Ratio() and quickRatio().
+ *
+ * @return float The calculated ratio.
+ */
+ private function realquickRatio()
+ {
+ $aLength = count ($this->a);
+ $bLength = count ($this->b);
+
+ return $this->calculateRatio(min($aLength, $bLength), $aLength + $bLength);
+ }
+
+ /**
+ * Helper function for calculating the ratio to measure similarity for the strings.
+ * The ratio is defined as being 2 * (number of matches / total length)
+ *
+ * @param int $matches The number of matches in the two strings.
+ * @param int $length The length of the two strings.
+ * @return float The calculated ratio.
+ */
+ private function calculateRatio($matches, $length=0)
+ {
+ if($length) {
+ return 2 * ($matches / $length);
+ }
+ else {
+ return 1;
+ }
+ }
+
+ /**
+ * Helper function that provides the ability to return the value for a key
+ * in an array of it exists, or if it doesn't then return a default value.
+ * Essentially cleaner than doing a series of if(isset()) {} else {} calls.
+ *
+ * @param array $array The array to search.
+ * @param string $key The key to check that exists.
+ * @param mixed $default The value to return as the default value if the key doesn't exist.
+ * @return mixed The value from the array if the key exists or otherwise the default.
+ */
+ private function arrayGetDefault($array, $key, $default)
+ {
+ if(isset($array[$key])) {
+ return $array[$key];
+ }
+ else {
+ return $default;
+ }
+ }
+
+ /**
+ * Sort an array by the nested arrays it contains. Helper function for getMatchingBlocks
+ *
+ * @param array $a First array to compare.
+ * @param array $b Second array to compare.
+ * @return int -1, 0 or 1, as expected by the usort function.
+ */
+ private function tupleSort($a, $b)
+ {
+ $max = max(count($a), count($b));
+ for($i = 0; $i < $max; ++$i) {
+ if($a[$i] < $b[$i]) {
+ return -1;
+ }
+ else if($a[$i] > $b[$i]) {
+ return 1;
+ }
+ }
+
+ if(count($a) == $count($b)) {
+ return 0;
+ }
+ else if(count($a) < count($b)) {
+ return -1;
+ }
+ else {
+ return 1;
+ }
+ }
+}
diff --git a/wp-content/plugins/wordfence/lib/GeoIP.dat b/wp-content/plugins/wordfence/lib/GeoIP.dat
new file mode 100644
index 0000000..0355839
Binary files /dev/null and b/wp-content/plugins/wordfence/lib/GeoIP.dat differ
diff --git a/wp-content/plugins/wordfence/lib/IPTraf.php b/wp-content/plugins/wordfence/lib/IPTraf.php
new file mode 100644
index 0000000..df8734a
--- /dev/null
+++ b/wp-content/plugins/wordfence/lib/IPTraf.php
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+Wordfence: All recent hits for IP address
+
+ $v){ ?>
+Time: ago -- -- in Unixtime
+Secs since last hit:' . $v['timeSinceLastHit'] . ' '; } ?>
+URL:
+Type: Page not found'; } ?>
+Referrer:
+Full Browser ID:
+
+User:
+
+
+Location:
+
+
+
+
+
+
+
+
+
+