stump-cli 0.1.3 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1243) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +1 -0
  3. data/README.md +9 -5
  4. data/bin/stump-cli +77 -27
  5. data/lib/{wp/.gitignore → .gitignore.erb} +2 -2
  6. data/lib/stump-cli/version.rb +1 -1
  7. data/lib/style.erb +11 -0
  8. data/stump-cli.gemspec +2 -0
  9. metadata +56 -1268
  10. data/lib/wp/Movefile-example +0 -62
  11. data/lib/wp/README.md +0 -25
  12. data/lib/wp/index.php +0 -17
  13. data/lib/wp/license.txt +0 -385
  14. data/lib/wp/readme.html +0 -96
  15. data/lib/wp/wp-activate.php +0 -131
  16. data/lib/wp/wp-admin/about.php +0 -193
  17. data/lib/wp/wp-admin/admin-ajax.php +0 -98
  18. data/lib/wp/wp-admin/admin-footer.php +0 -99
  19. data/lib/wp/wp-admin/admin-functions.php +0 -15
  20. data/lib/wp/wp-admin/admin-header.php +0 -243
  21. data/lib/wp/wp-admin/admin-post.php +0 -71
  22. data/lib/wp/wp-admin/admin.php +0 -347
  23. data/lib/wp/wp-admin/async-upload.php +0 -114
  24. data/lib/wp/wp-admin/comment.php +0 -299
  25. data/lib/wp/wp-admin/credits.php +0 -192
  26. data/lib/wp/wp-admin/css/about-rtl.css +0 -446
  27. data/lib/wp/wp-admin/css/about.css +0 -446
  28. data/lib/wp/wp-admin/css/admin-menu-rtl.css +0 -917
  29. data/lib/wp/wp-admin/css/admin-menu.css +0 -917
  30. data/lib/wp/wp-admin/css/color-picker-rtl.css +0 -127
  31. data/lib/wp/wp-admin/css/color-picker-rtl.min.css +0 -1
  32. data/lib/wp/wp-admin/css/color-picker.css +0 -127
  33. data/lib/wp/wp-admin/css/color-picker.min.css +0 -1
  34. data/lib/wp/wp-admin/css/colors/_admin.scss +0 -525
  35. data/lib/wp/wp-admin/css/colors/_mixins.scss +0 -43
  36. data/lib/wp/wp-admin/css/colors/_variables.scss +0 -58
  37. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.css +0 -341
  38. data/lib/wp/wp-admin/css/colors/blue/colors-rtl.min.css +0 -1
  39. data/lib/wp/wp-admin/css/colors/blue/colors.css +0 -341
  40. data/lib/wp/wp-admin/css/colors/blue/colors.min.css +0 -1
  41. data/lib/wp/wp-admin/css/colors/blue/colors.scss +0 -11
  42. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.css +0 -341
  43. data/lib/wp/wp-admin/css/colors/coffee/colors-rtl.min.css +0 -1
  44. data/lib/wp/wp-admin/css/colors/coffee/colors.css +0 -341
  45. data/lib/wp/wp-admin/css/colors/coffee/colors.min.css +0 -1
  46. data/lib/wp/wp-admin/css/colors/coffee/colors.scss +0 -7
  47. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.css +0 -341
  48. data/lib/wp/wp-admin/css/colors/ectoplasm/colors-rtl.min.css +0 -1
  49. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.css +0 -341
  50. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.min.css +0 -1
  51. data/lib/wp/wp-admin/css/colors/ectoplasm/colors.scss +0 -8
  52. data/lib/wp/wp-admin/css/colors/light/colors-rtl.css +0 -349
  53. data/lib/wp/wp-admin/css/colors/light/colors-rtl.min.css +0 -1
  54. data/lib/wp/wp-admin/css/colors/light/colors.css +0 -349
  55. data/lib/wp/wp-admin/css/colors/light/colors.min.css +0 -1
  56. data/lib/wp/wp-admin/css/colors/light/colors.scss +0 -38
  57. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.css +0 -341
  58. data/lib/wp/wp-admin/css/colors/midnight/colors-rtl.min.css +0 -1
  59. data/lib/wp/wp-admin/css/colors/midnight/colors.css +0 -341
  60. data/lib/wp/wp-admin/css/colors/midnight/colors.min.css +0 -1
  61. data/lib/wp/wp-admin/css/colors/midnight/colors.scss +0 -5
  62. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.css +0 -341
  63. data/lib/wp/wp-admin/css/colors/ocean/colors-rtl.min.css +0 -1
  64. data/lib/wp/wp-admin/css/colors/ocean/colors.css +0 -341
  65. data/lib/wp/wp-admin/css/colors/ocean/colors.min.css +0 -1
  66. data/lib/wp/wp-admin/css/colors/ocean/colors.scss +0 -8
  67. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.css +0 -341
  68. data/lib/wp/wp-admin/css/colors/sunrise/colors-rtl.min.css +0 -1
  69. data/lib/wp/wp-admin/css/colors/sunrise/colors.css +0 -341
  70. data/lib/wp/wp-admin/css/colors/sunrise/colors.min.css +0 -1
  71. data/lib/wp/wp-admin/css/colors/sunrise/colors.scss +0 -6
  72. data/lib/wp/wp-admin/css/common-rtl.css +0 -3212
  73. data/lib/wp/wp-admin/css/common.css +0 -3212
  74. data/lib/wp/wp-admin/css/customize-controls-rtl.css +0 -889
  75. data/lib/wp/wp-admin/css/customize-controls-rtl.min.css +0 -1
  76. data/lib/wp/wp-admin/css/customize-controls.css +0 -889
  77. data/lib/wp/wp-admin/css/customize-controls.min.css +0 -1
  78. data/lib/wp/wp-admin/css/customize-widgets-rtl.css +0 -603
  79. data/lib/wp/wp-admin/css/customize-widgets-rtl.min.css +0 -1
  80. data/lib/wp/wp-admin/css/customize-widgets.css +0 -603
  81. data/lib/wp/wp-admin/css/customize-widgets.min.css +0 -1
  82. data/lib/wp/wp-admin/css/dashboard-rtl.css +0 -1116
  83. data/lib/wp/wp-admin/css/dashboard.css +0 -1116
  84. data/lib/wp/wp-admin/css/deprecated-media-rtl.css +0 -371
  85. data/lib/wp/wp-admin/css/deprecated-media-rtl.min.css +0 -1
  86. data/lib/wp/wp-admin/css/deprecated-media.css +0 -371
  87. data/lib/wp/wp-admin/css/deprecated-media.min.css +0 -1
  88. data/lib/wp/wp-admin/css/edit-rtl.css +0 -1501
  89. data/lib/wp/wp-admin/css/edit.css +0 -1501
  90. data/lib/wp/wp-admin/css/farbtastic-rtl.css +0 -41
  91. data/lib/wp/wp-admin/css/farbtastic.css +0 -41
  92. data/lib/wp/wp-admin/css/forms-rtl.css +0 -992
  93. data/lib/wp/wp-admin/css/forms.css +0 -992
  94. data/lib/wp/wp-admin/css/ie-rtl.css +0 -785
  95. data/lib/wp/wp-admin/css/ie-rtl.min.css +0 -1
  96. data/lib/wp/wp-admin/css/ie.css +0 -785
  97. data/lib/wp/wp-admin/css/ie.min.css +0 -1
  98. data/lib/wp/wp-admin/css/install-rtl.css +0 -389
  99. data/lib/wp/wp-admin/css/install-rtl.min.css +0 -1
  100. data/lib/wp/wp-admin/css/install.css +0 -389
  101. data/lib/wp/wp-admin/css/install.min.css +0 -1
  102. data/lib/wp/wp-admin/css/l10n-rtl.css +0 -101
  103. data/lib/wp/wp-admin/css/l10n.css +0 -101
  104. data/lib/wp/wp-admin/css/list-tables-rtl.css +0 -1875
  105. data/lib/wp/wp-admin/css/list-tables.css +0 -1875
  106. data/lib/wp/wp-admin/css/login-rtl.css +0 -269
  107. data/lib/wp/wp-admin/css/login-rtl.min.css +0 -1
  108. data/lib/wp/wp-admin/css/login.css +0 -269
  109. data/lib/wp/wp-admin/css/login.min.css +0 -1
  110. data/lib/wp/wp-admin/css/media-rtl.css +0 -1196
  111. data/lib/wp/wp-admin/css/media.css +0 -1196
  112. data/lib/wp/wp-admin/css/nav-menus-rtl.css +0 -857
  113. data/lib/wp/wp-admin/css/nav-menus.css +0 -857
  114. data/lib/wp/wp-admin/css/press-this-rtl.css +0 -458
  115. data/lib/wp/wp-admin/css/press-this.css +0 -458
  116. data/lib/wp/wp-admin/css/revisions-rtl.css +0 -574
  117. data/lib/wp/wp-admin/css/revisions.css +0 -574
  118. data/lib/wp/wp-admin/css/themes-rtl.css +0 -1732
  119. data/lib/wp/wp-admin/css/themes.css +0 -1732
  120. data/lib/wp/wp-admin/css/widgets-rtl.css +0 -577
  121. data/lib/wp/wp-admin/css/widgets.css +0 -577
  122. data/lib/wp/wp-admin/css/wp-admin-rtl.css +0 -14
  123. data/lib/wp/wp-admin/css/wp-admin-rtl.min.css +0 -1
  124. data/lib/wp/wp-admin/css/wp-admin.css +0 -14
  125. data/lib/wp/wp-admin/css/wp-admin.min.css +0 -1
  126. data/lib/wp/wp-admin/custom-background.php +0 -482
  127. data/lib/wp/wp-admin/custom-header.php +0 -1366
  128. data/lib/wp/wp-admin/customize.php +0 -278
  129. data/lib/wp/wp-admin/edit-comments.php +0 -254
  130. data/lib/wp/wp-admin/edit-form-advanced.php +0 -636
  131. data/lib/wp/wp-admin/edit-form-comment.php +0 -160
  132. data/lib/wp/wp-admin/edit-link-form.php +0 -150
  133. data/lib/wp/wp-admin/edit-tag-form.php +0 -204
  134. data/lib/wp/wp-admin/edit-tags.php +0 -591
  135. data/lib/wp/wp-admin/edit.php +0 -330
  136. data/lib/wp/wp-admin/export.php +0 -243
  137. data/lib/wp/wp-admin/freedoms.php +0 -57
  138. data/lib/wp/wp-admin/images/align-center-2x.png +0 -0
  139. data/lib/wp/wp-admin/images/align-center.png +0 -0
  140. data/lib/wp/wp-admin/images/align-left-2x.png +0 -0
  141. data/lib/wp/wp-admin/images/align-left.png +0 -0
  142. data/lib/wp/wp-admin/images/align-none-2x.png +0 -0
  143. data/lib/wp/wp-admin/images/align-none.png +0 -0
  144. data/lib/wp/wp-admin/images/align-right-2x.png +0 -0
  145. data/lib/wp/wp-admin/images/align-right.png +0 -0
  146. data/lib/wp/wp-admin/images/arrows-2x.png +0 -0
  147. data/lib/wp/wp-admin/images/arrows.png +0 -0
  148. data/lib/wp/wp-admin/images/bubble_bg-2x.gif +0 -0
  149. data/lib/wp/wp-admin/images/bubble_bg.gif +0 -0
  150. data/lib/wp/wp-admin/images/comment-grey-bubble-2x.png +0 -0
  151. data/lib/wp/wp-admin/images/comment-grey-bubble.png +0 -0
  152. data/lib/wp/wp-admin/images/date-button-2x.gif +0 -0
  153. data/lib/wp/wp-admin/images/date-button.gif +0 -0
  154. data/lib/wp/wp-admin/images/generic.png +0 -0
  155. data/lib/wp/wp-admin/images/icons32-2x.png +0 -0
  156. data/lib/wp/wp-admin/images/icons32-vs-2x.png +0 -0
  157. data/lib/wp/wp-admin/images/icons32-vs.png +0 -0
  158. data/lib/wp/wp-admin/images/icons32.png +0 -0
  159. data/lib/wp/wp-admin/images/imgedit-icons-2x.png +0 -0
  160. data/lib/wp/wp-admin/images/imgedit-icons.png +0 -0
  161. data/lib/wp/wp-admin/images/list-2x.png +0 -0
  162. data/lib/wp/wp-admin/images/list.png +0 -0
  163. data/lib/wp/wp-admin/images/loading.gif +0 -0
  164. data/lib/wp/wp-admin/images/marker.png +0 -0
  165. data/lib/wp/wp-admin/images/mask.png +0 -0
  166. data/lib/wp/wp-admin/images/media-button-2x.png +0 -0
  167. data/lib/wp/wp-admin/images/media-button-image.gif +0 -0
  168. data/lib/wp/wp-admin/images/media-button-music.gif +0 -0
  169. data/lib/wp/wp-admin/images/media-button-other.gif +0 -0
  170. data/lib/wp/wp-admin/images/media-button-video.gif +0 -0
  171. data/lib/wp/wp-admin/images/media-button.png +0 -0
  172. data/lib/wp/wp-admin/images/menu-2x.png +0 -0
  173. data/lib/wp/wp-admin/images/menu-vs-2x.png +0 -0
  174. data/lib/wp/wp-admin/images/menu-vs.png +0 -0
  175. data/lib/wp/wp-admin/images/menu.png +0 -0
  176. data/lib/wp/wp-admin/images/no.png +0 -0
  177. data/lib/wp/wp-admin/images/post-formats-vs.png +0 -0
  178. data/lib/wp/wp-admin/images/post-formats.png +0 -0
  179. data/lib/wp/wp-admin/images/post-formats32-vs.png +0 -0
  180. data/lib/wp/wp-admin/images/post-formats32.png +0 -0
  181. data/lib/wp/wp-admin/images/resize-2x.gif +0 -0
  182. data/lib/wp/wp-admin/images/resize-rtl-2x.gif +0 -0
  183. data/lib/wp/wp-admin/images/resize-rtl.gif +0 -0
  184. data/lib/wp/wp-admin/images/resize.gif +0 -0
  185. data/lib/wp/wp-admin/images/se.png +0 -0
  186. data/lib/wp/wp-admin/images/sort-2x.gif +0 -0
  187. data/lib/wp/wp-admin/images/sort.gif +0 -0
  188. data/lib/wp/wp-admin/images/spinner-2x.gif +0 -0
  189. data/lib/wp/wp-admin/images/spinner.gif +0 -0
  190. data/lib/wp/wp-admin/images/stars-2x.png +0 -0
  191. data/lib/wp/wp-admin/images/stars.png +0 -0
  192. data/lib/wp/wp-admin/images/w-logo-blue.png +0 -0
  193. data/lib/wp/wp-admin/images/w-logo-white.png +0 -0
  194. data/lib/wp/wp-admin/images/wheel.png +0 -0
  195. data/lib/wp/wp-admin/images/wordpress-logo-white.svg +0 -1
  196. data/lib/wp/wp-admin/images/wordpress-logo.png +0 -0
  197. data/lib/wp/wp-admin/images/wordpress-logo.svg +0 -1
  198. data/lib/wp/wp-admin/images/wpspin_light-2x.gif +0 -0
  199. data/lib/wp/wp-admin/images/wpspin_light.gif +0 -0
  200. data/lib/wp/wp-admin/images/xit-2x.gif +0 -0
  201. data/lib/wp/wp-admin/images/xit.gif +0 -0
  202. data/lib/wp/wp-admin/images/yes.png +0 -0
  203. data/lib/wp/wp-admin/import.php +0 -132
  204. data/lib/wp/wp-admin/includes/admin.php +0 -74
  205. data/lib/wp/wp-admin/includes/ajax-actions.php +0 -2762
  206. data/lib/wp/wp-admin/includes/bookmark.php +0 -305
  207. data/lib/wp/wp-admin/includes/class-ftp-pure.php +0 -190
  208. data/lib/wp/wp-admin/includes/class-ftp-sockets.php +0 -250
  209. data/lib/wp/wp-admin/includes/class-ftp.php +0 -907
  210. data/lib/wp/wp-admin/includes/class-pclzip.php +0 -5687
  211. data/lib/wp/wp-admin/includes/class-wp-comments-list-table.php +0 -637
  212. data/lib/wp/wp-admin/includes/class-wp-filesystem-base.php +0 -815
  213. data/lib/wp/wp-admin/includes/class-wp-filesystem-direct.php +0 -384
  214. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpext.php +0 -415
  215. data/lib/wp/wp-admin/includes/class-wp-filesystem-ftpsockets.php +0 -352
  216. data/lib/wp/wp-admin/includes/class-wp-filesystem-ssh2.php +0 -392
  217. data/lib/wp/wp-admin/includes/class-wp-importer.php +0 -302
  218. data/lib/wp/wp-admin/includes/class-wp-links-list-table.php +0 -207
  219. data/lib/wp/wp-admin/includes/class-wp-list-table.php +0 -1080
  220. data/lib/wp/wp-admin/includes/class-wp-media-list-table.php +0 -574
  221. data/lib/wp/wp-admin/includes/class-wp-ms-sites-list-table.php +0 -402
  222. data/lib/wp/wp-admin/includes/class-wp-ms-themes-list-table.php +0 -459
  223. data/lib/wp/wp-admin/includes/class-wp-ms-users-list-table.php +0 -303
  224. data/lib/wp/wp-admin/includes/class-wp-plugin-install-list-table.php +0 -490
  225. data/lib/wp/wp-admin/includes/class-wp-plugins-list-table.php +0 -605
  226. data/lib/wp/wp-admin/includes/class-wp-posts-list-table.php +0 -1306
  227. data/lib/wp/wp-admin/includes/class-wp-terms-list-table.php +0 -466
  228. data/lib/wp/wp-admin/includes/class-wp-theme-install-list-table.php +0 -431
  229. data/lib/wp/wp-admin/includes/class-wp-themes-list-table.php +0 -279
  230. data/lib/wp/wp-admin/includes/class-wp-upgrader-skins.php +0 -767
  231. data/lib/wp/wp-admin/includes/class-wp-upgrader.php +0 -2676
  232. data/lib/wp/wp-admin/includes/class-wp-users-list-table.php +0 -459
  233. data/lib/wp/wp-admin/includes/comment.php +0 -171
  234. data/lib/wp/wp-admin/includes/continents-cities.php +0 -493
  235. data/lib/wp/wp-admin/includes/dashboard.php +0 -1333
  236. data/lib/wp/wp-admin/includes/deprecated.php +0 -1190
  237. data/lib/wp/wp-admin/includes/export.php +0 -508
  238. data/lib/wp/wp-admin/includes/file.php +0 -1152
  239. data/lib/wp/wp-admin/includes/image-edit.php +0 -828
  240. data/lib/wp/wp-admin/includes/image.php +0 -598
  241. data/lib/wp/wp-admin/includes/import.php +0 -206
  242. data/lib/wp/wp-admin/includes/list-table.php +0 -113
  243. data/lib/wp/wp-admin/includes/media.php +0 -3012
  244. data/lib/wp/wp-admin/includes/menu.php +0 -322
  245. data/lib/wp/wp-admin/includes/meta-boxes.php +0 -1119
  246. data/lib/wp/wp-admin/includes/misc.php +0 -845
  247. data/lib/wp/wp-admin/includes/ms-deprecated.php +0 -78
  248. data/lib/wp/wp-admin/includes/ms.php +0 -814
  249. data/lib/wp/wp-admin/includes/nav-menu.php +0 -1328
  250. data/lib/wp/wp-admin/includes/plugin-install.php +0 -550
  251. data/lib/wp/wp-admin/includes/plugin.php +0 -1899
  252. data/lib/wp/wp-admin/includes/post.php +0 -1661
  253. data/lib/wp/wp-admin/includes/revision.php +0 -228
  254. data/lib/wp/wp-admin/includes/schema.php +0 -1038
  255. data/lib/wp/wp-admin/includes/screen.php +0 -1179
  256. data/lib/wp/wp-admin/includes/taxonomy.php +0 -284
  257. data/lib/wp/wp-admin/includes/template.php +0 -2157
  258. data/lib/wp/wp-admin/includes/theme-install.php +0 -205
  259. data/lib/wp/wp-admin/includes/theme.php +0 -474
  260. data/lib/wp/wp-admin/includes/translation-install.php +0 -240
  261. data/lib/wp/wp-admin/includes/update-core.php +0 -1186
  262. data/lib/wp/wp-admin/includes/update.php +0 -432
  263. data/lib/wp/wp-admin/includes/upgrade.php +0 -2218
  264. data/lib/wp/wp-admin/includes/user.php +0 -442
  265. data/lib/wp/wp-admin/includes/widgets.php +0 -245
  266. data/lib/wp/wp-admin/index.php +0 -131
  267. data/lib/wp/wp-admin/install-helper.php +0 -199
  268. data/lib/wp/wp-admin/install.php +0 -305
  269. data/lib/wp/wp-admin/js/accordion.js +0 -143
  270. data/lib/wp/wp-admin/js/accordion.min.js +0 -1
  271. data/lib/wp/wp-admin/js/color-picker.js +0 -155
  272. data/lib/wp/wp-admin/js/color-picker.min.js +0 -1
  273. data/lib/wp/wp-admin/js/comment.js +0 -50
  274. data/lib/wp/wp-admin/js/comment.min.js +0 -1
  275. data/lib/wp/wp-admin/js/common.js +0 -804
  276. data/lib/wp/wp-admin/js/common.min.js +0 -1
  277. data/lib/wp/wp-admin/js/custom-background.js +0 -75
  278. data/lib/wp/wp-admin/js/custom-background.min.js +0 -1
  279. data/lib/wp/wp-admin/js/custom-header.js +0 -61
  280. data/lib/wp/wp-admin/js/customize-controls.js +0 -1305
  281. data/lib/wp/wp-admin/js/customize-controls.min.js +0 -1
  282. data/lib/wp/wp-admin/js/customize-widgets.js +0 -1882
  283. data/lib/wp/wp-admin/js/customize-widgets.min.js +0 -1
  284. data/lib/wp/wp-admin/js/dashboard.js +0 -190
  285. data/lib/wp/wp-admin/js/dashboard.min.js +0 -1
  286. data/lib/wp/wp-admin/js/edit-comments.js +0 -625
  287. data/lib/wp/wp-admin/js/edit-comments.min.js +0 -1
  288. data/lib/wp/wp-admin/js/editor-expand.js +0 -705
  289. data/lib/wp/wp-admin/js/editor-expand.min.js +0 -1
  290. data/lib/wp/wp-admin/js/editor.js +0 -324
  291. data/lib/wp/wp-admin/js/editor.min.js +0 -1
  292. data/lib/wp/wp-admin/js/farbtastic.js +0 -276
  293. data/lib/wp/wp-admin/js/gallery.js +0 -237
  294. data/lib/wp/wp-admin/js/gallery.min.js +0 -1
  295. data/lib/wp/wp-admin/js/image-edit.js +0 -633
  296. data/lib/wp/wp-admin/js/image-edit.min.js +0 -1
  297. data/lib/wp/wp-admin/js/inline-edit-post.js +0 -359
  298. data/lib/wp/wp-admin/js/inline-edit-post.min.js +0 -1
  299. data/lib/wp/wp-admin/js/inline-edit-tax.js +0 -142
  300. data/lib/wp/wp-admin/js/inline-edit-tax.min.js +0 -1
  301. data/lib/wp/wp-admin/js/iris.min.js +0 -4
  302. data/lib/wp/wp-admin/js/language-chooser.js +0 -26
  303. data/lib/wp/wp-admin/js/language-chooser.min.js +0 -1
  304. data/lib/wp/wp-admin/js/link.js +0 -69
  305. data/lib/wp/wp-admin/js/link.min.js +0 -1
  306. data/lib/wp/wp-admin/js/media-gallery.js +0 -26
  307. data/lib/wp/wp-admin/js/media-gallery.min.js +0 -1
  308. data/lib/wp/wp-admin/js/media-upload.js +0 -69
  309. data/lib/wp/wp-admin/js/media-upload.min.js +0 -1
  310. data/lib/wp/wp-admin/js/media.js +0 -111
  311. data/lib/wp/wp-admin/js/media.min.js +0 -1
  312. data/lib/wp/wp-admin/js/nav-menu.js +0 -1205
  313. data/lib/wp/wp-admin/js/nav-menu.min.js +0 -1
  314. data/lib/wp/wp-admin/js/password-strength-meter.js +0 -75
  315. data/lib/wp/wp-admin/js/password-strength-meter.min.js +0 -1
  316. data/lib/wp/wp-admin/js/plugin-install.js +0 -76
  317. data/lib/wp/wp-admin/js/plugin-install.min.js +0 -1
  318. data/lib/wp/wp-admin/js/post.js +0 -1094
  319. data/lib/wp/wp-admin/js/post.min.js +0 -1
  320. data/lib/wp/wp-admin/js/postbox.js +0 -199
  321. data/lib/wp/wp-admin/js/postbox.min.js +0 -1
  322. data/lib/wp/wp-admin/js/revisions.js +0 -1110
  323. data/lib/wp/wp-admin/js/revisions.min.js +0 -1
  324. data/lib/wp/wp-admin/js/set-post-thumbnail.js +0 -24
  325. data/lib/wp/wp-admin/js/set-post-thumbnail.min.js +0 -1
  326. data/lib/wp/wp-admin/js/svg-painter.js +0 -240
  327. data/lib/wp/wp-admin/js/svg-painter.min.js +0 -1
  328. data/lib/wp/wp-admin/js/tags.js +0 -72
  329. data/lib/wp/wp-admin/js/tags.min.js +0 -1
  330. data/lib/wp/wp-admin/js/theme.js +0 -1691
  331. data/lib/wp/wp-admin/js/theme.min.js +0 -1
  332. data/lib/wp/wp-admin/js/updates.js +0 -65
  333. data/lib/wp/wp-admin/js/updates.min.js +0 -1
  334. data/lib/wp/wp-admin/js/user-profile.js +0 -127
  335. data/lib/wp/wp-admin/js/user-profile.min.js +0 -1
  336. data/lib/wp/wp-admin/js/user-suggest.js +0 -30
  337. data/lib/wp/wp-admin/js/user-suggest.min.js +0 -1
  338. data/lib/wp/wp-admin/js/widgets.js +0 -494
  339. data/lib/wp/wp-admin/js/widgets.min.js +0 -1
  340. data/lib/wp/wp-admin/js/word-count.js +0 -44
  341. data/lib/wp/wp-admin/js/word-count.min.js +0 -1
  342. data/lib/wp/wp-admin/js/wp-fullscreen.js +0 -704
  343. data/lib/wp/wp-admin/js/wp-fullscreen.min.js +0 -1
  344. data/lib/wp/wp-admin/js/xfn.js +0 -17
  345. data/lib/wp/wp-admin/js/xfn.min.js +0 -1
  346. data/lib/wp/wp-admin/link-add.php +0 -29
  347. data/lib/wp/wp-admin/link-manager.php +0 -99
  348. data/lib/wp/wp-admin/link-parse-opml.php +0 -84
  349. data/lib/wp/wp-admin/link.php +0 -117
  350. data/lib/wp/wp-admin/load-scripts.php +0 -162
  351. data/lib/wp/wp-admin/load-styles.php +0 -153
  352. data/lib/wp/wp-admin/maint/repair.php +0 -124
  353. data/lib/wp/wp-admin/media-new.php +0 -84
  354. data/lib/wp/wp-admin/media-upload.php +0 -100
  355. data/lib/wp/wp-admin/media.php +0 -146
  356. data/lib/wp/wp-admin/menu-header.php +0 -227
  357. data/lib/wp/wp-admin/menu.php +0 -255
  358. data/lib/wp/wp-admin/moderation.php +0 -12
  359. data/lib/wp/wp-admin/ms-admin.php +0 -13
  360. data/lib/wp/wp-admin/ms-delete-site.php +0 -91
  361. data/lib/wp/wp-admin/ms-edit.php +0 -13
  362. data/lib/wp/wp-admin/ms-options.php +0 -12
  363. data/lib/wp/wp-admin/ms-sites.php +0 -13
  364. data/lib/wp/wp-admin/ms-themes.php +0 -13
  365. data/lib/wp/wp-admin/ms-upgrade-network.php +0 -13
  366. data/lib/wp/wp-admin/ms-users.php +0 -13
  367. data/lib/wp/wp-admin/my-sites.php +0 -145
  368. data/lib/wp/wp-admin/nav-menus.php +0 -798
  369. data/lib/wp/wp-admin/network.php +0 -561
  370. data/lib/wp/wp-admin/network/about.php +0 -16
  371. data/lib/wp/wp-admin/network/admin.php +0 -32
  372. data/lib/wp/wp-admin/network/credits.php +0 -16
  373. data/lib/wp/wp-admin/network/edit.php +0 -42
  374. data/lib/wp/wp-admin/network/freedoms.php +0 -16
  375. data/lib/wp/wp-admin/network/index.php +0 -79
  376. data/lib/wp/wp-admin/network/menu.php +0 -63
  377. data/lib/wp/wp-admin/network/plugin-editor.php +0 -16
  378. data/lib/wp/wp-admin/network/plugin-install.php +0 -19
  379. data/lib/wp/wp-admin/network/plugins.php +0 -16
  380. data/lib/wp/wp-admin/network/profile.php +0 -16
  381. data/lib/wp/wp-admin/network/settings.php +0 -347
  382. data/lib/wp/wp-admin/network/setup.php +0 -16
  383. data/lib/wp/wp-admin/network/site-info.php +0 -178
  384. data/lib/wp/wp-admin/network/site-new.php +0 -153
  385. data/lib/wp/wp-admin/network/site-settings.php +0 -173
  386. data/lib/wp/wp-admin/network/site-themes.php +0 -185
  387. data/lib/wp/wp-admin/network/site-users.php +0 -319
  388. data/lib/wp/wp-admin/network/sites.php +0 -275
  389. data/lib/wp/wp-admin/network/theme-editor.php +0 -16
  390. data/lib/wp/wp-admin/network/theme-install.php +0 -19
  391. data/lib/wp/wp-admin/network/themes.php +0 -291
  392. data/lib/wp/wp-admin/network/update-core.php +0 -16
  393. data/lib/wp/wp-admin/network/update.php +0 -19
  394. data/lib/wp/wp-admin/network/upgrade.php +0 -120
  395. data/lib/wp/wp-admin/network/user-edit.php +0 -16
  396. data/lib/wp/wp-admin/network/user-new.php +0 -106
  397. data/lib/wp/wp-admin/network/users.php +0 -296
  398. data/lib/wp/wp-admin/options-discussion.php +0 -273
  399. data/lib/wp/wp-admin/options-general.php +0 -355
  400. data/lib/wp/wp-admin/options-head.php +0 -18
  401. data/lib/wp/wp-admin/options-media.php +0 -136
  402. data/lib/wp/wp-admin/options-permalink.php +0 -289
  403. data/lib/wp/wp-admin/options-reading.php +0 -184
  404. data/lib/wp/wp-admin/options-writing.php +0 -194
  405. data/lib/wp/wp-admin/options.php +0 -265
  406. data/lib/wp/wp-admin/plugin-editor.php +0 -279
  407. data/lib/wp/wp-admin/plugin-install.php +0 -134
  408. data/lib/wp/wp-admin/plugins.php +0 -474
  409. data/lib/wp/wp-admin/post-new.php +0 -74
  410. data/lib/wp/wp-admin/post.php +0 -318
  411. data/lib/wp/wp-admin/press-this.php +0 -691
  412. data/lib/wp/wp-admin/profile.php +0 -18
  413. data/lib/wp/wp-admin/revision.php +0 -221
  414. data/lib/wp/wp-admin/setup-config.php +0 -345
  415. data/lib/wp/wp-admin/theme-editor.php +0 -243
  416. data/lib/wp/wp-admin/theme-install.php +0 -278
  417. data/lib/wp/wp-admin/themes.php +0 -374
  418. data/lib/wp/wp-admin/tools.php +0 -75
  419. data/lib/wp/wp-admin/update-core.php +0 -653
  420. data/lib/wp/wp-admin/update.php +0 -272
  421. data/lib/wp/wp-admin/upgrade-functions.php +0 -12
  422. data/lib/wp/wp-admin/upgrade.php +0 -116
  423. data/lib/wp/wp-admin/upload.php +0 -292
  424. data/lib/wp/wp-admin/user-edit.php +0 -557
  425. data/lib/wp/wp-admin/user-new.php +0 -439
  426. data/lib/wp/wp-admin/user/about.php +0 -13
  427. data/lib/wp/wp-admin/user/admin.php +0 -32
  428. data/lib/wp/wp-admin/user/credits.php +0 -13
  429. data/lib/wp/wp-admin/user/freedoms.php +0 -13
  430. data/lib/wp/wp-admin/user/index.php +0 -12
  431. data/lib/wp/wp-admin/user/menu.php +0 -22
  432. data/lib/wp/wp-admin/user/profile.php +0 -12
  433. data/lib/wp/wp-admin/user/user-edit.php +0 -12
  434. data/lib/wp/wp-admin/users.php +0 -460
  435. data/lib/wp/wp-admin/widgets.php +0 -442
  436. data/lib/wp/wp-blog-header.php +0 -18
  437. data/lib/wp/wp-comments-post.php +0 -164
  438. data/lib/wp/wp-config-sample.php +0 -80
  439. data/lib/wp/wp-content/index.php +0 -2
  440. data/lib/wp/wp-content/plugins/hello.php +0 -82
  441. data/lib/wp/wp-content/plugins/index.php +0 -2
  442. data/lib/wp/wp-content/themes/index.php +0 -2
  443. data/lib/wp/wp-content/themes/stump/.editorconfig +0 -11
  444. data/lib/wp/wp-content/themes/stump/.jshintrc +0 -16
  445. data/lib/wp/wp-content/themes/stump/404.php +0 -13
  446. data/lib/wp/wp-content/themes/stump/CHANGELOG.md +0 -333
  447. data/lib/wp/wp-content/themes/stump/CONTRIBUTING.md +0 -121
  448. data/lib/wp/wp-content/themes/stump/Gruntfile.js +0 -151
  449. data/lib/wp/wp-content/themes/stump/LICENSE.md +0 -19
  450. data/lib/wp/wp-content/themes/stump/assets/coffee/build/.gitkeep +0 -0
  451. data/lib/wp/wp-content/themes/stump/assets/css/editor-style.css +0 -548
  452. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.eot +0 -0
  453. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.svg +0 -229
  454. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.ttf +0 -0
  455. data/lib/wp/wp-content/themes/stump/assets/fonts/glyphicons-halflings-regular.woff +0 -0
  456. data/lib/wp/wp-content/themes/stump/assets/img/.gitignore +0 -0
  457. data/lib/wp/wp-content/themes/stump/assets/js/_main.js +0 -63
  458. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/affix.js +0 -137
  459. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/alert.js +0 -88
  460. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/button.js +0 -107
  461. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/carousel.js +0 -205
  462. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/collapse.js +0 -170
  463. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/dropdown.js +0 -147
  464. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/modal.js +0 -243
  465. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/popover.js +0 -110
  466. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/scrollspy.js +0 -153
  467. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tab.js +0 -125
  468. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/tooltip.js +0 -399
  469. data/lib/wp/wp-content/themes/stump/assets/js/plugins/bootstrap/transition.js +0 -48
  470. data/lib/wp/wp-content/themes/stump/assets/js/scripts.min.js +0 -1
  471. data/lib/wp/wp-content/themes/stump/assets/js/vendor/jquery-1.11.0.min.js +0 -4
  472. data/lib/wp/wp-content/themes/stump/assets/js/vendor/modernizr-2.7.0.min.js +0 -4
  473. data/lib/wp/wp-content/themes/stump/assets/sass/app.scss +0 -9
  474. data/lib/wp/wp-content/themes/stump/assets/sass/core/_variables.scss +0 -1
  475. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_alerts.scss +0 -67
  476. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_badges.scss +0 -55
  477. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_bootstrap.scss +0 -49
  478. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_breadcrumbs.scss +0 -26
  479. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_button-groups.scss +0 -226
  480. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_buttons.scss +0 -159
  481. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_carousel.scss +0 -232
  482. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_close.scss +0 -35
  483. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_code.scss +0 -63
  484. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_component-animations.scss +0 -29
  485. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_dropdowns.scss +0 -213
  486. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_forms.scss +0 -436
  487. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_glyphicons.scss +0 -233
  488. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_grid.scss +0 -84
  489. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_input-groups.scss +0 -162
  490. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_jumbotron.scss +0 -44
  491. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_labels.scss +0 -64
  492. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_list-group.scss +0 -110
  493. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_media.scss +0 -56
  494. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_mixins.scss +0 -947
  495. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_modals.scss +0 -139
  496. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navbar.scss +0 -620
  497. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_navs.scss +0 -242
  498. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_normalize.scss +0 -423
  499. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pager.scss +0 -55
  500. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_pagination.scss +0 -88
  501. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_panels.scss +0 -241
  502. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_popovers.scss +0 -133
  503. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_print.scss +0 -101
  504. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_progress-bars.scss +0 -80
  505. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_responsive-utilities.scss +0 -74
  506. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_scaffolding.scss +0 -134
  507. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tables.scss +0 -233
  508. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_theme.scss +0 -247
  509. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_thumbnails.scss +0 -38
  510. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_tooltip.scss +0 -95
  511. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_type.scss +0 -284
  512. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_utilities.scss +0 -56
  513. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_variables.scss +0 -833
  514. data/lib/wp/wp-content/themes/stump/assets/vendor/bootstrap/_wells.scss +0 -29
  515. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon-deprecated-upcoming.scss +0 -13
  516. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/_bourbon.scss +0 -59
  517. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_button.scss +0 -273
  518. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_clearfix.scss +0 -29
  519. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_font-family.scss +0 -5
  520. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_hide-text.scss +0 -5
  521. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_html5-input-types.scss +0 -56
  522. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_position.scss +0 -42
  523. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_prefixer.scss +0 -49
  524. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_retina-image.scss +0 -32
  525. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_size.scss +0 -44
  526. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_timing-functions.scss +0 -32
  527. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/addons/_triangle.scss +0 -45
  528. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_animation.scss +0 -52
  529. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_appearance.scss +0 -3
  530. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_backface-visibility.scss +0 -6
  531. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background-image.scss +0 -48
  532. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_background.scss +0 -103
  533. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-image.scss +0 -55
  534. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_border-radius.scss +0 -22
  535. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_box-sizing.scss +0 -4
  536. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_columns.scss +0 -47
  537. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_flex-box.scss +0 -52
  538. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_font-face.scss +0 -23
  539. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_hidpi-media-query.scss +0 -10
  540. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_image-rendering.scss +0 -13
  541. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_inline-block.scss +0 -8
  542. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_keyframes.scss +0 -43
  543. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_linear-gradient.scss +0 -41
  544. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_perspective.scss +0 -8
  545. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_placeholder.scss +0 -29
  546. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_radial-gradient.scss +0 -44
  547. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transform.scss +0 -15
  548. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_transition.scss +0 -34
  549. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/css3/_user-select.scss +0 -3
  550. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_compact.scss +0 -11
  551. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_flex-grid.scss +0 -39
  552. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_grid-width.scss +0 -13
  553. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_linear-gradient.scss +0 -13
  554. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_modular-scale.scss +0 -40
  555. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_px-to-em.scss +0 -8
  556. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_radial-gradient.scss +0 -23
  557. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_tint-shade.scss +0 -9
  558. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/functions/_transition-property-name.scss +0 -22
  559. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_deprecated-webkit-gradient.scss +0 -39
  560. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_gradient-positions-parser.scss +0 -13
  561. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_linear-positions-parser.scss +0 -61
  562. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-arg-parser.scss +0 -69
  563. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_radial-positions-parser.scss +0 -18
  564. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_render-gradients.scss +0 -26
  565. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/bourbon/helpers/_shape-size-stripper.scss +0 -10
  566. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan.sass +0 -11
  567. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_grid.sass +0 -161
  568. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_mixins.sass +0 -63
  569. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_utilities.sass +0 -24
  570. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/manhattan/_variables.sass +0 -42
  571. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat-helpers.scss +0 -8
  572. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/_neat.scss +0 -21
  573. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_new-breakpoint.scss +0 -16
  574. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_private.scss +0 -107
  575. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/functions/_px-to-em.scss +0 -3
  576. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_fill-parent.scss +0 -7
  577. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_grid.scss +0 -5
  578. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_media.scss +0 -51
  579. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_omega.scss +0 -79
  580. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_outer-container.scss +0 -8
  581. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_pad.scss +0 -8
  582. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_private.scss +0 -50
  583. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_reset.scss +0 -12
  584. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_row.scss +0 -17
  585. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_shift.scss +0 -9
  586. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_span-columns.scss +0 -38
  587. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_to-deprecate.scss +0 -57
  588. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/grid/_visual-grid.scss +0 -41
  589. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_grid.scss +0 -7
  590. data/lib/wp/wp-content/themes/stump/assets/vendor/manhattan/neat/settings/_visual-grid.scss +0 -5
  591. data/lib/wp/wp-content/themes/stump/base.php +0 -36
  592. data/lib/wp/wp-content/themes/stump/functions.php +0 -19
  593. data/lib/wp/wp-content/themes/stump/index.php +0 -21
  594. data/lib/wp/wp-content/themes/stump/lang/ar.mo +0 -0
  595. data/lib/wp/wp-content/themes/stump/lang/ar.po +0 -270
  596. data/lib/wp/wp-content/themes/stump/lang/bg_BG.mo +0 -0
  597. data/lib/wp/wp-content/themes/stump/lang/bg_BG.po +0 -338
  598. data/lib/wp/wp-content/themes/stump/lang/ca.mo +0 -0
  599. data/lib/wp/wp-content/themes/stump/lang/ca.po +0 -517
  600. data/lib/wp/wp-content/themes/stump/lang/da_DK.mo +0 -0
  601. data/lib/wp/wp-content/themes/stump/lang/da_DK.po +0 -305
  602. data/lib/wp/wp-content/themes/stump/lang/de_DE.mo +0 -0
  603. data/lib/wp/wp-content/themes/stump/lang/de_DE.po +0 -271
  604. data/lib/wp/wp-content/themes/stump/lang/el.mo +0 -0
  605. data/lib/wp/wp-content/themes/stump/lang/el.po +0 -319
  606. data/lib/wp/wp-content/themes/stump/lang/es_ES.mo +0 -0
  607. data/lib/wp/wp-content/themes/stump/lang/es_ES.po +0 -270
  608. data/lib/wp/wp-content/themes/stump/lang/et.mo +0 -0
  609. data/lib/wp/wp-content/themes/stump/lang/et.po +0 -262
  610. data/lib/wp/wp-content/themes/stump/lang/fa_IR.mo +0 -0
  611. data/lib/wp/wp-content/themes/stump/lang/fa_IR.po +0 -273
  612. data/lib/wp/wp-content/themes/stump/lang/fi_FI.mo +0 -0
  613. data/lib/wp/wp-content/themes/stump/lang/fi_FI.po +0 -367
  614. data/lib/wp/wp-content/themes/stump/lang/fr_FR.mo +0 -0
  615. data/lib/wp/wp-content/themes/stump/lang/fr_FR.po +0 -336
  616. data/lib/wp/wp-content/themes/stump/lang/he_IL.mo +0 -0
  617. data/lib/wp/wp-content/themes/stump/lang/he_IL.po +0 -336
  618. data/lib/wp/wp-content/themes/stump/lang/hu_HU.mo +0 -0
  619. data/lib/wp/wp-content/themes/stump/lang/hu_HU.po +0 -271
  620. data/lib/wp/wp-content/themes/stump/lang/id_ID.mo +0 -0
  621. data/lib/wp/wp-content/themes/stump/lang/id_ID.po +0 -278
  622. data/lib/wp/wp-content/themes/stump/lang/it_IT.mo +0 -0
  623. data/lib/wp/wp-content/themes/stump/lang/it_IT.po +0 -269
  624. data/lib/wp/wp-content/themes/stump/lang/ja.mo +0 -0
  625. data/lib/wp/wp-content/themes/stump/lang/ja.po +0 -267
  626. data/lib/wp/wp-content/themes/stump/lang/ko_KR.mo +0 -0
  627. data/lib/wp/wp-content/themes/stump/lang/ko_KR.po +0 -282
  628. data/lib/wp/wp-content/themes/stump/lang/mk_MK.mo +0 -0
  629. data/lib/wp/wp-content/themes/stump/lang/mk_MK.po +0 -297
  630. data/lib/wp/wp-content/themes/stump/lang/ms_MY.mo +0 -0
  631. data/lib/wp/wp-content/themes/stump/lang/ms_MY.po +0 -342
  632. data/lib/wp/wp-content/themes/stump/lang/nb_NO.mo +0 -0
  633. data/lib/wp/wp-content/themes/stump/lang/nb_NO.po +0 -517
  634. data/lib/wp/wp-content/themes/stump/lang/nl_NL.mo +0 -0
  635. data/lib/wp/wp-content/themes/stump/lang/nl_NL.po +0 -261
  636. data/lib/wp/wp-content/themes/stump/lang/nn_NO.mo +0 -0
  637. data/lib/wp/wp-content/themes/stump/lang/nn_NO.po +0 -517
  638. data/lib/wp/wp-content/themes/stump/lang/pl_PL.mo +0 -0
  639. data/lib/wp/wp-content/themes/stump/lang/pl_PL.po +0 -283
  640. data/lib/wp/wp-content/themes/stump/lang/pt_BR.mo +0 -0
  641. data/lib/wp/wp-content/themes/stump/lang/pt_BR.po +0 -394
  642. data/lib/wp/wp-content/themes/stump/lang/ro_RO.mo +0 -0
  643. data/lib/wp/wp-content/themes/stump/lang/ro_RO.po +0 -271
  644. data/lib/wp/wp-content/themes/stump/lang/roots.pot +0 -244
  645. data/lib/wp/wp-content/themes/stump/lang/ru_RU.mo +0 -0
  646. data/lib/wp/wp-content/themes/stump/lang/ru_RU.po +0 -255
  647. data/lib/wp/wp-content/themes/stump/lang/sk_SK.mo +0 -0
  648. data/lib/wp/wp-content/themes/stump/lang/sk_SK.po +0 -267
  649. data/lib/wp/wp-content/themes/stump/lang/sr_RS.mo +0 -0
  650. data/lib/wp/wp-content/themes/stump/lang/sr_RS.pot +0 -261
  651. data/lib/wp/wp-content/themes/stump/lang/sv_SE.mo +0 -0
  652. data/lib/wp/wp-content/themes/stump/lang/sv_SE.po +0 -323
  653. data/lib/wp/wp-content/themes/stump/lang/tr_TR.mo +0 -0
  654. data/lib/wp/wp-content/themes/stump/lang/tr_TR.po +0 -405
  655. data/lib/wp/wp-content/themes/stump/lang/vi_VN.mo +0 -0
  656. data/lib/wp/wp-content/themes/stump/lang/vi_VN.po +0 -516
  657. data/lib/wp/wp-content/themes/stump/lang/zh_CN.mo +0 -0
  658. data/lib/wp/wp-content/themes/stump/lang/zh_CN.po +0 -329
  659. data/lib/wp/wp-content/themes/stump/lang/zh_TW.mo +0 -0
  660. data/lib/wp/wp-content/themes/stump/lang/zh_TW.po +0 -261
  661. data/lib/wp/wp-content/themes/stump/lib/activation.php +0 -215
  662. data/lib/wp/wp-content/themes/stump/lib/cleanup.php +0 -261
  663. data/lib/wp/wp-content/themes/stump/lib/comments.php +0 -52
  664. data/lib/wp/wp-content/themes/stump/lib/config.php +0 -79
  665. data/lib/wp/wp-content/themes/stump/lib/custom.php +0 -4
  666. data/lib/wp/wp-content/themes/stump/lib/gallery.php +0 -130
  667. data/lib/wp/wp-content/themes/stump/lib/init.php +0 -25
  668. data/lib/wp/wp-content/themes/stump/lib/nav.php +0 -93
  669. data/lib/wp/wp-content/themes/stump/lib/relative-urls.php +0 -50
  670. data/lib/wp/wp-content/themes/stump/lib/scripts.php +0 -67
  671. data/lib/wp/wp-content/themes/stump/lib/sidebar.php +0 -43
  672. data/lib/wp/wp-content/themes/stump/lib/titles.php +0 -37
  673. data/lib/wp/wp-content/themes/stump/lib/utils.php +0 -14
  674. data/lib/wp/wp-content/themes/stump/lib/widgets.php +0 -133
  675. data/lib/wp/wp-content/themes/stump/lib/wrapper.php +0 -49
  676. data/lib/wp/wp-content/themes/stump/package.json +0 -32
  677. data/lib/wp/wp-content/themes/stump/page.php +0 -2
  678. data/lib/wp/wp-content/themes/stump/screenshot.png +0 -0
  679. data/lib/wp/wp-content/themes/stump/single.php +0 -1
  680. data/lib/wp/wp-content/themes/stump/style.css +0 -11
  681. data/lib/wp/wp-content/themes/stump/template-custom.php +0 -8
  682. data/lib/wp/wp-content/themes/stump/templates/comment.php +0 -14
  683. data/lib/wp/wp-content/themes/stump/templates/comments.php +0 -80
  684. data/lib/wp/wp-content/themes/stump/templates/content-page.php +0 -4
  685. data/lib/wp/wp-content/themes/stump/templates/content-single.php +0 -15
  686. data/lib/wp/wp-content/themes/stump/templates/content.php +0 -9
  687. data/lib/wp/wp-content/themes/stump/templates/entry-meta.php +0 -2
  688. data/lib/wp/wp-content/themes/stump/templates/footer.php +0 -8
  689. data/lib/wp/wp-content/themes/stump/templates/head.php +0 -12
  690. data/lib/wp/wp-content/themes/stump/templates/header-top-navbar.php +0 -21
  691. data/lib/wp/wp-content/themes/stump/templates/header.php +0 -14
  692. data/lib/wp/wp-content/themes/stump/templates/page-header.php +0 -5
  693. data/lib/wp/wp-content/themes/stump/templates/searchform.php +0 -9
  694. data/lib/wp/wp-content/themes/stump/templates/sidebar.php +0 -1
  695. data/lib/wp/wp-cron.php +0 -115
  696. data/lib/wp/wp-includes/ID3/getid3.lib.php +0 -1376
  697. data/lib/wp/wp-includes/ID3/getid3.php +0 -1796
  698. data/lib/wp/wp-includes/ID3/license.commercial.txt +0 -27
  699. data/lib/wp/wp-includes/ID3/license.txt +0 -29
  700. data/lib/wp/wp-includes/ID3/module.audio-video.asf.php +0 -2013
  701. data/lib/wp/wp-includes/ID3/module.audio-video.flv.php +0 -745
  702. data/lib/wp/wp-includes/ID3/module.audio-video.matroska.php +0 -1751
  703. data/lib/wp/wp-includes/ID3/module.audio-video.quicktime.php +0 -2246
  704. data/lib/wp/wp-includes/ID3/module.audio-video.riff.php +0 -2586
  705. data/lib/wp/wp-includes/ID3/module.audio.ac3.php +0 -474
  706. data/lib/wp/wp-includes/ID3/module.audio.dts.php +0 -291
  707. data/lib/wp/wp-includes/ID3/module.audio.flac.php +0 -443
  708. data/lib/wp/wp-includes/ID3/module.audio.mp3.php +0 -2012
  709. data/lib/wp/wp-includes/ID3/module.audio.ogg.php +0 -756
  710. data/lib/wp/wp-includes/ID3/module.tag.apetag.php +0 -371
  711. data/lib/wp/wp-includes/ID3/module.tag.id3v1.php +0 -360
  712. data/lib/wp/wp-includes/ID3/module.tag.id3v2.php +0 -3424
  713. data/lib/wp/wp-includes/ID3/module.tag.lyrics3.php +0 -294
  714. data/lib/wp/wp-includes/ID3/readme.txt +0 -604
  715. data/lib/wp/wp-includes/SimplePie/Author.php +0 -157
  716. data/lib/wp/wp-includes/SimplePie/Cache.php +0 -133
  717. data/lib/wp/wp-includes/SimplePie/Cache/Base.php +0 -114
  718. data/lib/wp/wp-includes/SimplePie/Cache/DB.php +0 -137
  719. data/lib/wp/wp-includes/SimplePie/Cache/File.php +0 -173
  720. data/lib/wp/wp-includes/SimplePie/Cache/Memcache.php +0 -183
  721. data/lib/wp/wp-includes/SimplePie/Cache/MySQL.php +0 -438
  722. data/lib/wp/wp-includes/SimplePie/Caption.php +0 -210
  723. data/lib/wp/wp-includes/SimplePie/Category.php +0 -157
  724. data/lib/wp/wp-includes/SimplePie/Content/Type/Sniffer.php +0 -332
  725. data/lib/wp/wp-includes/SimplePie/Copyright.php +0 -130
  726. data/lib/wp/wp-includes/SimplePie/Core.php +0 -57
  727. data/lib/wp/wp-includes/SimplePie/Credit.php +0 -156
  728. data/lib/wp/wp-includes/SimplePie/Decode/HTML/Entities.php +0 -617
  729. data/lib/wp/wp-includes/SimplePie/Enclosure.php +0 -1380
  730. data/lib/wp/wp-includes/SimplePie/Exception.php +0 -52
  731. data/lib/wp/wp-includes/SimplePie/File.php +0 -292
  732. data/lib/wp/wp-includes/SimplePie/HTTP/Parser.php +0 -500
  733. data/lib/wp/wp-includes/SimplePie/IRI.php +0 -1238
  734. data/lib/wp/wp-includes/SimplePie/Item.php +0 -2964
  735. data/lib/wp/wp-includes/SimplePie/Locator.php +0 -372
  736. data/lib/wp/wp-includes/SimplePie/Misc.php +0 -2247
  737. data/lib/wp/wp-includes/SimplePie/Net/IPv6.php +0 -276
  738. data/lib/wp/wp-includes/SimplePie/Parse/Date.php +0 -983
  739. data/lib/wp/wp-includes/SimplePie/Parser.php +0 -407
  740. data/lib/wp/wp-includes/SimplePie/Rating.php +0 -129
  741. data/lib/wp/wp-includes/SimplePie/Registry.php +0 -225
  742. data/lib/wp/wp-includes/SimplePie/Restriction.php +0 -155
  743. data/lib/wp/wp-includes/SimplePie/Sanitize.php +0 -554
  744. data/lib/wp/wp-includes/SimplePie/Source.php +0 -611
  745. data/lib/wp/wp-includes/SimplePie/XML/Declaration/Parser.php +0 -362
  746. data/lib/wp/wp-includes/SimplePie/gzdecode.php +0 -371
  747. data/lib/wp/wp-includes/Text/Diff.php +0 -450
  748. data/lib/wp/wp-includes/Text/Diff/Engine/native.php +0 -436
  749. data/lib/wp/wp-includes/Text/Diff/Engine/shell.php +0 -162
  750. data/lib/wp/wp-includes/Text/Diff/Engine/string.php +0 -248
  751. data/lib/wp/wp-includes/Text/Diff/Engine/xdiff.php +0 -64
  752. data/lib/wp/wp-includes/Text/Diff/Renderer.php +0 -235
  753. data/lib/wp/wp-includes/Text/Diff/Renderer/inline.php +0 -206
  754. data/lib/wp/wp-includes/admin-bar.php +0 -870
  755. data/lib/wp/wp-includes/atomlib.php +0 -352
  756. data/lib/wp/wp-includes/author-template.php +0 -471
  757. data/lib/wp/wp-includes/bookmark-template.php +0 -298
  758. data/lib/wp/wp-includes/bookmark.php +0 -416
  759. data/lib/wp/wp-includes/cache.php +0 -704
  760. data/lib/wp/wp-includes/canonical.php +0 -586
  761. data/lib/wp/wp-includes/capabilities.php +0 -1539
  762. data/lib/wp/wp-includes/category-template.php +0 -1407
  763. data/lib/wp/wp-includes/category.php +0 -343
  764. data/lib/wp/wp-includes/certificates/ca-bundle.crt +0 -3785
  765. data/lib/wp/wp-includes/class-IXR.php +0 -1100
  766. data/lib/wp/wp-includes/class-feed.php +0 -140
  767. data/lib/wp/wp-includes/class-http.php +0 -2245
  768. data/lib/wp/wp-includes/class-json.php +0 -936
  769. data/lib/wp/wp-includes/class-oembed.php +0 -579
  770. data/lib/wp/wp-includes/class-phpass.php +0 -260
  771. data/lib/wp/wp-includes/class-phpmailer.php +0 -3265
  772. data/lib/wp/wp-includes/class-pop3.php +0 -652
  773. data/lib/wp/wp-includes/class-simplepie.php +0 -3119
  774. data/lib/wp/wp-includes/class-smtp.php +0 -943
  775. data/lib/wp/wp-includes/class-snoopy.php +0 -1256
  776. data/lib/wp/wp-includes/class-wp-admin-bar.php +0 -517
  777. data/lib/wp/wp-includes/class-wp-ajax-response.php +0 -199
  778. data/lib/wp/wp-includes/class-wp-customize-control.php +0 -1124
  779. data/lib/wp/wp-includes/class-wp-customize-manager.php +0 -1272
  780. data/lib/wp/wp-includes/class-wp-customize-panel.php +0 -200
  781. data/lib/wp/wp-includes/class-wp-customize-section.php +0 -196
  782. data/lib/wp/wp-includes/class-wp-customize-setting.php +0 -554
  783. data/lib/wp/wp-includes/class-wp-customize-widgets.php +0 -1556
  784. data/lib/wp/wp-includes/class-wp-editor.php +0 -1435
  785. data/lib/wp/wp-includes/class-wp-embed.php +0 -373
  786. data/lib/wp/wp-includes/class-wp-error.php +0 -276
  787. data/lib/wp/wp-includes/class-wp-http-ixr-client.php +0 -97
  788. data/lib/wp/wp-includes/class-wp-image-editor-gd.php +0 -459
  789. data/lib/wp/wp-includes/class-wp-image-editor-imagick.php +0 -512
  790. data/lib/wp/wp-includes/class-wp-image-editor.php +0 -475
  791. data/lib/wp/wp-includes/class-wp-theme.php +0 -1235
  792. data/lib/wp/wp-includes/class-wp-walker.php +0 -471
  793. data/lib/wp/wp-includes/class-wp-xmlrpc-server.php +0 -5984
  794. data/lib/wp/wp-includes/class-wp.php +0 -782
  795. data/lib/wp/wp-includes/class.wp-dependencies.php +0 -509
  796. data/lib/wp/wp-includes/class.wp-scripts.php +0 -247
  797. data/lib/wp/wp-includes/class.wp-styles.php +0 -210
  798. data/lib/wp/wp-includes/comment-template.php +0 -2286
  799. data/lib/wp/wp-includes/comment.php +0 -2606
  800. data/lib/wp/wp-includes/compat.php +0 -125
  801. data/lib/wp/wp-includes/cron.php +0 -469
  802. data/lib/wp/wp-includes/css/admin-bar-rtl.css +0 -1099
  803. data/lib/wp/wp-includes/css/admin-bar-rtl.min.css +0 -1
  804. data/lib/wp/wp-includes/css/admin-bar.css +0 -1099
  805. data/lib/wp/wp-includes/css/admin-bar.min.css +0 -1
  806. data/lib/wp/wp-includes/css/buttons-rtl.css +0 -364
  807. data/lib/wp/wp-includes/css/buttons-rtl.min.css +0 -1
  808. data/lib/wp/wp-includes/css/buttons.css +0 -364
  809. data/lib/wp/wp-includes/css/buttons.min.css +0 -1
  810. data/lib/wp/wp-includes/css/dashicons.css +0 -893
  811. data/lib/wp/wp-includes/css/dashicons.min.css +0 -1
  812. data/lib/wp/wp-includes/css/editor-rtl.css +0 -1993
  813. data/lib/wp/wp-includes/css/editor-rtl.min.css +0 -1
  814. data/lib/wp/wp-includes/css/editor.css +0 -1993
  815. data/lib/wp/wp-includes/css/editor.min.css +0 -1
  816. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.css +0 -343
  817. data/lib/wp/wp-includes/css/jquery-ui-dialog-rtl.min.css +0 -19
  818. data/lib/wp/wp-includes/css/jquery-ui-dialog.css +0 -343
  819. data/lib/wp/wp-includes/css/jquery-ui-dialog.min.css +0 -19
  820. data/lib/wp/wp-includes/css/media-views-rtl.css +0 -2568
  821. data/lib/wp/wp-includes/css/media-views-rtl.min.css +0 -1
  822. data/lib/wp/wp-includes/css/media-views.css +0 -2568
  823. data/lib/wp/wp-includes/css/media-views.min.css +0 -1
  824. data/lib/wp/wp-includes/css/wp-auth-check-rtl.css +0 -100
  825. data/lib/wp/wp-includes/css/wp-auth-check-rtl.min.css +0 -1
  826. data/lib/wp/wp-includes/css/wp-auth-check.css +0 -100
  827. data/lib/wp/wp-includes/css/wp-auth-check.min.css +0 -1
  828. data/lib/wp/wp-includes/css/wp-pointer-rtl.css +0 -212
  829. data/lib/wp/wp-includes/css/wp-pointer-rtl.min.css +0 -1
  830. data/lib/wp/wp-includes/css/wp-pointer.css +0 -212
  831. data/lib/wp/wp-includes/css/wp-pointer.min.css +0 -1
  832. data/lib/wp/wp-includes/date.php +0 -475
  833. data/lib/wp/wp-includes/default-constants.php +0 -323
  834. data/lib/wp/wp-includes/default-filters.php +0 -307
  835. data/lib/wp/wp-includes/default-widgets.php +0 -1423
  836. data/lib/wp/wp-includes/deprecated.php +0 -3501
  837. data/lib/wp/wp-includes/feed-atom-comments.php +0 -115
  838. data/lib/wp/wp-includes/feed-atom.php +0 -87
  839. data/lib/wp/wp-includes/feed-rdf.php +0 -81
  840. data/lib/wp/wp-includes/feed-rss.php +0 -46
  841. data/lib/wp/wp-includes/feed-rss2-comments.php +0 -97
  842. data/lib/wp/wp-includes/feed-rss2.php +0 -115
  843. data/lib/wp/wp-includes/feed.php +0 -659
  844. data/lib/wp/wp-includes/fonts/dashicons.eot +0 -0
  845. data/lib/wp/wp-includes/fonts/dashicons.svg +0 -250
  846. data/lib/wp/wp-includes/fonts/dashicons.ttf +0 -0
  847. data/lib/wp/wp-includes/fonts/dashicons.woff +0 -0
  848. data/lib/wp/wp-includes/formatting.php +0 -4006
  849. data/lib/wp/wp-includes/functions.php +0 -4631
  850. data/lib/wp/wp-includes/functions.wp-scripts.php +0 -258
  851. data/lib/wp/wp-includes/functions.wp-styles.php +0 -245
  852. data/lib/wp/wp-includes/general-template.php +0 -2982
  853. data/lib/wp/wp-includes/http.php +0 -551
  854. data/lib/wp/wp-includes/images/admin-bar-sprite-2x.png +0 -0
  855. data/lib/wp/wp-includes/images/admin-bar-sprite.png +0 -0
  856. data/lib/wp/wp-includes/images/arrow-pointer-blue-2x.png +0 -0
  857. data/lib/wp/wp-includes/images/arrow-pointer-blue.png +0 -0
  858. data/lib/wp/wp-includes/images/blank.gif +0 -0
  859. data/lib/wp/wp-includes/images/crystal/archive.png +0 -0
  860. data/lib/wp/wp-includes/images/crystal/audio.png +0 -0
  861. data/lib/wp/wp-includes/images/crystal/code.png +0 -0
  862. data/lib/wp/wp-includes/images/crystal/default.png +0 -0
  863. data/lib/wp/wp-includes/images/crystal/document.png +0 -0
  864. data/lib/wp/wp-includes/images/crystal/interactive.png +0 -0
  865. data/lib/wp/wp-includes/images/crystal/license.txt +0 -9
  866. data/lib/wp/wp-includes/images/crystal/spreadsheet.png +0 -0
  867. data/lib/wp/wp-includes/images/crystal/text.png +0 -0
  868. data/lib/wp/wp-includes/images/crystal/video.png +0 -0
  869. data/lib/wp/wp-includes/images/down_arrow-2x.gif +0 -0
  870. data/lib/wp/wp-includes/images/down_arrow.gif +0 -0
  871. data/lib/wp/wp-includes/images/icon-pointer-flag-2x.png +0 -0
  872. data/lib/wp/wp-includes/images/icon-pointer-flag.png +0 -0
  873. data/lib/wp/wp-includes/images/media/archive.png +0 -0
  874. data/lib/wp/wp-includes/images/media/audio.png +0 -0
  875. data/lib/wp/wp-includes/images/media/code.png +0 -0
  876. data/lib/wp/wp-includes/images/media/default.png +0 -0
  877. data/lib/wp/wp-includes/images/media/document.png +0 -0
  878. data/lib/wp/wp-includes/images/media/interactive.png +0 -0
  879. data/lib/wp/wp-includes/images/media/spreadsheet.png +0 -0
  880. data/lib/wp/wp-includes/images/media/text.png +0 -0
  881. data/lib/wp/wp-includes/images/media/video.png +0 -0
  882. data/lib/wp/wp-includes/images/rss-2x.png +0 -0
  883. data/lib/wp/wp-includes/images/rss.png +0 -0
  884. data/lib/wp/wp-includes/images/smilies/icon_arrow.gif +0 -0
  885. data/lib/wp/wp-includes/images/smilies/icon_biggrin.gif +0 -0
  886. data/lib/wp/wp-includes/images/smilies/icon_confused.gif +0 -0
  887. data/lib/wp/wp-includes/images/smilies/icon_cool.gif +0 -0
  888. data/lib/wp/wp-includes/images/smilies/icon_cry.gif +0 -0
  889. data/lib/wp/wp-includes/images/smilies/icon_eek.gif +0 -0
  890. data/lib/wp/wp-includes/images/smilies/icon_evil.gif +0 -0
  891. data/lib/wp/wp-includes/images/smilies/icon_exclaim.gif +0 -0
  892. data/lib/wp/wp-includes/images/smilies/icon_idea.gif +0 -0
  893. data/lib/wp/wp-includes/images/smilies/icon_lol.gif +0 -0
  894. data/lib/wp/wp-includes/images/smilies/icon_mad.gif +0 -0
  895. data/lib/wp/wp-includes/images/smilies/icon_mrgreen.gif +0 -0
  896. data/lib/wp/wp-includes/images/smilies/icon_neutral.gif +0 -0
  897. data/lib/wp/wp-includes/images/smilies/icon_question.gif +0 -0
  898. data/lib/wp/wp-includes/images/smilies/icon_razz.gif +0 -0
  899. data/lib/wp/wp-includes/images/smilies/icon_redface.gif +0 -0
  900. data/lib/wp/wp-includes/images/smilies/icon_rolleyes.gif +0 -0
  901. data/lib/wp/wp-includes/images/smilies/icon_sad.gif +0 -0
  902. data/lib/wp/wp-includes/images/smilies/icon_smile.gif +0 -0
  903. data/lib/wp/wp-includes/images/smilies/icon_surprised.gif +0 -0
  904. data/lib/wp/wp-includes/images/smilies/icon_twisted.gif +0 -0
  905. data/lib/wp/wp-includes/images/smilies/icon_wink.gif +0 -0
  906. data/lib/wp/wp-includes/images/spinner-2x.gif +0 -0
  907. data/lib/wp/wp-includes/images/spinner.gif +0 -0
  908. data/lib/wp/wp-includes/images/toggle-arrow-2x.png +0 -0
  909. data/lib/wp/wp-includes/images/toggle-arrow.png +0 -0
  910. data/lib/wp/wp-includes/images/uploader-icons-2x.png +0 -0
  911. data/lib/wp/wp-includes/images/uploader-icons.png +0 -0
  912. data/lib/wp/wp-includes/images/wlw/wp-comments.png +0 -0
  913. data/lib/wp/wp-includes/images/wlw/wp-icon.png +0 -0
  914. data/lib/wp/wp-includes/images/wlw/wp-watermark.png +0 -0
  915. data/lib/wp/wp-includes/images/wpicons-2x.png +0 -0
  916. data/lib/wp/wp-includes/images/wpicons.png +0 -0
  917. data/lib/wp/wp-includes/images/wpspin-2x.gif +0 -0
  918. data/lib/wp/wp-includes/images/wpspin.gif +0 -0
  919. data/lib/wp/wp-includes/images/xit-2x.gif +0 -0
  920. data/lib/wp/wp-includes/images/xit.gif +0 -0
  921. data/lib/wp/wp-includes/js/admin-bar.js +0 -365
  922. data/lib/wp/wp-includes/js/admin-bar.min.js +0 -1
  923. data/lib/wp/wp-includes/js/autosave.js +0 -589
  924. data/lib/wp/wp-includes/js/autosave.min.js +0 -1
  925. data/lib/wp/wp-includes/js/backbone.min.js +0 -1
  926. data/lib/wp/wp-includes/js/colorpicker.js +0 -707
  927. data/lib/wp/wp-includes/js/colorpicker.min.js +0 -1
  928. data/lib/wp/wp-includes/js/comment-reply.js +0 -47
  929. data/lib/wp/wp-includes/js/comment-reply.min.js +0 -1
  930. data/lib/wp/wp-includes/js/crop/cropper.css +0 -165
  931. data/lib/wp/wp-includes/js/crop/cropper.js +0 -516
  932. data/lib/wp/wp-includes/js/crop/marqueeHoriz.gif +0 -0
  933. data/lib/wp/wp-includes/js/crop/marqueeVert.gif +0 -0
  934. data/lib/wp/wp-includes/js/customize-base.js +0 -617
  935. data/lib/wp/wp-includes/js/customize-base.min.js +0 -1
  936. data/lib/wp/wp-includes/js/customize-loader.js +0 -246
  937. data/lib/wp/wp-includes/js/customize-loader.min.js +0 -1
  938. data/lib/wp/wp-includes/js/customize-models.js +0 -247
  939. data/lib/wp/wp-includes/js/customize-models.min.js +0 -1
  940. data/lib/wp/wp-includes/js/customize-preview-widgets.js +0 -129
  941. data/lib/wp/wp-includes/js/customize-preview-widgets.min.js +0 -1
  942. data/lib/wp/wp-includes/js/customize-preview.js +0 -154
  943. data/lib/wp/wp-includes/js/customize-preview.min.js +0 -1
  944. data/lib/wp/wp-includes/js/customize-views.js +0 -231
  945. data/lib/wp/wp-includes/js/customize-views.min.js +0 -1
  946. data/lib/wp/wp-includes/js/heartbeat.js +0 -738
  947. data/lib/wp/wp-includes/js/heartbeat.min.js +0 -1
  948. data/lib/wp/wp-includes/js/hoverIntent.js +0 -115
  949. data/lib/wp/wp-includes/js/hoverIntent.min.js +0 -1
  950. data/lib/wp/wp-includes/js/imgareaselect/border-anim-h.gif +0 -0
  951. data/lib/wp/wp-includes/js/imgareaselect/border-anim-v.gif +0 -0
  952. data/lib/wp/wp-includes/js/imgareaselect/imgareaselect.css +0 -41
  953. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.js +0 -1205
  954. data/lib/wp/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js +0 -1
  955. data/lib/wp/wp-includes/js/jcrop/Jcrop.gif +0 -0
  956. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.css +0 -29
  957. data/lib/wp/wp-includes/js/jcrop/jquery.Jcrop.min.js +0 -22
  958. data/lib/wp/wp-includes/js/jquery/jquery-migrate.js +0 -521
  959. data/lib/wp/wp-includes/js/jquery/jquery-migrate.min.js +0 -2
  960. data/lib/wp/wp-includes/js/jquery/jquery.color.min.js +0 -2
  961. data/lib/wp/wp-includes/js/jquery/jquery.form.js +0 -1193
  962. data/lib/wp/wp-includes/js/jquery/jquery.form.min.js +0 -11
  963. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.js +0 -134
  964. data/lib/wp/wp-includes/js/jquery/jquery.hotkeys.min.js +0 -1
  965. data/lib/wp/wp-includes/js/jquery/jquery.js +0 -5
  966. data/lib/wp/wp-includes/js/jquery/jquery.masonry.min.js +0 -11
  967. data/lib/wp/wp-includes/js/jquery/jquery.query.js +0 -11
  968. data/lib/wp/wp-includes/js/jquery/jquery.schedule.js +0 -36
  969. data/lib/wp/wp-includes/js/jquery/jquery.serialize-object.js +0 -31
  970. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.js +0 -99
  971. data/lib/wp/wp-includes/js/jquery/jquery.table-hotkeys.min.js +0 -1
  972. data/lib/wp/wp-includes/js/jquery/jquery.ui.touch-punch.js +0 -11
  973. data/lib/wp/wp-includes/js/jquery/suggest.js +0 -316
  974. data/lib/wp/wp-includes/js/jquery/suggest.min.js +0 -1
  975. data/lib/wp/wp-includes/js/jquery/ui/accordion.min.js +0 -11
  976. data/lib/wp/wp-includes/js/jquery/ui/autocomplete.min.js +0 -11
  977. data/lib/wp/wp-includes/js/jquery/ui/button.min.js +0 -11
  978. data/lib/wp/wp-includes/js/jquery/ui/core.min.js +0 -11
  979. data/lib/wp/wp-includes/js/jquery/ui/datepicker.min.js +0 -12
  980. data/lib/wp/wp-includes/js/jquery/ui/dialog.min.js +0 -11
  981. data/lib/wp/wp-includes/js/jquery/ui/draggable.min.js +0 -11
  982. data/lib/wp/wp-includes/js/jquery/ui/droppable.min.js +0 -11
  983. data/lib/wp/wp-includes/js/jquery/ui/effect-blind.min.js +0 -11
  984. data/lib/wp/wp-includes/js/jquery/ui/effect-bounce.min.js +0 -11
  985. data/lib/wp/wp-includes/js/jquery/ui/effect-clip.min.js +0 -11
  986. data/lib/wp/wp-includes/js/jquery/ui/effect-drop.min.js +0 -11
  987. data/lib/wp/wp-includes/js/jquery/ui/effect-explode.min.js +0 -11
  988. data/lib/wp/wp-includes/js/jquery/ui/effect-fade.min.js +0 -11
  989. data/lib/wp/wp-includes/js/jquery/ui/effect-fold.min.js +0 -11
  990. data/lib/wp/wp-includes/js/jquery/ui/effect-highlight.min.js +0 -11
  991. data/lib/wp/wp-includes/js/jquery/ui/effect-puff.min.js +0 -11
  992. data/lib/wp/wp-includes/js/jquery/ui/effect-pulsate.min.js +0 -11
  993. data/lib/wp/wp-includes/js/jquery/ui/effect-scale.min.js +0 -11
  994. data/lib/wp/wp-includes/js/jquery/ui/effect-shake.min.js +0 -11
  995. data/lib/wp/wp-includes/js/jquery/ui/effect-size.min.js +0 -11
  996. data/lib/wp/wp-includes/js/jquery/ui/effect-slide.min.js +0 -11
  997. data/lib/wp/wp-includes/js/jquery/ui/effect-transfer.min.js +0 -11
  998. data/lib/wp/wp-includes/js/jquery/ui/effect.min.js +0 -21
  999. data/lib/wp/wp-includes/js/jquery/ui/menu.min.js +0 -11
  1000. data/lib/wp/wp-includes/js/jquery/ui/mouse.min.js +0 -11
  1001. data/lib/wp/wp-includes/js/jquery/ui/position.min.js +0 -11
  1002. data/lib/wp/wp-includes/js/jquery/ui/progressbar.min.js +0 -11
  1003. data/lib/wp/wp-includes/js/jquery/ui/resizable.min.js +0 -11
  1004. data/lib/wp/wp-includes/js/jquery/ui/selectable.min.js +0 -11
  1005. data/lib/wp/wp-includes/js/jquery/ui/selectmenu.min.js +0 -11
  1006. data/lib/wp/wp-includes/js/jquery/ui/slider.min.js +0 -11
  1007. data/lib/wp/wp-includes/js/jquery/ui/sortable.min.js +0 -11
  1008. data/lib/wp/wp-includes/js/jquery/ui/spinner.min.js +0 -11
  1009. data/lib/wp/wp-includes/js/jquery/ui/tabs.min.js +0 -11
  1010. data/lib/wp/wp-includes/js/jquery/ui/tooltip.min.js +0 -11
  1011. data/lib/wp/wp-includes/js/jquery/ui/widget.min.js +0 -11
  1012. data/lib/wp/wp-includes/js/json2.js +0 -480
  1013. data/lib/wp/wp-includes/js/json2.min.js +0 -1
  1014. data/lib/wp/wp-includes/js/masonry.min.js +0 -1
  1015. data/lib/wp/wp-includes/js/mce-view.js +0 -829
  1016. data/lib/wp/wp-includes/js/mce-view.min.js +0 -1
  1017. data/lib/wp/wp-includes/js/media-audiovideo.js +0 -831
  1018. data/lib/wp/wp-includes/js/media-audiovideo.min.js +0 -1
  1019. data/lib/wp/wp-includes/js/media-editor.js +0 -1114
  1020. data/lib/wp/wp-includes/js/media-editor.min.js +0 -1
  1021. data/lib/wp/wp-includes/js/media-grid.js +0 -732
  1022. data/lib/wp/wp-includes/js/media-grid.min.js +0 -1
  1023. data/lib/wp/wp-includes/js/media-models.js +0 -1362
  1024. data/lib/wp/wp-includes/js/media-models.min.js +0 -1
  1025. data/lib/wp/wp-includes/js/media-views.js +0 -7484
  1026. data/lib/wp/wp-includes/js/media-views.min.js +0 -3
  1027. data/lib/wp/wp-includes/js/mediaelement/background.png +0 -0
  1028. data/lib/wp/wp-includes/js/mediaelement/bigplay.png +0 -0
  1029. data/lib/wp/wp-includes/js/mediaelement/bigplay.svg +0 -1
  1030. data/lib/wp/wp-includes/js/mediaelement/controls.png +0 -0
  1031. data/lib/wp/wp-includes/js/mediaelement/controls.svg +0 -1
  1032. data/lib/wp/wp-includes/js/mediaelement/flashmediaelement.swf +0 -0
  1033. data/lib/wp/wp-includes/js/mediaelement/loading.gif +0 -0
  1034. data/lib/wp/wp-includes/js/mediaelement/mediaelement-and-player.min.js +0 -181
  1035. data/lib/wp/wp-includes/js/mediaelement/mediaelementplayer.min.css +0 -1
  1036. data/lib/wp/wp-includes/js/mediaelement/silverlightmediaelement.xap +0 -0
  1037. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.css +0 -274
  1038. data/lib/wp/wp-includes/js/mediaelement/wp-mediaelement.js +0 -34
  1039. data/lib/wp/wp-includes/js/mediaelement/wp-playlist.js +0 -175
  1040. data/lib/wp/wp-includes/js/plupload/handlers.js +0 -488
  1041. data/lib/wp/wp-includes/js/plupload/handlers.min.js +0 -1
  1042. data/lib/wp/wp-includes/js/plupload/license.txt +0 -339
  1043. data/lib/wp/wp-includes/js/plupload/plupload.flash.swf +0 -0
  1044. data/lib/wp/wp-includes/js/plupload/plupload.full.min.js +0 -28
  1045. data/lib/wp/wp-includes/js/plupload/plupload.silverlight.xap +0 -0
  1046. data/lib/wp/wp-includes/js/plupload/wp-plupload.js +0 -376
  1047. data/lib/wp/wp-includes/js/plupload/wp-plupload.min.js +0 -1
  1048. data/lib/wp/wp-includes/js/quicktags.js +0 -652
  1049. data/lib/wp/wp-includes/js/quicktags.min.js +0 -1
  1050. data/lib/wp/wp-includes/js/shortcode.js +0 -356
  1051. data/lib/wp/wp-includes/js/shortcode.min.js +0 -1
  1052. data/lib/wp/wp-includes/js/swfobject.js +0 -4
  1053. data/lib/wp/wp-includes/js/swfupload/handlers.js +0 -376
  1054. data/lib/wp/wp-includes/js/swfupload/handlers.min.js +0 -1
  1055. data/lib/wp/wp-includes/js/swfupload/license.txt +0 -32
  1056. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.cookies.js +0 -53
  1057. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.queue.js +0 -98
  1058. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.speed.js +0 -342
  1059. data/lib/wp/wp-includes/js/swfupload/plugins/swfupload.swfobject.js +0 -105
  1060. data/lib/wp/wp-includes/js/swfupload/swfupload.js +0 -980
  1061. data/lib/wp/wp-includes/js/swfupload/swfupload.swf +0 -0
  1062. data/lib/wp/wp-includes/js/thickbox/loadingAnimation.gif +0 -0
  1063. data/lib/wp/wp-includes/js/thickbox/macFFBgHack.png +0 -0
  1064. data/lib/wp/wp-includes/js/thickbox/thickbox.css +0 -138
  1065. data/lib/wp/wp-includes/js/thickbox/thickbox.js +0 -314
  1066. data/lib/wp/wp-includes/js/tinymce/langs/wp-langs-en.js +0 -519
  1067. data/lib/wp/wp-includes/js/tinymce/license.txt +0 -504
  1068. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.js +0 -370
  1069. data/lib/wp/wp-includes/js/tinymce/plugins/charmap/plugin.min.js +0 -1
  1070. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.js +0 -112
  1071. data/lib/wp/wp-includes/js/tinymce/plugins/colorpicker/plugin.min.js +0 -1
  1072. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/css/dialog.css +0 -212
  1073. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.js +0 -304
  1074. data/lib/wp/wp-includes/js/tinymce/plugins/compat3x/plugin.min.js +0 -1
  1075. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.js +0 -64
  1076. data/lib/wp/wp-includes/js/tinymce/plugins/directionality/plugin.min.js +0 -1
  1077. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.js +0 -136
  1078. data/lib/wp/wp-includes/js/tinymce/plugins/fullscreen/plugin.min.js +0 -1
  1079. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.js +0 -30
  1080. data/lib/wp/wp-includes/js/tinymce/plugins/hr/plugin.min.js +0 -1
  1081. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.js +0 -450
  1082. data/lib/wp/wp-includes/js/tinymce/plugins/image/plugin.min.js +0 -1
  1083. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.js +0 -786
  1084. data/lib/wp/wp-includes/js/tinymce/plugins/lists/plugin.min.js +0 -1
  1085. data/lib/wp/wp-includes/js/tinymce/plugins/media/moxieplayer.swf +0 -0
  1086. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.js +0 -774
  1087. data/lib/wp/wp-includes/js/tinymce/plugins/media/plugin.min.js +0 -1
  1088. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.js +0 -1553
  1089. data/lib/wp/wp-includes/js/tinymce/plugins/paste/plugin.min.js +0 -1
  1090. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.js +0 -125
  1091. data/lib/wp/wp-includes/js/tinymce/plugins/tabfocus/plugin.min.js +0 -1
  1092. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.js +0 -272
  1093. data/lib/wp/wp-includes/js/tinymce/plugins/textcolor/plugin.min.js +0 -1
  1094. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.js +0 -513
  1095. data/lib/wp/wp-includes/js/tinymce/plugins/wordpress/plugin.min.js +0 -1
  1096. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.js +0 -207
  1097. data/lib/wp/wp-includes/js/tinymce/plugins/wpautoresize/plugin.min.js +0 -1
  1098. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.js +0 -92
  1099. data/lib/wp/wp-includes/js/tinymce/plugins/wpdialogs/plugin.min.js +0 -1
  1100. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.js +0 -1035
  1101. data/lib/wp/wp-includes/js/tinymce/plugins/wpeditimage/plugin.min.js +0 -1
  1102. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.js +0 -78
  1103. data/lib/wp/wp-includes/js/tinymce/plugins/wpfullscreen/plugin.min.js +0 -1
  1104. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.js +0 -130
  1105. data/lib/wp/wp-includes/js/tinymce/plugins/wpgallery/plugin.min.js +0 -1
  1106. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.js +0 -63
  1107. data/lib/wp/wp-includes/js/tinymce/plugins/wplink/plugin.min.js +0 -1
  1108. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.js +0 -694
  1109. data/lib/wp/wp-includes/js/tinymce/plugins/wpview/plugin.min.js +0 -1
  1110. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.inline.min.css +0 -1
  1111. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/content.min.css +0 -1
  1112. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/readme.md +0 -1
  1113. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.eot +0 -0
  1114. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.svg +0 -62
  1115. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.ttf +0 -0
  1116. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce-small.woff +0 -0
  1117. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.eot +0 -0
  1118. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.svg +0 -63
  1119. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.ttf +0 -0
  1120. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/fonts/tinymce.woff +0 -0
  1121. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/anchor.gif +0 -0
  1122. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/loader.gif +0 -0
  1123. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/object.gif +0 -0
  1124. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/img/trans.gif +0 -0
  1125. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.ie7.min.css +0 -1
  1126. data/lib/wp/wp-includes/js/tinymce/skins/lightgray/skin.min.css +0 -1
  1127. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/audio.png +0 -0
  1128. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-edit.png +0 -0
  1129. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/dashicon-no-alt.png +0 -0
  1130. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/embedded.png +0 -0
  1131. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery-2x.png +0 -0
  1132. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/gallery.png +0 -0
  1133. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more-2x.png +0 -0
  1134. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/more.png +0 -0
  1135. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak-2x.png +0 -0
  1136. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/pagebreak.png +0 -0
  1137. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-audio.png +0 -0
  1138. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/playlist-video.png +0 -0
  1139. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/images/video.png +0 -0
  1140. data/lib/wp/wp-includes/js/tinymce/skins/wordpress/wp-content.css +0 -618
  1141. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.js +0 -617
  1142. data/lib/wp/wp-includes/js/tinymce/themes/modern/theme.min.js +0 -1
  1143. data/lib/wp/wp-includes/js/tinymce/tiny_mce_popup.js +0 -539
  1144. data/lib/wp/wp-includes/js/tinymce/tinymce.min.js +0 -11
  1145. data/lib/wp/wp-includes/js/tinymce/utils/editable_selects.js +0 -70
  1146. data/lib/wp/wp-includes/js/tinymce/utils/form_utils.js +0 -210
  1147. data/lib/wp/wp-includes/js/tinymce/utils/mctabs.js +0 -164
  1148. data/lib/wp/wp-includes/js/tinymce/utils/validate.js +0 -252
  1149. data/lib/wp/wp-includes/js/tinymce/wp-mce-help.php +0 -145
  1150. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.js.gz +0 -0
  1151. data/lib/wp/wp-includes/js/tinymce/wp-tinymce.php +0 -39
  1152. data/lib/wp/wp-includes/js/tw-sack.js +0 -193
  1153. data/lib/wp/wp-includes/js/tw-sack.min.js +0 -1
  1154. data/lib/wp/wp-includes/js/underscore.min.js +0 -1
  1155. data/lib/wp/wp-includes/js/utils.js +0 -197
  1156. data/lib/wp/wp-includes/js/utils.min.js +0 -1
  1157. data/lib/wp/wp-includes/js/wp-ajax-response.js +0 -64
  1158. data/lib/wp/wp-includes/js/wp-ajax-response.min.js +0 -1
  1159. data/lib/wp/wp-includes/js/wp-auth-check.js +0 -112
  1160. data/lib/wp/wp-includes/js/wp-auth-check.min.js +0 -1
  1161. data/lib/wp/wp-includes/js/wp-backbone.js +0 -386
  1162. data/lib/wp/wp-includes/js/wp-backbone.min.js +0 -1
  1163. data/lib/wp/wp-includes/js/wp-list-revisions.js +0 -24
  1164. data/lib/wp/wp-includes/js/wp-list-revisions.min.js +0 -1
  1165. data/lib/wp/wp-includes/js/wp-lists.js +0 -469
  1166. data/lib/wp/wp-includes/js/wp-lists.min.js +0 -1
  1167. data/lib/wp/wp-includes/js/wp-pointer.js +0 -282
  1168. data/lib/wp/wp-includes/js/wp-pointer.min.js +0 -1
  1169. data/lib/wp/wp-includes/js/wp-util.js +0 -106
  1170. data/lib/wp/wp-includes/js/wp-util.min.js +0 -1
  1171. data/lib/wp/wp-includes/js/wpdialog.js +0 -19
  1172. data/lib/wp/wp-includes/js/wpdialog.min.js +0 -1
  1173. data/lib/wp/wp-includes/js/wplink.js +0 -615
  1174. data/lib/wp/wp-includes/js/wplink.min.js +0 -1
  1175. data/lib/wp/wp-includes/js/zxcvbn-async.js +0 -18
  1176. data/lib/wp/wp-includes/js/zxcvbn-async.min.js +0 -1
  1177. data/lib/wp/wp-includes/js/zxcvbn.min.js +0 -47
  1178. data/lib/wp/wp-includes/kses.php +0 -1526
  1179. data/lib/wp/wp-includes/l10n.php +0 -908
  1180. data/lib/wp/wp-includes/link-template.php +0 -3141
  1181. data/lib/wp/wp-includes/load.php +0 -828
  1182. data/lib/wp/wp-includes/locale.php +0 -368
  1183. data/lib/wp/wp-includes/media-template.php +0 -1235
  1184. data/lib/wp/wp-includes/media.php +0 -3329
  1185. data/lib/wp/wp-includes/meta.php +0 -1221
  1186. data/lib/wp/wp-includes/ms-blogs.php +0 -939
  1187. data/lib/wp/wp-includes/ms-default-constants.php +0 -153
  1188. data/lib/wp/wp-includes/ms-default-filters.php +0 -82
  1189. data/lib/wp/wp-includes/ms-deprecated.php +0 -347
  1190. data/lib/wp/wp-includes/ms-files.php +0 -82
  1191. data/lib/wp/wp-includes/ms-functions.php +0 -2476
  1192. data/lib/wp/wp-includes/ms-load.php +0 -458
  1193. data/lib/wp/wp-includes/ms-settings.php +0 -213
  1194. data/lib/wp/wp-includes/nav-menu-template.php +0 -678
  1195. data/lib/wp/wp-includes/nav-menu.php +0 -895
  1196. data/lib/wp/wp-includes/option.php +0 -1440
  1197. data/lib/wp/wp-includes/pluggable-deprecated.php +0 -192
  1198. data/lib/wp/wp-includes/pluggable.php +0 -2283
  1199. data/lib/wp/wp-includes/plugin.php +0 -920
  1200. data/lib/wp/wp-includes/pomo/entry.php +0 -78
  1201. data/lib/wp/wp-includes/pomo/mo.php +0 -262
  1202. data/lib/wp/wp-includes/pomo/po.php +0 -384
  1203. data/lib/wp/wp-includes/pomo/streams.php +0 -209
  1204. data/lib/wp/wp-includes/pomo/translations.php +0 -275
  1205. data/lib/wp/wp-includes/post-formats.php +0 -243
  1206. data/lib/wp/wp-includes/post-template.php +0 -1766
  1207. data/lib/wp/wp-includes/post-thumbnail-template.php +0 -142
  1208. data/lib/wp/wp-includes/post.php +0 -5842
  1209. data/lib/wp/wp-includes/query.php +0 -4666
  1210. data/lib/wp/wp-includes/registration-functions.php +0 -7
  1211. data/lib/wp/wp-includes/registration.php +0 -7
  1212. data/lib/wp/wp-includes/revision.php +0 -657
  1213. data/lib/wp/wp-includes/rewrite.php +0 -2180
  1214. data/lib/wp/wp-includes/rss-functions.php +0 -9
  1215. data/lib/wp/wp-includes/rss.php +0 -936
  1216. data/lib/wp/wp-includes/script-loader.php +0 -1045
  1217. data/lib/wp/wp-includes/session.php +0 -430
  1218. data/lib/wp/wp-includes/shortcodes.php +0 -410
  1219. data/lib/wp/wp-includes/taxonomy.php +0 -4006
  1220. data/lib/wp/wp-includes/template-loader.php +0 -76
  1221. data/lib/wp/wp-includes/template.php +0 -505
  1222. data/lib/wp/wp-includes/theme-compat/comments-popup.php +0 -128
  1223. data/lib/wp/wp-includes/theme-compat/comments.php +0 -101
  1224. data/lib/wp/wp-includes/theme-compat/footer.php +0 -30
  1225. data/lib/wp/wp-includes/theme-compat/header.php +0 -49
  1226. data/lib/wp/wp-includes/theme-compat/sidebar.php +0 -83
  1227. data/lib/wp/wp-includes/theme.php +0 -2014
  1228. data/lib/wp/wp-includes/update.php +0 -674
  1229. data/lib/wp/wp-includes/user.php +0 -2292
  1230. data/lib/wp/wp-includes/vars.php +0 -144
  1231. data/lib/wp/wp-includes/version.php +0 -35
  1232. data/lib/wp/wp-includes/widgets.php +0 -1514
  1233. data/lib/wp/wp-includes/wlwmanifest.xml +0 -43
  1234. data/lib/wp/wp-includes/wp-db.php +0 -2190
  1235. data/lib/wp/wp-includes/wp-diff.php +0 -523
  1236. data/lib/wp/wp-links-opml.php +0 -80
  1237. data/lib/wp/wp-load.php +0 -73
  1238. data/lib/wp/wp-login.php +0 -952
  1239. data/lib/wp/wp-mail.php +0 -260
  1240. data/lib/wp/wp-settings.php +0 -374
  1241. data/lib/wp/wp-signup.php +0 -749
  1242. data/lib/wp/wp-trackback.php +0 -127
  1243. data/lib/wp/xmlrpc.php +0 -101
@@ -1,260 +0,0 @@
1
- <?php
2
- /**
3
- * Portable PHP password hashing framework.
4
- * @package phpass
5
- * @since 2.5.0
6
- * @version 0.3 / WordPress
7
- * @link http://www.openwall.com/phpass/
8
- */
9
-
10
- #
11
- # Written by Solar Designer <solar at openwall.com> in 2004-2006 and placed in
12
- # the public domain. Revised in subsequent years, still public domain.
13
- #
14
- # There's absolutely no warranty.
15
- #
16
- # Please be sure to update the Version line if you edit this file in any way.
17
- # It is suggested that you leave the main version number intact, but indicate
18
- # your project name (after the slash) and add your own revision information.
19
- #
20
- # Please do not change the "private" password hashing method implemented in
21
- # here, thereby making your hashes incompatible. However, if you must, please
22
- # change the hash type identifier (the "$P$") to something different.
23
- #
24
- # Obviously, since this code is in the public domain, the above are not
25
- # requirements (there can be none), but merely suggestions.
26
- #
27
-
28
- /**
29
- * Portable PHP password hashing framework.
30
- *
31
- * @package phpass
32
- * @version 0.3 / WordPress
33
- * @link http://www.openwall.com/phpass/
34
- * @since 2.5.0
35
- */
36
- class PasswordHash {
37
- var $itoa64;
38
- var $iteration_count_log2;
39
- var $portable_hashes;
40
- var $random_state;
41
-
42
- function PasswordHash($iteration_count_log2, $portable_hashes)
43
- {
44
- $this->itoa64 = './0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';
45
-
46
- if ($iteration_count_log2 < 4 || $iteration_count_log2 > 31)
47
- $iteration_count_log2 = 8;
48
- $this->iteration_count_log2 = $iteration_count_log2;
49
-
50
- $this->portable_hashes = $portable_hashes;
51
-
52
- $this->random_state = microtime() . uniqid(rand(), TRUE); // removed getmypid() for compatibility reasons
53
- }
54
-
55
- function get_random_bytes($count)
56
- {
57
- $output = '';
58
- if ( @is_readable('/dev/urandom') &&
59
- ($fh = @fopen('/dev/urandom', 'rb'))) {
60
- $output = fread($fh, $count);
61
- fclose($fh);
62
- }
63
-
64
- if (strlen($output) < $count) {
65
- $output = '';
66
- for ($i = 0; $i < $count; $i += 16) {
67
- $this->random_state =
68
- md5(microtime() . $this->random_state);
69
- $output .=
70
- pack('H*', md5($this->random_state));
71
- }
72
- $output = substr($output, 0, $count);
73
- }
74
-
75
- return $output;
76
- }
77
-
78
- function encode64($input, $count)
79
- {
80
- $output = '';
81
- $i = 0;
82
- do {
83
- $value = ord($input[$i++]);
84
- $output .= $this->itoa64[$value & 0x3f];
85
- if ($i < $count)
86
- $value |= ord($input[$i]) << 8;
87
- $output .= $this->itoa64[($value >> 6) & 0x3f];
88
- if ($i++ >= $count)
89
- break;
90
- if ($i < $count)
91
- $value |= ord($input[$i]) << 16;
92
- $output .= $this->itoa64[($value >> 12) & 0x3f];
93
- if ($i++ >= $count)
94
- break;
95
- $output .= $this->itoa64[($value >> 18) & 0x3f];
96
- } while ($i < $count);
97
-
98
- return $output;
99
- }
100
-
101
- function gensalt_private($input)
102
- {
103
- $output = '$P$';
104
- $output .= $this->itoa64[min($this->iteration_count_log2 +
105
- ((PHP_VERSION >= '5') ? 5 : 3), 30)];
106
- $output .= $this->encode64($input, 6);
107
-
108
- return $output;
109
- }
110
-
111
- function crypt_private($password, $setting)
112
- {
113
- $output = '*0';
114
- if (substr($setting, 0, 2) == $output)
115
- $output = '*1';
116
-
117
- $id = substr($setting, 0, 3);
118
- # We use "$P$", phpBB3 uses "$H$" for the same thing
119
- if ($id != '$P$' && $id != '$H$')
120
- return $output;
121
-
122
- $count_log2 = strpos($this->itoa64, $setting[3]);
123
- if ($count_log2 < 7 || $count_log2 > 30)
124
- return $output;
125
-
126
- $count = 1 << $count_log2;
127
-
128
- $salt = substr($setting, 4, 8);
129
- if (strlen($salt) != 8)
130
- return $output;
131
-
132
- # We're kind of forced to use MD5 here since it's the only
133
- # cryptographic primitive available in all versions of PHP
134
- # currently in use. To implement our own low-level crypto
135
- # in PHP would result in much worse performance and
136
- # consequently in lower iteration counts and hashes that are
137
- # quicker to crack (by non-PHP code).
138
- if (PHP_VERSION >= '5') {
139
- $hash = md5($salt . $password, TRUE);
140
- do {
141
- $hash = md5($hash . $password, TRUE);
142
- } while (--$count);
143
- } else {
144
- $hash = pack('H*', md5($salt . $password));
145
- do {
146
- $hash = pack('H*', md5($hash . $password));
147
- } while (--$count);
148
- }
149
-
150
- $output = substr($setting, 0, 12);
151
- $output .= $this->encode64($hash, 16);
152
-
153
- return $output;
154
- }
155
-
156
- function gensalt_extended($input)
157
- {
158
- $count_log2 = min($this->iteration_count_log2 + 8, 24);
159
- # This should be odd to not reveal weak DES keys, and the
160
- # maximum valid value is (2**24 - 1) which is odd anyway.
161
- $count = (1 << $count_log2) - 1;
162
-
163
- $output = '_';
164
- $output .= $this->itoa64[$count & 0x3f];
165
- $output .= $this->itoa64[($count >> 6) & 0x3f];
166
- $output .= $this->itoa64[($count >> 12) & 0x3f];
167
- $output .= $this->itoa64[($count >> 18) & 0x3f];
168
-
169
- $output .= $this->encode64($input, 3);
170
-
171
- return $output;
172
- }
173
-
174
- function gensalt_blowfish($input)
175
- {
176
- # This one needs to use a different order of characters and a
177
- # different encoding scheme from the one in encode64() above.
178
- # We care because the last character in our encoded string will
179
- # only represent 2 bits. While two known implementations of
180
- # bcrypt will happily accept and correct a salt string which
181
- # has the 4 unused bits set to non-zero, we do not want to take
182
- # chances and we also do not want to waste an additional byte
183
- # of entropy.
184
- $itoa64 = './ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
185
-
186
- $output = '$2a$';
187
- $output .= chr(ord('0') + $this->iteration_count_log2 / 10);
188
- $output .= chr(ord('0') + $this->iteration_count_log2 % 10);
189
- $output .= '$';
190
-
191
- $i = 0;
192
- do {
193
- $c1 = ord($input[$i++]);
194
- $output .= $itoa64[$c1 >> 2];
195
- $c1 = ($c1 & 0x03) << 4;
196
- if ($i >= 16) {
197
- $output .= $itoa64[$c1];
198
- break;
199
- }
200
-
201
- $c2 = ord($input[$i++]);
202
- $c1 |= $c2 >> 4;
203
- $output .= $itoa64[$c1];
204
- $c1 = ($c2 & 0x0f) << 2;
205
-
206
- $c2 = ord($input[$i++]);
207
- $c1 |= $c2 >> 6;
208
- $output .= $itoa64[$c1];
209
- $output .= $itoa64[$c2 & 0x3f];
210
- } while (1);
211
-
212
- return $output;
213
- }
214
-
215
- function HashPassword($password)
216
- {
217
- $random = '';
218
-
219
- if (CRYPT_BLOWFISH == 1 && !$this->portable_hashes) {
220
- $random = $this->get_random_bytes(16);
221
- $hash =
222
- crypt($password, $this->gensalt_blowfish($random));
223
- if (strlen($hash) == 60)
224
- return $hash;
225
- }
226
-
227
- if (CRYPT_EXT_DES == 1 && !$this->portable_hashes) {
228
- if (strlen($random) < 3)
229
- $random = $this->get_random_bytes(3);
230
- $hash =
231
- crypt($password, $this->gensalt_extended($random));
232
- if (strlen($hash) == 20)
233
- return $hash;
234
- }
235
-
236
- if (strlen($random) < 6)
237
- $random = $this->get_random_bytes(6);
238
- $hash =
239
- $this->crypt_private($password,
240
- $this->gensalt_private($random));
241
- if (strlen($hash) == 34)
242
- return $hash;
243
-
244
- # Returning '*' on error is safe here, but would _not_ be safe
245
- # in a crypt(3)-like function used _both_ for generating new
246
- # hashes and for validating passwords against existing hashes.
247
- return '*';
248
- }
249
-
250
- function CheckPassword($password, $stored_hash)
251
- {
252
- $hash = $this->crypt_private($password, $stored_hash);
253
- if ($hash[0] == '*')
254
- $hash = crypt($password, $stored_hash);
255
-
256
- return $hash === $stored_hash;
257
- }
258
- }
259
-
260
- ?>
@@ -1,3265 +0,0 @@
1
- <?php
2
- /**
3
- * PHPMailer - PHP email creation and transport class.
4
- * PHP Version 5.0.0
5
- * Version 5.2.7
6
- * @package PHPMailer
7
- * @link https://github.com/PHPMailer/PHPMailer/
8
- * @author Marcus Bointon (coolbru) <phpmailer@synchromedia.co.uk>
9
- * @author Jim Jagielski (jimjag) <jimjag@gmail.com>
10
- * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
11
- * @author Brent R. Matzelle (original founder)
12
- * @copyright 2013 Marcus Bointon
13
- * @copyright 2010 - 2012 Jim Jagielski
14
- * @copyright 2004 - 2009 Andy Prevost
15
- * @license http://www.gnu.org/copyleft/lesser.html GNU Lesser General Public License
16
- * @note This program is distributed in the hope that it will be useful - WITHOUT
17
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
18
- * FITNESS FOR A PARTICULAR PURPOSE.
19
- */
20
-
21
- if (version_compare(PHP_VERSION, '5.0.0', '<')) {
22
- exit("Sorry, PHPMailer will only run on PHP version 5 or greater!\n");
23
- }
24
-
25
- /**
26
- * PHPMailer - PHP email creation and transport class.
27
- * PHP Version 5.0.0
28
- * @package PHPMailer
29
- * @author Marcus Bointon (coolbru) <phpmailer@synchromedia.co.uk>
30
- * @author Jim Jagielski (jimjag) <jimjag@gmail.com>
31
- * @author Andy Prevost (codeworxtech) <codeworxtech@users.sourceforge.net>
32
- * @author Brent R. Matzelle (original founder)
33
- * @copyright 2013 Marcus Bointon
34
- * @copyright 2010 - 2012 Jim Jagielski
35
- * @copyright 2004 - 2009 Andy Prevost
36
- */
37
- class PHPMailer
38
- {
39
- /**
40
- * The PHPMailer Version number.
41
- * @type string
42
- */
43
- public $Version = '5.2.7';
44
-
45
- /**
46
- * Email priority.
47
- * Options: 1 = High, 3 = Normal, 5 = low.
48
- * @type int
49
- */
50
- public $Priority = 3;
51
-
52
- /**
53
- * The character set of the message.
54
- * @type string
55
- */
56
- public $CharSet = 'iso-8859-1';
57
-
58
- /**
59
- * The MIME Content-type of the message.
60
- * @type string
61
- */
62
- public $ContentType = 'text/plain';
63
-
64
- /**
65
- * The message encoding.
66
- * Options: "8bit", "7bit", "binary", "base64", and "quoted-printable".
67
- * @type string
68
- */
69
- public $Encoding = '8bit';
70
-
71
- /**
72
- * Holds the most recent mailer error message.
73
- * @type string
74
- */
75
- public $ErrorInfo = '';
76
-
77
- /**
78
- * The From email address for the message.
79
- * @type string
80
- */
81
- public $From = 'root@localhost';
82
-
83
- /**
84
- * The From name of the message.
85
- * @type string
86
- */
87
- public $FromName = 'Root User';
88
-
89
- /**
90
- * The Sender email (Return-Path) of the message.
91
- * If not empty, will be sent via -f to sendmail or as 'MAIL FROM' in smtp mode.
92
- * @type string
93
- */
94
- public $Sender = '';
95
-
96
- /**
97
- * The Return-Path of the message.
98
- * If empty, it will be set to either From or Sender.
99
- * @type string
100
- */
101
- public $ReturnPath = '';
102
-
103
- /**
104
- * The Subject of the message.
105
- * @type string
106
- */
107
- public $Subject = '';
108
-
109
- /**
110
- * An HTML or plain text message body.
111
- * If HTML then call isHTML(true).
112
- * @type string
113
- */
114
- public $Body = '';
115
-
116
- /**
117
- * The plain-text message body.
118
- * This body can be read by mail clients that do not have HTML email
119
- * capability such as mutt & Eudora.
120
- * Clients that can read HTML will view the normal Body.
121
- * @type string
122
- */
123
- public $AltBody = '';
124
-
125
- /**
126
- * An iCal message part body.
127
- * Only supported in simple alt or alt_inline message types
128
- * To generate iCal events, use the bundled extras/EasyPeasyICS.php class or iCalcreator
129
- * @link http://sprain.ch/blog/downloads/php-class-easypeasyics-create-ical-files-with-php/
130
- * @link http://kigkonsult.se/iCalcreator/
131
- * @type string
132
- */
133
- public $Ical = '';
134
-
135
- /**
136
- * The complete compiled MIME message body.
137
- * @access protected
138
- * @type string
139
- */
140
- protected $MIMEBody = '';
141
-
142
- /**
143
- * The complete compiled MIME message headers.
144
- * @type string
145
- * @access protected
146
- */
147
- protected $MIMEHeader = '';
148
-
149
- /**
150
- * Extra headers that createHeader() doesn't fold in.
151
- * @type string
152
- * @access protected
153
- */
154
- protected $mailHeader = '';
155
-
156
- /**
157
- * Word-wrap the message body to this number of chars.
158
- * @type int
159
- */
160
- public $WordWrap = 0;
161
-
162
- /**
163
- * Which method to use to send mail.
164
- * Options: "mail", "sendmail", or "smtp".
165
- * @type string
166
- */
167
- public $Mailer = 'mail';
168
-
169
- /**
170
- * The path to the sendmail program.
171
- * @type string
172
- */
173
- public $Sendmail = '/usr/sbin/sendmail';
174
-
175
- /**
176
- * Whether mail() uses a fully sendmail-compatible MTA.
177
- * One which supports sendmail's "-oi -f" options.
178
- * @type bool
179
- */
180
- public $UseSendmailOptions = true;
181
-
182
- /**
183
- * Path to PHPMailer plugins.
184
- * Useful if the SMTP class is not in the PHP include path.
185
- * @type string
186
- * @deprecated Should not be needed now there is an autoloader.
187
- */
188
- public $PluginDir = '';
189
-
190
- /**
191
- * The email address that a reading confirmation should be sent to.
192
- * @type string
193
- */
194
- public $ConfirmReadingTo = '';
195
-
196
- /**
197
- * The hostname to use in Message-Id and Received headers
198
- * and as default HELO string.
199
- * If empty, the value returned
200
- * by SERVER_NAME is used or 'localhost.localdomain'.
201
- * @type string
202
- */
203
- public $Hostname = '';
204
-
205
- /**
206
- * An ID to be used in the Message-Id header.
207
- * If empty, a unique id will be generated.
208
- * @type string
209
- */
210
- public $MessageID = '';
211
-
212
- /**
213
- * The message Date to be used in the Date header.
214
- * If empty, the current date will be added.
215
- * @type string
216
- */
217
- public $MessageDate = '';
218
-
219
- /**
220
- * SMTP hosts.
221
- * Either a single hostname or multiple semicolon-delimited hostnames.
222
- * You can also specify a different port
223
- * for each host by using this format: [hostname:port]
224
- * (e.g. "smtp1.example.com:25;smtp2.example.com").
225
- * Hosts will be tried in order.
226
- * @type string
227
- */
228
- public $Host = 'localhost';
229
-
230
- /**
231
- * The default SMTP server port.
232
- * @type int
233
- * @Todo Why is this needed when the SMTP class takes care of it?
234
- */
235
- public $Port = 25;
236
-
237
- /**
238
- * The SMTP HELO of the message.
239
- * Default is $Hostname.
240
- * @type string
241
- * @see PHPMailer::$Hostname
242
- */
243
- public $Helo = '';
244
-
245
- /**
246
- * The secure connection prefix.
247
- * Options: "", "ssl" or "tls"
248
- * @type string
249
- */
250
- public $SMTPSecure = '';
251
-
252
- /**
253
- * Whether to use SMTP authentication.
254
- * Uses the Username and Password properties.
255
- * @type bool
256
- * @see PHPMailer::$Username
257
- * @see PHPMailer::$Password
258
- */
259
- public $SMTPAuth = false;
260
-
261
- /**
262
- * SMTP username.
263
- * @type string
264
- */
265
- public $Username = '';
266
-
267
- /**
268
- * SMTP password.
269
- * @type string
270
- */
271
- public $Password = '';
272
-
273
- /**
274
- * SMTP auth type.
275
- * Options are LOGIN (default), PLAIN, NTLM, CRAM-MD5
276
- * @type string
277
- */
278
- public $AuthType = '';
279
-
280
- /**
281
- * SMTP realm.
282
- * Used for NTLM auth
283
- * @type string
284
- */
285
- public $Realm = '';
286
-
287
- /**
288
- * SMTP workstation.
289
- * Used for NTLM auth
290
- * @type string
291
- */
292
- public $Workstation = '';
293
-
294
- /**
295
- * The SMTP server timeout in seconds.
296
- * @type int
297
- */
298
- public $Timeout = 10;
299
-
300
- /**
301
- * SMTP class debug output mode.
302
- * Options: 0 = off, 1 = commands, 2 = commands and data
303
- * @type int
304
- * @see SMTP::$do_debug
305
- */
306
- public $SMTPDebug = 0;
307
-
308
- /**
309
- * The function/method to use for debugging output.
310
- * Options: "echo" or "error_log"
311
- * @type string
312
- * @see SMTP::$Debugoutput
313
- */
314
- public $Debugoutput = "echo";
315
-
316
- /**
317
- * Whether to keep SMTP connection open after each message.
318
- * If this is set to true then to close the connection
319
- * requires an explicit call to smtpClose().
320
- * @type bool
321
- */
322
- public $SMTPKeepAlive = false;
323
-
324
- /**
325
- * Whether to split multiple to addresses into multiple messages
326
- * or send them all in one message.
327
- * @type bool
328
- */
329
- public $SingleTo = false;
330
-
331
- /**
332
- * Storage for addresses when SingleTo is enabled.
333
- * @type array
334
- * @todo This should really not be public
335
- */
336
- public $SingleToArray = array();
337
-
338
- /**
339
- * Whether to generate VERP addresses on send.
340
- * Only applicable when sending via SMTP.
341
- * @link http://en.wikipedia.org/wiki/Variable_envelope_return_path
342
- * @type bool
343
- */
344
- public $do_verp = false;
345
-
346
- /**
347
- * Whether to allow sending messages with an empty body.
348
- * @type bool
349
- */
350
- public $AllowEmpty = false;
351
-
352
- /**
353
- * The default line ending.
354
- * @note The default remains "\n". We force CRLF where we know
355
- * it must be used via self::CRLF.
356
- * @type string
357
- */
358
- public $LE = "\n";
359
-
360
- /**
361
- * DKIM selector.
362
- * @type string
363
- */
364
- public $DKIM_selector = '';
365
-
366
- /**
367
- * DKIM Identity.
368
- * Usually the email address used as the source of the email
369
- * @type string
370
- */
371
- public $DKIM_identity = '';
372
-
373
- /**
374
- * DKIM passphrase.
375
- * Used if your key is encrypted.
376
- * @type string
377
- */
378
- public $DKIM_passphrase = '';
379
-
380
- /**
381
- * DKIM signing domain name.
382
- * @example 'example.com'
383
- * @type string
384
- */
385
- public $DKIM_domain = '';
386
-
387
- /**
388
- * DKIM private key file path.
389
- * @type string
390
- */
391
- public $DKIM_private = '';
392
-
393
- /**
394
- * Callback Action function name.
395
- *
396
- * The function that handles the result of the send email action.
397
- * It is called out by send() for each email sent.
398
- *
399
- * Value can be:
400
- * - 'function_name' for function names
401
- * - 'Class::Method' for static method calls
402
- * - array($object, 'Method') for calling methods on $object
403
- * See http://php.net/is_callable manual page for more details.
404
- *
405
- * Parameters:
406
- * bool $result result of the send action
407
- * string $to email address of the recipient
408
- * string $cc cc email addresses
409
- * string $bcc bcc email addresses
410
- * string $subject the subject
411
- * string $body the email body
412
- * string $from email address of sender
413
- *
414
- * @type string
415
- */
416
- public $action_function = '';
417
-
418
- /**
419
- * What to use in the X-Mailer header.
420
- * Options: null for default, whitespace for none, or a string to use
421
- * @type string
422
- */
423
- public $XMailer = '';
424
-
425
- /**
426
- * An instance of the SMTP sender class.
427
- * @type SMTP
428
- * @access protected
429
- */
430
- protected $smtp = null;
431
-
432
- /**
433
- * The array of 'to' addresses.
434
- * @type array
435
- * @access protected
436
- */
437
- protected $to = array();
438
-
439
- /**
440
- * The array of 'cc' addresses.
441
- * @type array
442
- * @access protected
443
- */
444
- protected $cc = array();
445
-
446
- /**
447
- * The array of 'bcc' addresses.
448
- * @type array
449
- * @access protected
450
- */
451
- protected $bcc = array();
452
-
453
- /**
454
- * The array of reply-to names and addresses.
455
- * @type array
456
- * @access protected
457
- */
458
- protected $ReplyTo = array();
459
-
460
- /**
461
- * An array of all kinds of addresses.
462
- * Includes all of $to, $cc, $bcc, $replyto
463
- * @type array
464
- * @access protected
465
- */
466
- protected $all_recipients = array();
467
-
468
- /**
469
- * The array of attachments.
470
- * @type array
471
- * @access protected
472
- */
473
- protected $attachment = array();
474
-
475
- /**
476
- * The array of custom headers.
477
- * @type array
478
- * @access protected
479
- */
480
- protected $CustomHeader = array();
481
-
482
- /**
483
- * The most recent Message-ID (including angular brackets).
484
- * @type string
485
- * @access protected
486
- */
487
- protected $lastMessageID = '';
488
-
489
- /**
490
- * The message's MIME type.
491
- * @type string
492
- * @access protected
493
- */
494
- protected $message_type = '';
495
-
496
- /**
497
- * The array of MIME boundary strings.
498
- * @type array
499
- * @access protected
500
- */
501
- protected $boundary = array();
502
-
503
- /**
504
- * The array of available languages.
505
- * @type array
506
- * @access protected
507
- */
508
- protected $language = array();
509
-
510
- /**
511
- * The number of errors encountered.
512
- * @type integer
513
- * @access protected
514
- */
515
- protected $error_count = 0;
516
-
517
- /**
518
- * The S/MIME certificate file path.
519
- * @type string
520
- * @access protected
521
- */
522
- protected $sign_cert_file = '';
523
-
524
- /**
525
- * The S/MIME key file path.
526
- * @type string
527
- * @access protected
528
- */
529
- protected $sign_key_file = '';
530
-
531
- /**
532
- * The S/MIME password for the key.
533
- * Used only if the key is encrypted.
534
- * @type string
535
- * @access protected
536
- */
537
- protected $sign_key_pass = '';
538
-
539
- /**
540
- * Whether to throw exceptions for errors.
541
- * @type bool
542
- * @access protected
543
- */
544
- protected $exceptions = false;
545
-
546
- /**
547
- * Error severity: message only, continue processing
548
- */
549
- const STOP_MESSAGE = 0;
550
-
551
- /**
552
- * Error severity: message, likely ok to continue processing
553
- */
554
- const STOP_CONTINUE = 1;
555
-
556
- /**
557
- * Error severity: message, plus full stop, critical error reached
558
- */
559
- const STOP_CRITICAL = 2;
560
-
561
- /**
562
- * SMTP RFC standard line ending
563
- */
564
- const CRLF = "\r\n";
565
-
566
- /**
567
- * Constructor
568
- * @param bool $exceptions Should we throw external exceptions?
569
- */
570
- public function __construct($exceptions = false)
571
- {
572
- $this->exceptions = ($exceptions == true);
573
- }
574
-
575
- /**
576
- * Destructor.
577
- */
578
- public function __destruct()
579
- {
580
- if ($this->Mailer == 'smtp') { //close any open SMTP connection nicely
581
- $this->smtpClose();
582
- }
583
- }
584
-
585
- /**
586
- * Call mail() in a safe_mode-aware fashion.
587
- * Also, unless sendmail_path points to sendmail (or something that
588
- * claims to be sendmail), don't pass params (not a perfect fix,
589
- * but it will do)
590
- * @param string $to To
591
- * @param string $subject Subject
592
- * @param string $body Message Body
593
- * @param string $header Additional Header(s)
594
- * @param string $params Params
595
- * @access private
596
- * @return bool
597
- */
598
- private function mailPassthru($to, $subject, $body, $header, $params)
599
- {
600
- if (ini_get('safe_mode') || !($this->UseSendmailOptions)) {
601
- $rt = @mail($to, $this->encodeHeader($this->secureHeader($subject)), $body, $header);
602
- } else {
603
- $rt = @mail($to, $this->encodeHeader($this->secureHeader($subject)), $body, $header, $params);
604
- }
605
- return $rt;
606
- }
607
-
608
- /**
609
- * Output debugging info via user-defined method.
610
- * Only if debug output is enabled.
611
- * @see PHPMailer::$Debugoutput
612
- * @see PHPMailer::$SMTPDebug
613
- * @param string $str
614
- */
615
- protected function edebug($str)
616
- {
617
- if (!$this->SMTPDebug) {
618
- return;
619
- }
620
- switch ($this->Debugoutput) {
621
- case 'error_log':
622
- error_log($str);
623
- break;
624
- case 'html':
625
- //Cleans up output a bit for a better looking display that's HTML-safe
626
- echo htmlentities(preg_replace('/[\r\n]+/', '', $str), ENT_QUOTES, $this->CharSet) . "<br>\n";
627
- break;
628
- case 'echo':
629
- default:
630
- //Just echoes exactly what was received
631
- echo $str;
632
- }
633
- }
634
-
635
- /**
636
- * Sets message type to HTML or plain.
637
- * @param bool $ishtml True for HTML mode.
638
- * @return void
639
- */
640
- public function isHTML($ishtml = true)
641
- {
642
- if ($ishtml) {
643
- $this->ContentType = 'text/html';
644
- } else {
645
- $this->ContentType = 'text/plain';
646
- }
647
- }
648
-
649
- /**
650
- * Send messages using SMTP.
651
- * @return void
652
- */
653
- public function isSMTP()
654
- {
655
- $this->Mailer = 'smtp';
656
- }
657
-
658
- /**
659
- * Send messages using PHP's mail() function.
660
- * @return void
661
- */
662
- public function isMail()
663
- {
664
- $this->Mailer = 'mail';
665
- }
666
-
667
- /**
668
- * Send messages using $Sendmail.
669
- * @return void
670
- */
671
- public function isSendmail()
672
- {
673
- if (!stristr(ini_get('sendmail_path'), 'sendmail')) {
674
- $this->Sendmail = '/var/qmail/bin/sendmail';
675
- }
676
- $this->Mailer = 'sendmail';
677
- }
678
-
679
- /**
680
- * Send messages using qmail.
681
- * @return void
682
- */
683
- public function isQmail()
684
- {
685
- if (stristr(ini_get('sendmail_path'), 'qmail')) {
686
- $this->Sendmail = '/var/qmail/bin/sendmail';
687
- }
688
- $this->Mailer = 'sendmail';
689
- }
690
-
691
- /**
692
- * Add a "To" address.
693
- * @param string $address
694
- * @param string $name
695
- * @return bool true on success, false if address already used
696
- */
697
- public function addAddress($address, $name = '')
698
- {
699
- return $this->addAnAddress('to', $address, $name);
700
- }
701
-
702
- /**
703
- * Add a "CC" address.
704
- * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer.
705
- * @param string $address
706
- * @param string $name
707
- * @return bool true on success, false if address already used
708
- */
709
- public function addCC($address, $name = '')
710
- {
711
- return $this->addAnAddress('cc', $address, $name);
712
- }
713
-
714
- /**
715
- * Add a "BCC" address.
716
- * @note: This function works with the SMTP mailer on win32, not with the "mail" mailer.
717
- * @param string $address
718
- * @param string $name
719
- * @return bool true on success, false if address already used
720
- */
721
- public function addBCC($address, $name = '')
722
- {
723
- return $this->addAnAddress('bcc', $address, $name);
724
- }
725
-
726
- /**
727
- * Add a "Reply-to" address.
728
- * @param string $address
729
- * @param string $name
730
- * @return bool
731
- */
732
- public function addReplyTo($address, $name = '')
733
- {
734
- return $this->addAnAddress('Reply-To', $address, $name);
735
- }
736
-
737
- /**
738
- * Add an address to one of the recipient arrays.
739
- * Addresses that have been added already return false, but do not throw exceptions
740
- * @param string $kind One of 'to', 'cc', 'bcc', 'ReplyTo'
741
- * @param string $address The email address to send to
742
- * @param string $name
743
- * @throws phpmailerException
744
- * @return bool true on success, false if address already used or invalid in some way
745
- * @access protected
746
- */
747
- protected function addAnAddress($kind, $address, $name = '')
748
- {
749
- if (!preg_match('/^(to|cc|bcc|Reply-To)$/', $kind)) {
750
- $this->setError($this->lang('Invalid recipient array') . ': ' . $kind);
751
- if ($this->exceptions) {
752
- throw new phpmailerException('Invalid recipient array: ' . $kind);
753
- }
754
- $this->edebug($this->lang('Invalid recipient array') . ': ' . $kind);
755
- return false;
756
- }
757
- $address = trim($address);
758
- $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
759
- if (!$this->validateAddress($address)) {
760
- $this->setError($this->lang('invalid_address') . ': ' . $address);
761
- if ($this->exceptions) {
762
- throw new phpmailerException($this->lang('invalid_address') . ': ' . $address);
763
- }
764
- $this->edebug($this->lang('invalid_address') . ': ' . $address);
765
- return false;
766
- }
767
- if ($kind != 'Reply-To') {
768
- if (!isset($this->all_recipients[strtolower($address)])) {
769
- array_push($this->$kind, array($address, $name));
770
- $this->all_recipients[strtolower($address)] = true;
771
- return true;
772
- }
773
- } else {
774
- if (!array_key_exists(strtolower($address), $this->ReplyTo)) {
775
- $this->ReplyTo[strtolower($address)] = array($address, $name);
776
- return true;
777
- }
778
- }
779
- return false;
780
- }
781
-
782
- /**
783
- * Set the From and FromName properties.
784
- * @param string $address
785
- * @param string $name
786
- * @param bool $auto Whether to also set the Sender address, defaults to true
787
- * @throws phpmailerException
788
- * @return bool
789
- */
790
- public function setFrom($address, $name = '', $auto = true)
791
- {
792
- $address = trim($address);
793
- $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim
794
- if (!$this->validateAddress($address)) {
795
- $this->setError($this->lang('invalid_address') . ': ' . $address);
796
- if ($this->exceptions) {
797
- throw new phpmailerException($this->lang('invalid_address') . ': ' . $address);
798
- }
799
- $this->edebug($this->lang('invalid_address') . ': ' . $address);
800
- return false;
801
- }
802
- $this->From = $address;
803
- $this->FromName = $name;
804
- if ($auto) {
805
- if (empty($this->Sender)) {
806
- $this->Sender = $address;
807
- }
808
- }
809
- return true;
810
- }
811
-
812
- /**
813
- * Return the Message-ID header of the last email.
814
- * Technically this is the value from the last time the headers were created,
815
- * but it's also the message ID of the last sent message except in
816
- * pathological cases.
817
- * @return string
818
- */
819
- public function getLastMessageID()
820
- {
821
- return $this->lastMessageID;
822
- }
823
-
824
- /**
825
- * Check that a string looks like an email address.
826
- * @param string $address The email address to check
827
- * @param string $patternselect A selector for the validation pattern to use :
828
- * 'auto' - pick best one automatically;
829
- * 'pcre8' - use the squiloople.com pattern, requires PCRE > 8.0, PHP >= 5.3.2, 5.2.14;
830
- * 'pcre' - use old PCRE implementation;
831
- * 'php' - use PHP built-in FILTER_VALIDATE_EMAIL; faster, less thorough;
832
- * 'noregex' - super fast, really dumb.
833
- * @return bool
834
- * @static
835
- * @access public
836
- */
837
- public static function validateAddress($address, $patternselect = 'auto')
838
- {
839
- if ($patternselect == 'auto') {
840
- if (defined(
841
- 'PCRE_VERSION'
842
- )
843
- ) { //Check this instead of extension_loaded so it works when that function is disabled
844
- if (version_compare(PCRE_VERSION, '8.0') >= 0) {
845
- $patternselect = 'pcre8';
846
- } else {
847
- $patternselect = 'pcre';
848
- }
849
- } else {
850
- //Filter_var appeared in PHP 5.2.0 and does not require the PCRE extension
851
- if (version_compare(PHP_VERSION, '5.2.0') >= 0) {
852
- $patternselect = 'php';
853
- } else {
854
- $patternselect = 'noregex';
855
- }
856
- }
857
- }
858
- switch ($patternselect) {
859
- case 'pcre8':
860
- /**
861
- * Conforms to RFC5322: Uses *correct* regex on which FILTER_VALIDATE_EMAIL is
862
- * based; So why not use FILTER_VALIDATE_EMAIL? Because it was broken to
863
- * not allow a@b type valid addresses :(
864
- * @link http://squiloople.com/2009/12/20/email-address-validation/
865
- * @copyright 2009-2010 Michael Rushton
866
- * Feel free to use and redistribute this code. But please keep this copyright notice.
867
- */
868
- return (bool)preg_match(
869
- '/^(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){255,})(?!(?>(?1)"?(?>\\\[ -~]|[^"])"?(?1)){65,}@)' .
870
- '((?>(?>(?>((?>(?>(?>\x0D\x0A)?[\t ])+|(?>[\t ]*\x0D\x0A)?[\t ]+)?)(\((?>(?2)' .
871
- '(?>[\x01-\x08\x0B\x0C\x0E-\'*-\[\]-\x7F]|\\\[\x00-\x7F]|(?3)))*(?2)\)))+(?2))|(?2))?)' .
872
- '([!#-\'*+\/-9=?^-~-]+|"(?>(?2)(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\x7F]))*' .
873
- '(?2)")(?>(?1)\.(?1)(?4))*(?1)@(?!(?1)[a-z0-9-]{64,})(?1)(?>([a-z0-9](?>[a-z0-9-]*[a-z0-9])?)' .
874
- '(?>(?1)\.(?!(?1)[a-z0-9-]{64,})(?1)(?5)){0,126}|\[(?:(?>IPv6:(?>([a-f0-9]{1,4})(?>:(?6)){7}' .
875
- '|(?!(?:.*[a-f0-9][:\]]){8,})((?6)(?>:(?6)){0,6})?::(?7)?))|(?>(?>IPv6:(?>(?6)(?>:(?6)){5}:' .
876
- '|(?!(?:.*[a-f0-9]:){6,})(?8)?::(?>((?6)(?>:(?6)){0,4}):)?))?(25[0-5]|2[0-4][0-9]|1[0-9]{2}' .
877
- '|[1-9]?[0-9])(?>\.(?9)){3}))\])(?1)$/isD',
878
- $address
879
- );
880
- break;
881
- case 'pcre':
882
- //An older regex that doesn't need a recent PCRE
883
- return (bool)preg_match(
884
- '/^(?!(?>"?(?>\\\[ -~]|[^"])"?){255,})(?!(?>"?(?>\\\[ -~]|[^"])"?){65,}@)(?>' .
885
- '[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*")' .
886
- '(?>\.(?>[!#-\'*+\/-9=?^-~-]+|"(?>(?>[\x01-\x08\x0B\x0C\x0E-!#-\[\]-\x7F]|\\\[\x00-\xFF]))*"))*' .
887
- '@(?>(?![a-z0-9-]{64,})(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)(?>\.(?![a-z0-9-]{64,})' .
888
- '(?>[a-z0-9](?>[a-z0-9-]*[a-z0-9])?)){0,126}|\[(?:(?>IPv6:(?>(?>[a-f0-9]{1,4})(?>:' .
889
- '[a-f0-9]{1,4}){7}|(?!(?:.*[a-f0-9][:\]]){8,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?' .
890
- '::(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,6})?))|(?>(?>IPv6:(?>[a-f0-9]{1,4}(?>:' .
891
- '[a-f0-9]{1,4}){5}:|(?!(?:.*[a-f0-9]:){6,})(?>[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4})?' .
892
- '::(?>(?:[a-f0-9]{1,4}(?>:[a-f0-9]{1,4}){0,4}):)?))?(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}' .
893
- '|[1-9]?[0-9])(?>\.(?>25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}))\])$/isD',
894
- $address
895
- );
896
- break;
897
- case 'php':
898
- default:
899
- return (bool)filter_var($address, FILTER_VALIDATE_EMAIL);
900
- break;
901
- case 'noregex':
902
- //No PCRE! Do something _very_ approximate!
903
- //Check the address is 3 chars or longer and contains an @ that's not the first or last char
904
- return (strlen($address) >= 3
905
- and strpos($address, '@') >= 1
906
- and strpos($address, '@') != strlen($address) - 1);
907
- break;
908
- }
909
- }
910
-
911
- /**
912
- * Create a message and send it.
913
- * Uses the sending method specified by $Mailer.
914
- * Returns false on error - Use the ErrorInfo variable to view description of the error.
915
- * @throws phpmailerException
916
- * @return bool
917
- */
918
- public function send()
919
- {
920
- try {
921
- if (!$this->preSend()) {
922
- return false;
923
- }
924
- return $this->postSend();
925
- } catch (phpmailerException $e) {
926
- $this->mailHeader = '';
927
- $this->setError($e->getMessage());
928
- if ($this->exceptions) {
929
- throw $e;
930
- }
931
- return false;
932
- }
933
- }
934
-
935
- /**
936
- * Prepare a message for sending.
937
- * @throws phpmailerException
938
- * @return bool
939
- */
940
- public function preSend()
941
- {
942
- try {
943
- $this->mailHeader = "";
944
- if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) {
945
- throw new phpmailerException($this->lang('provide_address'), self::STOP_CRITICAL);
946
- }
947
-
948
- // Set whether the message is multipart/alternative
949
- if (!empty($this->AltBody)) {
950
- $this->ContentType = 'multipart/alternative';
951
- }
952
-
953
- $this->error_count = 0; // reset errors
954
- $this->setMessageType();
955
- // Refuse to send an empty message unless we are specifically allowing it
956
- if (!$this->AllowEmpty and empty($this->Body)) {
957
- throw new phpmailerException($this->lang('empty_message'), self::STOP_CRITICAL);
958
- }
959
-
960
- $this->MIMEHeader = $this->createHeader();
961
- $this->MIMEBody = $this->createBody();
962
-
963
- // To capture the complete message when using mail(), create
964
- // an extra header list which createHeader() doesn't fold in
965
- if ($this->Mailer == 'mail') {
966
- if (count($this->to) > 0) {
967
- $this->mailHeader .= $this->addrAppend("To", $this->to);
968
- } else {
969
- $this->mailHeader .= $this->headerLine("To", "undisclosed-recipients:;");
970
- }
971
- $this->mailHeader .= $this->headerLine(
972
- 'Subject',
973
- $this->encodeHeader($this->secureHeader(trim($this->Subject)))
974
- );
975
- }
976
-
977
- // Sign with DKIM if enabled
978
- if (!empty($this->DKIM_domain)
979
- && !empty($this->DKIM_private)
980
- && !empty($this->DKIM_selector)
981
- && !empty($this->DKIM_domain)
982
- && file_exists($this->DKIM_private)) {
983
- $header_dkim = $this->DKIM_Add(
984
- $this->MIMEHeader . $this->mailHeader,
985
- $this->encodeHeader($this->secureHeader($this->Subject)),
986
- $this->MIMEBody
987
- );
988
- $this->MIMEHeader = rtrim($this->MIMEHeader, "\r\n ") . self::CRLF .
989
- str_replace("\r\n", "\n", $header_dkim) . self::CRLF;
990
- }
991
- return true;
992
-
993
- } catch (phpmailerException $e) {
994
- $this->setError($e->getMessage());
995
- if ($this->exceptions) {
996
- throw $e;
997
- }
998
- return false;
999
- }
1000
- }
1001
-
1002
- /**
1003
- * Actually send a message.
1004
- * Send the email via the selected mechanism
1005
- * @throws phpmailerException
1006
- * @return bool
1007
- */
1008
- public function postSend()
1009
- {
1010
- try {
1011
- // Choose the mailer and send through it
1012
- switch ($this->Mailer) {
1013
- case 'sendmail':
1014
- return $this->sendmailSend($this->MIMEHeader, $this->MIMEBody);
1015
- case 'smtp':
1016
- return $this->smtpSend($this->MIMEHeader, $this->MIMEBody);
1017
- case 'mail':
1018
- return $this->mailSend($this->MIMEHeader, $this->MIMEBody);
1019
- default:
1020
- return $this->mailSend($this->MIMEHeader, $this->MIMEBody);
1021
- }
1022
- } catch (phpmailerException $e) {
1023
- $this->setError($e->getMessage());
1024
- if ($this->exceptions) {
1025
- throw $e;
1026
- }
1027
- $this->edebug($e->getMessage() . "\n");
1028
- }
1029
- return false;
1030
- }
1031
-
1032
- /**
1033
- * Send mail using the $Sendmail program.
1034
- * @param string $header The message headers
1035
- * @param string $body The message body
1036
- * @see PHPMailer::$Sendmail
1037
- * @throws phpmailerException
1038
- * @access protected
1039
- * @return bool
1040
- */
1041
- protected function sendmailSend($header, $body)
1042
- {
1043
- if ($this->Sender != '') {
1044
- $sendmail = sprintf("%s -oi -f%s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender));
1045
- } else {
1046
- $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail));
1047
- }
1048
- if ($this->SingleTo === true) {
1049
- foreach ($this->SingleToArray as $val) {
1050
- if (!@$mail = popen($sendmail, 'w')) {
1051
- throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
1052
- }
1053
- fputs($mail, "To: " . $val . "\n");
1054
- fputs($mail, $header);
1055
- fputs($mail, $body);
1056
- $result = pclose($mail);
1057
- // implement call back function if it exists
1058
- $isSent = ($result == 0) ? 1 : 0;
1059
- $this->doCallback($isSent, $val, $this->cc, $this->bcc, $this->Subject, $body, $this->From);
1060
- if ($result != 0) {
1061
- throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
1062
- }
1063
- }
1064
- } else {
1065
- if (!@$mail = popen($sendmail, 'w')) {
1066
- throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
1067
- }
1068
- fputs($mail, $header);
1069
- fputs($mail, $body);
1070
- $result = pclose($mail);
1071
- // implement call back function if it exists
1072
- $isSent = ($result == 0) ? 1 : 0;
1073
- $this->doCallback($isSent, $this->to, $this->cc, $this->bcc, $this->Subject, $body, $this->From);
1074
- if ($result != 0) {
1075
- throw new phpmailerException($this->lang('execute') . $this->Sendmail, self::STOP_CRITICAL);
1076
- }
1077
- }
1078
- return true;
1079
- }
1080
-
1081
- /**
1082
- * Send mail using the PHP mail() function.
1083
- * @param string $header The message headers
1084
- * @param string $body The message body
1085
- * @link http://www.php.net/manual/en/book.mail.php
1086
- * @throws phpmailerException
1087
- * @access protected
1088
- * @return bool
1089
- */
1090
- protected function mailSend($header, $body)
1091
- {
1092
- $toArr = array();
1093
- foreach ($this->to as $t) {
1094
- $toArr[] = $this->addrFormat($t);
1095
- }
1096
- $to = implode(', ', $toArr);
1097
-
1098
- if (empty($this->Sender)) {
1099
- $params = " ";
1100
- } else {
1101
- $params = sprintf("-f%s", $this->Sender);
1102
- }
1103
- if ($this->Sender != '' and !ini_get('safe_mode')) {
1104
- $old_from = ini_get('sendmail_from');
1105
- ini_set('sendmail_from', $this->Sender);
1106
- }
1107
- $rt = false;
1108
- if ($this->SingleTo === true && count($toArr) > 1) {
1109
- foreach ($toArr as $val) {
1110
- $rt = $this->mailPassthru($val, $this->Subject, $body, $header, $params);
1111
- // implement call back function if it exists
1112
- $isSent = ($rt == 1) ? 1 : 0;
1113
- $this->doCallback($isSent, $val, $this->cc, $this->bcc, $this->Subject, $body, $this->From);
1114
- }
1115
- } else {
1116
- $rt = $this->mailPassthru($to, $this->Subject, $body, $header, $params);
1117
- // implement call back function if it exists
1118
- $isSent = ($rt == 1) ? 1 : 0;
1119
- $this->doCallback($isSent, $to, $this->cc, $this->bcc, $this->Subject, $body, $this->From);
1120
- }
1121
- if (isset($old_from)) {
1122
- ini_set('sendmail_from', $old_from);
1123
- }
1124
- if (!$rt) {
1125
- throw new phpmailerException($this->lang('instantiate'), self::STOP_CRITICAL);
1126
- }
1127
- return true;
1128
- }
1129
-
1130
- /**
1131
- * Get an instance to use for SMTP operations.
1132
- * Override this function to load your own SMTP implementation
1133
- * @return SMTP
1134
- */
1135
- public function getSMTPInstance()
1136
- {
1137
- if (!is_object($this->smtp)) {
1138
- require_once 'class-smtp.php';
1139
- $this->smtp = new SMTP;
1140
- }
1141
- return $this->smtp;
1142
- }
1143
-
1144
- /**
1145
- * Send mail via SMTP.
1146
- * Returns false if there is a bad MAIL FROM, RCPT, or DATA input.
1147
- * Uses the PHPMailerSMTP class by default.
1148
- * @see PHPMailer::getSMTPInstance() to use a different class.
1149
- * @param string $header The message headers
1150
- * @param string $body The message body
1151
- * @throws phpmailerException
1152
- * @uses SMTP
1153
- * @access protected
1154
- * @return bool
1155
- */
1156
- protected function smtpSend($header, $body)
1157
- {
1158
- $bad_rcpt = array();
1159
-
1160
- if (!$this->smtpConnect()) {
1161
- throw new phpmailerException($this->lang('smtp_connect_failed'), self::STOP_CRITICAL);
1162
- }
1163
- $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender;
1164
- if (!$this->smtp->mail($smtp_from)) {
1165
- $this->setError($this->lang('from_failed') . $smtp_from . ' : ' . implode(',', $this->smtp->getError()));
1166
- throw new phpmailerException($this->ErrorInfo, self::STOP_CRITICAL);
1167
- }
1168
-
1169
- // Attempt to send attach all recipients
1170
- foreach ($this->to as $to) {
1171
- if (!$this->smtp->recipient($to[0])) {
1172
- $bad_rcpt[] = $to[0];
1173
- $isSent = 0;
1174
- } else {
1175
- $isSent = 1;
1176
- }
1177
- $this->doCallback($isSent, $to[0], '', '', $this->Subject, $body, $this->From);
1178
- }
1179
- foreach ($this->cc as $cc) {
1180
- if (!$this->smtp->recipient($cc[0])) {
1181
- $bad_rcpt[] = $cc[0];
1182
- $isSent = 0;
1183
- } else {
1184
- $isSent = 1;
1185
- }
1186
- $this->doCallback($isSent, '', $cc[0], '', $this->Subject, $body, $this->From);
1187
- }
1188
- foreach ($this->bcc as $bcc) {
1189
- if (!$this->smtp->recipient($bcc[0])) {
1190
- $bad_rcpt[] = $bcc[0];
1191
- $isSent = 0;
1192
- } else {
1193
- $isSent = 1;
1194
- }
1195
- $this->doCallback($isSent, '', '', $bcc[0], $this->Subject, $body, $this->From);
1196
- }
1197
-
1198
- if (count($bad_rcpt) > 0) { //Create error message for any bad addresses
1199
- throw new phpmailerException($this->lang('recipients_failed') . implode(', ', $bad_rcpt));
1200
- }
1201
- if (!$this->smtp->data($header . $body)) {
1202
- throw new phpmailerException($this->lang('data_not_accepted'), self::STOP_CRITICAL);
1203
- }
1204
- if ($this->SMTPKeepAlive == true) {
1205
- $this->smtp->reset();
1206
- } else {
1207
- $this->smtp->quit();
1208
- $this->smtp->close();
1209
- }
1210
- return true;
1211
- }
1212
-
1213
- /**
1214
- * Initiate a connection to an SMTP server.
1215
- * Returns false if the operation failed.
1216
- * @param array $options An array of options compatible with stream_context_create()
1217
- * @uses SMTP
1218
- * @access public
1219
- * @throws phpmailerException
1220
- * @return bool
1221
- */
1222
- public function smtpConnect($options = array())
1223
- {
1224
- if (is_null($this->smtp)) {
1225
- $this->smtp = $this->getSMTPInstance();
1226
- }
1227
-
1228
- //Already connected?
1229
- if ($this->smtp->connected()) {
1230
- return true;
1231
- }
1232
-
1233
- $this->smtp->setTimeout($this->Timeout);
1234
- $this->smtp->setDebugLevel($this->SMTPDebug);
1235
- $this->smtp->setDebugOutput($this->Debugoutput);
1236
- $this->smtp->setVerp($this->do_verp);
1237
- $tls = ($this->SMTPSecure == 'tls');
1238
- $ssl = ($this->SMTPSecure == 'ssl');
1239
- $hosts = explode(';', $this->Host);
1240
- $lastexception = null;
1241
-
1242
- foreach ($hosts as $hostentry) {
1243
- $hostinfo = array();
1244
- $host = $hostentry;
1245
- $port = $this->Port;
1246
- if (preg_match(
1247
- '/^(.+):([0-9]+)$/',
1248
- $hostentry,
1249
- $hostinfo
1250
- )
1251
- ) { //If $hostentry contains 'address:port', override default
1252
- $host = $hostinfo[1];
1253
- $port = $hostinfo[2];
1254
- }
1255
- if ($this->smtp->connect(($ssl ? 'ssl://' : '') . $host, $port, $this->Timeout, $options)) {
1256
- try {
1257
- if ($this->Helo) {
1258
- $hello = $this->Helo;
1259
- } else {
1260
- $hello = $this->serverHostname();
1261
- }
1262
- $this->smtp->hello($hello);
1263
-
1264
- if ($tls) {
1265
- if (!$this->smtp->startTLS()) {
1266
- throw new phpmailerException($this->lang('connect_host'));
1267
- }
1268
- //We must resend HELO after tls negotiation
1269
- $this->smtp->hello($hello);
1270
- }
1271
- if ($this->SMTPAuth) {
1272
- if (!$this->smtp->authenticate(
1273
- $this->Username,
1274
- $this->Password,
1275
- $this->AuthType,
1276
- $this->Realm,
1277
- $this->Workstation
1278
- )
1279
- ) {
1280
- throw new phpmailerException($this->lang('authenticate'));
1281
- }
1282
- }
1283
- return true;
1284
- } catch (phpmailerException $e) {
1285
- $lastexception = $e;
1286
- //We must have connected, but then failed TLS or Auth, so close connection nicely
1287
- $this->smtp->quit();
1288
- }
1289
- }
1290
- }
1291
- //If we get here, all connection attempts have failed, so close connection hard
1292
- $this->smtp->close();
1293
- //As we've caught all exceptions, just report whatever the last one was
1294
- if ($this->exceptions and !is_null($lastexception)) {
1295
- throw $lastexception;
1296
- }
1297
- return false;
1298
- }
1299
-
1300
- /**
1301
- * Close the active SMTP session if one exists.
1302
- * @return void
1303
- */
1304
- public function smtpClose()
1305
- {
1306
- if ($this->smtp !== null) {
1307
- if ($this->smtp->connected()) {
1308
- $this->smtp->quit();
1309
- $this->smtp->close();
1310
- }
1311
- }
1312
- }
1313
-
1314
- /**
1315
- * Set the language for error messages.
1316
- * Returns false if it cannot load the language file.
1317
- * The default language is English.
1318
- * @param string $langcode ISO 639-1 2-character language code (e.g. French is "fr")
1319
- * @param string $lang_path Path to the language file directory, with trailing separator (slash)
1320
- * @return bool
1321
- * @access public
1322
- */
1323
- public function setLanguage($langcode = 'en', $lang_path = 'language/')
1324
- {
1325
- //Define full set of translatable strings
1326
- $PHPMAILER_LANG = array(
1327
- 'authenticate' => 'SMTP Error: Could not authenticate.',
1328
- 'connect_host' => 'SMTP Error: Could not connect to SMTP host.',
1329
- 'data_not_accepted' => 'SMTP Error: data not accepted.',
1330
- 'empty_message' => 'Message body empty',
1331
- 'encoding' => 'Unknown encoding: ',
1332
- 'execute' => 'Could not execute: ',
1333
- 'file_access' => 'Could not access file: ',
1334
- 'file_open' => 'File Error: Could not open file: ',
1335
- 'from_failed' => 'The following From address failed: ',
1336
- 'instantiate' => 'Could not instantiate mail function.',
1337
- 'invalid_address' => 'Invalid address',
1338
- 'mailer_not_supported' => ' mailer is not supported.',
1339
- 'provide_address' => 'You must provide at least one recipient email address.',
1340
- 'recipients_failed' => 'SMTP Error: The following recipients failed: ',
1341
- 'signing' => 'Signing Error: ',
1342
- 'smtp_connect_failed' => 'SMTP connect() failed.',
1343
- 'smtp_error' => 'SMTP server error: ',
1344
- 'variable_set' => 'Cannot set or reset variable: '
1345
- );
1346
- //Overwrite language-specific strings.
1347
- //This way we'll never have missing translations - no more "language string failed to load"!
1348
- $l = true;
1349
- if ($langcode != 'en') { //There is no English translation file
1350
- $l = @include $lang_path . 'phpmailer.lang-' . $langcode . '.php';
1351
- }
1352
- $this->language = $PHPMAILER_LANG;
1353
- return ($l == true); //Returns false if language not found
1354
- }
1355
-
1356
- /**
1357
- * Get the array of strings for the current language.
1358
- * @return array
1359
- */
1360
- public function getTranslations()
1361
- {
1362
- return $this->language;
1363
- }
1364
-
1365
- /**
1366
- * Create recipient headers.
1367
- * @access public
1368
- * @param string $type
1369
- * @param array $addr An array of recipient,
1370
- * where each recipient is a 2-element indexed array with element 0 containing an address
1371
- * and element 1 containing a name, like:
1372
- * array(array('joe@example.com', 'Joe User'), array('zoe@example.com', 'Zoe User'))
1373
- * @return string
1374
- */
1375
- public function addrAppend($type, $addr)
1376
- {
1377
- $addresses = array();
1378
- foreach ($addr as $a) {
1379
- $addresses[] = $this->addrFormat($a);
1380
- }
1381
- return $type . ': ' . implode(', ', $addresses) . $this->LE;
1382
- }
1383
-
1384
- /**
1385
- * Format an address for use in a message header.
1386
- * @access public
1387
- * @param array $addr A 2-element indexed array, element 0 containing an address, element 1 containing a name
1388
- * like array('joe@example.com', 'Joe User')
1389
- * @return string
1390
- */
1391
- public function addrFormat($addr)
1392
- {
1393
- if (empty($addr[1])) { // No name provided
1394
- return $this->secureHeader($addr[0]);
1395
- } else {
1396
- return $this->encodeHeader($this->secureHeader($addr[1]), 'phrase') . " <" . $this->secureHeader(
1397
- $addr[0]
1398
- ) . ">";
1399
- }
1400
- }
1401
-
1402
- /**
1403
- * Word-wrap message.
1404
- * For use with mailers that do not automatically perform wrapping
1405
- * and for quoted-printable encoded messages.
1406
- * Original written by philippe.
1407
- * @param string $message The message to wrap
1408
- * @param integer $length The line length to wrap to
1409
- * @param bool $qp_mode Whether to run in Quoted-Printable mode
1410
- * @access public
1411
- * @return string
1412
- */
1413
- public function wrapText($message, $length, $qp_mode = false)
1414
- {
1415
- $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE;
1416
- // If utf-8 encoding is used, we will need to make sure we don't
1417
- // split multibyte characters when we wrap
1418
- $is_utf8 = (strtolower($this->CharSet) == "utf-8");
1419
- $lelen = strlen($this->LE);
1420
- $crlflen = strlen(self::CRLF);
1421
-
1422
- $message = $this->fixEOL($message);
1423
- if (substr($message, -$lelen) == $this->LE) {
1424
- $message = substr($message, 0, -$lelen);
1425
- }
1426
-
1427
- $line = explode($this->LE, $message); // Magic. We know fixEOL uses $LE
1428
- $message = '';
1429
- for ($i = 0; $i < count($line); $i++) {
1430
- $line_part = explode(' ', $line[$i]);
1431
- $buf = '';
1432
- for ($e = 0; $e < count($line_part); $e++) {
1433
- $word = $line_part[$e];
1434
- if ($qp_mode and (strlen($word) > $length)) {
1435
- $space_left = $length - strlen($buf) - $crlflen;
1436
- if ($e != 0) {
1437
- if ($space_left > 20) {
1438
- $len = $space_left;
1439
- if ($is_utf8) {
1440
- $len = $this->utf8CharBoundary($word, $len);
1441
- } elseif (substr($word, $len - 1, 1) == "=") {
1442
- $len--;
1443
- } elseif (substr($word, $len - 2, 1) == "=") {
1444
- $len -= 2;
1445
- }
1446
- $part = substr($word, 0, $len);
1447
- $word = substr($word, $len);
1448
- $buf .= ' ' . $part;
1449
- $message .= $buf . sprintf("=%s", self::CRLF);
1450
- } else {
1451
- $message .= $buf . $soft_break;
1452
- }
1453
- $buf = '';
1454
- }
1455
- while (strlen($word) > 0) {
1456
- if ($length <= 0) {
1457
- break;
1458
- }
1459
- $len = $length;
1460
- if ($is_utf8) {
1461
- $len = $this->utf8CharBoundary($word, $len);
1462
- } elseif (substr($word, $len - 1, 1) == "=") {
1463
- $len--;
1464
- } elseif (substr($word, $len - 2, 1) == "=") {
1465
- $len -= 2;
1466
- }
1467
- $part = substr($word, 0, $len);
1468
- $word = substr($word, $len);
1469
-
1470
- if (strlen($word) > 0) {
1471
- $message .= $part . sprintf("=%s", self::CRLF);
1472
- } else {
1473
- $buf = $part;
1474
- }
1475
- }
1476
- } else {
1477
- $buf_o = $buf;
1478
- $buf .= ($e == 0) ? $word : (' ' . $word);
1479
-
1480
- if (strlen($buf) > $length and $buf_o != '') {
1481
- $message .= $buf_o . $soft_break;
1482
- $buf = $word;
1483
- }
1484
- }
1485
- }
1486
- $message .= $buf . self::CRLF;
1487
- }
1488
-
1489
- return $message;
1490
- }
1491
-
1492
- /**
1493
- * Find the last character boundary prior to $maxLength in a utf-8
1494
- * quoted (printable) encoded string.
1495
- * Original written by Colin Brown.
1496
- * @access public
1497
- * @param string $encodedText utf-8 QP text
1498
- * @param int $maxLength find last character boundary prior to this length
1499
- * @return int
1500
- */
1501
- public function utf8CharBoundary($encodedText, $maxLength)
1502
- {
1503
- $foundSplitPos = false;
1504
- $lookBack = 3;
1505
- while (!$foundSplitPos) {
1506
- $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack);
1507
- $encodedCharPos = strpos($lastChunk, "=");
1508
- if ($encodedCharPos !== false) {
1509
- // Found start of encoded character byte within $lookBack block.
1510
- // Check the encoded byte value (the 2 chars after the '=')
1511
- $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2);
1512
- $dec = hexdec($hex);
1513
- if ($dec < 128) { // Single byte character.
1514
- // If the encoded char was found at pos 0, it will fit
1515
- // otherwise reduce maxLength to start of the encoded char
1516
- $maxLength = ($encodedCharPos == 0) ? $maxLength :
1517
- $maxLength - ($lookBack - $encodedCharPos);
1518
- $foundSplitPos = true;
1519
- } elseif ($dec >= 192) { // First byte of a multi byte character
1520
- // Reduce maxLength to split at start of character
1521
- $maxLength = $maxLength - ($lookBack - $encodedCharPos);
1522
- $foundSplitPos = true;
1523
- } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back
1524
- $lookBack += 3;
1525
- }
1526
- } else {
1527
- // No encoded character found
1528
- $foundSplitPos = true;
1529
- }
1530
- }
1531
- return $maxLength;
1532
- }
1533
-
1534
-
1535
- /**
1536
- * Set the body wrapping.
1537
- * @access public
1538
- * @return void
1539
- */
1540
- public function setWordWrap()
1541
- {
1542
- if ($this->WordWrap < 1) {
1543
- return;
1544
- }
1545
-
1546
- switch ($this->message_type) {
1547
- case 'alt':
1548
- case 'alt_inline':
1549
- case 'alt_attach':
1550
- case 'alt_inline_attach':
1551
- $this->AltBody = $this->wrapText($this->AltBody, $this->WordWrap);
1552
- break;
1553
- default:
1554
- $this->Body = $this->wrapText($this->Body, $this->WordWrap);
1555
- break;
1556
- }
1557
- }
1558
-
1559
- /**
1560
- * Assemble message headers.
1561
- * @access public
1562
- * @return string The assembled headers
1563
- */
1564
- public function createHeader()
1565
- {
1566
- $result = '';
1567
-
1568
- // Set the boundaries
1569
- $uniq_id = md5(uniqid(time()));
1570
- $this->boundary[1] = 'b1_' . $uniq_id;
1571
- $this->boundary[2] = 'b2_' . $uniq_id;
1572
- $this->boundary[3] = 'b3_' . $uniq_id;
1573
-
1574
- if ($this->MessageDate == '') {
1575
- $result .= $this->headerLine('Date', self::rfcDate());
1576
- } else {
1577
- $result .= $this->headerLine('Date', $this->MessageDate);
1578
- }
1579
-
1580
- if ($this->ReturnPath) {
1581
- $result .= $this->headerLine('Return-Path', '<' . trim($this->ReturnPath) . '>');
1582
- } elseif ($this->Sender == '') {
1583
- $result .= $this->headerLine('Return-Path', '<' . trim($this->From) . '>');
1584
- } else {
1585
- $result .= $this->headerLine('Return-Path', '<' . trim($this->Sender) . '>');
1586
- }
1587
-
1588
- // To be created automatically by mail()
1589
- if ($this->Mailer != 'mail') {
1590
- if ($this->SingleTo === true) {
1591
- foreach ($this->to as $t) {
1592
- $this->SingleToArray[] = $this->addrFormat($t);
1593
- }
1594
- } else {
1595
- if (count($this->to) > 0) {
1596
- $result .= $this->addrAppend('To', $this->to);
1597
- } elseif (count($this->cc) == 0) {
1598
- $result .= $this->headerLine('To', 'undisclosed-recipients:;');
1599
- }
1600
- }
1601
- }
1602
-
1603
- $result .= $this->addrAppend('From', array(array(trim($this->From), $this->FromName)));
1604
-
1605
- // sendmail and mail() extract Cc from the header before sending
1606
- if (count($this->cc) > 0) {
1607
- $result .= $this->addrAppend('Cc', $this->cc);
1608
- }
1609
-
1610
- // sendmail and mail() extract Bcc from the header before sending
1611
- if ((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) {
1612
- $result .= $this->addrAppend('Bcc', $this->bcc);
1613
- }
1614
-
1615
- if (count($this->ReplyTo) > 0) {
1616
- $result .= $this->addrAppend('Reply-To', $this->ReplyTo);
1617
- }
1618
-
1619
- // mail() sets the subject itself
1620
- if ($this->Mailer != 'mail') {
1621
- $result .= $this->headerLine('Subject', $this->encodeHeader($this->secureHeader($this->Subject)));
1622
- }
1623
-
1624
- if ($this->MessageID != '') {
1625
- $this->lastMessageID = $this->MessageID;
1626
- } else {
1627
- $this->lastMessageID = sprintf("<%s@%s>", $uniq_id, $this->ServerHostname());
1628
- }
1629
- $result .= $this->HeaderLine('Message-ID', $this->lastMessageID);
1630
- $result .= $this->headerLine('X-Priority', $this->Priority);
1631
- if ($this->XMailer == '') {
1632
- $result .= $this->headerLine(
1633
- 'X-Mailer',
1634
- 'PHPMailer ' . $this->Version . ' (https://github.com/PHPMailer/PHPMailer/)'
1635
- );
1636
- } else {
1637
- $myXmailer = trim($this->XMailer);
1638
- if ($myXmailer) {
1639
- $result .= $this->headerLine('X-Mailer', $myXmailer);
1640
- }
1641
- }
1642
-
1643
- if ($this->ConfirmReadingTo != '') {
1644
- $result .= $this->headerLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>');
1645
- }
1646
-
1647
- // Add custom headers
1648
- for ($index = 0; $index < count($this->CustomHeader); $index++) {
1649
- $result .= $this->headerLine(
1650
- trim($this->CustomHeader[$index][0]),
1651
- $this->encodeHeader(trim($this->CustomHeader[$index][1]))
1652
- );
1653
- }
1654
- if (!$this->sign_key_file) {
1655
- $result .= $this->headerLine('MIME-Version', '1.0');
1656
- $result .= $this->getMailMIME();
1657
- }
1658
-
1659
- return $result;
1660
- }
1661
-
1662
- /**
1663
- * Get the message MIME type headers.
1664
- * @access public
1665
- * @return string
1666
- */
1667
- public function getMailMIME()
1668
- {
1669
- $result = '';
1670
- switch ($this->message_type) {
1671
- case 'inline':
1672
- $result .= $this->headerLine('Content-Type', 'multipart/related;');
1673
- $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"');
1674
- break;
1675
- case 'attach':
1676
- case 'inline_attach':
1677
- case 'alt_attach':
1678
- case 'alt_inline_attach':
1679
- $result .= $this->headerLine('Content-Type', 'multipart/mixed;');
1680
- $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"');
1681
- break;
1682
- case 'alt':
1683
- case 'alt_inline':
1684
- $result .= $this->headerLine('Content-Type', 'multipart/alternative;');
1685
- $result .= $this->textLine("\tboundary=\"" . $this->boundary[1] . '"');
1686
- break;
1687
- default:
1688
- // Catches case 'plain': and case '':
1689
- $result .= $this->textLine('Content-Type: ' . $this->ContentType . '; charset=' . $this->CharSet);
1690
- break;
1691
- }
1692
- //RFC1341 part 5 says 7bit is assumed if not specified
1693
- if ($this->Encoding != '7bit') {
1694
- $result .= $this->headerLine('Content-Transfer-Encoding', $this->Encoding);
1695
- }
1696
-
1697
- if ($this->Mailer != 'mail') {
1698
- $result .= $this->LE;
1699
- }
1700
-
1701
- return $result;
1702
- }
1703
-
1704
- /**
1705
- * Returns the whole MIME message.
1706
- * Includes complete headers and body.
1707
- * Only valid post PreSend().
1708
- * @see PHPMailer::PreSend()
1709
- * @access public
1710
- * @return string
1711
- */
1712
- public function getSentMIMEMessage()
1713
- {
1714
- return $this->MIMEHeader . $this->mailHeader . self::CRLF . $this->MIMEBody;
1715
- }
1716
-
1717
-
1718
- /**
1719
- * Assemble the message body.
1720
- * Returns an empty string on failure.
1721
- * @access public
1722
- * @throws phpmailerException
1723
- * @return string The assembled message body
1724
- */
1725
- public function createBody()
1726
- {
1727
- $body = '';
1728
-
1729
- if ($this->sign_key_file) {
1730
- $body .= $this->getMailMIME() . $this->LE;
1731
- }
1732
-
1733
- $this->setWordWrap();
1734
-
1735
- switch ($this->message_type) {
1736
- case 'inline':
1737
- $body .= $this->getBoundary($this->boundary[1], '', '', '');
1738
- $body .= $this->encodeString($this->Body, $this->Encoding);
1739
- $body .= $this->LE . $this->LE;
1740
- $body .= $this->attachAll('inline', $this->boundary[1]);
1741
- break;
1742
- case 'attach':
1743
- $body .= $this->getBoundary($this->boundary[1], '', '', '');
1744
- $body .= $this->encodeString($this->Body, $this->Encoding);
1745
- $body .= $this->LE . $this->LE;
1746
- $body .= $this->attachAll('attachment', $this->boundary[1]);
1747
- break;
1748
- case 'inline_attach':
1749
- $body .= $this->textLine('--' . $this->boundary[1]);
1750
- $body .= $this->headerLine('Content-Type', 'multipart/related;');
1751
- $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"');
1752
- $body .= $this->LE;
1753
- $body .= $this->getBoundary($this->boundary[2], '', '', '');
1754
- $body .= $this->encodeString($this->Body, $this->Encoding);
1755
- $body .= $this->LE . $this->LE;
1756
- $body .= $this->attachAll('inline', $this->boundary[2]);
1757
- $body .= $this->LE;
1758
- $body .= $this->attachAll('attachment', $this->boundary[1]);
1759
- break;
1760
- case 'alt':
1761
- $body .= $this->getBoundary($this->boundary[1], '', 'text/plain', '');
1762
- $body .= $this->encodeString($this->AltBody, $this->Encoding);
1763
- $body .= $this->LE . $this->LE;
1764
- $body .= $this->getBoundary($this->boundary[1], '', 'text/html', '');
1765
- $body .= $this->encodeString($this->Body, $this->Encoding);
1766
- $body .= $this->LE . $this->LE;
1767
- if (!empty($this->Ical)) {
1768
- $body .= $this->getBoundary($this->boundary[1], '', 'text/calendar; method=REQUEST', '');
1769
- $body .= $this->encodeString($this->Ical, $this->Encoding);
1770
- $body .= $this->LE . $this->LE;
1771
- }
1772
- $body .= $this->endBoundary($this->boundary[1]);
1773
- break;
1774
- case 'alt_inline':
1775
- $body .= $this->getBoundary($this->boundary[1], '', 'text/plain', '');
1776
- $body .= $this->encodeString($this->AltBody, $this->Encoding);
1777
- $body .= $this->LE . $this->LE;
1778
- $body .= $this->textLine('--' . $this->boundary[1]);
1779
- $body .= $this->headerLine('Content-Type', 'multipart/related;');
1780
- $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"');
1781
- $body .= $this->LE;
1782
- $body .= $this->getBoundary($this->boundary[2], '', 'text/html', '');
1783
- $body .= $this->encodeString($this->Body, $this->Encoding);
1784
- $body .= $this->LE . $this->LE;
1785
- $body .= $this->attachAll('inline', $this->boundary[2]);
1786
- $body .= $this->LE;
1787
- $body .= $this->endBoundary($this->boundary[1]);
1788
- break;
1789
- case 'alt_attach':
1790
- $body .= $this->textLine('--' . $this->boundary[1]);
1791
- $body .= $this->headerLine('Content-Type', 'multipart/alternative;');
1792
- $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"');
1793
- $body .= $this->LE;
1794
- $body .= $this->getBoundary($this->boundary[2], '', 'text/plain', '');
1795
- $body .= $this->encodeString($this->AltBody, $this->Encoding);
1796
- $body .= $this->LE . $this->LE;
1797
- $body .= $this->getBoundary($this->boundary[2], '', 'text/html', '');
1798
- $body .= $this->encodeString($this->Body, $this->Encoding);
1799
- $body .= $this->LE . $this->LE;
1800
- $body .= $this->endBoundary($this->boundary[2]);
1801
- $body .= $this->LE;
1802
- $body .= $this->attachAll('attachment', $this->boundary[1]);
1803
- break;
1804
- case 'alt_inline_attach':
1805
- $body .= $this->textLine('--' . $this->boundary[1]);
1806
- $body .= $this->headerLine('Content-Type', 'multipart/alternative;');
1807
- $body .= $this->textLine("\tboundary=\"" . $this->boundary[2] . '"');
1808
- $body .= $this->LE;
1809
- $body .= $this->getBoundary($this->boundary[2], '', 'text/plain', '');
1810
- $body .= $this->encodeString($this->AltBody, $this->Encoding);
1811
- $body .= $this->LE . $this->LE;
1812
- $body .= $this->textLine('--' . $this->boundary[2]);
1813
- $body .= $this->headerLine('Content-Type', 'multipart/related;');
1814
- $body .= $this->textLine("\tboundary=\"" . $this->boundary[3] . '"');
1815
- $body .= $this->LE;
1816
- $body .= $this->getBoundary($this->boundary[3], '', 'text/html', '');
1817
- $body .= $this->encodeString($this->Body, $this->Encoding);
1818
- $body .= $this->LE . $this->LE;
1819
- $body .= $this->attachAll('inline', $this->boundary[3]);
1820
- $body .= $this->LE;
1821
- $body .= $this->endBoundary($this->boundary[2]);
1822
- $body .= $this->LE;
1823
- $body .= $this->attachAll('attachment', $this->boundary[1]);
1824
- break;
1825
- default:
1826
- // catch case 'plain' and case ''
1827
- $body .= $this->encodeString($this->Body, $this->Encoding);
1828
- break;
1829
- }
1830
-
1831
- if ($this->isError()) {
1832
- $body = '';
1833
- } elseif ($this->sign_key_file) {
1834
- try {
1835
- if (!defined('PKCS7_TEXT')) {
1836
- throw new phpmailerException($this->lang('signing') . ' OpenSSL extension missing.');
1837
- }
1838
- $file = tempnam(sys_get_temp_dir(), 'mail');
1839
- file_put_contents($file, $body); //TODO check this worked
1840
- $signed = tempnam(sys_get_temp_dir(), 'signed');
1841
- if (@openssl_pkcs7_sign(
1842
- $file,
1843
- $signed,
1844
- 'file://' . realpath($this->sign_cert_file),
1845
- array('file://' . realpath($this->sign_key_file), $this->sign_key_pass),
1846
- null
1847
- )
1848
- ) {
1849
- @unlink($file);
1850
- $body = file_get_contents($signed);
1851
- @unlink($signed);
1852
- } else {
1853
- @unlink($file);
1854
- @unlink($signed);
1855
- throw new phpmailerException($this->lang('signing') . openssl_error_string());
1856
- }
1857
- } catch (phpmailerException $e) {
1858
- $body = '';
1859
- if ($this->exceptions) {
1860
- throw $e;
1861
- }
1862
- }
1863
- }
1864
- return $body;
1865
- }
1866
-
1867
- /**
1868
- * Return the start of a message boundary.
1869
- * @access protected
1870
- * @param string $boundary
1871
- * @param string $charSet
1872
- * @param string $contentType
1873
- * @param string $encoding
1874
- * @return string
1875
- */
1876
- protected function getBoundary($boundary, $charSet, $contentType, $encoding)
1877
- {
1878
- $result = '';
1879
- if ($charSet == '') {
1880
- $charSet = $this->CharSet;
1881
- }
1882
- if ($contentType == '') {
1883
- $contentType = $this->ContentType;
1884
- }
1885
- if ($encoding == '') {
1886
- $encoding = $this->Encoding;
1887
- }
1888
- $result .= $this->textLine('--' . $boundary);
1889
- $result .= sprintf("Content-Type: %s; charset=%s", $contentType, $charSet);
1890
- $result .= $this->LE;
1891
- $result .= $this->headerLine('Content-Transfer-Encoding', $encoding);
1892
- $result .= $this->LE;
1893
-
1894
- return $result;
1895
- }
1896
-
1897
- /**
1898
- * Return the end of a message boundary.
1899
- * @access protected
1900
- * @param string $boundary
1901
- * @return string
1902
- */
1903
- protected function endBoundary($boundary)
1904
- {
1905
- return $this->LE . '--' . $boundary . '--' . $this->LE;
1906
- }
1907
-
1908
- /**
1909
- * Set the message type.
1910
- * PHPMailer only supports some preset message types,
1911
- * not arbitrary MIME structures.
1912
- * @access protected
1913
- * @return void
1914
- */
1915
- protected function setMessageType()
1916
- {
1917
- $this->message_type = array();
1918
- if ($this->alternativeExists()) {
1919
- $this->message_type[] = "alt";
1920
- }
1921
- if ($this->inlineImageExists()) {
1922
- $this->message_type[] = "inline";
1923
- }
1924
- if ($this->attachmentExists()) {
1925
- $this->message_type[] = "attach";
1926
- }
1927
- $this->message_type = implode("_", $this->message_type);
1928
- if ($this->message_type == "") {
1929
- $this->message_type = "plain";
1930
- }
1931
- }
1932
-
1933
- /**
1934
- * Format a header line.
1935
- * @access public
1936
- * @param string $name
1937
- * @param string $value
1938
- * @return string
1939
- */
1940
- public function headerLine($name, $value)
1941
- {
1942
- return $name . ': ' . $value . $this->LE;
1943
- }
1944
-
1945
- /**
1946
- * Return a formatted mail line.
1947
- * @access public
1948
- * @param string $value
1949
- * @return string
1950
- */
1951
- public function textLine($value)
1952
- {
1953
- return $value . $this->LE;
1954
- }
1955
-
1956
- /**
1957
- * Add an attachment from a path on the filesystem.
1958
- * Returns false if the file could not be found or read.
1959
- * @param string $path Path to the attachment.
1960
- * @param string $name Overrides the attachment name.
1961
- * @param string $encoding File encoding (see $Encoding).
1962
- * @param string $type File extension (MIME) type.
1963
- * @param string $disposition Disposition to use
1964
- * @throws phpmailerException
1965
- * @return bool
1966
- */
1967
- public function addAttachment($path, $name = '', $encoding = 'base64', $type = '', $disposition = 'attachment')
1968
- {
1969
- try {
1970
- if (!@is_file($path)) {
1971
- throw new phpmailerException($this->lang('file_access') . $path, self::STOP_CONTINUE);
1972
- }
1973
-
1974
- //If a MIME type is not specified, try to work it out from the file name
1975
- if ($type == '') {
1976
- $type = self::filenameToType($path);
1977
- }
1978
-
1979
- $filename = basename($path);
1980
- if ($name == '') {
1981
- $name = $filename;
1982
- }
1983
-
1984
- $this->attachment[] = array(
1985
- 0 => $path,
1986
- 1 => $filename,
1987
- 2 => $name,
1988
- 3 => $encoding,
1989
- 4 => $type,
1990
- 5 => false, // isStringAttachment
1991
- 6 => $disposition,
1992
- 7 => 0
1993
- );
1994
-
1995
- } catch (phpmailerException $e) {
1996
- $this->setError($e->getMessage());
1997
- if ($this->exceptions) {
1998
- throw $e;
1999
- }
2000
- $this->edebug($e->getMessage() . "\n");
2001
- return false;
2002
- }
2003
- return true;
2004
- }
2005
-
2006
- /**
2007
- * Return the array of attachments.
2008
- * @return array
2009
- */
2010
- public function getAttachments()
2011
- {
2012
- return $this->attachment;
2013
- }
2014
-
2015
- /**
2016
- * Attach all file, string, and binary attachments to the message.
2017
- * Returns an empty string on failure.
2018
- * @access protected
2019
- * @param string $disposition_type
2020
- * @param string $boundary
2021
- * @return string
2022
- */
2023
- protected function attachAll($disposition_type, $boundary)
2024
- {
2025
- // Return text of body
2026
- $mime = array();
2027
- $cidUniq = array();
2028
- $incl = array();
2029
-
2030
- // Add all attachments
2031
- foreach ($this->attachment as $attachment) {
2032
- // Check if it is a valid disposition_filter
2033
- if ($attachment[6] == $disposition_type) {
2034
- // Check for string attachment
2035
- $string = '';
2036
- $path = '';
2037
- $bString = $attachment[5];
2038
- if ($bString) {
2039
- $string = $attachment[0];
2040
- } else {
2041
- $path = $attachment[0];
2042
- }
2043
-
2044
- $inclhash = md5(serialize($attachment));
2045
- if (in_array($inclhash, $incl)) {
2046
- continue;
2047
- }
2048
- $incl[] = $inclhash;
2049
- $name = $attachment[2];
2050
- $encoding = $attachment[3];
2051
- $type = $attachment[4];
2052
- $disposition = $attachment[6];
2053
- $cid = $attachment[7];
2054
- if ($disposition == 'inline' && isset($cidUniq[$cid])) {
2055
- continue;
2056
- }
2057
- $cidUniq[$cid] = true;
2058
-
2059
- $mime[] = sprintf("--%s%s", $boundary, $this->LE);
2060
- $mime[] = sprintf(
2061
- "Content-Type: %s; name=\"%s\"%s",
2062
- $type,
2063
- $this->encodeHeader($this->secureHeader($name)),
2064
- $this->LE
2065
- );
2066
- $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE);
2067
-
2068
- if ($disposition == 'inline') {
2069
- $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE);
2070
- }
2071
-
2072
- // If a filename contains any of these chars, it should be quoted,
2073
- // but not otherwise: RFC2183 & RFC2045 5.1
2074
- // Fixes a warning in IETF's msglint MIME checker
2075
- // Allow for bypassing the Content-Disposition header totally
2076
- if (!(empty($disposition))) {
2077
- if (preg_match('/[ \(\)<>@,;:\\"\/\[\]\?=]/', $name)) {
2078
- $mime[] = sprintf(
2079
- "Content-Disposition: %s; filename=\"%s\"%s",
2080
- $disposition,
2081
- $this->encodeHeader($this->secureHeader($name)),
2082
- $this->LE . $this->LE
2083
- );
2084
- } else {
2085
- $mime[] = sprintf(
2086
- "Content-Disposition: %s; filename=%s%s",
2087
- $disposition,
2088
- $this->encodeHeader($this->secureHeader($name)),
2089
- $this->LE . $this->LE
2090
- );
2091
- }
2092
- } else {
2093
- $mime[] = $this->LE;
2094
- }
2095
-
2096
- // Encode as string attachment
2097
- if ($bString) {
2098
- $mime[] = $this->encodeString($string, $encoding);
2099
- if ($this->isError()) {
2100
- return '';
2101
- }
2102
- $mime[] = $this->LE . $this->LE;
2103
- } else {
2104
- $mime[] = $this->encodeFile($path, $encoding);
2105
- if ($this->isError()) {
2106
- return '';
2107
- }
2108
- $mime[] = $this->LE . $this->LE;
2109
- }
2110
- }
2111
- }
2112
-
2113
- $mime[] = sprintf("--%s--%s", $boundary, $this->LE);
2114
-
2115
- return implode("", $mime);
2116
- }
2117
-
2118
- /**
2119
- * Encode a file attachment in requested format.
2120
- * Returns an empty string on failure.
2121
- * @param string $path The full path to the file
2122
- * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'
2123
- * @throws phpmailerException
2124
- * @see EncodeFile(encodeFile
2125
- * @access protected
2126
- * @return string
2127
- */
2128
- protected function encodeFile($path, $encoding = 'base64')
2129
- {
2130
- try {
2131
- if (!is_readable($path)) {
2132
- throw new phpmailerException($this->lang('file_open') . $path, self::STOP_CONTINUE);
2133
- }
2134
- $magic_quotes = get_magic_quotes_runtime();
2135
- if ($magic_quotes) {
2136
- if (version_compare(PHP_VERSION, '5.3.0', '<')) {
2137
- set_magic_quotes_runtime(0);
2138
- } else {
2139
- ini_set('magic_quotes_runtime', 0);
2140
- }
2141
- }
2142
- $file_buffer = file_get_contents($path);
2143
- $file_buffer = $this->encodeString($file_buffer, $encoding);
2144
- if ($magic_quotes) {
2145
- if (version_compare(PHP_VERSION, '5.3.0', '<')) {
2146
- set_magic_quotes_runtime($magic_quotes);
2147
- } else {
2148
- ini_set('magic_quotes_runtime', $magic_quotes);
2149
- }
2150
- }
2151
- return $file_buffer;
2152
- } catch (Exception $e) {
2153
- $this->setError($e->getMessage());
2154
- return '';
2155
- }
2156
- }
2157
-
2158
- /**
2159
- * Encode a string in requested format.
2160
- * Returns an empty string on failure.
2161
- * @param string $str The text to encode
2162
- * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable'
2163
- * @access public
2164
- * @return string
2165
- */
2166
- public function encodeString($str, $encoding = 'base64')
2167
- {
2168
- $encoded = '';
2169
- switch (strtolower($encoding)) {
2170
- case 'base64':
2171
- $encoded = chunk_split(base64_encode($str), 76, $this->LE);
2172
- break;
2173
- case '7bit':
2174
- case '8bit':
2175
- $encoded = $this->fixEOL($str);
2176
- //Make sure it ends with a line break
2177
- if (substr($encoded, -(strlen($this->LE))) != $this->LE) {
2178
- $encoded .= $this->LE;
2179
- }
2180
- break;
2181
- case 'binary':
2182
- $encoded = $str;
2183
- break;
2184
- case 'quoted-printable':
2185
- $encoded = $this->encodeQP($str);
2186
- break;
2187
- default:
2188
- $this->setError($this->lang('encoding') . $encoding);
2189
- break;
2190
- }
2191
- return $encoded;
2192
- }
2193
-
2194
- /**
2195
- * Encode a header string optimally.
2196
- * Picks shortest of Q, B, quoted-printable or none.
2197
- * @access public
2198
- * @param string $str
2199
- * @param string $position
2200
- * @return string
2201
- */
2202
- public function encodeHeader($str, $position = 'text')
2203
- {
2204
- $x = 0;
2205
- switch (strtolower($position)) {
2206
- case 'phrase':
2207
- if (!preg_match('/[\200-\377]/', $str)) {
2208
- // Can't use addslashes as we don't know what value has magic_quotes_sybase
2209
- $encoded = addcslashes($str, "\0..\37\177\\\"");
2210
- if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) {
2211
- return ($encoded);
2212
- } else {
2213
- return ("\"$encoded\"");
2214
- }
2215
- }
2216
- $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches);
2217
- break;
2218
- /** @noinspection PhpMissingBreakStatementInspection */
2219
- case 'comment':
2220
- $x = preg_match_all('/[()"]/', $str, $matches);
2221
- // Intentional fall-through
2222
- case 'text':
2223
- default:
2224
- $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches);
2225
- break;
2226
- }
2227
-
2228
- if ($x == 0) { //There are no chars that need encoding
2229
- return ($str);
2230
- }
2231
-
2232
- $maxlen = 75 - 7 - strlen($this->CharSet);
2233
- // Try to select the encoding which should produce the shortest output
2234
- if ($x > strlen($str) / 3) {
2235
- //More than a third of the content will need encoding, so B encoding will be most efficient
2236
- $encoding = 'B';
2237
- if (function_exists('mb_strlen') && $this->hasMultiBytes($str)) {
2238
- // Use a custom function which correctly encodes and wraps long
2239
- // multibyte strings without breaking lines within a character
2240
- $encoded = $this->base64EncodeWrapMB($str, "\n");
2241
- } else {
2242
- $encoded = base64_encode($str);
2243
- $maxlen -= $maxlen % 4;
2244
- $encoded = trim(chunk_split($encoded, $maxlen, "\n"));
2245
- }
2246
- } else {
2247
- $encoding = 'Q';
2248
- $encoded = $this->encodeQ($str, $position);
2249
- $encoded = $this->wrapText($encoded, $maxlen, true);
2250
- $encoded = str_replace('=' . self::CRLF, "\n", trim($encoded));
2251
- }
2252
-
2253
- $encoded = preg_replace('/^(.*)$/m', " =?" . $this->CharSet . "?$encoding?\\1?=", $encoded);
2254
- $encoded = trim(str_replace("\n", $this->LE, $encoded));
2255
-
2256
- return $encoded;
2257
- }
2258
-
2259
- /**
2260
- * Check if a string contains multi-byte characters.
2261
- * @access public
2262
- * @param string $str multi-byte text to wrap encode
2263
- * @return bool
2264
- */
2265
- public function hasMultiBytes($str)
2266
- {
2267
- if (function_exists('mb_strlen')) {
2268
- return (strlen($str) > mb_strlen($str, $this->CharSet));
2269
- } else { // Assume no multibytes (we can't handle without mbstring functions anyway)
2270
- return false;
2271
- }
2272
- }
2273
-
2274
- /**
2275
- * Encode and wrap long multibyte strings for mail headers
2276
- * without breaking lines within a character.
2277
- * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php
2278
- * @access public
2279
- * @param string $str multi-byte text to wrap encode
2280
- * @param string $lf string to use as linefeed/end-of-line
2281
- * @return string
2282
- */
2283
- public function base64EncodeWrapMB($str, $lf = null)
2284
- {
2285
- $start = "=?" . $this->CharSet . "?B?";
2286
- $end = "?=";
2287
- $encoded = "";
2288
- if ($lf === null) {
2289
- $lf = $this->LE;
2290
- }
2291
-
2292
- $mb_length = mb_strlen($str, $this->CharSet);
2293
- // Each line must have length <= 75, including $start and $end
2294
- $length = 75 - strlen($start) - strlen($end);
2295
- // Average multi-byte ratio
2296
- $ratio = $mb_length / strlen($str);
2297
- // Base64 has a 4:3 ratio
2298
- $avgLength = floor($length * $ratio * .75);
2299
-
2300
- for ($i = 0; $i < $mb_length; $i += $offset) {
2301
- $lookBack = 0;
2302
- do {
2303
- $offset = $avgLength - $lookBack;
2304
- $chunk = mb_substr($str, $i, $offset, $this->CharSet);
2305
- $chunk = base64_encode($chunk);
2306
- $lookBack++;
2307
- } while (strlen($chunk) > $length);
2308
- $encoded .= $chunk . $lf;
2309
- }
2310
-
2311
- // Chomp the last linefeed
2312
- $encoded = substr($encoded, 0, -strlen($lf));
2313
- return $encoded;
2314
- }
2315
-
2316
- /**
2317
- * Encode a string in quoted-printable format.
2318
- * According to RFC2045 section 6.7.
2319
- * @access public
2320
- * @param string $string The text to encode
2321
- * @param integer $line_max Number of chars allowed on a line before wrapping
2322
- * @return string
2323
- * @link PHP version adapted from http://www.php.net/manual/en/function.quoted-printable-decode.php#89417
2324
- */
2325
- public function encodeQP($string, $line_max = 76)
2326
- {
2327
- if (function_exists('quoted_printable_encode')) { //Use native function if it's available (>= PHP5.3)
2328
- return quoted_printable_encode($string);
2329
- }
2330
- //Fall back to a pure PHP implementation
2331
- $string = str_replace(
2332
- array('%20', '%0D%0A.', '%0D%0A', '%'),
2333
- array(' ', "\r\n=2E", "\r\n", '='),
2334
- rawurlencode($string)
2335
- );
2336
- $string = preg_replace('/[^\r\n]{' . ($line_max - 3) . '}[^=\r\n]{2}/', "$0=\r\n", $string);
2337
- return $string;
2338
- }
2339
-
2340
- /**
2341
- * Backward compatibility wrapper for an old QP encoding function that was removed.
2342
- * @see PHPMailer::encodeQP()
2343
- * @access public
2344
- * @param string $string
2345
- * @param integer $line_max
2346
- * @param bool $space_conv
2347
- * @return string
2348
- * @deprecated Use encodeQP instead.
2349
- */
2350
- public function encodeQPphp(
2351
- $string,
2352
- $line_max = 76,
2353
- /** @noinspection PhpUnusedParameterInspection */ $space_conv = false
2354
- ) {
2355
- return $this->encodeQP($string, $line_max);
2356
- }
2357
-
2358
- /**
2359
- * Encode a string using Q encoding.
2360
- * @link http://tools.ietf.org/html/rfc2047
2361
- * @param string $str the text to encode
2362
- * @param string $position Where the text is going to be used, see the RFC for what that means
2363
- * @access public
2364
- * @return string
2365
- */
2366
- public function encodeQ($str, $position = 'text')
2367
- {
2368
- //There should not be any EOL in the string
2369
- $pattern = '';
2370
- $encoded = str_replace(array("\r", "\n"), '', $str);
2371
- switch (strtolower($position)) {
2372
- case 'phrase':
2373
- //RFC 2047 section 5.3
2374
- $pattern = '^A-Za-z0-9!*+\/ -';
2375
- break;
2376
- /** @noinspection PhpMissingBreakStatementInspection */
2377
- case 'comment':
2378
- //RFC 2047 section 5.2
2379
- $pattern = '\(\)"';
2380
- //intentional fall-through
2381
- //for this reason we build the $pattern without including delimiters and []
2382
- case 'text':
2383
- default:
2384
- //RFC 2047 section 5.1
2385
- //Replace every high ascii, control, =, ? and _ characters
2386
- $pattern = '\000-\011\013\014\016-\037\075\077\137\177-\377' . $pattern;
2387
- break;
2388
- }
2389
- $matches = array();
2390
- if (preg_match_all("/[{$pattern}]/", $encoded, $matches)) {
2391
- //If the string contains an '=', make sure it's the first thing we replace
2392
- //so as to avoid double-encoding
2393
- $s = array_search('=', $matches[0]);
2394
- if ($s !== false) {
2395
- unset($matches[0][$s]);
2396
- array_unshift($matches[0], '=');
2397
- }
2398
- foreach (array_unique($matches[0]) as $char) {
2399
- $encoded = str_replace($char, '=' . sprintf('%02X', ord($char)), $encoded);
2400
- }
2401
- }
2402
- //Replace every spaces to _ (more readable than =20)
2403
- return str_replace(' ', '_', $encoded);
2404
- }
2405
-
2406
-
2407
- /**
2408
- * Add a string or binary attachment (non-filesystem).
2409
- * This method can be used to attach ascii or binary data,
2410
- * such as a BLOB record from a database.
2411
- * @param string $string String attachment data.
2412
- * @param string $filename Name of the attachment.
2413
- * @param string $encoding File encoding (see $Encoding).
2414
- * @param string $type File extension (MIME) type.
2415
- * @param string $disposition Disposition to use
2416
- * @return void
2417
- */
2418
- public function addStringAttachment(
2419
- $string,
2420
- $filename,
2421
- $encoding = 'base64',
2422
- $type = '',
2423
- $disposition = 'attachment'
2424
- ) {
2425
- //If a MIME type is not specified, try to work it out from the file name
2426
- if ($type == '') {
2427
- $type = self::filenameToType($filename);
2428
- }
2429
- // Append to $attachment array
2430
- $this->attachment[] = array(
2431
- 0 => $string,
2432
- 1 => $filename,
2433
- 2 => basename($filename),
2434
- 3 => $encoding,
2435
- 4 => $type,
2436
- 5 => true, // isStringAttachment
2437
- 6 => $disposition,
2438
- 7 => 0
2439
- );
2440
- }
2441
-
2442
- /**
2443
- * Add an embedded (inline) attachment from a file.
2444
- * This can include images, sounds, and just about any other document type.
2445
- * These differ from 'regular' attachmants in that they are intended to be
2446
- * displayed inline with the message, not just attached for download.
2447
- * This is used in HTML messages that embed the images
2448
- * the HTML refers to using the $cid value.
2449
- * @param string $path Path to the attachment.
2450
- * @param string $cid Content ID of the attachment; Use this to reference
2451
- * the content when using an embedded image in HTML.
2452
- * @param string $name Overrides the attachment name.
2453
- * @param string $encoding File encoding (see $Encoding).
2454
- * @param string $type File MIME type.
2455
- * @param string $disposition Disposition to use
2456
- * @return bool True on successfully adding an attachment
2457
- */
2458
- public function addEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = '', $disposition = 'inline')
2459
- {
2460
- if (!@is_file($path)) {
2461
- $this->setError($this->lang('file_access') . $path);
2462
- return false;
2463
- }
2464
-
2465
- //If a MIME type is not specified, try to work it out from the file name
2466
- if ($type == '') {
2467
- $type = self::filenameToType($path);
2468
- }
2469
-
2470
- $filename = basename($path);
2471
- if ($name == '') {
2472
- $name = $filename;
2473
- }
2474
-
2475
- // Append to $attachment array
2476
- $this->attachment[] = array(
2477
- 0 => $path,
2478
- 1 => $filename,
2479
- 2 => $name,
2480
- 3 => $encoding,
2481
- 4 => $type,
2482
- 5 => false, // isStringAttachment
2483
- 6 => $disposition,
2484
- 7 => $cid
2485
- );
2486
- return true;
2487
- }
2488
-
2489
- /**
2490
- * Add an embedded stringified attachment.
2491
- * This can include images, sounds, and just about any other document type.
2492
- * Be sure to set the $type to an image type for images:
2493
- * JPEG images use 'image/jpeg', GIF uses 'image/gif', PNG uses 'image/png'.
2494
- * @param string $string The attachment binary data.
2495
- * @param string $cid Content ID of the attachment; Use this to reference
2496
- * the content when using an embedded image in HTML.
2497
- * @param string $name
2498
- * @param string $encoding File encoding (see $Encoding).
2499
- * @param string $type MIME type.
2500
- * @param string $disposition Disposition to use
2501
- * @return bool True on successfully adding an attachment
2502
- */
2503
- public function addStringEmbeddedImage(
2504
- $string,
2505
- $cid,
2506
- $name = '',
2507
- $encoding = 'base64',
2508
- $type = '',
2509
- $disposition = 'inline'
2510
- ) {
2511
- //If a MIME type is not specified, try to work it out from the name
2512
- if ($type == '') {
2513
- $type = self::filenameToType($name);
2514
- }
2515
-
2516
- // Append to $attachment array
2517
- $this->attachment[] = array(
2518
- 0 => $string,
2519
- 1 => $name,
2520
- 2 => $name,
2521
- 3 => $encoding,
2522
- 4 => $type,
2523
- 5 => true, // isStringAttachment
2524
- 6 => $disposition,
2525
- 7 => $cid
2526
- );
2527
- return true;
2528
- }
2529
-
2530
- /**
2531
- * Check if an inline attachment is present.
2532
- * @access public
2533
- * @return bool
2534
- */
2535
- public function inlineImageExists()
2536
- {
2537
- foreach ($this->attachment as $attachment) {
2538
- if ($attachment[6] == 'inline') {
2539
- return true;
2540
- }
2541
- }
2542
- return false;
2543
- }
2544
-
2545
- /**
2546
- * Check if an attachment (non-inline) is present.
2547
- * @return bool
2548
- */
2549
- public function attachmentExists()
2550
- {
2551
- foreach ($this->attachment as $attachment) {
2552
- if ($attachment[6] == 'attachment') {
2553
- return true;
2554
- }
2555
- }
2556
- return false;
2557
- }
2558
-
2559
- /**
2560
- * Check if this message has an alternative body set.
2561
- * @return bool
2562
- */
2563
- public function alternativeExists()
2564
- {
2565
- return !empty($this->AltBody);
2566
- }
2567
-
2568
- /**
2569
- * Clear all To recipients.
2570
- * @return void
2571
- */
2572
- public function clearAddresses()
2573
- {
2574
- foreach ($this->to as $to) {
2575
- unset($this->all_recipients[strtolower($to[0])]);
2576
- }
2577
- $this->to = array();
2578
- }
2579
-
2580
- /**
2581
- * Clear all CC recipients.
2582
- * @return void
2583
- */
2584
- public function clearCCs()
2585
- {
2586
- foreach ($this->cc as $cc) {
2587
- unset($this->all_recipients[strtolower($cc[0])]);
2588
- }
2589
- $this->cc = array();
2590
- }
2591
-
2592
- /**
2593
- * Clear all BCC recipients.
2594
- * @return void
2595
- */
2596
- public function clearBCCs()
2597
- {
2598
- foreach ($this->bcc as $bcc) {
2599
- unset($this->all_recipients[strtolower($bcc[0])]);
2600
- }
2601
- $this->bcc = array();
2602
- }
2603
-
2604
- /**
2605
- * Clear all ReplyTo recipients.
2606
- * @return void
2607
- */
2608
- public function clearReplyTos()
2609
- {
2610
- $this->ReplyTo = array();
2611
- }
2612
-
2613
- /**
2614
- * Clear all recipient types.
2615
- * @return void
2616
- */
2617
- public function clearAllRecipients()
2618
- {
2619
- $this->to = array();
2620
- $this->cc = array();
2621
- $this->bcc = array();
2622
- $this->all_recipients = array();
2623
- }
2624
-
2625
- /**
2626
- * Clear all filesystem, string, and binary attachments.
2627
- * @return void
2628
- */
2629
- public function clearAttachments()
2630
- {
2631
- $this->attachment = array();
2632
- }
2633
-
2634
- /**
2635
- * Clear all custom headers.
2636
- * @return void
2637
- */
2638
- public function clearCustomHeaders()
2639
- {
2640
- $this->CustomHeader = array();
2641
- }
2642
-
2643
- /**
2644
- * Add an error message to the error container.
2645
- * @access protected
2646
- * @param string $msg
2647
- * @return void
2648
- */
2649
- protected function setError($msg)
2650
- {
2651
- $this->error_count++;
2652
- if ($this->Mailer == 'smtp' and !is_null($this->smtp)) {
2653
- $lasterror = $this->smtp->getError();
2654
- if (!empty($lasterror) and array_key_exists('smtp_msg', $lasterror)) {
2655
- $msg .= '<p>' . $this->lang('smtp_error') . $lasterror['smtp_msg'] . "</p>\n";
2656
- }
2657
- }
2658
- $this->ErrorInfo = $msg;
2659
- }
2660
-
2661
- /**
2662
- * Return an RFC 822 formatted date.
2663
- * @access public
2664
- * @return string
2665
- * @static
2666
- */
2667
- public static function rfcDate()
2668
- {
2669
- //Set the time zone to whatever the default is to avoid 500 errors
2670
- //Will default to UTC if it's not set properly in php.ini
2671
- date_default_timezone_set(@date_default_timezone_get());
2672
- return date('D, j M Y H:i:s O');
2673
- }
2674
-
2675
- /**
2676
- * Get the server hostname.
2677
- * Returns 'localhost.localdomain' if unknown.
2678
- * @access protected
2679
- * @return string
2680
- */
2681
- protected function serverHostname()
2682
- {
2683
- if (!empty($this->Hostname)) {
2684
- $result = $this->Hostname;
2685
- } elseif (isset($_SERVER['SERVER_NAME'])) {
2686
- $result = $_SERVER['SERVER_NAME'];
2687
- } else {
2688
- $result = 'localhost.localdomain';
2689
- }
2690
-
2691
- return $result;
2692
- }
2693
-
2694
- /**
2695
- * Get an error message in the current language.
2696
- * @access protected
2697
- * @param string $key
2698
- * @return string
2699
- */
2700
- protected function lang($key)
2701
- {
2702
- if (count($this->language) < 1) {
2703
- $this->setLanguage('en'); // set the default language
2704
- }
2705
-
2706
- if (isset($this->language[$key])) {
2707
- return $this->language[$key];
2708
- } else {
2709
- return 'Language string failed to load: ' . $key;
2710
- }
2711
- }
2712
-
2713
- /**
2714
- * Check if an error occurred.
2715
- * @access public
2716
- * @return bool True if an error did occur.
2717
- */
2718
- public function isError()
2719
- {
2720
- return ($this->error_count > 0);
2721
- }
2722
-
2723
- /**
2724
- * Ensure consistent line endings in a string.
2725
- * Changes every end of line from CRLF, CR or LF to $this->LE.
2726
- * @access public
2727
- * @param string $str String to fixEOL
2728
- * @return string
2729
- */
2730
- public function fixEOL($str)
2731
- {
2732
- // Normalise to \n
2733
- $nstr = str_replace(array("\r\n", "\r"), "\n", $str);
2734
- // Now convert LE as needed
2735
- if ($this->LE !== "\n") {
2736
- $nstr = str_replace("\n", $this->LE, $nstr);
2737
- }
2738
- return $nstr;
2739
- }
2740
-
2741
- /**
2742
- * Add a custom header.
2743
- * $name value can be overloaded to contain
2744
- * both header name and value (name:value)
2745
- * @access public
2746
- * @param string $name Custom header name
2747
- * @param string $value Header value
2748
- * @return void
2749
- */
2750
- public function addCustomHeader($name, $value = null)
2751
- {
2752
- if ($value === null) {
2753
- // Value passed in as name:value
2754
- $this->CustomHeader[] = explode(':', $name, 2);
2755
- } else {
2756
- $this->CustomHeader[] = array($name, $value);
2757
- }
2758
- }
2759
-
2760
- /**
2761
- * Create a message from an HTML string.
2762
- * Automatically makes modifications for inline images and backgrounds
2763
- * and creates a plain-text version by converting the HTML.
2764
- * Overwrites any existing values in $this->Body and $this->AltBody
2765
- * @access public
2766
- * @param string $message HTML message string
2767
- * @param string $basedir baseline directory for path
2768
- * @param bool $advanced Whether to use the advanced HTML to text converter
2769
- * @return string $message
2770
- */
2771
- public function msgHTML($message, $basedir = '', $advanced = false)
2772
- {
2773
- preg_match_all("/(src|background)=[\"'](.*)[\"']/Ui", $message, $images);
2774
- if (isset($images[2])) {
2775
- foreach ($images[2] as $i => $url) {
2776
- // do not change urls for absolute images (thanks to corvuscorax)
2777
- if (!preg_match('#^[A-z]+://#', $url)) {
2778
- $filename = basename($url);
2779
- $directory = dirname($url);
2780
- if ($directory == '.') {
2781
- $directory = '';
2782
- }
2783
- $cid = md5($url) . '@phpmailer.0'; //RFC2392 S 2
2784
- if (strlen($basedir) > 1 && substr($basedir, -1) != '/') {
2785
- $basedir .= '/';
2786
- }
2787
- if (strlen($directory) > 1 && substr($directory, -1) != '/') {
2788
- $directory .= '/';
2789
- }
2790
- if ($this->addEmbeddedImage(
2791
- $basedir . $directory . $filename,
2792
- $cid,
2793
- $filename,
2794
- 'base64',
2795
- self::_mime_types(self::mb_pathinfo($filename, PATHINFO_EXTENSION))
2796
- )
2797
- ) {
2798
- $message = preg_replace(
2799
- "/" . $images[1][$i] . "=[\"']" . preg_quote($url, '/') . "[\"']/Ui",
2800
- $images[1][$i] . "=\"cid:" . $cid . "\"",
2801
- $message
2802
- );
2803
- }
2804
- }
2805
- }
2806
- }
2807
- $this->isHTML(true);
2808
- if (empty($this->AltBody)) {
2809
- $this->AltBody = 'To view this email message, open it in a program that understands HTML!' . "\n\n";
2810
- }
2811
- //Convert all message body line breaks to CRLF, makes quoted-printable encoding work much better
2812
- $this->Body = $this->normalizeBreaks($message);
2813
- $this->AltBody = $this->normalizeBreaks($this->html2text($message, $advanced));
2814
- return $this->Body;
2815
- }
2816
-
2817
- /**
2818
- * Convert an HTML string into plain text.
2819
- * @param string $html The HTML text to convert
2820
- * @param bool $advanced Should this use the more complex html2text converter or just a simple one?
2821
- * @return string
2822
- */
2823
- public function html2text($html, $advanced = false)
2824
- {
2825
- if ($advanced) {
2826
- require_once 'extras/class.html2text.php';
2827
- $h = new html2text($html);
2828
- return $h->get_text();
2829
- }
2830
- return html_entity_decode(
2831
- trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/si', '', $html))),
2832
- ENT_QUOTES,
2833
- $this->CharSet
2834
- );
2835
- }
2836
-
2837
- /**
2838
- * Get the MIME type for a file extension.
2839
- * @param string $ext File extension
2840
- * @access public
2841
- * @return string MIME type of file.
2842
- * @static
2843
- */
2844
- public static function _mime_types($ext = '')
2845
- {
2846
- $mimes = array(
2847
- 'xl' => 'application/excel',
2848
- 'hqx' => 'application/mac-binhex40',
2849
- 'cpt' => 'application/mac-compactpro',
2850
- 'bin' => 'application/macbinary',
2851
- 'doc' => 'application/msword',
2852
- 'word' => 'application/msword',
2853
- 'class' => 'application/octet-stream',
2854
- 'dll' => 'application/octet-stream',
2855
- 'dms' => 'application/octet-stream',
2856
- 'exe' => 'application/octet-stream',
2857
- 'lha' => 'application/octet-stream',
2858
- 'lzh' => 'application/octet-stream',
2859
- 'psd' => 'application/octet-stream',
2860
- 'sea' => 'application/octet-stream',
2861
- 'so' => 'application/octet-stream',
2862
- 'oda' => 'application/oda',
2863
- 'pdf' => 'application/pdf',
2864
- 'ai' => 'application/postscript',
2865
- 'eps' => 'application/postscript',
2866
- 'ps' => 'application/postscript',
2867
- 'smi' => 'application/smil',
2868
- 'smil' => 'application/smil',
2869
- 'mif' => 'application/vnd.mif',
2870
- 'xls' => 'application/vnd.ms-excel',
2871
- 'ppt' => 'application/vnd.ms-powerpoint',
2872
- 'wbxml' => 'application/vnd.wap.wbxml',
2873
- 'wmlc' => 'application/vnd.wap.wmlc',
2874
- 'dcr' => 'application/x-director',
2875
- 'dir' => 'application/x-director',
2876
- 'dxr' => 'application/x-director',
2877
- 'dvi' => 'application/x-dvi',
2878
- 'gtar' => 'application/x-gtar',
2879
- 'php3' => 'application/x-httpd-php',
2880
- 'php4' => 'application/x-httpd-php',
2881
- 'php' => 'application/x-httpd-php',
2882
- 'phtml' => 'application/x-httpd-php',
2883
- 'phps' => 'application/x-httpd-php-source',
2884
- 'js' => 'application/x-javascript',
2885
- 'swf' => 'application/x-shockwave-flash',
2886
- 'sit' => 'application/x-stuffit',
2887
- 'tar' => 'application/x-tar',
2888
- 'tgz' => 'application/x-tar',
2889
- 'xht' => 'application/xhtml+xml',
2890
- 'xhtml' => 'application/xhtml+xml',
2891
- 'zip' => 'application/zip',
2892
- 'mid' => 'audio/midi',
2893
- 'midi' => 'audio/midi',
2894
- 'mp2' => 'audio/mpeg',
2895
- 'mp3' => 'audio/mpeg',
2896
- 'mpga' => 'audio/mpeg',
2897
- 'aif' => 'audio/x-aiff',
2898
- 'aifc' => 'audio/x-aiff',
2899
- 'aiff' => 'audio/x-aiff',
2900
- 'ram' => 'audio/x-pn-realaudio',
2901
- 'rm' => 'audio/x-pn-realaudio',
2902
- 'rpm' => 'audio/x-pn-realaudio-plugin',
2903
- 'ra' => 'audio/x-realaudio',
2904
- 'wav' => 'audio/x-wav',
2905
- 'bmp' => 'image/bmp',
2906
- 'gif' => 'image/gif',
2907
- 'jpeg' => 'image/jpeg',
2908
- 'jpe' => 'image/jpeg',
2909
- 'jpg' => 'image/jpeg',
2910
- 'png' => 'image/png',
2911
- 'tiff' => 'image/tiff',
2912
- 'tif' => 'image/tiff',
2913
- 'eml' => 'message/rfc822',
2914
- 'css' => 'text/css',
2915
- 'html' => 'text/html',
2916
- 'htm' => 'text/html',
2917
- 'shtml' => 'text/html',
2918
- 'log' => 'text/plain',
2919
- 'text' => 'text/plain',
2920
- 'txt' => 'text/plain',
2921
- 'rtx' => 'text/richtext',
2922
- 'rtf' => 'text/rtf',
2923
- 'xml' => 'text/xml',
2924
- 'xsl' => 'text/xml',
2925
- 'mpeg' => 'video/mpeg',
2926
- 'mpe' => 'video/mpeg',
2927
- 'mpg' => 'video/mpeg',
2928
- 'mov' => 'video/quicktime',
2929
- 'qt' => 'video/quicktime',
2930
- 'rv' => 'video/vnd.rn-realvideo',
2931
- 'avi' => 'video/x-msvideo',
2932
- 'movie' => 'video/x-sgi-movie'
2933
- );
2934
- return (array_key_exists(strtolower($ext), $mimes) ? $mimes[strtolower($ext)]: 'application/octet-stream');
2935
- }
2936
-
2937
- /**
2938
- * Map a file name to a MIME type.
2939
- * Defaults to 'application/octet-stream', i.e.. arbitrary binary data.
2940
- * @param string $filename A file name or full path, does not need to exist as a file
2941
- * @return string
2942
- * @static
2943
- */
2944
- public static function filenameToType($filename)
2945
- {
2946
- //In case the path is a URL, strip any query string before getting extension
2947
- $qpos = strpos($filename, '?');
2948
- if ($qpos !== false) {
2949
- $filename = substr($filename, 0, $qpos);
2950
- }
2951
- $pathinfo = self::mb_pathinfo($filename);
2952
- return self::_mime_types($pathinfo['extension']);
2953
- }
2954
-
2955
- /**
2956
- * Multi-byte-safe pathinfo replacement.
2957
- * Drop-in replacement for pathinfo(), but multibyte-safe, cross-platform-safe, old-version-safe.
2958
- * Works similarly to the one in PHP >= 5.2.0
2959
- * @link http://www.php.net/manual/en/function.pathinfo.php#107461
2960
- * @param string $path A filename or path, does not need to exist as a file
2961
- * @param integer|string $options Either a PATHINFO_* constant,
2962
- * or a string name to return only the specified piece, allows 'filename' to work on PHP < 5.2
2963
- * @return string|array
2964
- * @static
2965
- */
2966
- public static function mb_pathinfo($path, $options = null)
2967
- {
2968
- $ret = array('dirname' => '', 'basename' => '', 'extension' => '', 'filename' => '');
2969
- $m = array();
2970
- preg_match('%^(.*?)[\\\\/]*(([^/\\\\]*?)(\.([^\.\\\\/]+?)|))[\\\\/\.]*$%im', $path, $m);
2971
- if (array_key_exists(1, $m)) {
2972
- $ret['dirname'] = $m[1];
2973
- }
2974
- if (array_key_exists(2, $m)) {
2975
- $ret['basename'] = $m[2];
2976
- }
2977
- if (array_key_exists(5, $m)) {
2978
- $ret['extension'] = $m[5];
2979
- }
2980
- if (array_key_exists(3, $m)) {
2981
- $ret['filename'] = $m[3];
2982
- }
2983
- switch ($options) {
2984
- case PATHINFO_DIRNAME:
2985
- case 'dirname':
2986
- return $ret['dirname'];
2987
- break;
2988
- case PATHINFO_BASENAME:
2989
- case 'basename':
2990
- return $ret['basename'];
2991
- break;
2992
- case PATHINFO_EXTENSION:
2993
- case 'extension':
2994
- return $ret['extension'];
2995
- break;
2996
- case PATHINFO_FILENAME:
2997
- case 'filename':
2998
- return $ret['filename'];
2999
- break;
3000
- default:
3001
- return $ret;
3002
- }
3003
- }
3004
-
3005
- /**
3006
- * Set or reset instance properties.
3007
- *
3008
- * Usage Example:
3009
- * $page->set('X-Priority', '3');
3010
- *
3011
- * @access public
3012
- * @param string $name
3013
- * @param mixed $value
3014
- * NOTE: will not work with arrays, there are no arrays to set/reset
3015
- * @throws phpmailerException
3016
- * @return bool
3017
- * @todo Should this not be using __set() magic function?
3018
- */
3019
- public function set($name, $value = '')
3020
- {
3021
- try {
3022
- if (isset($this->$name)) {
3023
- $this->$name = $value;
3024
- } else {
3025
- throw new phpmailerException($this->lang('variable_set') . $name, self::STOP_CRITICAL);
3026
- }
3027
- } catch (Exception $e) {
3028
- $this->setError($e->getMessage());
3029
- if ($e->getCode() == self::STOP_CRITICAL) {
3030
- return false;
3031
- }
3032
- }
3033
- return true;
3034
- }
3035
-
3036
- /**
3037
- * Strip newlines to prevent header injection.
3038
- * @access public
3039
- * @param string $str
3040
- * @return string
3041
- */
3042
- public function secureHeader($str)
3043
- {
3044
- return trim(str_replace(array("\r", "\n"), '', $str));
3045
- }
3046
-
3047
- /**
3048
- * Normalize line breaks in a string.
3049
- * Converts UNIX LF, Mac CR and Windows CRLF line breaks into a single line break format.
3050
- * Defaults to CRLF (for message bodies) and preserves consecutive breaks.
3051
- * @param string $text
3052
- * @param string $breaktype What kind of line break to use, defaults to CRLF
3053
- * @return string
3054
- * @access public
3055
- * @static
3056
- */
3057
- public static function normalizeBreaks($text, $breaktype = "\r\n")
3058
- {
3059
- return preg_replace('/(\r\n|\r|\n)/ms', $breaktype, $text);
3060
- }
3061
-
3062
-
3063
- /**
3064
- * Set the private key file and password for S/MIME signing.
3065
- * @access public
3066
- * @param string $cert_filename
3067
- * @param string $key_filename
3068
- * @param string $key_pass Password for private key
3069
- */
3070
- public function sign($cert_filename, $key_filename, $key_pass)
3071
- {
3072
- $this->sign_cert_file = $cert_filename;
3073
- $this->sign_key_file = $key_filename;
3074
- $this->sign_key_pass = $key_pass;
3075
- }
3076
-
3077
- /**
3078
- * Quoted-Printable-encode a DKIM header.
3079
- * @access public
3080
- * @param string $txt
3081
- * @return string
3082
- */
3083
- public function DKIM_QP($txt)
3084
- {
3085
- $line = '';
3086
- for ($i = 0; $i < strlen($txt); $i++) {
3087
- $ord = ord($txt[$i]);
3088
- if (((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E))) {
3089
- $line .= $txt[$i];
3090
- } else {
3091
- $line .= "=" . sprintf("%02X", $ord);
3092
- }
3093
- }
3094
- return $line;
3095
- }
3096
-
3097
- /**
3098
- * Generate a DKIM signature.
3099
- * @access public
3100
- * @param string $s Header
3101
- * @throws phpmailerException
3102
- * @return string
3103
- */
3104
- public function DKIM_Sign($s)
3105
- {
3106
- if (!defined('PKCS7_TEXT')) {
3107
- if ($this->exceptions) {
3108
- throw new phpmailerException($this->lang("signing") . ' OpenSSL extension missing.');
3109
- }
3110
- return '';
3111
- }
3112
- $privKeyStr = file_get_contents($this->DKIM_private);
3113
- if ($this->DKIM_passphrase != '') {
3114
- $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase);
3115
- } else {
3116
- $privKey = $privKeyStr;
3117
- }
3118
- if (openssl_sign($s, $signature, $privKey)) {
3119
- return base64_encode($signature);
3120
- }
3121
- return '';
3122
- }
3123
-
3124
- /**
3125
- * Generate a DKIM canonicalization header.
3126
- * @access public
3127
- * @param string $s Header
3128
- * @return string
3129
- */
3130
- public function DKIM_HeaderC($s)
3131
- {
3132
- $s = preg_replace("/\r\n\s+/", " ", $s);
3133
- $lines = explode("\r\n", $s);
3134
- foreach ($lines as $key => $line) {
3135
- list($heading, $value) = explode(":", $line, 2);
3136
- $heading = strtolower($heading);
3137
- $value = preg_replace("/\s+/", " ", $value); // Compress useless spaces
3138
- $lines[$key] = $heading . ":" . trim($value); // Don't forget to remove WSP around the value
3139
- }
3140
- $s = implode("\r\n", $lines);
3141
- return $s;
3142
- }
3143
-
3144
- /**
3145
- * Generate a DKIM canonicalization body.
3146
- * @access public
3147
- * @param string $body Message Body
3148
- * @return string
3149
- */
3150
- public function DKIM_BodyC($body)
3151
- {
3152
- if ($body == '') {
3153
- return "\r\n";
3154
- }
3155
- // stabilize line endings
3156
- $body = str_replace("\r\n", "\n", $body);
3157
- $body = str_replace("\n", "\r\n", $body);
3158
- // END stabilize line endings
3159
- while (substr($body, strlen($body) - 4, 4) == "\r\n\r\n") {
3160
- $body = substr($body, 0, strlen($body) - 2);
3161
- }
3162
- return $body;
3163
- }
3164
-
3165
- /**
3166
- * Create the DKIM header and body in a new message header.
3167
- * @access public
3168
- * @param string $headers_line Header lines
3169
- * @param string $subject Subject
3170
- * @param string $body Body
3171
- * @return string
3172
- */
3173
- public function DKIM_Add($headers_line, $subject, $body)
3174
- {
3175
- $DKIMsignatureType = 'rsa-sha1'; // Signature & hash algorithms
3176
- $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body
3177
- $DKIMquery = 'dns/txt'; // Query method
3178
- $DKIMtime = time(); // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone)
3179
- $subject_header = "Subject: $subject";
3180
- $headers = explode($this->LE, $headers_line);
3181
- $from_header = '';
3182
- $to_header = '';
3183
- $current = '';
3184
- foreach ($headers as $header) {
3185
- if (strpos($header, 'From:') === 0) {
3186
- $from_header = $header;
3187
- $current = 'from_header';
3188
- } elseif (strpos($header, 'To:') === 0) {
3189
- $to_header = $header;
3190
- $current = 'to_header';
3191
- } else {
3192
- if ($current && strpos($header, ' =?') === 0) {
3193
- $current .= $header;
3194
- } else {
3195
- $current = '';
3196
- }
3197
- }
3198
- }
3199
- $from = str_replace('|', '=7C', $this->DKIM_QP($from_header));
3200
- $to = str_replace('|', '=7C', $this->DKIM_QP($to_header));
3201
- $subject = str_replace(
3202
- '|',
3203
- '=7C',
3204
- $this->DKIM_QP($subject_header)
3205
- ); // Copied header fields (dkim-quoted-printable)
3206
- $body = $this->DKIM_BodyC($body);
3207
- $DKIMlen = strlen($body); // Length of body
3208
- $DKIMb64 = base64_encode(pack("H*", sha1($body))); // Base64 of packed binary SHA-1 hash of body
3209
- $ident = ($this->DKIM_identity == '') ? '' : " i=" . $this->DKIM_identity . ";";
3210
- $dkimhdrs = "DKIM-Signature: v=1; a=" .
3211
- $DKIMsignatureType . "; q=" .
3212
- $DKIMquery . "; l=" .
3213
- $DKIMlen . "; s=" .
3214
- $this->DKIM_selector .
3215
- ";\r\n" .
3216
- "\tt=" . $DKIMtime . "; c=" . $DKIMcanonicalization . ";\r\n" .
3217
- "\th=From:To:Subject;\r\n" .
3218
- "\td=" . $this->DKIM_domain . ";" . $ident . "\r\n" .
3219
- "\tz=$from\r\n" .
3220
- "\t|$to\r\n" .
3221
- "\t|$subject;\r\n" .
3222
- "\tbh=" . $DKIMb64 . ";\r\n" .
3223
- "\tb=";
3224
- $toSign = $this->DKIM_HeaderC(
3225
- $from_header . "\r\n" . $to_header . "\r\n" . $subject_header . "\r\n" . $dkimhdrs
3226
- );
3227
- $signed = $this->DKIM_Sign($toSign);
3228
- return $dkimhdrs . $signed . "\r\n";
3229
- }
3230
-
3231
- /**
3232
- * Perform a callback.
3233
- * @param bool $isSent
3234
- * @param string $to
3235
- * @param string $cc
3236
- * @param string $bcc
3237
- * @param string $subject
3238
- * @param string $body
3239
- * @param string $from
3240
- */
3241
- protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body, $from = null)
3242
- {
3243
- if (!empty($this->action_function) && is_callable($this->action_function)) {
3244
- $params = array($isSent, $to, $cc, $bcc, $subject, $body, $from);
3245
- call_user_func_array($this->action_function, $params);
3246
- }
3247
- }
3248
- }
3249
-
3250
- /**
3251
- * PHPMailer exception handler
3252
- * @package PHPMailer
3253
- */
3254
- class phpmailerException extends Exception
3255
- {
3256
- /**
3257
- * Prettify error message output
3258
- * @return string
3259
- */
3260
- public function errorMessage()
3261
- {
3262
- $errorMsg = '<strong>' . $this->getMessage() . "</strong><br />\n";
3263
- return $errorMsg;
3264
- }
3265
- }