Commit Graph

28061 Commits

Author SHA1 Message Date
Jeremy Felt
909aa4f1e7 Improve tests for domain_exists()
* Split existing tests for `domain_exists()` into many smaller tests.
* Make slightly fewer, more accurate assertions.
* Remove unnecessary site creation via factory.

See #30080

Built from https://develop.svn.wordpress.org/trunk@30114


git-svn-id: http://core.svn.wordpress.org/trunk@30114 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 05:44:23 +00:00
Boone Gorges
caf4fec1f7 Streamline some get_terms() cache tests.
* Split large method into a number of smaller tests.
* Create fewer fixtures.

See #30017.
Built from https://develop.svn.wordpress.org/trunk@30113


git-svn-id: http://core.svn.wordpress.org/trunk@30113 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 04:16:22 +00:00
Boone Gorges
08ef5b6ec9 Clean up cache invalidation suspension global in unit tests.
This fixes a test that was introduced in [30073] which was polluting later
tests.

See #21760.
Built from https://develop.svn.wordpress.org/trunk@30112


git-svn-id: http://core.svn.wordpress.org/trunk@30112 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 04:15:23 +00:00
Drew Jaynes
39a44f62ad Update the changelogs for the comment hook parameters added in [30092].
Parameters were added to the `get_comment_author`, `comment_author`, `get_comment_author_email`, `author_email`, `comment_email`, `get_comment_author_link`, `get_comment_author_IP`, `get_comment_author_url`, `comment_url`, `get_comment_excerpt`, `comment_excerpt`, `get_comment_ID`, and `get_comment_type` filters.

Fixes #22380.

Built from https://develop.svn.wordpress.org/trunk@30111


git-svn-id: http://core.svn.wordpress.org/trunk@30111 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 03:52:22 +00:00
Drew Jaynes
8fcc2b3dc8 Update the changelog for WP_Comment_Query::query() to reflect two more new arguments added in [30096].
[30096] introduced the `type__in` and `type__not_in` arguments. See #30111 for documentation on those new arguments.

Fixes #12668.

Built from https://develop.svn.wordpress.org/trunk@30110


git-svn-id: http://core.svn.wordpress.org/trunk@30110 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 03:06:24 +00:00
Drew Jaynes
54020268f7 Update the changelog for get_approved_comments() to reflect that the function was refactored to leverage WP_Comment_Query in [30098].
Also updates the `$args` parameter description with a reference to see `WP_Comment_Query` for argument information.

See #12668.

Built from https://develop.svn.wordpress.org/trunk@30109


git-svn-id: http://core.svn.wordpress.org/trunk@30109 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 02:51:23 +00:00
Boone Gorges
af026330c4 Clean up get_term_by() caching.
* Fix cache key/group modification that was missed in [30073].
* Update unit tests to reflect new key/group format.

Props tollmanz.
Fixes #21760.
Built from https://develop.svn.wordpress.org/trunk@30108


git-svn-id: http://core.svn.wordpress.org/trunk@30108 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 02:50:23 +00:00
Boone Gorges
47742eae12 In get_terms(), do not override 'hierarchical' and 'pad_counts' when 'parent' is present.
The previous behavior resulted in descendant terms being improperly excluded
from the results when passing a 'parent', even when 'hierarchical' had been
set to true.

The patch also adds unit tests that demonstrate the various interactions
between the 'child_of', 'parent', and 'hierarchical' parameters of `get_terms()`.

Props landakram.
Fixes #29815.
Built from https://develop.svn.wordpress.org/trunk@30107


git-svn-id: http://core.svn.wordpress.org/trunk@30107 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 02:12:22 +00:00
Jeremy Felt
3dcf418545 Expand tests around wpmu_delete_blog()
* Test cache after a site is deleted or flagged as deleted.
* Test tables after a site is deleted or flagged as deleted.
* Test tables and cache after the main site is deleted.
* Test site count after a site is deleted or flagged as deleted.

See #30080

Built from https://develop.svn.wordpress.org/trunk@30106


git-svn-id: http://core.svn.wordpress.org/trunk@30106 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 02:00:22 +00:00
Drew Jaynes
f8657d5890 Remove redundant and erroneous @uses tag from most core inline documentation.
Per our inline documentation standards, no further use of the `@uses` tag is recommended as used and used-by relationships can be derived through other means. This removes most uses of the tag in core documentation, with remaining tags to be converted to `@global` or `@see` as they apply.

Fixes #30191.

Built from https://develop.svn.wordpress.org/trunk@30105


git-svn-id: http://core.svn.wordpress.org/trunk@30105 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-30 01:05:24 +00:00
Dominik Schilling
00845a6c3d Customizer: Fix missing newly added widgets in the preview after [29905].
props westonruter.
fixes #29983.
Built from https://develop.svn.wordpress.org/trunk@30104


git-svn-id: http://core.svn.wordpress.org/trunk@30104 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 22:57:23 +00:00
Ian Stewart
27b88c350a Twenty Fifteen: back compat checks in Twenty Fifteen are breaking the customizer, leaving them in for now, but commented out.
See #30137.

Built from https://develop.svn.wordpress.org/trunk@30103


git-svn-id: http://core.svn.wordpress.org/trunk@30103 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 22:52:22 +00:00
Dominik Schilling
3c962ee5d8 Improve/introduce Customizer JavaScript models for Controls, Sections, and Panels.
* Introduce models for panels and sections.
* Introduce API to expand and focus a control, section or panel.
* Allow deep-linking to panels, sections, and controls inside of the Customizer.
* Clean up `accordion.js`, removing all Customizer-specific logic.
* Add initial unit tests for `wp.customize.Class` in `customize-base.js`.

https://make.wordpress.org/core/2014/10/27/toward-a-complete-javascript-api-for-the-customizer/ provides an overview of how to use the JavaScript API.

props westonruter, celloexpressions, ryankienstra.
see #28032, #28579, #28580, #28650, #28709, #29758.
fixes #29529.


Built from https://develop.svn.wordpress.org/trunk@30102


git-svn-id: http://core.svn.wordpress.org/trunk@30102 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 22:51:22 +00:00
Mark Jaquith
63cf4db8ae Fix weird HiDPI screen rendering issue with theme install preview toolbar
fixes #28898
props ocean90
Built from https://develop.svn.wordpress.org/trunk@30101


git-svn-id: http://core.svn.wordpress.org/trunk@30101 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 22:36:21 +00:00
Dominik Schilling
4df00e156d Improve body class for page templates.
* Convert slash to dash too.
* Add sub-folder name as a separate body class.
* New classes are additional classes, old syntax will persists for BC.

With this `/page-templates/full-width.php` will produce `page-template`, `page-template-page-templates`, `page-template-full-width` and `page-template-page-templatesfull-width-php`.

props obenland, Caspie, donutz.
fixes #23470.
Built from https://develop.svn.wordpress.org/trunk@30100


git-svn-id: http://core.svn.wordpress.org/trunk@30100 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 22:20:23 +00:00
Ian Stewart
76876654ac Twenty Fifteen: avoid errors by preventing Twenty Fifteen from being activated in old versions of WordPress
Props iamtakashi, fixes #30137.


Built from https://develop.svn.wordpress.org/trunk@30099


git-svn-id: http://core.svn.wordpress.org/trunk@30099 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 22:14:22 +00:00
Boone Gorges
3be72a13de Use WP_Comment_Query to query comments in get_approved_comments().
Props dancameron.
See #12668.
Built from https://develop.svn.wordpress.org/trunk@30098


git-svn-id: http://core.svn.wordpress.org/trunk@30098 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 21:58:23 +00:00
Ian Stewart
e68c17cb7b Twenty Fifteen: leading the way with support for title-tag
Props obenland, fixes #30146.


Built from https://develop.svn.wordpress.org/trunk@30097


git-svn-id: http://core.svn.wordpress.org/trunk@30097 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 21:56:23 +00:00
Boone Gorges
56f55ea507 Better flexibility for 'type' in WP_Comment_Query.
* Add support for an array of values in 'type'.
* Introduce `type__in` parameter. This duplicates 'type' but is added for better consistency with other query classes.
* Introduce `type__not_in`.

Among other things, these changes will make it easier for plugin authors to
manage the appearance of custom comment types in various WP interfaces.

Props dancameron, mordauk.
See #12668.
Built from https://develop.svn.wordpress.org/trunk@30096


git-svn-id: http://core.svn.wordpress.org/trunk@30096 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 21:50:22 +00:00
John Blackbourn
ee6d4968da Add a hidden submit button to the Appearance -> Header screen so keyboard users can submit the form correctly when a default image provided by the theme is in use.
Fixes #20880.
Props kovshenin, joedolson.

Built from https://develop.svn.wordpress.org/trunk@30095


git-svn-id: http://core.svn.wordpress.org/trunk@30095 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 21:41:43 +00:00
Konstantin Kovshenin
73f6a574b7 Use a nested meta query when querying by role in WP_User_Query.
If a user query includes a meta query together with a role argument,
nest the original meta query and append the role meta query with an
AND relationship.

fixes #23849, #27026.

Built from https://develop.svn.wordpress.org/trunk@30094


git-svn-id: http://core.svn.wordpress.org/trunk@30094 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 21:41:22 +00:00
Boone Gorges
beaa3f6928 Support an empty string passed as a status in WP_Comment_Query.
The changes in [30084] broke backward compatibility with interfaces that
manually passed an empty string for the value of 'status', such as on
wp-admin/edit-comments.php.

Fixes #29612.
Built from https://develop.svn.wordpress.org/trunk@30093


git-svn-id: http://core.svn.wordpress.org/trunk@30093 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 19:51:23 +00:00
Peter Westwood
664f19e28a Comment Template Tags: Improve the availability of context information in comment template tag filters.
Fixes #22380 props momo360modena, tareq1988.

Built from https://develop.svn.wordpress.org/trunk@30092


git-svn-id: http://core.svn.wordpress.org/trunk@30092 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 19:07:22 +00:00
John Blackbourn
a866a7192f Introduce some actions and filters which aid plugins in revisioning post meta.
* `wp_save_post_revision_post_has_changed` filter which can be used to determine if a post has been changed, and therefore if a revision should be created for a post.
 * `wp_get_revision_ui_diff` filter which can be used to filter the fields displayed in the post revision diff UI.
 * `wp_creating_autosave` action which is fired just before an autosave is created.

See #20564.
Props mattheu, adamsilverstein.

Built from https://develop.svn.wordpress.org/trunk@30091


git-svn-id: http://core.svn.wordpress.org/trunk@30091 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 19:02:21 +00:00
John Blackbourn
9a16b52018 Revert [28610] in order to avoid infinite redirect loops on reverse proxies which proxy from HTTPS to HTTP. This will be revisited at some point, possibly as an option via a filter.
Fixes #28610.

Built from https://develop.svn.wordpress.org/trunk@30090


git-svn-id: http://core.svn.wordpress.org/trunk@30090 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 18:37:25 +00:00
Mark Jaquith
6de35acf28 Increase both mystery and humanism
Built from https://develop.svn.wordpress.org/trunk@30089


git-svn-id: http://core.svn.wordpress.org/trunk@30089 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 03:20:24 +00:00
Boone Gorges
e9adba887d Introduce 'pre_delete_term' hook.
Props cmmarslender.
Fixes #30127.
Built from https://develop.svn.wordpress.org/trunk@30088


git-svn-id: http://core.svn.wordpress.org/trunk@30088 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 02:44:22 +00:00
John Blackbourn
d70744e95c Correct some logic to populate the defaultValue variable when data.defaultValue begins with a hash symbol.
Props antpb
Fixes #30125

Built from https://develop.svn.wordpress.org/trunk@30087


git-svn-id: http://core.svn.wordpress.org/trunk@30087 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 02:43:22 +00:00
Boone Gorges
4013156e51 Be more specific in documentation of 'slug' param for get_terms().
Props jfarthing84.
Fixes #23636.
Built from https://develop.svn.wordpress.org/trunk@30086


git-svn-id: http://core.svn.wordpress.org/trunk@30086 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 02:35:23 +00:00
Boone Gorges
d7a62c01c4 Improve global variable setting in setup_postdata().
`setup_postdata()` is responsible for setting a number of global variables
that are used for post pagination (`$pages`, `$page`, `$nextpage`) and the
generation of post excerpts (`$more`). These variables should be sensitive to
the currently running instance of `WP_Query` - rather than the main query -
so that these features work properly inside of secondary `WP_Query` loops.

This changeset moves the logic of `setup_postdata()` into a method on `WP_Query`,
and converts `setup_postdata()` to a wrapper.

Props boonebgorges, wonderboymusic.
See #25349.
Fixes #9256, #20904.
Built from https://develop.svn.wordpress.org/trunk@30085


git-svn-id: http://core.svn.wordpress.org/trunk@30085 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 02:32:24 +00:00
Boone Gorges
3b90929c3e Support multiple 'status' values in WP_Comment_Query.
This change required turning the SQL concatenation into the generation of an
array, for greater flexibility.

Props karpstrucking, ebinnion.
Fixes #29612.
Built from https://develop.svn.wordpress.org/trunk@30084


git-svn-id: http://core.svn.wordpress.org/trunk@30084 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 02:22:23 +00:00
Scott Taylor
6142a650b7 Allow developers to override the settings.success callback for MediaElement players.
Props nofearinc.
Fixes #30029.

Built from https://develop.svn.wordpress.org/trunk@30083


git-svn-id: http://core.svn.wordpress.org/trunk@30083 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 01:21:24 +00:00
Scott Taylor
3d8e31fb82 Don't hardcode height for videos - this was a workaround for MediaElement internals causing problems. Responsive videos now work properly and don't cause extra whitespace.
Fixes MediaElement by hand in the interim: https://github.com/johndyer/mediaelement/pull/1337
Video playlists were completely broken by this.

Fixes #30078.


Built from https://develop.svn.wordpress.org/trunk@30082


git-svn-id: http://core.svn.wordpress.org/trunk@30082 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-29 00:47:24 +00:00
Lance Willett
85d3601ef6 Twenty Fifteen: only escape HTML attribute output with esc_attr(). See #30133, props ocean90.
Built from https://develop.svn.wordpress.org/trunk@30081


git-svn-id: http://core.svn.wordpress.org/trunk@30081 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 23:08:23 +00:00
Boone Gorges
865e8b5faf Remove call to wp_get_last_changed() from unit tests.
This function was removed in [30073].

See #21760.
Built from https://develop.svn.wordpress.org/trunk@30080


git-svn-id: http://core.svn.wordpress.org/trunk@30080 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 22:03:25 +00:00
Aaron Jorbin
2261f4ceb4 Update images based on grunt imagemin
The new version of imagemin that was added in r30059 condenses some images more.

see #30141


Built from https://develop.svn.wordpress.org/trunk@30079


git-svn-id: http://core.svn.wordpress.org/trunk@30079 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 22:02:22 +00:00
Mark Jaquith
a81a321f9a Docs and code standards cleanup for [30055] (wp_json_encode() & friends)
fixes #28786
props TobiasBg
Built from https://develop.svn.wordpress.org/trunk@30078


git-svn-id: http://core.svn.wordpress.org/trunk@30078 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 21:29:23 +00:00
Boone Gorges
682fb09f01 Update inline docs for [30052].
Fixes #23261.
Built from https://develop.svn.wordpress.org/trunk@30077


git-svn-id: http://core.svn.wordpress.org/trunk@30077 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 21:26:22 +00:00
Scott Taylor
ee97a47c61 In _wp_handle_upload(), if test_upload is set to false in the array of dangerous overrides that the function allows, the only thing that happens when an upload fails is more potential breakage.
`$test_uploaded_file` lets is know if `$file['tmp_name']` exists, which allows to exit with an error, instead of continuing to attempt to move the file.

`$test_upload` override is now a noop.

Fixes #28208.

Built from https://develop.svn.wordpress.org/trunk@30076


git-svn-id: http://core.svn.wordpress.org/trunk@30076 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 21:17:22 +00:00
Mark Jaquith
45afcde640 Define JSON_PRETTY_PRINT so it can be used with wp_json_encode()
* `JSON_PRETTY_PRINT` was introduced in PHP 5.4
* Now you can use it with lower PHP versions, without a notice

fixes #30139
see #28786
Built from https://develop.svn.wordpress.org/trunk@30075


git-svn-id: http://core.svn.wordpress.org/trunk@30075 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 21:13:22 +00:00
John Blackbourn
0f64edb657 Introduce a new means of outputting a <title> tag in the theme head. Requires a theme to add support by calling add_theme_support( 'title-tag' ). This is the first step in adding a more robust means of generating and outputting the title tag.
See #18548.
Props obenland, chrisbliss18, joostdevalk.


Built from https://develop.svn.wordpress.org/trunk@30074


git-svn-id: http://core.svn.wordpress.org/trunk@30074 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 21:12:22 +00:00
Scott Taylor
315612a96b Adjust caching for get_term_by() calls:
* Remove md5 hashes for term name cache keys
* Remove the namespace for the keys for `names` and `slugs` and add them to the group names
* Remove `wp_get_last_changed()`, which @nacin hated
 
Props tollmanz.
Fixes #21760.

Built from https://develop.svn.wordpress.org/trunk@30073


git-svn-id: http://core.svn.wordpress.org/trunk@30073 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 21:05:23 +00:00
Ian Stewart
9d0e0a00f9 Twenty Fifteen: Use a heading heirarchy to provide a better navigation experience when using screenreading software.
Props davidakennedy, rianrietveld, iamtakashi, afercia, davidakennedy, fixes #30065.

Built from https://develop.svn.wordpress.org/trunk@30072


git-svn-id: http://core.svn.wordpress.org/trunk@30072 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 21:03:22 +00:00
Jeremy Felt
027d026077 Introduce wp_is_trusted_network()
A first step to establish concepts around trusted and untrusted networks.

* Will always return false as default.
* Will one day have a filter.

Fixes #30145

Built from https://develop.svn.wordpress.org/trunk@30071


git-svn-id: http://core.svn.wordpress.org/trunk@30071 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 20:56:22 +00:00
Aaron Jorbin
980adcadab Autoprefix box sizing
Results are from running grunt autoprefix.  Needed for FF before 29 and Safari before 5.1.

fixes #27553


Built from https://develop.svn.wordpress.org/trunk@30070


git-svn-id: http://core.svn.wordpress.org/trunk@30070 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 20:48:24 +00:00
Aaron Jorbin
0a790fef4d Don't cascade autoprefixer output
Autoprefixer changed the default for cascade from false to true. Our css coding standards do not include the cascade for browser prefixes.
Introduced in r30067

see #30141


Built from https://develop.svn.wordpress.org/trunk@30069


git-svn-id: http://core.svn.wordpress.org/trunk@30069 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 20:45:23 +00:00
Scott Taylor
5d17d2bd28 The gallery shortcode used to accept a SQL chunk for the value of the orderby attribute. The reason? get_posts() used to be called in the shortcode handler with a query-string blob of arguments passed to it. To mitigate breakage, sanitize_sql_orderby() was created in [7592].
`sanitize_sql_orderby()` expects a comma to be present when multiple `orderby` values were passed. The correct syntax for multiple fields is space-delimited. Since [29027], comma-separated values would never be parsed correctly when passed to `WP_Query->parse_orderby()`.

`sanitize_sql_orderby()` is used nowhere else in core, save for the `playlist` shortcode - I only added it there because I was mimic'ing the `gallery` logic. The function call can be removed from both shortcode handlers.
 
See #6476.
Fixes #23873.

Built from https://develop.svn.wordpress.org/trunk@30068


git-svn-id: http://core.svn.wordpress.org/trunk@30068 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 20:43:22 +00:00
Aaron Jorbin
e4289bb37e Update grunt-autoprefixer to 1.0.1
Upstream changes https://github.com/nDmitry/grunt-autoprefixer/compare/v0.8.2...v1.0.1

see #30141

Built from https://develop.svn.wordpress.org/trunk@30067


git-svn-id: http://core.svn.wordpress.org/trunk@30067 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 20:17:31 +00:00
Aaron Jorbin
c2138a4cbe Update grunt-contrib-uglify to 0.6.0
Upstream changes https://github.com/gruntjs/grunt-contrib-uglify/compare/v0.5.0...v0.6.0

see #30141

Built from https://develop.svn.wordpress.org/trunk@30066


git-svn-id: http://core.svn.wordpress.org/trunk@30066 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 19:50:24 +00:00
John Blackbourn
c0d52583c6 Introduce some new template functions for navigation:
* `get_the_post_navigation()` and `the_post_navigation()` for navigation to the next and previous post.
 * `get_the_posts_navigation() and `the_posts_navigation()` for navigation to the next and previous page of posts.
 * `get_the_pagination()` and `the_pagination()` for paginated navigation between pages of posts. Uses `paginate_links()`.

This reduces the need for themes to define their own sets of navigation functions.

Fixes #29808.
Props obenland.
 

Built from https://develop.svn.wordpress.org/trunk@30065


git-svn-id: http://core.svn.wordpress.org/trunk@30065 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2014-10-28 19:39:24 +00:00