Commit Graph

12168 Commits

Author SHA1 Message Date
Sergey Biryukov
07e2fba981 Embeds: Avoid a JS error in wp.receiveEmbedMessage if data parameter is not set.
Props dsifford, kadamwhite.
Fixes #44832.
Built from https://develop.svn.wordpress.org/trunk@43593


git-svn-id: http://core.svn.wordpress.org/trunk@43422 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-30 10:30:24 +00:00
Sergey Biryukov
810b1333ff Post Formats: Don't assign a variable inside if statement in get_post_format().
Props Mirucon.
Fixes #44840.
Built from https://develop.svn.wordpress.org/trunk@43592


git-svn-id: http://core.svn.wordpress.org/trunk@43421 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-30 09:01:25 +00:00
Sergey Biryukov
dafee9fae6 Date/Time: Make get_the_date() call get_post_time() for consistency with get_the_time().
Props Rarst.
Fixes #44490.
Built from https://develop.svn.wordpress.org/trunk@43591


git-svn-id: http://core.svn.wordpress.org/trunk@43420 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-30 08:50:24 +00:00
Jeremy Felt
cf48e75785 Multisite: Display registered new_item text for post post type in My Sites menu.
Previously, the My Sites menu would show "New Post" even if the `post` post type labels had been filtered to different values.

Props nahuelmahe.
Fixes #44794.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43419 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-29 15:50:25 +00:00
Rachel Baker
062568e6b6 REST API: Limit the scope of wp-admin files required in WP_REST_Attachments_Controller methods.
Narrow the scope of the included wp-admin files loaded for `wp_generate_attachment_metadata()`, `wp_handle_upload()`, `wp_tempnam()`, and `wp_handle_sideload()`. Requires only wp-admin/includes/file.php and wp-admin/includes/image.php instead of wp-admin/includes/admin.php. 

Props lonelyvegan, soulseekah, pratikthink.
Fixes #43757.
Built from https://develop.svn.wordpress.org/trunk@43589


git-svn-id: http://core.svn.wordpress.org/trunk@43418 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-29 03:23:25 +00:00
Felix Arntz
6eb4e9c5fc Customize: Ensure that only sidebar sections are considered when comparing against sidebars.
In the Customizer a notice will show up if there is at least one registered sidebar with its section not being active. In order to achieve that, the count of registered sidebars is compared to the count of active sections in the Widgets panel. Prior to this change, the latter would incorrectly include any sections, even additional sections that do not correspond to a sidebar.

Fixes #43556.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43417 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-28 19:55:25 +00:00
Felix Arntz
17f435b5aa General: Provide context parameters to doing_it_wrong_trigger_error filter.
`$function`, `$message`, and `$version` have historically been passed to the `doing_it_wrong_run` action. It makes sense to pass those to the filter as well, so that one can conditionally determine the filter value to return.

Fixes #34183.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43416 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-28 13:38:24 +00:00
Felix Arntz
27e48708f8 REST API: Fix failing tests after [43584] and [43585].
See #40510.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43415 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-28 13:05:24 +00:00
Felix Arntz
77fd4135f1 REST API: Fix failing tests after [43584].
See #40510.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43414 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-28 12:44:24 +00:00
Felix Arntz
9fe4db814a REST API: Support pagination, order, search and other common query parameters for revisions.
The original REST API revisions controller relied on `wp_get_post_revisions()`, getting all revisions of a post without any possibility to restrict the result. This changeset replaces that function call with a proper `WP_Query` setup, replicating how `wp_get_post_revisions()` works while offering parameters to alter the default behavior.

Props adamsilverstein, birgire, flixos90.
Fixes #40510.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43413 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-28 12:23:26 +00:00
John Blackbourn
d27579cf15 Docs: Improve inline documentation for WP_Scripts.
Props desrosj

See #42505

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


git-svn-id: http://core.svn.wordpress.org/trunk@43412 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-27 14:34:24 +00:00
John Blackbourn
47d32decd6 Docs: Correct and improve various inline documentation.
See #42505

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


git-svn-id: http://core.svn.wordpress.org/trunk@43411 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-27 14:28:26 +00:00
Andrew Ozz
5bbb3b38d9 TinyMCE: remove stray CSS map reference from skin.min.css.
Props: pross.
Fixes #44785.
Built from https://develop.svn.wordpress.org/trunk@43581


git-svn-id: http://core.svn.wordpress.org/trunk@43410 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-20 15:09:24 +00:00
Andrew Ozz
1521b64337 Script loader: remove (PHP based) compression from load-styles.php and load-scripts.php. WIth the amount of scripts and stylesheets grown a lot over the years, it has become pretty slow and consumes a lot of server resources. Also, most servers are set to compress PHP output anyway.
Props LucasRolff, azaozz.

Fixes #44815.
See #43308.
Built from https://develop.svn.wordpress.org/trunk@43580


git-svn-id: http://core.svn.wordpress.org/trunk@43409 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-20 13:51:24 +00:00
Andrew Ozz
1824884b75 Reorder quicktags.js a bit to account for the order of defining vars and functions after [43577].
See #44371.
Built from https://develop.svn.wordpress.org/trunk@43579


git-svn-id: http://core.svn.wordpress.org/trunk@43408 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-20 13:34:25 +00:00
Felix Arntz
1422d8ffd9 Customize: Safeguard a check on the customize_validate_{$setting_id} filter value to ensure it is a WP_Error.
While the filter is documented to only support a `WP_Error`, it has been a common practice to return true in a validation function if no errors have occurred. This was already caught when the same filter was executed in `WP_Customize_Setting`, it was however missing in `WP_Customize_Manager::validate_setting_values()`.

Fixes #44809.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43407 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-19 16:38:24 +00:00
omarreiss
bdbaccce37 General: Explicitly assigns all JS globals to the window.
Many variables in the JavaScript were defined in the global scope without being explicitly assigned to the window. When built with Webpack, the code gets encapsulated in anonymous functions and those implicit globals get assigned to the wrong scope. This patch prevents that from happening.

Fixes #44371. See #43731.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43406 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-19 13:33:24 +00:00
John Blackbourn
879f43f278 Docs: Remove an erroneous closing brace from the description of wp_list_pages().
Props birgire

See #42505

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


git-svn-id: http://core.svn.wordpress.org/trunk@43405 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-19 11:17:26 +00:00
John Blackbourn
8730f3cb79 Customize: Increase the colour contrast of the line numbers in CodeMirror.
Props earnjam, abdullahramzan, audrasjb, Luminus

Fixes #44763

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


git-svn-id: http://core.svn.wordpress.org/trunk@43403 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-19 11:01:23 +00:00
Sergey Biryukov
8efab48ede Administration: Remove $title_class variable, unused since [18683].
Props hitendra-chopda, torontodigits.
Fixes #44812.
Built from https://develop.svn.wordpress.org/trunk@43573


git-svn-id: http://core.svn.wordpress.org/trunk@43402 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-19 10:18:26 +00:00
Gary Pendergast
41166ed741 Tests: Revert wp-api-generated.js change added in [43571].
The fixtures file was accidentally included in [43571], but that caused other tests to fail.

See #39122.


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


git-svn-id: http://core.svn.wordpress.org/trunk@43401 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-17 04:12:25 +00:00
Gary Pendergast
56c162fbc9 Coding Standards: Upgrade WPCS to 1.0.0
WPCS 1.0.0 includes a bunch of new auto-fixers, which drops the number of coding standards issues across WordPress significantly. Prior to running the auto-fixers, there were 15,312 issues detected. With this commit, we now drop to 4,769 issues.

This change includes three notable additions:
- Multiline function calls must now put each parameter on a new line.
- Auto-formatting files is now part of the `grunt precommit` script. 
- Auto-fixable coding standards issues will now cause Travis failures.

Fixes #44600.


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


git-svn-id: http://core.svn.wordpress.org/trunk@43400 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-17 01:51:36 +00:00
Boone Gorges
8142df82bc Introduce wp_insert_term_duplicate_term_check filter.
This filter allows plugins to intervene in the duplicate-term check
that takes place at the time of term creation. See [30238], #22023.

Props strategio.
Fixes #43271.
Built from https://develop.svn.wordpress.org/trunk@43570


git-svn-id: http://core.svn.wordpress.org/trunk@43399 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-15 19:50:25 +00:00
Gary Pendergast
8244397ffb Coding Standards: Prepare for upgrading WPCS to 1.0.0.
In order to get the best result when running `phpcbf` across the codebase, there are some manual tweaks we need to make.

These fall into three categories:
- Fixing incorrectly indented code which has flow-on effects when auto-fixing.
- Tweaking the layout of inline PHP inside HTML tags.
- Moving more complex inline PHP inside HTML tags, to execute earlier.

See #44600.


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


git-svn-id: http://core.svn.wordpress.org/trunk@43398 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-15 06:22:26 +00:00
Sergey Biryukov
08af3900c3 Privacy: Ensure the user request email is sent in the requested user's locale (or the site's default locale if they are not a registered user) when the administrator creating the request uses a different locale.
Props desrosj, Chouby, iandunn, lbenicio, birgire, earnjam, swissspidy, garrett-eclipse.
Fixes #43985.
Built from https://develop.svn.wordpress.org/trunk@43568


git-svn-id: http://core.svn.wordpress.org/trunk@43397 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-13 16:32:27 +00:00
K. Adam White
a2648da538 Tests: Improve coverage for REST API term meta registration.
Introduce tests to validate that register_meta and register_term_meta work as expected in WP_REST_Terms_Controller.

props timmydcrawford.
Fixes #39122.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43396 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-12 00:06:24 +00:00
K. Adam White
b5ec1e6d96 REST API: generate a valid fallback URI in wp.api.utils.getRootURL.
When window.location.origin isn't set, correctly insert two slashes between the protocol and host when constructing the fallback URL.

props abdullahramzan.
Fixes #44764.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43395 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-11 18:51:24 +00:00
Sergey Biryukov
c0cc6617f2 Script/Style Dependencies: Make sure that inline scripts for handles without a source are printed.
See [36550] for `WP_Styles`.

Props bpayton.
Fixes #44551.
Built from https://develop.svn.wordpress.org/trunk@43565


git-svn-id: http://core.svn.wordpress.org/trunk@43394 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-11 17:42:49 +00:00
Sergey Biryukov
c89962511b Script/Style Dependencies: Simplify some logic in WP_Styles::do_item().
Combine repetitive assignments, make the code more consistent with `WP_Scripts::do_item()`.

See #44551.
Built from https://develop.svn.wordpress.org/trunk@43564


git-svn-id: http://core.svn.wordpress.org/trunk@43393 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-11 17:42:24 +00:00
Sergey Biryukov
4ad3539113 Docs: Correct description for WP_Scripts::$default_version.
See #42505.
Built from https://develop.svn.wordpress.org/trunk@43563


git-svn-id: http://core.svn.wordpress.org/trunk@43392 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-11 15:09:24 +00:00
Sergey Biryukov
d7f3dbf939 Tests: Avoid a race condition in test_date_i18n_handles_shorthand_formats() by using a delta for comparing timestamps.
See #20973, #38381.
Built from https://develop.svn.wordpress.org/trunk@43562


git-svn-id: http://core.svn.wordpress.org/trunk@43391 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-11 13:29:25 +00:00
Sergey Biryukov
b456c7eb12 Customize: Pass missing parameter to dynamic option_{$option} filter in WP_Customize_Widgets::capture_filter_pre_get_option().
Props dlh.
Fixes #44770.
Built from https://develop.svn.wordpress.org/trunk@43561


git-svn-id: http://core.svn.wordpress.org/trunk@43390 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-11 12:45:26 +00:00
Rachel Baker
64bcc842af Docs: Update $meta_type descriptions to include ’term’ as a valid type in meta.php and class-wp-term-query.php.
Props macbookandrew.
Merges [43557] to trunk.
Fixes #44751.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43389 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-08 21:45:24 +00:00
Boone Gorges
38c33611e0 Correct param documentation for WP_Term_Query.
The description of `$meta_type` introduced in [40053] was incorrect.

Props dlh.
Fixes #44608.
Built from https://develop.svn.wordpress.org/trunk@43559


git-svn-id: http://core.svn.wordpress.org/trunk@43388 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-08 19:23:25 +00:00
Boone Gorges
297c7e4c8f Taxonomy: Introduce new hooks when registering/unregistering taxonomies for object types.
Props soulseekah.
Fixes #44733.
Built from https://develop.svn.wordpress.org/trunk@43558


git-svn-id: http://core.svn.wordpress.org/trunk@43387 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-08 19:15:27 +00:00
Konstantin Obenland
071984839c Toolbar: Check if obj is set before using it.
Props pento.
See #44526.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43385 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-06 19:33:28 +00:00
Sergey Biryukov
aab929b8d6 Build/Test Tools: Add documentation for tests_add_filter(), _test_filter_build_unique_id(), _delete_all_data(), _delete_all_posts().
Props andizer.
Fixes #44703.
Built from https://develop.svn.wordpress.org/trunk@43555


git-svn-id: http://core.svn.wordpress.org/trunk@43384 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-02 22:36:25 +00:00
laurelfulford
78a71b94bf Twenty Seventeen: Correct date in changelog for 4.9.8 release.
Props pbiron, laurelfulford.
Fixes #44646.


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


git-svn-id: http://core.svn.wordpress.org/trunk@43379 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-02 15:33:24 +00:00
Sergey Biryukov
70bc51e46f Docs: Correct parameter name in strip_shortcodes_tagnames filter DocBlock.
Props uttam007.
Fixes #44691.
Built from https://develop.svn.wordpress.org/trunk@43549


git-svn-id: http://core.svn.wordpress.org/trunk@43378 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-02 15:13:27 +00:00
Felix Arntz
9e2e491f1f Multisite: Complete the new CRUD API for managing sites.
New functions `wp_insert_site( $data )`, `wp_update_site( $id, $data )` and `wp_delete_site( $id )` are introduced to manage site rows in the `wp_blogs` table, forming the new CRUD API together with the existing `get_site()` / `get_sites()`. The new API provides various benefits over the previously existing API, fixing several cache invalidation issues and being hook-driven so that normalization and validation of the passed data can be fully customized.

New hooks introduced as part of this are the actions `wp_insert_site`, `wp_update_site`, `wp_delete_site`, `wp_validate_site_data` and the filter `wp_normalize_site_data`.

At this point, `wp_insert_site()` does not handle setting up the site's database tables, and `wp_delete_site()` does not handle dropping the site's database tables, so the two can not yet be used directly as full replacements of `wpmu_create_blog()` and `wpmu_delete_blog()`. Managing the site's database tables will be added via hooks as part of the follow-up ticket #41333.

The existing functions `wpmu_create_blog()`, `update_blog_details()`, and `wpmu_delete_blog()` make use of the respective new counterpart and will be obsolete once #41333 has been completed.

Props flixos90, jeremyfelt, spacedmonkey.
Fixes #40364.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43377 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-08-01 13:06:26 +00:00
Aaron Jorbin
d38f04eada Gutenbeg: you can't remove call outs that don't exist
This commit should have just gone into the 4.9 branch. It did in [43544].

See: #44680
Unprops jorbin
props ocean90

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


git-svn-id: http://core.svn.wordpress.org/trunk@43374 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-31 15:16:25 +00:00
Aaron Jorbin
b27951eb85 Gutenberg: Restrict "Try Gutenberg" based on capability and gutenstatus
When Gutenberg is either not installed, or not activated, only show the callout to users with the install_plugins capability.
When Gutenberg is activated, expand that to include all users with the edit_posts capability.

Props pento.
Fixes #44680.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43372 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-31 14:42:29 +00:00
John Blackbourn
58509ba12f Login and Registration: Pass the $errors parameter to the lost_password action.
Props sebakurzyn

Fixes #44512

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


git-svn-id: http://core.svn.wordpress.org/trunk@43371 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-28 13:02:25 +00:00
laurelfulford
7063c45879 Twenty Seventeen: Bump version number and update changelog for 4.9.8 release.
Props pbiron.
Fixes #44646.

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


git-svn-id: http://core.svn.wordpress.org/trunk@43370 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-27 18:37:25 +00:00
Peter Wilson
90f1ac17ec Cron: Add hooks and a function to allow hijacking cron implementation.
This allows sites with a large cron option or a custom cron implementation to hijack the cron option to store cron data using custom functionality.

`wp_get_scheduled_event()` is new function to retrieve the event object for a given event based on the hook name, arguments and timestamp. If no timestamp is specified the next occurence is returned.

Preflight filters are added to all functions that read from or modify the cron option: `pre_schedule_event`, `pre_reschedule_event`, `pre_unschedule_event`, `pre_clear_scheduled_hook`, `pre_unschedule_hook`, `pre_get_scheduled_event` and `pre_next_scheduled`.

Additionally, the post scheduling hooks `next_scheduled` and `get_schedule` to allow plugins to modify an event after retrieving it from WordPress.

Props rmccue, DavidAnderson, ethitter, peterwilsoncc.
Fixes #32656.


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


git-svn-id: http://core.svn.wordpress.org/trunk@43369 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-27 02:23:25 +00:00
Sergey Biryukov
9c084c6968 Posts, Post Types: Introduce edit_post_{$post->post_type} hook.
The hook fires before the general `edit_post` hook and has the same parameters.

It also complements the `save_post_{$post->post_type}` hook added in [25050].

Props Mte90, garrett-eclipse.
Fixes #34706.
Built from https://develop.svn.wordpress.org/trunk@43535


git-svn-id: http://core.svn.wordpress.org/trunk@43364 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-25 20:57:25 +00:00
Sergey Biryukov
a90f215d2c Privacy: Revert [43525].
The commenter cookies checkbox is not legally required, so should be disabled by default.

Fixes #44373.
Built from https://develop.svn.wordpress.org/trunk@43531


git-svn-id: http://core.svn.wordpress.org/trunk@43360 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-24 17:06:24 +00:00
Sergey Biryukov
2072479adc REST API: Ensure attachments created with WP_REST_Attachments_Controller::create_item() on Windows have a relative path.
Props ocean90, SergeyBiryukov, redcastor.
Fixes #40861.
Built from https://develop.svn.wordpress.org/trunk@43529


git-svn-id: http://core.svn.wordpress.org/trunk@43358 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-24 16:52:25 +00:00
Sergey Biryukov
76e821e647 I18N: Separate two "About" strings with different context.
Props desrosj, XpertOne, Nao.
Fixes #44139.
Built from https://develop.svn.wordpress.org/trunk@43527


git-svn-id: http://core.svn.wordpress.org/trunk@43356 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-24 15:04:25 +00:00
Sergey Biryukov
d68b2b5a2b Privacy: Remove the setting to enable comment cookies consent added in [43469].
This needs some more work to ensure expected behaviour.

See #44373.
Built from https://develop.svn.wordpress.org/trunk@43525


git-svn-id: http://core.svn.wordpress.org/trunk@43354 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-07-24 12:51:29 +00:00