Version Description
17/Jan/2019 =
FIX: Regression: Properly mark backups picked up via "Rescan remote storage" as non-native (preventing unwelcome side-effects such as being pruned by another site)
FIX: Correctly update the OneDrive refresh token to prevent expiry
FIX: Again work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one as it still does not work on all installs
FIX: When restoring an incremental backup set via WP-CLI, the selected restore point was ignored
FIX: If the remote storage settings were for multiple instances of a single backend-type (e.g. two Dropbox accounts), and if the entire backup and send operation completed in a single PHP process, then the local copy of the files would not be deleted
TWEAK: Show the error message if mbstring.func_overload is turned on in php.ini while creating migration key
TWEAK: Added Azure China endpoint
TWEAK: Resolve "dashicons" CSS conflict
TWEAK: Add 'blogmeta' to the list of core tables (in readiness for WP 5.1)
TWEAK: Remove unnecessary deprecated (in PHP 7.3) parameter to define() in WebDAV HTTP library
TWEAK: Prevent a potential PHP notice in UpdraftPlus Premium when installed without network access
TWEAK: Enhance the updraftplus_exclude_file and updraftplus_exclude_directory filters to also pass the stored names
TWEAK: Add a new constant UPDRAFTPLUS_ZIP_BATCH_CEILING that can tweak internals of the zip backup engine
Release Info
Developer | DavidAnderson |
Plugin | UpdraftPlus WordPress Backup Plugin |
Version | 1.16.4 |
Comparing to | |
See all releases |
Code changes from version 1.16.0 to 1.16.4
- admin.php +101 -225
- backup.php +69 -34
- class-updraftplus.php +24 -13
- css/updraftplus-admin.css +6 -2
- css/updraftplus-admin.min.css +1 -1
- css/updraftplus-admin.min.css.map +1 -1
- includes/S3compat.php +7 -6
- includes/class-backup-history.php +5 -4
- includes/class-database-utility.php +20 -11
- includes/class-filesystem-functions.php +167 -40
- includes/class-job-scheduler.php +19 -0
- includes/class-remote-send.php +13 -4
- includes/class-udrpc.php +2 -2
- includes/class-wpadmin-commands.php +5 -9
- includes/class-zip.php +63 -17
- includes/ftp.class.php +1 -1
- includes/updraft-notices.php +3 -0
- includes/updraftclone/temporary-clone-status.php +2 -2
- includes/updraftplus-clone.php +16 -0
- includes/updraftplus-notices.php +27 -14
- index.html +1 -1
- languages/updraftplus-bg_BG.mo +0 -0
- languages/updraftplus-bg_BG.po +29 -29
- languages/updraftplus-eu.mo +0 -0
- languages/updraftplus-eu.po +9 -9
- languages/updraftplus.pot +643 -631
- methods/addon-base-v2.php +2 -2
- methods/addon-not-yet-present.php +4 -4
- methods/cloudfiles-new.php +2 -2
- methods/cloudfiles.php +2 -2
- methods/dreamobjects.php +6 -4
- methods/dropbox.php +4 -4
- methods/email.php +1 -1
- methods/ftp.php +2 -2
- methods/googledrive.php +4 -4
- methods/insufficient.php +4 -4
- methods/openstack-base.php +1 -1
- methods/openstack2.php +2 -2
- methods/remotesend.php +1 -1
- methods/s3.php +74 -27
- methods/s3generic.php +4 -2
- methods/template.php +4 -4
- methods/updraftvault.php +15 -10
- options.php +1 -1
- readme.txt +49 -5
- restorer.php +245 -55
- templates/wp-admin/advanced/lock-admin.php +1 -1
- templates/wp-admin/advanced/search-replace.php +1 -1
- templates/wp-admin/notices/thanks-for-using-main-dash.php +8 -8
- templates/wp-admin/settings/backupnow-modal.php +1 -1
- templates/wp-admin/settings/delete-and-restore-modals.php +1 -1
- templates/wp-admin/settings/downloading-and-restoring.php +1 -1
- templates/wp-admin/settings/form-contents.php +8 -8
- templates/wp-admin/settings/header.php +8 -8
- templates/wp-admin/settings/migrator-no-migrator.php +1 -1
- templates/wp-admin/settings/tab-addons.php +4 -4
- templates/wp-admin/settings/tab-backups.php +1 -1
- templates/wp-admin/settings/take-backup.php +1 -1
- updraftplus.php +1 -1
- vendor/composer/installed.json +6 -6
- vendor/symfony/process/ExecutableFinder.php +4 -4
- vendor/symfony/process/LICENSE +1 -1
- vendor/symfony/process/Tests/ExecutableFinderTest.php +15 -0
@@ -875,7 +875,7 @@ class UpdraftPlus_Admin {
|
|
875 |
'migratemodalheight' => class_exists('UpdraftPlus_Addons_Migrator') ? 555 : 300,
|
876 |
'migratemodalwidth' => class_exists('UpdraftPlus_Addons_Migrator') ? 770 : 500,
|
877 |
'download' => _x('Download', '(verb)', 'updraftplus'),
|
878 |
-
'browse_download_link' => apply_filters('updraftplus_browse_download_link', '<a id="updraft_zip_download_notice" href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/landing/updraftplus-premium").'">'.__("With UpdraftPlus Premium, you can directly download individual files from here.", "updraftplus").'</a>'),
|
879 |
'unsavedsettingsbackup' => __('You have made changes to your settings, and not saved.', 'updraftplus')."\n".__('You should save your changes to ensure that they are used for making your backup.', 'updraftplus'),
|
880 |
'unsaved_settings_export' => __('You have made changes to your settings, and not saved.', 'updraftplus')."\n".__('Your export file will be of your displayed settings, not your saved ones.', 'updraftplus'),
|
881 |
'dayselector' => $day_selector,
|
@@ -1091,7 +1091,7 @@ class UpdraftPlus_Admin {
|
|
1091 |
if (is_array($links) && 'updraftplus/updraftplus.php' == $file) {
|
1092 |
$settings_link = '<a href="'.UpdraftPlus_Options::admin_page_url().'?page=updraftplus" class="js-updraftplus-settings">'.__("Settings", "updraftplus").'</a>';
|
1093 |
array_unshift($links, $settings_link);
|
1094 |
-
$settings_link = '<a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/").'">'.__("Add-Ons / Pro Support", "updraftplus").'</a>';
|
1095 |
array_unshift($links, $settings_link);
|
1096 |
}
|
1097 |
return $links;
|
@@ -1127,6 +1127,12 @@ class UpdraftPlus_Admin {
|
|
1127 |
}
|
1128 |
}
|
1129 |
|
|
|
|
|
|
|
|
|
|
|
|
|
1130 |
public function show_admin_warning($message, $class = 'updated') {
|
1131 |
echo '<div class="updraftmessage '.$class.'">'."<p>$message</p></div>";
|
1132 |
}
|
@@ -1150,7 +1156,7 @@ class UpdraftPlus_Admin {
|
|
1150 |
}
|
1151 |
|
1152 |
public function show_admin_warning_disabledcron() {
|
1153 |
-
$this->show_admin_warning('<strong>'.__('Warning', 'updraftplus').':</strong> '.__('The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even "Backup Now") unless either you have set up a facility to call the scheduler manually, or until it is enabled.', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/my-scheduled-backups-and-pressing-backup-now-does-nothing-however-pressing-debug-backup-does-produce-a-backup/#disablewpcron/").'">'.__('Go here for more information.', 'updraftplus').'</a>', 'updated updraftplus-disable-wp-cron-warning');
|
1154 |
}
|
1155 |
|
1156 |
public function show_admin_warning_diskspace() {
|
@@ -1162,7 +1168,7 @@ class UpdraftPlus_Admin {
|
|
1162 |
}
|
1163 |
|
1164 |
public function show_admin_warning_litespeed() {
|
1165 |
-
$this->show_admin_warning('<strong>'.__('Warning', 'updraftplus').':</strong> '.sprintf(__('Your website is hosted using the %s web server.', 'updraftplus'), 'LiteSpeed').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/i-am-having-trouble-backing-up-and-my-web-hosting-company-uses-the-litespeed-webserver/").'">'.__('Please consult this FAQ if you have problems backing up.', 'updraftplus').'</a>');
|
1166 |
}
|
1167 |
|
1168 |
public function show_admin_debug_warning() {
|
@@ -1171,7 +1177,7 @@ class UpdraftPlus_Admin {
|
|
1171 |
|
1172 |
public function show_admin_warning_overdue_crons($howmany) {
|
1173 |
$ret = '<div class="updraftmessage updated"><p>';
|
1174 |
-
$ret .= '<strong>'.__('Warning', 'updraftplus').':</strong> '.sprintf(__('WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working.', 'updraftplus'), $howmany).' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/scheduler-wordpress-installation-working/").'">'.__('Read this page for a guide to possible causes and how to fix it.', 'updraftplus').'</a>';
|
1175 |
$ret .= '</p></div>';
|
1176 |
return $ret;
|
1177 |
}
|
@@ -2622,7 +2628,7 @@ class UpdraftPlus_Admin {
|
|
2622 |
<?php if (false !== strpos(basename(UPDRAFTPLUS_URL), ' ')) { ?>
|
2623 |
<strong><?php _e('The UpdraftPlus directory in wp-content/plugins has white-space in it; WordPress does not like this. You should rename the directory to wp-content/plugins/updraftplus to fix this problem.', 'updraftplus');?></strong>
|
2624 |
<?php } else { ?>
|
2625 |
-
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/do-you-have-a-javascript-or-jquery-error/");?>"><?php _e('Go here for more information.', 'updraftplus'); ?></a>
|
2626 |
<?php } ?>
|
2627 |
</p>
|
2628 |
</div>
|
@@ -2851,9 +2857,12 @@ class UpdraftPlus_Admin {
|
|
2851 |
}
|
2852 |
}
|
2853 |
|
|
|
|
|
|
|
2854 |
public function show_admin_restore_in_progress_notice() {
|
2855 |
|
2856 |
-
if (isset($_REQUEST['action']) && 'updraft_restore_abort'
|
2857 |
delete_site_option('updraft_restore_in_progress');
|
2858 |
return;
|
2859 |
}
|
@@ -2917,7 +2926,7 @@ class UpdraftPlus_Admin {
|
|
2917 |
|
2918 |
$enter_credentials_end .= '<span class="updraftplus_spinner spinner">' . __('Processing', 'updraftplus') . '...</span></p>';
|
2919 |
|
2920 |
-
$enter_credentials_end .= '<p class="updraft-after-form-table" style="font-size: 70%"><em><a href="https://updraftplus.com/faqs/tell-me-about-my-updraftplus-com-account/">'.$interested.'</a></em></p>';
|
2921 |
|
2922 |
$enter_credentials_end .= $include_form_container ? '</form>' : '</div>';
|
2923 |
|
@@ -3128,6 +3137,12 @@ class UpdraftPlus_Admin {
|
|
3128 |
$this->include_template('wp-admin/settings/take-backup.php', false, array('backup_disabled' => $backup_disabled));
|
3129 |
}
|
3130 |
|
|
|
|
|
|
|
|
|
|
|
|
|
3131 |
public function settings_debugrow($head, $content) {
|
3132 |
echo "<tr class=\"updraft_debugrow\"><th>$head</th><td>$content</td></tr>";
|
3133 |
}
|
@@ -3179,10 +3194,11 @@ class UpdraftPlus_Admin {
|
|
3179 |
}
|
3180 |
|
3181 |
/**
|
3182 |
-
*
|
3183 |
*
|
3184 |
-
* @param
|
3185 |
-
*
|
|
|
3186 |
*/
|
3187 |
private function print_active_jobs($this_job_only = false) {
|
3188 |
$cron = $this->get_cron();
|
@@ -3438,7 +3454,7 @@ class UpdraftPlus_Admin {
|
|
3438 |
/**
|
3439 |
* Deletes the -old directories that are created when a backup is restored.
|
3440 |
*
|
3441 |
-
* @return
|
3442 |
*/
|
3443 |
private function delete_old_dirs() {
|
3444 |
global $wp_filesystem, $updraftplus;
|
@@ -4387,7 +4403,10 @@ ENDHERE;
|
|
4387 |
*
|
4388 |
* @return Array
|
4389 |
*/
|
4390 |
-
private function
|
|
|
|
|
|
|
4391 |
|
4392 |
$entities_to_restore = array();
|
4393 |
$foreign_known = apply_filters('updraftplus_accept_archivename', array());
|
@@ -4405,196 +4424,119 @@ ENDHERE;
|
|
4405 |
}
|
4406 |
|
4407 |
foreach ($_POST as $key => $value) {
|
4408 |
-
|
4409 |
-
|
4410 |
-
|
4411 |
-
|
4412 |
-
|
4413 |
-
|
4414 |
-
|
4415 |
-
|
4416 |
-
|
4417 |
-
|
4418 |
-
|
4419 |
-
|
4420 |
-
|
|
|
|
|
|
|
4421 |
}
|
4422 |
}
|
|
|
4423 |
}
|
4424 |
|
4425 |
return $entities_to_restore;
|
4426 |
}
|
4427 |
|
4428 |
/**
|
4429 |
-
*
|
4430 |
-
*
|
4431 |
-
* @param Array $continuation_data - continuation data
|
4432 |
-
* @param Integer $timestamp - backup timestamp
|
4433 |
*
|
4434 |
-
* @return Array
|
4435 |
*/
|
4436 |
-
private function
|
4437 |
|
4438 |
-
global $
|
4439 |
-
|
4440 |
-
$restore_options = null;
|
4441 |
|
4442 |
-
|
4443 |
-
|
4444 |
-
|
4445 |
-
|
4446 |
-
foreach ($_POST['updraft_restore'] as $entity) {
|
4447 |
-
$_POST['updraft_restore_'.$entity] = 1;
|
4448 |
-
$extra_fields[] = 'updraft_restore_'.$entity;
|
4449 |
-
}
|
4450 |
-
}
|
4451 |
-
|
4452 |
-
if (is_array($continuation_data)) {
|
4453 |
-
foreach ($continuation_data['second_loop_entities'] as $type => $files) {
|
4454 |
-
$_POST['updraft_restore_'.$type] = 1;
|
4455 |
-
if (!in_array('updraft_restore_'.$type, $extra_fields)) $extra_fields[] = 'updraft_restore_'.$type;
|
4456 |
-
}
|
4457 |
-
if (!empty($continuation_data['restore_options'])) $restore_options = $continuation_data['restore_options'];
|
4458 |
-
}
|
4459 |
-
|
4460 |
-
// Now make sure that updraft_restorer_ option fields get passed along to request_filesystem_credentials
|
4461 |
-
foreach ($_POST as $key => $value) {
|
4462 |
-
if (0 === strpos($key, 'updraft_restorer_')) $extra_fields[] = $key;
|
4463 |
-
}
|
4464 |
-
|
4465 |
-
$credentials = request_filesystem_credentials(UpdraftPlus_Options::admin_page()."?page=updraftplus&action=updraft_restore&backup_timestamp=$timestamp", '', false, false, $extra_fields);
|
4466 |
-
WP_Filesystem($credentials);
|
4467 |
-
if ($wp_filesystem->errors->get_error_code()) {
|
4468 |
-
echo '<p><em><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/asked-ftp-details-upon-restorationmigration-updates/").'">'.__('Why am I seeing this?', 'updraftplus').'</a></em></p>';
|
4469 |
-
foreach ($wp_filesystem->errors->get_error_messages() as $message) show_message($message);
|
4470 |
-
exit;
|
4471 |
}
|
4472 |
|
|
|
|
|
|
|
|
|
|
|
|
|
4473 |
return $restore_options;
|
4474 |
}
|
4475 |
|
4476 |
/**
|
4477 |
-
* Carry out the restore process
|
4478 |
*
|
4479 |
-
* @param
|
4480 |
-
* @param Array|null $continuation_data For continuing a multi-stage restore
|
4481 |
-
* @return Boolean|WP_Error
|
4482 |
*/
|
4483 |
private function restore_backup($timestamp, $continuation_data = null) {
|
4484 |
|
4485 |
-
global $updraftplus;
|
4486 |
|
4487 |
$backup_set = UpdraftPlus_Backup_History::get_history($timestamp);
|
4488 |
-
|
4489 |
if (empty($backup_set)) {
|
4490 |
echo '<p>'.__('This backup does not exist in the backup history - restoration aborted. Timestamp:', 'updraftplus')." $timestamp</p><br>";
|
4491 |
return new WP_Error('does_not_exist', __('Backup does not exist in the backup history', 'updraftplus')." ($timestamp)");
|
4492 |
}
|
4493 |
|
4494 |
-
|
4495 |
-
$restore_options = $this->ensure_wp_filesystem_set_up($continuation_data, $timestamp);
|
4496 |
|
4497 |
-
|
4498 |
-
|
|
|
|
|
4499 |
|
4500 |
-
// Set up
|
4501 |
-
$updraftplus->
|
4502 |
-
$updraftplus->jobdata_set('job_type', 'restore');
|
4503 |
-
$updraftplus->jobdata_set('job_time_ms', $updraftplus->job_time_ms);
|
4504 |
-
$updraftplus->logfile_open($updraftplus->nonce);
|
4505 |
|
4506 |
-
//
|
4507 |
-
|
4508 |
-
// TODO: Provide option to auto-email the log file
|
4509 |
|
|
|
4510 |
$this->show_admin_warning('<a target="_blank" href="?action=downloadlog&page=updraftplus&updraftplus_backup_nonce='.htmlspecialchars($updraftplus->nonce).'">'.__('Follow this link to download the log file for this restoration (needed for any support requests).', 'updraftplus').'</a>');
|
4511 |
|
4512 |
-
//
|
4513 |
-
|
4514 |
|
4515 |
-
|
4516 |
-
|
4517 |
-
|
4518 |
-
if (0 == count($_POST['updraft_restore'])) {
|
4519 |
-
echo '<p>'.__('ABORT: Could not find the information on which entities to restore.', 'updraftplus').'</p>';
|
4520 |
-
echo '<p>'.__('If making a request for support, please include this information:', 'updraftplus').' '.count($_POST).' : '.htmlspecialchars(serialize($_POST)).'</p>';
|
4521 |
return new WP_Error('missing_info', 'Backup information not found');
|
4522 |
}
|
4523 |
|
4524 |
// This is used in painting the admin page after a successful restore
|
4525 |
$this->entities_to_restore = $entities_to_restore;
|
4526 |
|
4527 |
-
// This will be removed by
|
4528 |
set_error_handler(array($updraftplus, 'php_error'), E_ALL & ~E_STRICT);
|
4529 |
|
4530 |
-
// $
|
4531 |
-
|
4532 |
-
|
4533 |
-
|
4534 |
// Gather the restore options into one place - code after here should read the options, and not the HTTP variables
|
4535 |
-
$restore_options =
|
4536 |
-
if (!empty($_POST['updraft_restorer_restore_options'])) {
|
4537 |
-
parse_str(stripslashes($_POST['updraft_restorer_restore_options']), $restore_options);
|
4538 |
-
}
|
4539 |
-
$restore_options['updraft_encryptionphrase'] = empty($_POST['updraft_encryptionphrase']) ? '' : (string) stripslashes($_POST['updraft_encryptionphrase']);
|
4540 |
-
$restore_options['updraft_restorer_wpcore_includewpconfig'] = empty($_POST['updraft_restorer_wpcore_includewpconfig']) ? false : true;
|
4541 |
-
$restore_options['updraft_incremental_restore_point'] = empty($restore_options['updraft_incremental_restore_point']) ? -1 : (int) $restore_options['updraft_incremental_restore_point'];
|
4542 |
$updraftplus->jobdata_set('restore_options', $restore_options);
|
4543 |
}
|
|
|
|
|
4544 |
|
4545 |
-
// If updraft_incremental_restore_point is equal to -1 then this is either not a incremental restore or we are going to restore up to the latest increment, so there is no need to prune the backup set of any unwanted backup archives.
|
4546 |
-
if (isset($restore_options['updraft_incremental_restore_point']) && $restore_options['updraft_incremental_restore_point'] > 0) {
|
4547 |
-
$restore_point = $restore_options['updraft_incremental_restore_point'];
|
4548 |
-
foreach ($backup_set['incremental_sets'] as $increment_timestamp => $entities) {
|
4549 |
-
if ($increment_timestamp > $restore_point) {
|
4550 |
-
foreach ($entities as $entity => $backups) {
|
4551 |
-
foreach ($backups as $key => $value) {
|
4552 |
-
unset($backup_set[$entity][$key]);
|
4553 |
-
}
|
4554 |
-
}
|
4555 |
-
}
|
4556 |
-
}
|
4557 |
-
}
|
4558 |
-
|
4559 |
-
// Restore in the most helpful order
|
4560 |
-
uksort($backup_set, array('UpdraftPlus_Manipulation_Functions', 'sort_restoration_entities'));
|
4561 |
-
|
4562 |
-
// Now log. We first remove any encryption passphrase from the log data.
|
4563 |
-
$copy_restore_options = $restore_options;
|
4564 |
-
if (!empty($copy_restore_options['updraft_encryptionphrase'])) $copy_restore_options['updraft_encryptionphrase'] = '***';
|
4565 |
-
$updraftplus->log("Restore job started. Entities to restore: ".implode(', ', array_flip($entities_to_restore)).'. Restore options: '.json_encode($copy_restore_options));
|
4566 |
-
|
4567 |
-
$backup_set['timestamp'] = $timestamp;
|
4568 |
-
|
4569 |
// We use a single object for each entity, because we want to store information about the backup set
|
4570 |
-
if (!class_exists('Updraft_Restorer')) include_once(UPDRAFTPLUS_DIR.'/restorer.php');
|
4571 |
-
|
4572 |
-
echo "<h2>".__('Final checks', 'updraftplus').'</h2>';
|
4573 |
-
|
4574 |
-
global $updraftplus_restorer;
|
4575 |
-
|
4576 |
$updraftplus_restorer = new Updraft_Restorer(new Updraft_Restorer_Skin, $backup_set, false, $restore_options);
|
4577 |
|
4578 |
-
add_action('updraftplus_restoration_title', array($this, 'restoration_title'));
|
4579 |
-
|
4580 |
$restore_result = $updraftplus_restorer->perform_restore($entities_to_restore, $restore_options, $continuation_data);
|
4581 |
-
|
4582 |
-
if (is_wp_error($restore_result)) {
|
4583 |
-
foreach ($restore_result->get_error_codes() as $code) {
|
4584 |
-
if ('already_exists' == $code) $this->print_delete_old_dirs_form(false);
|
4585 |
-
$data = $restore_result->get_error_data($code);
|
4586 |
-
if (!empty($data)) {
|
4587 |
-
$pdata = is_string($data) ? $data : serialize($data);
|
4588 |
-
$updraftplus->log(__('Error data:', 'updraftplus').' '.$pdata, 'warning-restore');
|
4589 |
-
if (false !== strpos($pdata, 'PCLZIP_ERR_BAD_FORMAT (-10)')) {
|
4590 |
-
echo '<a href="'.apply_filters('updraftplus_com_link', 'https://updraftplus.com/faqs/error-message-pclzip_err_bad_format-10-invalid-archive-structure-mean/').'"><strong>'.__('Follow this link for more information', 'updraftplus').'</strong></a><br>';
|
4591 |
-
}
|
4592 |
-
}
|
4593 |
-
|
4594 |
-
}
|
4595 |
-
}
|
4596 |
|
4597 |
-
$
|
4598 |
|
4599 |
return $restore_result;
|
4600 |
|
@@ -4610,85 +4552,19 @@ ENDHERE;
|
|
4610 |
}
|
4611 |
|
4612 |
/**
|
4613 |
-
*
|
4614 |
*
|
4615 |
-
* @param
|
4616 |
-
* @param Boolean $browser_context - if true, then extra messages will be echo-ed
|
4617 |
*
|
4618 |
-
* @
|
4619 |
-
* @uses UpdraftPlus::log()
|
4620 |
*/
|
4621 |
-
public function post_restore_clean_up($successful = true, $browser_context = true) {
|
4622 |
-
|
4623 |
-
global $updraftplus_restorer, $updraftplus;
|
4624 |
-
|
4625 |
-
if ($successful) {
|
4626 |
-
// All done - remove the intermediate marker
|
4627 |
-
delete_site_option('updraft_restore_in_progress');
|
4628 |
-
|
4629 |
-
foreach (array('template', 'stylesheet', 'template_root', 'stylesheet_root') as $opt) {
|
4630 |
-
add_filter('pre_option_'.$opt, array($this, 'option_filter_'.$opt));
|
4631 |
-
}
|
4632 |
-
|
4633 |
-
// Clear any cached pages after the restore
|
4634 |
-
$updraftplus_restorer->clear_cache();
|
4635 |
-
|
4636 |
-
// Have seen a case where the current theme in the DB began with a capital, but not on disk - and this breaks migrating from Windows to a case-sensitive system
|
4637 |
-
$template = get_option('template');
|
4638 |
-
if (!empty($template) && WP_DEFAULT_THEME != $template && strtolower($template) != $template) {
|
4639 |
-
|
4640 |
-
$theme_root = get_theme_root($template);
|
4641 |
-
$theme_root2 = get_theme_root(strtolower($template));
|
4642 |
-
|
4643 |
-
if (!file_exists("$theme_root/$template/style.css") && file_exists("$theme_root/".strtolower($template)."/style.css")) {
|
4644 |
-
$updraftplus->log_e("Theme directory (%s) not found, but lower-case version exists; updating database option accordingly", $template);
|
4645 |
-
update_option('template', strtolower($template));
|
4646 |
-
}
|
4647 |
-
|
4648 |
-
}
|
4649 |
-
|
4650 |
-
if (!function_exists('validate_current_theme')) include_once(ABSPATH.WPINC.'/themes');
|
4651 |
-
|
4652 |
-
if (!validate_current_theme()) {
|
4653 |
-
if ($browser_context) echo '<strong>';
|
4654 |
-
$updraftplus->log_e("The current theme was not found; to prevent this stopping the site from loading, your theme has been reverted to the default theme");
|
4655 |
-
if ($browser_context) echo '</strong>';
|
4656 |
-
}
|
4657 |
-
|
4658 |
-
do_action('updraftplus_restore_completed');
|
4659 |
-
}
|
4660 |
-
|
4661 |
-
if ($browser_context) echo '</div>'; // Close the updraft_restore_progress div
|
4662 |
-
|
4663 |
-
restore_error_handler();
|
4664 |
-
|
4665 |
-
}
|
4666 |
-
|
4667 |
-
public function option_filter_template($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4668 |
-
global $updraftplus;
|
4669 |
-
return $updraftplus->option_filter_get('template');
|
4670 |
-
}
|
4671 |
-
|
4672 |
-
public function option_filter_stylesheet($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4673 |
-
global $updraftplus;
|
4674 |
-
return $updraftplus->option_filter_get('stylesheet');
|
4675 |
-
}
|
4676 |
-
|
4677 |
-
public function option_filter_template_root($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4678 |
-
global $updraftplus;
|
4679 |
-
return $updraftplus->option_filter_get('template_root');
|
4680 |
-
}
|
4681 |
-
|
4682 |
-
public function option_filter_stylesheet_root($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
4683 |
-
global $updraftplus;
|
4684 |
-
return $updraftplus->option_filter_get('stylesheet_root');
|
4685 |
-
}
|
4686 |
-
|
4687 |
public function return_array($input) {
|
4688 |
-
|
4689 |
-
return $input;
|
4690 |
}
|
4691 |
|
|
|
|
|
|
|
4692 |
public function updraft_ajax_savesettings() {
|
4693 |
try {
|
4694 |
global $updraftplus;
|
@@ -4800,7 +4676,7 @@ ENDHERE;
|
|
4800 |
$no_remote_configured = (empty($service) || array('none') === $service || array('') === $service) ? true : false;
|
4801 |
|
4802 |
if ($no_remote_configured) {
|
4803 |
-
return '<input type="checkbox" disabled="disabled" id="backupnow_includecloud"> <em>'.sprintf(__("Backup won't be sent to any remote storage - none has been saved in the %s", 'updraftplus'), '<a href="'.UpdraftPlus_Options::admin_page_url().'?page=updraftplus&tab=settings" id="updraft_backupnow_gotosettings">'.__('settings', 'updraftplus')).'</a>. '.__('Not got any remote storage?', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/landing/vault/").'">'.__("Check out UpdraftPlus Vault.", 'updraftplus').'</a></em>';
|
4804 |
} else {
|
4805 |
return '<input type="checkbox" id="backupnow_includecloud" checked="checked"> <label for="backupnow_includecloud">'.__("Send this backup to remote storage", 'updraftplus').'</label>';
|
4806 |
}
|
@@ -5343,7 +5219,7 @@ ENDHERE;
|
|
5343 |
return false;
|
5344 |
} else {
|
5345 |
$corrupted_files_count = count($corrupted_files);
|
5346 |
-
return '<strong>'.__('Warning', 'updraftplus').':</strong> '.sprintf(_n('The file %s has a "byte order mark" (BOM) at its beginning.', 'The files %s have a "byte order mark" (BOM) at their beginning.', $corrupted_files_count, 'updraftplus'), '<strong>'.implode('</strong>, <strong>', $corrupted_files).'</strong>').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/problems-with-extra-white-space/").'">'.__('Follow this link for more information', 'updraftplus').'</a>';
|
5347 |
}
|
5348 |
}
|
5349 |
|
875 |
'migratemodalheight' => class_exists('UpdraftPlus_Addons_Migrator') ? 555 : 300,
|
876 |
'migratemodalwidth' => class_exists('UpdraftPlus_Addons_Migrator') ? 770 : 500,
|
877 |
'download' => _x('Download', '(verb)', 'updraftplus'),
|
878 |
+
'browse_download_link' => apply_filters('updraftplus_browse_download_link', '<a id="updraft_zip_download_notice" href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/landing/updraftplus-premium").'" target="_blank">'.__("With UpdraftPlus Premium, you can directly download individual files from here.", "updraftplus").'</a>'),
|
879 |
'unsavedsettingsbackup' => __('You have made changes to your settings, and not saved.', 'updraftplus')."\n".__('You should save your changes to ensure that they are used for making your backup.', 'updraftplus'),
|
880 |
'unsaved_settings_export' => __('You have made changes to your settings, and not saved.', 'updraftplus')."\n".__('Your export file will be of your displayed settings, not your saved ones.', 'updraftplus'),
|
881 |
'dayselector' => $day_selector,
|
1091 |
if (is_array($links) && 'updraftplus/updraftplus.php' == $file) {
|
1092 |
$settings_link = '<a href="'.UpdraftPlus_Options::admin_page_url().'?page=updraftplus" class="js-updraftplus-settings">'.__("Settings", "updraftplus").'</a>';
|
1093 |
array_unshift($links, $settings_link);
|
1094 |
+
$settings_link = '<a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/").'" target="_blank">'.__("Add-Ons / Pro Support", "updraftplus").'</a>';
|
1095 |
array_unshift($links, $settings_link);
|
1096 |
}
|
1097 |
return $links;
|
1127 |
}
|
1128 |
}
|
1129 |
|
1130 |
+
/**
|
1131 |
+
* Paint a div for a dashboard warning
|
1132 |
+
*
|
1133 |
+
* @param String $message - the HTML for the message (already escaped)
|
1134 |
+
* @param String $class - CSS class to use for the div
|
1135 |
+
*/
|
1136 |
public function show_admin_warning($message, $class = 'updated') {
|
1137 |
echo '<div class="updraftmessage '.$class.'">'."<p>$message</p></div>";
|
1138 |
}
|
1156 |
}
|
1157 |
|
1158 |
public function show_admin_warning_disabledcron() {
|
1159 |
+
$this->show_admin_warning('<strong>'.__('Warning', 'updraftplus').':</strong> '.__('The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even "Backup Now") unless either you have set up a facility to call the scheduler manually, or until it is enabled.', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/my-scheduled-backups-and-pressing-backup-now-does-nothing-however-pressing-debug-backup-does-produce-a-backup/#disablewpcron/").'" target="_blank">'.__('Go here for more information.', 'updraftplus').'</a>', 'updated updraftplus-disable-wp-cron-warning');
|
1160 |
}
|
1161 |
|
1162 |
public function show_admin_warning_diskspace() {
|
1168 |
}
|
1169 |
|
1170 |
public function show_admin_warning_litespeed() {
|
1171 |
+
$this->show_admin_warning('<strong>'.__('Warning', 'updraftplus').':</strong> '.sprintf(__('Your website is hosted using the %s web server.', 'updraftplus'), 'LiteSpeed').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/i-am-having-trouble-backing-up-and-my-web-hosting-company-uses-the-litespeed-webserver/").'" target="_blank">'.__('Please consult this FAQ if you have problems backing up.', 'updraftplus').'</a>');
|
1172 |
}
|
1173 |
|
1174 |
public function show_admin_debug_warning() {
|
1177 |
|
1178 |
public function show_admin_warning_overdue_crons($howmany) {
|
1179 |
$ret = '<div class="updraftmessage updated"><p>';
|
1180 |
+
$ret .= '<strong>'.__('Warning', 'updraftplus').':</strong> '.sprintf(__('WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working.', 'updraftplus'), $howmany).' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/scheduler-wordpress-installation-working/").'" target="_blank">'.__('Read this page for a guide to possible causes and how to fix it.', 'updraftplus').'</a>';
|
1181 |
$ret .= '</p></div>';
|
1182 |
return $ret;
|
1183 |
}
|
2628 |
<?php if (false !== strpos(basename(UPDRAFTPLUS_URL), ' ')) { ?>
|
2629 |
<strong><?php _e('The UpdraftPlus directory in wp-content/plugins has white-space in it; WordPress does not like this. You should rename the directory to wp-content/plugins/updraftplus to fix this problem.', 'updraftplus');?></strong>
|
2630 |
<?php } else { ?>
|
2631 |
+
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/do-you-have-a-javascript-or-jquery-error/");?>" target="_blank"><?php _e('Go here for more information.', 'updraftplus'); ?></a>
|
2632 |
<?php } ?>
|
2633 |
</p>
|
2634 |
</div>
|
2857 |
}
|
2858 |
}
|
2859 |
|
2860 |
+
/**
|
2861 |
+
* If added, then runs upon the WP action all_admin_notices
|
2862 |
+
*/
|
2863 |
public function show_admin_restore_in_progress_notice() {
|
2864 |
|
2865 |
+
if (isset($_REQUEST['action']) && 'updraft_restore_abort' === $_REQUEST['action'] && !empty($_REQUEST['restoreid'])) {
|
2866 |
delete_site_option('updraft_restore_in_progress');
|
2867 |
return;
|
2868 |
}
|
2926 |
|
2927 |
$enter_credentials_end .= '<span class="updraftplus_spinner spinner">' . __('Processing', 'updraftplus') . '...</span></p>';
|
2928 |
|
2929 |
+
$enter_credentials_end .= '<p class="updraft-after-form-table" style="font-size: 70%"><em><a href="https://updraftplus.com/faqs/tell-me-about-my-updraftplus-com-account/" target="_blank">'.$interested.'</a></em></p>';
|
2930 |
|
2931 |
$enter_credentials_end .= $include_form_container ? '</form>' : '</div>';
|
2932 |
|
3137 |
$this->include_template('wp-admin/settings/take-backup.php', false, array('backup_disabled' => $backup_disabled));
|
3138 |
}
|
3139 |
|
3140 |
+
/**
|
3141 |
+
* Output a table row using the updraft_debugrow class
|
3142 |
+
*
|
3143 |
+
* @param String $head - header cell contents
|
3144 |
+
* @param String $content - content cell contents
|
3145 |
+
*/
|
3146 |
public function settings_debugrow($head, $content) {
|
3147 |
echo "<tr class=\"updraft_debugrow\"><th>$head</th><td>$content</td></tr>";
|
3148 |
}
|
3194 |
}
|
3195 |
|
3196 |
/**
|
3197 |
+
* Gets HTML describing the active jobs
|
3198 |
*
|
3199 |
+
* @param Boolean $this_job_only A value for $this_job_only also causes something non-empty to always be returned (to allow detection of the job having started on the front-end)
|
3200 |
+
*
|
3201 |
+
* @return String - the HTML
|
3202 |
*/
|
3203 |
private function print_active_jobs($this_job_only = false) {
|
3204 |
$cron = $this->get_cron();
|
3454 |
/**
|
3455 |
* Deletes the -old directories that are created when a backup is restored.
|
3456 |
*
|
3457 |
+
* @return Boolean. Can also exit (something we ought to probably review)
|
3458 |
*/
|
3459 |
private function delete_old_dirs() {
|
3460 |
global $wp_filesystem, $updraftplus;
|
4403 |
*
|
4404 |
* @return Array
|
4405 |
*/
|
4406 |
+
private function get_entities_to_restore_from_post($backup_set) {
|
4407 |
+
|
4408 |
+
// Now, need to turn any updraft_restore_<entity> fields (that came from a potential WP_Filesystem form) back into parts of the _POST array (which we want to use)
|
4409 |
+
if (empty($_POST['updraft_restore']) || (!is_array($_POST['updraft_restore']))) $_POST['updraft_restore'] = array();
|
4410 |
|
4411 |
$entities_to_restore = array();
|
4412 |
$foreign_known = apply_filters('updraftplus_accept_archivename', array());
|
4424 |
}
|
4425 |
|
4426 |
foreach ($_POST as $key => $value) {
|
4427 |
+
|
4428 |
+
if (0 !== strpos($key, 'updraft_restore_')) continue;
|
4429 |
+
|
4430 |
+
$nkey = substr($key, 16);
|
4431 |
+
|
4432 |
+
if (isset($entities_to_restore[$nkey])) continue;
|
4433 |
+
|
4434 |
+
$_POST['updraft_restore'][] = $nkey;
|
4435 |
+
|
4436 |
+
if (empty($backup_set['meta_foreign'])) {
|
4437 |
+
$entities_to_restore[$nkey] = $nkey;
|
4438 |
+
} else {
|
4439 |
+
if ('db' == $entity && !empty($foreign_known[$backup_set['meta_foreign']]['separatedb'])) {
|
4440 |
+
$entities_to_restore[$nkey] = 'db';
|
4441 |
+
} else {
|
4442 |
+
$entities_to_restore[$nkey] = 'wpcore';
|
4443 |
}
|
4444 |
}
|
4445 |
+
|
4446 |
}
|
4447 |
|
4448 |
return $entities_to_restore;
|
4449 |
}
|
4450 |
|
4451 |
/**
|
4452 |
+
* Gets the restoration options as passed in via $_POST
|
|
|
|
|
|
|
4453 |
*
|
4454 |
+
* @return Array
|
4455 |
*/
|
4456 |
+
private function get_restore_options_from_post() {
|
4457 |
|
4458 |
+
global $updraftplus;
|
|
|
|
|
4459 |
|
4460 |
+
$restore_options = array();
|
4461 |
+
|
4462 |
+
if (!empty($_POST['updraft_restorer_restore_options'])) {
|
4463 |
+
parse_str(stripslashes($_POST['updraft_restorer_restore_options']), $restore_options);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4464 |
}
|
4465 |
|
4466 |
+
$restore_options['updraft_encryptionphrase'] = empty($_POST['updraft_encryptionphrase']) ? '' : (string) stripslashes($_POST['updraft_encryptionphrase']);
|
4467 |
+
|
4468 |
+
$restore_options['updraft_restorer_wpcore_includewpconfig'] = !empty($_POST['updraft_restorer_wpcore_includewpconfig']);
|
4469 |
+
|
4470 |
+
$restore_options['updraft_incremental_restore_point'] = empty($restore_options['updraft_incremental_restore_point']) ? -1 : (int) $restore_options['updraft_incremental_restore_point'];
|
4471 |
+
|
4472 |
return $restore_options;
|
4473 |
}
|
4474 |
|
4475 |
/**
|
4476 |
+
* Carry out the restore process within the WP admin dashboard, using data from $_POST
|
4477 |
*
|
4478 |
+
* @param Array $timestamp Identifying the backup to be restored
|
4479 |
+
* @param Array|null $continuation_data For continuing a multi-stage restore; this is the saved jobdata for the job
|
4480 |
+
* @return Boolean|WP_Error - a WP_Error indicates a terminal failure; false indicates not-yet complete (not necessarily terminal); true indicates complete.
|
4481 |
*/
|
4482 |
private function restore_backup($timestamp, $continuation_data = null) {
|
4483 |
|
4484 |
+
global $updraftplus, $wp_filesystem, $updraftplus_restorer;
|
4485 |
|
4486 |
$backup_set = UpdraftPlus_Backup_History::get_history($timestamp);
|
4487 |
+
|
4488 |
if (empty($backup_set)) {
|
4489 |
echo '<p>'.__('This backup does not exist in the backup history - restoration aborted. Timestamp:', 'updraftplus')." $timestamp</p><br>";
|
4490 |
return new WP_Error('does_not_exist', __('Backup does not exist in the backup history', 'updraftplus')." ($timestamp)");
|
4491 |
}
|
4492 |
|
4493 |
+
$backup_set['timestamp'] = $timestamp;
|
|
|
4494 |
|
4495 |
+
$second_loop_entities = empty($continuation_data['second_loop_entities']) ? array() : $continuation_data['second_loop_entities'];
|
4496 |
+
|
4497 |
+
// This will print HTML and die() if necessary; can also edit $_POST['updraft_restore_*'] to make it reflect the contents of $_POST['updraft_restore']
|
4498 |
+
UpdraftPlus_Filesystem_Functions::ensure_wp_filesystem_set_up_for_restore($second_loop_entities, array('backup_timestamp' => $timestamp));
|
4499 |
|
4500 |
+
// Set up nonces, log files etc.
|
4501 |
+
$updraftplus->initiate_restore_job();
|
|
|
|
|
|
|
4502 |
|
4503 |
+
// The <div> is closed by Updraft_Restorer::post_restore_clean_up()
|
4504 |
+
echo '<h1>'.__('UpdraftPlus Restoration: Progress', 'updraftplus').'</h1><div id="updraft-restore-progress">';
|
|
|
4505 |
|
4506 |
+
// Provide download link for the log file
|
4507 |
$this->show_admin_warning('<a target="_blank" href="?action=downloadlog&page=updraftplus&updraftplus_backup_nonce='.htmlspecialchars($updraftplus->nonce).'">'.__('Follow this link to download the log file for this restoration (needed for any support requests).', 'updraftplus').'</a>');
|
4508 |
|
4509 |
+
// N.B. This both processes, and edits, $_POST['updraft_restore'], and processes $_POST['updraft_
|
4510 |
+
$entities_to_restore = $this->get_entities_to_restore_from_post($backup_set);
|
4511 |
|
4512 |
+
if (empty($entities_to_restore)) {
|
4513 |
+
echo '<p>'.__('ABORT: Could not find the information on which entities to restore.', 'updraftplus').'</p><p>'.__('If making a request for support, please include this information:', 'updraftplus').' '.count($_POST).' : '.htmlspecialchars(serialize($_POST)).'</p>';
|
|
|
|
|
|
|
|
|
4514 |
return new WP_Error('missing_info', 'Backup information not found');
|
4515 |
}
|
4516 |
|
4517 |
// This is used in painting the admin page after a successful restore
|
4518 |
$this->entities_to_restore = $entities_to_restore;
|
4519 |
|
4520 |
+
// This will be removed by Updraft_Restorer::post_restore_clean_up()
|
4521 |
set_error_handler(array($updraftplus, 'php_error'), E_ALL & ~E_STRICT);
|
4522 |
|
4523 |
+
// Set $restore_options, either from the continuation data, or from $_POST
|
4524 |
+
if (!empty($continuation_data['restore_options'])) {
|
4525 |
+
$restore_options = $continuation_data['restore_options'];
|
4526 |
+
} else {
|
4527 |
// Gather the restore options into one place - code after here should read the options, and not the HTTP variables
|
4528 |
+
$restore_options = $this->get_restore_options_from_post();
|
|
|
|
|
|
|
|
|
|
|
|
|
4529 |
$updraftplus->jobdata_set('restore_options', $restore_options);
|
4530 |
}
|
4531 |
+
|
4532 |
+
add_action('updraftplus_restoration_title', array($this, 'restoration_title'));
|
4533 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4534 |
// We use a single object for each entity, because we want to store information about the backup set
|
|
|
|
|
|
|
|
|
|
|
|
|
4535 |
$updraftplus_restorer = new Updraft_Restorer(new Updraft_Restorer_Skin, $backup_set, false, $restore_options);
|
4536 |
|
|
|
|
|
4537 |
$restore_result = $updraftplus_restorer->perform_restore($entities_to_restore, $restore_options, $continuation_data);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4538 |
|
4539 |
+
$updraftplus_restorer->post_restore_clean_up($restore_result);
|
4540 |
|
4541 |
return $restore_result;
|
4542 |
|
4552 |
}
|
4553 |
|
4554 |
/**
|
4555 |
+
* Ensure that what is returned is an array. Used as a WP options filter.
|
4556 |
*
|
4557 |
+
* @param Array $input - input
|
|
|
4558 |
*
|
4559 |
+
* @return Array
|
|
|
4560 |
*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
4561 |
public function return_array($input) {
|
4562 |
+
return is_array($input) ? $input : array();
|
|
|
4563 |
}
|
4564 |
|
4565 |
+
/**
|
4566 |
+
* Called upon the WP action wp_ajax_updraft_savesettings. Will die().
|
4567 |
+
*/
|
4568 |
public function updraft_ajax_savesettings() {
|
4569 |
try {
|
4570 |
global $updraftplus;
|
4676 |
$no_remote_configured = (empty($service) || array('none') === $service || array('') === $service) ? true : false;
|
4677 |
|
4678 |
if ($no_remote_configured) {
|
4679 |
+
return '<input type="checkbox" disabled="disabled" id="backupnow_includecloud"> <em>'.sprintf(__("Backup won't be sent to any remote storage - none has been saved in the %s", 'updraftplus'), '<a href="'.UpdraftPlus_Options::admin_page_url().'?page=updraftplus&tab=settings" id="updraft_backupnow_gotosettings">'.__('settings', 'updraftplus')).'</a>. '.__('Not got any remote storage?', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/landing/vault/").'" target="_blank">'.__("Check out UpdraftPlus Vault.", 'updraftplus').'</a></em>';
|
4680 |
} else {
|
4681 |
return '<input type="checkbox" id="backupnow_includecloud" checked="checked"> <label for="backupnow_includecloud">'.__("Send this backup to remote storage", 'updraftplus').'</label>';
|
4682 |
}
|
5219 |
return false;
|
5220 |
} else {
|
5221 |
$corrupted_files_count = count($corrupted_files);
|
5222 |
+
return '<strong>'.__('Warning', 'updraftplus').':</strong> '.sprintf(_n('The file %s has a "byte order mark" (BOM) at its beginning.', 'The files %s have a "byte order mark" (BOM) at their beginning.', $corrupted_files_count, 'updraftplus'), '<strong>'.implode('</strong>, <strong>', $corrupted_files).'</strong>').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/problems-with-extra-white-space/").'" target="_blank">'.__('Follow this link for more information', 'updraftplus').'</a>';
|
5223 |
}
|
5224 |
}
|
5225 |
|
@@ -4,7 +4,7 @@ if (!defined('UPDRAFTPLUS_DIR')) die('No direct access allowed');
|
|
4 |
if (!class_exists('UpdraftPlus_PclZip')) require_once(UPDRAFTPLUS_DIR.'/includes/class-zip.php');
|
5 |
|
6 |
/**
|
7 |
-
* This file contains
|
8 |
*/
|
9 |
class UpdraftPlus_Backup {
|
10 |
|
@@ -74,7 +74,19 @@ class UpdraftPlus_Backup {
|
|
74 |
|
75 |
// Append to this any skipped tables
|
76 |
private $skipped_tables;
|
|
|
|
|
|
|
|
|
|
|
|
|
77 |
|
|
|
|
|
|
|
|
|
|
|
|
|
78 |
public function __construct($backup_files, $altered_since = -1) {
|
79 |
|
80 |
global $updraftplus;
|
@@ -143,9 +155,18 @@ class UpdraftPlus_Backup {
|
|
143 |
$updraftplus->log("Zip engine: ZipArchive (a.k.a. php-zip) is not available or is disabled (will use PclZip (much slower) if needed)");
|
144 |
$this->use_zip_object = 'UpdraftPlus_PclZip';
|
145 |
}
|
|
|
|
|
146 |
|
147 |
}
|
148 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
public function report_remotestorage_extrainfo($service, $info_html, $info_plain) {
|
150 |
$this->remotestorage_extrainfo[$service] = array('pretty' => $info_html, 'plain' => $info_plain);
|
151 |
}
|
@@ -158,6 +179,7 @@ class UpdraftPlus_Backup {
|
|
158 |
* @param String $backup_file_basename Name of backup file
|
159 |
* @param Integer $index Index of zip in the sequence
|
160 |
* @param Integer|Boolean $first_linked_index First linked index in the sequence, or false
|
|
|
161 |
* @return Boolean
|
162 |
*/
|
163 |
public function create_zip($create_from_dir, $whichone, $backup_file_basename, $index, $first_linked_index = false) {
|
@@ -403,14 +425,13 @@ class UpdraftPlus_Backup {
|
|
403 |
$this->current_service = $service;
|
404 |
|
405 |
// Used when deciding whether to delete the local file
|
406 |
-
$this->
|
407 |
-
|
408 |
-
$log_extra = $this->last_service ? ' (last)' : '';
|
409 |
$updraftplus->log("Cloud backup selection (".($ind+1)."/".count($services)."): ".$service." with instance (".($instance_id_count+1)."/".$total_instance_ids.")".$log_extra);
|
410 |
@set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);
|
411 |
|
412 |
if ('none' == $service || '' == $service) {
|
413 |
-
$updraftplus->log(
|
414 |
// Still want to mark as "uploaded", to signal that nothing more needs doing. (Important on incremental runs with no cloud storage).
|
415 |
foreach ($backup_array as $bind => $file) {
|
416 |
if ($updraftplus->is_uploaded($file)) {
|
@@ -426,6 +447,13 @@ class UpdraftPlus_Backup {
|
|
426 |
$do_prune = array_merge_recursive($do_prune, $this->upload_cloud($remote_obj, $service, $backup_array, ''));
|
427 |
} elseif (!empty($storage_objects_and_ids[$service]['instance_settings'])) {
|
428 |
foreach ($storage_objects_and_ids[$service]['instance_settings'] as $instance_id => $options) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
429 |
// Used for logging by record_upload_chunk()
|
430 |
$this->current_instance = $instance_id;
|
431 |
|
@@ -433,11 +461,10 @@ class UpdraftPlus_Backup {
|
|
433 |
|
434 |
if (1 == $options['instance_enabled']) {
|
435 |
$remote_obj = $storage_objects_and_ids[$service]['object'];
|
436 |
-
|
437 |
$remote_obj->set_options($options, true, $instance_id);
|
438 |
$do_prune = array_merge_recursive($do_prune, $this->upload_cloud($remote_obj, $service, $backup_array, $instance_id));
|
439 |
} else {
|
440 |
-
$updraftplus->log("This instance id ($instance_id)
|
441 |
}
|
442 |
|
443 |
$instance_id_count++;
|
@@ -512,6 +539,13 @@ class UpdraftPlus_Backup {
|
|
512 |
return $do_prune;
|
513 |
}
|
514 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
515 |
private function group_backups($backup_history) {
|
516 |
return array(array('sets' => $backup_history, 'process_order' => 'keep_newest'));
|
517 |
}
|
@@ -1240,7 +1274,7 @@ class UpdraftPlus_Backup {
|
|
1240 |
$updraftplus->log($e->getMessage());
|
1241 |
}
|
1242 |
|
1243 |
-
if (empty($core_tables)) $core_tables = array('terms', 'term_taxonomy', 'termmeta', 'term_relationships', 'commentmeta', 'comments', 'links', 'postmeta', 'posts', 'site', 'sitemeta', 'blogs', 'blogversions');
|
1244 |
|
1245 |
global $updraftplus;
|
1246 |
$na = UpdraftPlus_Manipulation_Functions::str_replace_once($our_table_prefix, '', $a);
|
@@ -2335,7 +2369,7 @@ class UpdraftPlus_Backup {
|
|
2335 |
return true;
|
2336 |
}
|
2337 |
|
2338 |
-
if (apply_filters('updraftplus_exclude_directory', false, $fullpath)) {
|
2339 |
$updraftplus->log("Skip filtered directory: $use_path_when_storing");
|
2340 |
return true;
|
2341 |
}
|
@@ -2368,7 +2402,7 @@ class UpdraftPlus_Backup {
|
|
2368 |
$updraftplus->log("Entity excluded by configuration option (extension): $use_stripped");
|
2369 |
} elseif (!empty($this->excluded_prefixes) && $this->is_entity_excluded_by_prefix($e)) {
|
2370 |
$updraftplus->log("Entity excluded by configuration option (prefix): $use_stripped");
|
2371 |
-
} elseif (apply_filters('updraftplus_exclude_file', false, $deref)) {
|
2372 |
$updraftplus->log("Entity excluded by filter: $use_stripped");
|
2373 |
} else {
|
2374 |
$mtime = filemtime($deref);
|
@@ -2576,12 +2610,15 @@ class UpdraftPlus_Backup {
|
|
2576 |
$updraftplus->log("Could not open zip file to examine (".$zip->last_error."); will remove: ".basename($examine_zip));
|
2577 |
@unlink($examine_zip);
|
2578 |
} else {
|
2579 |
-
|
|
|
2580 |
$numfiles = $zip->numFiles;
|
2581 |
|
2582 |
for ($i=0; $i < $numfiles; $i++) {
|
2583 |
$si = $zip->statIndex($i);
|
2584 |
$name = $si['name'];
|
|
|
|
|
2585 |
$this->existing_files[$name] = $si['size'];
|
2586 |
$this->existing_files_rawsize += $si['size'];
|
2587 |
}
|
@@ -2961,41 +2998,39 @@ class UpdraftPlus_Backup {
|
|
2961 |
if (false === fwrite($handle, '{"version":'.$version.',"type":"'.$whichone.'",'.$directory.'"listed_levels":"'.$go_to_level.'","contents":{"directories":[')) $updraftplus->log("First write to manifest file failed ($manifest_name)");
|
2962 |
|
2963 |
// First loop: find out which is the last entry, so that we don't write the comma after it
|
2964 |
-
$
|
2965 |
foreach ($this->zipfiles_dirbatched as $index => $dir) {
|
2966 |
if ('all' !== $go_to_level && substr_count($dir, '/') > $go_to_level - 1) continue;
|
2967 |
-
$
|
2968 |
}
|
2969 |
|
2970 |
// Second loop: write out the entry
|
2971 |
foreach ($this->zipfiles_dirbatched as $index => $dir) {
|
2972 |
if ('all' !== $go_to_level && substr_count($dir, '/') > $go_to_level - 1) continue;
|
2973 |
-
fwrite($handle, json_encode($dir).(($index != $
|
2974 |
}
|
2975 |
|
2976 |
// Now do the same for files
|
2977 |
fwrite($handle, '],"files":[');
|
2978 |
|
2979 |
$last_file_index = false;
|
2980 |
-
foreach ($this->zipfiles_batched as $
|
2981 |
-
if ('all' !== $go_to_level && substr_count($
|
2982 |
-
$last_file_index = $
|
2983 |
}
|
2984 |
-
|
2985 |
-
|
2986 |
-
|
2987 |
-
fwrite($handle, json_encode($dir).(($index != $last_file_index) ? ',' : ''));
|
2988 |
}
|
2989 |
|
2990 |
-
$
|
2991 |
-
|
2992 |
-
|
2993 |
-
$last_file_index = $index;
|
2994 |
}
|
2995 |
-
|
2996 |
-
foreach ($this->zipfiles_skipped_notaltered as $
|
2997 |
-
if ('all' !== $go_to_level && substr_count($
|
2998 |
-
fwrite($handle, json_encode($
|
2999 |
}
|
3000 |
|
3001 |
fwrite($handle, ']}}');
|
@@ -3261,19 +3296,19 @@ class UpdraftPlus_Backup {
|
|
3261 |
$max_time = -1;
|
3262 |
}
|
3263 |
|
3264 |
-
if ($normalised_time_since_began<6 || ($updraftplus->current_resumption >=1 && $run_times_known >=1 && $time_since_began < 0.6*$max_time)) {
|
3265 |
|
3266 |
// How much can we increase it by?
|
3267 |
-
if ($normalised_time_since_began <6) {
|
3268 |
if ($run_times_known > 0 && $max_time >0) {
|
3269 |
-
$new_maxzipbatch = min(floor(max($maxzipbatch*6/$normalised_time_since_began, $maxzipbatch*((0.6*$max_time)/$normalised_time_since_began))),
|
3270 |
} else {
|
3271 |
// Maximum of 200MB in a batch
|
3272 |
-
$new_maxzipbatch = min(floor($maxzipbatch*6/$normalised_time_since_began),
|
3273 |
}
|
3274 |
} else {
|
3275 |
// Use up to 60% of available time
|
3276 |
-
$new_maxzipbatch = min(floor($maxzipbatch*((0.6*$max_time)/$normalised_time_since_began)),
|
3277 |
}
|
3278 |
|
3279 |
// Throttle increases - don't increase by more than 2x in one go - ???
|
4 |
if (!class_exists('UpdraftPlus_PclZip')) require_once(UPDRAFTPLUS_DIR.'/includes/class-zip.php');
|
5 |
|
6 |
/**
|
7 |
+
* This file contains code that is only needed/loaded when a backup is running
|
8 |
*/
|
9 |
class UpdraftPlus_Backup {
|
10 |
|
74 |
|
75 |
// Append to this any skipped tables
|
76 |
private $skipped_tables;
|
77 |
+
|
78 |
+
// When initialised, a boolean
|
79 |
+
public $last_storage_instance;
|
80 |
+
|
81 |
+
// The absolute upper limit that will be considered for a zip batch (in bytes)
|
82 |
+
private $zip_batch_ceiling;
|
83 |
|
84 |
+
/**
|
85 |
+
* Class constructor
|
86 |
+
*
|
87 |
+
* @param Array|String $backup_files - files to backup, or (string)'no'
|
88 |
+
* @param Integer $altered_since - only backup files altered since this time (UNIX epoch time)
|
89 |
+
*/
|
90 |
public function __construct($backup_files, $altered_since = -1) {
|
91 |
|
92 |
global $updraftplus;
|
155 |
$updraftplus->log("Zip engine: ZipArchive (a.k.a. php-zip) is not available or is disabled (will use PclZip (much slower) if needed)");
|
156 |
$this->use_zip_object = 'UpdraftPlus_PclZip';
|
157 |
}
|
158 |
+
|
159 |
+
$this->zip_batch_ceiling = (defined('UPDRAFTPLUS_ZIP_BATCH_CEILING') && UPDRAFTPLUS_ZIP_BATCH_CEILING > 104857600) ? UPDRAFTPLUS_ZIP_BATCH_CEILING : 200 * 1048576;
|
160 |
|
161 |
}
|
162 |
|
163 |
+
/**
|
164 |
+
* Called by the WP action updraft_report_remotestorage_extrainfo
|
165 |
+
*
|
166 |
+
* @param String $service
|
167 |
+
* @param String $info_html
|
168 |
+
* @param String $info_plain
|
169 |
+
*/
|
170 |
public function report_remotestorage_extrainfo($service, $info_html, $info_plain) {
|
171 |
$this->remotestorage_extrainfo[$service] = array('pretty' => $info_html, 'plain' => $info_plain);
|
172 |
}
|
179 |
* @param String $backup_file_basename Name of backup file
|
180 |
* @param Integer $index Index of zip in the sequence
|
181 |
* @param Integer|Boolean $first_linked_index First linked index in the sequence, or false
|
182 |
+
*
|
183 |
* @return Boolean
|
184 |
*/
|
185 |
public function create_zip($create_from_dir, $whichone, $backup_file_basename, $index, $first_linked_index = false) {
|
425 |
$this->current_service = $service;
|
426 |
|
427 |
// Used when deciding whether to delete the local file
|
428 |
+
$this->last_storage_instance = ($ind+1 >= count($services) && $instance_id_count+1 >= $total_instance_ids && $errors_before_uploads == $updraftplus->error_count()) ? true : false;
|
429 |
+
$log_extra = $this->last_storage_instance ? ' (last)' : '';
|
|
|
430 |
$updraftplus->log("Cloud backup selection (".($ind+1)."/".count($services)."): ".$service." with instance (".($instance_id_count+1)."/".$total_instance_ids.")".$log_extra);
|
431 |
@set_time_limit(UPDRAFTPLUS_SET_TIME_LIMIT);
|
432 |
|
433 |
if ('none' == $service || '' == $service) {
|
434 |
+
$updraftplus->log('No remote despatch: user chose no remote backup service');
|
435 |
// Still want to mark as "uploaded", to signal that nothing more needs doing. (Important on incremental runs with no cloud storage).
|
436 |
foreach ($backup_array as $bind => $file) {
|
437 |
if ($updraftplus->is_uploaded($file)) {
|
447 |
$do_prune = array_merge_recursive($do_prune, $this->upload_cloud($remote_obj, $service, $backup_array, ''));
|
448 |
} elseif (!empty($storage_objects_and_ids[$service]['instance_settings'])) {
|
449 |
foreach ($storage_objects_and_ids[$service]['instance_settings'] as $instance_id => $options) {
|
450 |
+
|
451 |
+
if ($instance_id_count > 0) {
|
452 |
+
$this->last_storage_instance = ($ind+1 >= count($services) && $instance_id_count+1 >= $total_instance_ids && $errors_before_uploads == $updraftplus->error_count()) ? true : false;
|
453 |
+
$log_extra = $this->last_storage_instance ? ' (last)' : '';
|
454 |
+
$updraftplus->log("Cloud backup selection (".($ind+1)."/".count($services)."): ".$service." with instance (".($instance_id_count+1)."/".$total_instance_ids.")".$log_extra);
|
455 |
+
}
|
456 |
+
|
457 |
// Used for logging by record_upload_chunk()
|
458 |
$this->current_instance = $instance_id;
|
459 |
|
461 |
|
462 |
if (1 == $options['instance_enabled']) {
|
463 |
$remote_obj = $storage_objects_and_ids[$service]['object'];
|
|
|
464 |
$remote_obj->set_options($options, true, $instance_id);
|
465 |
$do_prune = array_merge_recursive($do_prune, $this->upload_cloud($remote_obj, $service, $backup_array, $instance_id));
|
466 |
} else {
|
467 |
+
$updraftplus->log("This instance id ($instance_id) is set as inactive.");
|
468 |
}
|
469 |
|
470 |
$instance_id_count++;
|
539 |
return $do_prune;
|
540 |
}
|
541 |
|
542 |
+
/**
|
543 |
+
* Group the backup history into sets for retention processing and indicate the retention rule to apply to each group. This is a 'default' function which just puts them all in together.
|
544 |
+
*
|
545 |
+
* @param Array $backup_history
|
546 |
+
*
|
547 |
+
* @return Array
|
548 |
+
*/
|
549 |
private function group_backups($backup_history) {
|
550 |
return array(array('sets' => $backup_history, 'process_order' => 'keep_newest'));
|
551 |
}
|
1274 |
$updraftplus->log($e->getMessage());
|
1275 |
}
|
1276 |
|
1277 |
+
if (empty($core_tables)) $core_tables = array('terms', 'term_taxonomy', 'termmeta', 'term_relationships', 'commentmeta', 'comments', 'links', 'postmeta', 'posts', 'site', 'sitemeta', 'blogs', 'blogversions', 'blogmeta');
|
1278 |
|
1279 |
global $updraftplus;
|
1280 |
$na = UpdraftPlus_Manipulation_Functions::str_replace_once($our_table_prefix, '', $a);
|
2369 |
return true;
|
2370 |
}
|
2371 |
|
2372 |
+
if (apply_filters('updraftplus_exclude_directory', false, $fullpath, $use_path_when_storing)) {
|
2373 |
$updraftplus->log("Skip filtered directory: $use_path_when_storing");
|
2374 |
return true;
|
2375 |
}
|
2402 |
$updraftplus->log("Entity excluded by configuration option (extension): $use_stripped");
|
2403 |
} elseif (!empty($this->excluded_prefixes) && $this->is_entity_excluded_by_prefix($e)) {
|
2404 |
$updraftplus->log("Entity excluded by configuration option (prefix): $use_stripped");
|
2405 |
+
} elseif (apply_filters('updraftplus_exclude_file', false, $deref, $use_stripped)) {
|
2406 |
$updraftplus->log("Entity excluded by filter: $use_stripped");
|
2407 |
} else {
|
2408 |
$mtime = filemtime($deref);
|
2610 |
$updraftplus->log("Could not open zip file to examine (".$zip->last_error."); will remove: ".basename($examine_zip));
|
2611 |
@unlink($examine_zip);
|
2612 |
} else {
|
2613 |
+
|
2614 |
+
// Don't put this in the for loop, or the magic __get() method gets repeatedly called every time the loop goes round
|
2615 |
$numfiles = $zip->numFiles;
|
2616 |
|
2617 |
for ($i=0; $i < $numfiles; $i++) {
|
2618 |
$si = $zip->statIndex($i);
|
2619 |
$name = $si['name'];
|
2620 |
+
// Exclude folders
|
2621 |
+
if ('/' == substr($name, -1)) continue;
|
2622 |
$this->existing_files[$name] = $si['size'];
|
2623 |
$this->existing_files_rawsize += $si['size'];
|
2624 |
}
|
2998 |
if (false === fwrite($handle, '{"version":'.$version.',"type":"'.$whichone.'",'.$directory.'"listed_levels":"'.$go_to_level.'","contents":{"directories":[')) $updraftplus->log("First write to manifest file failed ($manifest_name)");
|
2999 |
|
3000 |
// First loop: find out which is the last entry, so that we don't write the comma after it
|
3001 |
+
$last_dir_index = false;
|
3002 |
foreach ($this->zipfiles_dirbatched as $index => $dir) {
|
3003 |
if ('all' !== $go_to_level && substr_count($dir, '/') > $go_to_level - 1) continue;
|
3004 |
+
$last_dir_index = $index;
|
3005 |
}
|
3006 |
|
3007 |
// Second loop: write out the entry
|
3008 |
foreach ($this->zipfiles_dirbatched as $index => $dir) {
|
3009 |
if ('all' !== $go_to_level && substr_count($dir, '/') > $go_to_level - 1) continue;
|
3010 |
+
fwrite($handle, json_encode($dir).(($index != $last_dir_index) ? ',' : ''));
|
3011 |
}
|
3012 |
|
3013 |
// Now do the same for files
|
3014 |
fwrite($handle, '],"files":[');
|
3015 |
|
3016 |
$last_file_index = false;
|
3017 |
+
foreach ($this->zipfiles_batched as $source => $store_as) {
|
3018 |
+
if ('all' !== $go_to_level && substr_count($store_as, '/') > $go_to_level - 1) continue;
|
3019 |
+
$last_file_index = $store_as;
|
3020 |
}
|
3021 |
+
foreach ($this->zipfiles_skipped_notaltered as $source => $store_as) {
|
3022 |
+
if ('all' !== $go_to_level && substr_count($store_as, '/') > $go_to_level - 1) continue;
|
3023 |
+
$last_file_index = $store_as;
|
|
|
3024 |
}
|
3025 |
|
3026 |
+
foreach ($this->zipfiles_batched as $source => $store_as) {
|
3027 |
+
if ('all' !== $go_to_level && substr_count($store_as, '/') > $go_to_level - 1) continue;
|
3028 |
+
fwrite($handle, json_encode($store_as).(($store_as != $last_file_index) ? ',' : ''));
|
|
|
3029 |
}
|
3030 |
+
|
3031 |
+
foreach ($this->zipfiles_skipped_notaltered as $source => $store_as) {
|
3032 |
+
if ('all' !== $go_to_level && substr_count($store_as, '/') > $go_to_level - 1) continue;
|
3033 |
+
fwrite($handle, json_encode($store_as).(($store_as != $last_file_index) ? ',' : ''));
|
3034 |
}
|
3035 |
|
3036 |
fwrite($handle, ']}}');
|
3296 |
$max_time = -1;
|
3297 |
}
|
3298 |
|
3299 |
+
if ($normalised_time_since_began < 6 || ($updraftplus->current_resumption >= 1 && $run_times_known >= 1 && $time_since_began < 0.6*$max_time)) {
|
3300 |
|
3301 |
// How much can we increase it by?
|
3302 |
+
if ($normalised_time_since_began < 6) {
|
3303 |
if ($run_times_known > 0 && $max_time >0) {
|
3304 |
+
$new_maxzipbatch = min(floor(max($maxzipbatch*6/$normalised_time_since_began, $maxzipbatch*((0.6*$max_time)/$normalised_time_since_began))), $this->zip_batch_ceiling);
|
3305 |
} else {
|
3306 |
// Maximum of 200MB in a batch
|
3307 |
+
$new_maxzipbatch = min(floor($maxzipbatch*6/$normalised_time_since_began), $this->zip_batch_ceiling);
|
3308 |
}
|
3309 |
} else {
|
3310 |
// Use up to 60% of available time
|
3311 |
+
$new_maxzipbatch = min(floor($maxzipbatch*((0.6*$max_time)/$normalised_time_since_began)), $this->zip_batch_ceiling);
|
3312 |
}
|
3313 |
|
3314 |
// Throttle increases - don't increase by more than 2x in one go - ???
|
@@ -3176,7 +3176,7 @@ class UpdraftPlus {
|
|
3176 |
* This should be called whenever a file is successfully uploaded
|
3177 |
*
|
3178 |
* @param String $file - full filepath
|
3179 |
-
* @param
|
3180 |
* @return Void
|
3181 |
*/
|
3182 |
public function uploaded_file($file, $force = false) {
|
@@ -3189,7 +3189,7 @@ class UpdraftPlus {
|
|
3189 |
$instance_id = empty($updraftplus_backup->current_instance) ? '' : $updraftplus_backup->current_instance;
|
3190 |
$shash = $service.(('' == $service) ? '' : '-').$instance_id.(('' == $instance_id) ? '' : '-').md5($file);
|
3191 |
|
3192 |
-
if ($force || !empty($updraftplus_backup->
|
3193 |
$this->log("Recording as successfully uploaded: $file");
|
3194 |
$new_jobdata = $this->get_uploaded_jobdata_items($file, $service, $instance_id);
|
3195 |
} else {
|
@@ -3215,7 +3215,7 @@ class UpdraftPlus {
|
|
3215 |
// Delete local files immediately if the option is set
|
3216 |
// Where we are only backing up locally, only the "prune" function should do deleting
|
3217 |
$service = $this->jobdata_get('service');
|
3218 |
-
if (!empty($updraftplus_backup->
|
3219 |
$this->delete_local($file);
|
3220 |
}
|
3221 |
}
|
@@ -3577,7 +3577,7 @@ class UpdraftPlus {
|
|
3577 |
|
3578 |
// Clear schedule so that we don't stack up scheduled backups
|
3579 |
wp_clear_scheduled_hook('updraft_backup_increments');
|
3580 |
-
if ('none' == $interval) return 'none';
|
3581 |
$previous_interval = UpdraftPlus_Options::get_updraft_option('updraft_interval_increments');
|
3582 |
|
3583 |
$valid_schedules = wp_get_schedules();
|
@@ -3645,7 +3645,7 @@ class UpdraftPlus {
|
|
3645 |
// index.php is for a sanity check - make sure that we're not somewhere unexpected
|
3646 |
if ((!is_dir($updraft_dir) || !is_file($updraft_dir.'/index.html') || !is_file($updraft_dir.'/.htaccess')) && !is_file($updraft_dir.'/index.php') || !is_file($updraft_dir.'/web.config')) {
|
3647 |
@mkdir($updraft_dir, 0775, true);
|
3648 |
-
@file_put_contents($updraft_dir.'/index.html', "<html><body><a href=\"https://updraftplus.com\">WordPress backups by UpdraftPlus</a></body></html>");
|
3649 |
if (!is_file($updraft_dir.'/.htaccess')) @file_put_contents($updraft_dir.'/.htaccess', 'deny from all');
|
3650 |
if (!is_file($updraft_dir.'/web.config')) @file_put_contents($updraft_dir.'/web.config', "<configuration>\n<system.webServer>\n<authorization>\n<deny users=\"*\" />\n</authorization>\n</system.webServer>\n</configuration>\n");
|
3651 |
}
|
@@ -3814,6 +3814,17 @@ class UpdraftPlus {
|
|
3814 |
return fetch_feed('http://feeds.feedburner.com/updraftplus/');
|
3815 |
}
|
3816 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
3817 |
/**
|
3818 |
* Analyse a database file and return information about it
|
3819 |
*
|
@@ -3957,9 +3968,9 @@ class UpdraftPlus {
|
|
3957 |
if (('https' == $old_siteurl_parsed['scheme'] && 'http' == $actual_siteurl_parsed['scheme']) || ('http' == $old_siteurl_parsed['scheme'] && 'https' == $actual_siteurl_parsed['scheme'])) {
|
3958 |
$powarn .= sprintf(__('This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s.', 'updraftplus'), $old_siteurl_parsed['scheme'], $actual_siteurl_parsed['scheme']);
|
3959 |
if ('https' == $old_siteurl_parsed['scheme']) {
|
3960 |
-
$powarn .= ' '.apply_filters('updraftplus_https_to_http_additional_warning', sprintf(__('This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https.', 'updraftplus'), '<a href="https://updraftplus.com/shop/migrator/">'.__('the migrator add-on', 'updraftplus').'</a>'));
|
3961 |
} else {
|
3962 |
-
$powarn .= ' '.apply_filters('updraftplus_http_to_https_additional_warning', sprintf(__('As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced.', 'updraftplus'), apply_filters('updraftplus_migrator_addon_link', '<a href="https://updraftplus.com/shop/migrator/">'.__('the migrator add-on', 'updraftplus').'</a>')));
|
3963 |
}
|
3964 |
} else {
|
3965 |
$powarn .= apply_filters('updraftplus_dbscan_urlchange_www_append_warning', '');
|
@@ -3968,10 +3979,10 @@ class UpdraftPlus {
|
|
3968 |
} else {
|
3969 |
// For completely different site migration
|
3970 |
$info['same_url'] = false;
|
3971 |
-
$warn[] = apply_filters('updraftplus_dbscan_urlchange', '<a href="https://updraftplus.com/shop/migrator/">'.sprintf(__('This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work.', 'updraftplus'), htmlspecialchars($old_siteurl.' / '.untrailingslashit(site_url()))).'</a>', $old_siteurl, $res);
|
3972 |
}
|
3973 |
if (!class_exists('UpdraftPlus_Addons_Migrator')) {
|
3974 |
-
$warn[] .= '<strong><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/tell-me-more-about-the-search-and-replace-site-location-in-the-database-option/").'">'.__('You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information', 'updraftplus').'</a></strong>';
|
3975 |
}
|
3976 |
}
|
3977 |
|
@@ -3988,7 +3999,7 @@ class UpdraftPlus {
|
|
3988 |
// Check for should-be migration
|
3989 |
if (!$migration_warning && UpdraftPlus_Manipulation_Functions::normalise_url(home_url()) != UpdraftPlus_Manipulation_Functions::normalise_url($old_home)) {
|
3990 |
$migration_warning = true;
|
3991 |
-
$powarn = apply_filters('updraftplus_dbscan_urlchange', '<a href="https://updraftplus.com/shop/migrator/">'.sprintf(__('This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work.', 'updraftplus'), htmlspecialchars($old_home.' / '.home_url())).'</a>', $old_home, $res);
|
3992 |
if (!empty($powarn)) $warn[] = $powarn;
|
3993 |
}
|
3994 |
} elseif (!isset($info['created_by_version']) && preg_match('/^\# Created by UpdraftPlus version ([\d\.]+)/', $buffer, $matches)) {
|
@@ -4024,7 +4035,7 @@ class UpdraftPlus {
|
|
4024 |
// $err[] = sprintf(__('Error: %s', 'updraftplus'), __('You are running on WordPress multisite - but your backup is not of a multisite site.', 'updraftplus'));
|
4025 |
// return array($mess, $warn, $err, $info);
|
4026 |
// } else {
|
4027 |
-
$warn[] = __('You are running on WordPress multisite - but your backup is not of a multisite site.', 'updraftplus').' '.__('It will be imported as a new site.', 'updraftplus').' <a href="https://updraftplus.com/information-on-importing-a-single-site-wordpress-backup-into-a-wordpress-network-i-e-multisite/">'.__('Please read this link for important information on this process.', 'updraftplus').'</a>';
|
4028 |
// }
|
4029 |
// Got the needed code?
|
4030 |
if (!class_exists('UpdraftPlusAddOn_MultiSite') || !class_exists('UpdraftPlus_Addons_Migrator')) {
|
@@ -4032,7 +4043,7 @@ class UpdraftPlus {
|
|
4032 |
return array($mess, $warn, $err, $info);
|
4033 |
}
|
4034 |
} elseif (isset($old_siteinfo['multisite']) && $old_siteinfo['multisite'] && !is_multisite()) {
|
4035 |
-
$warn[] = __('Warning:', 'updraftplus').' '.__('Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible.', 'updraftplus').' <a href="https://codex.wordpress.org/Create_A_Network">'.__('If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite.', 'updraftplus').'</a>';
|
4036 |
}
|
4037 |
} elseif (preg_match('/^([^=]+)=(.*)$/', $matches[1], $kvmatches)) {
|
4038 |
$key = $kvmatches[1];
|
@@ -4120,7 +4131,7 @@ class UpdraftPlus {
|
|
4120 |
}
|
4121 |
if ($db_charset_forbidden) {
|
4122 |
$db_unsupported_charset_unique = array_unique($db_unsupported_charset);
|
4123 |
-
$warn[] = sprintf(_n("The database server that this WordPress site is running on doesn't support the character set (%s) which you are trying to import.", "The database server that this WordPress site is running on doesn't support the character sets (%s) which you are trying to import.", count($db_unsupported_charset_unique), 'updraftplus'), implode(', ', $db_unsupported_charset_unique)).' '.__('You can choose another suitable character set instead and continue with the restoration at your own risk.', 'updraftplus').' <a target="_blank" href="https://updraftplus.com/faqs/implications-changing-tables-character-set/">'.__('Go here for more information.', 'updraftplus').'</a>'.' <a target="_blank" href="https://updraftplus.com/faqs/implications-changing-tables-character-set/">'.__('Go here for more information.', 'updraftplus').'</a>';
|
4124 |
$db_supported_character_sets = array_keys($db_supported_character_sets);
|
4125 |
$similar_type_charset = UpdraftPlus_Manipulation_Functions::get_matching_str_from_array_elems($db_unsupported_charset_unique, $db_supported_character_sets, true);
|
4126 |
if (empty($similar_type_charset)) {
|
3176 |
* This should be called whenever a file is successfully uploaded
|
3177 |
*
|
3178 |
* @param String $file - full filepath
|
3179 |
+
* @param Boolean $force - mark as successfully uploaded even if not on the last service
|
3180 |
* @return Void
|
3181 |
*/
|
3182 |
public function uploaded_file($file, $force = false) {
|
3189 |
$instance_id = empty($updraftplus_backup->current_instance) ? '' : $updraftplus_backup->current_instance;
|
3190 |
$shash = $service.(('' == $service) ? '' : '-').$instance_id.(('' == $instance_id) ? '' : '-').md5($file);
|
3191 |
|
3192 |
+
if ($force || !empty($updraftplus_backup->last_storage_instance)) {
|
3193 |
$this->log("Recording as successfully uploaded: $file");
|
3194 |
$new_jobdata = $this->get_uploaded_jobdata_items($file, $service, $instance_id);
|
3195 |
} else {
|
3215 |
// Delete local files immediately if the option is set
|
3216 |
// Where we are only backing up locally, only the "prune" function should do deleting
|
3217 |
$service = $this->jobdata_get('service');
|
3218 |
+
if (!empty($updraftplus_backup->last_storage_instance) && ('' !== $service && ((is_array($service) && count($service)>0 && (count($service) > 1 || (array('') !== $service && array('none') !== $service))) || (is_string($service) && 'none' !== $service)))) {
|
3219 |
$this->delete_local($file);
|
3220 |
}
|
3221 |
}
|
3577 |
|
3578 |
// Clear schedule so that we don't stack up scheduled backups
|
3579 |
wp_clear_scheduled_hook('updraft_backup_increments');
|
3580 |
+
if ('none' == $interval || empty($interval)) return 'none';
|
3581 |
$previous_interval = UpdraftPlus_Options::get_updraft_option('updraft_interval_increments');
|
3582 |
|
3583 |
$valid_schedules = wp_get_schedules();
|
3645 |
// index.php is for a sanity check - make sure that we're not somewhere unexpected
|
3646 |
if ((!is_dir($updraft_dir) || !is_file($updraft_dir.'/index.html') || !is_file($updraft_dir.'/.htaccess')) && !is_file($updraft_dir.'/index.php') || !is_file($updraft_dir.'/web.config')) {
|
3647 |
@mkdir($updraft_dir, 0775, true);
|
3648 |
+
@file_put_contents($updraft_dir.'/index.html', "<html><body><a href=\"https://updraftplus.com\" target=\"_blank\">WordPress backups by UpdraftPlus</a></body></html>");
|
3649 |
if (!is_file($updraft_dir.'/.htaccess')) @file_put_contents($updraft_dir.'/.htaccess', 'deny from all');
|
3650 |
if (!is_file($updraft_dir.'/web.config')) @file_put_contents($updraft_dir.'/web.config', "<configuration>\n<system.webServer>\n<authorization>\n<deny users=\"*\" />\n</authorization>\n</system.webServer>\n</configuration>\n");
|
3651 |
}
|
3814 |
return fetch_feed('http://feeds.feedburner.com/updraftplus/');
|
3815 |
}
|
3816 |
|
3817 |
+
/**
|
3818 |
+
* Sets up the nonce, basic job data, opens a log file for a new restore job, and makes sure that the Updraft_Restorer class is available
|
3819 |
+
*/
|
3820 |
+
public function initiate_restore_job() {
|
3821 |
+
$this->backup_time_nonce();
|
3822 |
+
$this->jobdata_set('job_type', 'restore');
|
3823 |
+
$this->jobdata_set('job_time_ms', $this->job_time_ms);
|
3824 |
+
$this->logfile_open($this->nonce);
|
3825 |
+
if (!class_exists('Updraft_Restorer')) include_once(UPDRAFTPLUS_DIR.'/restorer.php');
|
3826 |
+
}
|
3827 |
+
|
3828 |
/**
|
3829 |
* Analyse a database file and return information about it
|
3830 |
*
|
3968 |
if (('https' == $old_siteurl_parsed['scheme'] && 'http' == $actual_siteurl_parsed['scheme']) || ('http' == $old_siteurl_parsed['scheme'] && 'https' == $actual_siteurl_parsed['scheme'])) {
|
3969 |
$powarn .= sprintf(__('This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s.', 'updraftplus'), $old_siteurl_parsed['scheme'], $actual_siteurl_parsed['scheme']);
|
3970 |
if ('https' == $old_siteurl_parsed['scheme']) {
|
3971 |
+
$powarn .= ' '.apply_filters('updraftplus_https_to_http_additional_warning', sprintf(__('This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https.', 'updraftplus'), '<a href="https://updraftplus.com/shop/migrator/" target="_blank">'.__('the migrator add-on', 'updraftplus').'</a>'));
|
3972 |
} else {
|
3973 |
+
$powarn .= ' '.apply_filters('updraftplus_http_to_https_additional_warning', sprintf(__('As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced.', 'updraftplus'), apply_filters('updraftplus_migrator_addon_link', '<a href="https://updraftplus.com/shop/migrator/" target="_blank">'.__('the migrator add-on', 'updraftplus').'</a>')));
|
3974 |
}
|
3975 |
} else {
|
3976 |
$powarn .= apply_filters('updraftplus_dbscan_urlchange_www_append_warning', '');
|
3979 |
} else {
|
3980 |
// For completely different site migration
|
3981 |
$info['same_url'] = false;
|
3982 |
+
$warn[] = apply_filters('updraftplus_dbscan_urlchange', '<a href="https://updraftplus.com/shop/migrator/" target="_blank">'.sprintf(__('This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work.', 'updraftplus'), htmlspecialchars($old_siteurl.' / '.untrailingslashit(site_url()))).'</a>', $old_siteurl, $res);
|
3983 |
}
|
3984 |
if (!class_exists('UpdraftPlus_Addons_Migrator')) {
|
3985 |
+
$warn[] .= '<strong><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/tell-me-more-about-the-search-and-replace-site-location-in-the-database-option/").'" target="_blank">'.__('You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information', 'updraftplus').'</a></strong>';
|
3986 |
}
|
3987 |
}
|
3988 |
|
3999 |
// Check for should-be migration
|
4000 |
if (!$migration_warning && UpdraftPlus_Manipulation_Functions::normalise_url(home_url()) != UpdraftPlus_Manipulation_Functions::normalise_url($old_home)) {
|
4001 |
$migration_warning = true;
|
4002 |
+
$powarn = apply_filters('updraftplus_dbscan_urlchange', '<a href="https://updraftplus.com/shop/migrator/" target="_blank">'.sprintf(__('This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work.', 'updraftplus'), htmlspecialchars($old_home.' / '.home_url())).'</a>', $old_home, $res);
|
4003 |
if (!empty($powarn)) $warn[] = $powarn;
|
4004 |
}
|
4005 |
} elseif (!isset($info['created_by_version']) && preg_match('/^\# Created by UpdraftPlus version ([\d\.]+)/', $buffer, $matches)) {
|
4035 |
// $err[] = sprintf(__('Error: %s', 'updraftplus'), __('You are running on WordPress multisite - but your backup is not of a multisite site.', 'updraftplus'));
|
4036 |
// return array($mess, $warn, $err, $info);
|
4037 |
// } else {
|
4038 |
+
$warn[] = __('You are running on WordPress multisite - but your backup is not of a multisite site.', 'updraftplus').' '.__('It will be imported as a new site.', 'updraftplus').' <a href="https://updraftplus.com/information-on-importing-a-single-site-wordpress-backup-into-a-wordpress-network-i-e-multisite/" target="_blank">'.__('Please read this link for important information on this process.', 'updraftplus').'</a>';
|
4039 |
// }
|
4040 |
// Got the needed code?
|
4041 |
if (!class_exists('UpdraftPlusAddOn_MultiSite') || !class_exists('UpdraftPlus_Addons_Migrator')) {
|
4043 |
return array($mess, $warn, $err, $info);
|
4044 |
}
|
4045 |
} elseif (isset($old_siteinfo['multisite']) && $old_siteinfo['multisite'] && !is_multisite()) {
|
4046 |
+
$warn[] = __('Warning:', 'updraftplus').' '.__('Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible.', 'updraftplus').' <a href="https://codex.wordpress.org/Create_A_Network" target="_blank">'.__('If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite.', 'updraftplus').'</a>';
|
4047 |
}
|
4048 |
} elseif (preg_match('/^([^=]+)=(.*)$/', $matches[1], $kvmatches)) {
|
4049 |
$key = $kvmatches[1];
|
4131 |
}
|
4132 |
if ($db_charset_forbidden) {
|
4133 |
$db_unsupported_charset_unique = array_unique($db_unsupported_charset);
|
4134 |
+
$warn[] = sprintf(_n("The database server that this WordPress site is running on doesn't support the character set (%s) which you are trying to import.", "The database server that this WordPress site is running on doesn't support the character sets (%s) which you are trying to import.", count($db_unsupported_charset_unique), 'updraftplus'), implode(', ', $db_unsupported_charset_unique)).' '.__('You can choose another suitable character set instead and continue with the restoration at your own risk.', 'updraftplus').' <a target="_blank" href="https://updraftplus.com/faqs/implications-changing-tables-character-set/" target="_blank">'.__('Go here for more information.', 'updraftplus').'</a>'.' <a target="_blank" href="https://updraftplus.com/faqs/implications-changing-tables-character-set/" target="_blank">'.__('Go here for more information.', 'updraftplus').'</a>';
|
4135 |
$db_supported_character_sets = array_keys($db_supported_character_sets);
|
4136 |
$similar_type_charset = UpdraftPlus_Manipulation_Functions::get_matching_str_from_array_elems($db_unsupported_charset_unique, $db_supported_character_sets, true);
|
4137 |
if (empty($similar_type_charset)) {
|
@@ -281,7 +281,6 @@ span.tokens-number {
|
|
281 |
.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {
|
282 |
text-decoration: none;
|
283 |
font-size: 20px;
|
284 |
-
line-height: inherit;
|
285 |
}
|
286 |
|
287 |
.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {
|
@@ -2182,11 +2181,16 @@ small.ud_massactions-tip {
|
|
2182 |
/* Add-ons */
|
2183 |
/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */
|
2184 |
|
2185 |
-
.dashicons {
|
2186 |
line-height: inherit;
|
2187 |
font-size: inherit;
|
2188 |
}
|
2189 |
|
|
|
|
|
|
|
|
|
|
|
2190 |
.addon-logo-150 {
|
2191 |
margin-left: 30px;
|
2192 |
margin-top: 33px;
|
281 |
.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {
|
282 |
text-decoration: none;
|
283 |
font-size: 20px;
|
|
|
284 |
}
|
285 |
|
286 |
.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {
|
2181 |
/* Add-ons */
|
2182 |
/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */
|
2183 |
|
2184 |
+
#updraft-wrap .dashicons.dashicons-adapt-size {
|
2185 |
line-height: inherit;
|
2186 |
font-size: inherit;
|
2187 |
}
|
2188 |
|
2189 |
+
#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size) {
|
2190 |
+
vertical-align: middle;
|
2191 |
+
margin-top: -3px;
|
2192 |
+
}
|
2193 |
+
|
2194 |
.addon-logo-150 {
|
2195 |
margin-left: 30px;
|
2196 |
margin-top: 33px;
|
@@ -1,2 +1,2 @@
|
|
1 |
-
@keyframes udp_blink{from{opacity:1;transform:scale(1)}to{opacity:.4;transform:scale(0.85)}}.max-width-600{max-width:600px}.width-900{max-width:900px}.width-80{width:80%}.no-decoration{text-decoration:none}.bold{font-weight:bold}.center-align-td{text-align:center}.remove-padding{padding:0 !important}.updraft-text-center{text-align:center}.autobackup{padding:6px;margin:8px 0}ul .disc{list-style:disc inside}.dashicons-log-fix{display:inherit}.udpdraft__lifted{box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#updraft-wrap a .dashicons{text-decoration:none}.updraft-field-description,table.form-table td p.updraft-field-description{font-size:90%;line-height:1.2;font-style:italic;margin-bottom:5px}label.updraft_checkbox{display:block;margin-bottom:4px;margin-left:26px}label.updraft_checkbox>input[type=checkbox]{margin-left:-25px}div[id*="updraft_include_"]{margin-bottom:9px}.settings_page_updraftplus input[type="file"]{border:0}.settings_page_updraftplus .wipe_settings{padding-bottom:10px}.settings_page_updraftplus input[type="text"]{font-size:14px}.settings_page_updraftplus select{border-radius:4px;max-width:100%}input.updraft_input--wide,textarea.updraft_input--wide{max-width:442px;width:100%}#updraft-wrap .button-large{font-size:1.3em}.main-dashboard-buttons{border-width:4px;border-radius:12px;letter-spacing:0;font-size:17px;font-weight:bold;padding-left:.7em;padding-right:2em;padding:.3em 1em;line-height:1.7em;background:transparent;position:relative;border:2px solid;transition:all .2s;vertical-align:baseline;box-sizing:border-box;text-align:center;line-height:1.3em;margin-left:.3em;text-transform:none;line-height:1;text-decoration:none}.button-restore{border-color:#629ec0;color:#629ec0}.dashboard-main-sizing{border-width:4px;width:190px;line-height:1.7em}p.updraftplus-option{margin-top:0;margin-bottom:5px}p.updraftplus-option-inline{display:inline-block;padding-right:20px}span.updraftplus-option-label{display:block}#updraft-navtab-migrate-content .postbox{padding:18px}.updraftclone-main-row{display:-ms-flexbox;display:flex}.updraftclone-tokens{background:#f5f5f5;padding:20px;border-radius:10px;margin-right:20px;max-width:300px}.updraftclone-tokens p{margin:0}.updraftclone_action_box{background:#f5f5f5;padding:20px;border-radius:10px;-ms-flex:1;flex:1}.updraftclone_action_box p:first-child{margin-top:0}.updraftclone_action_box p:last-child{margin-bottom:0}span.tokens-number{font-size:46px;display:block}.button.updraft_migrate_widget_temporary_clone_show_stage0{display:none;position:absolute;right:0;top:0;height:100%;border-left:1px solid #CCC;padding-left:10px;padding-right:10px}.updraft_migrate_widget_temporary_clone_stage0_container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.updraft_migrate_widget_temporary_clone_stage0_box{margin-right:20px;width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:none}@media(min-width:1024px){.updraft_migrate_widget_temporary_clone_stage0_container{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_migrate_widget_temporary_clone_stage0_box{-ms-flex-preferred-size:45%;flex-basis:45%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:right}}.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons{text-decoration:none;font-size:20px;line-height:inherit}.opened .button.updraft_migrate_widget_temporary_clone_show_stage0{display:inline-block}.opened .updraft_migrate_widget_temporary_clone_stage0{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:21px}.clone-list{clear:both;width:100%;margin-top:40px}.clone-list table{width:100%;text-align:left}.clone-list table tr th{background:#e4e4e4}.clone-list table tr td{background:#f5f5f5;word-break:break-word}.clone-list table tr:nth-child(odd) td{background:#fafafa}.clone-list table td,.clone-list table th{padding:6px}.updraftplus-clone .updraft_row{padding-left:0;padding-right:0}button#updraft_migrate_createclone+.updraftplus_spinner{margin-top:13px}.button.button-hero.updraftclone_show_step_1{white-space:normal;height:auto;line-height:14px;padding-top:10px;padding-bottom:10px}.button.button-hero.updraftclone_show_step_1 span.dashicons{height:auto}.updraftplus_clone_status{color:red}a.updraft_migrate_add_site--trigger span.dashicons{text-decoration:none}.button-restore:hover,.button-migrate:hover,.button-backup:hover,.button-view-log:hover,.button-mass-selectors:hover,.button-delete:hover,.button-entity-backup:hover,.udp-button-primary:hover{border-color:#df6926;color:#df6926}.button-migrate{color:#eea920;border-color:#eea920}#updraft_migrate_tab_main{padding:8px}.updraft_migrate_widget_module_content{background:#FFF;border-radius:0;position:relative}body.js #updraft_migrate .updraft_migrate_widget_module_content{display:none}.updraft_migrate_widget_module_content>h3,div[class*="updraft_migrate_widget_temporary_clone_stage"]>h3{margin-top:0}.updraft_migrate_widget_module_content header{position:relative;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-grid-column-align:center;justify-items:center;margin-top:-18px;margin-left:-18px;margin-right:-18px;margin-bottom:15px;border-bottom:1px solid #CCC}.updraft_migrate_widget_module_content header h3,.updraft_migrate_widget_module_content header button.button.close{padding:10px;line-height:20px;height:auto;margin:0}.updraft_migrate_widget_module_content button.button.close{text-decoration:none;padding-left:5px;border-right:1px solid #CCC}.updraft_migrate_widget_module_content button.button.close .dashicons{margin-top:1px}.updraft_migrate_widget_module_content header h3{margin:0}.updraft_migrate_intro button.button.button-primary.button-hero{max-width:235px;word-wrap:normal;white-space:normal;line-height:1;height:auto;padding-top:13px;padding-bottom:13px;text-align:left;position:relative;margin-right:10px;margin-bottom:10px}.updraft_migrate_intro button.button.button-primary.button-hero .dashicons{position:absolute;left:10px;top:calc(50% - 8px)}#updraft_migrate .ui-widget-content a{color:#1c94c4}#updraft-wrap .ui-accordion .ui-accordion-header{background:#f6f6f6;margin:0;border-radius:0;padding-left:.5em;padding-right:.7em}#updraft-wrap .ui-widget{font-family:inherit}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w{background-position:-96px 0}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s{background-position:-64px 0}#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon{left:auto;right:5px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px rgba(91,157,217,0.22),0 0 2px 1px rgba(30,140,190,0.3);background:#FFF}#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons{color:#0572aa;opacity:1}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active{background:#f6f6f6;border-bottom:2px solid #0572aa;box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3)}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus{box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child){border-top:0}#updraft-wrap .ui-accordion .ui-accordion-header .dashicons{opacity:.4;margin-right:10px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);z-index:1}.updraft_next_scheduled_backups_wrapper{display:-ms-flexbox;display:flex;background:#FFF;-ms-grid-column-align:center;justify-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_next_scheduled_backups_wrapper>div{width:50%;background:#FFF;height:auto;padding:33px;box-sizing:border-box}.updraft_backup_btn_wrapper{text-align:center;border-left:1px solid #f1f1f1;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.incremental-backups-only{display:none}.incremental-free-only{display:none}.incremental-free-only p{padding:5px;background:rgba(255,0,0,0.06);border:1px solid #bfbfbf}#updraft-delete-waitwarning span.spinner{visibility:visible;float:none;margin:0;margin-right:10px}button#updraft-backupnow-button .spinner,button#updraft-backupnow-button .dashicons-yes{display:none}button#updraft-backupnow-button.loading .spinner{display:inline-block;visibility:visible;margin-top:13px;margin-right:0}button#updraft-backupnow-button.loading{background-color:#efefef;border-color:#CCC;text-shadow:0 -1px 1px #bbc3c7,1px 0 1px #bbc3c7,0 1px 1px #bbc3c7,-1px 0 1px #bbc3c7;box-shadow:none}button#updraft-backupnow-button.finished .dashicons-yes{display:inline-block;visibility:visible;font-size:42px;margin-right:0;margin-top:2px}.updraft_next_scheduled_entity{width:50%;display:inline-block;float:left}.updraft_next_scheduled_entity .dashicons{color:#CCC;font-size:20px}.updraft_next_scheduled_entity strong{font-size:20px}.updraft_next_scheduled_heading{margin-bottom:10px}.updraft_next_scheduled_date_time{color:#46a84b}.updraft_time_now_wrapper{margin-top:68px;width:100%}.updraft_time_now_label,.updraft_time_now{display:inline-block;padding:7px}.updraft_time_now_label{background:#b7b7b7;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#FFF;margin-right:0;text-shadow:0 1px 2px rgba(0,0,0,0.4)}.updraft_time_now{background:#f1f1f1;border-top-right-radius:4px;border-bottom-right-radius:4px;margin-left:-3px}#updraft_lastlogmessagerow{margin:6px 0}#updraft_lastlogmessagerow{clear:both;padding:.25px 0}#updraft_lastlogmessagerow .updraft-log-link{float:right;margin-top:-2.5em;margin-right:2px}#updraft_lastlogmessagerow>div{clear:both;background:#FFF;padding:18px}#updraft_activejobs_table{overflow:hidden;width:100%;background:#fafafa;padding:0}.updraft_requeststart{padding:15px 33px;text-align:center}.updraft_requeststart .spinner{visibility:visible;float:none;vertical-align:middle;margin-top:-2px}a.updraft_jobinfo_delete.disabled{opacity:.4;color:inherit;text-decoration:none}.updraft_row{clear:both;transition:.3s all;padding:15px 33px}.updraft_row.deleting{opacity:.4}.updraft_existing_backups_count{padding:2px 8px;font-size:12px;background:#ca4a1e;color:#FFF;font-weight:bold;border-radius:10px}.form-table .existing-backups-table input[type="checkbox"]{border-radius:0}.form-table .existing-backups-table .check-column{width:40px;padding:0;padding-top:8px}.existing-backups-buttons{font-size:11px;line-height:1.4em;border-width:3px}.existing-backups-restore-buttons{font-size:11px;line-height:1.4em;border-width:3px}.button-delete{color:#e23900;border-color:#e23900;font-size:14px;line-height:1.4em;border-width:2px;margin-right:10px}.button-view-log,.button-mass-selectors{color:darkgrey;border-color:darkgrey;font-size:14px;line-height:1.4em;border-width:2px;margin-top:-1px}.button-view-log{width:120px}.button-existing-restore{font-size:14px;line-height:1.4em;border-width:2px;width:110px}.main-restore{margin-right:3%;margin-left:3%}.button-entity-backup{color:#555;border-color:#555;font-size:11px;line-height:1.4em;border-width:2px;margin-right:5px}.button-select-all{width:122px}.button-deselect{width:92px}#ud_massactions>.display-flex>.mass-selectors-margins,#updraft-delete-waitwarning>.display-flex>.mass-selectors-margins{margin-right:-4px}.udp-button-primary{border-width:4px;color:#0073aa;border-color:#0073aa;font-size:14px;height:40px}#ud_massactions .button-delete{margin-right:0}.stored_local{border-radius:5px;background-color:#007fe7;padding:3px 5px 5px 5px;color:#FFF;font-size:75%}span#updraft_lastlogcontainer{word-break:break-all}.stored_icon{height:1.3em;position:relative;top:.2em}.backup_date_label>*{vertical-align:middle}.backup_date_label .dashicons{font-size:18px}.backup_date_label .clear-right{clear:right}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:bold}.udp-logo-70{width:70px;height:70px;float:left;padding-right:25px}h3 .thank-you{margin-top:0}.ws_advert{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.dismiss-dash-notice{float:right;position:relative;top:-20px}.updraft_exclude_container,.updraft_include_container{margin-left:24px;margin-top:5px;margin-bottom:10px;padding:15px;border:1px solid #DDD}label.updraft-exclude-label{font-weight:500;margin-bottom:5px;display:block}.updraft_add_exclude_item,#updraft_include_more_paths_another{display:inline-block;margin-top:10px}input.updraft_exclude_entity_field,.form-table td input.updraft_exclude_entity_field,.updraftplus-morefiles-row input[type=text]{width:calc(100% - 70px);max-width:400px}@media screen and (max-width:782px){.form-table td input.updraft_exclude_entity_field,.form-table td .updraftplus-morefiles-row input[type=text]{display:inline-block}}.updraft_exclude_entity_delete.dashicons,.updraft_exclude_entity_edit.dashicons,.updraft_exclude_entity_update.dashicons,.updraftplus-morefiles-row a.dashicons{margin-top:2px;font-size:20px;box-shadow:none;line-height:1;padding:3px;margin-right:4px}.updraft_exclude_entity_delete,.updraft_exclude_entity_delete:hover,.updraftplus-morefiles-row-delete{color:#ff6347}.updraft_exclude_entity_update.dashicons,.updraft_exclude_entity_update.dashicons:hover{color:#008000;font-weight:bold;font-size:22px;margin-left:4px}.updraft_exclude_entity_edit{margin-left:4px}.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete{display:none}.updraft-exclude-panel-heading{margin-bottom:8px}.updraft-exclude-panel-heading h3{margin:.5em 0 .5em 0}.updraft-exclude-submit.button-primary{margin-top:5px}.updraft_exclude_actions_list{font-weight:bold}.updraft-exclude-link{cursor:pointer}#updraft_include_more_options{padding-left:25px}#updraft_report_cell .updraft_reportbox,.updraft_small_box{padding:12px;margin:8px 0;border:1px solid #CCC;position:relative}#updraft_report_cell button.updraft_reportbox_delete,.updraft_box_delete_button,.updraft_small_box .updraft_box_delete_button{padding:4px;padding-top:6px;border:0;background:transparent;position:absolute;top:4px;right:4px;cursor:pointer}#updraft_report_cell button.updraft_reportbox_delete:hover{color:#de3c3c}a.updraft_report_another .dashicons{text-decoration:none;margin-top:2px}.updraft_report_dbbackup.updraft_report_disabled{color:#CCC}#updraft-navtab-settings-content .updraft-test-button{font-size:18px !important}#updraft_report_cell .updraft_report_email{display:block;width:calc(100% - 50px);margin-bottom:9px}#updraft_report_cell .updraft_report_another_p{clear:left}#updraft-navtab-settings-content table.form-table p{max-width:700px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td{background-color:#efefef}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td{background-color:#e8e8e8}.updraft_settings_sectionheading{display:none}.updraft-backupentitybutton-disabled{background-color:transparent;border:0;color:#0074a2;text-decoration:underline;cursor:pointer;clear:none;float:left}.updraft-backupentitybutton{margin-left:8px}.updraft-bigbutton{padding:2px 0 !important;margin-right:14px !important;font-size:22px !important;min-height:32px;min-width:180px}tr[class*="_updraft_remote_storage_border"]{border-top:1px solid #CCC}.updraft_multi_storage_options{float:right;clear:right;margin-bottom:5px !important}.updraft_toggle_instance_label{vertical-align:top !important}.updraft_debugrow th{float:right;text-align:right;font-weight:bold;padding-right:8px;min-width:140px}.updraft_debugrow td{min-width:300px;vertical-align:bottom}#updraft_webdav_host_error,.onedrive_folder_error{color:red}.updraft_jstree .jstree-container-ul>.jstree-node,#updraft_more_files_jstree .jstree-container-ul>.jstree-node{background:transparent}.updraft_jstree .jstree-container-ul>.jstree-open>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-open>.jstree-ocl{background-position:-36px -4px}.updraft_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl{background-position:-4px -4px}.updraft_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl{background:transparent}#updraft_zip_files_container{position:relative;height:450px;overflow:none}.updraft_jstree_info_container{position:relative;height:auto;width:100%;border:1px dotted;margin-bottom:5px}.updraft_jstree_info_container p{margin:1px;padding-left:10px;font-size:14px}#updraft_zip_download_item{display:none;color:#0073aa;padding-left:10px}#updraft_zip_download_notice{padding-left:10px}#updraft_exclude_files_folders_jstree{max-height:200px;overflow-y:scroll}.updraft_jstree{position:relative;border:1px dotted;height:80%;width:100%;overflow:auto}#updraft_more_files_container{position:relative;display:none;width:100%;border:1px solid #CCC;background:#fafafa;margin-bottom:5px;margin-top:4px;box-shadow:0 5px 8px rgba(0,0,0,0.1)}div#updraft_more_files_container::before{content:' ';width:11px;height:11px;display:block;background:#fafafa;position:absolute;top:0;left:20px;border-top:1px solid #CCC;border-left:1px solid #CCC;transform:translatey(-7px) rotate(45deg)}input.updraft_more_path_editing{border-color:#0285ba}input.updraft_more_path_editing ~ a.dashicons{display:none}#updraft_jstree_buttons{padding:10px;background:#e6e6e6}#updraft_jstree_container{height:300px;width:100%;overflow:auto}#updraft_more_files_container button{line-height:20px}#updraft_parent_directory{margin:10px 10px 4px 10px;padding-left:3px}#updraft_jstree_confirm,#updraft_jstree_cancel{display:none}.updraftplus-morefiles-row-delete,.updraftplus-morefiles-row-edit{cursor:pointer}#updraft-wrap .form-table th{width:230px}#updraft-wrap .form-table .existing-backups-table th{width:auto}.updraft-viewlogdiv form{margin:0;padding:0}.updraft-viewlogdiv{display:inline-block}.updraft-viewlogdiv input,.updraft-viewlogdiv a{border:0;background-color:transparent;color:#000;margin:0;padding:3px 4px;font-size:16px;line-height:26px}.updraft-viewlogdiv input:hover,.updraft-viewlogdiv a:hover{color:#FFF;cursor:pointer}.button.button-remove{color:white;background-color:#de3c3c;border-color:#c00000;box-shadow:0 1px 0 #c10100}.button.button-remove:hover,.button.button-remove:focus{border-color:#C00;color:#FFF;background:#C00}body.admin-color-midnight .button.button-remove{color:#de3c3c;background-color:#f7f7f7;border-color:#CCC;box-shadow:0 1px 0 #CCC}body.admin-color-midnight .button.button-remove:hover,body.admin-color-midnight .button.button-remove:focus{border-color:#ba281f}body.admin-color-midnight .button.button-remove:focus{box-shadow:inherit;box-shadow:0 0 3px rgba(0,115,170,0.8)}.drag-drop #drag-drop-area2{border:4px dashed #DDD;height:200px}#drag-drop-area2 .drag-drop-inside{margin:36px auto 0;width:350px}#filelist,#filelist2{width:100%}#filelist .file,#filelist2 .file,.ud_downloadstatus .file,#ud_downloadstatus2 .file{padding:1px;background:#ececec;border:solid 1px #CCC;margin:4px 0}.updraft_premium section{margin-bottom:20px}.updraft_premium_cta{background:#FFF;margin-top:30px;padding:0;border-left:4px solid #db6a03}.updraft_premium_cta a{font-weight:normal}.updraft_premium_cta a.button.button-primary.button-hero{font-size:1.3em;letter-spacing:.03rem;text-transform:uppercase}.updraft_premium_cta__top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:18px 30px}.updraft_premium_cta__bottom{background:#f9f9f9;padding:5px 30px}.updraft_premium_cta__summary{margin-right:60px}.updraft_premium_cta h2{font-size:28px;font-weight:200;line-height:1;margin:0;margin-bottom:5px;letter-spacing:.05rem;color:#db6a03}.updraft_premium_cta ul li::after{color:#CCC}@media only screen and (max-width:768px){.updraft_premium_cta__top{-ms-flex-direction:column;flex-direction:column;text-align:center;-ms-flex-align:center;align-items:center}.updraft_premium_cta__summary{margin-right:0;margin-bottom:30px}}.udp-box{background:#FFF;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,0.1);text-align:center}.udp-box h3{margin:0}.udp-box__heading{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;background:0;box-shadow:none}.updraft-more-plugins{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;flex-wrap:wrap}.updraft-more-plugins img{max-width:200px;width:100%;display:inline-block}.updraft-more-plugins .udp-box{box-sizing:border-box;width:24%}.updraft-more-plugins .udp-box p:last-child{margin-bottom:0;padding-bottom:0}.updraft_premium_description_list{text-align:left;margin:0;font-size:12px}ul.updraft_premium_description_list,ul#updraft_restore_warnings{list-style:disc inside}ul.updraft_premium_description_list li{display:inline}ul.updraft_premium_description_list li::after{content:" | "}ul.updraft_premium_description_list li:last-child::after{content:""}.updraft_feature_cell{background-color:#f7d9c9 !important;padding:5px 10px}.updraftplus_com_login_status,.updraftplus_com_key_status{display:none;border-left-color:#dc3232 !important;background:#FFF;border-left:4px solid #FFF;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px 0;padding:5px 12px}.updraft_feat_table{border:0;border-collapse:collapse;font-size:120%;background-color:white;text-align:center}.updraft_feat_th,.updraft_feat_table td{border:1px solid #f1f1f1;border-collapse:collapse;font-size:120%;background-color:white;text-align:center;padding:15px}.updraft_feat_table td{border-bottom-width:4px}.updraft_feat_table td:first-child{border-left:0}.updraft_feat_table td:last-child{border-right:0}.updraft_feat_table tr:last-child td{border-bottom:0}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){background-color:rgba(241,241,241,0.38);width:190px}.updraft_feat_table__header td img{display:block;margin:0 auto}.updraft_feat_table__header td{text-align:center}.updraft_feat_table .installed{font-size:14px}.updraft_feat_table p{padding:0 10px;margin:5px 0;font-size:13px}.updraft_feat_table h4{margin:5px 0}.updraft_feat_table .dashicons{width:25px;height:25px;font-size:25px;line-height:1}.updraft_feat_table .dashicons-yes,.updraft_feat_table .updraft-yes{color:green}.updraft_feat_table .dashicons-no-alt,.updraft_feat_table .updraft-no{color:red}.updraft_tick_cell{text-align:center}.updraft_tick_cell img{margin:4px 0;height:24px}.ud_downloadstatus__close{border:0;background:transparent;width:auto;font-size:20px;padding:0;cursor:pointer}#filelist .fileprogress,#filelist2 .fileprogress,.ud_downloadstatus .dlfileprogress,#ud_downloadstatus2 .dlfileprogress{width:0;background:#0572aa;height:8px}.ud_downloadstatus .raw,#ud_downloadstatus2 .raw{margin-top:8px;clear:left}.ud_downloadstatus .file,#ud_downloadstatus2 .file{margin-top:8px}div[class^="updraftplus_downloader_container_"]{padding:10px}tr.updraftplusmethod h3{margin:0}tr.updraftplusmethod img{max-width:100%}#updraft_retain_db_rules .updraft_retain_rules_delete,#updraft_retain_files_rules .updraft_retain_rules_delete{cursor:pointer;color:red;font-size:120%;font-weight:bold;border:0;border-radius:3px;padding:2px;margin:0 6px;text-decoration:none;display:inline-block}#updraft_retain_db_rules .updraft_retain_rules_delete:hover,#updraft_retain_files_rules .updraft_retain_rules_delete:hover{cursor:pointer;color:white;background:red}#updraft_backup_started{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.blockUI.blockOverlay.ui-widget-overlay{background:#000}.updraft_success_popup{text-align:center;padding-bottom:30px}.updraft_success_popup>.dashicons{font-size:100px;width:100px;height:100px;line-height:100px;padding:0;border-radius:50%;margin-top:30px;display:block;margin-left:auto;margin-right:auto;background:#e2e6e5}.updraft_success_popup>.dashicons.dashicons-yes{text-indent:-5px}.updraft_success_popup.success>.dashicons{color:green}.updraft_success_popup.warning>.dashicons{color:#888}.updraft_success_popup--message{padding:20px}.button.updraft-close-overlay .dashicons{text-decoration:none;font-size:20px;margin-left:-5px;padding:0}.updraft_saving_popup img{animation-name:udp_blink;animation-duration:610ms;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-out}.udp-premium-image{display:none}@media screen and (min-width:720px){.udp-premium-image{display:block;float:left;padding-right:5px}}#plupload-upload-ui2{width:80%}.backup-restored{padding:8px}.backup-restored span{font-size:120%}.memory-limit{padding:8px}.updraft_list_errors{padding:8px}.nav-tab-wrapper{margin:14px 0}#updraft-poplog-content{white-space:pre-wrap}.next-backup{border:0;padding:0;margin:0 10px 0 0}.not-scheduled{vertical-align:top !important;margin:0 !important;padding:0 !important}.next-backup .updraft_scheduled{margin:0;padding:2px 4px 2px 0}#next-backup-table-inner td{vertical-align:top}.updraft_all-files{color:blue}.multisite-advert-width{width:800px}.updraft_settings_sectionheading{margin-top:6px}.show_admin_restore_in_progress_notice{padding:8px}.show_admin_restore_in_progress_notice .unfinished-restoration{font-size:120%}#backupnow_includefiles_moreoptions,#backupnow_database_moreoptions{margin:4px 16px 6px 16px;border:1px dotted;padding:6px 10px}#backupnow_database_moreoptions{max-height:250px;overflow:auto}.form-table #updraft_activejobsrow .minimum-height{min-height:100px}#updraft_activejobsrow th{max-width:112px;margin:0;padding:13px 0 0 0}#updraft_lastlogmessagerow .last-message{padding-top:20px;display:block}.updraft_simplepie{vertical-align:top}.download-backups{margin-top:8px}.download-backups .updraft_download_button{margin-right:6px}.download-backups .ud-whitespace-warning,.download-backups .ud-bom-warning{background-color:pink;padding:8px;margin:4px;border:1px dotted}.download-backups .ul{list-style:none inside;max-width:800px;margin-top:6px;margin-bottom:12px}#updraft-plupload-modal{margin:16px 0}.download-backups .upload{max-width:610px}.download-backups #plupload-upload-ui{width:100%}.ud_downloadstatus{padding:10px 0}#ud_massactions,#updraft-delete-waitwarning{padding:14px;background:#f1f1f1;position:absolute;left:0;top:100%}#ud_massactions>*,#updraft-delete-waitwarning>*{vertical-align:middle}#ud_massactions .updraftplus-remove{display:inline-block;margin-right:0}#ud_massactions .updraftplus-remove a{text-decoration:none}#ud_massactions .updraft-viewlogdiv a{text-decoration:none;position:relative}small.ud_massactions-tip{display:inline-block;opacity:.5;font-style:italic;margin-left:20px}#updraft-navtab-backups-content .updraft_existing_backups{margin-bottom:35px;position:relative}#updraft-message-modal-innards{padding:4px}#updraft-authenticate-modal{text-align:center;font-size:16px !important}#updraft-authenticate-modal p{font-size:16px}#updraft_delete_form p{margin-top:3px;padding-top:0}#updraft_restore_form .cannot-restore{margin:8px 0}#updraft_restorer_dboptions{padding:12px;margin:8px 0 4px 0;border:dashed 1px}#updraft_restorer_dboptions h4{margin:0 0 6px 0;padding:0}.updraft_debugrow th{vertical-align:top;padding-top:6px;max-width:140px}.expertmode p{font-size:125%}.expertmode .call-wp-action{width:300px;height:22px}.updraftplus-lock-advert{clear:left;max-width:600px}.uncompressed-data{clear:left;max-width:600px}.delete-old-directories{padding:8px;padding-bottom:12px}.active-jobs{width:100%;text-align:center;padding:33px}.job-id{margin-top:0;margin-bottom:8px}.next-resumption{font-weight:bold}.updraft_percentage{z-index:-1;position:absolute;left:0;top:0;text-align:center;background-color:#1d8ec2;transition:width .3s}.curstage{z-index:1;border-radius:2px;margin-top:8px;width:100%;height:26px;line-height:26px;position:relative;text-align:center;font-style:italic;color:#FFF;background-color:#b7b7b7;text-shadow:0 1px 2px rgba(0,0,0,0.3)}.curstage-info{display:inline-block;z-index:2}.retain-files{width:48px}.backup-interval-description tr td div{max-width:670px}#updraft-manualdecrypt-modal{width:85%;margin:6px;margin-left:100px}.directory-permissions{font-size:110%;font-weight:bold}.double-warning{border:1px solid;padding:6px}.raw-backup-info{font-style:italic;font-weight:bold;font-size:120%}.updraft_existingbackup_date{width:22%;max-width:140px}.updraft_existing_backups_wrapper{margin-top:20px;border-top:1px solid #DDD}.updraft-no-backups-msg{text-align:center}.tr-bottom-4{margin-bottom:4px}.existing-backups-table th{padding:8px 10px}.form-table .backup-date{width:172px}.form-table .backup-data{width:426px}.form-table .updraft_backup_actions{width:272px}.existing-date{box-sizing:border-box;max-width:140px;width:25%}.line-break-tr{height:2px;padding:1px;margin:0}.line-break-td{margin:0;padding:0}.td-line-color{height:2px;background-color:#888}.raw-backup{max-width:140px}.existing-backups-actions{padding:1px;margin:0}.existing-backups-border{height:2px;padding:1px;margin:0}.existing-backups-border>td{margin:0;padding:0}.existing-backups-border>div{height:2px;background-color:#AAA}.updraft_existing_backup_date{max-width:140px}.updraftplus-upload{margin-right:6px;float:left;clear:none}.before-restore-button{padding:1px;margin:0}.before-restore-button div{float:none;display:inline-block}.table-separator-tr{height:2px;padding:1px;margin:0}.table-separator-td{margin:0;padding:0}.end-of-table-div{height:2px;background-color:#AAA}.last-backup-job{padding-top:3% !important}.line-height-03{line-height:.3 !important}.line-height-13{line-height:1.3 !important}.line-height-23{line-height:2.3 !important}#updraft_diskspaceused{color:#df6926}#updraft_delete_old_dirs_pagediv{padding-bottom:10px}.fix-time{width:70px}.retain-files{width:70px}.number-input{min-width:50px;max-width:70px}.additional-rule-width{min-width:60px;max-width:70px}.dashicons{line-height:inherit;font-size:inherit}.addon-logo-150{margin-left:30px;margin-top:33px;height:125px;width:150px}.margin-bottom-50{margin-bottom:50px}.premium-container{width:80%}.main-header{background-color:#df6926;height:200px;width:100%}.button-add-to-cart{color:white;border-color:white;float:none;margin-right:17px}.button-add-to-cart:hover,.button-add-to-cart:focus,.button-add-to-cart:active{border-color:#a0a5aa;color:#a0a5aa}.addon-title{margin-top:25px}.addon-text{margin-top:75px}.image-main-div{width:25%;float:left}.text-main-div{width:60%;float:left;text-align:center;color:white;margin-top:16px}.text-main-div-title{font-weight:bold !important;color:white;text-align:center}.text-main-div-paragraph{color:white}.updraftplus-vault-cta{width:100%;text-align:center;margin-bottom:50px}.updraftplus-vault-cta h1{font-weight:bold}.updraftvault-buy{width:225px;height:225px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:50px;position:relative}.updraftplus-vault-cta>.vault-options>.center-vault{width:275px;height:275px}.updraftplus-vault-cta>.vault-options>.center-vault>a{right:21%;font-size:16px;border-width:4px !important}.updraftplus-vault-cta>.vault-options>.center-vault>p{font-size:16px}.updraftvault-buy .button-purchase{right:24%;margin-left:0;line-height:1.7em}.updraftvault-buy hr{height:2px;background-color:#777;margin-top:18px}.right{margin-right:0}.updraftvault-buy .addon-logo-100{height:100px;width:125px;margin-top:7px}.updraftvault-buy .addon-logo-large{margin-top:7px}.updraftvault-buy .button-buy-vault{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:29%;bottom:2%}.premium-addon-div .button-purchase{line-height:1.7em}.updraftvault-buy .button-buy-vault:hover{border-color:darkgrey;color:darkgrey}.premium-addons{margin-top:80px;width:100%;margin:0 auto;display:table}.addon-list{display:table;text-align:center}.premium-addons h1{text-align:center;font-weight:bold}.premium-addons p{text-align:center}.premium-addons .premium-addon-div{width:200px;height:250px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:25px;margin-top:25px;text-align:center;position:relative}.premium-addons .premium-addon-div p{margin-left:2px;margin-right:2px}.premium-addons .premium-addon-div img{width:auto;height:50px;margin-top:7px}.premium-addons .premium-addon-div .hr-alignment{margin-top:44px}.premium-addons .premium-addon-div .dropbox-logo{height:39px;width:150px}.premium-addons .premium-addon-div .azure-logo,.premium-addons .premium-addon-div .onedrive-logo{width:75%;height:24px}.button-purchase{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:25%;bottom:2%}.button-purchase:hover{color:darkgrey;border-color:darkgrey}.premium-addons .premium-addon-div hr{height:2px;background-color:#777;margin-top:18px}.premium-addon-div p{font-style:italic}.addon-list>.premium-addon-div>.onedrive-fix,.addon-list>.premium-addon-div>.azure-logo{margin-top:33px}.addon-list>.premium-addon-div>.dropbox-fix{margin-top:18px}.premium-forgotton-something{margin-top:5%}.premium-forgotton-something h1{text-align:center;font-weight:bold}.premium-forgotton-something p{text-align:center;font-weight:normal}.premium-forgotton-something .button-faq{color:#df6926;border-color:#df6926;margin:0 auto;display:table}.premium-forgotton-something .button-faq:hover{color:#777;border-color:#777}.updraftplusmethod.updraftvault #vaultlogo{padding-left:40px}.updraftplusmethod.updraftvault .vault_primary_option{float:left;width:50%;text-align:center;padding-bottom:20px}.updraftplusmethod.updraftvault .vault_primary_option div{clear:right;padding-top:20px}.updraftplusmethod.updraftvault .clear-left{clear:left}.updraftplusmethod.updraftvault .padding-top-20px{padding-top:20px}.updraftplusmethod.updraftvault .padding-top-14px{padding-top:14px}.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary,.updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary{font-size:18px !important;padding-bottom:20px}.updraftplusmethod.updraftvault #updraftvault_showoptions,.updraftplusmethod.updraftvault #updraftvault_connect{margin-top:8px}.updraftplusmethod.updraftvault #updraftvault_settings_connect input{margin-right:10px}.updraftplusmethod.updraftvault #updraftvault_email{width:280px}.updraftplusmethod.updraftvault #updraftvault_pass{width:200px}.updraftplusmethod.updraftvault #vault-is-connected{margin:0;padding:0}.updraftplusmethod.updraftvault #updraftvault_settings_default p{clear:left}.updraftplusmethod.updraftvault .vault-purchase-option{float:left;width:33%;text-align:center;padding-top:20px}.updraftplusmethod.updraftvault .vault-purchase-option-size{font-size:200%;font-weight:bold}.updraftplusmethod.updraftvault .vault-purchase-option-link{clear:both;font-size:150%}.updraftplusmethod.updraftvault .vault-purchase-option-or{clear:both;font-size:115%;font-style:italic}.autobackup-image{clear:left;float:left;width:110px;height:110px}.autobackup-description{width:100%}.advert-description{float:left;clear:right;padding:4px 10px 8px 10px;width:70%;clear:right;vertical-align:top}.advert-btn{display:inline-block;min-width:10%;vertical-align:top;margin-bottom:8px}.advert-btn:first-of-type{margin-top:25px}.advert-btn a{display:block;cursor:pointer}a.btn-get-started{background:#FFF;border:2px solid #df6926;border-radius:4px;color:#df6926;display:inline-block;margin-left:10px !important;margin-bottom:7px !important;font-size:18px !important;line-height:20px;min-height:28px;padding:11px 10px 5px 10px;text-transform:uppercase;text-decoration:none}.circle-dblarrow{border:1px solid #df6926;border-radius:100%;display:inline-block;font-size:17px;line-height:17px;margin-left:5px;width:20px;height:20px;text-align:center}.expertmode .advanced_settings_container{height:auto;overflow:hidden}.expertmode .advanced_settings_container .advanced_settings_menu{float:none;border-bottom:1px solid #ccc}.expertmode .advanced_settings_container .advanced_settings_content{padding-top:5px;float:none;width:auto;overflow:auto}.expertmode .advanced_settings_container .advanced_settings_content h3:first-child{margin-top:5px !important}.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools{display:none}.expertmode .advanced_settings_container .advanced_settings_content .site_info{display:block}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:inline-block;cursor:pointer;padding:5px;color:#000}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text{font-size:16px}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover{background-color:#eaeaea}.expertmode .advanced_settings_container .advanced_settings_menu .active{background-color:#3498db;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_menu .active:hover{background-color:#72c5fd;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_content input#import_settings{height:auto !important}div#updraft-wrap a{cursor:pointer !important}.updraftcentral_wizard_option{width:45%;float:left;text-align:center}.updraftcentral_wizard_option label{margin-bottom:8px}#updraftcentral_keys_table{display:none}.create_key_container{border:1px solid;border-radius:4px;padding:0 0 6px 6px;margin-bottom:8px}.updraftcentral_cloud_connect{border-radius:4px;border:1px solid #000;padding:0 20px;margin-top:30px;background-color:#FFF}.updraftcentral_cloud_error{border:1px solid #000;padding:3px 10px;border-left:3px solid #F00;background-color:#FFF;margin-bottom:10px}.updraftcentral_cloud_info{border:1px solid #000;padding:3px 10px;border-left:3px solid #ef8f31;background-color:#FFF;margin-bottom:10px}.updraftplus_spinner.spinner{padding-left:25px;float:none}.updraftplus_spinner.spinner.visible{visibility:visible}.updraftcentral_cloud_notices .updraftplus_spinner{margin-top:-5px}.updraftcentral-subheading{font-size:14px;margin-top:-10px;margin-bottom:20px}#updraftcentral_cloud_form input#email,#updraftcentral_cloud_form input#password{min-width:250px}.updraftcentral-data-consent{font-size:13px;margin-bottom:10px}.updraftcentral_cloud_wizard_image{float:left;min-width:100px;margin-right:25px}.updraftcentral_cloud_wizard{float:left}.updraftcentral_cloud_clear{clear:both}.updraftplus-settings-footer{margin-top:30px}.updraftplus-top-menu{padding:.5em}#updraft_inpage_backup #updraft_activejobs_table{background:transparent}#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link{float:none}#updraft_inpage_backup #updraft_activejobsrow .updraft_row{-ms-flex-direction:column;flex-direction:column;padding-left:20px;padding-right:20px}#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container{width:100%}#updraft_inpage_backup #updraft_activejobs_table{overflow:inherit}#updraft_inpage_backup span#updraft_lastlogcontainer{padding:18px;background:#fafafa;display:block;font-size:90%;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup div#updraft_activejobsrow{background:#fafafa;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup #updraft_lastlogmessagerow>div{background:transparent;padding:0}#updraft_inpage_backup .last-message>strong{display:block;margin-top:13px}@media only screen and (min-width:1024px){#updraft_activejobsrow .updraft_row{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}#updraft_activejobsrow .updraft_row .updraft_col{-ms-flex:auto;flex:auto}#updraft_activejobsrow .updraft_progress_container{width:calc(100% - 230px)}}@media only screen and (min-width:782px){.settings_page_updraftplus input[type=text],.settings_page_updraftplus input[type=password],.settings_page_updraftplus input[type=number]{line-height:1.42;height:27px;padding:2px 6px;color:#555}.settings_page_updraftplus input[type="number"]{height:31px}#ud_massactions.active,#updraft-delete-waitwarning.active{position:fixed;bottom:0;left:160px;right:0;top:auto;background:#FFF;z-index:3;box-shadow:0 0 10px rgba(0,0,0,0.2)}body.folded #ud_massactions.active,body.folded #updraft-delete-waitwarning.active{left:36px}.updraft-after-form-table{margin-left:250px}}@media only screen and (min-width:782px) and (max-width:960px){body.auto-fold #ud_massactions.active,body.auto-fold #updraft-delete-waitwarning.active{left:36px}}@media only screen and (max-width:782px){#updraft-wrap{margin-right:0}#updraft-wrap .form-table td{padding-right:0}label.updraft_checkbox{margin-bottom:8px;margin-top:8px;margin-left:36px}.updraft_retain_rules{position:relative;margin-right:0;border:1px solid #CCC;padding:5px;margin-bottom:-1px}.updraft_retain_rules_delete{position:absolute;right:0;top:5px}a[id*=updraft_retain_]{display:block;padding:15px 15px 15px 0}label.updraft_checkbox>input[type=checkbox]{margin-left:-33px}#updraft-backupnow-button{margin:0;display:block;width:100%}.updraft_next_scheduled_backups_wrapper>.updraft_backup_btn_wrapper{padding-top:0}#ud_massactions,#updraft-delete-waitwarning{width:100%;box-sizing:border-box;text-align:center}#ud_massactions.active{position:fixed;top:auto;bottom:0;width:100%;box-sizing:border-box;text-align:center;box-shadow:0 -3px 15px rgba(0,0,0,0.08);background:#FFF;z-index:3}#ud_massactions strong{display:block;margin-bottom:5px}small.ud_massactions-tip{display:block}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:normal}.existing-backups-table .backup_date_label .clear-right{display:inline-block}table.widefat.existing-backups-table{border:0;box-shadow:none;background:transparent}.existing-backups-table thead{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;padding:0;margin:0}.existing-backups-table tr{display:block;margin-bottom:.625em;padding-bottom:16.625px;width:100%;padding:0;margin:0;margin-bottom:10px;background:#FFF;box-shadow:0 2px 3px rgba(0,0,0,0.1)}.existing-backups-table td{border-bottom:1px solid #DDD;display:block;font-size:.9em;text-align:left;width:100%;padding:10px;margin:0}.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{content:attr(data-label);font-weight:bold;display:block;position:relative;left:auto;padding-bottom:10px;width:auto;text-align:left}.existing-backups-table td:last-child{border-bottom:0}.form-table td.updraft_existingbackup_date{width:inherit;max-width:100%}.existing-backups-table td.before-restore-button{min-height:36px}.updraft_next_scheduled_backups_wrapper{-ms-flex-direction:column;flex-direction:column}.updraft_next_scheduled_backups_wrapper>div{width:100%}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row{position:relative}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected{background-color:#FFF;border-left:4px solid #0572aa}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select){margin-left:50px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select{width:50px !important;position:absolute;left:0;top:0;box-sizing:border-box;height:100%;z-index:1;border:0;border-right:1px solid rgba(0,0,0,0.05)}#updraft-navtab-backups-content .updraft_existing_backups input[type="checkbox"]{height:25px}.updraft_migrate_intro button.button.button-primary.button-hero{display:block;margin-right:0;width:100%;max-width:100%}.updraftclone-main-row{-ms-flex-direction:column;flex-direction:column}.updraftclone-main-row>div{width:auto;max-width:none;margin-right:0;margin-bottom:10px}.form-table th{padding-bottom:10px}}@media screen and (max-width:600px){.updraft_next_scheduled_entity{float:none;width:100%;margin-bottom:2em}.updraft_time_now_wrapper{margin-top:0}#updraft_lastlogmessagerow h3{margin-bottom:5px}#updraft_lastlogmessagerow .updraft-log-link{display:block;float:none;margin:0;margin-bottom:10px}}@media only screen and (min-width:768px){.addon-activation-notice{left:20em}.existing-backups-table tbody tr:hover{background:#f1f1f1}.existing-backups-table tbody tr td.before-restore-button{position:relative}.form-table .existing-backups-table thead th.check-column{padding-left:6px}.existing-backups-table tr td:first-child{border-left:4px solid transparent}.existing-backups-table tr.backuprowselected td:first-child{border-left-color:#0572aa}}@media screen and (min-width:670px){.expertmode .advanced_settings_container .advanced_settings_menu{float:left;width:215px;border-right:1px solid #ccc;border-bottom:0}.expertmode .advanced_settings_container .advanced_settings_content{padding-left:10px;padding-top:0}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:block}}@media only screen and (max-width:1068px){.updraft-more-plugins .udp-box{width:calc(50% - 10px);margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:100px}}@media only screen and (max-width:600px){.updraft-more-plugins .udp-box{width:100%;margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:auto}table.updraft_feat_table{display:block}table.updraft_feat_table tr{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}table.updraft_feat_table td{display:block}table.updraft_feat_table td:first-child{width:100%;border-bottom:0}table.updraft_feat_table td:not(:first-child){width:50%;box-sizing:border-box}table.updraft_feat_table td:first-child:empty{display:none}td[data-colname]::before{content:attr(data-colname);font-size:.8rem;color:#CCC;line-height:1}}
|
2 |
/*# sourceMappingURL=updraftplus-admin.min.css.map */
|
1 |
+
@keyframes udp_blink{from{opacity:1;transform:scale(1)}to{opacity:.4;transform:scale(0.85)}}.max-width-600{max-width:600px}.width-900{max-width:900px}.width-80{width:80%}.no-decoration{text-decoration:none}.bold{font-weight:bold}.center-align-td{text-align:center}.remove-padding{padding:0 !important}.updraft-text-center{text-align:center}.autobackup{padding:6px;margin:8px 0}ul .disc{list-style:disc inside}.dashicons-log-fix{display:inherit}.udpdraft__lifted{box-shadow:0 1px 1px 0 rgba(0,0,0,.1)}#updraft-wrap a .dashicons{text-decoration:none}.updraft-field-description,table.form-table td p.updraft-field-description{font-size:90%;line-height:1.2;font-style:italic;margin-bottom:5px}label.updraft_checkbox{display:block;margin-bottom:4px;margin-left:26px}label.updraft_checkbox>input[type=checkbox]{margin-left:-25px}div[id*="updraft_include_"]{margin-bottom:9px}.settings_page_updraftplus input[type="file"]{border:0}.settings_page_updraftplus .wipe_settings{padding-bottom:10px}.settings_page_updraftplus input[type="text"]{font-size:14px}.settings_page_updraftplus select{border-radius:4px;max-width:100%}input.updraft_input--wide,textarea.updraft_input--wide{max-width:442px;width:100%}#updraft-wrap .button-large{font-size:1.3em}.main-dashboard-buttons{border-width:4px;border-radius:12px;letter-spacing:0;font-size:17px;font-weight:bold;padding-left:.7em;padding-right:2em;padding:.3em 1em;line-height:1.7em;background:transparent;position:relative;border:2px solid;transition:all .2s;vertical-align:baseline;box-sizing:border-box;text-align:center;line-height:1.3em;margin-left:.3em;text-transform:none;line-height:1;text-decoration:none}.button-restore{border-color:#629ec0;color:#629ec0}.dashboard-main-sizing{border-width:4px;width:190px;line-height:1.7em}p.updraftplus-option{margin-top:0;margin-bottom:5px}p.updraftplus-option-inline{display:inline-block;padding-right:20px}span.updraftplus-option-label{display:block}#updraft-navtab-migrate-content .postbox{padding:18px}.updraftclone-main-row{display:-ms-flexbox;display:flex}.updraftclone-tokens{background:#f5f5f5;padding:20px;border-radius:10px;margin-right:20px;max-width:300px}.updraftclone-tokens p{margin:0}.updraftclone_action_box{background:#f5f5f5;padding:20px;border-radius:10px;-ms-flex:1;flex:1}.updraftclone_action_box p:first-child{margin-top:0}.updraftclone_action_box p:last-child{margin-bottom:0}span.tokens-number{font-size:46px;display:block}.button.updraft_migrate_widget_temporary_clone_show_stage0{display:none;position:absolute;right:0;top:0;height:100%;border-left:1px solid #CCC;padding-left:10px;padding-right:10px}.updraft_migrate_widget_temporary_clone_stage0_container{display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.updraft_migrate_widget_temporary_clone_stage0_box{margin-right:20px;width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:none}@media(min-width:1024px){.updraft_migrate_widget_temporary_clone_stage0_container{-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_migrate_widget_temporary_clone_stage0_box{-ms-flex-preferred-size:45%;flex-basis:45%}.updraft_migrate_widget_temporary_clone_stage0_box iframe,.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js{float:right}}.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons{text-decoration:none;font-size:20px}.opened .button.updraft_migrate_widget_temporary_clone_show_stage0{display:inline-block}.opened .updraft_migrate_widget_temporary_clone_stage0{background:#f5f5f5;padding:20px;border-radius:8px;margin-bottom:21px}.clone-list{clear:both;width:100%;margin-top:40px}.clone-list table{width:100%;text-align:left}.clone-list table tr th{background:#e4e4e4}.clone-list table tr td{background:#f5f5f5;word-break:break-word}.clone-list table tr:nth-child(odd) td{background:#fafafa}.clone-list table td,.clone-list table th{padding:6px}.updraftplus-clone .updraft_row{padding-left:0;padding-right:0}button#updraft_migrate_createclone+.updraftplus_spinner{margin-top:13px}.button.button-hero.updraftclone_show_step_1{white-space:normal;height:auto;line-height:14px;padding-top:10px;padding-bottom:10px}.button.button-hero.updraftclone_show_step_1 span.dashicons{height:auto}.updraftplus_clone_status{color:red}a.updraft_migrate_add_site--trigger span.dashicons{text-decoration:none}.button-restore:hover,.button-migrate:hover,.button-backup:hover,.button-view-log:hover,.button-mass-selectors:hover,.button-delete:hover,.button-entity-backup:hover,.udp-button-primary:hover{border-color:#df6926;color:#df6926}.button-migrate{color:#eea920;border-color:#eea920}#updraft_migrate_tab_main{padding:8px}.updraft_migrate_widget_module_content{background:#FFF;border-radius:0;position:relative}body.js #updraft_migrate .updraft_migrate_widget_module_content{display:none}.updraft_migrate_widget_module_content>h3,div[class*="updraft_migrate_widget_temporary_clone_stage"]>h3{margin-top:0}.updraft_migrate_widget_module_content header{position:relative;display:-ms-flexbox;display:flex;-ms-flex-line-pack:center;align-content:center;-ms-grid-column-align:center;justify-items:center;margin-top:-18px;margin-left:-18px;margin-right:-18px;margin-bottom:15px;border-bottom:1px solid #CCC}.updraft_migrate_widget_module_content header h3,.updraft_migrate_widget_module_content header button.button.close{padding:10px;line-height:20px;height:auto;margin:0}.updraft_migrate_widget_module_content button.button.close{text-decoration:none;padding-left:5px;border-right:1px solid #CCC}.updraft_migrate_widget_module_content button.button.close .dashicons{margin-top:1px}.updraft_migrate_widget_module_content header h3{margin:0}.updraft_migrate_intro button.button.button-primary.button-hero{max-width:235px;word-wrap:normal;white-space:normal;line-height:1;height:auto;padding-top:13px;padding-bottom:13px;text-align:left;position:relative;margin-right:10px;margin-bottom:10px}.updraft_migrate_intro button.button.button-primary.button-hero .dashicons{position:absolute;left:10px;top:calc(50% - 8px)}#updraft_migrate .ui-widget-content a{color:#1c94c4}#updraft-wrap .ui-accordion .ui-accordion-header{background:#f6f6f6;margin:0;border-radius:0;padding-left:.5em;padding-right:.7em}#updraft-wrap .ui-widget{font-family:inherit}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w{background-position:-96px 0}.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s{background-position:-64px 0}#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon{left:auto;right:5px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px rgba(91,157,217,0.22),0 0 2px 1px rgba(30,140,190,0.3);background:#FFF}#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons{color:#0572aa;opacity:1}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active{background:#f6f6f6;border-bottom:2px solid #0572aa;box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3)}#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus{box-shadow:1px 6px 12px -5px rgba(0,0,0,0.3),0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8)}#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child){border-top:0}#updraft-wrap .ui-accordion .ui-accordion-header .dashicons{opacity:.4;margin-right:10px}#updraft-wrap .ui-accordion .ui-accordion-header:focus{outline:0;box-shadow:0 0 0 1px #5b9dd9,0 0 2px 1px rgba(30,140,190,.8);z-index:1}.updraft_next_scheduled_backups_wrapper{display:-ms-flexbox;display:flex;background:#FFF;-ms-grid-column-align:center;justify-items:center;-ms-flex-wrap:wrap;flex-wrap:wrap}.updraft_next_scheduled_backups_wrapper>div{width:50%;background:#FFF;height:auto;padding:33px;box-sizing:border-box}.updraft_backup_btn_wrapper{text-align:center;border-left:1px solid #f1f1f1;-ms-flex-pack:center;justify-content:center;-ms-flex-align:center;align-items:center}.incremental-backups-only{display:none}.incremental-free-only{display:none}.incremental-free-only p{padding:5px;background:rgba(255,0,0,0.06);border:1px solid #bfbfbf}#updraft-delete-waitwarning span.spinner{visibility:visible;float:none;margin:0;margin-right:10px}button#updraft-backupnow-button .spinner,button#updraft-backupnow-button .dashicons-yes{display:none}button#updraft-backupnow-button.loading .spinner{display:inline-block;visibility:visible;margin-top:13px;margin-right:0}button#updraft-backupnow-button.loading{background-color:#efefef;border-color:#CCC;text-shadow:0 -1px 1px #bbc3c7,1px 0 1px #bbc3c7,0 1px 1px #bbc3c7,-1px 0 1px #bbc3c7;box-shadow:none}button#updraft-backupnow-button.finished .dashicons-yes{display:inline-block;visibility:visible;font-size:42px;margin-right:0;margin-top:2px}.updraft_next_scheduled_entity{width:50%;display:inline-block;float:left}.updraft_next_scheduled_entity .dashicons{color:#CCC;font-size:20px}.updraft_next_scheduled_entity strong{font-size:20px}.updraft_next_scheduled_heading{margin-bottom:10px}.updraft_next_scheduled_date_time{color:#46a84b}.updraft_time_now_wrapper{margin-top:68px;width:100%}.updraft_time_now_label,.updraft_time_now{display:inline-block;padding:7px}.updraft_time_now_label{background:#b7b7b7;border-top-left-radius:4px;border-bottom-left-radius:4px;color:#FFF;margin-right:0;text-shadow:0 1px 2px rgba(0,0,0,0.4)}.updraft_time_now{background:#f1f1f1;border-top-right-radius:4px;border-bottom-right-radius:4px;margin-left:-3px}#updraft_lastlogmessagerow{margin:6px 0}#updraft_lastlogmessagerow{clear:both;padding:.25px 0}#updraft_lastlogmessagerow .updraft-log-link{float:right;margin-top:-2.5em;margin-right:2px}#updraft_lastlogmessagerow>div{clear:both;background:#FFF;padding:18px}#updraft_activejobs_table{overflow:hidden;width:100%;background:#fafafa;padding:0}.updraft_requeststart{padding:15px 33px;text-align:center}.updraft_requeststart .spinner{visibility:visible;float:none;vertical-align:middle;margin-top:-2px}a.updraft_jobinfo_delete.disabled{opacity:.4;color:inherit;text-decoration:none}.updraft_row{clear:both;transition:.3s all;padding:15px 33px}.updraft_row.deleting{opacity:.4}.updraft_existing_backups_count{padding:2px 8px;font-size:12px;background:#ca4a1e;color:#FFF;font-weight:bold;border-radius:10px}.form-table .existing-backups-table input[type="checkbox"]{border-radius:0}.form-table .existing-backups-table .check-column{width:40px;padding:0;padding-top:8px}.existing-backups-buttons{font-size:11px;line-height:1.4em;border-width:3px}.existing-backups-restore-buttons{font-size:11px;line-height:1.4em;border-width:3px}.button-delete{color:#e23900;border-color:#e23900;font-size:14px;line-height:1.4em;border-width:2px;margin-right:10px}.button-view-log,.button-mass-selectors{color:darkgrey;border-color:darkgrey;font-size:14px;line-height:1.4em;border-width:2px;margin-top:-1px}.button-view-log{width:120px}.button-existing-restore{font-size:14px;line-height:1.4em;border-width:2px;width:110px}.main-restore{margin-right:3%;margin-left:3%}.button-entity-backup{color:#555;border-color:#555;font-size:11px;line-height:1.4em;border-width:2px;margin-right:5px}.button-select-all{width:122px}.button-deselect{width:92px}#ud_massactions>.display-flex>.mass-selectors-margins,#updraft-delete-waitwarning>.display-flex>.mass-selectors-margins{margin-right:-4px}.udp-button-primary{border-width:4px;color:#0073aa;border-color:#0073aa;font-size:14px;height:40px}#ud_massactions .button-delete{margin-right:0}.stored_local{border-radius:5px;background-color:#007fe7;padding:3px 5px 5px 5px;color:#FFF;font-size:75%}span#updraft_lastlogcontainer{word-break:break-all}.stored_icon{height:1.3em;position:relative;top:.2em}.backup_date_label>*{vertical-align:middle}.backup_date_label .dashicons{font-size:18px}.backup_date_label .clear-right{clear:right}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:bold}.udp-logo-70{width:70px;height:70px;float:left;padding-right:25px}h3 .thank-you{margin-top:0}.ws_advert{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.dismiss-dash-notice{float:right;position:relative;top:-20px}.updraft_exclude_container,.updraft_include_container{margin-left:24px;margin-top:5px;margin-bottom:10px;padding:15px;border:1px solid #DDD}label.updraft-exclude-label{font-weight:500;margin-bottom:5px;display:block}.updraft_add_exclude_item,#updraft_include_more_paths_another{display:inline-block;margin-top:10px}input.updraft_exclude_entity_field,.form-table td input.updraft_exclude_entity_field,.updraftplus-morefiles-row input[type=text]{width:calc(100% - 70px);max-width:400px}@media screen and (max-width:782px){.form-table td input.updraft_exclude_entity_field,.form-table td .updraftplus-morefiles-row input[type=text]{display:inline-block}}.updraft_exclude_entity_delete.dashicons,.updraft_exclude_entity_edit.dashicons,.updraft_exclude_entity_update.dashicons,.updraftplus-morefiles-row a.dashicons{margin-top:2px;font-size:20px;box-shadow:none;line-height:1;padding:3px;margin-right:4px}.updraft_exclude_entity_delete,.updraft_exclude_entity_delete:hover,.updraftplus-morefiles-row-delete{color:#ff6347}.updraft_exclude_entity_update.dashicons,.updraft_exclude_entity_update.dashicons:hover{color:#008000;font-weight:bold;font-size:22px;margin-left:4px}.updraft_exclude_entity_edit{margin-left:4px}.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete{display:none}.updraft-exclude-panel-heading{margin-bottom:8px}.updraft-exclude-panel-heading h3{margin:.5em 0 .5em 0}.updraft-exclude-submit.button-primary{margin-top:5px}.updraft_exclude_actions_list{font-weight:bold}.updraft-exclude-link{cursor:pointer}#updraft_include_more_options{padding-left:25px}#updraft_report_cell .updraft_reportbox,.updraft_small_box{padding:12px;margin:8px 0;border:1px solid #CCC;position:relative}#updraft_report_cell button.updraft_reportbox_delete,.updraft_box_delete_button,.updraft_small_box .updraft_box_delete_button{padding:4px;padding-top:6px;border:0;background:transparent;position:absolute;top:4px;right:4px;cursor:pointer}#updraft_report_cell button.updraft_reportbox_delete:hover{color:#de3c3c}a.updraft_report_another .dashicons{text-decoration:none;margin-top:2px}.updraft_report_dbbackup.updraft_report_disabled{color:#CCC}#updraft-navtab-settings-content .updraft-test-button{font-size:18px !important}#updraft_report_cell .updraft_report_email{display:block;width:calc(100% - 50px);margin-bottom:9px}#updraft_report_cell .updraft_report_another_p{clear:left}#updraft-navtab-settings-content table.form-table p{max-width:700px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td{background-color:#efefef}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td{background-color:#e8e8e8}.updraft_settings_sectionheading{display:none}.updraft-backupentitybutton-disabled{background-color:transparent;border:0;color:#0074a2;text-decoration:underline;cursor:pointer;clear:none;float:left}.updraft-backupentitybutton{margin-left:8px}.updraft-bigbutton{padding:2px 0 !important;margin-right:14px !important;font-size:22px !important;min-height:32px;min-width:180px}tr[class*="_updraft_remote_storage_border"]{border-top:1px solid #CCC}.updraft_multi_storage_options{float:right;clear:right;margin-bottom:5px !important}.updraft_toggle_instance_label{vertical-align:top !important}.updraft_debugrow th{float:right;text-align:right;font-weight:bold;padding-right:8px;min-width:140px}.updraft_debugrow td{min-width:300px;vertical-align:bottom}#updraft_webdav_host_error,.onedrive_folder_error{color:red}.updraft_jstree .jstree-container-ul>.jstree-node,#updraft_more_files_jstree .jstree-container-ul>.jstree-node{background:transparent}.updraft_jstree .jstree-container-ul>.jstree-open>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-open>.jstree-ocl{background-position:-36px -4px}.updraft_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-closed>.jstree-ocl{background-position:-4px -4px}.updraft_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl,#updraft_more_files_jstree .jstree-container-ul>.jstree-leaf>.jstree-ocl{background:transparent}#updraft_zip_files_container{position:relative;height:450px;overflow:none}.updraft_jstree_info_container{position:relative;height:auto;width:100%;border:1px dotted;margin-bottom:5px}.updraft_jstree_info_container p{margin:1px;padding-left:10px;font-size:14px}#updraft_zip_download_item{display:none;color:#0073aa;padding-left:10px}#updraft_zip_download_notice{padding-left:10px}#updraft_exclude_files_folders_jstree{max-height:200px;overflow-y:scroll}.updraft_jstree{position:relative;border:1px dotted;height:80%;width:100%;overflow:auto}#updraft_more_files_container{position:relative;display:none;width:100%;border:1px solid #CCC;background:#fafafa;margin-bottom:5px;margin-top:4px;box-shadow:0 5px 8px rgba(0,0,0,0.1)}div#updraft_more_files_container::before{content:' ';width:11px;height:11px;display:block;background:#fafafa;position:absolute;top:0;left:20px;border-top:1px solid #CCC;border-left:1px solid #CCC;transform:translatey(-7px) rotate(45deg)}input.updraft_more_path_editing{border-color:#0285ba}input.updraft_more_path_editing ~ a.dashicons{display:none}#updraft_jstree_buttons{padding:10px;background:#e6e6e6}#updraft_jstree_container{height:300px;width:100%;overflow:auto}#updraft_more_files_container button{line-height:20px}#updraft_parent_directory{margin:10px 10px 4px 10px;padding-left:3px}#updraft_jstree_confirm,#updraft_jstree_cancel{display:none}.updraftplus-morefiles-row-delete,.updraftplus-morefiles-row-edit{cursor:pointer}#updraft-wrap .form-table th{width:230px}#updraft-wrap .form-table .existing-backups-table th{width:auto}.updraft-viewlogdiv form{margin:0;padding:0}.updraft-viewlogdiv{display:inline-block}.updraft-viewlogdiv input,.updraft-viewlogdiv a{border:0;background-color:transparent;color:#000;margin:0;padding:3px 4px;font-size:16px;line-height:26px}.updraft-viewlogdiv input:hover,.updraft-viewlogdiv a:hover{color:#FFF;cursor:pointer}.button.button-remove{color:white;background-color:#de3c3c;border-color:#c00000;box-shadow:0 1px 0 #c10100}.button.button-remove:hover,.button.button-remove:focus{border-color:#C00;color:#FFF;background:#C00}body.admin-color-midnight .button.button-remove{color:#de3c3c;background-color:#f7f7f7;border-color:#CCC;box-shadow:0 1px 0 #CCC}body.admin-color-midnight .button.button-remove:hover,body.admin-color-midnight .button.button-remove:focus{border-color:#ba281f}body.admin-color-midnight .button.button-remove:focus{box-shadow:inherit;box-shadow:0 0 3px rgba(0,115,170,0.8)}.drag-drop #drag-drop-area2{border:4px dashed #DDD;height:200px}#drag-drop-area2 .drag-drop-inside{margin:36px auto 0;width:350px}#filelist,#filelist2{width:100%}#filelist .file,#filelist2 .file,.ud_downloadstatus .file,#ud_downloadstatus2 .file{padding:1px;background:#ececec;border:solid 1px #CCC;margin:4px 0}.updraft_premium section{margin-bottom:20px}.updraft_premium_cta{background:#FFF;margin-top:30px;padding:0;border-left:4px solid #db6a03}.updraft_premium_cta a{font-weight:normal}.updraft_premium_cta a.button.button-primary.button-hero{font-size:1.3em;letter-spacing:.03rem;text-transform:uppercase}.updraft_premium_cta__top{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;padding:18px 30px}.updraft_premium_cta__bottom{background:#f9f9f9;padding:5px 30px}.updraft_premium_cta__summary{margin-right:60px}.updraft_premium_cta h2{font-size:28px;font-weight:200;line-height:1;margin:0;margin-bottom:5px;letter-spacing:.05rem;color:#db6a03}.updraft_premium_cta ul li::after{color:#CCC}@media only screen and (max-width:768px){.updraft_premium_cta__top{-ms-flex-direction:column;flex-direction:column;text-align:center;-ms-flex-align:center;align-items:center}.updraft_premium_cta__summary{margin-right:0;margin-bottom:30px}}.udp-box{background:#FFF;padding:20px;box-shadow:0 1px 2px rgba(0,0,0,0.1);text-align:center}.udp-box h3{margin:0}.udp-box__heading{-ms-flex-item-align:center;-ms-grid-row-align:center;align-self:center;background:0;box-shadow:none}.updraft-more-plugins{display:-ms-flexbox;display:flex;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-pack:justify;justify-content:space-between;flex-wrap:wrap}.updraft-more-plugins img{max-width:200px;width:100%;display:inline-block}.updraft-more-plugins .udp-box{box-sizing:border-box;width:24%}.updraft-more-plugins .udp-box p:last-child{margin-bottom:0;padding-bottom:0}.updraft_premium_description_list{text-align:left;margin:0;font-size:12px}ul.updraft_premium_description_list,ul#updraft_restore_warnings{list-style:disc inside}ul.updraft_premium_description_list li{display:inline}ul.updraft_premium_description_list li::after{content:" | "}ul.updraft_premium_description_list li:last-child::after{content:""}.updraft_feature_cell{background-color:#f7d9c9 !important;padding:5px 10px}.updraftplus_com_login_status,.updraftplus_com_key_status{display:none;border-left-color:#dc3232 !important;background:#FFF;border-left:4px solid #FFF;box-shadow:0 1px 1px 0 rgba(0,0,0,.1);margin:5px 0 15px 0;padding:5px 12px}.updraft_feat_table{border:0;border-collapse:collapse;font-size:120%;background-color:white;text-align:center}.updraft_feat_th,.updraft_feat_table td{border:1px solid #f1f1f1;border-collapse:collapse;font-size:120%;background-color:white;text-align:center;padding:15px}.updraft_feat_table td{border-bottom-width:4px}.updraft_feat_table td:first-child{border-left:0}.updraft_feat_table td:last-child{border-right:0}.updraft_feat_table tr:last-child td{border-bottom:0}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){background-color:rgba(241,241,241,0.38);width:190px}.updraft_feat_table__header td img{display:block;margin:0 auto}.updraft_feat_table__header td{text-align:center}.updraft_feat_table .installed{font-size:14px}.updraft_feat_table p{padding:0 10px;margin:5px 0;font-size:13px}.updraft_feat_table h4{margin:5px 0}.updraft_feat_table .dashicons{width:25px;height:25px;font-size:25px;line-height:1}.updraft_feat_table .dashicons-yes,.updraft_feat_table .updraft-yes{color:green}.updraft_feat_table .dashicons-no-alt,.updraft_feat_table .updraft-no{color:red}.updraft_tick_cell{text-align:center}.updraft_tick_cell img{margin:4px 0;height:24px}.ud_downloadstatus__close{border:0;background:transparent;width:auto;font-size:20px;padding:0;cursor:pointer}#filelist .fileprogress,#filelist2 .fileprogress,.ud_downloadstatus .dlfileprogress,#ud_downloadstatus2 .dlfileprogress{width:0;background:#0572aa;height:8px}.ud_downloadstatus .raw,#ud_downloadstatus2 .raw{margin-top:8px;clear:left}.ud_downloadstatus .file,#ud_downloadstatus2 .file{margin-top:8px}div[class^="updraftplus_downloader_container_"]{padding:10px}tr.updraftplusmethod h3{margin:0}tr.updraftplusmethod img{max-width:100%}#updraft_retain_db_rules .updraft_retain_rules_delete,#updraft_retain_files_rules .updraft_retain_rules_delete{cursor:pointer;color:red;font-size:120%;font-weight:bold;border:0;border-radius:3px;padding:2px;margin:0 6px;text-decoration:none;display:inline-block}#updraft_retain_db_rules .updraft_retain_rules_delete:hover,#updraft_retain_files_rules .updraft_retain_rules_delete:hover{cursor:pointer;color:white;background:red}#updraft_backup_started{max-width:800px;font-size:140%;line-height:140%;padding:14px;clear:left}.blockUI.blockOverlay.ui-widget-overlay{background:#000}.updraft_success_popup{text-align:center;padding-bottom:30px}.updraft_success_popup>.dashicons{font-size:100px;width:100px;height:100px;line-height:100px;padding:0;border-radius:50%;margin-top:30px;display:block;margin-left:auto;margin-right:auto;background:#e2e6e5}.updraft_success_popup>.dashicons.dashicons-yes{text-indent:-5px}.updraft_success_popup.success>.dashicons{color:green}.updraft_success_popup.warning>.dashicons{color:#888}.updraft_success_popup--message{padding:20px}.button.updraft-close-overlay .dashicons{text-decoration:none;font-size:20px;margin-left:-5px;padding:0}.updraft_saving_popup img{animation-name:udp_blink;animation-duration:610ms;animation-iteration-count:infinite;animation-direction:alternate;animation-timing-function:ease-out}.udp-premium-image{display:none}@media screen and (min-width:720px){.udp-premium-image{display:block;float:left;padding-right:5px}}#plupload-upload-ui2{width:80%}.backup-restored{padding:8px}.backup-restored span{font-size:120%}.memory-limit{padding:8px}.updraft_list_errors{padding:8px}.nav-tab-wrapper{margin:14px 0}#updraft-poplog-content{white-space:pre-wrap}.next-backup{border:0;padding:0;margin:0 10px 0 0}.not-scheduled{vertical-align:top !important;margin:0 !important;padding:0 !important}.next-backup .updraft_scheduled{margin:0;padding:2px 4px 2px 0}#next-backup-table-inner td{vertical-align:top}.updraft_all-files{color:blue}.multisite-advert-width{width:800px}.updraft_settings_sectionheading{margin-top:6px}.show_admin_restore_in_progress_notice{padding:8px}.show_admin_restore_in_progress_notice .unfinished-restoration{font-size:120%}#backupnow_includefiles_moreoptions,#backupnow_database_moreoptions{margin:4px 16px 6px 16px;border:1px dotted;padding:6px 10px}#backupnow_database_moreoptions{max-height:250px;overflow:auto}.form-table #updraft_activejobsrow .minimum-height{min-height:100px}#updraft_activejobsrow th{max-width:112px;margin:0;padding:13px 0 0 0}#updraft_lastlogmessagerow .last-message{padding-top:20px;display:block}.updraft_simplepie{vertical-align:top}.download-backups{margin-top:8px}.download-backups .updraft_download_button{margin-right:6px}.download-backups .ud-whitespace-warning,.download-backups .ud-bom-warning{background-color:pink;padding:8px;margin:4px;border:1px dotted}.download-backups .ul{list-style:none inside;max-width:800px;margin-top:6px;margin-bottom:12px}#updraft-plupload-modal{margin:16px 0}.download-backups .upload{max-width:610px}.download-backups #plupload-upload-ui{width:100%}.ud_downloadstatus{padding:10px 0}#ud_massactions,#updraft-delete-waitwarning{padding:14px;background:#f1f1f1;position:absolute;left:0;top:100%}#ud_massactions>*,#updraft-delete-waitwarning>*{vertical-align:middle}#ud_massactions .updraftplus-remove{display:inline-block;margin-right:0}#ud_massactions .updraftplus-remove a{text-decoration:none}#ud_massactions .updraft-viewlogdiv a{text-decoration:none;position:relative}small.ud_massactions-tip{display:inline-block;opacity:.5;font-style:italic;margin-left:20px}#updraft-navtab-backups-content .updraft_existing_backups{margin-bottom:35px;position:relative}#updraft-message-modal-innards{padding:4px}#updraft-authenticate-modal{text-align:center;font-size:16px !important}#updraft-authenticate-modal p{font-size:16px}#updraft_delete_form p{margin-top:3px;padding-top:0}#updraft_restore_form .cannot-restore{margin:8px 0}#updraft_restorer_dboptions{padding:12px;margin:8px 0 4px 0;border:dashed 1px}#updraft_restorer_dboptions h4{margin:0 0 6px 0;padding:0}.updraft_debugrow th{vertical-align:top;padding-top:6px;max-width:140px}.expertmode p{font-size:125%}.expertmode .call-wp-action{width:300px;height:22px}.updraftplus-lock-advert{clear:left;max-width:600px}.uncompressed-data{clear:left;max-width:600px}.delete-old-directories{padding:8px;padding-bottom:12px}.active-jobs{width:100%;text-align:center;padding:33px}.job-id{margin-top:0;margin-bottom:8px}.next-resumption{font-weight:bold}.updraft_percentage{z-index:-1;position:absolute;left:0;top:0;text-align:center;background-color:#1d8ec2;transition:width .3s}.curstage{z-index:1;border-radius:2px;margin-top:8px;width:100%;height:26px;line-height:26px;position:relative;text-align:center;font-style:italic;color:#FFF;background-color:#b7b7b7;text-shadow:0 1px 2px rgba(0,0,0,0.3)}.curstage-info{display:inline-block;z-index:2}.retain-files{width:48px}.backup-interval-description tr td div{max-width:670px}#updraft-manualdecrypt-modal{width:85%;margin:6px;margin-left:100px}.directory-permissions{font-size:110%;font-weight:bold}.double-warning{border:1px solid;padding:6px}.raw-backup-info{font-style:italic;font-weight:bold;font-size:120%}.updraft_existingbackup_date{width:22%;max-width:140px}.updraft_existing_backups_wrapper{margin-top:20px;border-top:1px solid #DDD}.updraft-no-backups-msg{text-align:center}.tr-bottom-4{margin-bottom:4px}.existing-backups-table th{padding:8px 10px}.form-table .backup-date{width:172px}.form-table .backup-data{width:426px}.form-table .updraft_backup_actions{width:272px}.existing-date{box-sizing:border-box;max-width:140px;width:25%}.line-break-tr{height:2px;padding:1px;margin:0}.line-break-td{margin:0;padding:0}.td-line-color{height:2px;background-color:#888}.raw-backup{max-width:140px}.existing-backups-actions{padding:1px;margin:0}.existing-backups-border{height:2px;padding:1px;margin:0}.existing-backups-border>td{margin:0;padding:0}.existing-backups-border>div{height:2px;background-color:#AAA}.updraft_existing_backup_date{max-width:140px}.updraftplus-upload{margin-right:6px;float:left;clear:none}.before-restore-button{padding:1px;margin:0}.before-restore-button div{float:none;display:inline-block}.table-separator-tr{height:2px;padding:1px;margin:0}.table-separator-td{margin:0;padding:0}.end-of-table-div{height:2px;background-color:#AAA}.last-backup-job{padding-top:3% !important}.line-height-03{line-height:.3 !important}.line-height-13{line-height:1.3 !important}.line-height-23{line-height:2.3 !important}#updraft_diskspaceused{color:#df6926}#updraft_delete_old_dirs_pagediv{padding-bottom:10px}.fix-time{width:70px}.retain-files{width:70px}.number-input{min-width:50px;max-width:70px}.additional-rule-width{min-width:60px;max-width:70px}#updraft-wrap .dashicons.dashicons-adapt-size{line-height:inherit;font-size:inherit}#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size){vertical-align:middle;margin-top:-3px}.addon-logo-150{margin-left:30px;margin-top:33px;height:125px;width:150px}.margin-bottom-50{margin-bottom:50px}.premium-container{width:80%}.main-header{background-color:#df6926;height:200px;width:100%}.button-add-to-cart{color:white;border-color:white;float:none;margin-right:17px}.button-add-to-cart:hover,.button-add-to-cart:focus,.button-add-to-cart:active{border-color:#a0a5aa;color:#a0a5aa}.addon-title{margin-top:25px}.addon-text{margin-top:75px}.image-main-div{width:25%;float:left}.text-main-div{width:60%;float:left;text-align:center;color:white;margin-top:16px}.text-main-div-title{font-weight:bold !important;color:white;text-align:center}.text-main-div-paragraph{color:white}.updraftplus-vault-cta{width:100%;text-align:center;margin-bottom:50px}.updraftplus-vault-cta h1{font-weight:bold}.updraftvault-buy{width:225px;height:225px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:50px;position:relative}.updraftplus-vault-cta>.vault-options>.center-vault{width:275px;height:275px}.updraftplus-vault-cta>.vault-options>.center-vault>a{right:21%;font-size:16px;border-width:4px !important}.updraftplus-vault-cta>.vault-options>.center-vault>p{font-size:16px}.updraftvault-buy .button-purchase{right:24%;margin-left:0;line-height:1.7em}.updraftvault-buy hr{height:2px;background-color:#777;margin-top:18px}.right{margin-right:0}.updraftvault-buy .addon-logo-100{height:100px;width:125px;margin-top:7px}.updraftvault-buy .addon-logo-large{margin-top:7px}.updraftvault-buy .button-buy-vault{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:29%;bottom:2%}.premium-addon-div .button-purchase{line-height:1.7em}.updraftvault-buy .button-buy-vault:hover{border-color:darkgrey;color:darkgrey}.premium-addons{margin-top:80px;width:100%;margin:0 auto;display:table}.addon-list{display:table;text-align:center}.premium-addons h1{text-align:center;font-weight:bold}.premium-addons p{text-align:center}.premium-addons .premium-addon-div{width:200px;height:250px;border:2px solid #777;display:inline-table;margin:0 auto;margin-right:25px;margin-top:25px;text-align:center;position:relative}.premium-addons .premium-addon-div p{margin-left:2px;margin-right:2px}.premium-addons .premium-addon-div img{width:auto;height:50px;margin-top:7px}.premium-addons .premium-addon-div .hr-alignment{margin-top:44px}.premium-addons .premium-addon-div .dropbox-logo{height:39px;width:150px}.premium-addons .premium-addon-div .azure-logo,.premium-addons .premium-addon-div .onedrive-logo{width:75%;height:24px}.button-purchase{font-size:12px;color:#df6926;border-color:#df6926;border-width:2px !important;position:absolute;right:25%;bottom:2%}.button-purchase:hover{color:darkgrey;border-color:darkgrey}.premium-addons .premium-addon-div hr{height:2px;background-color:#777;margin-top:18px}.premium-addon-div p{font-style:italic}.addon-list>.premium-addon-div>.onedrive-fix,.addon-list>.premium-addon-div>.azure-logo{margin-top:33px}.addon-list>.premium-addon-div>.dropbox-fix{margin-top:18px}.premium-forgotton-something{margin-top:5%}.premium-forgotton-something h1{text-align:center;font-weight:bold}.premium-forgotton-something p{text-align:center;font-weight:normal}.premium-forgotton-something .button-faq{color:#df6926;border-color:#df6926;margin:0 auto;display:table}.premium-forgotton-something .button-faq:hover{color:#777;border-color:#777}.updraftplusmethod.updraftvault #vaultlogo{padding-left:40px}.updraftplusmethod.updraftvault .vault_primary_option{float:left;width:50%;text-align:center;padding-bottom:20px}.updraftplusmethod.updraftvault .vault_primary_option div{clear:right;padding-top:20px}.updraftplusmethod.updraftvault .clear-left{clear:left}.updraftplusmethod.updraftvault .padding-top-20px{padding-top:20px}.updraftplusmethod.updraftvault .padding-top-14px{padding-top:14px}.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary,.updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary{font-size:18px !important;padding-bottom:20px}.updraftplusmethod.updraftvault #updraftvault_showoptions,.updraftplusmethod.updraftvault #updraftvault_connect{margin-top:8px}.updraftplusmethod.updraftvault #updraftvault_settings_connect input{margin-right:10px}.updraftplusmethod.updraftvault #updraftvault_email{width:280px}.updraftplusmethod.updraftvault #updraftvault_pass{width:200px}.updraftplusmethod.updraftvault #vault-is-connected{margin:0;padding:0}.updraftplusmethod.updraftvault #updraftvault_settings_default p{clear:left}.updraftplusmethod.updraftvault .vault-purchase-option{float:left;width:33%;text-align:center;padding-top:20px}.updraftplusmethod.updraftvault .vault-purchase-option-size{font-size:200%;font-weight:bold}.updraftplusmethod.updraftvault .vault-purchase-option-link{clear:both;font-size:150%}.updraftplusmethod.updraftvault .vault-purchase-option-or{clear:both;font-size:115%;font-style:italic}.autobackup-image{clear:left;float:left;width:110px;height:110px}.autobackup-description{width:100%}.advert-description{float:left;clear:right;padding:4px 10px 8px 10px;width:70%;clear:right;vertical-align:top}.advert-btn{display:inline-block;min-width:10%;vertical-align:top;margin-bottom:8px}.advert-btn:first-of-type{margin-top:25px}.advert-btn a{display:block;cursor:pointer}a.btn-get-started{background:#FFF;border:2px solid #df6926;border-radius:4px;color:#df6926;display:inline-block;margin-left:10px !important;margin-bottom:7px !important;font-size:18px !important;line-height:20px;min-height:28px;padding:11px 10px 5px 10px;text-transform:uppercase;text-decoration:none}.circle-dblarrow{border:1px solid #df6926;border-radius:100%;display:inline-block;font-size:17px;line-height:17px;margin-left:5px;width:20px;height:20px;text-align:center}.expertmode .advanced_settings_container{height:auto;overflow:hidden}.expertmode .advanced_settings_container .advanced_settings_menu{float:none;border-bottom:1px solid #ccc}.expertmode .advanced_settings_container .advanced_settings_content{padding-top:5px;float:none;width:auto;overflow:auto}.expertmode .advanced_settings_container .advanced_settings_content h3:first-child{margin-top:5px !important}.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools{display:none}.expertmode .advanced_settings_container .advanced_settings_content .site_info{display:block}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:inline-block;cursor:pointer;padding:5px;color:#000}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text{font-size:16px}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover{background-color:#eaeaea}.expertmode .advanced_settings_container .advanced_settings_menu .active{background-color:#3498db;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_menu .active:hover{background-color:#72c5fd;color:#FFF}.expertmode .advanced_settings_container .advanced_settings_content input#import_settings{height:auto !important}div#updraft-wrap a{cursor:pointer !important}.updraftcentral_wizard_option{width:45%;float:left;text-align:center}.updraftcentral_wizard_option label{margin-bottom:8px}#updraftcentral_keys_table{display:none}.create_key_container{border:1px solid;border-radius:4px;padding:0 0 6px 6px;margin-bottom:8px}.updraftcentral_cloud_connect{border-radius:4px;border:1px solid #000;padding:0 20px;margin-top:30px;background-color:#FFF}.updraftcentral_cloud_error{border:1px solid #000;padding:3px 10px;border-left:3px solid #F00;background-color:#FFF;margin-bottom:10px}.updraftcentral_cloud_info{border:1px solid #000;padding:3px 10px;border-left:3px solid #ef8f31;background-color:#FFF;margin-bottom:10px}.updraftplus_spinner.spinner{padding-left:25px;float:none}.updraftplus_spinner.spinner.visible{visibility:visible}.updraftcentral_cloud_notices .updraftplus_spinner{margin-top:-5px}.updraftcentral-subheading{font-size:14px;margin-top:-10px;margin-bottom:20px}#updraftcentral_cloud_form input#email,#updraftcentral_cloud_form input#password{min-width:250px}.updraftcentral-data-consent{font-size:13px;margin-bottom:10px}.updraftcentral_cloud_wizard_image{float:left;min-width:100px;margin-right:25px}.updraftcentral_cloud_wizard{float:left}.updraftcentral_cloud_clear{clear:both}.updraftplus-settings-footer{margin-top:30px}.updraftplus-top-menu{padding:.5em}#updraft_inpage_backup #updraft_activejobs_table{background:transparent}#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link{float:none}#updraft_inpage_backup #updraft_activejobsrow .updraft_row{-ms-flex-direction:column;flex-direction:column;padding-left:20px;padding-right:20px}#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container{width:100%}#updraft_inpage_backup #updraft_activejobs_table{overflow:inherit}#updraft_inpage_backup span#updraft_lastlogcontainer{padding:18px;background:#fafafa;display:block;font-size:90%;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup div#updraft_activejobsrow{background:#fafafa;box-shadow:0 1px 2px rgba(0,0,0,0.1)}#updraft_inpage_backup #updraft_lastlogmessagerow>div{background:transparent;padding:0}#updraft_inpage_backup .last-message>strong{display:block;margin-top:13px}@media only screen and (min-width:1024px){#updraft_activejobsrow .updraft_row{display:-ms-flexbox;display:flex;-ms-flex-align:baseline;align-items:baseline}#updraft_activejobsrow .updraft_row .updraft_col{-ms-flex:auto;flex:auto}#updraft_activejobsrow .updraft_progress_container{width:calc(100% - 230px)}}@media only screen and (min-width:782px){.settings_page_updraftplus input[type=text],.settings_page_updraftplus input[type=password],.settings_page_updraftplus input[type=number]{line-height:1.42;height:27px;padding:2px 6px;color:#555}.settings_page_updraftplus input[type="number"]{height:31px}#ud_massactions.active,#updraft-delete-waitwarning.active{position:fixed;bottom:0;left:160px;right:0;top:auto;background:#FFF;z-index:3;box-shadow:0 0 10px rgba(0,0,0,0.2)}body.folded #ud_massactions.active,body.folded #updraft-delete-waitwarning.active{left:36px}.updraft-after-form-table{margin-left:250px}}@media only screen and (min-width:782px) and (max-width:960px){body.auto-fold #ud_massactions.active,body.auto-fold #updraft-delete-waitwarning.active{left:36px}}@media only screen and (max-width:782px){#updraft-wrap{margin-right:0}#updraft-wrap .form-table td{padding-right:0}label.updraft_checkbox{margin-bottom:8px;margin-top:8px;margin-left:36px}.updraft_retain_rules{position:relative;margin-right:0;border:1px solid #CCC;padding:5px;margin-bottom:-1px}.updraft_retain_rules_delete{position:absolute;right:0;top:5px}a[id*=updraft_retain_]{display:block;padding:15px 15px 15px 0}label.updraft_checkbox>input[type=checkbox]{margin-left:-33px}#updraft-backupnow-button{margin:0;display:block;width:100%}.updraft_next_scheduled_backups_wrapper>.updraft_backup_btn_wrapper{padding-top:0}#ud_massactions,#updraft-delete-waitwarning{width:100%;box-sizing:border-box;text-align:center}#ud_massactions.active{position:fixed;top:auto;bottom:0;width:100%;box-sizing:border-box;text-align:center;box-shadow:0 -3px 15px rgba(0,0,0,0.08);background:#FFF;z-index:3}#ud_massactions strong{display:block;margin-bottom:5px}small.ud_massactions-tip{display:block}.existing-backups-table .backup_date_label>div,.existing-backups-table .backup_date_label span>div{font-weight:normal}.existing-backups-table .backup_date_label .clear-right{display:inline-block}table.widefat.existing-backups-table{border:0;box-shadow:none;background:transparent}.existing-backups-table thead{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;padding:0;margin:0}.existing-backups-table tr{display:block;margin-bottom:.625em;padding-bottom:16.625px;width:100%;padding:0;margin:0;margin-bottom:10px;background:#FFF;box-shadow:0 2px 3px rgba(0,0,0,0.1)}.existing-backups-table td{border-bottom:1px solid #DDD;display:block;font-size:.9em;text-align:left;width:100%;padding:10px;margin:0}.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before{content:attr(data-label);font-weight:bold;display:block;position:relative;left:auto;padding-bottom:10px;width:auto;text-align:left}.existing-backups-table td:last-child{border-bottom:0}.form-table td.updraft_existingbackup_date{width:inherit;max-width:100%}.existing-backups-table td.before-restore-button{min-height:36px}.updraft_next_scheduled_backups_wrapper{-ms-flex-direction:column;flex-direction:column}.updraft_next_scheduled_backups_wrapper>div{width:100%}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row{position:relative}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected{background-color:#FFF;border-left:4px solid #0572aa}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select){margin-left:50px}#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select{width:50px !important;position:absolute;left:0;top:0;box-sizing:border-box;height:100%;z-index:1;border:0;border-right:1px solid rgba(0,0,0,0.05)}#updraft-navtab-backups-content .updraft_existing_backups input[type="checkbox"]{height:25px}.updraft_migrate_intro button.button.button-primary.button-hero{display:block;margin-right:0;width:100%;max-width:100%}.updraftclone-main-row{-ms-flex-direction:column;flex-direction:column}.updraftclone-main-row>div{width:auto;max-width:none;margin-right:0;margin-bottom:10px}.form-table th{padding-bottom:10px}}@media screen and (max-width:600px){.updraft_next_scheduled_entity{float:none;width:100%;margin-bottom:2em}.updraft_time_now_wrapper{margin-top:0}#updraft_lastlogmessagerow h3{margin-bottom:5px}#updraft_lastlogmessagerow .updraft-log-link{display:block;float:none;margin:0;margin-bottom:10px}}@media only screen and (min-width:768px){.addon-activation-notice{left:20em}.existing-backups-table tbody tr:hover{background:#f1f1f1}.existing-backups-table tbody tr td.before-restore-button{position:relative}.form-table .existing-backups-table thead th.check-column{padding-left:6px}.existing-backups-table tr td:first-child{border-left:4px solid transparent}.existing-backups-table tr.backuprowselected td:first-child{border-left-color:#0572aa}}@media screen and (min-width:670px){.expertmode .advanced_settings_container .advanced_settings_menu{float:left;width:215px;border-right:1px solid #ccc;border-bottom:0}.expertmode .advanced_settings_container .advanced_settings_content{padding-left:10px;padding-top:0}.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button{display:block}}@media only screen and (max-width:1068px){.updraft-more-plugins .udp-box{width:calc(50% - 10px);margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:100px}}@media only screen and (max-width:600px){.updraft-more-plugins .udp-box{width:100%;margin-bottom:20px}.updraft_feat_table td:nth-child(2),.updraft_feat_table td:nth-child(3){width:auto}table.updraft_feat_table{display:block}table.updraft_feat_table tr{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}table.updraft_feat_table td{display:block}table.updraft_feat_table td:first-child{width:100%;border-bottom:0}table.updraft_feat_table td:not(:first-child){width:50%;box-sizing:border-box}table.updraft_feat_table td:first-child:empty{display:none}td[data-colname]::before{content:attr(data-colname);font-size:.8rem;color:#CCC;line-height:1}}
|
2 |
/*# sourceMappingURL=updraftplus-admin.min.css.map */
|
@@ -1 +1 @@
|
|
1 |
-
{"version":3,"sources":["css/updraftplus-admin.css"],"names":[],"mappings":"AAAA;;CAEC;EACC,WAAW;EACX,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb,uBAAuB;EACvB;;CAED;;AAED,uBAAuB;AACvB;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX;;AAED,2BAA2B;;AAE3B,kBAAkB;AAClB;CACC,sBAAsB;CACtB;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;AACtB,eAAe;AACf;CACC,mBAAmB;CACnB;;AAED,sBAAsB;AACtB,aAAa;AACb;CACC,sBAAsB;CACtB;;AAED,oBAAoB;;AAEpB;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,uCAAuC;CACvC;;AAED;CACC,sBAAsB;CACtB;;AAED;;CAEC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,aAAa;CACb;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;;CAEC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED,qBAAqB;;AAErB,kBAAkB;AAClB;CACC,kBAAkB;CAClB,oBAAoB;CACpB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,wBAAwB;CACxB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,yBAAyB;CACzB,uBAAuB;CACvB,mBAAmB;CACnB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,gCAAgC;CAChC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;;EAEE;;AAEF;CACC,cAAc;CACd;;AAED,gBAAgB;;AAEhB;CACC,qBAAc;CAAd,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,UAAU;CACV;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,YAAQ;KAAR,QAAQ;CACR;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED,yBAAyB;AACzB;CACC,cAAc;CACd,mBAAmB;CACnB,SAAS;CACT,OAAO;CACP,aAAa;CACb,4BAA4B;CAC5B,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,2BAAuB;KAAvB,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,8BAAiB;KAAjB,iBAAiB;CACjB;;AAED;;CAEC,YAAY;CACZ;;AAED;;CAEC;EACC,wBAAoB;MAApB,oBAAoB;EACpB,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,6BAAgB;MAAhB,gBAAgB;EAChB;;CAED;;EAEC,aAAa;EACb;;CAED;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,qBAAqB;CACrB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,oBAAoB;CACpB;;AAED,sBAAsB;AACtB;CACC,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,oBAAoB;CACpB,uBAAuB;CACvB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,aAAa;CACb;;AAED,oBAAoB;AACpB;CACC,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,qCAAqC;AACrC;CACC,oBAAoB;CACpB,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED,aAAa;;AAEb;CACC,sBAAsB;CACtB;;AAED;;;CAGC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,yBAAyB;CACzB,gCAAgC;CAChC;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,cAAc;CACd;;AAED,6BAA6B;AAC7B;CACC,mBAAmB;CACnB,qBAAc;CAAd,cAAc;CACd,2BAAsB;KAAtB,sBAAsB;CACtB,8BAAsB;KAAtB,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB,oBAAoB;CACpB,8BAA8B;CAC9B;;AAED;;CAEC,cAAc;CACd,kBAAkB;CAClB,aAAa;CACb,UAAU;CACV;;AAED;CACC,sBAAsB;CACtB,kBAAkB;CAClB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB,qBAAqB;CACrB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,WAAW;CACX,qBAAqB;CACrB;;AAED;;EAEE;AACF;CACC,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB,UAAU;CACV,iBAAiB;CACjB,oBAAoB;CACpB,qBAAqB;CACrB;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,6BAA6B;CAC7B;;AAED;CACC,WAAW;CACX,WAAW;CACX;;AAED;CACC,cAAc;CACd,oFAAoF;CACpF,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB,iCAAiC;CACjC,iDAAiD;CACjD;;AAED;CACC,wGAAwG;CACxG;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,kEAAkE;CAClE,WAAW;CACX;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,iBAAiB;CACjB,8BAAsB;KAAtB,sBAAsB;CACtB,oBAAgB;KAAhB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB,aAAa;CACb,yBAAyB;CACzB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,+BAA+B;CAC/B,sBAAwB;KAAxB,wBAAwB;CACxB,uBAAoB;KAApB,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd;;AAED;CACC,aAAa;CACb,kCAAkC;CAClC,0BAA0B;CAC1B;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,UAAU;CACV,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,0FAA0F;CAC1F,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,sBAAsB;CACtB,YAAY;CACZ;;GAEE;CACF;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,4BAA4B;CAC5B,+BAA+B;CAC/B,YAAY;CACZ,gBAAgB;CAChB,0CAA0C;CAC1C;;AAED;CACC,oBAAoB;CACpB,6BAA6B;CAC7B,gCAAgC;CAChC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,oBAAoB;CACpB,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,0BAA0B;CAC1B,yBAAyB;CACzB,YAAY;CACZ,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB,WAAW;CACX;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;;AAEtB,4BAA4B;;AAE5B;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX;;AAED;;CAEC,kBAAkB;CAClB,gBAAgB;CAChB,oBAAoB;CACpB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,eAAe;CACf;;AAED;;CAEC,sBAAsB;CACtB,iBAAiB;CACjB;;AAED;;;CAGC,yBAAyB;CACzB,iBAAiB;CACjB;;AAED;;CAEC;;EAEC,sBAAsB;EACtB;;CAED;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB;;AAED;;;CAGC,eAAe;CACf;;AAED;CACC,eAAe;CACf,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd,cAAc;CACd,uBAAuB;CACvB,mBAAmB;CACnB;;AAED;;;CAGC,aAAa;CACb,iBAAiB;CACjB,aAAa;CACb,wBAAwB;CACxB,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,eAAe;CACf,yBAAyB;CACzB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED,mCAAmC;;AAEnC;CACC,iBAAiB;CACjB;;AAED;;CAEC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,cAAc;CACd;;AAED;CACC,8BAA8B;CAC9B,aAAa;CACb,eAAe;CACf,2BAA2B;CAC3B,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,4BAA4B;CAC5B,8BAA8B;CAC9B,2BAA2B;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,aAAa;CACb,aAAa;CACb,8BAA8B;CAC9B;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX;;AAED,mBAAmB;;AAEnB,oEAAoE;AACpE;;CAEC,wBAAwB;CACxB;;AAED;;CAEC,gCAAgC;CAChC;;AAED;;CAEC,+BAA+B;CAC/B;;AAED;;CAEC,wBAAwB;CACxB;;AAED,+BAA+B;AAC/B;CACC,mBAAmB;CACnB,cAAc;CACd,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED,8BAA8B;AAC9B;CACC,mBAAmB;CACnB,cAAc;CACd,YAAY;CACZ,uBAAuB;CACvB,oBAAoB;CACpB,mBAAmB;CACnB,gBAAgB;CAChB,yCAAyC;CACzC;;AAED;CACC,aAAa;CACb,YAAY;CACZ,aAAa;CACb,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB,OAAO;CACP,WAAW;CACX,2BAA2B;CAC3B,4BAA4B;CAC5B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd,YAAY;CACZ,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb,8BAA8B;CAC9B,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,sBAAsB;CACtB,4BAA4B;CAC5B;;AAED;;CAEC,mBAAmB;CACnB,YAAY;CACZ,iBAAiB;CACjB;;AAED,mDAAmD;AACnD;CACC,eAAe;CACf,0BAA0B;CAC1B,mBAAmB;CACnB,yBAAyB;CACzB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,uBAAuB;CACvB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,+BAA+B;CAC/B;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB,wBAAwB;CACxB,0BAA0B;CAC1B;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,uBAAoB;KAApB,oBAAoB;CACpB,uBAA+B;KAA/B,+BAA+B;CAC/B,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,UAAU;CACV,mBAAmB;CACnB,wBAAwB;CACxB,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;;CAEC;EACC,2BAAuB;MAAvB,uBAAuB;EACvB,mBAAmB;EACnB,uBAAoB;MAApB,oBAAoB;EACpB;;CAED;EACC,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,cAAc;CACd,yCAAyC;CACzC,mBAAmB;CACnB;;AAED;CACC,UAAU;CACV;;AAED;CACC,4BAAmB;KAAnB,2BAAmB;KAAnB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;;EAEE;AACF;CACC,qBAAc;CAAd,cAAc;CACd,wBAAoB;KAApB,oBAAoB;CACpB,oBAAgB;KAAhB,gBAAgB;CAChB,uBAA+B;KAA/B,+BAA+B;CAC/B,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,uBAAuB;CACvB,WAAW;CACX;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,UAAU;CACV,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;CACC,qCAAqC;CACrC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,sCAAsC;CACtC,iBAAiB;CACjB,4BAA4B;CAC5B,uCAAuC;CACvC,qBAAqB;CACrB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,4CAA4C;CAC5C,aAAa;CACb;;AAED;CACC,eAAe;CACf,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,aAAa;CACb;;AAED;CACC,aAAa;CACb,wBAAwB;CACxB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV,oBAAoB;CACpB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB,kBAAkB;CAClB,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,cAAc;CACd,sBAAsB;CACtB,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED,qBAAqB;AACrB;CACC,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,iBAAiB;CACjB,aAAa;CACb,cAAc;CACd,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,oCAAoC;CACpC,+BAA+B;CAC/B,oCAAoC;CACpC;;AAED;CACC,cAAc;CACd;;AAED;;CAEC;EACC,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB;;CAED;;AAED,oCAAoC;AACpC;CACC,WAAW;CACX;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;;AAEH;CACC,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,+BAA+B;CAC/B,uBAAuB;CACvB,wBAAwB;CACxB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,yBAAyB;CACzB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,iBAAiB;CACjB,UAAU;CACV,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,uBAAuB;CACvB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,+BAA+B;CAC/B,mBAAmB;CACnB,QAAQ;CACR,UAAU;CACV;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,sBAAsB;CACtB,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,2BAA2B;CAC3B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,qBAAqB;CACrB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,UAAU;CACV,SAAS;CACT,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX,mBAAmB;CACnB,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,0BAA0B;CAC1B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,2BAA2B;CAC3B;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CAGC,uBAAuB;CACvB,iBAAiB;CACjB,WAAW;CACX;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,eAAe;CACf;;AAED;CACC,qBAAqB;CACrB;;AAED;;GAEG;;AAEH,6BAA6B;AAC7B;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED,aAAa;AACb,oHAAoH;;AAEpH;CACC,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,WAAW;CACX;;AAED,iBAAiB;;AAEjB;CACC,0BAA0B;CAC1B,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,6BAA6B;CAC7B,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED,qBAAqB;;AAErB,iBAAiB;;AAEjB;CACC,YAAY;CACZ,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd;;AAED;CACC,WAAW;CACX,gBAAgB;CAChB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,gBAAgB;CAChB;;AAED,qBAAqB;;AAErB,oBAAoB;;AAEpB;CACC,iBAAiB;CACjB,YAAY;CACZ,eAAe;CACf,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,WAAW;CACX,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,wBAAwB;;;AAGxB,mFAAmF;;AAEnF;CACC,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB;;AAED,gCAAgC;;AAEhC;CACC,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB;;AAED,mCAAmC;AACnC;AACA,6BAA6B;AAC7B;iBACiB;AACjB,iBAAiB;CAChB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,2BAA2B;CAC3B,WAAW;CACX,aAAa;CACb,oBAAoB;CACpB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,0BAA0B;CAC1B,mBAAmB;CACnB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,2BAA2B;CAC3B,kBAAkB;CAClB,iBAAiB;CACjB,4BAA4B;CAC5B,0BAA0B;CAC1B,sBAAsB;CACtB;;AAED;CACC,0BAA0B;CAC1B,oBAAoB;CACpB,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED,uCAAuC;AACvC,6CAA6C;AAC7C;CACC,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,4CAA4C;CAC5C;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,cAAc;CACd;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,uBAAuB;CACvB,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,4BAA4B;CAC5B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,+BAA+B;CAC/B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAAuB;KAAvB,uBAAuB;CACvB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,eAAe;CACf,eAAe;CACf,2CAA2C;CAC3C;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,WAAW;CACX;;AAED;CACC,eAAe;CACf,iBAAiB;CACjB;;AAED;;CAEC;EACC,qBAAc;EAAd,cAAc;EACd,yBAAsB;MAAtB,sBAAsB;EACtB;;CAED;EACC,eAAW;MAAX,WAAW;EACX;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED;;CAEC;;;EAGC,yBAAyB;EACzB,kBAAkB;EAClB,6BAA6B;EAC7B,aAAa;EACb,iBAAiB;EACjB,YAAY;EACZ;;CAED;EACC,aAAa;EACb;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,YAAY;EACZ,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,WAAW;EACX,wCAAwC;EACxC;;CAED;EACC,WAAW;EACX;;CAED;EACC,mBAAmB;EACnB;;CAED;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;;AAED;;CAEC;EACC,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,aAAa;EACb,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT;;CAED;EACC,eAAe;EACf,0BAA0B;EAC1B;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,UAAU;EACV,eAAe;EACf,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB,4CAA4C;EAC5C,iBAAiB;EACjB,WAAW;EACX;;CAED;EACC,eAAe;EACf,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf;;AAEF;;;;;;;;;IASI;;CAEH;EACC,oBAAoB;EACpB;;CAED;EACC,sBAAsB;EACtB;;CAED;EACC,UAAU;EACV,iBAAiB;EACjB,wBAAwB;EACxB;;CAED;EACC,aAAa;EACb,oBAAoB;EACpB,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,WAAW;EACX,mBAAmB;EACnB,WAAW;EACX,WAAW;EACX,UAAU;EACV;;CAED;EACC,eAAe;EACf,sBAAsB;EACtB,yBAAyB;EACzB,YAAY;EACZ,WAAW;EACX,UAAU;EACV,oBAAoB;EACpB,iBAAiB;EACjB,yCAAyC;EACzC;;CAED;EACC,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,UAAU;EACV;;CAED;EACC;;;IAGE;EACF,0BAA0B;EAC1B,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,iBAAiB;EACjB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,uBAAuB;EACvB,+BAA+B;EAC/B;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,uBAAuB;EACvB,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,aAAa;EACb,4CAA4C;EAC5C;;CAED;EACC,aAAa;EACb;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;EACC,qBAAqB;EACrB;;CAED;;AAED;;CAEC;EACC;;CAED;EACC,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB;;CAED;EACC,cAAc;EACd;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf,YAAY;EACZ,UAAU;EACV,oBAAoB;EACpB;;CAED;;AAED;CACC;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;EACC,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,mCAAmC;EACnC;;CAED;EACC,2BAA2B;EAC3B;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,aAAa;EACb,2CAA2C;EAC3C,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf;;CAED;;AAED;;CAEC;EACC,wBAAwB;EACxB,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,qBAAc;EAAd,cAAc;EACd,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,WAAW;EACX,uBAAuB;EACvB;;CAED;EACC,cAAc;EACd;;CAED;EACC,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;EACZ,eAAe;EACf;;CAED","file":"updraftplus-admin.min.css","sourcesContent":["@keyframes udp_blink {\n\n\tfrom {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t}\n\n\tto {\n\t\topacity: 0.4;\n\t\ttransform: scale(0.85);\n\t}\n\n}\n\n/* Widths and sizing */\n.max-width-600 {\n\tmax-width: 600px;\n}\n\n.width-900 {\n\tmax-width: 900px;\n}\n\n.width-80 {\n\twidth: 80%;\n}\n\n/* End widths and sizing */\n\n/* Font styling */\n.no-decoration {\n\ttext-decoration: none;\n}\n\n.bold {\n\tfont-weight: bold;\n}\n\n/* End font styling */\n/* Alignment */\n.center-align-td {\n\ttext-align: center;\n}\n\n/* End of Alignment */\n/* Padding */\n.remove-padding {\n\tpadding: 0 !important;\n}\n\n/* End of padding */\n\n.updraft-text-center {\n\ttext-align: center;\n}\n\n.autobackup {\n\tpadding: 6px;\n\tmargin: 8px 0px;\n}\n\nul .disc {\n\tlist-style: disc inside;\n}\n\n.dashicons-log-fix {\n\tdisplay: inherit;\n}\n\n.udpdraft__lifted {\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n}\n\n#updraft-wrap a .dashicons {\n\ttext-decoration: none;\n}\n\n.updraft-field-description,\ntable.form-table td p.updraft-field-description {\n\tfont-size: 90%;\n\tline-height: 1.2;\n\tfont-style: italic;\n\tmargin-bottom: 5px;\n}\n\n/* Input boxes */\nlabel.updraft_checkbox {\n\tdisplay: block;\n\tmargin-bottom: 4px;\n\tmargin-left: 26px;\n}\n\nlabel.updraft_checkbox > input[type=checkbox] {\n\tmargin-left: -25px;\n}\n\ndiv[id*=\"updraft_include_\"] {\n\tmargin-bottom: 9px;\n}\n\n/* Input boxes */\n.settings_page_updraftplus input[type=\"file\"] {\n\tborder: none;\n}\n\n.settings_page_updraftplus .wipe_settings {\n\tpadding-bottom: 10px;\n}\n\n.settings_page_updraftplus input[type=\"text\"] {\n\tfont-size: 14px;\n}\n\n.settings_page_updraftplus select {\n\tborder-radius: 4px;\n\tmax-width: 100%;\n}\n\ninput.updraft_input--wide,\ntextarea.updraft_input--wide {\n\tmax-width: 442px;\n\twidth: 100%;\n}\n\n#updraft-wrap .button-large {\n\tfont-size: 1.3em;\n}\n\n/* End input boxes */\n\n/* Main Buttons */\n.main-dashboard-buttons {\n\tborder-width: 4px;\n\tborder-radius: 12px;\n\tletter-spacing: 0px;\n\tfont-size: 17px;\n\tfont-weight: bold;\n\tpadding-left: 0.7em;\n\tpadding-right: 2em;\n\tpadding: 0.3em 1em;\n\tline-height: 1.7em;\n\tbackground: transparent;\n\tposition: relative;\n\tborder: 2px solid;\n\ttransition: all 0.2s;\n\tvertical-align: baseline;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tline-height: 1.3em;\n\tmargin-left: .3em;\n\ttext-transform: none;\n\tline-height: 1;\n\ttext-decoration: none;\n}\n\n.button-restore {\n\tborder-color: rgb(98, 158, 192);\n\tcolor: rgb(98, 158, 192);\n}\n\n.dashboard-main-sizing {\n\tborder-width: 4px;\n\twidth: 190px;\n\tline-height: 1.7em;\n}\n\np.updraftplus-option {\n\tmargin-top: 0;\n\tmargin-bottom: 5px;\n}\n\np.updraftplus-option-inline {\n\tdisplay: inline-block;\n\tpadding-right: 20px;\n}\n\nspan.updraftplus-option-label {\n\tdisplay: block;\n}\n\n/*\n* MIGRATE - CLONE\n*/\n\n#updraft-navtab-migrate-content .postbox {\n\tpadding: 18px;\n}\n\n/* Clone Rows */\n\n.updraftclone-main-row {\n\tdisplay: flex;\n}\n\n.updraftclone-tokens {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tmargin-right: 20px;\n\tmax-width: 300px;\n}\n\n.updraftclone-tokens p {\n\tmargin: 0;\n}\n\n.updraftclone_action_box {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tflex: 1;\n}\n\n.updraftclone_action_box p:first-child {\n\tmargin-top: 0;\n}\n\n.updraftclone_action_box p:last-child {\n\tmargin-bottom: 0;\n}\n\nspan.tokens-number {\n\tfont-size: 46px;\n\tdisplay: block;\n}\n\n/* Clone header button */\n.button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\theight: 100%;\n\tborder-left: 1px solid #CCC;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box {\n\tmargin-right: 20px;\n\twidth: 100%;\n\tflex-basis: 100%;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\tfloat: none;\n}\n\n@media (min-width: 1024px) {\n\n\t.updraft_migrate_widget_temporary_clone_stage0_container {\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box {\n\t\tflex-basis: 45%;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n\t.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\t\tfloat: right;\n\t}\n\n}\n\n.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tline-height: inherit;\n}\n\n.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: inline-block;\n}\n\n.opened .updraft_migrate_widget_temporary_clone_stage0 {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 8px;\n\tmargin-bottom: 21px;\n}\n\n/* Clone list table */\n.clone-list {\n\tclear: both;\n\twidth: 100%;\n\tmargin-top: 40px;\n}\n\n.clone-list table {\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.clone-list table tr th {\n\tbackground: #E4E4E4;\n}\n\n.clone-list table tr td {\n\tbackground: #F5F5F5;\n\tword-break: break-word;\n}\n\n.clone-list table tr:nth-child(odd) td {\n\tbackground: #FAFAFA;\n}\n\n.clone-list table td,\n.clone-list table th {\n\tpadding: 6px;\n}\n\n/* Clone Progress */\n.updraftplus-clone .updraft_row {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nbutton#updraft_migrate_createclone + .updraftplus_spinner {\n\tmargin-top: 13px;\n}\n\n/* Clone - Show step 1 info button */\n.button.button-hero.updraftclone_show_step_1 {\n\twhite-space: normal;\n\theight: auto;\n\tline-height: 14px;\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n}\n\n.button.button-hero.updraftclone_show_step_1 span.dashicons {\n\theight: auto;\n}\n\n.updraftplus_clone_status {\n\tcolor: red;\n}\n\n/* MIGRATE */\n\na.updraft_migrate_add_site--trigger span.dashicons {\n\ttext-decoration: none;\n}\n\n.button-restore:hover, .button-migrate:hover, .button-backup:hover,\n.button-view-log:hover, .button-mass-selectors:hover,\n.button-delete:hover, .button-entity-backup:hover, .udp-button-primary:hover {\n\tborder-color: #DF6926;\n\tcolor: #DF6926;\n}\n\n.button-migrate {\n\tcolor: rgb(238, 169, 32);\n\tborder-color: rgb(238, 169, 32);\n}\n\n#updraft_migrate_tab_main {\n\tpadding: 8px;\n}\n\n.updraft_migrate_widget_module_content {\n\tbackground: #FFF;\n\tborder-radius: 0;\n\tposition: relative;\n}\n\nbody.js #updraft_migrate .updraft_migrate_widget_module_content {\n\tdisplay: none;\n}\n\n.updraft_migrate_widget_module_content > h3,\ndiv[class*=\"updraft_migrate_widget_temporary_clone_stage\"] > h3 {\n\tmargin-top: 0;\n}\n\n/* Migrate / Clone headers */\n.updraft_migrate_widget_module_content header {\n\tposition: relative;\n\tdisplay: flex;\n\talign-content: center;\n\tjustify-items: center;\n\tmargin-top: -18px;\n\tmargin-left: -18px;\n\tmargin-right: -18px;\n\tmargin-bottom: 15px;\n\tborder-bottom: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content header h3,\n.updraft_migrate_widget_module_content header button.button.close {\n\tpadding: 10px;\n\tline-height: 20px;\n\theight: auto;\n\tmargin: 0;\n}\n\n.updraft_migrate_widget_module_content button.button.close {\n\ttext-decoration: none;\n\tpadding-left: 5px;\n\tborder-right: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content button.button.close .dashicons {\n\tmargin-top: 1px;\n}\n\n.updraft_migrate_widget_module_content header h3 {\n\tmargin: 0;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero {\n\tmax-width: 235px;\n\tword-wrap: normal;\n\twhite-space: normal;\n\tline-height: 1;\n\theight: auto;\n\tpadding-top: 13px;\n\tpadding-bottom: 13px;\n\ttext-align: left;\n\tposition: relative;\n\tmargin-right: 10px;\n\tmargin-bottom: 10px;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero .dashicons {\n\tposition: absolute;\n\tleft: 10px;\n\ttop: calc(50% - 8px);\n}\n\n/*\njquery UI Accordion module\n*/\n#updraft_migrate .ui-widget-content a {\n\tcolor: #1C94C4;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header {\n\tbackground: #F6F6F6;\n\tmargin: 0;\n\tborder-radius: 0;\n\tpadding-left: 0.5em;\n\tpadding-right: 0.7em;\n}\n\n#updraft-wrap .ui-widget {\n\tfont-family: inherit;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w {\n\tbackground-position: -96px 0px;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s {\n\tbackground-position: -64px 0;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon {\n\tleft: auto;\n\tright: 5px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px rgba(91, 157, 217, 0.22), 0 0 2px 1px rgba(30, 140, 190, 0.3);\n\tbackground: #FFF;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons {\n\tcolor: #0572AA;\n\topacity: 1;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active {\n\tbackground: #F6F6F6;\n\tborder-bottom: 2px solid #0572AA;\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus {\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3), 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child) {\n\tborder-top: none;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .dashicons {\n\topacity: 0.4;\n\tmargin-right: 10px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n\tz-index: 1;\n}\n\n.updraft_next_scheduled_backups_wrapper {\n\tdisplay: flex;\n\tbackground: #FFF;\n\tjustify-items: center;\n\tflex-wrap: wrap;\n}\n\n.updraft_next_scheduled_backups_wrapper > div {\n\twidth: 50%;\n\tbackground: #FFF;\n\theight: auto;\n\t/* padding: 18px 33px; */\n\tpadding: 33px;\n\tbox-sizing: border-box;\n}\n\n.updraft_backup_btn_wrapper {\n\ttext-align: center;\n\tborder-left: 1px solid #F1F1F1;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.incremental-backups-only {\n\tdisplay: none;\n}\n\n.incremental-free-only {\n\tdisplay: none;\n}\n\n.incremental-free-only p {\n\tpadding: 5px;\n\tbackground: rgba(255, 0, 0, 0.06);\n\tborder: 1px solid #BFBFBF;\n}\n\n#updraft-delete-waitwarning span.spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tmargin: 0;\n\tmargin-right: 10px;\n}\n\nbutton#updraft-backupnow-button .spinner,\nbutton#updraft-backupnow-button .dashicons-yes {\n\tdisplay: none;\n}\n\nbutton#updraft-backupnow-button.loading .spinner {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tmargin-top: 13px;\n\tmargin-right: 0;\n}\n\nbutton#updraft-backupnow-button.loading {\n\tbackground-color: #EFEFEF;\n\tborder-color: #CCC;\n\ttext-shadow: 0 -1px 1px #BBC3C7, 1px 0 1px #BBC3C7, 0 1px 1px #BBC3C7, -1px 0 1px #BBC3C7;\n\tbox-shadow: none;\n}\n\nbutton#updraft-backupnow-button.finished .dashicons-yes {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tfont-size: 42px;\n\tmargin-right: 0;\n\tmargin-top: 2px;\n}\n\n.updraft_next_scheduled_entity {\n\twidth: 50%;\n\tdisplay: inline-block;\n\tfloat: left;\n\t/*\n\tpadding: 20px 20px 10px 20px;\n\t*/\n}\n\n.updraft_next_scheduled_entity .dashicons {\n\tcolor: #CCC;\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_entity strong {\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_heading {\n\tmargin-bottom: 10px;\n}\n\n.updraft_next_scheduled_date_time {\n\tcolor: #46A84B;\n}\n\n.updraft_time_now_wrapper {\n\tmargin-top: 68px;\n\twidth: 100%;\n}\n\n.updraft_time_now_label, .updraft_time_now {\n\tdisplay: inline-block;\n\tpadding: 7px;\n}\n\n.updraft_time_now_label {\n\tbackground: #B7B7B7;\n\tborder-top-left-radius: 4px;\n\tborder-bottom-left-radius: 4px;\n\tcolor: #FFF;\n\tmargin-right: 0;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n}\n\n.updraft_time_now {\n\tbackground: #F1F1F1;\n\tborder-top-right-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tmargin-left: -3px;\n}\n\n#updraft_lastlogmessagerow {\n\tmargin: 6px 0;\n}\n\n#updraft_lastlogmessagerow {\n\tclear: both;\n\tpadding: 0.25px 0;\n}\n\n#updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: right;\n\tmargin-top: -2.5em;\n\tmargin-right: 2px;\n}\n\n#updraft_lastlogmessagerow > div {\n\tclear: both;\n\tbackground: #FFF;\n\tpadding: 18px;\n}\n\n#updraft_activejobs_table {\n\toverflow: hidden;\n\twidth: 100%;\n\tbackground: #FAFAFA;\n\tpadding: 0;\n}\n\n.updraft_requeststart {\n\tpadding: 15px 33px;\n\ttext-align: center;\n}\n\n.updraft_requeststart .spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tvertical-align: middle;\n\tmargin-top: -2px;\n}\n\na.updraft_jobinfo_delete.disabled {\n\topacity: 0.4;\n\tcolor: inherit;\n\ttext-decoration: none;\n}\n\n.updraft_row {\n\tclear: both;\n\ttransition: 0.3s all;\n\tpadding: 15px 33px;\n}\n\n.updraft_row.deleting {\n\topacity: 0.4;\n}\n\n.updraft_progress_container {\n\t/* width: 83%; */\n}\n\n.updraft_existing_backups_count {\n\tpadding: 2px 8px;\n\tfont-size: 12px;\n\tbackground: #CA4A1E;\n\tcolor: #FFF;\n\tfont-weight: bold;\n\tborder-radius: 10px;\n}\n\n.form-table .existing-backups-table input[type=\"checkbox\"] {\n\tborder-radius: 0;\n}\n\n.form-table .existing-backups-table .check-column {\n\twidth: 40px;\n\tpadding: 0;\n\tpadding-top: 8px;\n}\n\n.existing-backups-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.existing-backups-restore-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.button-delete {\n\tcolor: #E23900;\n\tborder-color: #E23900;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 10px;\n}\n\n.button-view-log, .button-mass-selectors {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-top: -1px;\n}\n\n.button-view-log {\n\twidth: 120px;\n}\n\n.button-existing-restore {\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\twidth: 110px;\n}\n\n.main-restore {\n\tmargin-right: 3%;\n\tmargin-left: 3%;\n}\n\n.button-entity-backup {\n\tcolor: #555;\n\tborder-color: #555;\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 5px;\n}\n\n.button-select-all {\n\twidth: 122px;\n}\n\n.button-deselect {\n\twidth: 92px;\n}\n\n#ud_massactions > .display-flex > .mass-selectors-margins, #updraft-delete-waitwarning > .display-flex > .mass-selectors-margins {\n\tmargin-right: -4px;\n}\n\n.udp-button-primary {\n\tborder-width: 4px;\n\tcolor: #0073AA;\n\tborder-color: #0073AA;\n\tfont-size: 14px;\n\theight: 40px;\n}\n\n#ud_massactions .button-delete {\n\tmargin-right: 0px;\n}\n\n.stored_local {\n\tborder-radius: 5px;\n\tbackground-color: #007FE7;\n\tpadding: 3px 5px 5px 5px;\n\tcolor: #FFF;\n\tfont-size: 75%;\n}\n\nspan#updraft_lastlogcontainer {\n\tword-break: break-all;\n}\n\n.stored_icon {\n\theight: 1.3em;\n\tposition: relative;\n\ttop: 0.2em;\n}\n\n.backup_date_label > * {\n\tvertical-align: middle;\n}\n\n.backup_date_label .dashicons {\n\tfont-size: 18px;\n}\n\n.backup_date_label .clear-right {\n\tclear: right;\n}\n\n.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\tfont-weight: bold;\n}\n\n/* End Main Buttons */\n\n/* End of common elements */\n\n.udp-logo-70 {\n\twidth: 70px;\n\theight: 70px;\n\tfloat: left;\n\tpadding-right: 25px;\n}\n\nh3 .thank-you {\n\tmargin-top: 0px;\n}\n\n.ws_advert {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n.dismiss-dash-notice {\n\tfloat: right;\n\tposition: relative;\n\ttop: -20px;\n}\n\n.updraft_exclude_container,\n.updraft_include_container {\n\tmargin-left: 24px;\n\tmargin-top: 5px;\n\tmargin-bottom: 10px;\n\tpadding: 15px;\n\tborder: 1px solid #DDD;\n}\n\nlabel.updraft-exclude-label {\n\tfont-weight: 500;\n\tmargin-bottom: 5px;\n\tdisplay: block;\n}\n\n.updraft_add_exclude_item,\n#updraft_include_more_paths_another {\n\tdisplay: inline-block;\n\tmargin-top: 10px;\n}\n\ninput.updraft_exclude_entity_field,\n.form-table td input.updraft_exclude_entity_field,\n.updraftplus-morefiles-row input[type=text] {\n\twidth: calc(100% - 70px);\n\tmax-width: 400px;\n}\n\n@media screen and (max-width: 782px) {\n\n\t.form-table td input.updraft_exclude_entity_field,\n\t.form-table td .updraftplus-morefiles-row input[type=text] {\n\t\tdisplay: inline-block;\n\t}\n\n}\n\n.updraft_exclude_entity_delete.dashicons, .updraft_exclude_entity_edit.dashicons, .updraft_exclude_entity_update.dashicons, .updraftplus-morefiles-row a.dashicons {\n\tmargin-top: 2px;\n\tfont-size: 20px;\n\tbox-shadow: none;\n\tline-height: 1;\n\tpadding: 3px;\n\tmargin-right: 4px;\n}\n\n.updraft_exclude_entity_delete,\n.updraft_exclude_entity_delete:hover,\n.updraftplus-morefiles-row-delete {\n\tcolor: #FF6347;\n}\n\n.updraft_exclude_entity_update.dashicons, .updraft_exclude_entity_update.dashicons:hover {\n\tcolor: #008000;\n\tfont-weight: bold;\n\tfont-size: 22px;\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_edit {\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete {\n\tdisplay: none;\n}\n\n.updraft-exclude-panel-heading {\n\tmargin-bottom: 8px;\n}\n\n.updraft-exclude-panel-heading h3 {\n\tmargin: 0.5em 0 0.5em 0;\n}\n\n.updraft-exclude-submit.button-primary {\n\tmargin-top: 5px;\n}\n\n.updraft_exclude_actions_list {\n\tfont-weight: bold;\n}\n\n.updraft-exclude-link {\n\tcursor: pointer;\n}\n\n#updraft_include_more_options {\n\tpadding-left: 25px;\n}\n\n#updraft_report_cell .updraft_reportbox,\n.updraft_small_box {\n\tpadding: 12px;\n\tmargin: 8px 0;\n\tborder: 1px solid #CCC;\n\tposition: relative;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete,\n.updraft_box_delete_button,\n.updraft_small_box .updraft_box_delete_button {\n\tpadding: 4px;\n\tpadding-top: 6px;\n\tborder: none;\n\tbackground: transparent;\n\tposition: absolute;\n\ttop: 4px;\n\tright: 4px;\n\tcursor: pointer;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete:hover {\n\tcolor: #DE3C3C;\n}\n\na.updraft_report_another .dashicons {\n\ttext-decoration: none;\n\tmargin-top: 2px;\n}\n\n.updraft_report_dbbackup.updraft_report_disabled {\n\tcolor: #CCC;\n}\n\n#updraft-navtab-settings-content .updraft-test-button {\n\tfont-size: 18px !important;\n}\n\n#updraft_report_cell .updraft_report_email {\n\tdisplay: block;\n\twidth: calc(100% - 50px);\n\tmargin-bottom: 9px;\n}\n\n#updraft_report_cell .updraft_report_another_p {\n\tclear: left;\n}\n\n/* Taken straight from admin.php */\n\n#updraft-navtab-settings-content table.form-table p {\n\tmax-width: 700px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td {\n\tbackground-color: #EFEFEF;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td {\n\tbackground-color: #E8E8E8;\n}\n\n.updraft_settings_sectionheading {\n\tdisplay: none;\n}\n\n.updraft-backupentitybutton-disabled {\n\tbackground-color: transparent;\n\tborder: none;\n\tcolor: #0074A2;\n\ttext-decoration: underline;\n\tcursor: pointer;\n\tclear: none;\n\tfloat: left;\n}\n\n.updraft-backupentitybutton {\n\tmargin-left: 8px;\n}\n\n.updraft-bigbutton {\n\tpadding: 2px 0px !important;\n\tmargin-right: 14px !important;\n\tfont-size: 22px !important;\n\tmin-height: 32px;\n\tmin-width: 180px;\n}\n\ntr[class*=\"_updraft_remote_storage_border\"] {\n\tborder-top: 1px solid #CCC;\n}\n\n.updraft_multi_storage_options {\n\tfloat: right;\n\tclear: right;\n\tmargin-bottom: 5px !important;\n}\n\n.updraft_toggle_instance_label {\n\tvertical-align: top !important;\n}\n\n.updraft_debugrow th {\n\tfloat: right;\n\ttext-align: right;\n\tfont-weight: bold;\n\tpadding-right: 8px;\n\tmin-width: 140px;\n}\n\n.updraft_debugrow td {\n\tmin-width: 300px;\n\tvertical-align: bottom;\n}\n\n#updraft_webdav_host_error, .onedrive_folder_error {\n\tcolor: red;\n}\n\n/* jstree styles */\n\n/* these styles hide the dots from the parent but keep the arrows */\n.updraft_jstree .jstree-container-ul > .jstree-node,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-node {\n\tbackground: transparent;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-open > .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-open > .jstree-ocl {\n\tbackground-position: -36px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl {\n\tbackground-position: -4px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl {\n\tbackground: transparent;\n}\n\n/* zip browser jstree styles */\n#updraft_zip_files_container {\n\tposition: relative;\n\theight: 450px;\n\toverflow: none;\n}\n\n.updraft_jstree_info_container {\n\tposition: relative;\n\theight: auto;\n\twidth: 100%;\n\tborder: 1px dotted;\n\tmargin-bottom: 5px;\n}\n\n.updraft_jstree_info_container p {\n\tmargin: 1px;\n\tpadding-left: 10px;\n\tfont-size: 14px;\n}\n\n#updraft_zip_download_item {\n\tdisplay: none;\n\tcolor: #0073AA;\n\tpadding-left: 10px;\n}\n\n#updraft_zip_download_notice {\n\tpadding-left: 10px;\n}\n\n#updraft_exclude_files_folders_jstree {\n\tmax-height: 200px;\n\toverflow-y: scroll;\n}\n\n.updraft_jstree {\n\tposition: relative;\n\tborder: 1px dotted;\n\theight: 80%;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n/* More files jstree styles */\n#updraft_more_files_container {\n\tposition: relative;\n\tdisplay: none;\n\twidth: 100%;\n\tborder: 1px solid #CCC;\n\tbackground: #FAFAFA;\n\tmargin-bottom: 5px;\n\tmargin-top: 4px;\n\tbox-shadow: 0 5px 8px rgba(0, 0, 0, 0.1);\n}\n\ndiv#updraft_more_files_container::before {\n\tcontent: ' ';\n\twidth: 11px;\n\theight: 11px;\n\tdisplay: block;\n\tbackground: #FAFAFA;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 20px;\n\tborder-top: 1px solid #CCC;\n\tborder-left: 1px solid #CCC;\n\ttransform: translatey(-7px) rotate(45deg);\n}\n\ninput.updraft_more_path_editing {\n\tborder-color: #0285BA;\n}\n\ninput.updraft_more_path_editing ~ a.dashicons {\n\tdisplay: none;\n}\n\n#updraft_jstree_buttons {\n\tpadding: 10px;\n\tbackground: #E6E6E6;\n}\n\n#updraft_jstree_container {\n\theight: 300px;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n#updraft_more_files_container button {\n\tline-height: 20px;\n}\n\n#updraft_parent_directory {\n\tmargin: 10px 10px 4px 10px;\n\tpadding-left: 3px;\n}\n\n#updraft_jstree_confirm, #updraft_jstree_cancel {\n\tdisplay: none;\n}\n\n.updraftplus-morefiles-row-delete,\n.updraftplus-morefiles-row-edit {\n\tcursor: pointer;\n}\n\n#updraft-wrap .form-table th {\n\twidth: 230px;\n}\n\n#updraft-wrap .form-table .existing-backups-table th {\n\twidth: auto;\n}\n\n.updraft-viewlogdiv form {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-viewlogdiv {\n\tdisplay: inline-block;\n}\n\n.updraft-viewlogdiv input, .updraft-viewlogdiv a {\n\tborder: none;\n\tbackground-color: transparent;\n\tcolor: #000;\n\tmargin: 0px;\n\tpadding: 3px 4px;\n\tfont-size: 16px;\n\tline-height: 26px;\n}\n\n.updraft-viewlogdiv input:hover, .updraft-viewlogdiv a:hover {\n\tcolor: #FFF;\n\tcursor: pointer;\n}\n\n.button.button-remove {\n\tcolor: white;\n\tbackground-color: #DE3C3C;\n\tborder-color: #C00000;\n\tbox-shadow: 0 1px 0 #C10100;\n}\n\n.button.button-remove:hover,\n.button.button-remove:focus {\n\tborder-color: #C00;\n\tcolor: #FFF;\n\tbackground: #C00;\n}\n\n/* button-remove colors for midnight admin theme */\nbody.admin-color-midnight .button.button-remove {\n\tcolor: #DE3C3C;\n\tbackground-color: #F7F7F7;\n\tborder-color: #CCC;\n\tbox-shadow: 0 1px 0 #CCC;\n}\n\nbody.admin-color-midnight .button.button-remove:hover, body.admin-color-midnight .button.button-remove:focus {\n\tborder-color: #BA281F;\n}\n\nbody.admin-color-midnight .button.button-remove:focus {\n\tbox-shadow: inherit;\n\tbox-shadow: 0 0 3px rgba(0, 115, 170, 0.8);\n}\n\n.drag-drop #drag-drop-area2 {\n\tborder: 4px dashed #DDD;\n\theight: 200px;\n}\n\n#drag-drop-area2 .drag-drop-inside {\n\tmargin: 36px auto 0;\n\twidth: 350px;\n}\n\n#filelist, #filelist2 {\n\twidth: 100%;\n}\n\n#filelist .file, #filelist2 .file, .ud_downloadstatus .file, #ud_downloadstatus2 .file {\n\tpadding: 1px;\n\tbackground: #ECECEC;\n\tborder: solid 1px #CCC;\n\tmargin: 4px 0;\n}\n\n.updraft_premium section {\n\tmargin-bottom: 20px;\n}\n\n/*\n\tCall to action Premium\n*/\n.updraft_premium_cta {\n\tbackground: #FFF;\n\tmargin-top: 30px;\n\tpadding: 0;\n\tborder-left: 4px solid #DB6A03;\n}\n\n.updraft_premium_cta a {\n\tfont-weight: normal;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero {\n\tfont-size: 1.3em;\n\tletter-spacing: 0.03rem;\n\ttext-transform: uppercase;\n}\n\n.updraft_premium_cta__top {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 18px 30px;\n}\n\n.updraft_premium_cta__bottom {\n\tbackground: #F9F9F9;\n\tpadding: 5px 30px;\n}\n\n.updraft_premium_cta__summary {\n\tmargin-right: 60px;\n}\n\n.updraft_premium_cta h2 {\n\tfont-size: 28px;\n\tfont-weight: 200;\n\tline-height: 1;\n\tmargin: 0;\n\tmargin-bottom: 5px;\n\tletter-spacing: 0.05rem;\n\tcolor: #DB6A03;\n}\n\n.updraft_premium_cta ul li::after {\n\tcolor: #CCC;\n}\n\n@media only screen and (max-width: 768px) {\n\n\t.updraft_premium_cta__top {\n\t\tflex-direction: column;\n\t\ttext-align: center;\n\t\talign-items: center;\n\t}\n\n\t.updraft_premium_cta__summary {\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 30px;\n\t}\n\n}\n\n/*\n\tBox\n*/\n.udp-box {\n\tbackground: #FFF;\n\tpadding: 20px;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n\ttext-align: center;\n}\n\n.udp-box h3 {\n\tmargin: 0;\n}\n\n.udp-box__heading {\n\talign-self: center;\n\tbackground: none;\n\tbox-shadow: none;\n}\n\n/*\n\tOther Plugins\n*/\n.updraft-more-plugins {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tjustify-content: space-between;\n\tflex-wrap: wrap;\n}\n\n.updraft-more-plugins img {\n\tmax-width: 200px;\n\twidth: 100%;\n\tdisplay: inline-block;\n}\n\n.updraft-more-plugins .udp-box {\n\tbox-sizing: border-box;\n\twidth: 24%;\n}\n\n.updraft-more-plugins .udp-box p:last-child {\n\tmargin-bottom: 0;\n\tpadding-bottom: 0;\n}\n\n/*\n\tlinks list\n*/\n.updraft_premium_description_list {\n\ttext-align: left;\n\tmargin: 0;\n\tfont-size: 12px;\n}\n\nul.updraft_premium_description_list, ul#updraft_restore_warnings {\n\tlist-style: disc inside;\n}\n\nul.updraft_premium_description_list li {\n\tdisplay: inline;\n}\n\nul.updraft_premium_description_list li::after {\n\tcontent: \" | \";\n}\n\nul.updraft_premium_description_list li:last-child::after {\n\tcontent: \"\";\n}\n\n.updraft_feature_cell {\n\tbackground-color: #F7D9C9 !important;\n\tpadding: 5px 10px;\n}\n\n.updraftplus_com_login_status, .updraftplus_com_key_status {\n\tdisplay: none;\n\tborder-left-color: #DC3232 !important;\n\tbackground: #FFF;\n\tborder-left: 4px solid #FFF;\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n\tmargin: 5px 0 15px 0;\n\tpadding: 5px 12px;\n}\n\n.updraft_feat_table {\n\tborder: none;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n}\n\n.updraft_feat_th, .updraft_feat_table td {\n\tborder: 1px solid #F1F1F1;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n\tpadding: 15px;\n}\n\n.updraft_feat_table td {\n\tborder-bottom-width: 4px;\n}\n\n.updraft_feat_table td:first-child {\n\tborder-left: none;\n}\n\n.updraft_feat_table td:last-child {\n\tborder-right: none;\n}\n\n.updraft_feat_table tr:last-child td {\n\tborder-bottom: none;\n}\n\n.updraft_feat_table td:nth-child(2),\n.updraft_feat_table td:nth-child(3) {\n\tbackground-color: rgba(241, 241, 241, 0.38);\n\twidth: 190px;\n}\n\n.updraft_feat_table__header td img {\n\tdisplay: block;\n\tmargin: 0 auto;\n}\n\n.updraft_feat_table__header td {\n\ttext-align: center;\n}\n\n.updraft_feat_table .installed {\n\tfont-size: 14px;\n}\n\n.updraft_feat_table p {\n\tpadding: 0px 10px;\n\tmargin: 5px 0px;\n\tfont-size: 13px;\n}\n\n.updraft_feat_table h4 {\n\tmargin: 5px 0px;\n}\n\n.updraft_feat_table .dashicons {\n\twidth: 25px;\n\theight: 25px;\n\tfont-size: 25px;\n\tline-height: 1;\n}\n\n.updraft_feat_table .dashicons-yes, .updraft_feat_table .updraft-yes {\n\tcolor: green;\n}\n\n.updraft_feat_table .dashicons-no-alt, .updraft_feat_table .updraft-no {\n\tcolor: red;\n}\n\n.updraft_tick_cell {\n\ttext-align: center;\n}\n\n.updraft_tick_cell img {\n\tmargin: 4px 0;\n\theight: 24px;\n}\n\n.ud_downloadstatus__close {\n\tborder: none;\n\tbackground: transparent;\n\twidth: auto;\n\tfont-size: 20px;\n\tpadding: 0;\n\tcursor: pointer;\n}\n\n#filelist .fileprogress, #filelist2 .fileprogress, .ud_downloadstatus .dlfileprogress, #ud_downloadstatus2 .dlfileprogress {\n\twidth: 0%;\n\tbackground: #0572AA;\n\theight: 8px;\n}\n\n.ud_downloadstatus .raw, #ud_downloadstatus2 .raw {\n\tmargin-top: 8px;\n\tclear: left;\n}\n\n.ud_downloadstatus .file, #ud_downloadstatus2 .file {\n\tmargin-top: 8px;\n}\n\ndiv[class^=\"updraftplus_downloader_container_\"] {\n\tpadding: 10px;\n}\n\ntr.updraftplusmethod h3 {\n\tmargin: 0px;\n}\n\ntr.updraftplusmethod img {\n\tmax-width: 100%;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete, #updraft_retain_files_rules .updraft_retain_rules_delete {\n\tcursor: pointer;\n\tcolor: red;\n\tfont-size: 120%;\n\tfont-weight: bold;\n\tborder: 0px;\n\tborder-radius: 3px;\n\tpadding: 2px;\n\tmargin: 0 6px;\n\ttext-decoration: none;\n\tdisplay: inline-block;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete:hover, #updraft_retain_files_rules .updraft_retain_rules_delete:hover {\n\tcursor: pointer;\n\tcolor: white;\n\tbackground: red;\n}\n\n#updraft_backup_started {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n/* backup finished */\n.blockUI.blockOverlay.ui-widget-overlay {\n\tbackground: #000;\n}\n\n.updraft_success_popup {\n\ttext-align: center;\n\tpadding-bottom: 30px;\n}\n\n.updraft_success_popup > .dashicons {\n\tfont-size: 100px;\n\twidth: 100px;\n\theight: 100px;\n\tline-height: 100px;\n\tpadding: 0px;\n\tborder-radius: 50%;\n\tmargin-top: 30px;\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tbackground: #E2E6E5;\n}\n\n.updraft_success_popup > .dashicons.dashicons-yes {\n\ttext-indent: -5px;\n}\n\n.updraft_success_popup.success > .dashicons {\n\tcolor: green;\n}\n\n.updraft_success_popup.warning > .dashicons {\n\tcolor: #888;\n}\n\n.updraft_success_popup--message {\n\tpadding: 20px;\n}\n\n.button.updraft-close-overlay .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tmargin-left: -5px;\n\tpadding: 0;\n}\n\n.updraft_saving_popup img {\n\tanimation-name: udp_blink;\n\tanimation-duration: 610ms;\n\tanimation-iteration-count: infinite;\n\tanimation-direction: alternate;\n\tanimation-timing-function: ease-out;\n}\n\n.udp-premium-image {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 720px) {\n\n\t.udp-premium-image {\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tpadding-right: 5px;\n\t}\n\n}\n\n/* End stuff already in admin.php */\n#plupload-upload-ui2 {\n\twidth: 80%;\n}\n\n.backup-restored {\n\tpadding: 8px;\n}\n\n.backup-restored span {\n\tfont-size: 120%;\n}\n\n.memory-limit {\n\tpadding: 8px;\n}\n\n.updraft_list_errors {\n\tpadding: 8px;\n}\n\n/*.nav-tab {\n\tborder-radius: 20px 20px 0 0;\n\tborder-color: grey;\n\tborder-width: 2px;\n\tmargin-top: 34px;\n}\n\n.nav-tab:hover {\n\tborder-bottom: 0;\n}\n\n.nav-tab-active, .nav-tab-active:active {\n\tcolor: #df6926;\n\tborder-color: #D3D3D3;\n\tborder-width: 1px;\n\tborder-bottom: 0;\n}\n\n.nav-tab-active:focus {\n\tcolor: #df6926;\n}*/\n\n.nav-tab-wrapper {\n\tmargin: 14px 0px;\n}\n\n#updraft-poplog-content {\n\twhite-space: pre-wrap;\n}\n\n.next-backup {\n\tborder: 0px;\n\tpadding: 0px;\n\tmargin: 0 10px 0 0;\n}\n\n.not-scheduled {\n\tvertical-align: top !important;\n\tmargin: 0px !important;\n\tpadding: 0px !important;\n}\n\n.next-backup .updraft_scheduled {\n\t/* width: 124px;*/\n\tmargin: 0px;\n\tpadding: 2px 4px 2px 0px;\n}\n\n#next-backup-table-inner td {\n\tvertical-align: top;\n}\n\n.updraft_all-files {\n\tcolor: blue;\n}\n\n.multisite-advert-width {\n\twidth: 800px;\n}\n\n.updraft_settings_sectionheading {\n\tmargin-top: 6px;\n}\n\n.premium-upgrade-prompt {\n\t/* font-size: 115%; */\n}\n\n.show_admin_restore_in_progress_notice {\n\tpadding: 8px;\n}\n\n.show_admin_restore_in_progress_notice .unfinished-restoration {\n\tfont-size: 120%;\n}\n\n#backupnow_includefiles_moreoptions, #backupnow_database_moreoptions {\n\tmargin: 4px 16px 6px 16px;\n\tborder: 1px dotted;\n\tpadding: 6px 10px;\n}\n\n#backupnow_database_moreoptions {\n\tmax-height: 250px;\n\toverflow: auto;\n}\n\n.form-table #updraft_activejobsrow .minimum-height {\n\tmin-height: 100px;\n}\n\n#updraft_activejobsrow th {\n\tmax-width: 112px;\n\tmargin: 0;\n\tpadding: 13px 0 0 0;\n}\n\n#updraft_lastlogmessagerow .last-message {\n\tpadding-top: 20px;\n\tdisplay: block;\n}\n\n.updraft_simplepie {\n\tvertical-align: top;\n}\n\n.download-backups {\n\tmargin-top: 8px;\n}\n\n.download-backups .updraft_download_button {\n\tmargin-right: 6px;\n}\n\n.download-backups .ud-whitespace-warning, .download-backups .ud-bom-warning {\n\tbackground-color: pink;\n\tpadding: 8px;\n\tmargin: 4px;\n\tborder: 1px dotted;\n}\n\n.download-backups .ul {\n\tlist-style: none inside;\n\tmax-width: 800px;\n\tmargin-top: 6px;\n\tmargin-bottom: 12px;\n}\n\n#updraft-plupload-modal {\n\tmargin: 16px 0;\n}\n\n.download-backups .upload {\n\tmax-width: 610px;\n}\n\n.download-backups #plupload-upload-ui {\n\twidth: 100%;\n}\n\n.ud_downloadstatus {\n\tpadding: 10px 0;\n}\n\n#ud_massactions, #updraft-delete-waitwarning {\n\tpadding: 14px;\n\tbackground: rgb(241, 241, 241);\n\tposition: absolute;\n\tleft: 0;\n\ttop: 100%;\n}\n\n#ud_massactions > *, #updraft-delete-waitwarning > * {\n\tvertical-align: middle;\n}\n\n#ud_massactions .updraftplus-remove {\n\tdisplay: inline-block;\n\tmargin-right: 0;\n}\n\n#ud_massactions .updraftplus-remove a {\n\ttext-decoration: none;\n}\n\n#ud_massactions .updraft-viewlogdiv a {\n\ttext-decoration: none;\n\tposition: relative;\n}\n\nsmall.ud_massactions-tip {\n\tdisplay: inline-block;\n\topacity: 0.5;\n\tfont-style: italic;\n\tmargin-left: 20px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups {\n\tmargin-bottom: 35px;\n\tposition: relative;\n}\n\n#updraft-message-modal-innards {\n\tpadding: 4px;\n}\n\n#updraft-authenticate-modal {\n\ttext-align: center;\n\tfont-size: 16px !important;\n}\n\n#updraft-authenticate-modal p {\n\tfont-size: 16px;\n}\n\n#updraft_delete_form p {\n\tmargin-top: 3px;\n\tpadding-top: 0;\n}\n\n#updraft_restore_form .cannot-restore {\n\tmargin: 8px 0;\n}\n\n#updraft_restorer_dboptions {\n\tpadding: 12px;\n\tmargin: 8px 0 4px 0;\n\tborder: dashed 1px;\n}\n\n#updraft_restorer_dboptions h4 {\n\tmargin: 0px 0px 6px 0px;\n\tpadding: 0px;\n}\n\n.updraft_debugrow th {\n\tvertical-align: top;\n\tpadding-top: 6px;\n\tmax-width: 140px;\n}\n\n.expertmode p {\n\tfont-size: 125%;\n}\n\n.expertmode .call-wp-action {\n\twidth: 300px;\n\theight: 22px;\n}\n\n.updraftplus-lock-advert {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.uncompressed-data {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.delete-old-directories {\n\tpadding: 8px;\n\tpadding-bottom: 12px;\n}\n\n.active-jobs {\n\twidth: 100%;\n\ttext-align: center;\n\tpadding: 33px;\n}\n\n.job-id {\n\tmargin-top: 0;\n\tmargin-bottom: 8px;\n}\n\n.next-resumption {\n\tfont-weight: bold;\n}\n\n.updraft_percentage {\n\tz-index: -1;\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 0px;\n\ttext-align: center;\n\tbackground-color: #1D8EC2;\n\ttransition: width 0.3s;\n}\n\n.curstage {\n\tz-index: 1;\n\tborder-radius: 2px;\n\tmargin-top: 8px;\n\twidth: 100%;\n\theight: 26px;\n\tline-height: 26px;\n\tposition: relative;\n\ttext-align: center;\n\tfont-style: italic;\n\tcolor: #FFF;\n\tbackground-color: #B7B7B7;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n}\n\n.curstage-info {\n\tdisplay: inline-block;\n\tz-index: 2;\n}\n\n.retain-files {\n\twidth: 48px;\n}\n\n.backup-interval-description tr td div {\n\tmax-width: 670px;\n}\n\n#updraft-manualdecrypt-modal {\n\twidth: 85%;\n\tmargin: 6px;\n\tmargin-left: 100px;\n}\n\n.directory-permissions {\n\tfont-size: 110%;\n\tfont-weight: bold;\n}\n\n.double-warning {\n\tborder: 1px solid;\n\tpadding: 6px;\n}\n\n.raw-backup-info {\n\tfont-style: italic;\n\tfont-weight: bold;\n\tfont-size: 120%;\n}\n\n.updraft_existingbackup_date {\n\twidth: 22%;\n\tmax-width: 140px;\n}\n\n.updraft_existing_backups_wrapper {\n\tmargin-top: 20px;\n\tborder-top: 1px solid #DDD;\n}\n\n.updraft-no-backups-msg {\n\ttext-align: center;\n}\n\n.tr-bottom-4 {\n\tmargin-bottom: 4px;\n}\n\n.existing-backups-table th {\n\tpadding: 8px 10px;\n}\n\n.form-table .backup-date {\n\twidth: 172px;\n}\n\n.form-table .backup-data {\n\twidth: 426px;\n}\n\n.form-table .updraft_backup_actions {\n\twidth: 272px;\n}\n\n.existing-date {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmax-width: 140px;\n\twidth: 25%;\n}\n\n.line-break-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.line-break-td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.td-line-color {\n\theight: 2px;\n\tbackground-color: #888;\n}\n\n.raw-backup {\n\tmax-width: 140px;\n}\n\n.existing-backups-actions {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border > td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.existing-backups-border > div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.updraft_existing_backup_date {\n\tmax-width: 140px;\n}\n\n.updraftplus-upload {\n\tmargin-right: 6px;\n\tfloat: left;\n\tclear: none;\n}\n\n.before-restore-button {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.before-restore-button div {\n\tfloat: none;\n\tdisplay: inline-block;\n}\n\n.table-separator-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.table-separator-td {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n.end-of-table-div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.last-backup-job {\n\tpadding-top: 3% !important;\n}\n\n.line-height-03 {\n\tline-height: 0.3 !important;\n}\n\n.line-height-13 {\n\tline-height: 1.3 !important;\n}\n\n.line-height-23 {\n\tline-height: 2.3 !important;\n}\n\n#updraft_diskspaceused {\n\tcolor: #DF6926;\n}\n\n#updraft_delete_old_dirs_pagediv {\n\tpadding-bottom: 10px;\n}\n\n/*#updraft_lastlogmessagerow > td, #updraft_last_backup > td {\n\tpadding: 0;\n}*/\n\n/* Time + scheduling add-on*/\n.fix-time {\n\twidth: 70px;\n}\n\n.retain-files {\n\twidth: 70px;\n}\n\n.number-input {\n\tmin-width: 50px;\n\tmax-width: 70px;\n}\n\n.additional-rule-width {\n\tmin-width: 60px;\n\tmax-width: 70px;\n}\n\n/* Add-ons */\n/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */\n\n.dashicons {\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n\n.addon-logo-150 {\n\tmargin-left: 30px;\n\tmargin-top: 33px;\n\theight: 125px;\n\twidth: 150px;\n}\n\n.margin-bottom-50 {\n\tmargin-bottom: 50px;\n}\n\n.premium-container {\n\twidth: 80%;\n}\n\n/* Main Header */\n\n.main-header {\n\tbackground-color: #DF6926;\n\theight: 200px;\n\twidth: 100%;\n}\n\n.button-add-to-cart {\n\tcolor: white;\n\tborder-color: white;\n\tfloat: none;\n\tmargin-right: 17px;\n}\n\n.button-add-to-cart:hover, .button-add-to-cart:focus, .button-add-to-cart:active {\n\tborder-color: #A0A5AA;\n\tcolor: #A0A5AA;\n}\n\n.addon-title {\n\tmargin-top: 25px;\n}\n\n.addon-text {\n\tmargin-top: 75px;\n}\n\n.image-main-div {\n\twidth: 25%;\n\tfloat: left;\n}\n\n.text-main-div {\n\twidth: 60%;\n\tfloat: left;\n\ttext-align: center;\n\tcolor: white;\n\tmargin-top: 16px;\n}\n\n.text-main-div-title {\n\tfont-weight: bold !important;\n\tcolor: white;\n\ttext-align: center;\n}\n\n.text-main-div-paragraph {\n\tcolor: white;\n}\n\n/* End main header */\n\n/* Vault icons */\n\n.updraftplus-vault-cta {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 50px;\n}\n\n.updraftplus-vault-cta h1 {\n\tfont-weight: bold;\n}\n\n.updraftvault-buy {\n\twidth: 225px;\n\theight: 225px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 50px;\n\tposition: relative;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault {\n\twidth: 275px;\n\theight: 275px;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > a {\n\tright: 21%;\n\tfont-size: 16px;\n\tborder-width: 4px !important;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > p {\n\tfont-size: 16px;\n}\n\n.updraftvault-buy .button-purchase {\n\tright: 24%;\n\tmargin-left: 0;\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.right {\n\tmargin-right: 0px;\n}\n\n.updraftvault-buy .addon-logo-100 {\n\theight: 100px;\n\twidth: 125px;\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .addon-logo-large {\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .button-buy-vault {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 29%;\n\tbottom: 2%;\n}\n\n.premium-addon-div .button-purchase {\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy .button-buy-vault:hover {\n\tborder-color: darkgrey;\n\tcolor: darkgrey;\n}\n\n/* End Vault icons */\n\n/* Premium addons */\n\n.premium-addons {\n\tmargin-top: 80px;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.addon-list {\n\t/* margin-left: 32px; */\n\tdisplay: table;\n\ttext-align: center;\n}\n\n.premium-addons h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-addons p {\n\ttext-align: center;\n}\n\n.premium-addons .premium-addon-div {\n\twidth: 200px;\n\theight: 250px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 25px;\n\tmargin-top: 25px;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.premium-addons .premium-addon-div p {\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.premium-addons .premium-addon-div img {\n\twidth: auto;\n\theight: 50px;\n\tmargin-top: 7px;\n}\n\n.premium-addons .premium-addon-div .hr-alignment {\n\tmargin-top: 44px;\n}\n\n.premium-addons .premium-addon-div .dropbox-logo {\n\theight: 39px;\n\twidth: 150px;\n}\n\n.premium-addons .premium-addon-div .azure-logo, .premium-addons .premium-addon-div .onedrive-logo {\n\twidth: 75%;\n\theight: 24px;\n}\n\n.button-purchase {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 25%;\n\tbottom: 2%;\n}\n\n.button-purchase:hover {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n}\n\n.premium-addons .premium-addon-div hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.premium-addon-div p {\n\tfont-style: italic;\n}\n\n.addon-list > .premium-addon-div > .onedrive-fix,\n.addon-list > .premium-addon-div > .azure-logo {\n\tmargin-top: 33px;\n}\n\n.addon-list > .premium-addon-div > .dropbox-fix {\n\tmargin-top: 18px;\n}\n\n/* End premium addons */\n\n\n/* Forgotton something (that is the name of the div rather than a mental note!) */\n\n.premium-forgotton-something {\n\tmargin-top: 5%;\n}\n\n.premium-forgotton-something h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-forgotton-something p {\n\ttext-align: center;\n\tfont-weight: normal;\n}\n\n.premium-forgotton-something .button-faq {\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.premium-forgotton-something .button-faq:hover {\n\tcolor: #777;\n\tborder-color: #777;\n}\n\n/* End of forgotton something */\n\n.updraftplusmethod.updraftvault #vaultlogo {\n\tpadding-left: 40px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option {\n\tfloat: left;\n\twidth: 50%;\n\ttext-align: center;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option div {\n\tclear: right;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .clear-left {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .padding-top-20px {\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .padding-top-14px {\n\tpadding-top: 14px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {\n\tfont-size: 18px !important;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_showoptions, .updraftplusmethod.updraftvault #updraftvault_connect {\n\tmargin-top: 8px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_connect input {\n\tmargin-right: 10px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_email {\n\twidth: 280px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_pass {\n\twidth: 200px;\n}\n\n.updraftplusmethod.updraftvault #vault-is-connected {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default p {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option {\n\tfloat: left;\n\twidth: 33%;\n\ttext-align: center;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-size {\n\tfont-size: 200%;\n\tfont-weight: bold;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-link {\n\tclear: both;\n\tfont-size: 150%;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-or {\n\tclear: both;\n\tfont-size: 115%;\n\tfont-style: italic;\n}\n\n/* Automation Backup Advert by B */\n.autobackup-image {\n/* \tdisplay: inline-block; */\n/*\tmin-width: 10%;\n\tmax-width:25%;*/\n/*\tfloat: left;*/\n\tclear: left;\n\tfloat: left;\n\twidth: 110px;\n\theight: 110px;\n}\n\n.autobackup-description {\n\twidth: 100%;\n}\n\n.advert-description {\n\tfloat: left;\n\tclear: right;\n\tpadding: 4px 10px 8px 10px;\n\twidth: 70%;\n\tclear: right;\n\tvertical-align: top;\n}\n\n.advert-btn {\n\tdisplay: inline-block;\n\tmin-width: 10%;\n\tvertical-align: top;\n\tmargin-bottom: 8px;\n}\n\n.advert-btn:first-of-type {\n\tmargin-top: 25px;\n}\n\n.advert-btn a {\n\tdisplay: block;\n\tcursor: pointer;\n}\n\na.btn-get-started {\n\tbackground: #FFF;\n\tborder: 2px solid #DF6926;\n\tborder-radius: 4px;\n\tcolor: #DF6926;\n\tdisplay: inline-block;\n\tmargin-left: 10px !important;\n\tmargin-bottom: 7px !important;\n\tfont-size: 18px !important;\n\tline-height: 20px;\n\tmin-height: 28px;\n\tpadding: 11px 10px 5px 10px;\n\ttext-transform: uppercase;\n\ttext-decoration: none;\n}\n\n.circle-dblarrow {\n\tborder: 1px solid #DF6926;\n\tborder-radius: 100%;\n\tdisplay: inline-block;\n\tfont-size: 17px;\n\tline-height: 17px;\n\tmargin-left: 5px;\n\twidth: 20px;\n\theight: 20px;\n\ttext-align: center;\n}\n\n/* End Automation Backup Advert by B */\n/* New Responsive Pretty Advanced Settings */\n.expertmode .advanced_settings_container {\n\theight: auto;\n\toverflow: hidden;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu {\n\tfloat: none;\n\tborder-bottom: 1px solid rgb(204, 204, 204);\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content {\n\tpadding-top: 5px;\n\tfloat: none;\n\twidth: auto;\n\toverflow: auto;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content h3:first-child {\n\tmargin-top: 5px !important;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools {\n\tdisplay: none;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .site_info {\n\tdisplay: block;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\tdisplay: inline-block;\n\tcursor: pointer;\n\tpadding: 5px;\n\tcolor: #000;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text {\n\tfont-size: 16px;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover {\n\tbackground-color: #EAEAEA;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active {\n\tbackground-color: #3498DB;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active:hover {\n\tbackground-color: #72C5FD;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content input#import_settings {\n\theight: auto !important;\n}\n\ndiv#updraft-wrap a {\n\tcursor: pointer !important;\n}\n\n.updraftcentral_wizard_option {\n\twidth: 45%;\n\tfloat: left;\n\ttext-align: center;\n}\n\n.updraftcentral_wizard_option label {\n\tmargin-bottom: 8px;\n}\n\n#updraftcentral_keys_table {\n\tdisplay: none;\n}\n\n.create_key_container {\n\tborder: 1px solid;\n\tborder-radius: 4px;\n\tpadding: 0 0 6px 6px;\n\tmargin-bottom: 8px;\n}\n\n.updraftcentral_cloud_connect {\n\tborder-radius: 4px;\n\tborder: 1px solid #000;\n\tpadding: 0 20px;\n\tmargin-top: 30px;\n\tbackground-color: #FFF;\n}\n\n.updraftcentral_cloud_error {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #F00;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_info {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #EF8F31;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftplus_spinner.spinner {\n\tpadding-left: 25px;\n\tfloat: none;\n}\n\n.updraftplus_spinner.spinner.visible {\n\tvisibility: visible;\n}\n\n.updraftcentral_cloud_notices .updraftplus_spinner {\n\tmargin-top: -5px;\n}\n\n.updraftcentral-subheading {\n\tfont-size: 14px;\n\tmargin-top: -10px;\n\tmargin-bottom: 20px;\n}\n\n#updraftcentral_cloud_form input#email,\n#updraftcentral_cloud_form input#password {\n\tmin-width: 250px;\n}\n\n.updraftcentral-data-consent {\n\tfont-size: 13px;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_wizard_image {\n\tfloat: left;\n\tmin-width: 100px;\n\tmargin-right: 25px;\n}\n\n.updraftcentral_cloud_wizard {\n\tfloat: left;\n}\n\n.updraftcentral_cloud_clear {\n\tclear: both;\n}\n\n.updraftplus-settings-footer {\n\tmargin-top: 30px;\n}\n\n.updraftplus-top-menu {\n\tpadding: 0.5em;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\tbackground: transparent;\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: none;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_row {\n\tflex-direction: column;\n\tpadding-left: 20px;\n\tpadding-right: 20px;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container {\n\twidth: 100%;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\toverflow: inherit;\n}\n\n#updraft_inpage_backup span#updraft_lastlogcontainer {\n\tpadding: 18px;\n\tbackground: #FAFAFA;\n\tdisplay: block;\n\tfont-size: 90%;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup div#updraft_activejobsrow {\n\tbackground: #FAFAFA;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow > div {\n\tbackground: transparent;\n\tpadding: 0;\n}\n\n#updraft_inpage_backup .last-message > strong {\n\tdisplay: block;\n\tmargin-top: 13px;\n}\n\n@media only screen and (min-width: 1024px) {\n\n\t#updraft_activejobsrow .updraft_row {\n\t\tdisplay: flex;\n\t\talign-items: baseline;\n\t}\n\n\t#updraft_activejobsrow .updraft_row .updraft_col {\n\t\tflex: auto;\n\t}\n\n\t#updraft_activejobsrow .updraft_progress_container {\n\t\twidth: calc(100% - 230px);\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\n\t.settings_page_updraftplus input[type=text],\n\t.settings_page_updraftplus input[type=password],\n\t.settings_page_updraftplus input[type=number] {\n\t\t/* border-radius: 4px; */\n\t\tline-height: 1.42;\n\t\t/* border: 1px solid #CCC; */\n\t\theight: 27px;\n\t\tpadding: 2px 6px;\n\t\tcolor: #555;\n\t}\n\n\t.settings_page_updraftplus input[type=\"number\"] {\n\t\theight: 31px;\n\t}\n\n\t#ud_massactions.active, #updraft-delete-waitwarning.active {\n\t\tposition: fixed;\n\t\tbottom: 0;\n\t\tleft: 160px;\n\t\tright: 0;\n\t\ttop: auto;\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t\tbox-shadow: 0 0 10px rgba(0, 0, 0, 0.2);\n\t}\n\n\tbody.folded #ud_massactions.active, body.folded #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n\t.updraft-after-form-table {\n\t\tmargin-left: 250px;\n\t}\n\n}\n\n@media only screen and (min-width: 782px) and (max-width: 960px) {\n\n\tbody.auto-fold #ud_massactions.active, body.auto-fold #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n}\n\n@media only screen and (max-width: 782px) {\n\n\t#updraft-wrap {\n\t\tmargin-right: 0;\n\t}\n\n\t#updraft-wrap .form-table td {\n\t\tpadding-right: 0;\n\t}\n\n\tlabel.updraft_checkbox {\n\t\tmargin-bottom: 8px;\n\t\tmargin-top: 8px;\n\t\tmargin-left: 36px;\n\t}\n\n\t.updraft_retain_rules {\n\t\tposition: relative;\n\t\tmargin-right: 0;\n\t\tborder: 1px solid #CCC;\n\t\tpadding: 5px;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t.updraft_retain_rules_delete {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 5px;\n\t}\n\n\ta[id*=updraft_retain_] {\n\t\tdisplay: block;\n\t\tpadding: 15px 15px 15px 0;\n\t}\n\n\tlabel.updraft_checkbox > input[type=checkbox] {\n\t\tmargin-left: -33px;\n\t}\n\n\t#updraft-backupnow-button {\n\t\tmargin: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > .updraft_backup_btn_wrapper {\n\t\tpadding-top: 0;\n\t}\n\n\t#ud_massactions, #updraft-delete-waitwarning {\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t}\n\n\t#ud_massactions.active {\n\t\tposition: fixed;\n\t\ttop: auto;\n\t\tbottom: 0;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t\tbox-shadow: 0 -3px 15px rgba(0, 0, 0, 0.08);\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t}\n\n\t#ud_massactions strong {\n\t\tdisplay: block;\n\t\tmargin-bottom: 5px;\n\t}\n\n\tsmall.ud_massactions-tip {\n\t\tdisplay: block;\n\t}\n\n/*\t.advert-description {\n\t\tmin-width: 75%;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.advert-btn {\n\t\tmargin-top: 15px;\n\t\tmargin-left:86px;\n\t\tmin-width: 100%;\n\t}*/\n\n\t.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\t\tfont-weight: normal;\n\t}\n\n\t.existing-backups-table .backup_date_label .clear-right {\n\t\tdisplay: inline-block;\n\t}\n\n\ttable.widefat.existing-backups-table {\n\t\tborder: 0;\n\t\tbox-shadow: none;\n\t\tbackground: transparent;\n\t}\n\n\t.existing-backups-table thead {\n\t\tborder: none;\n\t\tclip: rect(0 0 0 0);\n\t\theight: 1px;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.existing-backups-table tr {\n\t\tdisplay: block;\n\t\tmargin-bottom: .625em;\n\t\tpadding-bottom: 16.625px;\n\t\twidth: 100%;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t\tbackground: #FFF;\n\t\tbox-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);\n\t}\n\n\t.existing-backups-table td {\n\t\tborder-bottom: 1px solid #DDD;\n\t\tdisplay: block;\n\t\tfont-size: .9em;\n\t\ttext-align: left;\n\t\twidth: 100%;\n\t\tpadding: 10px;\n\t\tmargin: 0;\n\t}\n\n\t.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before {\n\t\t/*\n\t\t* aria-label has no advantage, it won't be read inside a table\n\t\tcontent: attr(aria-label);\n\t\t*/\n\t\tcontent: attr(data-label);\n\t\tfont-weight: bold;\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tleft: auto;\n\t\tpadding-bottom: 10px;\n\t\twidth: auto;\n\t\ttext-align: left;\n\t}\n\n\t.existing-backups-table td:last-child {\n\t\tborder-bottom: 0;\n\t}\n\n\t.form-table td.updraft_existingbackup_date {\n\t\twidth: inherit;\n\t\tmax-width: 100%;\n\t}\n\n\t.existing-backups-table td.before-restore-button {\n\t\tmin-height: 36px;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t\twidth: 100%;\n\t}\n\n\t.updraft_progress_container {\n\t\t/* width: 77%; */\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row {\n\t\tposition: relative;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected {\n\t\tbackground-color: #FFF;\n\t\tborder-left: 4px solid #0572AA;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select) {\n\t\tmargin-left: 50px;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select {\n\t\twidth: 50px !important;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbox-sizing: border-box;\n\t\theight: 100%;\n\t\tz-index: 1;\n\t\tborder: none;\n\t\tborder-right: 1px solid rgba(0, 0, 0, 0.05);\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups input[type=\"checkbox\"] {\n\t\theight: 25px;\n\t}\n\n\t.updraft_migrate_intro button.button.button-primary.button-hero {\n\t\tdisplay: block;\n\t\tmargin-right: 0;\n\t\twidth: 100%;\n\t\tmax-width: 100%;\n\t}\n\n\t.updraftclone-main-row {\n\t\tflex-direction: column;\n\t}\n\n\t.updraftclone-main-row > div {\n\t\twidth: auto;\n\t\tmax-width: none;\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.form-table th {\n\t\tpadding-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 600px) {\n\t\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t}\n\n\t.updraft_next_scheduled_entity {\n\t\tfloat: none;\n\t\twidth: 100%;\n\t\tmargin-bottom: 2em;\n\t}\n\n\t.updraft_time_now_wrapper {\n\t\tmargin-top: 0;\n\t}\n\n\t#updraft_lastlogmessagerow h3 {\n\t\tmargin-bottom: 5px;\n\t}\n\n\t#updraft_lastlogmessagerow .updraft-log-link {\n\t\tdisplay: block;\n\t\tfloat: none;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 520px) {\n}\n\n@media only screen and (min-width: 768px) {\n\n\t.addon-activation-notice {\n\t\tleft: 20em;\n\t}\n\n\t.existing-backups-table tbody tr:hover {\n\t\tbackground: #F1F1F1;\n\t}\n\n\t.existing-backups-table tbody tr td.before-restore-button {\n\t\tposition: relative;\n\t}\n\n\t.form-table .existing-backups-table thead th.check-column {\n\t\tpadding-left: 6px;\n\t}\n\n\t.existing-backups-table tr td:first-child {\n\t\tborder-left: 4px solid transparent;\n\t}\n\n\t.existing-backups-table tr.backuprowselected td:first-child {\n\t\tborder-left-color: #0572AA;\n\t}\n\n}\n\n@media screen and (min-width: 670px) {\n\t\n\t.expertmode .advanced_settings_container .advanced_settings_menu {\n\t\tfloat: left;\n\t\twidth: 215px;\n\t\tborder-right: 1px solid rgb(204, 204, 204);\n\t\tborder-bottom: none;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_content {\n\t\tpadding-left: 10px;\n\t\tpadding-top: 0px;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\t\tdisplay: block;\n\t}\n\n}\n\n@media only screen and (max-width: 1068px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: calc(50% - 10px);\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: 100px;\n\t}\n\n}\n\n@media only screen and (max-width: 600px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: 100%;\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: auto;\n\t}\n\n\ttable.updraft_feat_table {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table tr {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\ttable.updraft_feat_table td {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table td:first-child {\n\t\twidth: 100%;\n\t\tborder-bottom: none;\n\t}\n\n\ttable.updraft_feat_table td:not(:first-child) {\n\t\twidth: 50%;\n\t\tbox-sizing: border-box;\n\t}\n\n\ttable.updraft_feat_table td:first-child:empty {\n\t\tdisplay: none;\n\t}\n\n\ttd[data-colname]::before {\n\t\tcontent: attr(data-colname);\n\t\tfont-size: 0.8rem;\n\t\tcolor: #CCC;\n\t\tline-height: 1;\n\t}\n\n}\n"]}
|
1 |
+
{"version":3,"sources":["css/updraftplus-admin.css"],"names":[],"mappings":"AAAA;;CAEC;EACC,WAAW;EACX,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb,uBAAuB;EACvB;;CAED;;AAED,uBAAuB;AACvB;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX;;AAED,2BAA2B;;AAE3B,kBAAkB;AAClB;CACC,sBAAsB;CACtB;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;AACtB,eAAe;AACf;CACC,mBAAmB;CACnB;;AAED,sBAAsB;AACtB,aAAa;AACb;CACC,sBAAsB;CACtB;;AAED,oBAAoB;;AAEpB;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,uCAAuC;CACvC;;AAED;CACC,sBAAsB;CACtB;;AAED;;CAEC,eAAe;CACf,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,eAAe;CACf,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED,iBAAiB;AACjB;CACC,aAAa;CACb;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;;CAEC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED,qBAAqB;;AAErB,kBAAkB;AAClB;CACC,kBAAkB;CAClB,oBAAoB;CACpB,oBAAoB;CACpB,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,wBAAwB;CACxB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,yBAAyB;CACzB,uBAAuB;CACvB,mBAAmB;CACnB,mBAAmB;CACnB,kBAAkB;CAClB,qBAAqB;CACrB,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,gCAAgC;CAChC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;;EAEE;;AAEF;CACC,cAAc;CACd;;AAED,gBAAgB;;AAEhB;CACC,qBAAc;CAAd,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,UAAU;CACV;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,oBAAoB;CACpB,YAAQ;KAAR,QAAQ;CACR;;AAED;CACC,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED,yBAAyB;AACzB;CACC,cAAc;CACd,mBAAmB;CACnB,SAAS;CACT,OAAO;CACP,aAAa;CACb,4BAA4B;CAC5B,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,2BAAuB;KAAvB,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ,8BAAiB;KAAjB,iBAAiB;CACjB;;AAED;;CAEC,YAAY;CACZ;;AAED;;CAEC;EACC,wBAAoB;MAApB,oBAAoB;EACpB,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,6BAAgB;MAAhB,gBAAgB;EAChB;;CAED;;EAEC,aAAa;EACb;;CAED;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,cAAc;CACd,mBAAmB;CACnB,oBAAoB;CACpB;;AAED,sBAAsB;AACtB;CACC,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,oBAAoB;CACpB,uBAAuB;CACvB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,aAAa;CACb;;AAED,oBAAoB;AACpB;CACC,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,qCAAqC;AACrC;CACC,oBAAoB;CACpB,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED,aAAa;;AAEb;CACC,sBAAsB;CACtB;;AAED;;;CAGC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,yBAAyB;CACzB,gCAAgC;CAChC;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,cAAc;CACd;;AAED,6BAA6B;AAC7B;CACC,mBAAmB;CACnB,qBAAc;CAAd,cAAc;CACd,2BAAsB;KAAtB,sBAAsB;CACtB,8BAAsB;KAAtB,sBAAsB;CACtB,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB,oBAAoB;CACpB,8BAA8B;CAC9B;;AAED;;CAEC,cAAc;CACd,kBAAkB;CAClB,aAAa;CACb,UAAU;CACV;;AAED;CACC,sBAAsB;CACtB,kBAAkB;CAClB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB,oBAAoB;CACpB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB,qBAAqB;CACrB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,WAAW;CACX,qBAAqB;CACrB;;AAED;;EAEE;AACF;CACC,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB,UAAU;CACV,iBAAiB;CACjB,oBAAoB;CACpB,qBAAqB;CACrB;;AAED;CACC,qBAAqB;CACrB;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,6BAA6B;CAC7B;;AAED;CACC,WAAW;CACX,WAAW;CACX;;AAED;CACC,cAAc;CACd,oFAAoF;CACpF,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,WAAW;CACX;;AAED;CACC,oBAAoB;CACpB,iCAAiC;CACjC,iDAAiD;CACjD;;AAED;CACC,wGAAwG;CACxG;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,kEAAkE;CAClE,WAAW;CACX;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,iBAAiB;CACjB,8BAAsB;KAAtB,sBAAsB;CACtB,oBAAgB;KAAhB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB,aAAa;CACb,yBAAyB;CACzB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,mBAAmB;CACnB,+BAA+B;CAC/B,sBAAwB;KAAxB,wBAAwB;CACxB,uBAAoB;KAApB,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd;;AAED;CACC,aAAa;CACb,kCAAkC;CAClC,0BAA0B;CAC1B;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,UAAU;CACV,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,0FAA0F;CAC1F,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB,oBAAoB;CACpB,gBAAgB;CAChB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,sBAAsB;CACtB,YAAY;CACZ;;GAEE;CACF;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,4BAA4B;CAC5B,+BAA+B;CAC/B,YAAY;CACZ,gBAAgB;CAChB,0CAA0C;CAC1C;;AAED;CACC,oBAAoB;CACpB,6BAA6B;CAC7B,gCAAgC;CAChC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,cAAc;CACd;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,oBAAoB;CACpB,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,eAAe;CACf,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB,YAAY;CACZ,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB,mBAAmB;CACnB,kBAAkB;CAClB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,0BAA0B;CAC1B,yBAAyB;CACzB,YAAY;CACZ,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB,WAAW;CACX;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,kBAAkB;CAClB;;AAED,sBAAsB;;AAEtB,4BAA4B;;AAE5B;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,mBAAmB;CACnB,WAAW;CACX;;AAED;;CAEC,kBAAkB;CAClB,gBAAgB;CAChB,oBAAoB;CACpB,cAAc;CACd,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB,mBAAmB;CACnB,eAAe;CACf;;AAED;;CAEC,sBAAsB;CACtB,iBAAiB;CACjB;;AAED;;;CAGC,yBAAyB;CACzB,iBAAiB;CACjB;;AAED;;CAEC;;EAEC,sBAAsB;EACtB;;CAED;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,aAAa;CACb,kBAAkB;CAClB;;AAED;;;CAGC,eAAe;CACf;;AAED;CACC,eAAe;CACf,kBAAkB;CAClB,gBAAgB;CAChB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,cAAc;CACd;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,cAAc;CACd,cAAc;CACd,uBAAuB;CACvB,mBAAmB;CACnB;;AAED;;;CAGC,aAAa;CACb,iBAAiB;CACjB,aAAa;CACb,wBAAwB;CACxB,mBAAmB;CACnB,SAAS;CACT,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,eAAe;CACf,yBAAyB;CACzB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED,mCAAmC;;AAEnC;CACC,iBAAiB;CACjB;;AAED;;CAEC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,cAAc;CACd;;AAED;CACC,8BAA8B;CAC9B,aAAa;CACb,eAAe;CACf,2BAA2B;CAC3B,gBAAgB;CAChB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,4BAA4B;CAC5B,8BAA8B;CAC9B,2BAA2B;CAC3B,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,aAAa;CACb,aAAa;CACb,8BAA8B;CAC9B;;AAED;CACC,+BAA+B;CAC/B;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB,kBAAkB;CAClB,mBAAmB;CACnB,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX;;AAED,mBAAmB;;AAEnB,oEAAoE;AACpE;;CAEC,wBAAwB;CACxB;;AAED;;CAEC,gCAAgC;CAChC;;AAED;;CAEC,+BAA+B;CAC/B;;AAED;;CAEC,wBAAwB;CACxB;;AAED,+BAA+B;AAC/B;CACC,mBAAmB;CACnB,cAAc;CACd,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED,8BAA8B;AAC9B;CACC,mBAAmB;CACnB,cAAc;CACd,YAAY;CACZ,uBAAuB;CACvB,oBAAoB;CACpB,mBAAmB;CACnB,gBAAgB;CAChB,yCAAyC;CACzC;;AAED;CACC,aAAa;CACb,YAAY;CACZ,aAAa;CACb,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB,OAAO;CACP,WAAW;CACX,2BAA2B;CAC3B,4BAA4B;CAC5B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB;;AAED;CACC,cAAc;CACd,YAAY;CACZ,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd;;AAED;;CAEC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb,8BAA8B;CAC9B,YAAY;CACZ,YAAY;CACZ,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,sBAAsB;CACtB,4BAA4B;CAC5B;;AAED;;CAEC,mBAAmB;CACnB,YAAY;CACZ,iBAAiB;CACjB;;AAED,mDAAmD;AACnD;CACC,eAAe;CACf,0BAA0B;CAC1B,mBAAmB;CACnB,yBAAyB;CACzB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,uBAAuB;CACvB,cAAc;CACd;;AAED;CACC,oBAAoB;CACpB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,iBAAiB;CACjB,WAAW;CACX,+BAA+B;CAC/B;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB,wBAAwB;CACxB,0BAA0B;CAC1B;;AAED;CACC,qBAAc;CAAd,cAAc;CACd,uBAAoB;KAApB,oBAAoB;CACpB,uBAA+B;KAA/B,+BAA+B;CAC/B,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,iBAAiB;CACjB,eAAe;CACf,UAAU;CACV,mBAAmB;CACnB,wBAAwB;CACxB,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;;CAEC;EACC,2BAAuB;MAAvB,uBAAuB;EACvB,mBAAmB;EACnB,uBAAoB;MAApB,oBAAoB;EACpB;;CAED;EACC,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,cAAc;CACd,yCAAyC;CACzC,mBAAmB;CACnB;;AAED;CACC,UAAU;CACV;;AAED;CACC,4BAAmB;KAAnB,2BAAmB;KAAnB,mBAAmB;CACnB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;;EAEE;AACF;CACC,qBAAc;CAAd,cAAc;CACd,wBAAoB;KAApB,oBAAoB;CACpB,oBAAgB;KAAhB,gBAAgB;CAChB,uBAA+B;KAA/B,+BAA+B;CAC/B,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,uBAAuB;CACvB,WAAW;CACX;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;;EAEE;AACF;CACC,iBAAiB;CACjB,UAAU;CACV,gBAAgB;CAChB;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,eAAe;CACf;;AAED;CACC,YAAY;CACZ;;AAED;CACC,qCAAqC;CACrC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,sCAAsC;CACtC,iBAAiB;CACjB,4BAA4B;CAC5B,uCAAuC;CACvC,qBAAqB;CACrB,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,gBAAgB;CAChB,wBAAwB;CACxB,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,yBAAyB;CACzB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,oBAAoB;CACpB;;AAED;;CAEC,4CAA4C;CAC5C,aAAa;CACb;;AAED;CACC,eAAe;CACf,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,aAAa;CACb;;AAED;CACC,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd,aAAa;CACb;;AAED;CACC,aAAa;CACb,wBAAwB;CACxB,YAAY;CACZ,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB;;AAED;CACC,UAAU;CACV,oBAAoB;CACpB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,WAAW;CACX,gBAAgB;CAChB,kBAAkB;CAClB,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,cAAc;CACd,sBAAsB;CACtB,sBAAsB;CACtB;;AAED;CACC,gBAAgB;CAChB,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,gBAAgB;CAChB,kBAAkB;CAClB,cAAc;CACd,YAAY;CACZ;;AAED,qBAAqB;AACrB;CACC,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,iBAAiB;CACjB,aAAa;CACb,cAAc;CACd,mBAAmB;CACnB,aAAa;CACb,mBAAmB;CACnB,iBAAiB;CACjB,eAAe;CACf,kBAAkB;CAClB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,YAAY;CACZ;;AAED;CACC,cAAc;CACd;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,WAAW;CACX;;AAED;CACC,0BAA0B;CAC1B,0BAA0B;CAC1B,oCAAoC;CACpC,+BAA+B;CAC/B,oCAAoC;CACpC;;AAED;CACC,cAAc;CACd;;AAED;;CAEC;EACC,eAAe;EACf,YAAY;EACZ,mBAAmB;EACnB;;CAED;;AAED,oCAAoC;AACpC;CACC,WAAW;CACX;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;;AAEH;CACC,iBAAiB;CACjB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,+BAA+B;CAC/B,uBAAuB;CACvB,wBAAwB;CACxB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,yBAAyB;CACzB;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,iBAAiB;CACjB,UAAU;CACV,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB,eAAe;CACf;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,uBAAuB;CACvB,aAAa;CACb,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,iBAAiB;CACjB,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,cAAc;CACd,+BAA+B;CAC/B,mBAAmB;CACnB,QAAQ;CACR,UAAU;CACV;;AAED;CACC,uBAAuB;CACvB;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB;;AAED;CACC,sBAAsB;CACtB;;AAED;CACC,sBAAsB;CACtB,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,aAAa;CACb,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,2BAA2B;CAC3B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf;;AAED;CACC,cAAc;CACd;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,wBAAwB;CACxB,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB,iBAAiB;CACjB,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,qBAAqB;CACrB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,cAAc;CACd;;AAED;CACC,cAAc;CACd,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB,UAAU;CACV,SAAS;CACT,mBAAmB;CACnB,0BAA0B;CAC1B,uBAAuB;CACvB;;AAED;CACC,WAAW;CACX,mBAAmB;CACnB,gBAAgB;CAChB,YAAY;CACZ,aAAa;CACb,kBAAkB;CAClB,mBAAmB;CACnB,mBAAmB;CACnB,mBAAmB;CACnB,YAAY;CACZ,0BAA0B;CAC1B,0CAA0C;CAC1C;;AAED;CACC,sBAAsB;CACtB,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB,aAAa;CACb;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB,2BAA2B;CAC3B;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CAGC,uBAAuB;CACvB,iBAAiB;CACjB,WAAW;CACX;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,YAAY;CACZ,YAAY;CACZ;;AAED;CACC,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,sBAAsB;CACtB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,4BAA4B;CAC5B;;AAED;CACC,eAAe;CACf;;AAED;CACC,qBAAqB;CACrB;;AAED;;GAEG;;AAEH,6BAA6B;AAC7B;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,gBAAgB;CAChB;;AAED,aAAa;AACb,oHAAoH;;AAEpH;CACC,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB,iBAAiB;CACjB,cAAc;CACd,aAAa;CACb;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,WAAW;CACX;;AAED,iBAAiB;;AAEjB;CACC,0BAA0B;CAC1B,cAAc;CACd,YAAY;CACZ;;AAED;CACC,aAAa;CACb,oBAAoB;CACpB,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,WAAW;CACX,YAAY;CACZ;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,6BAA6B;CAC7B,aAAa;CACb,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED,qBAAqB;;AAErB,iBAAiB;;AAEjB;CACC,YAAY;CACZ,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd;;AAED;CACC,WAAW;CACX,gBAAgB;CAChB,6BAA6B;CAC7B;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,WAAW;CACX,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,uBAAuB;CACvB,gBAAgB;CAChB;;AAED,qBAAqB;;AAErB,oBAAoB;;AAEpB;CACC,iBAAiB;CACjB,YAAY;CACZ,eAAe;CACf,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB,eAAe;CACf,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb,cAAc;CACd,uBAAuB;CACvB,sBAAsB;CACtB,eAAe;CACf,mBAAmB;CACnB,iBAAiB;CACjB,mBAAmB;CACnB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,aAAa;CACb,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,aAAa;CACb,aAAa;CACb;;AAED;CACC,WAAW;CACX,aAAa;CACb;;AAED;CACC,gBAAgB;CAChB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,mBAAmB;CACnB,WAAW;CACX,WAAW;CACX;;AAED;CACC,gBAAgB;CAChB,uBAAuB;CACvB;;AAED;CACC,YAAY;CACZ,uBAAuB;CACvB,iBAAiB;CACjB;;AAED;CACC,mBAAmB;CACnB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,iBAAiB;CACjB;;AAED,wBAAwB;;;AAGxB,mFAAmF;;AAEnF;CACC,eAAe;CACf;;AAED;CACC,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,eAAe;CACf,sBAAsB;CACtB,eAAe;CACf,eAAe;CACf;;AAED;CACC,YAAY;CACZ,mBAAmB;CACnB;;AAED,gCAAgC;;AAEhC;CACC,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,qBAAqB;CACrB;;AAED;CACC,aAAa;CACb,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,2BAA2B;CAC3B,qBAAqB;CACrB;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,aAAa;CACb;;AAED;CACC,aAAa;CACb;;AAED;CACC,UAAU;CACV,WAAW;CACX;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,WAAW;CACX,mBAAmB;CACnB,kBAAkB;CAClB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB;;AAED;CACC,YAAY;CACZ,gBAAgB;CAChB,mBAAmB;CACnB;;AAED,mCAAmC;AACnC;AACA,6BAA6B;AAC7B;iBACiB;AACjB,iBAAiB;CAChB,YAAY;CACZ,YAAY;CACZ,aAAa;CACb,cAAc;CACd;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ,aAAa;CACb,2BAA2B;CAC3B,WAAW;CACX,aAAa;CACb,oBAAoB;CACpB;;AAED;CACC,sBAAsB;CACtB,eAAe;CACf,oBAAoB;CACpB,mBAAmB;CACnB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf,gBAAgB;CAChB;;AAED;CACC,iBAAiB;CACjB,0BAA0B;CAC1B,mBAAmB;CACnB,eAAe;CACf,sBAAsB;CACtB,6BAA6B;CAC7B,8BAA8B;CAC9B,2BAA2B;CAC3B,kBAAkB;CAClB,iBAAiB;CACjB,4BAA4B;CAC5B,0BAA0B;CAC1B,sBAAsB;CACtB;;AAED;CACC,0BAA0B;CAC1B,oBAAoB;CACpB,sBAAsB;CACtB,gBAAgB;CAChB,kBAAkB;CAClB,iBAAiB;CACjB,YAAY;CACZ,aAAa;CACb,mBAAmB;CACnB;;AAED,uCAAuC;AACvC,6CAA6C;AAC7C;CACC,aAAa;CACb,iBAAiB;CACjB;;AAED;CACC,YAAY;CACZ,4CAA4C;CAC5C;;AAED;CACC,iBAAiB;CACjB,YAAY;CACZ,YAAY;CACZ,eAAe;CACf;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,cAAc;CACd;;AAED;CACC,eAAe;CACf;;AAED;CACC,sBAAsB;CACtB,gBAAgB;CAChB,aAAa;CACb,YAAY;CACZ;;AAED;CACC,gBAAgB;CAChB;;AAED;CACC,0BAA0B;CAC1B;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,0BAA0B;CAC1B,YAAY;CACZ;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,2BAA2B;CAC3B;;AAED;CACC,WAAW;CACX,YAAY;CACZ,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB;;AAED;CACC,cAAc;CACd;;AAED;CACC,kBAAkB;CAClB,mBAAmB;CACnB,qBAAqB;CACrB,mBAAmB;CACnB;;AAED;CACC,mBAAmB;CACnB,uBAAuB;CACvB,gBAAgB;CAChB,iBAAiB;CACjB,uBAAuB;CACvB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,4BAA4B;CAC5B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,uBAAuB;CACvB,kBAAkB;CAClB,+BAA+B;CAC/B,uBAAuB;CACvB,oBAAoB;CACpB;;AAED;CACC,mBAAmB;CACnB,YAAY;CACZ;;AAED;CACC,oBAAoB;CACpB;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,kBAAkB;CAClB,oBAAoB;CACpB;;AAED;;CAEC,iBAAiB;CACjB;;AAED;CACC,gBAAgB;CAChB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ,iBAAiB;CACjB,mBAAmB;CACnB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,YAAY;CACZ;;AAED;CACC,iBAAiB;CACjB;;AAED;CACC,eAAe;CACf;;AAED;CACC,wBAAwB;CACxB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,2BAAuB;KAAvB,uBAAuB;CACvB,mBAAmB;CACnB,oBAAoB;CACpB;;AAED;CACC,YAAY;CACZ;;AAED;CACC,kBAAkB;CAClB;;AAED;CACC,cAAc;CACd,oBAAoB;CACpB,eAAe;CACf,eAAe;CACf,2CAA2C;CAC3C;;AAED;CACC,oBAAoB;CACpB,2CAA2C;CAC3C;;AAED;CACC,wBAAwB;CACxB,WAAW;CACX;;AAED;CACC,eAAe;CACf,iBAAiB;CACjB;;AAED;;CAEC;EACC,qBAAc;EAAd,cAAc;EACd,yBAAsB;MAAtB,sBAAsB;EACtB;;CAED;EACC,eAAW;MAAX,WAAW;EACX;;CAED;EACC,0BAA0B;EAC1B;;CAED;;AAED;;CAEC;;;EAGC,yBAAyB;EACzB,kBAAkB;EAClB,6BAA6B;EAC7B,aAAa;EACb,iBAAiB;EACjB,YAAY;EACZ;;CAED;EACC,aAAa;EACb;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,YAAY;EACZ,SAAS;EACT,UAAU;EACV,iBAAiB;EACjB,WAAW;EACX,wCAAwC;EACxC;;CAED;EACC,WAAW;EACX;;CAED;EACC,mBAAmB;EACnB;;CAED;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;;AAED;;CAEC;EACC,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,kBAAkB;EAClB;;CAED;EACC,mBAAmB;EACnB,gBAAgB;EAChB,uBAAuB;EACvB,aAAa;EACb,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,SAAS;EACT,SAAS;EACT;;CAED;EACC,eAAe;EACf,0BAA0B;EAC1B;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,UAAU;EACV,eAAe;EACf,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB;;CAED;EACC,gBAAgB;EAChB,UAAU;EACV,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,mBAAmB;EACnB,4CAA4C;EAC5C,iBAAiB;EACjB,WAAW;EACX;;CAED;EACC,eAAe;EACf,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf;;AAEF;;;;;;;;;IASI;;CAEH;EACC,oBAAoB;EACpB;;CAED;EACC,sBAAsB;EACtB;;CAED;EACC,UAAU;EACV,iBAAiB;EACjB,wBAAwB;EACxB;;CAED;EACC,aAAa;EACb,oBAAoB;EACpB,YAAY;EACZ,aAAa;EACb,iBAAiB;EACjB,WAAW;EACX,mBAAmB;EACnB,WAAW;EACX,WAAW;EACX,UAAU;EACV;;CAED;EACC,eAAe;EACf,sBAAsB;EACtB,yBAAyB;EACzB,YAAY;EACZ,WAAW;EACX,UAAU;EACV,oBAAoB;EACpB,iBAAiB;EACjB,yCAAyC;EACzC;;CAED;EACC,8BAA8B;EAC9B,eAAe;EACf,gBAAgB;EAChB,iBAAiB;EACjB,YAAY;EACZ,cAAc;EACd,UAAU;EACV;;CAED;EACC;;;IAGE;EACF,0BAA0B;EAC1B,kBAAkB;EAClB,eAAe;EACf,mBAAmB;EACnB,WAAW;EACX,qBAAqB;EACrB,YAAY;EACZ,iBAAiB;EACjB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,iBAAiB;EACjB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,uBAAuB;EACvB,+BAA+B;EAC/B;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,uBAAuB;EACvB,mBAAmB;EACnB,QAAQ;EACR,OAAO;EACP,uBAAuB;EACvB,aAAa;EACb,WAAW;EACX,aAAa;EACb,4CAA4C;EAC5C;;CAED;EACC,aAAa;EACb;;CAED;EACC,eAAe;EACf,gBAAgB;EAChB,YAAY;EACZ,gBAAgB;EAChB;;CAED;EACC,2BAAuB;MAAvB,uBAAuB;EACvB;;CAED;EACC,YAAY;EACZ,gBAAgB;EAChB,gBAAgB;EAChB,oBAAoB;EACpB;;CAED;EACC,qBAAqB;EACrB;;CAED;;AAED;;CAEC;EACC;;CAED;EACC,YAAY;EACZ,YAAY;EACZ,mBAAmB;EACnB;;CAED;EACC,cAAc;EACd;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,eAAe;EACf,YAAY;EACZ,UAAU;EACV,oBAAoB;EACpB;;CAED;;AAED;CACC;;AAED;;CAEC;EACC,WAAW;EACX;;CAED;EACC,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB;;CAED;EACC,kBAAkB;EAClB;;CAED;EACC,mCAAmC;EACnC;;CAED;EACC,2BAA2B;EAC3B;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,aAAa;EACb,2CAA2C;EAC3C,oBAAoB;EACpB;;CAED;EACC,mBAAmB;EACnB,iBAAiB;EACjB;;CAED;EACC,eAAe;EACf;;CAED;;AAED;;CAEC;EACC,wBAAwB;EACxB,oBAAoB;EACpB;;CAED;EACC,aAAa;EACb;;CAED;;AAED;;CAEC;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,YAAY;EACZ;;CAED;EACC,eAAe;EACf;;CAED;EACC,qBAAc;EAAd,cAAc;EACd,oBAAgB;MAAhB,gBAAgB;EAChB;;CAED;EACC,eAAe;EACf;;CAED;EACC,YAAY;EACZ,oBAAoB;EACpB;;CAED;EACC,WAAW;EACX,uBAAuB;EACvB;;CAED;EACC,cAAc;EACd;;CAED;EACC,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;EACZ,eAAe;EACf;;CAED","file":"updraftplus-admin.min.css","sourcesContent":["@keyframes udp_blink {\n\n\tfrom {\n\t\topacity: 1;\n\t\ttransform: scale(1);\n\t}\n\n\tto {\n\t\topacity: 0.4;\n\t\ttransform: scale(0.85);\n\t}\n\n}\n\n/* Widths and sizing */\n.max-width-600 {\n\tmax-width: 600px;\n}\n\n.width-900 {\n\tmax-width: 900px;\n}\n\n.width-80 {\n\twidth: 80%;\n}\n\n/* End widths and sizing */\n\n/* Font styling */\n.no-decoration {\n\ttext-decoration: none;\n}\n\n.bold {\n\tfont-weight: bold;\n}\n\n/* End font styling */\n/* Alignment */\n.center-align-td {\n\ttext-align: center;\n}\n\n/* End of Alignment */\n/* Padding */\n.remove-padding {\n\tpadding: 0 !important;\n}\n\n/* End of padding */\n\n.updraft-text-center {\n\ttext-align: center;\n}\n\n.autobackup {\n\tpadding: 6px;\n\tmargin: 8px 0px;\n}\n\nul .disc {\n\tlist-style: disc inside;\n}\n\n.dashicons-log-fix {\n\tdisplay: inherit;\n}\n\n.udpdraft__lifted {\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n}\n\n#updraft-wrap a .dashicons {\n\ttext-decoration: none;\n}\n\n.updraft-field-description,\ntable.form-table td p.updraft-field-description {\n\tfont-size: 90%;\n\tline-height: 1.2;\n\tfont-style: italic;\n\tmargin-bottom: 5px;\n}\n\n/* Input boxes */\nlabel.updraft_checkbox {\n\tdisplay: block;\n\tmargin-bottom: 4px;\n\tmargin-left: 26px;\n}\n\nlabel.updraft_checkbox > input[type=checkbox] {\n\tmargin-left: -25px;\n}\n\ndiv[id*=\"updraft_include_\"] {\n\tmargin-bottom: 9px;\n}\n\n/* Input boxes */\n.settings_page_updraftplus input[type=\"file\"] {\n\tborder: none;\n}\n\n.settings_page_updraftplus .wipe_settings {\n\tpadding-bottom: 10px;\n}\n\n.settings_page_updraftplus input[type=\"text\"] {\n\tfont-size: 14px;\n}\n\n.settings_page_updraftplus select {\n\tborder-radius: 4px;\n\tmax-width: 100%;\n}\n\ninput.updraft_input--wide,\ntextarea.updraft_input--wide {\n\tmax-width: 442px;\n\twidth: 100%;\n}\n\n#updraft-wrap .button-large {\n\tfont-size: 1.3em;\n}\n\n/* End input boxes */\n\n/* Main Buttons */\n.main-dashboard-buttons {\n\tborder-width: 4px;\n\tborder-radius: 12px;\n\tletter-spacing: 0px;\n\tfont-size: 17px;\n\tfont-weight: bold;\n\tpadding-left: 0.7em;\n\tpadding-right: 2em;\n\tpadding: 0.3em 1em;\n\tline-height: 1.7em;\n\tbackground: transparent;\n\tposition: relative;\n\tborder: 2px solid;\n\ttransition: all 0.2s;\n\tvertical-align: baseline;\n\tbox-sizing: border-box;\n\ttext-align: center;\n\tline-height: 1.3em;\n\tmargin-left: .3em;\n\ttext-transform: none;\n\tline-height: 1;\n\ttext-decoration: none;\n}\n\n.button-restore {\n\tborder-color: rgb(98, 158, 192);\n\tcolor: rgb(98, 158, 192);\n}\n\n.dashboard-main-sizing {\n\tborder-width: 4px;\n\twidth: 190px;\n\tline-height: 1.7em;\n}\n\np.updraftplus-option {\n\tmargin-top: 0;\n\tmargin-bottom: 5px;\n}\n\np.updraftplus-option-inline {\n\tdisplay: inline-block;\n\tpadding-right: 20px;\n}\n\nspan.updraftplus-option-label {\n\tdisplay: block;\n}\n\n/*\n* MIGRATE - CLONE\n*/\n\n#updraft-navtab-migrate-content .postbox {\n\tpadding: 18px;\n}\n\n/* Clone Rows */\n\n.updraftclone-main-row {\n\tdisplay: flex;\n}\n\n.updraftclone-tokens {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tmargin-right: 20px;\n\tmax-width: 300px;\n}\n\n.updraftclone-tokens p {\n\tmargin: 0;\n}\n\n.updraftclone_action_box {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 10px;\n\tflex: 1;\n}\n\n.updraftclone_action_box p:first-child {\n\tmargin-top: 0;\n}\n\n.updraftclone_action_box p:last-child {\n\tmargin-bottom: 0;\n}\n\nspan.tokens-number {\n\tfont-size: 46px;\n\tdisplay: block;\n}\n\n/* Clone header button */\n.button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: none;\n\tposition: absolute;\n\tright: 0;\n\ttop: 0;\n\theight: 100%;\n\tborder-left: 1px solid #CCC;\n\tpadding-left: 10px;\n\tpadding-right: 10px;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_container {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box {\n\tmargin-right: 20px;\n\twidth: 100%;\n\tflex-basis: 100%;\n}\n\n.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\tfloat: none;\n}\n\n@media (min-width: 1024px) {\n\n\t.updraft_migrate_widget_temporary_clone_stage0_container {\n\t\tflex-direction: row;\n\t\tflex-wrap: wrap;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box {\n\t\tflex-basis: 45%;\n\t}\n\n\t.updraft_migrate_widget_temporary_clone_stage0_box iframe,\n\t.updraft_migrate_widget_temporary_clone_stage0_box a.udp-replace-with-iframe--js {\n\t\tfloat: right;\n\t}\n\n}\n\n.updraft_migrate_widget_temporary_clone_show_stage0 .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n}\n\n.opened .button.updraft_migrate_widget_temporary_clone_show_stage0 {\n\tdisplay: inline-block;\n}\n\n.opened .updraft_migrate_widget_temporary_clone_stage0 {\n\tbackground: #F5F5F5;\n\tpadding: 20px;\n\tborder-radius: 8px;\n\tmargin-bottom: 21px;\n}\n\n/* Clone list table */\n.clone-list {\n\tclear: both;\n\twidth: 100%;\n\tmargin-top: 40px;\n}\n\n.clone-list table {\n\twidth: 100%;\n\ttext-align: left;\n}\n\n.clone-list table tr th {\n\tbackground: #E4E4E4;\n}\n\n.clone-list table tr td {\n\tbackground: #F5F5F5;\n\tword-break: break-word;\n}\n\n.clone-list table tr:nth-child(odd) td {\n\tbackground: #FAFAFA;\n}\n\n.clone-list table td,\n.clone-list table th {\n\tpadding: 6px;\n}\n\n/* Clone Progress */\n.updraftplus-clone .updraft_row {\n\tpadding-left: 0;\n\tpadding-right: 0;\n}\n\nbutton#updraft_migrate_createclone + .updraftplus_spinner {\n\tmargin-top: 13px;\n}\n\n/* Clone - Show step 1 info button */\n.button.button-hero.updraftclone_show_step_1 {\n\twhite-space: normal;\n\theight: auto;\n\tline-height: 14px;\n\tpadding-top: 10px;\n\tpadding-bottom: 10px;\n}\n\n.button.button-hero.updraftclone_show_step_1 span.dashicons {\n\theight: auto;\n}\n\n.updraftplus_clone_status {\n\tcolor: red;\n}\n\n/* MIGRATE */\n\na.updraft_migrate_add_site--trigger span.dashicons {\n\ttext-decoration: none;\n}\n\n.button-restore:hover, .button-migrate:hover, .button-backup:hover,\n.button-view-log:hover, .button-mass-selectors:hover,\n.button-delete:hover, .button-entity-backup:hover, .udp-button-primary:hover {\n\tborder-color: #DF6926;\n\tcolor: #DF6926;\n}\n\n.button-migrate {\n\tcolor: rgb(238, 169, 32);\n\tborder-color: rgb(238, 169, 32);\n}\n\n#updraft_migrate_tab_main {\n\tpadding: 8px;\n}\n\n.updraft_migrate_widget_module_content {\n\tbackground: #FFF;\n\tborder-radius: 0;\n\tposition: relative;\n}\n\nbody.js #updraft_migrate .updraft_migrate_widget_module_content {\n\tdisplay: none;\n}\n\n.updraft_migrate_widget_module_content > h3,\ndiv[class*=\"updraft_migrate_widget_temporary_clone_stage\"] > h3 {\n\tmargin-top: 0;\n}\n\n/* Migrate / Clone headers */\n.updraft_migrate_widget_module_content header {\n\tposition: relative;\n\tdisplay: flex;\n\talign-content: center;\n\tjustify-items: center;\n\tmargin-top: -18px;\n\tmargin-left: -18px;\n\tmargin-right: -18px;\n\tmargin-bottom: 15px;\n\tborder-bottom: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content header h3,\n.updraft_migrate_widget_module_content header button.button.close {\n\tpadding: 10px;\n\tline-height: 20px;\n\theight: auto;\n\tmargin: 0;\n}\n\n.updraft_migrate_widget_module_content button.button.close {\n\ttext-decoration: none;\n\tpadding-left: 5px;\n\tborder-right: 1px solid #CCC;\n}\n\n.updraft_migrate_widget_module_content button.button.close .dashicons {\n\tmargin-top: 1px;\n}\n\n.updraft_migrate_widget_module_content header h3 {\n\tmargin: 0;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero {\n\tmax-width: 235px;\n\tword-wrap: normal;\n\twhite-space: normal;\n\tline-height: 1;\n\theight: auto;\n\tpadding-top: 13px;\n\tpadding-bottom: 13px;\n\ttext-align: left;\n\tposition: relative;\n\tmargin-right: 10px;\n\tmargin-bottom: 10px;\n}\n\n.updraft_migrate_intro button.button.button-primary.button-hero .dashicons {\n\tposition: absolute;\n\tleft: 10px;\n\ttop: calc(50% - 8px);\n}\n\n/*\njquery UI Accordion module\n*/\n#updraft_migrate .ui-widget-content a {\n\tcolor: #1C94C4;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header {\n\tbackground: #F6F6F6;\n\tmargin: 0;\n\tborder-radius: 0;\n\tpadding-left: 0.5em;\n\tpadding-right: 0.7em;\n}\n\n#updraft-wrap .ui-widget {\n\tfont-family: inherit;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-w {\n\tbackground-position: -96px 0px;\n}\n\n.ui-accordion-header .ui-accordion-header-icon.ui-icon-caret-1-s {\n\tbackground-position: -64px 0;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .ui-accordion-header-icon {\n\tleft: auto;\n\tright: 5px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px rgba(91, 157, 217, 0.22), 0 0 2px 1px rgba(30, 140, 190, 0.3);\n\tbackground: #FFF;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus .dashicons {\n\tcolor: #0572AA;\n\topacity: 1;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active {\n\tbackground: #F6F6F6;\n\tborder-bottom: 2px solid #0572AA;\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header.ui-state-active:focus {\n\tbox-shadow: 1px 6px 12px -5px rgba(0, 0, 0, 0.3), 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:not(:first-child) {\n\tborder-top: none;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header .dashicons {\n\topacity: 0.4;\n\tmargin-right: 10px;\n}\n\n#updraft-wrap .ui-accordion .ui-accordion-header:focus {\n\toutline: none;\n\tbox-shadow: 0 0 0 1px #5B9DD9, 0 0 2px 1px rgba(30, 140, 190, .8);\n\tz-index: 1;\n}\n\n.updraft_next_scheduled_backups_wrapper {\n\tdisplay: flex;\n\tbackground: #FFF;\n\tjustify-items: center;\n\tflex-wrap: wrap;\n}\n\n.updraft_next_scheduled_backups_wrapper > div {\n\twidth: 50%;\n\tbackground: #FFF;\n\theight: auto;\n\t/* padding: 18px 33px; */\n\tpadding: 33px;\n\tbox-sizing: border-box;\n}\n\n.updraft_backup_btn_wrapper {\n\ttext-align: center;\n\tborder-left: 1px solid #F1F1F1;\n\tjustify-content: center;\n\talign-items: center;\n}\n\n.incremental-backups-only {\n\tdisplay: none;\n}\n\n.incremental-free-only {\n\tdisplay: none;\n}\n\n.incremental-free-only p {\n\tpadding: 5px;\n\tbackground: rgba(255, 0, 0, 0.06);\n\tborder: 1px solid #BFBFBF;\n}\n\n#updraft-delete-waitwarning span.spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tmargin: 0;\n\tmargin-right: 10px;\n}\n\nbutton#updraft-backupnow-button .spinner,\nbutton#updraft-backupnow-button .dashicons-yes {\n\tdisplay: none;\n}\n\nbutton#updraft-backupnow-button.loading .spinner {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tmargin-top: 13px;\n\tmargin-right: 0;\n}\n\nbutton#updraft-backupnow-button.loading {\n\tbackground-color: #EFEFEF;\n\tborder-color: #CCC;\n\ttext-shadow: 0 -1px 1px #BBC3C7, 1px 0 1px #BBC3C7, 0 1px 1px #BBC3C7, -1px 0 1px #BBC3C7;\n\tbox-shadow: none;\n}\n\nbutton#updraft-backupnow-button.finished .dashicons-yes {\n\tdisplay: inline-block;\n\tvisibility: visible;\n\tfont-size: 42px;\n\tmargin-right: 0;\n\tmargin-top: 2px;\n}\n\n.updraft_next_scheduled_entity {\n\twidth: 50%;\n\tdisplay: inline-block;\n\tfloat: left;\n\t/*\n\tpadding: 20px 20px 10px 20px;\n\t*/\n}\n\n.updraft_next_scheduled_entity .dashicons {\n\tcolor: #CCC;\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_entity strong {\n\tfont-size: 20px;\n}\n\n.updraft_next_scheduled_heading {\n\tmargin-bottom: 10px;\n}\n\n.updraft_next_scheduled_date_time {\n\tcolor: #46A84B;\n}\n\n.updraft_time_now_wrapper {\n\tmargin-top: 68px;\n\twidth: 100%;\n}\n\n.updraft_time_now_label, .updraft_time_now {\n\tdisplay: inline-block;\n\tpadding: 7px;\n}\n\n.updraft_time_now_label {\n\tbackground: #B7B7B7;\n\tborder-top-left-radius: 4px;\n\tborder-bottom-left-radius: 4px;\n\tcolor: #FFF;\n\tmargin-right: 0;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.4);\n}\n\n.updraft_time_now {\n\tbackground: #F1F1F1;\n\tborder-top-right-radius: 4px;\n\tborder-bottom-right-radius: 4px;\n\tmargin-left: -3px;\n}\n\n#updraft_lastlogmessagerow {\n\tmargin: 6px 0;\n}\n\n#updraft_lastlogmessagerow {\n\tclear: both;\n\tpadding: 0.25px 0;\n}\n\n#updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: right;\n\tmargin-top: -2.5em;\n\tmargin-right: 2px;\n}\n\n#updraft_lastlogmessagerow > div {\n\tclear: both;\n\tbackground: #FFF;\n\tpadding: 18px;\n}\n\n#updraft_activejobs_table {\n\toverflow: hidden;\n\twidth: 100%;\n\tbackground: #FAFAFA;\n\tpadding: 0;\n}\n\n.updraft_requeststart {\n\tpadding: 15px 33px;\n\ttext-align: center;\n}\n\n.updraft_requeststart .spinner {\n\tvisibility: visible;\n\tfloat: none;\n\tvertical-align: middle;\n\tmargin-top: -2px;\n}\n\na.updraft_jobinfo_delete.disabled {\n\topacity: 0.4;\n\tcolor: inherit;\n\ttext-decoration: none;\n}\n\n.updraft_row {\n\tclear: both;\n\ttransition: 0.3s all;\n\tpadding: 15px 33px;\n}\n\n.updraft_row.deleting {\n\topacity: 0.4;\n}\n\n.updraft_progress_container {\n\t/* width: 83%; */\n}\n\n.updraft_existing_backups_count {\n\tpadding: 2px 8px;\n\tfont-size: 12px;\n\tbackground: #CA4A1E;\n\tcolor: #FFF;\n\tfont-weight: bold;\n\tborder-radius: 10px;\n}\n\n.form-table .existing-backups-table input[type=\"checkbox\"] {\n\tborder-radius: 0;\n}\n\n.form-table .existing-backups-table .check-column {\n\twidth: 40px;\n\tpadding: 0;\n\tpadding-top: 8px;\n}\n\n.existing-backups-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.existing-backups-restore-buttons {\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 3px;\n}\n\n.button-delete {\n\tcolor: #E23900;\n\tborder-color: #E23900;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 10px;\n}\n\n.button-view-log, .button-mass-selectors {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-top: -1px;\n}\n\n.button-view-log {\n\twidth: 120px;\n}\n\n.button-existing-restore {\n\tfont-size: 14px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\twidth: 110px;\n}\n\n.main-restore {\n\tmargin-right: 3%;\n\tmargin-left: 3%;\n}\n\n.button-entity-backup {\n\tcolor: #555;\n\tborder-color: #555;\n\tfont-size: 11px;\n\tline-height: 1.4em;\n\tborder-width: 2px;\n\tmargin-right: 5px;\n}\n\n.button-select-all {\n\twidth: 122px;\n}\n\n.button-deselect {\n\twidth: 92px;\n}\n\n#ud_massactions > .display-flex > .mass-selectors-margins, #updraft-delete-waitwarning > .display-flex > .mass-selectors-margins {\n\tmargin-right: -4px;\n}\n\n.udp-button-primary {\n\tborder-width: 4px;\n\tcolor: #0073AA;\n\tborder-color: #0073AA;\n\tfont-size: 14px;\n\theight: 40px;\n}\n\n#ud_massactions .button-delete {\n\tmargin-right: 0px;\n}\n\n.stored_local {\n\tborder-radius: 5px;\n\tbackground-color: #007FE7;\n\tpadding: 3px 5px 5px 5px;\n\tcolor: #FFF;\n\tfont-size: 75%;\n}\n\nspan#updraft_lastlogcontainer {\n\tword-break: break-all;\n}\n\n.stored_icon {\n\theight: 1.3em;\n\tposition: relative;\n\ttop: 0.2em;\n}\n\n.backup_date_label > * {\n\tvertical-align: middle;\n}\n\n.backup_date_label .dashicons {\n\tfont-size: 18px;\n}\n\n.backup_date_label .clear-right {\n\tclear: right;\n}\n\n.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\tfont-weight: bold;\n}\n\n/* End Main Buttons */\n\n/* End of common elements */\n\n.udp-logo-70 {\n\twidth: 70px;\n\theight: 70px;\n\tfloat: left;\n\tpadding-right: 25px;\n}\n\nh3 .thank-you {\n\tmargin-top: 0px;\n}\n\n.ws_advert {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n.dismiss-dash-notice {\n\tfloat: right;\n\tposition: relative;\n\ttop: -20px;\n}\n\n.updraft_exclude_container,\n.updraft_include_container {\n\tmargin-left: 24px;\n\tmargin-top: 5px;\n\tmargin-bottom: 10px;\n\tpadding: 15px;\n\tborder: 1px solid #DDD;\n}\n\nlabel.updraft-exclude-label {\n\tfont-weight: 500;\n\tmargin-bottom: 5px;\n\tdisplay: block;\n}\n\n.updraft_add_exclude_item,\n#updraft_include_more_paths_another {\n\tdisplay: inline-block;\n\tmargin-top: 10px;\n}\n\ninput.updraft_exclude_entity_field,\n.form-table td input.updraft_exclude_entity_field,\n.updraftplus-morefiles-row input[type=text] {\n\twidth: calc(100% - 70px);\n\tmax-width: 400px;\n}\n\n@media screen and (max-width: 782px) {\n\n\t.form-table td input.updraft_exclude_entity_field,\n\t.form-table td .updraftplus-morefiles-row input[type=text] {\n\t\tdisplay: inline-block;\n\t}\n\n}\n\n.updraft_exclude_entity_delete.dashicons, .updraft_exclude_entity_edit.dashicons, .updraft_exclude_entity_update.dashicons, .updraftplus-morefiles-row a.dashicons {\n\tmargin-top: 2px;\n\tfont-size: 20px;\n\tbox-shadow: none;\n\tline-height: 1;\n\tpadding: 3px;\n\tmargin-right: 4px;\n}\n\n.updraft_exclude_entity_delete,\n.updraft_exclude_entity_delete:hover,\n.updraftplus-morefiles-row-delete {\n\tcolor: #FF6347;\n}\n\n.updraft_exclude_entity_update.dashicons, .updraft_exclude_entity_update.dashicons:hover {\n\tcolor: #008000;\n\tfont-weight: bold;\n\tfont-size: 22px;\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_edit {\n\tmargin-left: 4px;\n}\n\n.updraft_exclude_entity_update.is-active ~ .updraft_exclude_entity_delete {\n\tdisplay: none;\n}\n\n.updraft-exclude-panel-heading {\n\tmargin-bottom: 8px;\n}\n\n.updraft-exclude-panel-heading h3 {\n\tmargin: 0.5em 0 0.5em 0;\n}\n\n.updraft-exclude-submit.button-primary {\n\tmargin-top: 5px;\n}\n\n.updraft_exclude_actions_list {\n\tfont-weight: bold;\n}\n\n.updraft-exclude-link {\n\tcursor: pointer;\n}\n\n#updraft_include_more_options {\n\tpadding-left: 25px;\n}\n\n#updraft_report_cell .updraft_reportbox,\n.updraft_small_box {\n\tpadding: 12px;\n\tmargin: 8px 0;\n\tborder: 1px solid #CCC;\n\tposition: relative;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete,\n.updraft_box_delete_button,\n.updraft_small_box .updraft_box_delete_button {\n\tpadding: 4px;\n\tpadding-top: 6px;\n\tborder: none;\n\tbackground: transparent;\n\tposition: absolute;\n\ttop: 4px;\n\tright: 4px;\n\tcursor: pointer;\n}\n\n#updraft_report_cell button.updraft_reportbox_delete:hover {\n\tcolor: #DE3C3C;\n}\n\na.updraft_report_another .dashicons {\n\ttext-decoration: none;\n\tmargin-top: 2px;\n}\n\n.updraft_report_dbbackup.updraft_report_disabled {\n\tcolor: #CCC;\n}\n\n#updraft-navtab-settings-content .updraft-test-button {\n\tfont-size: 18px !important;\n}\n\n#updraft_report_cell .updraft_report_email {\n\tdisplay: block;\n\twidth: calc(100% - 50px);\n\tmargin-bottom: 9px;\n}\n\n#updraft_report_cell .updraft_report_another_p {\n\tclear: left;\n}\n\n/* Taken straight from admin.php */\n\n#updraft-navtab-settings-content table.form-table p {\n\tmax-width: 700px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected,\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected td {\n\tbackground-color: #EFEFEF;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected:nth-child(even) td {\n\tbackground-color: #E8E8E8;\n}\n\n.updraft_settings_sectionheading {\n\tdisplay: none;\n}\n\n.updraft-backupentitybutton-disabled {\n\tbackground-color: transparent;\n\tborder: none;\n\tcolor: #0074A2;\n\ttext-decoration: underline;\n\tcursor: pointer;\n\tclear: none;\n\tfloat: left;\n}\n\n.updraft-backupentitybutton {\n\tmargin-left: 8px;\n}\n\n.updraft-bigbutton {\n\tpadding: 2px 0px !important;\n\tmargin-right: 14px !important;\n\tfont-size: 22px !important;\n\tmin-height: 32px;\n\tmin-width: 180px;\n}\n\ntr[class*=\"_updraft_remote_storage_border\"] {\n\tborder-top: 1px solid #CCC;\n}\n\n.updraft_multi_storage_options {\n\tfloat: right;\n\tclear: right;\n\tmargin-bottom: 5px !important;\n}\n\n.updraft_toggle_instance_label {\n\tvertical-align: top !important;\n}\n\n.updraft_debugrow th {\n\tfloat: right;\n\ttext-align: right;\n\tfont-weight: bold;\n\tpadding-right: 8px;\n\tmin-width: 140px;\n}\n\n.updraft_debugrow td {\n\tmin-width: 300px;\n\tvertical-align: bottom;\n}\n\n#updraft_webdav_host_error, .onedrive_folder_error {\n\tcolor: red;\n}\n\n/* jstree styles */\n\n/* these styles hide the dots from the parent but keep the arrows */\n.updraft_jstree .jstree-container-ul > .jstree-node,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-node {\n\tbackground: transparent;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-open > .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-open > .jstree-ocl {\n\tbackground-position: -36px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-closed> .jstree-ocl {\n\tbackground-position: -4px -4px;\n}\n\n.updraft_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl,\n#updraft_more_files_jstree .jstree-container-ul > .jstree-leaf> .jstree-ocl {\n\tbackground: transparent;\n}\n\n/* zip browser jstree styles */\n#updraft_zip_files_container {\n\tposition: relative;\n\theight: 450px;\n\toverflow: none;\n}\n\n.updraft_jstree_info_container {\n\tposition: relative;\n\theight: auto;\n\twidth: 100%;\n\tborder: 1px dotted;\n\tmargin-bottom: 5px;\n}\n\n.updraft_jstree_info_container p {\n\tmargin: 1px;\n\tpadding-left: 10px;\n\tfont-size: 14px;\n}\n\n#updraft_zip_download_item {\n\tdisplay: none;\n\tcolor: #0073AA;\n\tpadding-left: 10px;\n}\n\n#updraft_zip_download_notice {\n\tpadding-left: 10px;\n}\n\n#updraft_exclude_files_folders_jstree {\n\tmax-height: 200px;\n\toverflow-y: scroll;\n}\n\n.updraft_jstree {\n\tposition: relative;\n\tborder: 1px dotted;\n\theight: 80%;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n/* More files jstree styles */\n#updraft_more_files_container {\n\tposition: relative;\n\tdisplay: none;\n\twidth: 100%;\n\tborder: 1px solid #CCC;\n\tbackground: #FAFAFA;\n\tmargin-bottom: 5px;\n\tmargin-top: 4px;\n\tbox-shadow: 0 5px 8px rgba(0, 0, 0, 0.1);\n}\n\ndiv#updraft_more_files_container::before {\n\tcontent: ' ';\n\twidth: 11px;\n\theight: 11px;\n\tdisplay: block;\n\tbackground: #FAFAFA;\n\tposition: absolute;\n\ttop: 0;\n\tleft: 20px;\n\tborder-top: 1px solid #CCC;\n\tborder-left: 1px solid #CCC;\n\ttransform: translatey(-7px) rotate(45deg);\n}\n\ninput.updraft_more_path_editing {\n\tborder-color: #0285BA;\n}\n\ninput.updraft_more_path_editing ~ a.dashicons {\n\tdisplay: none;\n}\n\n#updraft_jstree_buttons {\n\tpadding: 10px;\n\tbackground: #E6E6E6;\n}\n\n#updraft_jstree_container {\n\theight: 300px;\n\twidth: 100%;\n\toverflow: auto;\n}\n\n#updraft_more_files_container button {\n\tline-height: 20px;\n}\n\n#updraft_parent_directory {\n\tmargin: 10px 10px 4px 10px;\n\tpadding-left: 3px;\n}\n\n#updraft_jstree_confirm, #updraft_jstree_cancel {\n\tdisplay: none;\n}\n\n.updraftplus-morefiles-row-delete,\n.updraftplus-morefiles-row-edit {\n\tcursor: pointer;\n}\n\n#updraft-wrap .form-table th {\n\twidth: 230px;\n}\n\n#updraft-wrap .form-table .existing-backups-table th {\n\twidth: auto;\n}\n\n.updraft-viewlogdiv form {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraft-viewlogdiv {\n\tdisplay: inline-block;\n}\n\n.updraft-viewlogdiv input, .updraft-viewlogdiv a {\n\tborder: none;\n\tbackground-color: transparent;\n\tcolor: #000;\n\tmargin: 0px;\n\tpadding: 3px 4px;\n\tfont-size: 16px;\n\tline-height: 26px;\n}\n\n.updraft-viewlogdiv input:hover, .updraft-viewlogdiv a:hover {\n\tcolor: #FFF;\n\tcursor: pointer;\n}\n\n.button.button-remove {\n\tcolor: white;\n\tbackground-color: #DE3C3C;\n\tborder-color: #C00000;\n\tbox-shadow: 0 1px 0 #C10100;\n}\n\n.button.button-remove:hover,\n.button.button-remove:focus {\n\tborder-color: #C00;\n\tcolor: #FFF;\n\tbackground: #C00;\n}\n\n/* button-remove colors for midnight admin theme */\nbody.admin-color-midnight .button.button-remove {\n\tcolor: #DE3C3C;\n\tbackground-color: #F7F7F7;\n\tborder-color: #CCC;\n\tbox-shadow: 0 1px 0 #CCC;\n}\n\nbody.admin-color-midnight .button.button-remove:hover, body.admin-color-midnight .button.button-remove:focus {\n\tborder-color: #BA281F;\n}\n\nbody.admin-color-midnight .button.button-remove:focus {\n\tbox-shadow: inherit;\n\tbox-shadow: 0 0 3px rgba(0, 115, 170, 0.8);\n}\n\n.drag-drop #drag-drop-area2 {\n\tborder: 4px dashed #DDD;\n\theight: 200px;\n}\n\n#drag-drop-area2 .drag-drop-inside {\n\tmargin: 36px auto 0;\n\twidth: 350px;\n}\n\n#filelist, #filelist2 {\n\twidth: 100%;\n}\n\n#filelist .file, #filelist2 .file, .ud_downloadstatus .file, #ud_downloadstatus2 .file {\n\tpadding: 1px;\n\tbackground: #ECECEC;\n\tborder: solid 1px #CCC;\n\tmargin: 4px 0;\n}\n\n.updraft_premium section {\n\tmargin-bottom: 20px;\n}\n\n/*\n\tCall to action Premium\n*/\n.updraft_premium_cta {\n\tbackground: #FFF;\n\tmargin-top: 30px;\n\tpadding: 0;\n\tborder-left: 4px solid #DB6A03;\n}\n\n.updraft_premium_cta a {\n\tfont-weight: normal;\n}\n\n.updraft_premium_cta a.button.button-primary.button-hero {\n\tfont-size: 1.3em;\n\tletter-spacing: 0.03rem;\n\ttext-transform: uppercase;\n}\n\n.updraft_premium_cta__top {\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: space-between;\n\tpadding: 18px 30px;\n}\n\n.updraft_premium_cta__bottom {\n\tbackground: #F9F9F9;\n\tpadding: 5px 30px;\n}\n\n.updraft_premium_cta__summary {\n\tmargin-right: 60px;\n}\n\n.updraft_premium_cta h2 {\n\tfont-size: 28px;\n\tfont-weight: 200;\n\tline-height: 1;\n\tmargin: 0;\n\tmargin-bottom: 5px;\n\tletter-spacing: 0.05rem;\n\tcolor: #DB6A03;\n}\n\n.updraft_premium_cta ul li::after {\n\tcolor: #CCC;\n}\n\n@media only screen and (max-width: 768px) {\n\n\t.updraft_premium_cta__top {\n\t\tflex-direction: column;\n\t\ttext-align: center;\n\t\talign-items: center;\n\t}\n\n\t.updraft_premium_cta__summary {\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 30px;\n\t}\n\n}\n\n/*\n\tBox\n*/\n.udp-box {\n\tbackground: #FFF;\n\tpadding: 20px;\n\tbox-shadow: 0 1px 2px rgba(0, 0, 0, 0.1);\n\ttext-align: center;\n}\n\n.udp-box h3 {\n\tmargin: 0;\n}\n\n.udp-box__heading {\n\talign-self: center;\n\tbackground: none;\n\tbox-shadow: none;\n}\n\n/*\n\tOther Plugins\n*/\n.updraft-more-plugins {\n\tdisplay: flex;\n\tflex-direction: row;\n\tflex-wrap: wrap;\n\tjustify-content: space-between;\n\tflex-wrap: wrap;\n}\n\n.updraft-more-plugins img {\n\tmax-width: 200px;\n\twidth: 100%;\n\tdisplay: inline-block;\n}\n\n.updraft-more-plugins .udp-box {\n\tbox-sizing: border-box;\n\twidth: 24%;\n}\n\n.updraft-more-plugins .udp-box p:last-child {\n\tmargin-bottom: 0;\n\tpadding-bottom: 0;\n}\n\n/*\n\tlinks list\n*/\n.updraft_premium_description_list {\n\ttext-align: left;\n\tmargin: 0;\n\tfont-size: 12px;\n}\n\nul.updraft_premium_description_list, ul#updraft_restore_warnings {\n\tlist-style: disc inside;\n}\n\nul.updraft_premium_description_list li {\n\tdisplay: inline;\n}\n\nul.updraft_premium_description_list li::after {\n\tcontent: \" | \";\n}\n\nul.updraft_premium_description_list li:last-child::after {\n\tcontent: \"\";\n}\n\n.updraft_feature_cell {\n\tbackground-color: #F7D9C9 !important;\n\tpadding: 5px 10px;\n}\n\n.updraftplus_com_login_status, .updraftplus_com_key_status {\n\tdisplay: none;\n\tborder-left-color: #DC3232 !important;\n\tbackground: #FFF;\n\tborder-left: 4px solid #FFF;\n\tbox-shadow: 0 1px 1px 0 rgba(0,0,0,.1);\n\tmargin: 5px 0 15px 0;\n\tpadding: 5px 12px;\n}\n\n.updraft_feat_table {\n\tborder: none;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n}\n\n.updraft_feat_th, .updraft_feat_table td {\n\tborder: 1px solid #F1F1F1;\n\tborder-collapse: collapse;\n\tfont-size: 120%;\n\tbackground-color: white;\n\ttext-align: center;\n\tpadding: 15px;\n}\n\n.updraft_feat_table td {\n\tborder-bottom-width: 4px;\n}\n\n.updraft_feat_table td:first-child {\n\tborder-left: none;\n}\n\n.updraft_feat_table td:last-child {\n\tborder-right: none;\n}\n\n.updraft_feat_table tr:last-child td {\n\tborder-bottom: none;\n}\n\n.updraft_feat_table td:nth-child(2),\n.updraft_feat_table td:nth-child(3) {\n\tbackground-color: rgba(241, 241, 241, 0.38);\n\twidth: 190px;\n}\n\n.updraft_feat_table__header td img {\n\tdisplay: block;\n\tmargin: 0 auto;\n}\n\n.updraft_feat_table__header td {\n\ttext-align: center;\n}\n\n.updraft_feat_table .installed {\n\tfont-size: 14px;\n}\n\n.updraft_feat_table p {\n\tpadding: 0px 10px;\n\tmargin: 5px 0px;\n\tfont-size: 13px;\n}\n\n.updraft_feat_table h4 {\n\tmargin: 5px 0px;\n}\n\n.updraft_feat_table .dashicons {\n\twidth: 25px;\n\theight: 25px;\n\tfont-size: 25px;\n\tline-height: 1;\n}\n\n.updraft_feat_table .dashicons-yes, .updraft_feat_table .updraft-yes {\n\tcolor: green;\n}\n\n.updraft_feat_table .dashicons-no-alt, .updraft_feat_table .updraft-no {\n\tcolor: red;\n}\n\n.updraft_tick_cell {\n\ttext-align: center;\n}\n\n.updraft_tick_cell img {\n\tmargin: 4px 0;\n\theight: 24px;\n}\n\n.ud_downloadstatus__close {\n\tborder: none;\n\tbackground: transparent;\n\twidth: auto;\n\tfont-size: 20px;\n\tpadding: 0;\n\tcursor: pointer;\n}\n\n#filelist .fileprogress, #filelist2 .fileprogress, .ud_downloadstatus .dlfileprogress, #ud_downloadstatus2 .dlfileprogress {\n\twidth: 0%;\n\tbackground: #0572AA;\n\theight: 8px;\n}\n\n.ud_downloadstatus .raw, #ud_downloadstatus2 .raw {\n\tmargin-top: 8px;\n\tclear: left;\n}\n\n.ud_downloadstatus .file, #ud_downloadstatus2 .file {\n\tmargin-top: 8px;\n}\n\ndiv[class^=\"updraftplus_downloader_container_\"] {\n\tpadding: 10px;\n}\n\ntr.updraftplusmethod h3 {\n\tmargin: 0px;\n}\n\ntr.updraftplusmethod img {\n\tmax-width: 100%;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete, #updraft_retain_files_rules .updraft_retain_rules_delete {\n\tcursor: pointer;\n\tcolor: red;\n\tfont-size: 120%;\n\tfont-weight: bold;\n\tborder: 0px;\n\tborder-radius: 3px;\n\tpadding: 2px;\n\tmargin: 0 6px;\n\ttext-decoration: none;\n\tdisplay: inline-block;\n}\n\n#updraft_retain_db_rules .updraft_retain_rules_delete:hover, #updraft_retain_files_rules .updraft_retain_rules_delete:hover {\n\tcursor: pointer;\n\tcolor: white;\n\tbackground: red;\n}\n\n#updraft_backup_started {\n\tmax-width: 800px;\n\tfont-size: 140%;\n\tline-height: 140%;\n\tpadding: 14px;\n\tclear: left;\n}\n\n/* backup finished */\n.blockUI.blockOverlay.ui-widget-overlay {\n\tbackground: #000;\n}\n\n.updraft_success_popup {\n\ttext-align: center;\n\tpadding-bottom: 30px;\n}\n\n.updraft_success_popup > .dashicons {\n\tfont-size: 100px;\n\twidth: 100px;\n\theight: 100px;\n\tline-height: 100px;\n\tpadding: 0px;\n\tborder-radius: 50%;\n\tmargin-top: 30px;\n\tdisplay: block;\n\tmargin-left: auto;\n\tmargin-right: auto;\n\tbackground: #E2E6E5;\n}\n\n.updraft_success_popup > .dashicons.dashicons-yes {\n\ttext-indent: -5px;\n}\n\n.updraft_success_popup.success > .dashicons {\n\tcolor: green;\n}\n\n.updraft_success_popup.warning > .dashicons {\n\tcolor: #888;\n}\n\n.updraft_success_popup--message {\n\tpadding: 20px;\n}\n\n.button.updraft-close-overlay .dashicons {\n\ttext-decoration: none;\n\tfont-size: 20px;\n\tmargin-left: -5px;\n\tpadding: 0;\n}\n\n.updraft_saving_popup img {\n\tanimation-name: udp_blink;\n\tanimation-duration: 610ms;\n\tanimation-iteration-count: infinite;\n\tanimation-direction: alternate;\n\tanimation-timing-function: ease-out;\n}\n\n.udp-premium-image {\n\tdisplay: none;\n}\n\n@media screen and (min-width: 720px) {\n\n\t.udp-premium-image {\n\t\tdisplay: block;\n\t\tfloat: left;\n\t\tpadding-right: 5px;\n\t}\n\n}\n\n/* End stuff already in admin.php */\n#plupload-upload-ui2 {\n\twidth: 80%;\n}\n\n.backup-restored {\n\tpadding: 8px;\n}\n\n.backup-restored span {\n\tfont-size: 120%;\n}\n\n.memory-limit {\n\tpadding: 8px;\n}\n\n.updraft_list_errors {\n\tpadding: 8px;\n}\n\n/*.nav-tab {\n\tborder-radius: 20px 20px 0 0;\n\tborder-color: grey;\n\tborder-width: 2px;\n\tmargin-top: 34px;\n}\n\n.nav-tab:hover {\n\tborder-bottom: 0;\n}\n\n.nav-tab-active, .nav-tab-active:active {\n\tcolor: #df6926;\n\tborder-color: #D3D3D3;\n\tborder-width: 1px;\n\tborder-bottom: 0;\n}\n\n.nav-tab-active:focus {\n\tcolor: #df6926;\n}*/\n\n.nav-tab-wrapper {\n\tmargin: 14px 0px;\n}\n\n#updraft-poplog-content {\n\twhite-space: pre-wrap;\n}\n\n.next-backup {\n\tborder: 0px;\n\tpadding: 0px;\n\tmargin: 0 10px 0 0;\n}\n\n.not-scheduled {\n\tvertical-align: top !important;\n\tmargin: 0px !important;\n\tpadding: 0px !important;\n}\n\n.next-backup .updraft_scheduled {\n\t/* width: 124px;*/\n\tmargin: 0px;\n\tpadding: 2px 4px 2px 0px;\n}\n\n#next-backup-table-inner td {\n\tvertical-align: top;\n}\n\n.updraft_all-files {\n\tcolor: blue;\n}\n\n.multisite-advert-width {\n\twidth: 800px;\n}\n\n.updraft_settings_sectionheading {\n\tmargin-top: 6px;\n}\n\n.premium-upgrade-prompt {\n\t/* font-size: 115%; */\n}\n\n.show_admin_restore_in_progress_notice {\n\tpadding: 8px;\n}\n\n.show_admin_restore_in_progress_notice .unfinished-restoration {\n\tfont-size: 120%;\n}\n\n#backupnow_includefiles_moreoptions, #backupnow_database_moreoptions {\n\tmargin: 4px 16px 6px 16px;\n\tborder: 1px dotted;\n\tpadding: 6px 10px;\n}\n\n#backupnow_database_moreoptions {\n\tmax-height: 250px;\n\toverflow: auto;\n}\n\n.form-table #updraft_activejobsrow .minimum-height {\n\tmin-height: 100px;\n}\n\n#updraft_activejobsrow th {\n\tmax-width: 112px;\n\tmargin: 0;\n\tpadding: 13px 0 0 0;\n}\n\n#updraft_lastlogmessagerow .last-message {\n\tpadding-top: 20px;\n\tdisplay: block;\n}\n\n.updraft_simplepie {\n\tvertical-align: top;\n}\n\n.download-backups {\n\tmargin-top: 8px;\n}\n\n.download-backups .updraft_download_button {\n\tmargin-right: 6px;\n}\n\n.download-backups .ud-whitespace-warning, .download-backups .ud-bom-warning {\n\tbackground-color: pink;\n\tpadding: 8px;\n\tmargin: 4px;\n\tborder: 1px dotted;\n}\n\n.download-backups .ul {\n\tlist-style: none inside;\n\tmax-width: 800px;\n\tmargin-top: 6px;\n\tmargin-bottom: 12px;\n}\n\n#updraft-plupload-modal {\n\tmargin: 16px 0;\n}\n\n.download-backups .upload {\n\tmax-width: 610px;\n}\n\n.download-backups #plupload-upload-ui {\n\twidth: 100%;\n}\n\n.ud_downloadstatus {\n\tpadding: 10px 0;\n}\n\n#ud_massactions, #updraft-delete-waitwarning {\n\tpadding: 14px;\n\tbackground: rgb(241, 241, 241);\n\tposition: absolute;\n\tleft: 0;\n\ttop: 100%;\n}\n\n#ud_massactions > *, #updraft-delete-waitwarning > * {\n\tvertical-align: middle;\n}\n\n#ud_massactions .updraftplus-remove {\n\tdisplay: inline-block;\n\tmargin-right: 0;\n}\n\n#ud_massactions .updraftplus-remove a {\n\ttext-decoration: none;\n}\n\n#ud_massactions .updraft-viewlogdiv a {\n\ttext-decoration: none;\n\tposition: relative;\n}\n\nsmall.ud_massactions-tip {\n\tdisplay: inline-block;\n\topacity: 0.5;\n\tfont-style: italic;\n\tmargin-left: 20px;\n}\n\n#updraft-navtab-backups-content .updraft_existing_backups {\n\tmargin-bottom: 35px;\n\tposition: relative;\n}\n\n#updraft-message-modal-innards {\n\tpadding: 4px;\n}\n\n#updraft-authenticate-modal {\n\ttext-align: center;\n\tfont-size: 16px !important;\n}\n\n#updraft-authenticate-modal p {\n\tfont-size: 16px;\n}\n\n#updraft_delete_form p {\n\tmargin-top: 3px;\n\tpadding-top: 0;\n}\n\n#updraft_restore_form .cannot-restore {\n\tmargin: 8px 0;\n}\n\n#updraft_restorer_dboptions {\n\tpadding: 12px;\n\tmargin: 8px 0 4px 0;\n\tborder: dashed 1px;\n}\n\n#updraft_restorer_dboptions h4 {\n\tmargin: 0px 0px 6px 0px;\n\tpadding: 0px;\n}\n\n.updraft_debugrow th {\n\tvertical-align: top;\n\tpadding-top: 6px;\n\tmax-width: 140px;\n}\n\n.expertmode p {\n\tfont-size: 125%;\n}\n\n.expertmode .call-wp-action {\n\twidth: 300px;\n\theight: 22px;\n}\n\n.updraftplus-lock-advert {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.uncompressed-data {\n\tclear: left;\n\tmax-width: 600px;\n}\n\n.delete-old-directories {\n\tpadding: 8px;\n\tpadding-bottom: 12px;\n}\n\n.active-jobs {\n\twidth: 100%;\n\ttext-align: center;\n\tpadding: 33px;\n}\n\n.job-id {\n\tmargin-top: 0;\n\tmargin-bottom: 8px;\n}\n\n.next-resumption {\n\tfont-weight: bold;\n}\n\n.updraft_percentage {\n\tz-index: -1;\n\tposition: absolute;\n\tleft: 0px;\n\ttop: 0px;\n\ttext-align: center;\n\tbackground-color: #1D8EC2;\n\ttransition: width 0.3s;\n}\n\n.curstage {\n\tz-index: 1;\n\tborder-radius: 2px;\n\tmargin-top: 8px;\n\twidth: 100%;\n\theight: 26px;\n\tline-height: 26px;\n\tposition: relative;\n\ttext-align: center;\n\tfont-style: italic;\n\tcolor: #FFF;\n\tbackground-color: #B7B7B7;\n\ttext-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);\n}\n\n.curstage-info {\n\tdisplay: inline-block;\n\tz-index: 2;\n}\n\n.retain-files {\n\twidth: 48px;\n}\n\n.backup-interval-description tr td div {\n\tmax-width: 670px;\n}\n\n#updraft-manualdecrypt-modal {\n\twidth: 85%;\n\tmargin: 6px;\n\tmargin-left: 100px;\n}\n\n.directory-permissions {\n\tfont-size: 110%;\n\tfont-weight: bold;\n}\n\n.double-warning {\n\tborder: 1px solid;\n\tpadding: 6px;\n}\n\n.raw-backup-info {\n\tfont-style: italic;\n\tfont-weight: bold;\n\tfont-size: 120%;\n}\n\n.updraft_existingbackup_date {\n\twidth: 22%;\n\tmax-width: 140px;\n}\n\n.updraft_existing_backups_wrapper {\n\tmargin-top: 20px;\n\tborder-top: 1px solid #DDD;\n}\n\n.updraft-no-backups-msg {\n\ttext-align: center;\n}\n\n.tr-bottom-4 {\n\tmargin-bottom: 4px;\n}\n\n.existing-backups-table th {\n\tpadding: 8px 10px;\n}\n\n.form-table .backup-date {\n\twidth: 172px;\n}\n\n.form-table .backup-data {\n\twidth: 426px;\n}\n\n.form-table .updraft_backup_actions {\n\twidth: 272px;\n}\n\n.existing-date {\n\t-webkit-box-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\tbox-sizing: border-box;\n\tmax-width: 140px;\n\twidth: 25%;\n}\n\n.line-break-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.line-break-td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.td-line-color {\n\theight: 2px;\n\tbackground-color: #888;\n}\n\n.raw-backup {\n\tmax-width: 140px;\n}\n\n.existing-backups-actions {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.existing-backups-border > td {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.existing-backups-border > div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.updraft_existing_backup_date {\n\tmax-width: 140px;\n}\n\n.updraftplus-upload {\n\tmargin-right: 6px;\n\tfloat: left;\n\tclear: none;\n}\n\n.before-restore-button {\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.before-restore-button div {\n\tfloat: none;\n\tdisplay: inline-block;\n}\n\n.table-separator-tr {\n\theight: 2px;\n\tpadding: 1px;\n\tmargin: 0px;\n}\n\n.table-separator-td {\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n.end-of-table-div {\n\theight: 2px;\n\tbackground-color: #AAA;\n}\n\n.last-backup-job {\n\tpadding-top: 3% !important;\n}\n\n.line-height-03 {\n\tline-height: 0.3 !important;\n}\n\n.line-height-13 {\n\tline-height: 1.3 !important;\n}\n\n.line-height-23 {\n\tline-height: 2.3 !important;\n}\n\n#updraft_diskspaceused {\n\tcolor: #DF6926;\n}\n\n#updraft_delete_old_dirs_pagediv {\n\tpadding-bottom: 10px;\n}\n\n/*#updraft_lastlogmessagerow > td, #updraft_last_backup > td {\n\tpadding: 0;\n}*/\n\n/* Time + scheduling add-on*/\n.fix-time {\n\twidth: 70px;\n}\n\n.retain-files {\n\twidth: 70px;\n}\n\n.number-input {\n\tmin-width: 50px;\n\tmax-width: 70px;\n}\n\n.additional-rule-width {\n\tmin-width: 60px;\n\tmax-width: 70px;\n}\n\n/* Add-ons */\n/* Want to fix the WordPress icons so that they fit inline with the text, and don't push everything out of place. */\n\n#updraft-wrap .dashicons.dashicons-adapt-size {\n\tline-height: inherit;\n\tfont-size: inherit;\n}\n\n#updraft-wrap .button span.dashicons:not(.dashicons-adapt-size) {\n\tvertical-align: middle;\n\tmargin-top: -3px;\n}\n\n.addon-logo-150 {\n\tmargin-left: 30px;\n\tmargin-top: 33px;\n\theight: 125px;\n\twidth: 150px;\n}\n\n.margin-bottom-50 {\n\tmargin-bottom: 50px;\n}\n\n.premium-container {\n\twidth: 80%;\n}\n\n/* Main Header */\n\n.main-header {\n\tbackground-color: #DF6926;\n\theight: 200px;\n\twidth: 100%;\n}\n\n.button-add-to-cart {\n\tcolor: white;\n\tborder-color: white;\n\tfloat: none;\n\tmargin-right: 17px;\n}\n\n.button-add-to-cart:hover, .button-add-to-cart:focus, .button-add-to-cart:active {\n\tborder-color: #A0A5AA;\n\tcolor: #A0A5AA;\n}\n\n.addon-title {\n\tmargin-top: 25px;\n}\n\n.addon-text {\n\tmargin-top: 75px;\n}\n\n.image-main-div {\n\twidth: 25%;\n\tfloat: left;\n}\n\n.text-main-div {\n\twidth: 60%;\n\tfloat: left;\n\ttext-align: center;\n\tcolor: white;\n\tmargin-top: 16px;\n}\n\n.text-main-div-title {\n\tfont-weight: bold !important;\n\tcolor: white;\n\ttext-align: center;\n}\n\n.text-main-div-paragraph {\n\tcolor: white;\n}\n\n/* End main header */\n\n/* Vault icons */\n\n.updraftplus-vault-cta {\n\twidth: 100%;\n\ttext-align: center;\n\tmargin-bottom: 50px;\n}\n\n.updraftplus-vault-cta h1 {\n\tfont-weight: bold;\n}\n\n.updraftvault-buy {\n\twidth: 225px;\n\theight: 225px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 50px;\n\tposition: relative;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault {\n\twidth: 275px;\n\theight: 275px;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > a {\n\tright: 21%;\n\tfont-size: 16px;\n\tborder-width: 4px !important;\n}\n\n.updraftplus-vault-cta > .vault-options > .center-vault > p {\n\tfont-size: 16px;\n}\n\n.updraftvault-buy .button-purchase {\n\tright: 24%;\n\tmargin-left: 0;\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.right {\n\tmargin-right: 0px;\n}\n\n.updraftvault-buy .addon-logo-100 {\n\theight: 100px;\n\twidth: 125px;\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .addon-logo-large {\n\tmargin-top: 7px;\n}\n\n.updraftvault-buy .button-buy-vault {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 29%;\n\tbottom: 2%;\n}\n\n.premium-addon-div .button-purchase {\n\tline-height: 1.7em;\n}\n\n.updraftvault-buy .button-buy-vault:hover {\n\tborder-color: darkgrey;\n\tcolor: darkgrey;\n}\n\n/* End Vault icons */\n\n/* Premium addons */\n\n.premium-addons {\n\tmargin-top: 80px;\n\twidth: 100%;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.addon-list {\n\t/* margin-left: 32px; */\n\tdisplay: table;\n\ttext-align: center;\n}\n\n.premium-addons h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-addons p {\n\ttext-align: center;\n}\n\n.premium-addons .premium-addon-div {\n\twidth: 200px;\n\theight: 250px;\n\tborder: 2px solid #777;\n\tdisplay: inline-table;\n\tmargin: 0 auto;\n\tmargin-right: 25px;\n\tmargin-top: 25px;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.premium-addons .premium-addon-div p {\n\tmargin-left: 2px;\n\tmargin-right: 2px;\n}\n\n.premium-addons .premium-addon-div img {\n\twidth: auto;\n\theight: 50px;\n\tmargin-top: 7px;\n}\n\n.premium-addons .premium-addon-div .hr-alignment {\n\tmargin-top: 44px;\n}\n\n.premium-addons .premium-addon-div .dropbox-logo {\n\theight: 39px;\n\twidth: 150px;\n}\n\n.premium-addons .premium-addon-div .azure-logo, .premium-addons .premium-addon-div .onedrive-logo {\n\twidth: 75%;\n\theight: 24px;\n}\n\n.button-purchase {\n\tfont-size: 12px;\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tborder-width: 2px !important;\n\tposition: absolute;\n\tright: 25%;\n\tbottom: 2%;\n}\n\n.button-purchase:hover {\n\tcolor: darkgrey;\n\tborder-color: darkgrey;\n}\n\n.premium-addons .premium-addon-div hr {\n\theight: 2px;\n\tbackground-color: #777;\n\tmargin-top: 18px;\n}\n\n.premium-addon-div p {\n\tfont-style: italic;\n}\n\n.addon-list > .premium-addon-div > .onedrive-fix,\n.addon-list > .premium-addon-div > .azure-logo {\n\tmargin-top: 33px;\n}\n\n.addon-list > .premium-addon-div > .dropbox-fix {\n\tmargin-top: 18px;\n}\n\n/* End premium addons */\n\n\n/* Forgotton something (that is the name of the div rather than a mental note!) */\n\n.premium-forgotton-something {\n\tmargin-top: 5%;\n}\n\n.premium-forgotton-something h1 {\n\ttext-align: center;\n\tfont-weight: bold;\n}\n\n.premium-forgotton-something p {\n\ttext-align: center;\n\tfont-weight: normal;\n}\n\n.premium-forgotton-something .button-faq {\n\tcolor: #DF6926;\n\tborder-color: #DF6926;\n\tmargin: 0 auto;\n\tdisplay: table;\n}\n\n.premium-forgotton-something .button-faq:hover {\n\tcolor: #777;\n\tborder-color: #777;\n}\n\n/* End of forgotton something */\n\n.updraftplusmethod.updraftvault #vaultlogo {\n\tpadding-left: 40px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option {\n\tfloat: left;\n\twidth: 50%;\n\ttext-align: center;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault_primary_option div {\n\tclear: right;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .clear-left {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .padding-top-20px {\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .padding-top-14px {\n\tpadding-top: 14px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default .button-primary, .updraftplusmethod.updraftvault #updraftvault_settings_showoptions .button-primary {\n\tfont-size: 18px !important;\n\tpadding-bottom: 20px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_showoptions, .updraftplusmethod.updraftvault #updraftvault_connect {\n\tmargin-top: 8px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_connect input {\n\tmargin-right: 10px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_email {\n\twidth: 280px;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_pass {\n\twidth: 200px;\n}\n\n.updraftplusmethod.updraftvault #vault-is-connected {\n\tmargin: 0;\n\tpadding: 0;\n}\n\n.updraftplusmethod.updraftvault #updraftvault_settings_default p {\n\tclear: left;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option {\n\tfloat: left;\n\twidth: 33%;\n\ttext-align: center;\n\tpadding-top: 20px;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-size {\n\tfont-size: 200%;\n\tfont-weight: bold;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-link {\n\tclear: both;\n\tfont-size: 150%;\n}\n\n.updraftplusmethod.updraftvault .vault-purchase-option-or {\n\tclear: both;\n\tfont-size: 115%;\n\tfont-style: italic;\n}\n\n/* Automation Backup Advert by B */\n.autobackup-image {\n/* \tdisplay: inline-block; */\n/*\tmin-width: 10%;\n\tmax-width:25%;*/\n/*\tfloat: left;*/\n\tclear: left;\n\tfloat: left;\n\twidth: 110px;\n\theight: 110px;\n}\n\n.autobackup-description {\n\twidth: 100%;\n}\n\n.advert-description {\n\tfloat: left;\n\tclear: right;\n\tpadding: 4px 10px 8px 10px;\n\twidth: 70%;\n\tclear: right;\n\tvertical-align: top;\n}\n\n.advert-btn {\n\tdisplay: inline-block;\n\tmin-width: 10%;\n\tvertical-align: top;\n\tmargin-bottom: 8px;\n}\n\n.advert-btn:first-of-type {\n\tmargin-top: 25px;\n}\n\n.advert-btn a {\n\tdisplay: block;\n\tcursor: pointer;\n}\n\na.btn-get-started {\n\tbackground: #FFF;\n\tborder: 2px solid #DF6926;\n\tborder-radius: 4px;\n\tcolor: #DF6926;\n\tdisplay: inline-block;\n\tmargin-left: 10px !important;\n\tmargin-bottom: 7px !important;\n\tfont-size: 18px !important;\n\tline-height: 20px;\n\tmin-height: 28px;\n\tpadding: 11px 10px 5px 10px;\n\ttext-transform: uppercase;\n\ttext-decoration: none;\n}\n\n.circle-dblarrow {\n\tborder: 1px solid #DF6926;\n\tborder-radius: 100%;\n\tdisplay: inline-block;\n\tfont-size: 17px;\n\tline-height: 17px;\n\tmargin-left: 5px;\n\twidth: 20px;\n\theight: 20px;\n\ttext-align: center;\n}\n\n/* End Automation Backup Advert by B */\n/* New Responsive Pretty Advanced Settings */\n.expertmode .advanced_settings_container {\n\theight: auto;\n\toverflow: hidden;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu {\n\tfloat: none;\n\tborder-bottom: 1px solid rgb(204, 204, 204);\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content {\n\tpadding-top: 5px;\n\tfloat: none;\n\twidth: auto;\n\toverflow: auto;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content h3:first-child {\n\tmargin-top: 5px !important;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .advanced_tools {\n\tdisplay: none;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content .site_info {\n\tdisplay: block;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\tdisplay: inline-block;\n\tcursor: pointer;\n\tpadding: 5px;\n\tcolor: #000;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_text {\n\tfont-size: 16px;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button:hover {\n\tbackground-color: #EAEAEA;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active {\n\tbackground-color: #3498DB;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_menu .active:hover {\n\tbackground-color: #72C5FD;\n\tcolor: #FFF;\n}\n\n.expertmode .advanced_settings_container .advanced_settings_content input#import_settings {\n\theight: auto !important;\n}\n\ndiv#updraft-wrap a {\n\tcursor: pointer !important;\n}\n\n.updraftcentral_wizard_option {\n\twidth: 45%;\n\tfloat: left;\n\ttext-align: center;\n}\n\n.updraftcentral_wizard_option label {\n\tmargin-bottom: 8px;\n}\n\n#updraftcentral_keys_table {\n\tdisplay: none;\n}\n\n.create_key_container {\n\tborder: 1px solid;\n\tborder-radius: 4px;\n\tpadding: 0 0 6px 6px;\n\tmargin-bottom: 8px;\n}\n\n.updraftcentral_cloud_connect {\n\tborder-radius: 4px;\n\tborder: 1px solid #000;\n\tpadding: 0 20px;\n\tmargin-top: 30px;\n\tbackground-color: #FFF;\n}\n\n.updraftcentral_cloud_error {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #F00;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_info {\n\tborder: 1px solid #000;\n\tpadding: 3px 10px;\n\tborder-left: 3px solid #EF8F31;\n\tbackground-color: #FFF;\n\tmargin-bottom: 10px;\n}\n\n.updraftplus_spinner.spinner {\n\tpadding-left: 25px;\n\tfloat: none;\n}\n\n.updraftplus_spinner.spinner.visible {\n\tvisibility: visible;\n}\n\n.updraftcentral_cloud_notices .updraftplus_spinner {\n\tmargin-top: -5px;\n}\n\n.updraftcentral-subheading {\n\tfont-size: 14px;\n\tmargin-top: -10px;\n\tmargin-bottom: 20px;\n}\n\n#updraftcentral_cloud_form input#email,\n#updraftcentral_cloud_form input#password {\n\tmin-width: 250px;\n}\n\n.updraftcentral-data-consent {\n\tfont-size: 13px;\n\tmargin-bottom: 10px;\n}\n\n.updraftcentral_cloud_wizard_image {\n\tfloat: left;\n\tmin-width: 100px;\n\tmargin-right: 25px;\n}\n\n.updraftcentral_cloud_wizard {\n\tfloat: left;\n}\n\n.updraftcentral_cloud_clear {\n\tclear: both;\n}\n\n.updraftplus-settings-footer {\n\tmargin-top: 30px;\n}\n\n.updraftplus-top-menu {\n\tpadding: 0.5em;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\tbackground: transparent;\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow .updraft-log-link {\n\tfloat: none;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_row {\n\tflex-direction: column;\n\tpadding-left: 20px;\n\tpadding-right: 20px;\n}\n\n#updraft_inpage_backup #updraft_activejobsrow .updraft_progress_container {\n\twidth: 100%;\n}\n\n#updraft_inpage_backup #updraft_activejobs_table {\n\toverflow: inherit;\n}\n\n#updraft_inpage_backup span#updraft_lastlogcontainer {\n\tpadding: 18px;\n\tbackground: #FAFAFA;\n\tdisplay: block;\n\tfont-size: 90%;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup div#updraft_activejobsrow {\n\tbackground: #FAFAFA;\n\tbox-shadow: 0px 1px 2px rgba(0, 0, 0, 0.1);\n}\n\n#updraft_inpage_backup #updraft_lastlogmessagerow > div {\n\tbackground: transparent;\n\tpadding: 0;\n}\n\n#updraft_inpage_backup .last-message > strong {\n\tdisplay: block;\n\tmargin-top: 13px;\n}\n\n@media only screen and (min-width: 1024px) {\n\n\t#updraft_activejobsrow .updraft_row {\n\t\tdisplay: flex;\n\t\talign-items: baseline;\n\t}\n\n\t#updraft_activejobsrow .updraft_row .updraft_col {\n\t\tflex: auto;\n\t}\n\n\t#updraft_activejobsrow .updraft_progress_container {\n\t\twidth: calc(100% - 230px);\n\t}\n\n}\n\n@media only screen and (min-width: 782px) {\n\n\t.settings_page_updraftplus input[type=text],\n\t.settings_page_updraftplus input[type=password],\n\t.settings_page_updraftplus input[type=number] {\n\t\t/* border-radius: 4px; */\n\t\tline-height: 1.42;\n\t\t/* border: 1px solid #CCC; */\n\t\theight: 27px;\n\t\tpadding: 2px 6px;\n\t\tcolor: #555;\n\t}\n\n\t.settings_page_updraftplus input[type=\"number\"] {\n\t\theight: 31px;\n\t}\n\n\t#ud_massactions.active, #updraft-delete-waitwarning.active {\n\t\tposition: fixed;\n\t\tbottom: 0;\n\t\tleft: 160px;\n\t\tright: 0;\n\t\ttop: auto;\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t\tbox-shadow: 0 0 10px rgba(0, 0, 0, 0.2);\n\t}\n\n\tbody.folded #ud_massactions.active, body.folded #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n\t.updraft-after-form-table {\n\t\tmargin-left: 250px;\n\t}\n\n}\n\n@media only screen and (min-width: 782px) and (max-width: 960px) {\n\n\tbody.auto-fold #ud_massactions.active, body.auto-fold #updraft-delete-waitwarning.active {\n\t\tleft: 36px;\n\t}\n\n}\n\n@media only screen and (max-width: 782px) {\n\n\t#updraft-wrap {\n\t\tmargin-right: 0;\n\t}\n\n\t#updraft-wrap .form-table td {\n\t\tpadding-right: 0;\n\t}\n\n\tlabel.updraft_checkbox {\n\t\tmargin-bottom: 8px;\n\t\tmargin-top: 8px;\n\t\tmargin-left: 36px;\n\t}\n\n\t.updraft_retain_rules {\n\t\tposition: relative;\n\t\tmargin-right: 0;\n\t\tborder: 1px solid #CCC;\n\t\tpadding: 5px;\n\t\tmargin-bottom: -1px;\n\t}\n\n\t.updraft_retain_rules_delete {\n\t\tposition: absolute;\n\t\tright: 0;\n\t\ttop: 5px;\n\t}\n\n\ta[id*=updraft_retain_] {\n\t\tdisplay: block;\n\t\tpadding: 15px 15px 15px 0;\n\t}\n\n\tlabel.updraft_checkbox > input[type=checkbox] {\n\t\tmargin-left: -33px;\n\t}\n\n\t#updraft-backupnow-button {\n\t\tmargin: 0;\n\t\tdisplay: block;\n\t\twidth: 100%;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > .updraft_backup_btn_wrapper {\n\t\tpadding-top: 0;\n\t}\n\n\t#ud_massactions, #updraft-delete-waitwarning {\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t}\n\n\t#ud_massactions.active {\n\t\tposition: fixed;\n\t\ttop: auto;\n\t\tbottom: 0;\n\t\twidth: 100%;\n\t\tbox-sizing: border-box;\n\t\ttext-align: center;\n\t\tbox-shadow: 0 -3px 15px rgba(0, 0, 0, 0.08);\n\t\tbackground: #FFF;\n\t\tz-index: 3;\n\t}\n\n\t#ud_massactions strong {\n\t\tdisplay: block;\n\t\tmargin-bottom: 5px;\n\t}\n\n\tsmall.ud_massactions-tip {\n\t\tdisplay: block;\n\t}\n\n/*\t.advert-description {\n\t\tmin-width: 75%;\n\t\tmargin-bottom: 5px;\n\t}\n\n\t.advert-btn {\n\t\tmargin-top: 15px;\n\t\tmargin-left:86px;\n\t\tmin-width: 100%;\n\t}*/\n\n\t.existing-backups-table .backup_date_label > div, .existing-backups-table .backup_date_label span > div {\n\t\tfont-weight: normal;\n\t}\n\n\t.existing-backups-table .backup_date_label .clear-right {\n\t\tdisplay: inline-block;\n\t}\n\n\ttable.widefat.existing-backups-table {\n\t\tborder: 0;\n\t\tbox-shadow: none;\n\t\tbackground: transparent;\n\t}\n\n\t.existing-backups-table thead {\n\t\tborder: none;\n\t\tclip: rect(0 0 0 0);\n\t\theight: 1px;\n\t\tmargin: -1px;\n\t\toverflow: hidden;\n\t\tpadding: 0;\n\t\tposition: absolute;\n\t\twidth: 1px;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t}\n\n\t.existing-backups-table tr {\n\t\tdisplay: block;\n\t\tmargin-bottom: .625em;\n\t\tpadding-bottom: 16.625px;\n\t\twidth: 100%;\n\t\tpadding: 0;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t\tbackground: #FFF;\n\t\tbox-shadow: 0 2px 3px rgba(0, 0, 0, 0.1);\n\t}\n\n\t.existing-backups-table td {\n\t\tborder-bottom: 1px solid #DDD;\n\t\tdisplay: block;\n\t\tfont-size: .9em;\n\t\ttext-align: left;\n\t\twidth: 100%;\n\t\tpadding: 10px;\n\t\tmargin: 0;\n\t}\n\n\t.wp-list-table.existing-backups-table tr:not(.inline-edit-row):not(.no-items) td:not(.column-primary)::before {\n\t\t/*\n\t\t* aria-label has no advantage, it won't be read inside a table\n\t\tcontent: attr(aria-label);\n\t\t*/\n\t\tcontent: attr(data-label);\n\t\tfont-weight: bold;\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tleft: auto;\n\t\tpadding-bottom: 10px;\n\t\twidth: auto;\n\t\ttext-align: left;\n\t}\n\n\t.existing-backups-table td:last-child {\n\t\tborder-bottom: 0;\n\t}\n\n\t.form-table td.updraft_existingbackup_date {\n\t\twidth: inherit;\n\t\tmax-width: 100%;\n\t}\n\n\t.existing-backups-table td.before-restore-button {\n\t\tmin-height: 36px;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper {\n\t\tflex-direction: column;\n\t}\n\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t\twidth: 100%;\n\t}\n\n\t.updraft_progress_container {\n\t\t/* width: 77%; */\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row {\n\t\tposition: relative;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row.backuprowselected {\n\t\tbackground-color: #FFF;\n\t\tborder-left: 4px solid #0572AA;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td:not(.backup-select) {\n\t\tmargin-left: 50px;\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups .updraft_existing_backups_row td.backup-select {\n\t\twidth: 50px !important;\n\t\tposition: absolute;\n\t\tleft: 0;\n\t\ttop: 0;\n\t\tbox-sizing: border-box;\n\t\theight: 100%;\n\t\tz-index: 1;\n\t\tborder: none;\n\t\tborder-right: 1px solid rgba(0, 0, 0, 0.05);\n\t}\n\n\t#updraft-navtab-backups-content .updraft_existing_backups input[type=\"checkbox\"] {\n\t\theight: 25px;\n\t}\n\n\t.updraft_migrate_intro button.button.button-primary.button-hero {\n\t\tdisplay: block;\n\t\tmargin-right: 0;\n\t\twidth: 100%;\n\t\tmax-width: 100%;\n\t}\n\n\t.updraftclone-main-row {\n\t\tflex-direction: column;\n\t}\n\n\t.updraftclone-main-row > div {\n\t\twidth: auto;\n\t\tmax-width: none;\n\t\tmargin-right: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n\t.form-table th {\n\t\tpadding-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 600px) {\n\t\n\t.updraft_next_scheduled_backups_wrapper > div {\n\t}\n\n\t.updraft_next_scheduled_entity {\n\t\tfloat: none;\n\t\twidth: 100%;\n\t\tmargin-bottom: 2em;\n\t}\n\n\t.updraft_time_now_wrapper {\n\t\tmargin-top: 0;\n\t}\n\n\t#updraft_lastlogmessagerow h3 {\n\t\tmargin-bottom: 5px;\n\t}\n\n\t#updraft_lastlogmessagerow .updraft-log-link {\n\t\tdisplay: block;\n\t\tfloat: none;\n\t\tmargin: 0;\n\t\tmargin-bottom: 10px;\n\t}\n\n}\n\n@media screen and (max-width: 520px) {\n}\n\n@media only screen and (min-width: 768px) {\n\n\t.addon-activation-notice {\n\t\tleft: 20em;\n\t}\n\n\t.existing-backups-table tbody tr:hover {\n\t\tbackground: #F1F1F1;\n\t}\n\n\t.existing-backups-table tbody tr td.before-restore-button {\n\t\tposition: relative;\n\t}\n\n\t.form-table .existing-backups-table thead th.check-column {\n\t\tpadding-left: 6px;\n\t}\n\n\t.existing-backups-table tr td:first-child {\n\t\tborder-left: 4px solid transparent;\n\t}\n\n\t.existing-backups-table tr.backuprowselected td:first-child {\n\t\tborder-left-color: #0572AA;\n\t}\n\n}\n\n@media screen and (min-width: 670px) {\n\t\n\t.expertmode .advanced_settings_container .advanced_settings_menu {\n\t\tfloat: left;\n\t\twidth: 215px;\n\t\tborder-right: 1px solid rgb(204, 204, 204);\n\t\tborder-bottom: none;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_content {\n\t\tpadding-left: 10px;\n\t\tpadding-top: 0px;\n\t}\n\n\t.expertmode .advanced_settings_container .advanced_settings_menu .advanced_tools_button {\n\t\tdisplay: block;\n\t}\n\n}\n\n@media only screen and (max-width: 1068px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: calc(50% - 10px);\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: 100px;\n\t}\n\n}\n\n@media only screen and (max-width: 600px) {\n\n\t.updraft-more-plugins .udp-box {\n\t\twidth: 100%;\n\t\tmargin-bottom: 20px;\n\t}\n\n\t.updraft_feat_table td:nth-child(2), .updraft_feat_table td:nth-child(3) {\n\t\twidth: auto;\n\t}\n\n\ttable.updraft_feat_table {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table tr {\n\t\tdisplay: flex;\n\t\tflex-wrap: wrap;\n\t}\n\n\ttable.updraft_feat_table td {\n\t\tdisplay: block;\n\t}\n\n\ttable.updraft_feat_table td:first-child {\n\t\twidth: 100%;\n\t\tborder-bottom: none;\n\t}\n\n\ttable.updraft_feat_table td:not(:first-child) {\n\t\twidth: 50%;\n\t\tbox-sizing: border-box;\n\t}\n\n\ttable.updraft_feat_table td:first-child:empty {\n\t\tdisplay: none;\n\t}\n\n\ttd[data-colname]::before {\n\t\tcontent: attr(data-colname);\n\t\tfont-size: 0.8rem;\n\t\tcolor: #CCC;\n\t\tline-height: 1;\n\t}\n\n}\n"]}
|
@@ -4,7 +4,7 @@
|
|
4 |
|
5 |
/**
|
6 |
*
|
7 |
-
* Copyright (c) 2012-
|
8 |
* Portions copyright (c) 2011, Donovan Schönknecht. All rights reserved.
|
9 |
*
|
10 |
* Redistribution and use in source and binary forms, with or without
|
@@ -102,7 +102,7 @@ class UpdraftPlus_S3_Compat {
|
|
102 |
* @param Null|String $region Region. Currently unused, but harmonised with UpdraftPlus_S3 class
|
103 |
* @return void
|
104 |
*/
|
105 |
-
public function __construct($access_key = null, $secret_key = null, $use_ssl = true, $ssl_ca_cert = true, $endpoint = null, $session_token = null, $region = null) {
|
106 |
if (null !== $access_key && null !== $secret_key)
|
107 |
$this->setAuth($access_key, $secret_key, $session_token);
|
108 |
|
@@ -260,7 +260,8 @@ class UpdraftPlus_S3_Compat {
|
|
260 |
* @param string $ssl_ca_cert SSL CA cert (only required if you are having problems with your system CA cert)
|
261 |
* @return void
|
262 |
*/
|
263 |
-
public function setSSLAuth($ssl_cert = null, $ssl_key = null, $ssl_ca_cert = null) {
|
|
|
264 |
if (!$this->use_ssl) return;
|
265 |
|
266 |
if (!$this->use_ssl_validation) {
|
@@ -360,7 +361,7 @@ class UpdraftPlus_S3_Compat {
|
|
360 |
* @param boolean $return_common_prefixes Set to true to return CommonPrefixes
|
361 |
* @return array
|
362 |
*/
|
363 |
-
public function getBucket($bucket, $prefix = null, $marker = null, $max_keys = null, $delimiter = null, $return_common_prefixes = false) {
|
364 |
try {
|
365 |
if (0 == $max_keys) $max_keys = null;
|
366 |
|
@@ -499,7 +500,7 @@ class UpdraftPlus_S3_Compat {
|
|
499 |
* @param constant $storage_class Storage class constant
|
500 |
* @return string | false
|
501 |
*/
|
502 |
-
public function initiateMultipartUpload($bucket, $uri, $acl = self::ACL_PRIVATE, $meta_headers = array(), $request_headers = array(), $storage_class = self::STORAGE_CLASS_STANDARD) {
|
503 |
$vars = array(
|
504 |
'ACL' => $acl,
|
505 |
'Bucket' => $bucket,
|
@@ -671,7 +672,7 @@ class UpdraftPlus_S3_Compat {
|
|
671 |
* @param string $content_type Content type
|
672 |
* @return boolean returns either true of false
|
673 |
*/
|
674 |
-
public function putObjectString($string, $bucket, $uri, $acl = self::ACL_PRIVATE, $meta_headers = array(), $content_type = 'text/plain') {
|
675 |
try {
|
676 |
$result = $this->client->putObject(array(
|
677 |
'Bucket' => $bucket,
|
4 |
|
5 |
/**
|
6 |
*
|
7 |
+
* Copyright (c) 2012-9, David Anderson (https://www.simbahosting.co.uk). All rights reserved.
|
8 |
* Portions copyright (c) 2011, Donovan Schönknecht. All rights reserved.
|
9 |
*
|
10 |
* Redistribution and use in source and binary forms, with or without
|
102 |
* @param Null|String $region Region. Currently unused, but harmonised with UpdraftPlus_S3 class
|
103 |
* @return void
|
104 |
*/
|
105 |
+
public function __construct($access_key = null, $secret_key = null, $use_ssl = true, $ssl_ca_cert = true, $endpoint = null, $session_token = null, $region = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
106 |
if (null !== $access_key && null !== $secret_key)
|
107 |
$this->setAuth($access_key, $secret_key, $session_token);
|
108 |
|
260 |
* @param string $ssl_ca_cert SSL CA cert (only required if you are having problems with your system CA cert)
|
261 |
* @return void
|
262 |
*/
|
263 |
+
public function setSSLAuth($ssl_cert = null, $ssl_key = null, $ssl_ca_cert = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
264 |
+
|
265 |
if (!$this->use_ssl) return;
|
266 |
|
267 |
if (!$this->use_ssl_validation) {
|
361 |
* @param boolean $return_common_prefixes Set to true to return CommonPrefixes
|
362 |
* @return array
|
363 |
*/
|
364 |
+
public function getBucket($bucket, $prefix = null, $marker = null, $max_keys = null, $delimiter = null, $return_common_prefixes = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
365 |
try {
|
366 |
if (0 == $max_keys) $max_keys = null;
|
367 |
|
500 |
* @param constant $storage_class Storage class constant
|
501 |
* @return string | false
|
502 |
*/
|
503 |
+
public function initiateMultipartUpload($bucket, $uri, $acl = self::ACL_PRIVATE, $meta_headers = array(), $request_headers = array(), $storage_class = self::STORAGE_CLASS_STANDARD) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
504 |
$vars = array(
|
505 |
'ACL' => $acl,
|
506 |
'Bucket' => $bucket,
|
672 |
* @param string $content_type Content type
|
673 |
* @return boolean returns either true of false
|
674 |
*/
|
675 |
+
public function putObjectString($string, $bucket, $uri, $acl = self::ACL_PRIVATE, $meta_headers = array(), $content_type = 'text/plain') { // phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- legacy function
|
676 |
try {
|
677 |
$result = $this->client->putObject(array(
|
678 |
'Bucket' => $bucket,
|
@@ -250,7 +250,7 @@ class UpdraftPlus_Backup_History {
|
|
250 |
* @param String $v - ignored
|
251 |
* @return Mixed - the database option
|
252 |
*/
|
253 |
-
public static function filter_updraft_backup_history($v) {
|
254 |
global $wpdb;
|
255 |
$row = $wpdb->get_row($wpdb->prepare("SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", 'updraft_backup_history'));
|
256 |
if (is_object($row)) return maybe_unserialize($row->option_value);
|
@@ -503,7 +503,7 @@ class UpdraftPlus_Backup_History {
|
|
503 |
'code' => 'possibleforeign_'.md5($entry),
|
504 |
'desc' => $entry,
|
505 |
'method' => '',
|
506 |
-
'message' => __('This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz)).', 'updraftplus').' <a href="https://updraftplus.com/shop/updraftplus-premium/">'.__('If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you.', 'updraftplus').'</a>'
|
507 |
);
|
508 |
$messages[$potmessage['code']] = $potmessage;
|
509 |
continue;
|
@@ -642,7 +642,8 @@ class UpdraftPlus_Backup_History {
|
|
642 |
if ($btime <= 100) continue;
|
643 |
|
644 |
// Remember that at this point, we already know that the file is not stored locally (else it would have been pruned earlier from $remote_files)
|
645 |
-
|
|
|
646 |
if (!isset($backup_history[$btime]['service']) || (is_array($backup_history[$btime]['service']) && $backup_history[$btime]['service'] !== $services) || (is_string($backup_history[$btime]['service']) && (1 != count($services) || $services[0] !== $backup_history[$btime]['service']))) {
|
647 |
$changes = true;
|
648 |
if (isset($backup_history[$btime]['service'])) {
|
@@ -691,7 +692,7 @@ class UpdraftPlus_Backup_History {
|
|
691 |
}
|
692 |
}
|
693 |
}
|
694 |
-
|
695 |
$more_backup_history = apply_filters('updraftplus_more_rebuild', $backup_history);
|
696 |
|
697 |
if ($more_backup_history) {
|
250 |
* @param String $v - ignored
|
251 |
* @return Mixed - the database option
|
252 |
*/
|
253 |
+
public static function filter_updraft_backup_history($v) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
254 |
global $wpdb;
|
255 |
$row = $wpdb->get_row($wpdb->prepare("SELECT option_value FROM $wpdb->options WHERE option_name = %s LIMIT 1", 'updraft_backup_history'));
|
256 |
if (is_object($row)) return maybe_unserialize($row->option_value);
|
503 |
'code' => 'possibleforeign_'.md5($entry),
|
504 |
'desc' => $entry,
|
505 |
'method' => '',
|
506 |
+
'message' => __('This file does not appear to be an UpdraftPlus backup archive (such files are .zip or .gz files which have a name like: backup_(time)_(site name)_(code)_(type).(zip|gz)).', 'updraftplus').' <a href="https://updraftplus.com/shop/updraftplus-premium/" target="_blank">'.__('If this is a backup created by a different backup plugin, then UpdraftPlus Premium may be able to help you.', 'updraftplus').'</a>'
|
507 |
);
|
508 |
$messages[$potmessage['code']] = $potmessage;
|
509 |
continue;
|
642 |
if ($btime <= 100) continue;
|
643 |
|
644 |
// Remember that at this point, we already know that the file is not stored locally (else it would have been pruned earlier from $remote_files)
|
645 |
+
// The check for a new set needs to take into account that $backup_history[$btime]['service_instance_ids'] may have been created further up this method
|
646 |
+
if (isset($backup_history[$btime]) && array('service_instance_ids') !== array_keys($backup_history[$btime])) {
|
647 |
if (!isset($backup_history[$btime]['service']) || (is_array($backup_history[$btime]['service']) && $backup_history[$btime]['service'] !== $services) || (is_string($backup_history[$btime]['service']) && (1 != count($services) || $services[0] !== $backup_history[$btime]['service']))) {
|
648 |
$changes = true;
|
649 |
if (isset($backup_history[$btime]['service'])) {
|
692 |
}
|
693 |
}
|
694 |
}
|
695 |
+
|
696 |
$more_backup_history = apply_filters('updraftplus_more_rebuild', $backup_history);
|
697 |
|
698 |
if ($more_backup_history) {
|
@@ -10,6 +10,16 @@ class UpdraftPlus_Database_Utility {
|
|
10 |
|
11 |
private $dbhandle;
|
12 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
13 |
public function __construct($whichdb, $table_prefix_raw, $dbhandle) {
|
14 |
$this->whichdb = $whichdb;
|
15 |
$this->table_prefix_raw = $table_prefix_raw;
|
@@ -19,9 +29,10 @@ class UpdraftPlus_Database_Utility {
|
|
19 |
/**
|
20 |
* The purpose of this function is to make sure that the options table is put in the database first, then the users table, then the site + blogs tables (if present - multisite), then the usermeta table; and after that the core WP tables - so that when restoring we restore the core tables first
|
21 |
*
|
22 |
-
* @param
|
23 |
-
* @param
|
24 |
-
*
|
|
|
25 |
*/
|
26 |
public function backup_db_sorttables($a_arr, $b_arr) {
|
27 |
|
@@ -58,7 +69,7 @@ class UpdraftPlus_Database_Utility {
|
|
58 |
$updraftplus->log($e->getMessage());
|
59 |
}
|
60 |
|
61 |
-
if (empty($core_tables)) $core_tables = array('terms', 'term_taxonomy', 'termmeta', 'term_relationships', 'commentmeta', 'comments', 'links', 'postmeta', 'posts', 'site', 'sitemeta', 'blogs', 'blogversions');
|
62 |
|
63 |
$na = UpdraftPlus_Manipulation_Functions::str_replace_once($our_table_prefix, '', $a);
|
64 |
$nb = UpdraftPlus_Manipulation_Functions::str_replace_once($our_table_prefix, '', $b);
|
@@ -72,18 +83,16 @@ class UpdraftPlus_WPDB_OtherDB_Utility extends wpdb {
|
|
72 |
/**
|
73 |
* This adjusted bail() does two things: 1) Never dies and 2) logs in the UD log
|
74 |
*
|
75 |
-
* @param
|
76 |
-
* @param
|
77 |
-
* @return
|
78 |
*/
|
79 |
-
public function bail(
|
80 |
global $updraftplus;
|
81 |
if ('db_connect_fail' == $error_code) $message = 'Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled.';
|
82 |
$updraftplus->log("WPDB_OtherDB error: $message ($error_code)");
|
83 |
// Now do the things that would have been done anyway
|
84 |
-
|
85 |
-
$this->error = new WP_Error($error_code, $message);
|
86 |
-
else $this->error = $message;
|
87 |
return false;
|
88 |
}
|
89 |
}
|
10 |
|
11 |
private $dbhandle;
|
12 |
|
13 |
+
/**
|
14 |
+
* Constructor
|
15 |
+
*/
|
16 |
+
/**
|
17 |
+
* Constructor
|
18 |
+
*
|
19 |
+
* @param String $whichdb - which database is being backed up
|
20 |
+
* @param String $table_prefix_raw - the base table prefix
|
21 |
+
* @param Object $dbhandle - WPDB object
|
22 |
+
*/
|
23 |
public function __construct($whichdb, $table_prefix_raw, $dbhandle) {
|
24 |
$this->whichdb = $whichdb;
|
25 |
$this->table_prefix_raw = $table_prefix_raw;
|
29 |
/**
|
30 |
* The purpose of this function is to make sure that the options table is put in the database first, then the users table, then the site + blogs tables (if present - multisite), then the usermeta table; and after that the core WP tables - so that when restoring we restore the core tables first
|
31 |
*
|
32 |
+
* @param Array $a_arr the first array
|
33 |
+
* @param Array $b_arr the second array
|
34 |
+
*
|
35 |
+
* @return Integer - the sort result, according to the rules of PHP custom sorting functions
|
36 |
*/
|
37 |
public function backup_db_sorttables($a_arr, $b_arr) {
|
38 |
|
69 |
$updraftplus->log($e->getMessage());
|
70 |
}
|
71 |
|
72 |
+
if (empty($core_tables)) $core_tables = array('terms', 'term_taxonomy', 'termmeta', 'term_relationships', 'commentmeta', 'comments', 'links', 'postmeta', 'posts', 'site', 'sitemeta', 'blogs', 'blogversions', 'blogmeta');
|
73 |
|
74 |
$na = UpdraftPlus_Manipulation_Functions::str_replace_once($our_table_prefix, '', $a);
|
75 |
$nb = UpdraftPlus_Manipulation_Functions::str_replace_once($our_table_prefix, '', $b);
|
83 |
/**
|
84 |
* This adjusted bail() does two things: 1) Never dies and 2) logs in the UD log
|
85 |
*
|
86 |
+
* @param String $message a string containing a message
|
87 |
+
* @param String $error_code a string containing an error code
|
88 |
+
* @return Boolean returns false
|
89 |
*/
|
90 |
+
public function bail($message, $error_code = '500') {
|
91 |
global $updraftplus;
|
92 |
if ('db_connect_fail' == $error_code) $message = 'Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled.';
|
93 |
$updraftplus->log("WPDB_OtherDB error: $message ($error_code)");
|
94 |
// Now do the things that would have been done anyway
|
95 |
+
$this->error = class_exists('WP_Error') ? new WP_Error($error_code, $message) : $message;
|
|
|
|
|
96 |
return false;
|
97 |
}
|
98 |
}
|
@@ -50,6 +50,55 @@ class UpdraftPlus_Filesystem_Functions {
|
|
50 |
|
51 |
}
|
52 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
53 |
/**
|
54 |
* Get the html of "Web-server disk space" line which resides above of the existing backup table
|
55 |
*
|
@@ -393,12 +442,13 @@ class UpdraftPlus_Filesystem_Functions {
|
|
393 |
*
|
394 |
* @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
|
395 |
*
|
396 |
-
* @param String
|
397 |
-
* @param String
|
|
|
398 |
*
|
399 |
* @return Boolean|WP_Error True on success, WP_Error on failure.
|
400 |
*/
|
401 |
-
public static function unzip_file($file, $to) {
|
402 |
global $wp_filesystem;
|
403 |
|
404 |
if (!$wp_filesystem || !is_object($wp_filesystem)) {
|
@@ -431,15 +481,83 @@ class UpdraftPlus_Filesystem_Functions {
|
|
431 |
}
|
432 |
}
|
433 |
|
|
|
|
|
|
|
|
|
|
|
|
|
434 |
if (class_exists('ZipArchive', false) && apply_filters('unzip_file_use_ziparchive', true)) {
|
435 |
-
|
436 |
-
$result = _unzip_file_ziparchive($file, $to, $needed_dirs);
|
437 |
if (true === $result || (is_wp_error($result) && 'incompatible_archive' != $result->get_error_code())) return $result;
|
438 |
}
|
439 |
|
440 |
// Fall through to PclZip if ZipArchive is not available, or encountered an error opening the file.
|
441 |
-
//
|
442 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
443 |
}
|
444 |
|
445 |
/**
|
@@ -449,24 +567,32 @@ class UpdraftPlus_Filesystem_Functions {
|
|
449 |
*
|
450 |
* @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
|
451 |
*
|
452 |
-
* @param String
|
453 |
-
* @param String
|
454 |
-
* @param Array
|
455 |
-
* @param String
|
|
|
456 |
*
|
457 |
* @return Boolean|WP_Error True on success, WP_Error on failure.
|
458 |
*/
|
459 |
-
public static function unzip_file_go($file, $to, $needed_dirs = array(), $method = 'ziparchive') {
|
460 |
-
global $wp_filesystem;
|
461 |
|
462 |
$class_to_use = ('ziparchive' == $method) ? 'UpdraftPlus_ZipArchive' : 'UpdraftPlus_PclZip';
|
463 |
|
464 |
if (!class_exists($class_to_use)) require_once(UPDRAFTPLUS_DIR.'/includes/class-zip.php');
|
465 |
|
|
|
|
|
466 |
$z = new $class_to_use;
|
467 |
|
468 |
$flags = (version_compare(PHP_VERSION, '5.2.12', '>') && defined('ZIPARCHIVE::CHECKCONS')) ? ZIPARCHIVE::CHECKCONS : 4;
|
469 |
|
|
|
|
|
|
|
|
|
|
|
470 |
$zopen = $z->open($file, $flags);
|
471 |
|
472 |
if (true !== $zopen) {
|
@@ -477,26 +603,23 @@ class UpdraftPlus_Filesystem_Functions {
|
|
477 |
|
478 |
$num_files = $z->numFiles;
|
479 |
|
480 |
-
for ($i =
|
481 |
if (!$info = $z->statIndex($i)) {
|
482 |
-
return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.'));
|
483 |
}
|
484 |
|
485 |
-
|
486 |
-
|
487 |
-
}
|
488 |
|
489 |
// Don't extract invalid files:
|
490 |
-
if (0 !== validate_file($info['name']))
|
491 |
-
continue;
|
492 |
-
}
|
493 |
|
494 |
$uncompressed_size += $info['size'];
|
495 |
|
496 |
if ('/' === substr($info['name'], -1)) {
|
497 |
// Directory.
|
498 |
$needed_dirs[] = $to . untrailingslashit($info['name']);
|
499 |
-
} elseif ('.' !== $dirname = dirname($info['name'])) {
|
500 |
// Path to a file.
|
501 |
$needed_dirs[] = $to . untrailingslashit($dirname);
|
502 |
}
|
@@ -507,7 +630,7 @@ class UpdraftPlus_Filesystem_Functions {
|
|
507 |
* A disk that has zero free bytes has bigger problems.
|
508 |
* Require we have enough space to unzip the file and copy its contents, with a 10% buffer.
|
509 |
*/
|
510 |
-
if (wp_doing_cron()) {
|
511 |
$available_space = @disk_free_space(WP_CONTENT_DIR);
|
512 |
if ($available_space && ($uncompressed_size * 2.1) > $available_space) {
|
513 |
return new WP_Error('disk_full_unzip_file', __('Could not copy files. You may have run out of disk space.'), compact('uncompressed_size', 'available_space'));
|
@@ -520,9 +643,9 @@ class UpdraftPlus_Filesystem_Functions {
|
|
520 |
if (untrailingslashit($to) == $dir) { // Skip over the working directory, We know this exists (or will exist)
|
521 |
continue;
|
522 |
}
|
523 |
-
|
524 |
-
|
525 |
-
|
526 |
|
527 |
$parent_folder = dirname($dir);
|
528 |
while (!empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs)) {
|
@@ -541,33 +664,37 @@ class UpdraftPlus_Filesystem_Functions {
|
|
541 |
}
|
542 |
unset($needed_dirs);
|
543 |
|
544 |
-
|
|
|
|
|
545 |
if (!$info = $z->statIndex($i)) {
|
546 |
return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.'));
|
547 |
}
|
548 |
|
549 |
-
|
550 |
-
|
551 |
-
}
|
552 |
|
553 |
-
|
554 |
-
|
555 |
-
}
|
556 |
|
557 |
// Don't extract invalid files:
|
558 |
-
if (0 !== validate_file($info['name']))
|
559 |
-
continue;
|
560 |
-
}
|
561 |
-
|
562 |
-
$contents = $z->getFromIndex($i);
|
563 |
|
564 |
-
|
565 |
-
|
|
|
|
|
|
|
566 |
}
|
567 |
|
568 |
if (!$wp_filesystem->put_contents($to . $info['name'], $contents, FS_CHMOD_FILE)) {
|
569 |
return new WP_Error('copy_failed_'.$method, __('Could not copy file.'), $info['name']);
|
570 |
}
|
|
|
|
|
|
|
|
|
|
|
571 |
}
|
572 |
|
573 |
$z->close();
|
50 |
|
51 |
}
|
52 |
|
53 |
+
/**
|
54 |
+
* Ensure that WP_Filesystem is instantiated and functional. Otherwise, outputs necessary HTML and dies.
|
55 |
+
* Will also consult $_POST['updraft_restore'] and can set $_POST['updraft_restore_*'] and $_POST['updraft_restorer_*']
|
56 |
+
*
|
57 |
+
* @param Array|Null $second_loop_entities - array of files grouped by type
|
58 |
+
* @param Array $url_parameters - parameters and values to be added to the URL output
|
59 |
+
*/
|
60 |
+
public static function ensure_wp_filesystem_set_up_for_restore($second_loop_entities, $url_parameters = array()) {
|
61 |
+
|
62 |
+
global $wp_filesystem;
|
63 |
+
|
64 |
+
// request_filesystem_credentials passes on fields just via hidden name/value pairs.
|
65 |
+
// Build array of parameters to be passed via this
|
66 |
+
$extra_fields = array();
|
67 |
+
if (isset($_POST['updraft_restore']) && is_array($_POST['updraft_restore'])) {
|
68 |
+
foreach ($_POST['updraft_restore'] as $entity) {
|
69 |
+
$_POST['updraft_restore_'.$entity] = 1;
|
70 |
+
$extra_fields[] = 'updraft_restore_'.$entity;
|
71 |
+
}
|
72 |
+
}
|
73 |
+
|
74 |
+
foreach ($second_loop_entities as $type => $files) {
|
75 |
+
$_POST['updraft_restore_'.$type] = 1;
|
76 |
+
if (!in_array('updraft_restore_'.$type, $extra_fields)) $extra_fields[] = 'updraft_restore_'.$type;
|
77 |
+
}
|
78 |
+
|
79 |
+
// Now make sure that updraft_restorer_ option fields get passed along to request_filesystem_credentials
|
80 |
+
foreach ($_POST as $key => $value) {
|
81 |
+
if (0 === strpos($key, 'updraft_restorer_')) $extra_fields[] = $key;
|
82 |
+
}
|
83 |
+
|
84 |
+
$build_url = UpdraftPlus_Options::admin_page().'?page=updraftplus&action=updraft_restore';
|
85 |
+
|
86 |
+
foreach ($url_parameters as $k => $v) {
|
87 |
+
$build_url .= '&'.$k.'='.$v;
|
88 |
+
}
|
89 |
+
|
90 |
+
$credentials = request_filesystem_credentials($build_url, '', false, false, $extra_fields);
|
91 |
+
|
92 |
+
WP_Filesystem($credentials);
|
93 |
+
|
94 |
+
if ($wp_filesystem->errors->get_error_code()) {
|
95 |
+
echo '<p><em><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/asked-ftp-details-upon-restorationmigration-updates/").'" target="_blank">'.__('Why am I seeing this?', 'updraftplus').'</a></em></p>';
|
96 |
+
foreach ($wp_filesystem->errors->get_error_messages() as $message) show_message($message);
|
97 |
+
exit;
|
98 |
+
}
|
99 |
+
|
100 |
+
}
|
101 |
+
|
102 |
/**
|
103 |
* Get the html of "Web-server disk space" line which resides above of the existing backup table
|
104 |
*
|
442 |
*
|
443 |
* @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
|
444 |
*
|
445 |
+
* @param String $file - Full path and filename of ZIP archive.
|
446 |
+
* @param String $to - Full path on the filesystem to extract archive to.
|
447 |
+
* @param Integer $starting_index - index of entry to start unzipping from (allows resumption)
|
448 |
*
|
449 |
* @return Boolean|WP_Error True on success, WP_Error on failure.
|
450 |
*/
|
451 |
+
public static function unzip_file($file, $to, $starting_index = 0) {
|
452 |
global $wp_filesystem;
|
453 |
|
454 |
if (!$wp_filesystem || !is_object($wp_filesystem)) {
|
481 |
}
|
482 |
}
|
483 |
|
484 |
+
static $added_unzip_action = false;
|
485 |
+
if (!$added_unzip_action) {
|
486 |
+
add_action('updraftplus_unzip_file_unzipped', array('UpdraftPlus_Filesystem_Functions', 'unzip_file_unzipped'), 10, 5);
|
487 |
+
$added_unzip_action = true;
|
488 |
+
}
|
489 |
+
|
490 |
if (class_exists('ZipArchive', false) && apply_filters('unzip_file_use_ziparchive', true)) {
|
491 |
+
$result = self::unzip_file_go($file, $to, $needed_dirs, 'ziparchive', $starting_index);
|
|
|
492 |
if (true === $result || (is_wp_error($result) && 'incompatible_archive' != $result->get_error_code())) return $result;
|
493 |
}
|
494 |
|
495 |
// Fall through to PclZip if ZipArchive is not available, or encountered an error opening the file.
|
496 |
+
// The switch here is a sort-of emergency switch-off in case something in WP's version diverges or behaves differently
|
497 |
+
if (!defined('UPDRAFTPLUS_USE_INTERNAL_PCLZIP') || UPDRAFTPLUS_USE_INTERNAL_PCLZIP) {
|
498 |
+
return self::unzip_file_go($file, $to, $needed_dirs, 'pclzip', $starting_index);
|
499 |
+
} else {
|
500 |
+
return _unzip_file_pclzip($file, $to, $needed_dirs);
|
501 |
+
}
|
502 |
+
}
|
503 |
+
|
504 |
+
/**
|
505 |
+
* Called upon the WP action updraftplus_unzip_file_unzipped, to indicate that a file has been unzipped.
|
506 |
+
*
|
507 |
+
* @param String $file - the file being unzipped
|
508 |
+
* @param Integer $i - the file index that was written (0, 1, ...)
|
509 |
+
* @param Array $info - information about the file written, from the statIndex() method (see https://php.net/manual/en/ziparchive.statindex.php)
|
510 |
+
* @param Integer $size_written - net total number of bytes thus far
|
511 |
+
* @param Integer $num_files - the total number of files (i.e. one more than the the maximum value of $i)
|
512 |
+
*/
|
513 |
+
public static function unzip_file_unzipped($file, $i, $info, $size_written, $num_files) {
|
514 |
+
|
515 |
+
global $updraftplus;
|
516 |
+
|
517 |
+
static $last_file_seen = null;
|
518 |
+
|
519 |
+
static $last_logged_bytes;
|
520 |
+
static $last_logged_index;
|
521 |
+
static $last_logged_time;
|
522 |
+
static $last_saved_time;
|
523 |
+
|
524 |
+
// Detect a new zip file; reset state
|
525 |
+
if ($file !== $last_file_seen) {
|
526 |
+
$last_file_seen = $file;
|
527 |
+
$last_logged_bytes = 0;
|
528 |
+
$last_logged_index = 0;
|
529 |
+
$last_logged_time = time();
|
530 |
+
$last_saved_time = time();
|
531 |
+
}
|
532 |
+
|
533 |
+
// We always log the last one for clarity (the log/display looks odd if the last mention of something being unzipped isn't the last). Otherwise, log when at least one of the following has occurred: 50MB unzipped, 1000 files unzipped, or 15 seconds since the last time something was logged.
|
534 |
+
if ($i >= $num_files -1 || $size_written > $last_logged_bytes + 100 * 1048576 || $i > $last_logged_index + 1000 || time() > $last_logged_time + 15) {
|
535 |
+
|
536 |
+
$updraftplus->jobdata_set('last_index_'.md5(basename($file)), $i);
|
537 |
+
|
538 |
+
$updraftplus->log(sprintf(__('Unzip progress: %d out of %d files', 'updraftplus').' (%s, %s)', $i+1, $num_files, UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($size_written), $info['name']), 'notice-restore');
|
539 |
+
$updraftplus->log(sprintf('Unzip progress: %d out of %d files (%s, %s)', $i+1, $num_files, UpdraftPlus_Manipulation_Functions::convert_numeric_size_to_text($size_written), $info['name']), 'notice');
|
540 |
+
|
541 |
+
$last_logged_bytes = $size_written;
|
542 |
+
$last_logged_index = $i;
|
543 |
+
$last_logged_time = time();
|
544 |
+
$last_saved_time = time();
|
545 |
+
}
|
546 |
+
|
547 |
+
// Because a lot can happen in 5 seconds, we update the job data more often
|
548 |
+
if (time() > $last_saved_time + 5) {
|
549 |
+
// N.B. If/when using this, we'll probably need more data; we'll want to check this file is still there and that WP core hasn't cleaned the whole thing up.
|
550 |
+
$updraftplus->jobdata_set('last_index_'.md5(basename($file)), $i);
|
551 |
+
$last_saved_time = time();
|
552 |
+
}
|
553 |
+
}
|
554 |
+
|
555 |
+
/**
|
556 |
+
* Compatibility function (exists in WP 4.8+)
|
557 |
+
*/
|
558 |
+
public static function wp_doing_cron() {
|
559 |
+
if (function_exists('wp_doing_cron')) return wp_doing_cron();
|
560 |
+
return apply_filters('wp_doing_cron', defined('DOING_CRON') && DOING_CRON);
|
561 |
}
|
562 |
|
563 |
/**
|
567 |
*
|
568 |
* @global WP_Filesystem_Base $wp_filesystem WordPress filesystem subclass.
|
569 |
*
|
570 |
+
* @param String $file - full path and filename of ZIP archive.
|
571 |
+
* @param String $to - full path on the filesystem to extract archive to.
|
572 |
+
* @param Array $needed_dirs - a partial list of required folders needed to be created.
|
573 |
+
* @param String $method - either 'ziparchive' or 'pclzip'.
|
574 |
+
* @param Integer $starting_index - index of entry to start unzipping from (allows resumption)
|
575 |
*
|
576 |
* @return Boolean|WP_Error True on success, WP_Error on failure.
|
577 |
*/
|
578 |
+
public static function unzip_file_go($file, $to, $needed_dirs = array(), $method = 'ziparchive', $starting_index = 0) {
|
579 |
+
global $wp_filesystem, $updraftplus;
|
580 |
|
581 |
$class_to_use = ('ziparchive' == $method) ? 'UpdraftPlus_ZipArchive' : 'UpdraftPlus_PclZip';
|
582 |
|
583 |
if (!class_exists($class_to_use)) require_once(UPDRAFTPLUS_DIR.'/includes/class-zip.php');
|
584 |
|
585 |
+
$updraftplus->log('Unzipping '.basename($file).' to '.$to.' using '.$class_to_use);
|
586 |
+
|
587 |
$z = new $class_to_use;
|
588 |
|
589 |
$flags = (version_compare(PHP_VERSION, '5.2.12', '>') && defined('ZIPARCHIVE::CHECKCONS')) ? ZIPARCHIVE::CHECKCONS : 4;
|
590 |
|
591 |
+
// This is just for crazy people with mbstring.func_overload enabled (deprecated from PHP 7.2)
|
592 |
+
// This belongs somewhere else
|
593 |
+
// if ('UpdraftPlus_PclZip' == $class_to_use) mbstring_binary_safe_encoding();
|
594 |
+
// if ('UpdraftPlus_PclZip' == $class_to_use) reset_mbstring_encoding();
|
595 |
+
|
596 |
$zopen = $z->open($file, $flags);
|
597 |
|
598 |
if (true !== $zopen) {
|
603 |
|
604 |
$num_files = $z->numFiles;
|
605 |
|
606 |
+
for ($i = $starting_index; $i < $num_files; $i++) {
|
607 |
if (!$info = $z->statIndex($i)) {
|
608 |
+
return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.').' ('.$z->last_error.')');
|
609 |
}
|
610 |
|
611 |
+
// Skip the OS X-created __MACOSX directory
|
612 |
+
if ('__MACOSX/' === substr($info['name'], 0, 9)) continue;
|
|
|
613 |
|
614 |
// Don't extract invalid files:
|
615 |
+
if (0 !== validate_file($info['name'])) continue;
|
|
|
|
|
616 |
|
617 |
$uncompressed_size += $info['size'];
|
618 |
|
619 |
if ('/' === substr($info['name'], -1)) {
|
620 |
// Directory.
|
621 |
$needed_dirs[] = $to . untrailingslashit($info['name']);
|
622 |
+
} elseif ('.' !== ($dirname = dirname($info['name']))) {
|
623 |
// Path to a file.
|
624 |
$needed_dirs[] = $to . untrailingslashit($dirname);
|
625 |
}
|
630 |
* A disk that has zero free bytes has bigger problems.
|
631 |
* Require we have enough space to unzip the file and copy its contents, with a 10% buffer.
|
632 |
*/
|
633 |
+
if (self::wp_doing_cron()) {
|
634 |
$available_space = @disk_free_space(WP_CONTENT_DIR);
|
635 |
if ($available_space && ($uncompressed_size * 2.1) > $available_space) {
|
636 |
return new WP_Error('disk_full_unzip_file', __('Could not copy files. You may have run out of disk space.'), compact('uncompressed_size', 'available_space'));
|
643 |
if (untrailingslashit($to) == $dir) { // Skip over the working directory, We know this exists (or will exist)
|
644 |
continue;
|
645 |
}
|
646 |
+
|
647 |
+
// If the directory is not within the working directory, Skip it
|
648 |
+
if (false === strpos($dir, $to)) continue;
|
649 |
|
650 |
$parent_folder = dirname($dir);
|
651 |
while (!empty($parent_folder) && untrailingslashit($to) != $parent_folder && !in_array($parent_folder, $needed_dirs)) {
|
664 |
}
|
665 |
unset($needed_dirs);
|
666 |
|
667 |
+
$size_written = 0;
|
668 |
+
|
669 |
+
for ($i = $starting_index; $i < $num_files; $i++) {
|
670 |
if (!$info = $z->statIndex($i)) {
|
671 |
return new WP_Error('stat_failed_'.$method, __('Could not retrieve file from archive.'));
|
672 |
}
|
673 |
|
674 |
+
// directory
|
675 |
+
if ('/' == substr($info['name'], -1)) continue;
|
|
|
676 |
|
677 |
+
// Don't extract the OS X-created __MACOSX
|
678 |
+
if ('__MACOSX/' === substr($info['name'], 0, 9)) continue;
|
|
|
679 |
|
680 |
// Don't extract invalid files:
|
681 |
+
if (0 !== validate_file($info['name'])) continue;
|
|
|
|
|
|
|
|
|
682 |
|
683 |
+
// PclZip will return (boolean)false for an empty file
|
684 |
+
$contents = (isset($info['size']) && 0 == $info['size']) ? '' : $z->getFromIndex($i);
|
685 |
+
|
686 |
+
if (false === $contents && ('pclzip' !== $method || 0 !== $info['size'])) {
|
687 |
+
return new WP_Error('extract_failed_'.$method, __('Could not extract file from archive.').' '.$z->last_error, json_encode($info));
|
688 |
}
|
689 |
|
690 |
if (!$wp_filesystem->put_contents($to . $info['name'], $contents, FS_CHMOD_FILE)) {
|
691 |
return new WP_Error('copy_failed_'.$method, __('Could not copy file.'), $info['name']);
|
692 |
}
|
693 |
+
|
694 |
+
if (!empty($info['size'])) $size_written += $info['size'];
|
695 |
+
|
696 |
+
do_action('updraftplus_unzip_file_unzipped', $file, $i, $info, $size_written, $num_files);
|
697 |
+
|
698 |
}
|
699 |
|
700 |
$z->close();
|
@@ -69,6 +69,25 @@ class UpdraftPlus_Job_Scheduler {
|
|
69 |
|
70 |
$updraftplus->something_useful_happened = true;
|
71 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
72 |
$updraft_dir = $updraftplus->backups_dir_location();
|
73 |
if (file_exists($updraft_dir.'/deleteflag-'.$updraftplus->nonce.'.txt')) {
|
74 |
$updraftplus->log("User request for abort: backup job will be immediately halted");
|
69 |
|
70 |
$updraftplus->something_useful_happened = true;
|
71 |
|
72 |
+
$clone_job = $updraftplus->jobdata_get('clone_job');
|
73 |
+
|
74 |
+
if (!empty($clone_job)) {
|
75 |
+
static $last_call = false;
|
76 |
+
|
77 |
+
// Check we haven't yet made a call or that 15 minutes has passed before we make another call
|
78 |
+
if (!$last_call || time() - $last_call > 900) {
|
79 |
+
$last_call = time();
|
80 |
+
$clone_id = $updraftplus->jobdata_get('clone_id');
|
81 |
+
$secret_token = $updraftplus->jobdata_get('secret_token');
|
82 |
+
$response = $updraftplus->get_updraftplus_clone()->clone_checkin(array('clone_id' => $clone_id, 'secret_token' => $secret_token));
|
83 |
+
if (!isset($response['status']) || 'success' != $response['status']) {
|
84 |
+
$updraftplus->log("UpdraftClone backup check-in failed.");
|
85 |
+
} else {
|
86 |
+
$updraftplus->log("UpdraftClone backup check-in made succfessfully.");
|
87 |
+
}
|
88 |
+
}
|
89 |
+
}
|
90 |
+
|
91 |
$updraft_dir = $updraftplus->backups_dir_location();
|
92 |
if (file_exists($updraft_dir.'/deleteflag-'.$updraftplus->nonce.'.txt')) {
|
93 |
$updraftplus->log("User request for abort: backup job will be immediately halted");
|
@@ -77,7 +77,7 @@ abstract class UpdraftPlus_RemoteSend {
|
|
77 |
return $msg;
|
78 |
}
|
79 |
|
80 |
-
public function updraftplus_logline($line, $nonce, $level, $uniq_id) {
|
81 |
if ('notice' === $level && 'php_event' === $uniq_id) {
|
82 |
$this->php_events[] = $line;
|
83 |
}
|
@@ -209,7 +209,7 @@ abstract class UpdraftPlus_RemoteSend {
|
|
209 |
*
|
210 |
* @return array - the array response
|
211 |
*/
|
212 |
-
public function udrpc_command_upload_complete($response, $data, $name_indicator) {
|
213 |
if (!preg_match('/^([a-f0-9]+)\.migrator.updraftplus.com$/', $name_indicator, $matches)) return $response;
|
214 |
|
215 |
if (defined('UPDRAFTPLUS_THIS_IS_CLONE')) {
|
@@ -311,7 +311,7 @@ abstract class UpdraftPlus_RemoteSend {
|
|
311 |
}
|
312 |
|
313 |
// We got several support requests from people who didn't seem to be aware of other methods
|
314 |
-
$msg_try_other_method = '<p>'.__('If sending directly from site to site does not work for you, then there are three other methods - please try one of these instead.', 'updraftplus').'<a href="https://updraftplus.com/faqs/how-do-i-migrate-to-a-new-site-location/#importing">'.__('For longer help, including screenshots, follow this link.', 'updraftplus').'</a></p>';
|
315 |
|
316 |
$res['moreinfo'] = isset($res['moreinfo']) ? $res['moreinfo'].$msg_try_other_method : $msg_try_other_method;
|
317 |
|
@@ -393,7 +393,7 @@ abstract class UpdraftPlus_RemoteSend {
|
|
393 |
*
|
394 |
* @return string - the RSA remote key
|
395 |
*/
|
396 |
-
public function updraft_migrate_key_create_return($string, $data) {
|
397 |
return $this->updraft_migrate_key_create($data);
|
398 |
}
|
399 |
|
@@ -441,6 +441,15 @@ abstract class UpdraftPlus_RemoteSend {
|
|
441 |
));
|
442 |
die;
|
443 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
444 |
echo json_encode(array('e' => 1));
|
445 |
die;
|
446 |
}
|
77 |
return $msg;
|
78 |
}
|
79 |
|
80 |
+
public function updraftplus_logline($line, $nonce, $level, $uniq_id) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
81 |
if ('notice' === $level && 'php_event' === $uniq_id) {
|
82 |
$this->php_events[] = $line;
|
83 |
}
|
209 |
*
|
210 |
* @return array - the array response
|
211 |
*/
|
212 |
+
public function udrpc_command_upload_complete($response, $data, $name_indicator) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
213 |
if (!preg_match('/^([a-f0-9]+)\.migrator.updraftplus.com$/', $name_indicator, $matches)) return $response;
|
214 |
|
215 |
if (defined('UPDRAFTPLUS_THIS_IS_CLONE')) {
|
311 |
}
|
312 |
|
313 |
// We got several support requests from people who didn't seem to be aware of other methods
|
314 |
+
$msg_try_other_method = '<p>'.__('If sending directly from site to site does not work for you, then there are three other methods - please try one of these instead.', 'updraftplus').'<a href="https://updraftplus.com/faqs/how-do-i-migrate-to-a-new-site-location/#importing" target="_blank">'.__('For longer help, including screenshots, follow this link.', 'updraftplus').'</a></p>';
|
315 |
|
316 |
$res['moreinfo'] = isset($res['moreinfo']) ? $res['moreinfo'].$msg_try_other_method : $msg_try_other_method;
|
317 |
|
393 |
*
|
394 |
* @return string - the RSA remote key
|
395 |
*/
|
396 |
+
public function updraft_migrate_key_create_return($string, $data) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
397 |
return $this->updraft_migrate_key_create($data);
|
398 |
}
|
399 |
|
441 |
));
|
442 |
die;
|
443 |
}
|
444 |
+
|
445 |
+
if (extension_loaded('mbstring')) {
|
446 |
+
// phpcs:ignore PHPCompatibility.IniDirectives.RemovedIniDirectives.mbstring_func_overloadDeprecated -- Commented out as this flags as not compatible with PHP 5.2
|
447 |
+
if (ini_get('mbstring.func_overload') & 2) {
|
448 |
+
echo json_encode(array('e' => 1, 'r' => __('Error:', 'updraftplus').' '.sprintf(__('The setting %s is turned on in your PHP settings. It is deprecated, causes encryption to malfunction, and should be turned off.', 'updraftplus'), 'mbstring.func_overload')));
|
449 |
+
die;
|
450 |
+
}
|
451 |
+
}
|
452 |
+
|
453 |
echo json_encode(array('e' => 1));
|
454 |
die;
|
455 |
}
|
@@ -59,7 +59,7 @@ if (!class_exists('UpdraftPlus_Remote_Communications')) :
|
|
59 |
class UpdraftPlus_Remote_Communications {
|
60 |
|
61 |
// Version numbers relate to versions of this PHP library only (i.e. it's not a protocol support number, and version numbers of other compatible libraries (e.g. JavaScript) are not comparable)
|
62 |
-
public $version = '1.4.
|
63 |
|
64 |
private $key_name_indicator;
|
65 |
|
@@ -106,7 +106,7 @@ class UpdraftPlus_Remote_Communications {
|
|
106 |
|
107 |
private $require_message_to_be_understood = false;
|
108 |
|
109 |
-
public function __construct($key_name_indicator = 'default'
|
110 |
$this->set_key_name_indicator($key_name_indicator);
|
111 |
}
|
112 |
|
59 |
class UpdraftPlus_Remote_Communications {
|
60 |
|
61 |
// Version numbers relate to versions of this PHP library only (i.e. it's not a protocol support number, and version numbers of other compatible libraries (e.g. JavaScript) are not comparable)
|
62 |
+
public $version = '1.4.16';
|
63 |
|
64 |
private $key_name_indicator;
|
65 |
|
106 |
|
107 |
private $require_message_to_be_understood = false;
|
108 |
|
109 |
+
public function __construct($key_name_indicator = 'default') {
|
110 |
$this->set_key_name_indicator($key_name_indicator);
|
111 |
}
|
112 |
|
@@ -552,22 +552,18 @@ class UpdraftPlus_WPAdmin_Commands extends UpdraftPlus_Commands {
|
|
552 |
if (true !== $zip_opened) {
|
553 |
return array('error' => 'UpdraftPlus: opening zip (' . $fullpath . '): failed to open this zip file (object='.$zip_object.', code: '.$zip_opened.')');
|
554 |
} else {
|
555 |
-
|
556 |
-
|
557 |
-
if (false === $numfiles) {
|
558 |
-
return array('error' => 'UpdraftPlus: reading zip: '.$zip->last_error);
|
559 |
-
}
|
560 |
-
} else {
|
561 |
-
$numfiles = $zip->numFiles;
|
562 |
-
}
|
563 |
|
|
|
|
|
564 |
for ($i=0; $i < $numfiles; $i++) {
|
565 |
$si = $zip->statIndex($i);
|
566 |
|
567 |
// Fix for windows being unable to build jstree due to different directory separators being used
|
568 |
$si['name'] = str_replace("/", DIRECTORY_SEPARATOR, $si['name']);
|
569 |
|
570 |
-
// if it's a dot then we don't want to append this as it will break the
|
571 |
if ('.' == dirname($si['name'])) {
|
572 |
$node_id = $parent_name;
|
573 |
} else {
|
552 |
if (true !== $zip_opened) {
|
553 |
return array('error' => 'UpdraftPlus: opening zip (' . $fullpath . '): failed to open this zip file (object='.$zip_object.', code: '.$zip_opened.')');
|
554 |
} else {
|
555 |
+
|
556 |
+
$numfiles = $zip->numFiles;
|
|
|
|
|
|
|
|
|
|
|
|
|
557 |
|
558 |
+
if (false === $numfiles) return array('error' => 'UpdraftPlus: reading zip: '.$zip->last_error);
|
559 |
+
|
560 |
for ($i=0; $i < $numfiles; $i++) {
|
561 |
$si = $zip->statIndex($i);
|
562 |
|
563 |
// Fix for windows being unable to build jstree due to different directory separators being used
|
564 |
$si['name'] = str_replace("/", DIRECTORY_SEPARATOR, $si['name']);
|
565 |
|
566 |
+
// if it's a dot then we don't want to append this as it will break the ids and the tree structure
|
567 |
if ('.' == dirname($si['name'])) {
|
568 |
$node_id = $parent_name;
|
569 |
} else {
|
@@ -48,6 +48,7 @@ class UpdraftPlus_PclZip {
|
|
48 |
* @return null
|
49 |
*/
|
50 |
public function ud_include_mtime() {
|
|
|
51 |
$this->include_mtime = true;
|
52 |
}
|
53 |
|
@@ -59,10 +60,13 @@ class UpdraftPlus_PclZip {
|
|
59 |
* @return Boolean|Null|Integer - the value, or null if an unknown variable, or false if something goes wrong
|
60 |
*/
|
61 |
public function __get($name) {
|
62 |
-
|
|
|
63 |
|
64 |
if (empty($this->pclzip)) return false;
|
65 |
|
|
|
|
|
66 |
$statindex = $this->pclzip->listContent();
|
67 |
|
68 |
if (empty($statindex)) {
|
@@ -72,22 +76,9 @@ class UpdraftPlus_PclZip {
|
|
72 |
return (0 === $statindex) ? false : 0;
|
73 |
}
|
74 |
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
foreach ($statindex as $i => $file) {
|
79 |
-
if (!isset($statindex[$i]['folder']) || 0 == $statindex[$i]['folder']) {
|
80 |
-
$result[] = $file;
|
81 |
-
}
|
82 |
-
unset($statindex[$i]);
|
83 |
-
}
|
84 |
-
|
85 |
-
$this->statindex = $result;
|
86 |
-
|
87 |
-
} else {
|
88 |
-
$this->statindex = $statindex;
|
89 |
-
}
|
90 |
-
|
91 |
return count($this->statindex);
|
92 |
}
|
93 |
|
@@ -109,6 +100,49 @@ class UpdraftPlus_PclZip {
|
|
109 |
return $v;
|
110 |
}
|
111 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
112 |
/**
|
113 |
* Open a zip file
|
114 |
*
|
@@ -157,6 +191,7 @@ class UpdraftPlus_PclZip {
|
|
157 |
* @return boolean
|
158 |
*/
|
159 |
public function close() {
|
|
|
160 |
if (empty($this->pclzip)) {
|
161 |
$this->last_error = 'Zip file was not opened';
|
162 |
return false;
|
@@ -192,6 +227,7 @@ class UpdraftPlus_PclZip {
|
|
192 |
$this->adddirs = array();
|
193 |
|
194 |
clearstatcache();
|
|
|
195 |
if ($activity && filesize($this->path) < 50) {
|
196 |
$this->last_error = "Write failed - unknown cause (check your file permissions)";
|
197 |
return false;
|
@@ -222,6 +258,16 @@ class UpdraftPlus_PclZip {
|
|
222 |
$this->adddirs[] = $dir;
|
223 |
}
|
224 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
225 |
public function extract($path_to_extract, $path) {
|
226 |
return $this->pclzip->extract(PCLZIP_OPT_PATH, $path_to_extract, PCLZIP_OPT_BY_NAME, $path);
|
227 |
}
|
48 |
* @return null
|
49 |
*/
|
50 |
public function ud_include_mtime() {
|
51 |
+
if (empty($this->include_mtime)) $this->statindex = null;
|
52 |
$this->include_mtime = true;
|
53 |
}
|
54 |
|
60 |
* @return Boolean|Null|Integer - the value, or null if an unknown variable, or false if something goes wrong
|
61 |
*/
|
62 |
public function __get($name) {
|
63 |
+
|
64 |
+
if ('numFiles' == $name) {
|
65 |
|
66 |
if (empty($this->pclzip)) return false;
|
67 |
|
68 |
+
if (!empty($this->statindex)) return count($this->statindex);
|
69 |
+
|
70 |
$statindex = $this->pclzip->listContent();
|
71 |
|
72 |
if (empty($statindex)) {
|
76 |
return (0 === $statindex) ? false : 0;
|
77 |
}
|
78 |
|
79 |
+
// We used to exclude folders in the case of numFiles (and implemented a private alternative, numAll, that included them), because we had no use for them (we ran a loop over $statindex to build a result that excluded the folders); but that is no longer the case (Dec 2018)
|
80 |
+
$this->statindex = $statindex;
|
81 |
+
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
return count($this->statindex);
|
83 |
}
|
84 |
|
100 |
return $v;
|
101 |
}
|
102 |
|
103 |
+
/**
|
104 |
+
* Returns the entry contents using its index
|
105 |
+
*
|
106 |
+
* @see https://php.net/manual/en/ziparchive.getfromindex.php
|
107 |
+
*
|
108 |
+
* @param Integer $index - Index of the entry
|
109 |
+
* @param Integer $length - The length to be read from the entry. If 0, then the entire entry is read.
|
110 |
+
* @param Integer $flags - The flags to use to open the archive.
|
111 |
+
*
|
112 |
+
* @return String|Boolean - Returns the contents of the entry on success or FALSE on failure.
|
113 |
+
*/
|
114 |
+
public function getFromIndex($index, $length = 0, $flags = 0) {
|
115 |
+
|
116 |
+
$contents = $this->pclzip->extract(PCLZIP_OPT_BY_INDEX, array($index), PCLZIP_OPT_EXTRACT_AS_STRING);
|
117 |
+
|
118 |
+
if (0 === $contents) {
|
119 |
+
$this->last_error = $this->pclzip->errorInfo(true);
|
120 |
+
return false;
|
121 |
+
}
|
122 |
+
|
123 |
+
// This also prevents CI complaining about an unused parameter
|
124 |
+
if ($flags) {
|
125 |
+
error_log("A call to UpdraftPlus_PclZip::getFromIndex() set flags=$flags, but this is not implemented");
|
126 |
+
}
|
127 |
+
|
128 |
+
if (!is_array($contents)) {
|
129 |
+
$this->last_error = 'PclZip::extract() did not return the expected information (1)';
|
130 |
+
return false;
|
131 |
+
}
|
132 |
+
|
133 |
+
$content = array_pop($contents);
|
134 |
+
|
135 |
+
if (!isset($content['content'])) {
|
136 |
+
$this->last_error = 'PclZip::extract() did not return the expected information (2)';
|
137 |
+
return false;
|
138 |
+
}
|
139 |
+
|
140 |
+
$results = $content['content'];
|
141 |
+
|
142 |
+
return $length ? substr($results, 0, $length) : $results;
|
143 |
+
|
144 |
+
}
|
145 |
+
|
146 |
/**
|
147 |
* Open a zip file
|
148 |
*
|
191 |
* @return boolean
|
192 |
*/
|
193 |
public function close() {
|
194 |
+
|
195 |
if (empty($this->pclzip)) {
|
196 |
$this->last_error = 'Zip file was not opened';
|
197 |
return false;
|
227 |
$this->adddirs = array();
|
228 |
|
229 |
clearstatcache();
|
230 |
+
|
231 |
if ($activity && filesize($this->path) < 50) {
|
232 |
$this->last_error = "Write failed - unknown cause (check your file permissions)";
|
233 |
return false;
|
258 |
$this->adddirs[] = $dir;
|
259 |
}
|
260 |
|
261 |
+
/**
|
262 |
+
* Extract a path
|
263 |
+
*
|
264 |
+
* @param String $path_to_extract
|
265 |
+
* @param String $path
|
266 |
+
*
|
267 |
+
* @see http://www.phpconcept.net/pclzip/user-guide/55
|
268 |
+
*
|
269 |
+
* @return Array|Integer - either an array with the extracted files or an error. N.B. "If one file extraction fail, the full extraction does not fail. The method does not return an error, but the file status is set with the error reason."
|
270 |
+
*/
|
271 |
public function extract($path_to_extract, $path) {
|
272 |
return $this->pclzip->extract(PCLZIP_OPT_PATH, $path_to_extract, PCLZIP_OPT_BY_NAME, $path);
|
273 |
}
|
@@ -90,7 +90,7 @@ class UpdraftPlus_ftp_wrapper {
|
|
90 |
if (!$fh = fopen($local_file_path, 'rb')) return false;
|
91 |
if ($existing_size) fseek($fh, $existing_size);
|
92 |
|
93 |
-
$ret = ftp_nb_fput($this->conn_id, $remote_file_path, $fh,
|
94 |
|
95 |
// $existing_size can now be re-purposed
|
96 |
|
90 |
if (!$fh = fopen($local_file_path, 'rb')) return false;
|
91 |
if ($existing_size) fseek($fh, $existing_size);
|
92 |
|
93 |
+
$ret = ftp_nb_fput($this->conn_id, $remote_file_path, $fh, $mode, $existing_size);
|
94 |
|
95 |
// $existing_size can now be re-purposed
|
96 |
|
@@ -126,6 +126,9 @@ abstract class Updraft_Notices {
|
|
126 |
|
127 |
// If a seasonal advert can't be returned then we will return a random advert
|
128 |
|
|
|
|
|
|
|
129 |
/*
|
130 |
Using shuffle here as something like rand which produces a random number and uses that as the array index fails, this is because in future an advert may not be numbered and could have a string as its key which will then cause errors.
|
131 |
*/
|
126 |
|
127 |
// If a seasonal advert can't be returned then we will return a random advert
|
128 |
|
129 |
+
// Here we give a 25% chance for the rate advert to be returned before selecting a random advert from the entire collection which also includes the rate advert
|
130 |
+
if (0 == rand(0, 3)) return $available_notices['rate'];
|
131 |
+
|
132 |
/*
|
133 |
Using shuffle here as something like rand which produces a random number and uses that as the array index fails, this is because in future an advert may not be numbered and could have a string as its key which will then cause errors.
|
134 |
*/
|
@@ -418,8 +418,8 @@ class UpdraftPlus_Temporary_Clone_Status {
|
|
418 |
* @return string - the clone content
|
419 |
*/
|
420 |
public function get_content() {
|
421 |
-
$content = '<p>'.__('Your UpdraftClone is still setting up.', 'updraftplus').' '.sprintf(__('You can check the progress here or in %s', 'updraftplus'), '<a href="https://updraftplus.com/my-account/clones/">'.__('your UpdraftPlus.com account', 'updraftplus')).'</a></p>';
|
422 |
-
$content .= '<p><a href="https://updraftplus.com/faq-category/updraftclone/">'.__('To read FAQs/documentation about UpdraftClone, go here.', 'updraftplus').'</a></p>';
|
423 |
return $content;
|
424 |
}
|
425 |
|
418 |
* @return string - the clone content
|
419 |
*/
|
420 |
public function get_content() {
|
421 |
+
$content = '<p>'.__('Your UpdraftClone is still setting up.', 'updraftplus').' '.sprintf(__('You can check the progress here or in %s', 'updraftplus'), '<a href="https://updraftplus.com/my-account/clones/" target="_blank">'.__('your UpdraftPlus.com account', 'updraftplus')).'</a></p>';
|
422 |
+
$content .= '<p><a href="https://updraftplus.com/faq-category/updraftclone/" target="_blank">'.__('To read FAQs/documentation about UpdraftClone, go here.', 'updraftplus').'</a></p>';
|
423 |
return $content;
|
424 |
}
|
425 |
|
@@ -157,6 +157,22 @@ class UpdraftPlus_Clone extends UpdraftPlus_Login {
|
|
157 |
return $this->parse_response($response);
|
158 |
}
|
159 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
160 |
/**
|
161 |
* Executes the clone failed delete process. Connects and sends request to the UpdraftPlus clone and returns the response coming from the server
|
162 |
*
|
157 |
return $this->parse_response($response);
|
158 |
}
|
159 |
|
160 |
+
/**
|
161 |
+
* Executes the clone checkin. Connects and sends request to UpdraftPlus and returns the response coming from the server
|
162 |
+
*
|
163 |
+
* @internal
|
164 |
+
* @param array $data - The submitted form data
|
165 |
+
* @return array - The response from the request
|
166 |
+
*/
|
167 |
+
public function clone_checkin($data) {
|
168 |
+
$action = 'updraftplus_clone_checkin';
|
169 |
+
if (empty($data['site_url'])) $data['site_url'] = trailingslashit(network_site_url());
|
170 |
+
|
171 |
+
$response = $this->send_remote_request($data, $action);
|
172 |
+
|
173 |
+
return $this->parse_response($response);
|
174 |
+
}
|
175 |
+
|
176 |
/**
|
177 |
* Executes the clone failed delete process. Connects and sends request to the UpdraftPlus clone and returns the response coming from the server
|
178 |
*
|
@@ -32,6 +32,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
32 |
'text' => __('Enjoy professional, fast, and friendly help whenever you need it with Premium.', 'updraftplus'),
|
33 |
'image' => 'notices/support.png',
|
34 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
35 |
'button_meta' => 'updraftplus',
|
36 |
'dismiss_time' => 'dismiss_notice',
|
37 |
'supported_positions' => $this->dashboard_top_or_report,
|
@@ -42,6 +43,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
42 |
'text' => __('The ultimately secure and convenient place to store your backups.', 'updraftplus'),
|
43 |
'image' => 'notices/updraft_logo.png',
|
44 |
'button_link' => 'https://updraftplus.com/landing/vault',
|
|
|
45 |
'button_meta' => 'updraftplus',
|
46 |
'dismiss_time' => 'dismiss_notice',
|
47 |
'supported_positions' => $this->dashboard_top_or_report,
|
@@ -52,6 +54,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
52 |
'text' => __('Enhanced storage options for Dropbox, Google Drive and S3. Plus many more options.', 'updraftplus'),
|
53 |
'image' => 'addons-images/morestorage.png',
|
54 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
55 |
'button_meta' => 'updraftplus',
|
56 |
'dismiss_time' => 'dismiss_notice',
|
57 |
'supported_positions' => $this->dashboard_top_or_report,
|
@@ -62,6 +65,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
62 |
'text' => __('Secure multisite installation, advanced reporting and much more.', 'updraftplus'),
|
63 |
'image' => 'addons-images/reporting.png',
|
64 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
65 |
'button_meta' => 'updraftplus',
|
66 |
'dismiss_time' => 'dismiss_notice',
|
67 |
'supported_positions' => $this->dashboard_top_or_report,
|
@@ -72,6 +76,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
72 |
'text' => __('Add SFTP to send your data securely, lock settings and encrypt your database backups for extra security.', 'updraftplus'),
|
73 |
'image' => 'addons-images/lockadmin.png',
|
74 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
75 |
'button_meta' => 'updraftplus',
|
76 |
'dismiss_time' => 'dismiss_notice',
|
77 |
'supported_positions' => $this->dashboard_top_or_report,
|
@@ -82,6 +87,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
82 |
'text' => __('Copy your site to another domain directly. Includes find-and-replace tool for database references.', 'updraftplus'),
|
83 |
'image' => 'addons-images/migrator.png',
|
84 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
85 |
'button_meta' => 'updraftplus',
|
86 |
'dismiss_time' => 'dismiss_notice',
|
87 |
'supported_positions' => $this->anywhere,
|
@@ -98,21 +104,21 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
98 |
),
|
99 |
8 => array(
|
100 |
'prefix' => '',
|
101 |
-
'title' => __('
|
102 |
-
'text' => __('
|
103 |
'image' => 'notices/updraft_logo.png',
|
104 |
-
'button_link' => 'https://
|
105 |
-
'button_meta' => '
|
106 |
'dismiss_time' => 'dismiss_notice',
|
107 |
'supported_positions' => $this->anywhere,
|
108 |
),
|
109 |
-
|
110 |
'prefix' => '',
|
111 |
-
'title' => __('
|
112 |
-
'text' => __('
|
113 |
'image' => 'notices/updraft_logo.png',
|
114 |
-
'button_link' => 'https://
|
115 |
-
'button_meta' => '
|
116 |
'dismiss_time' => 'dismiss_notice',
|
117 |
'supported_positions' => $this->anywhere,
|
118 |
),
|
@@ -142,6 +148,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
142 |
'text' => __("Follow this link to sign up for the UpdraftPlus newsletter.", 'updraftplus'),
|
143 |
'image' => 'notices/updraft_logo.png',
|
144 |
'button_link' => 'https://updraftplus.com/newsletter-signup',
|
|
|
145 |
'button_meta' => 'signup',
|
146 |
'supported_positions' => $this->anywhere,
|
147 |
'dismiss_time' => false
|
@@ -213,6 +220,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
213 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
214 |
'image' => 'notices/black_friday.png',
|
215 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
216 |
'button_meta' => 'updraftplus',
|
217 |
'dismiss_time' => 'dismiss_season',
|
218 |
'discount_code' => 'blackfridaysale2018',
|
@@ -226,6 +234,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
226 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
227 |
'image' => 'notices/christmas.png',
|
228 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
229 |
'button_meta' => 'updraftplus',
|
230 |
'dismiss_time' => 'dismiss_season',
|
231 |
'discount_code' => 'christmassale2018',
|
@@ -239,6 +248,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
239 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
240 |
'image' => 'notices/new_year.png',
|
241 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
242 |
'button_meta' => 'updraftplus',
|
243 |
'dismiss_time' => 'dismiss_season',
|
244 |
'discount_code' => 'newyearsale2019',
|
@@ -252,6 +262,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
252 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
253 |
'image' => 'notices/spring.png',
|
254 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
255 |
'button_meta' => 'updraftplus',
|
256 |
'dismiss_time' => 'dismiss_season',
|
257 |
'discount_code' => 'springsale2019',
|
@@ -265,6 +276,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
265 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
266 |
'image' => 'notices/summer.png',
|
267 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
|
|
268 |
'button_meta' => 'updraftplus',
|
269 |
'dismiss_time' => 'dismiss_season',
|
270 |
'discount_code' => 'summersale2019',
|
@@ -292,11 +304,11 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
292 |
wp_enqueue_style('updraftplus-notices-css', UPDRAFTPLUS_URL.'/css/updraftplus-notices'.$min_or_not.'.css', array(), $enqueue_version);
|
293 |
}
|
294 |
|
295 |
-
protected function translation_needed($plugin_base_dir = null, $product_name = null) {
|
296 |
return parent::translation_needed(UPDRAFTPLUS_DIR, 'updraftplus');
|
297 |
}
|
298 |
|
299 |
-
protected function wp_optimize_installed($plugin_base_dir = null, $product_name = null) {
|
300 |
$wp_optimize_file = false;
|
301 |
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
302 |
$plugins = get_plugins();
|
@@ -309,7 +321,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
309 |
return true;
|
310 |
}
|
311 |
|
312 |
-
protected function keyy_installed($plugin_base_dir = null, $product_name = null) {
|
313 |
$wp_optimize_file = false;
|
314 |
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
315 |
$plugins = get_plugins();
|
@@ -322,7 +334,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
322 |
return true;
|
323 |
}
|
324 |
|
325 |
-
protected function metaslider_installed($plugin_base_dir = null, $product_name = null) {
|
326 |
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
327 |
$plugins = get_plugins();
|
328 |
|
@@ -334,7 +346,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
334 |
return true;
|
335 |
}
|
336 |
|
337 |
-
protected function clef_2fa_installed($plugin_base_dir = null, $product_name = null) {
|
338 |
|
339 |
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
340 |
|
@@ -410,6 +422,7 @@ class UpdraftPlus_Notices extends Updraft_Notices {
|
|
410 |
|
411 |
if (!has_filter('updraftplus_com_link') && isset($advert_information['button_link']) && false !== strpos($advert_information['button_link'], '//updraftplus.com')) {
|
412 |
$advert_information['button_link'] = trailingslashit($advert_information['button_link']).'?afref='.$this->self_affiliate_id;
|
|
|
413 |
}
|
414 |
|
415 |
include_once(UPDRAFTPLUS_DIR.'/admin.php');
|
32 |
'text' => __('Enjoy professional, fast, and friendly help whenever you need it with Premium.', 'updraftplus'),
|
33 |
'image' => 'notices/support.png',
|
34 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
35 |
+
'campaign' => 'support',
|
36 |
'button_meta' => 'updraftplus',
|
37 |
'dismiss_time' => 'dismiss_notice',
|
38 |
'supported_positions' => $this->dashboard_top_or_report,
|
43 |
'text' => __('The ultimately secure and convenient place to store your backups.', 'updraftplus'),
|
44 |
'image' => 'notices/updraft_logo.png',
|
45 |
'button_link' => 'https://updraftplus.com/landing/vault',
|
46 |
+
'campaign' => 'vault',
|
47 |
'button_meta' => 'updraftplus',
|
48 |
'dismiss_time' => 'dismiss_notice',
|
49 |
'supported_positions' => $this->dashboard_top_or_report,
|
54 |
'text' => __('Enhanced storage options for Dropbox, Google Drive and S3. Plus many more options.', 'updraftplus'),
|
55 |
'image' => 'addons-images/morestorage.png',
|
56 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
57 |
+
'campaign' => 'morestorage',
|
58 |
'button_meta' => 'updraftplus',
|
59 |
'dismiss_time' => 'dismiss_notice',
|
60 |
'supported_positions' => $this->dashboard_top_or_report,
|
65 |
'text' => __('Secure multisite installation, advanced reporting and much more.', 'updraftplus'),
|
66 |
'image' => 'addons-images/reporting.png',
|
67 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
68 |
+
'campaign' => 'reporting',
|
69 |
'button_meta' => 'updraftplus',
|
70 |
'dismiss_time' => 'dismiss_notice',
|
71 |
'supported_positions' => $this->dashboard_top_or_report,
|
76 |
'text' => __('Add SFTP to send your data securely, lock settings and encrypt your database backups for extra security.', 'updraftplus'),
|
77 |
'image' => 'addons-images/lockadmin.png',
|
78 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
79 |
+
'campaign' => 'lockadmin',
|
80 |
'button_meta' => 'updraftplus',
|
81 |
'dismiss_time' => 'dismiss_notice',
|
82 |
'supported_positions' => $this->dashboard_top_or_report,
|
87 |
'text' => __('Copy your site to another domain directly. Includes find-and-replace tool for database references.', 'updraftplus'),
|
88 |
'image' => 'addons-images/migrator.png',
|
89 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
90 |
+
'campaign' => 'migrator',
|
91 |
'button_meta' => 'updraftplus',
|
92 |
'dismiss_time' => 'dismiss_notice',
|
93 |
'supported_positions' => $this->anywhere,
|
104 |
),
|
105 |
8 => array(
|
106 |
'prefix' => '',
|
107 |
+
'title' => __('Do you use UpdraftPlus on multiple sites?', 'updraftplus'),
|
108 |
+
'text' => __('Control all your WordPress installations from one place using UpdraftCentral remote site management!', 'updraftplus'),
|
109 |
'image' => 'notices/updraft_logo.png',
|
110 |
+
'button_link' => 'https://updraftcentral.com',
|
111 |
+
'button_meta' => 'updraftcentral',
|
112 |
'dismiss_time' => 'dismiss_notice',
|
113 |
'supported_positions' => $this->anywhere,
|
114 |
),
|
115 |
+
'rate' => array(
|
116 |
'prefix' => '',
|
117 |
+
'title' => __('Like UpdraftPlus and can spare one minute?', 'updraftplus'),
|
118 |
+
'text' => __('Please help UpdraftPlus by giving a positive review at wordpress.org.', 'updraftplus'),
|
119 |
'image' => 'notices/updraft_logo.png',
|
120 |
+
'button_link' => 'https://wordpress.org/support/plugin/updraftplus/reviews/?rate=5#new-post',
|
121 |
+
'button_meta' => 'review',
|
122 |
'dismiss_time' => 'dismiss_notice',
|
123 |
'supported_positions' => $this->anywhere,
|
124 |
),
|
148 |
'text' => __("Follow this link to sign up for the UpdraftPlus newsletter.", 'updraftplus'),
|
149 |
'image' => 'notices/updraft_logo.png',
|
150 |
'button_link' => 'https://updraftplus.com/newsletter-signup',
|
151 |
+
'campaign' => 'newsletter',
|
152 |
'button_meta' => 'signup',
|
153 |
'supported_positions' => $this->anywhere,
|
154 |
'dismiss_time' => false
|
220 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
221 |
'image' => 'notices/black_friday.png',
|
222 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
223 |
+
'campaign' => 'blackfriday',
|
224 |
'button_meta' => 'updraftplus',
|
225 |
'dismiss_time' => 'dismiss_season',
|
226 |
'discount_code' => 'blackfridaysale2018',
|
234 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
235 |
'image' => 'notices/christmas.png',
|
236 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
237 |
+
'campaign' => 'christmas',
|
238 |
'button_meta' => 'updraftplus',
|
239 |
'dismiss_time' => 'dismiss_season',
|
240 |
'discount_code' => 'christmassale2018',
|
248 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
249 |
'image' => 'notices/new_year.png',
|
250 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
251 |
+
'campaign' => 'newyear',
|
252 |
'button_meta' => 'updraftplus',
|
253 |
'dismiss_time' => 'dismiss_season',
|
254 |
'discount_code' => 'newyearsale2019',
|
262 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
263 |
'image' => 'notices/spring.png',
|
264 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
265 |
+
'campaign' => 'spring',
|
266 |
'button_meta' => 'updraftplus',
|
267 |
'dismiss_time' => 'dismiss_season',
|
268 |
'discount_code' => 'springsale2019',
|
276 |
'text' => __('To benefit, use this discount code:', 'updraftplus').' ',
|
277 |
'image' => 'notices/summer.png',
|
278 |
'button_link' => 'https://updraftplus.com/landing/updraftplus-premium',
|
279 |
+
'campaign' => 'summer',
|
280 |
'button_meta' => 'updraftplus',
|
281 |
'dismiss_time' => 'dismiss_season',
|
282 |
'discount_code' => 'summersale2019',
|
304 |
wp_enqueue_style('updraftplus-notices-css', UPDRAFTPLUS_URL.'/css/updraftplus-notices'.$min_or_not.'.css', array(), $enqueue_version);
|
305 |
}
|
306 |
|
307 |
+
protected function translation_needed($plugin_base_dir = null, $product_name = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
308 |
return parent::translation_needed(UPDRAFTPLUS_DIR, 'updraftplus');
|
309 |
}
|
310 |
|
311 |
+
protected function wp_optimize_installed($plugin_base_dir = null, $product_name = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
312 |
$wp_optimize_file = false;
|
313 |
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
314 |
$plugins = get_plugins();
|
321 |
return true;
|
322 |
}
|
323 |
|
324 |
+
protected function keyy_installed($plugin_base_dir = null, $product_name = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
325 |
$wp_optimize_file = false;
|
326 |
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
327 |
$plugins = get_plugins();
|
334 |
return true;
|
335 |
}
|
336 |
|
337 |
+
protected function metaslider_installed($plugin_base_dir = null, $product_name = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
338 |
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
339 |
$plugins = get_plugins();
|
340 |
|
346 |
return true;
|
347 |
}
|
348 |
|
349 |
+
protected function clef_2fa_installed($plugin_base_dir = null, $product_name = null) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
350 |
|
351 |
if (!function_exists('get_plugins')) include_once(ABSPATH.'wp-admin/includes/plugin.php');
|
352 |
|
422 |
|
423 |
if (!has_filter('updraftplus_com_link') && isset($advert_information['button_link']) && false !== strpos($advert_information['button_link'], '//updraftplus.com')) {
|
424 |
$advert_information['button_link'] = trailingslashit($advert_information['button_link']).'?afref='.$this->self_affiliate_id;
|
425 |
+
if (isset($advert_information['campaign'])) $advert_information['button_link'] .= '?utm_source=updraftplus&utm_medium=banner&utm_campaign='.$advert_information['campaign'].'&utm_term=New&utm_content='.$advert_information['campaign'];
|
426 |
}
|
427 |
|
428 |
include_once(UPDRAFTPLUS_DIR.'/admin.php');
|
@@ -45,7 +45,7 @@
|
|
45 |
|
46 |
<h4>Are you multi-lingual? Can you translate?</h4>
|
47 |
|
48 |
-
<p>Are you able to translate UpdraftPlus into another language? Are you ready to help speakers of your language? UpdraftPlus itself is ready and waiting - the only work needed is the translating. The translation process is easy, and web-based - go here for instructions: <a href="https://updraftplus.com/translate/" rel="nofollow
|
49 |
|
50 |
<p>Many thanks to the existing translators:</p>
|
51 |
|
45 |
|
46 |
<h4>Are you multi-lingual? Can you translate?</h4>
|
47 |
|
48 |
+
<p>Are you able to translate UpdraftPlus into another language? Are you ready to help speakers of your language? UpdraftPlus itself is ready and waiting - the only work needed is the translating. The translation process is easy, and web-based - go here for instructions: <a href="https://updraftplus.com/translate/" rel="nofollow>https://updraftplus.com/translate/</a>. (Or if you're an expert WordPress translator already, then just pick out the .pot file from the wp-content/plugins/updraftplus/languages/ directory).</p>
|
49 |
|
50 |
<p>Many thanks to the existing translators:</p>
|
51 |
|
Binary file
|
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date:
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -2192,7 +2192,7 @@ msgstr ""
|
|
2192 |
|
2193 |
#: src/central/bootstrap.php:554
|
2194 |
msgid "More information..."
|
2195 |
-
msgstr ""
|
2196 |
|
2197 |
#: src/central/bootstrap.php:553
|
2198 |
msgid "Use the alternative method for making a connection with the dashboard."
|
@@ -2224,7 +2224,7 @@ msgstr ""
|
|
2224 |
|
2225 |
#: src/addons/migrator.php:1764, src/central/bootstrap.php:546
|
2226 |
msgid "recommended"
|
2227 |
-
msgstr ""
|
2228 |
|
2229 |
#: src/addons/migrator.php:1764, src/central/bootstrap.php:546
|
2230 |
msgid "%s bytes"
|
@@ -2266,7 +2266,7 @@ msgstr ""
|
|
2266 |
|
2267 |
#: src/methods/ftp.php:412
|
2268 |
msgid "login"
|
2269 |
-
msgstr ""
|
2270 |
|
2271 |
#: src/addons/reporting.php:527, src/addons/reporting.php:527,
|
2272 |
#: src/addons/reporting.php:529, src/methods/email.php:100
|
@@ -2325,7 +2325,7 @@ msgstr ""
|
|
2325 |
|
2326 |
#: src/central/bootstrap.php:535
|
2327 |
msgid "Description"
|
2328 |
-
msgstr ""
|
2329 |
|
2330 |
#: src/central/bootstrap.php:463
|
2331 |
msgid "Delete..."
|
@@ -2341,7 +2341,7 @@ msgstr ""
|
|
2341 |
|
2342 |
#: src/central/bootstrap.php:477
|
2343 |
msgid "Details"
|
2344 |
-
msgstr ""
|
2345 |
|
2346 |
#: src/central/bootstrap.php:476
|
2347 |
msgid "Key description"
|
@@ -2397,7 +2397,7 @@ msgstr ""
|
|
2397 |
|
2398 |
#: src/admin.php:4929
|
2399 |
msgid "Your settings have been saved."
|
2400 |
-
msgstr ""
|
2401 |
|
2402 |
#: src/admin.php:4009
|
2403 |
msgid "Total backup size:"
|
@@ -2405,7 +2405,7 @@ msgstr ""
|
|
2405 |
|
2406 |
#: src/admin.php:3416
|
2407 |
msgid "stop"
|
2408 |
-
msgstr ""
|
2409 |
|
2410 |
#: src/admin.php:905, src/admin.php:3209
|
2411 |
msgid "The backup has finished running"
|
@@ -2447,7 +2447,7 @@ msgstr ""
|
|
2447 |
|
2448 |
#: src/admin.php:854
|
2449 |
msgid "Saving..."
|
2450 |
-
msgstr ""
|
2451 |
|
2452 |
#: src/admin.php:815
|
2453 |
msgid "Error: the server sent us a response which we did not understand."
|
@@ -2484,7 +2484,7 @@ msgstr ""
|
|
2484 |
#: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16,
|
2485 |
#: src/templates/wp-admin/notices/horizontal-notice.php:18
|
2486 |
msgid "Dismiss"
|
2487 |
-
msgstr ""
|
2488 |
|
2489 |
#: src/admin.php:891
|
2490 |
msgid "Please fill in the required information."
|
@@ -2593,7 +2593,7 @@ msgstr ""
|
|
2593 |
|
2594 |
#: src/admin.php:4801
|
2595 |
msgid "settings"
|
2596 |
-
msgstr ""
|
2597 |
|
2598 |
#: src/admin.php:4801
|
2599 |
msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
|
@@ -2646,7 +2646,7 @@ msgstr ""
|
|
2646 |
|
2647 |
#: src/admin.php:695
|
2648 |
msgid "Extensions"
|
2649 |
-
msgstr ""
|
2650 |
|
2651 |
#: src/admin.php:687, src/admin.php:2801
|
2652 |
msgid "Advanced Tools"
|
@@ -2793,7 +2793,7 @@ msgstr ""
|
|
2793 |
|
2794 |
#: src/templates/wp-admin/advanced/site-info.php:56
|
2795 |
msgid "Not installed"
|
2796 |
-
msgstr ""
|
2797 |
|
2798 |
#: src/addons/googlecloud.php:1042, src/addons/s3-enhanced.php:63
|
2799 |
msgid "Storage class"
|
@@ -3970,18 +3970,18 @@ msgstr ""
|
|
3970 |
#: src/includes/updraftplus-notices.php:133,
|
3971 |
#: src/includes/updraftplus-notices.php:134
|
3972 |
msgid "Google+"
|
3973 |
-
msgstr ""
|
3974 |
|
3975 |
#: src/includes/updraftplus-notices.php:133,
|
3976 |
#: src/includes/updraftplus-notices.php:134
|
3977 |
msgid "Facebook"
|
3978 |
-
msgstr ""
|
3979 |
|
3980 |
#: src/includes/updraftplus-notices.php:133,
|
3981 |
#: src/includes/updraftplus-notices.php:134,
|
3982 |
#: src/templates/wp-admin/settings/header.php:16
|
3983 |
msgid "Twitter"
|
3984 |
-
msgstr ""
|
3985 |
|
3986 |
#: src/includes/updraftplus-notices.php:132
|
3987 |
msgid "UpdraftPlus is on social media - check us out!"
|
@@ -5697,7 +5697,7 @@ msgstr ""
|
|
5697 |
#: src/templates/wp-admin/settings/tab-addons.php:21,
|
5698 |
#: src/templates/wp-admin/settings/tab-addons.php:87
|
5699 |
msgid "Support"
|
5700 |
-
msgstr ""
|
5701 |
|
5702 |
#: src/class-updraftplus.php:4237
|
5703 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
@@ -6109,7 +6109,7 @@ msgstr ""
|
|
6109 |
|
6110 |
#: src/admin.php:2591, src/class-updraftplus.php:4009, src/restorer.php:2647
|
6111 |
msgid "Warning:"
|
6112 |
-
msgstr ""
|
6113 |
|
6114 |
#: src/class-updraftplus.php:3998, src/class-updraftplus.php:4001,
|
6115 |
#: src/restorer.php:530
|
@@ -6434,7 +6434,7 @@ msgstr ""
|
|
6434 |
#: src/admin.php:3500, src/admin.php:3510, src/methods/addon-base-v2.php:313,
|
6435 |
#: src/methods/stream-base.php:356
|
6436 |
msgid "Failed"
|
6437 |
-
msgstr ""
|
6438 |
|
6439 |
#: src/addons/webdav.php:169
|
6440 |
msgid "WebDAV URL"
|
@@ -6987,7 +6987,7 @@ msgstr ""
|
|
6987 |
|
6988 |
#: src/templates/wp-admin/settings/form-contents.php:373
|
6989 |
msgid "Save Changes"
|
6990 |
-
msgstr ""
|
6991 |
|
6992 |
#: src/templates/wp-admin/settings/form-contents.php:345
|
6993 |
msgid "Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect."
|
@@ -7067,7 +7067,7 @@ msgstr ""
|
|
7067 |
|
7068 |
#: src/addons/morefiles.php:311, src/admin.php:843
|
7069 |
msgid "Cancel"
|
7070 |
-
msgstr ""
|
7071 |
|
7072 |
#: src/addons/incremental.php:235, src/addons/reporting.php:245,
|
7073 |
#: src/admin.php:4004
|
@@ -7089,7 +7089,7 @@ msgstr ""
|
|
7089 |
#: src/admin.php:2935, src/templates/wp-admin/settings/form-contents.php:255,
|
7090 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:44
|
7091 |
msgid "Email"
|
7092 |
-
msgstr ""
|
7093 |
|
7094 |
#: src/templates/wp-admin/settings/form-contents.php:147
|
7095 |
msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
|
@@ -7117,7 +7117,7 @@ msgstr ""
|
|
7117 |
|
7118 |
#: src/addons/incremental.php:244, src/admin.php:3724
|
7119 |
msgid "Monthly"
|
7120 |
-
msgstr ""
|
7121 |
|
7122 |
#: src/addons/incremental.php:243, src/admin.php:3723
|
7123 |
msgid "Fortnightly"
|
@@ -7125,11 +7125,11 @@ msgstr ""
|
|
7125 |
|
7126 |
#: src/addons/incremental.php:242, src/admin.php:3722
|
7127 |
msgid "Weekly"
|
7128 |
-
msgstr ""
|
7129 |
|
7130 |
#: src/addons/incremental.php:241, src/admin.php:3721
|
7131 |
msgid "Daily"
|
7132 |
-
msgstr ""
|
7133 |
|
7134 |
#: src/admin.php:851, src/admin.php:3699
|
7135 |
msgid "Download log file"
|
@@ -7190,7 +7190,7 @@ msgstr ""
|
|
7190 |
#: src/templates/wp-admin/settings/tab-addons.php:235,
|
7191 |
#: src/templates/wp-admin/settings/tab-addons.php:252
|
7192 |
msgid "No"
|
7193 |
-
msgstr ""
|
7194 |
|
7195 |
#: src/templates/wp-admin/advanced/site-info.php:63,
|
7196 |
#: src/templates/wp-admin/advanced/site-info.php:66,
|
@@ -7213,7 +7213,7 @@ msgstr ""
|
|
7213 |
#: src/templates/wp-admin/settings/tab-addons.php:255,
|
7214 |
#: src/templates/wp-admin/settings/tab-addons.php:261
|
7215 |
msgid "Yes"
|
7216 |
-
msgstr ""
|
7217 |
|
7218 |
#: src/admin.php:5366, src/admin.php:5370,
|
7219 |
#: src/templates/wp-admin/advanced/site-info.php:45,
|
@@ -7448,7 +7448,7 @@ msgstr ""
|
|
7448 |
|
7449 |
#: src/templates/wp-admin/settings/header.php:26
|
7450 |
msgid "Version"
|
7451 |
-
msgstr ""
|
7452 |
|
7453 |
#: src/templates/wp-admin/settings/header.php:25
|
7454 |
msgid "Lead developer's homepage"
|
@@ -7603,7 +7603,7 @@ msgstr ""
|
|
7603 |
#: src/addons/azure.php:268, src/class-updraftplus.php:3636,
|
7604 |
#: src/methods/googledrive.php:1120, src/methods/s3.php:341
|
7605 |
msgid "File not found"
|
7606 |
-
msgstr ""
|
7607 |
|
7608 |
#: src/includes/class-updraftplus-encryption.php:354
|
7609 |
msgid "The decryption key used:"
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2019-01-04 23:18:07+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
2192 |
|
2193 |
#: src/central/bootstrap.php:554
|
2194 |
msgid "More information..."
|
2195 |
+
msgstr "Повече информация..."
|
2196 |
|
2197 |
#: src/central/bootstrap.php:553
|
2198 |
msgid "Use the alternative method for making a connection with the dashboard."
|
2224 |
|
2225 |
#: src/addons/migrator.php:1764, src/central/bootstrap.php:546
|
2226 |
msgid "recommended"
|
2227 |
+
msgstr "препоръчва"
|
2228 |
|
2229 |
#: src/addons/migrator.php:1764, src/central/bootstrap.php:546
|
2230 |
msgid "%s bytes"
|
2266 |
|
2267 |
#: src/methods/ftp.php:412
|
2268 |
msgid "login"
|
2269 |
+
msgstr "Вход"
|
2270 |
|
2271 |
#: src/addons/reporting.php:527, src/addons/reporting.php:527,
|
2272 |
#: src/addons/reporting.php:529, src/methods/email.php:100
|
2325 |
|
2326 |
#: src/central/bootstrap.php:535
|
2327 |
msgid "Description"
|
2328 |
+
msgstr "описание на"
|
2329 |
|
2330 |
#: src/central/bootstrap.php:463
|
2331 |
msgid "Delete..."
|
2341 |
|
2342 |
#: src/central/bootstrap.php:477
|
2343 |
msgid "Details"
|
2344 |
+
msgstr "Детайли"
|
2345 |
|
2346 |
#: src/central/bootstrap.php:476
|
2347 |
msgid "Key description"
|
2397 |
|
2398 |
#: src/admin.php:4929
|
2399 |
msgid "Your settings have been saved."
|
2400 |
+
msgstr "Настройките ви са записани."
|
2401 |
|
2402 |
#: src/admin.php:4009
|
2403 |
msgid "Total backup size:"
|
2405 |
|
2406 |
#: src/admin.php:3416
|
2407 |
msgid "stop"
|
2408 |
+
msgstr "спиране"
|
2409 |
|
2410 |
#: src/admin.php:905, src/admin.php:3209
|
2411 |
msgid "The backup has finished running"
|
2447 |
|
2448 |
#: src/admin.php:854
|
2449 |
msgid "Saving..."
|
2450 |
+
msgstr "Запазване..."
|
2451 |
|
2452 |
#: src/admin.php:815
|
2453 |
msgid "Error: the server sent us a response which we did not understand."
|
2484 |
#: src/admin.php:2842, src/templates/wp-admin/notices/horizontal-notice.php:16,
|
2485 |
#: src/templates/wp-admin/notices/horizontal-notice.php:18
|
2486 |
msgid "Dismiss"
|
2487 |
+
msgstr "Отхвърли"
|
2488 |
|
2489 |
#: src/admin.php:891
|
2490 |
msgid "Please fill in the required information."
|
2593 |
|
2594 |
#: src/admin.php:4801
|
2595 |
msgid "settings"
|
2596 |
+
msgstr "настройки"
|
2597 |
|
2598 |
#: src/admin.php:4801
|
2599 |
msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
|
2646 |
|
2647 |
#: src/admin.php:695
|
2648 |
msgid "Extensions"
|
2649 |
+
msgstr "Добавки"
|
2650 |
|
2651 |
#: src/admin.php:687, src/admin.php:2801
|
2652 |
msgid "Advanced Tools"
|
2793 |
|
2794 |
#: src/templates/wp-admin/advanced/site-info.php:56
|
2795 |
msgid "Not installed"
|
2796 |
+
msgstr "Не е инсталиран"
|
2797 |
|
2798 |
#: src/addons/googlecloud.php:1042, src/addons/s3-enhanced.php:63
|
2799 |
msgid "Storage class"
|
3970 |
#: src/includes/updraftplus-notices.php:133,
|
3971 |
#: src/includes/updraftplus-notices.php:134
|
3972 |
msgid "Google+"
|
3973 |
+
msgstr "Google+"
|
3974 |
|
3975 |
#: src/includes/updraftplus-notices.php:133,
|
3976 |
#: src/includes/updraftplus-notices.php:134
|
3977 |
msgid "Facebook"
|
3978 |
+
msgstr "Facebook"
|
3979 |
|
3980 |
#: src/includes/updraftplus-notices.php:133,
|
3981 |
#: src/includes/updraftplus-notices.php:134,
|
3982 |
#: src/templates/wp-admin/settings/header.php:16
|
3983 |
msgid "Twitter"
|
3984 |
+
msgstr "Twitter"
|
3985 |
|
3986 |
#: src/includes/updraftplus-notices.php:132
|
3987 |
msgid "UpdraftPlus is on social media - check us out!"
|
5697 |
#: src/templates/wp-admin/settings/tab-addons.php:21,
|
5698 |
#: src/templates/wp-admin/settings/tab-addons.php:87
|
5699 |
msgid "Support"
|
5700 |
+
msgstr "Поддръжка"
|
5701 |
|
5702 |
#: src/class-updraftplus.php:4237
|
5703 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
6109 |
|
6110 |
#: src/admin.php:2591, src/class-updraftplus.php:4009, src/restorer.php:2647
|
6111 |
msgid "Warning:"
|
6112 |
+
msgstr "Внимание:"
|
6113 |
|
6114 |
#: src/class-updraftplus.php:3998, src/class-updraftplus.php:4001,
|
6115 |
#: src/restorer.php:530
|
6434 |
#: src/admin.php:3500, src/admin.php:3510, src/methods/addon-base-v2.php:313,
|
6435 |
#: src/methods/stream-base.php:356
|
6436 |
msgid "Failed"
|
6437 |
+
msgstr "Неуспешно"
|
6438 |
|
6439 |
#: src/addons/webdav.php:169
|
6440 |
msgid "WebDAV URL"
|
6987 |
|
6988 |
#: src/templates/wp-admin/settings/form-contents.php:373
|
6989 |
msgid "Save Changes"
|
6990 |
+
msgstr "Запис на промените"
|
6991 |
|
6992 |
#: src/templates/wp-admin/settings/form-contents.php:345
|
6993 |
msgid "Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect."
|
7067 |
|
7068 |
#: src/addons/morefiles.php:311, src/admin.php:843
|
7069 |
msgid "Cancel"
|
7070 |
+
msgstr "Отмяна"
|
7071 |
|
7072 |
#: src/addons/incremental.php:235, src/addons/reporting.php:245,
|
7073 |
#: src/admin.php:4004
|
7089 |
#: src/admin.php:2935, src/templates/wp-admin/settings/form-contents.php:255,
|
7090 |
#: src/templates/wp-admin/settings/updraftcentral-connect.php:44
|
7091 |
msgid "Email"
|
7092 |
+
msgstr "Електронна поща"
|
7093 |
|
7094 |
#: src/templates/wp-admin/settings/form-contents.php:147
|
7095 |
msgid "The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org."
|
7117 |
|
7118 |
#: src/addons/incremental.php:244, src/admin.php:3724
|
7119 |
msgid "Monthly"
|
7120 |
+
msgstr "Месечен"
|
7121 |
|
7122 |
#: src/addons/incremental.php:243, src/admin.php:3723
|
7123 |
msgid "Fortnightly"
|
7125 |
|
7126 |
#: src/addons/incremental.php:242, src/admin.php:3722
|
7127 |
msgid "Weekly"
|
7128 |
+
msgstr "Ежеседмично"
|
7129 |
|
7130 |
#: src/addons/incremental.php:241, src/admin.php:3721
|
7131 |
msgid "Daily"
|
7132 |
+
msgstr "Ежедневно"
|
7133 |
|
7134 |
#: src/admin.php:851, src/admin.php:3699
|
7135 |
msgid "Download log file"
|
7190 |
#: src/templates/wp-admin/settings/tab-addons.php:235,
|
7191 |
#: src/templates/wp-admin/settings/tab-addons.php:252
|
7192 |
msgid "No"
|
7193 |
+
msgstr "Не"
|
7194 |
|
7195 |
#: src/templates/wp-admin/advanced/site-info.php:63,
|
7196 |
#: src/templates/wp-admin/advanced/site-info.php:66,
|
7213 |
#: src/templates/wp-admin/settings/tab-addons.php:255,
|
7214 |
#: src/templates/wp-admin/settings/tab-addons.php:261
|
7215 |
msgid "Yes"
|
7216 |
+
msgstr "Да"
|
7217 |
|
7218 |
#: src/admin.php:5366, src/admin.php:5370,
|
7219 |
#: src/templates/wp-admin/advanced/site-info.php:45,
|
7448 |
|
7449 |
#: src/templates/wp-admin/settings/header.php:26
|
7450 |
msgid "Version"
|
7451 |
+
msgstr "Версия"
|
7452 |
|
7453 |
#: src/templates/wp-admin/settings/header.php:25
|
7454 |
msgid "Lead developer's homepage"
|
7603 |
#: src/addons/azure.php:268, src/class-updraftplus.php:3636,
|
7604 |
#: src/methods/googledrive.php:1120, src/methods/s3.php:341
|
7605 |
msgid "File not found"
|
7606 |
+
msgstr "Файлът не беше намерен"
|
7607 |
|
7608 |
#: src/includes/class-updraftplus-encryption.php:354
|
7609 |
msgid "The decryption key used:"
|
Binary file
|
@@ -2,7 +2,7 @@
|
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
-
"PO-Revision-Date:
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
@@ -13,37 +13,37 @@ msgstr ""
|
|
13 |
|
14 |
#: src/admin.php:5374
|
15 |
msgid "Clone region:"
|
16 |
-
msgstr ""
|
17 |
|
18 |
#: src/udaddons/updraftplus-addons.php:268,
|
19 |
#: src/udaddons/updraftplus-addons.php:280
|
20 |
msgid "go here"
|
21 |
-
msgstr ""
|
22 |
|
23 |
#: src/udaddons/updraftplus-addons.php:268,
|
24 |
#: src/udaddons/updraftplus-addons.php:280
|
25 |
msgid "If you have already renewed, then you need to allocate a licence to this site - %s"
|
26 |
-
msgstr ""
|
27 |
|
28 |
#: src/addons/onedrive.php:864
|
29 |
msgid "Authentication"
|
30 |
-
msgstr ""
|
31 |
|
32 |
#: src/admin.php:926
|
33 |
msgid "You must select at least one remote storage destination to upload this backup set to."
|
34 |
-
msgstr ""
|
35 |
|
36 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
37 |
msgid "Read more about Easy Updates Manager"
|
38 |
-
msgstr ""
|
39 |
|
40 |
#: src/templates/wp-admin/settings/temporary-clone.php:68
|
41 |
msgid "You can find out more about clone keys here."
|
42 |
-
msgstr ""
|
43 |
|
44 |
#: src/templates/wp-admin/settings/temporary-clone.php:57
|
45 |
msgid "Or, use an UpdraftClone key"
|
46 |
-
msgstr ""
|
47 |
|
48 |
#: src/restorer.php:2493
|
49 |
msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
|
2 |
# This file is distributed under the same license as the UpdraftPlus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
5 |
+
"PO-Revision-Date: 2019-01-15 15:25:22+0000\n"
|
6 |
"MIME-Version: 1.0\n"
|
7 |
"Content-Type: text/plain; charset=UTF-8\n"
|
8 |
"Content-Transfer-Encoding: 8bit\n"
|
13 |
|
14 |
#: src/admin.php:5374
|
15 |
msgid "Clone region:"
|
16 |
+
msgstr "Klon-erregioa:"
|
17 |
|
18 |
#: src/udaddons/updraftplus-addons.php:268,
|
19 |
#: src/udaddons/updraftplus-addons.php:280
|
20 |
msgid "go here"
|
21 |
+
msgstr "joan hara"
|
22 |
|
23 |
#: src/udaddons/updraftplus-addons.php:268,
|
24 |
#: src/udaddons/updraftplus-addons.php:280
|
25 |
msgid "If you have already renewed, then you need to allocate a licence to this site - %s"
|
26 |
+
msgstr "Jadanik berritu baduzu, lizentzia bat esleitu beharko diozu gune honi: %s."
|
27 |
|
28 |
#: src/addons/onedrive.php:864
|
29 |
msgid "Authentication"
|
30 |
+
msgstr "Autentikazioa"
|
31 |
|
32 |
#: src/admin.php:926
|
33 |
msgid "You must select at least one remote storage destination to upload this backup set to."
|
34 |
+
msgstr "Gutxienez urruneko biltegiratze-helburu bat hautatu behar duzu babeskopia sorta hau bertan kargatzeko."
|
35 |
|
36 |
#: src/templates/wp-admin/settings/form-contents.php:350
|
37 |
msgid "Read more about Easy Updates Manager"
|
38 |
+
msgstr "Irakurri gehiago Eguneraketa Errazen Kudeatzaileari buruz"
|
39 |
|
40 |
#: src/templates/wp-admin/settings/temporary-clone.php:68
|
41 |
msgid "You can find out more about clone keys here."
|
42 |
+
msgstr "Klon-giltzei buruzko informazio gehiago aurki dezakezu hemen."
|
43 |
|
44 |
#: src/templates/wp-admin/settings/temporary-clone.php:57
|
45 |
msgid "Or, use an UpdraftClone key"
|
46 |
+
msgstr "Edo erabili UpdraftClone giltza bat"
|
47 |
|
48 |
#: src/restorer.php:2493
|
49 |
msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
|
@@ -1,4 +1,4 @@
|
|
1 |
-
# Copyright (C)
|
2 |
# This file is distributed under the same license as the updraftplus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
@@ -7,7 +7,7 @@ msgstr ""
|
|
7 |
"MIME-Version: 1.0\n"
|
8 |
"Content-Type: text/plain; charset=UTF-8\n"
|
9 |
"Content-Transfer-Encoding: 8bit\n"
|
10 |
-
"PO-Revision-Date:
|
11 |
"Last-Translator: Team Updraft <mail@example.com>\n"
|
12 |
"Language-Team: Team Updraft <mail@example.com>\n"
|
13 |
"X-Poedit-Basepath: ..\n"
|
@@ -49,7 +49,7 @@ msgstr ""
|
|
49 |
msgid "(logs can be found in the UpdraftPlus settings page as normal)..."
|
50 |
msgstr ""
|
51 |
|
52 |
-
#: src/addons/autobackup.php:344, src/addons/autobackup.php:439, src/admin.php:
|
53 |
msgid "Last log message"
|
54 |
msgstr ""
|
55 |
|
@@ -97,7 +97,7 @@ msgstr ""
|
|
97 |
msgid "now proceeding with the updates..."
|
98 |
msgstr ""
|
99 |
|
100 |
-
#: src/addons/autobackup.php:1072, src/admin.php:978, src/includes/updraftplus-notices.php:
|
101 |
msgid "Be safe with an automatic backup"
|
102 |
msgstr ""
|
103 |
|
@@ -117,7 +117,7 @@ msgstr ""
|
|
117 |
msgid "%s Error"
|
118 |
msgstr ""
|
119 |
|
120 |
-
#: src/addons/azure.php:268, src/class-updraftplus.php:3662, src/methods/googledrive.php:1120, src/methods/s3.php:
|
121 |
msgid "File not found"
|
122 |
msgstr ""
|
123 |
|
@@ -129,7 +129,7 @@ msgstr ""
|
|
129 |
msgid "Upload failed"
|
130 |
msgstr ""
|
131 |
|
132 |
-
#: src/addons/azure.php:443, src/addons/backblaze.php:528, src/addons/googlecloud.php:843, src/methods/s3.php:
|
133 |
msgid "Delete failed:"
|
134 |
msgstr ""
|
135 |
|
@@ -145,11 +145,11 @@ msgstr ""
|
|
145 |
msgid "You must add the following as the authorised redirect URI in your Azure console (under \"API Settings\") when asked"
|
146 |
msgstr ""
|
147 |
|
148 |
-
#: src/addons/azure.php:601, src/addons/migrator.php:948, src/admin.php:
|
149 |
msgid "Warning"
|
150 |
msgstr ""
|
151 |
|
152 |
-
#: src/addons/azure.php:601, src/admin.php:
|
153 |
msgid "Your web server's PHP installation does not included a <strong>required</strong> (for %s) module (%s). Please contact your web hosting provider's support and ask for them to enable it."
|
154 |
msgstr ""
|
155 |
|
@@ -157,7 +157,7 @@ msgstr ""
|
|
157 |
msgid "Create Azure credentials in your Azure developer console."
|
158 |
msgstr ""
|
159 |
|
160 |
-
#: src/addons/azure.php:605, src/addons/onedrive.php:
|
161 |
msgid "For longer help, including screenshots, follow this link."
|
162 |
msgstr ""
|
163 |
|
@@ -201,7 +201,7 @@ msgstr ""
|
|
201 |
msgid "You can enter the path of any %s virtual folder you wish to use here."
|
202 |
msgstr ""
|
203 |
|
204 |
-
#: src/addons/azure.php:638, src/addons/google-enhanced.php:76, src/addons/onedrive.php:
|
205 |
msgid "If you leave it blank, then the backup will be placed in the root of your %s"
|
206 |
msgstr ""
|
207 |
|
@@ -225,11 +225,15 @@ msgstr ""
|
|
225 |
msgid "Azure Government"
|
226 |
msgstr ""
|
227 |
|
228 |
-
#: src/addons/
|
|
|
|
|
|
|
|
|
229 |
msgid "Error: unexpected file read fail"
|
230 |
msgstr ""
|
231 |
|
232 |
-
#: src/addons/backblaze.php:225, src/addons/cloudfiles-enhanced.php:117, src/addons/migrator.php:893, src/addons/migrator.php:1190, src/addons/migrator.php:1271, src/addons/migrator.php:1320, src/addons/migrator.php:1558, src/addons/s3-enhanced.php:164, src/addons/s3-enhanced.php:169, src/addons/s3-enhanced.php:171, src/addons/sftp.php:911, src/addons/webdav.php:203, src/admin.php:91, src/admin.php:817, src/includes/class-remote-send.php:266, src/includes/class-remote-send.php:293, src/includes/class-remote-send.php:299, src/includes/class-remote-send.php:362, src/includes/class-remote-send.php:421, src/includes/class-remote-send.php:
|
233 |
msgid "Error:"
|
234 |
msgstr ""
|
235 |
|
@@ -245,7 +249,7 @@ msgstr ""
|
|
245 |
msgid "Invalid bucket name"
|
246 |
msgstr ""
|
247 |
|
248 |
-
#: src/addons/backblaze.php:497, src/methods/s3.php:
|
249 |
msgid "Failure: We could not successfully access or create such a bucket. Please check your access credentials, and if those are correct then try another bucket name (as another %s user may already have taken your name)."
|
250 |
msgstr ""
|
251 |
|
@@ -445,11 +449,11 @@ msgstr ""
|
|
445 |
msgid "Folder"
|
446 |
msgstr ""
|
447 |
|
448 |
-
#: src/addons/google-enhanced.php:76, src/addons/onedrive.php:
|
449 |
msgid "Enter the path of the %s folder you wish to use here."
|
450 |
msgstr ""
|
451 |
|
452 |
-
#: src/addons/google-enhanced.php:76, src/addons/googlecloud.php:1039, src/addons/onedrive.php:
|
453 |
msgid "e.g. %s"
|
454 |
msgstr ""
|
455 |
|
@@ -561,7 +565,7 @@ msgstr ""
|
|
561 |
msgid "Frankfurt"
|
562 |
msgstr ""
|
563 |
|
564 |
-
#: src/addons/googlecloud.php:118, src/addons/googlecloud.php:793, src/methods/s3.php:
|
565 |
msgid "Failure: No bucket details were given."
|
566 |
msgstr ""
|
567 |
|
@@ -597,7 +601,7 @@ msgstr ""
|
|
597 |
msgid "No refresh token was received from Google. This often means that you entered your client secret wrongly, or that you have not yet re-authenticated (below) since correcting it. Re-check it, then follow the link to authenticate again. Finally, if that does not work, then use expert mode to wipe all your settings, create a new Google client ID/secret, and start again."
|
598 |
msgstr ""
|
599 |
|
600 |
-
#: src/addons/googlecloud.php:438, src/addons/migrator.php:590, src/admin.php:
|
601 |
msgid "Error: %s"
|
602 |
msgstr ""
|
603 |
|
@@ -621,15 +625,15 @@ msgstr ""
|
|
621 |
msgid "But no %s settings were found. Please complete all fields in %s settings and save the settings."
|
622 |
msgstr ""
|
623 |
|
624 |
-
#: src/addons/googlecloud.php:698, src/addons/onedrive.php:
|
625 |
msgid "However, subsequent access attempts failed:"
|
626 |
msgstr ""
|
627 |
|
628 |
-
#: src/addons/googlecloud.php:718, src/addons/googlecloud.php:839, src/addons/onedrive.php:
|
629 |
msgid "Success"
|
630 |
msgstr ""
|
631 |
|
632 |
-
#: src/addons/googlecloud.php:718, src/addons/onedrive.php:
|
633 |
msgid "you have authenticated your %s account."
|
634 |
msgstr ""
|
635 |
|
@@ -641,19 +645,19 @@ msgstr ""
|
|
641 |
msgid "You must save and authenticate before you can test your settings."
|
642 |
msgstr ""
|
643 |
|
644 |
-
#: src/addons/googlecloud.php:776, src/addons/googlecloud.php:810, src/addons/googlecloud.php:816, src/addons/sftp.php:553, src/admin.php:
|
645 |
msgid "Failed"
|
646 |
msgstr ""
|
647 |
|
648 |
-
#: src/addons/googlecloud.php:833, src/addons/googlecloud.php:847, src/methods/s3.php:
|
649 |
msgid "Failure"
|
650 |
msgstr ""
|
651 |
|
652 |
-
#: src/addons/googlecloud.php:833, src/addons/googlecloud.php:847, src/methods/s3.php:
|
653 |
msgid "We successfully accessed the bucket, but the attempt to create a file in it failed."
|
654 |
msgstr ""
|
655 |
|
656 |
-
#: src/addons/googlecloud.php:839, src/methods/s3.php:
|
657 |
msgid "We accessed the bucket, and were able to create files within it."
|
658 |
msgstr ""
|
659 |
|
@@ -689,7 +693,7 @@ msgstr ""
|
|
689 |
msgid "You must add the following as the authorized redirect URI (under \"More Options\") when asked"
|
690 |
msgstr ""
|
691 |
|
692 |
-
#: src/addons/googlecloud.php:1019, src/addons/onedrive.php:
|
693 |
msgid "Client ID"
|
694 |
msgstr ""
|
695 |
|
@@ -697,7 +701,7 @@ msgstr ""
|
|
697 |
msgid "If Google later shows you the message \"invalid_client\", then you did not enter a valid client ID here."
|
698 |
msgstr ""
|
699 |
|
700 |
-
#: src/addons/googlecloud.php:1027, src/addons/onedrive.php:
|
701 |
msgid "Client Secret"
|
702 |
msgstr ""
|
703 |
|
@@ -717,7 +721,7 @@ msgstr ""
|
|
717 |
msgid "Otherwise, you can leave it blank."
|
718 |
msgstr ""
|
719 |
|
720 |
-
#: src/addons/googlecloud.php:1034, src/addons/migrator.php:493, src/addons/migrator.php:496, src/addons/migrator.php:499, src/admin.php:
|
721 |
msgid "Go here for more information."
|
722 |
msgstr ""
|
723 |
|
@@ -761,7 +765,7 @@ msgstr ""
|
|
761 |
msgid "<strong>(You appear to be already authenticated,</strong> though you can authenticate again to refresh your access if you've had a problem)."
|
762 |
msgstr ""
|
763 |
|
764 |
-
#: src/addons/googlecloud.php:1108, src/addons/onedrive.php:
|
765 |
msgid "Account holder's name: %s."
|
766 |
msgstr ""
|
767 |
|
@@ -773,7 +777,7 @@ msgstr ""
|
|
773 |
msgid "Supported backup plugins: %s"
|
774 |
msgstr ""
|
775 |
|
776 |
-
#: src/addons/importer.php:276, src/admin.php:
|
777 |
msgid "Backup created by: %s."
|
778 |
msgstr ""
|
779 |
|
@@ -785,51 +789,51 @@ msgstr ""
|
|
785 |
msgid "Increments exist at: %s"
|
786 |
msgstr ""
|
787 |
|
788 |
-
#: src/addons/incremental.php:
|
789 |
msgid "Files changed since the last backup will be added as a new increment in that backup set."
|
790 |
msgstr ""
|
791 |
|
792 |
-
#: src/addons/incremental.php:
|
793 |
msgid "N.B. No backup of your database will be taken in an incremental backup; if you want a database backup as well, then take that separately."
|
794 |
msgstr ""
|
795 |
|
796 |
-
#: src/addons/incremental.php:
|
797 |
msgid "No incremental backup of your files is possible, as no suitable existing backup was found to add increments to."
|
798 |
msgstr ""
|
799 |
|
800 |
-
#: src/addons/incremental.php:
|
801 |
msgid "None"
|
802 |
msgstr ""
|
803 |
|
804 |
-
#: src/addons/incremental.php:
|
805 |
msgid "Every hour"
|
806 |
msgstr ""
|
807 |
|
808 |
-
#: src/addons/incremental.php:
|
809 |
msgid "Every %s hours"
|
810 |
msgstr ""
|
811 |
|
812 |
-
#: src/addons/incremental.php:
|
813 |
msgid "Daily"
|
814 |
msgstr ""
|
815 |
|
816 |
-
#: src/addons/incremental.php:
|
817 |
msgid "Weekly"
|
818 |
msgstr ""
|
819 |
|
820 |
-
#: src/addons/incremental.php:
|
821 |
msgid "Fortnightly"
|
822 |
msgstr ""
|
823 |
|
824 |
-
#: src/addons/incremental.php:
|
825 |
msgid "Monthly"
|
826 |
msgstr ""
|
827 |
|
828 |
-
#: src/addons/incremental.php:
|
829 |
msgid "And then add an incremental backup"
|
830 |
msgstr ""
|
831 |
|
832 |
-
#: src/addons/incremental.php:
|
833 |
msgid "Tell me more"
|
834 |
msgstr ""
|
835 |
|
@@ -853,7 +857,7 @@ msgstr ""
|
|
853 |
msgid "Please make sure that you have made a note of the password!"
|
854 |
msgstr ""
|
855 |
|
856 |
-
#: src/addons/lockadmin.php:171, src/addons/moredatabase.php:241, src/addons/sftp.php:459, src/addons/webdav.php:193, src/admin.php:
|
857 |
msgid "Password"
|
858 |
msgstr ""
|
859 |
|
@@ -945,7 +949,7 @@ msgstr ""
|
|
945 |
msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
|
946 |
msgstr ""
|
947 |
|
948 |
-
#: src/addons/migrator.php:274, src/admin.php:663, src/admin.php:850, src/admin.php:
|
949 |
msgid "Restore"
|
950 |
msgstr ""
|
951 |
|
@@ -969,7 +973,7 @@ msgstr ""
|
|
969 |
msgid "Replace with"
|
970 |
msgstr ""
|
971 |
|
972 |
-
#: src/addons/migrator.php:340, src/addons/moredatabase.php:89, src/addons/moredatabase.php:91, src/addons/moredatabase.php:93, src/addons/sftp.php:522, src/addons/sftp.php:526, src/addons/sftp.php:530, src/addons/webdav.php:253, src/admin.php:869, src/includes/class-remote-send.php:
|
973 |
msgid "Failure: No %s was given."
|
974 |
msgstr ""
|
975 |
|
@@ -977,7 +981,7 @@ msgstr ""
|
|
977 |
msgid "search term"
|
978 |
msgstr ""
|
979 |
|
980 |
-
#: src/addons/migrator.php:343, src/addons/migrator.php:358, src/admin.php:
|
981 |
msgid "Return to UpdraftPlus Configuration"
|
982 |
msgstr ""
|
983 |
|
@@ -1179,7 +1183,7 @@ msgstr ""
|
|
1179 |
msgid "Time taken (seconds):"
|
1180 |
msgstr ""
|
1181 |
|
1182 |
-
#: src/addons/migrator.php:1320, src/restorer.php:
|
1183 |
msgid "the database query being run was:"
|
1184 |
msgstr ""
|
1185 |
|
@@ -1243,7 +1247,7 @@ msgstr ""
|
|
1243 |
msgid "Enter your chosen name"
|
1244 |
msgstr ""
|
1245 |
|
1246 |
-
#: src/addons/migrator.php:1761, src/addons/sftp.php:467, src/admin.php:868, src/admin.php:
|
1247 |
msgid "Key"
|
1248 |
msgstr ""
|
1249 |
|
@@ -1303,7 +1307,7 @@ msgstr ""
|
|
1303 |
msgid "database connection attempt failed"
|
1304 |
msgstr ""
|
1305 |
|
1306 |
-
#: src/addons/moredatabase.php:112, src/backup.php:
|
1307 |
msgid "Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled."
|
1308 |
msgstr ""
|
1309 |
|
@@ -1315,7 +1319,7 @@ msgstr ""
|
|
1315 |
msgid "%s total table(s) found; %s with the indicated prefix."
|
1316 |
msgstr ""
|
1317 |
|
1318 |
-
#: src/addons/moredatabase.php:144, src/admin.php:
|
1319 |
msgid "Messages:"
|
1320 |
msgstr ""
|
1321 |
|
@@ -1359,7 +1363,7 @@ msgstr ""
|
|
1359 |
msgid "Username"
|
1360 |
msgstr ""
|
1361 |
|
1362 |
-
#: src/addons/moredatabase.php:242, src/addons/reporting.php:
|
1363 |
msgid "Database"
|
1364 |
msgstr ""
|
1365 |
|
@@ -1416,7 +1420,7 @@ msgctxt "(verb)"
|
|
1416 |
msgid "Download"
|
1417 |
msgstr ""
|
1418 |
|
1419 |
-
#: src/addons/morefiles.php:129, src/addons/morefiles.php:130, src/addons/reporting.php:
|
1420 |
msgid "Contains:"
|
1421 |
msgstr ""
|
1422 |
|
@@ -1512,7 +1516,7 @@ msgstr ""
|
|
1512 |
msgid "Exclude these:"
|
1513 |
msgstr ""
|
1514 |
|
1515 |
-
#: src/addons/morefiles.php:476, src/admin.php:
|
1516 |
msgid "If entering multiple files/directories, then separate them with commas. For entities at the top level, you can use a * at the start or end of the entry as a wildcard."
|
1517 |
msgstr ""
|
1518 |
|
@@ -1596,7 +1600,7 @@ msgstr ""
|
|
1596 |
msgid "An error response was received; HTTP code:"
|
1597 |
msgstr ""
|
1598 |
|
1599 |
-
#: src/addons/onedrive.php:693, src/addons/onedrive.php:717, src/includes/updraftplus-login.php:56, src/methods/updraftvault.php:
|
1600 |
msgid "This most likely means that you share a webserver with a hacked website that has been used in previous attacks."
|
1601 |
msgstr ""
|
1602 |
|
@@ -1608,15 +1612,15 @@ msgstr ""
|
|
1608 |
msgid "Your IP address:"
|
1609 |
msgstr ""
|
1610 |
|
1611 |
-
#: src/addons/onedrive.php:717, src/includes/updraftplus-login.php:56, src/methods/updraftvault.php:
|
1612 |
msgid "UpdraftPlus.com has responded with 'Access Denied'."
|
1613 |
msgstr ""
|
1614 |
|
1615 |
-
#: src/addons/onedrive.php:717, src/includes/updraftplus-login.php:56, src/methods/updraftvault.php:
|
1616 |
msgid "It appears that your web server's IP Address (%s) is blocked."
|
1617 |
msgstr ""
|
1618 |
|
1619 |
-
#: src/addons/onedrive.php:717, src/includes/updraftplus-login.php:56, src/methods/updraftvault.php:
|
1620 |
msgid "To remove the block, please go here."
|
1621 |
msgstr ""
|
1622 |
|
@@ -1628,83 +1632,83 @@ msgstr ""
|
|
1628 |
msgid "Account is not authorized (%s)."
|
1629 |
msgstr ""
|
1630 |
|
1631 |
-
#: src/addons/onedrive.php:
|
1632 |
msgid "%s error: %s"
|
1633 |
msgstr ""
|
1634 |
|
1635 |
-
#: src/addons/onedrive.php:
|
1636 |
msgid "Authentication"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
-
#: src/addons/onedrive.php:
|
1640 |
msgid "Your %s quota usage: %s %% used, %s available"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
-
#: src/addons/onedrive.php:
|
1644 |
msgid "Your %s account name: %s"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
-
#: src/addons/onedrive.php:
|
1648 |
msgid "OneDrive"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
-
#: src/addons/onedrive.php:
|
1652 |
msgid "The %s authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help)."
|
1653 |
msgstr ""
|
1654 |
|
1655 |
-
#: src/addons/onedrive.php:
|
1656 |
msgid "authorization failed:"
|
1657 |
msgstr ""
|
1658 |
|
1659 |
-
#: src/addons/onedrive.php:
|
1660 |
msgid "This site uses a URL which is either non-HTTPS, or is localhost or 127.0.0.1 URL. As such, you must use the main %s %s App to authenticate with your account."
|
1661 |
msgstr ""
|
1662 |
|
1663 |
-
#: src/addons/onedrive.php:
|
1664 |
msgid "You must add the following as the authorized redirect URI in your OneDrive console (under \"API Settings\") when asked"
|
1665 |
msgstr ""
|
1666 |
|
1667 |
-
#: src/addons/onedrive.php:
|
1668 |
msgid "Create OneDrive credentials in your OneDrive developer console."
|
1669 |
msgstr ""
|
1670 |
|
1671 |
-
#: src/addons/onedrive.php:
|
1672 |
msgid "Please read %s for use of our %s authorization app (none of your backup data is sent to us)."
|
1673 |
msgstr ""
|
1674 |
|
1675 |
-
#: src/addons/onedrive.php:
|
1676 |
msgid "this privacy policy"
|
1677 |
msgstr ""
|
1678 |
|
1679 |
-
#: src/addons/onedrive.php:
|
1680 |
msgid "If OneDrive later shows you the message \"unauthorized_client\", then you did not enter a valid client ID here."
|
1681 |
msgstr ""
|
1682 |
|
1683 |
-
#: src/addons/onedrive.php:
|
1684 |
msgid "folder"
|
1685 |
msgstr ""
|
1686 |
|
1687 |
-
#: src/addons/onedrive.php:
|
1688 |
msgid "N.B. %s is not case-sensitive."
|
1689 |
msgstr ""
|
1690 |
|
1691 |
-
#: src/addons/onedrive.php:
|
1692 |
msgid "Account type"
|
1693 |
msgstr ""
|
1694 |
|
1695 |
-
#: src/addons/onedrive.php:
|
1696 |
msgid "OneDrive International"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
-
#: src/addons/onedrive.php:
|
1700 |
msgid "OneDrive Germany"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
-
#: src/addons/onedrive.php:
|
1704 |
msgid "Authenticate with %s"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
-
#: src/addons/onedrive.php:
|
1708 |
msgid "(You appear to be already authenticated)."
|
1709 |
msgstr ""
|
1710 |
|
@@ -1712,7 +1716,7 @@ msgstr ""
|
|
1712 |
msgid "Your label for this backup (optional)"
|
1713 |
msgstr ""
|
1714 |
|
1715 |
-
#: src/addons/reporting.php:86, src/addons/reporting.php:
|
1716 |
msgid "Backup of:"
|
1717 |
msgstr ""
|
1718 |
|
@@ -1720,107 +1724,107 @@ msgstr ""
|
|
1720 |
msgid "%d errors, %d warnings"
|
1721 |
msgstr ""
|
1722 |
|
1723 |
-
#: src/addons/reporting.php:
|
1724 |
msgid "%d hours, %d minutes, %d seconds"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
-
#: src/addons/reporting.php:
|
1728 |
msgid "Backup Report"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
-
#: src/addons/reporting.php:
|
1732 |
msgid "Backup made by %s"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
-
#: src/addons/reporting.php:
|
1736 |
msgid "Latest status:"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
-
#: src/addons/reporting.php:
|
1740 |
msgid "Backup began:"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
-
#: src/addons/reporting.php:
|
1744 |
msgid "Errors / warnings:"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
-
#: src/addons/reporting.php:
|
1748 |
msgid "Errors"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
-
#: src/addons/reporting.php:
|
1752 |
msgid "Warnings"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
-
#: src/addons/reporting.php:
|
1756 |
msgid "Note that warning messages are advisory - the backup process does not stop for them. Instead, they provide information that you might find useful, or that may indicate the source of a problem if the backup did not succeed."
|
1757 |
msgstr ""
|
1758 |
|
1759 |
-
#: src/addons/reporting.php:
|
1760 |
msgid "Time taken:"
|
1761 |
msgstr ""
|
1762 |
|
1763 |
-
#: src/addons/reporting.php:
|
1764 |
msgid "Uploaded to:"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
-
#: src/addons/reporting.php:
|
1768 |
msgid "The log file has been attached to this email."
|
1769 |
msgstr ""
|
1770 |
|
1771 |
-
#: src/addons/reporting.php:
|
1772 |
msgid "Debugging information"
|
1773 |
msgstr ""
|
1774 |
|
1775 |
-
#: src/addons/reporting.php:
|
1776 |
msgid "Use the \"Reporting\" section to configure the email addresses to be used."
|
1777 |
msgstr ""
|
1778 |
|
1779 |
-
#: src/addons/reporting.php:
|
1780 |
msgid "Email reports"
|
1781 |
msgstr ""
|
1782 |
|
1783 |
-
#: src/addons/reporting.php:
|
1784 |
msgid "Enter addresses here to have a report sent to them when a backup job finishes."
|
1785 |
msgstr ""
|
1786 |
|
1787 |
-
#: src/addons/reporting.php:
|
1788 |
msgid "Add another address..."
|
1789 |
msgstr ""
|
1790 |
|
1791 |
-
#: src/addons/reporting.php:
|
1792 |
msgid "Log all messages to syslog"
|
1793 |
msgstr ""
|
1794 |
|
1795 |
-
#: src/addons/reporting.php:
|
1796 |
msgid "Log all messages to syslog (only server admins are likely to want this)"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
-
#: src/addons/reporting.php:
|
1800 |
msgid "To send to more than one address, separate each address with a comma."
|
1801 |
msgstr ""
|
1802 |
|
1803 |
-
#: src/addons/reporting.php:
|
1804 |
msgid "Send a report only when there are warnings/errors"
|
1805 |
msgstr ""
|
1806 |
|
1807 |
-
#: src/addons/reporting.php:
|
1808 |
msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
|
1809 |
msgstr ""
|
1810 |
|
1811 |
-
#: src/addons/reporting.php:
|
1812 |
msgid "When the Email storage method is enabled, also send the backup"
|
1813 |
msgstr ""
|
1814 |
|
1815 |
-
#: src/addons/reporting.php:
|
1816 |
msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive as a result UpdraftPlus will only send Database backups to email."
|
1817 |
msgstr ""
|
1818 |
|
1819 |
-
#: src/addons/reporting.php:
|
1820 |
msgid "Use this option to only send database backups when sending to email, and skip other components."
|
1821 |
msgstr ""
|
1822 |
|
1823 |
-
#: src/addons/reporting.php:
|
1824 |
msgid "Only email the database backup"
|
1825 |
msgstr ""
|
1826 |
|
@@ -1864,7 +1868,7 @@ msgstr ""
|
|
1864 |
msgid "AWS authentication failed"
|
1865 |
msgstr ""
|
1866 |
|
1867 |
-
#: src/addons/s3-enhanced.php:188, src/methods/openstack2.php:150, src/methods/s3.php:
|
1868 |
msgid "Region"
|
1869 |
msgstr ""
|
1870 |
|
@@ -1872,7 +1876,7 @@ msgstr ""
|
|
1872 |
msgid "Failure: We could not successfully access or create such a bucket. Please check your access credentials, and if those are correct then try another bucket name (as another AWS user may already have taken your name)."
|
1873 |
msgstr ""
|
1874 |
|
1875 |
-
#: src/addons/s3-enhanced.php:215, src/methods/s3.php:
|
1876 |
msgid "The error reported by %s was:"
|
1877 |
msgstr ""
|
1878 |
|
@@ -2064,7 +2068,7 @@ msgstr ""
|
|
2064 |
msgid "Fingerprints don't match."
|
2065 |
msgstr ""
|
2066 |
|
2067 |
-
#: src/addons/sftp.php:141, src/addons/sftp.php:153, src/methods/cloudfiles.php:147, src/methods/cloudfiles.php:189, src/methods/openstack-base.php:81, src/methods/openstack-base.php:315, src/methods/s3.php:
|
2068 |
msgid "%s Error: Failed to upload"
|
2069 |
msgstr ""
|
2070 |
|
@@ -2189,7 +2193,7 @@ msgstr ""
|
|
2189 |
msgid "Path"
|
2190 |
msgstr ""
|
2191 |
|
2192 |
-
#: src/addons/wp-cli.php:91, src/addons/wp-cli.php:510, src/addons/wp-cli.php:632, src/addons/wp-cli.php:
|
2193 |
msgid "The given value for the '%s' option is not valid"
|
2194 |
msgstr ""
|
2195 |
|
@@ -2233,27 +2237,27 @@ msgstr ""
|
|
2233 |
msgid "Latest full backup found; identifier:"
|
2234 |
msgstr ""
|
2235 |
|
2236 |
-
#: src/addons/wp-cli.php:430, src/admin.php:
|
2237 |
msgid "unknown source"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
-
#: src/addons/wp-cli.php:432, src/admin.php:
|
2241 |
msgid "Database (created by %s)"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
-
#: src/addons/wp-cli.php:438, src/admin.php:
|
2245 |
msgid "External database"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
-
#: src/addons/wp-cli.php:450, src/admin.php:
|
2249 |
msgid "Files and database WordPress backup (created by %s)"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
-
#: src/addons/wp-cli.php:450, src/admin.php:
|
2253 |
msgid "Files backup (created by %s)"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
-
#: src/addons/wp-cli.php:519, src/admin.php:818, src/class-updraftplus.php:1298, src/class-updraftplus.php:1342, src/includes/class-filesystem-functions.php:
|
2257 |
msgid "Error"
|
2258 |
msgstr ""
|
2259 |
|
@@ -2269,43 +2273,27 @@ msgstr ""
|
|
2269 |
msgid "No such backup set exists"
|
2270 |
msgstr ""
|
2271 |
|
2272 |
-
#: src/addons/wp-cli.php:648, src/admin.php:
|
2273 |
msgid "UpdraftPlus Restoration: Progress"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
-
#: src/addons/wp-cli.php:
|
2277 |
msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
|
2278 |
msgstr ""
|
2279 |
|
2280 |
-
#: src/addons/wp-cli.php:
|
2281 |
msgid "Run this command to see the log file for this restoration (needed for any support requests)."
|
2282 |
msgstr ""
|
2283 |
|
2284 |
-
#: src/addons/wp-cli.php:
|
2285 |
msgid "This is not an incremental backup"
|
2286 |
msgstr ""
|
2287 |
|
2288 |
-
#: src/addons/wp-cli.php:
|
2289 |
-
msgid "Final checks"
|
2290 |
-
msgstr ""
|
2291 |
-
|
2292 |
-
#: src/addons/wp-cli.php:794
|
2293 |
-
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
|
2294 |
-
msgstr ""
|
2295 |
-
|
2296 |
-
#: src/addons/wp-cli.php:798, src/admin.php:816, src/admin.php:4588
|
2297 |
-
msgid "Error data:"
|
2298 |
-
msgstr ""
|
2299 |
-
|
2300 |
-
#: src/addons/wp-cli.php:801, src/admin.php:4590, src/admin.php:5346, src/methods/openstack2.php:144, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/templates/wp-admin/settings/updraftcentral-connect.php:14
|
2301 |
-
msgid "Follow this link for more information"
|
2302 |
-
msgstr ""
|
2303 |
-
|
2304 |
-
#: src/addons/wp-cli.php:835
|
2305 |
msgid "You have given the %1$s option. The %1$s is working with \"%2$s\" addon. Get the \"%2$s\" addon: %3$s"
|
2306 |
msgstr ""
|
2307 |
|
2308 |
-
#: src/addons/wp-cli.php:
|
2309 |
msgid "Why am I seeing this?"
|
2310 |
msgstr ""
|
2311 |
|
@@ -2321,11 +2309,11 @@ msgstr ""
|
|
2321 |
msgid "At the same time as the files backup"
|
2322 |
msgstr ""
|
2323 |
|
2324 |
-
#: src/admin.php:334, src/admin.php:
|
2325 |
msgid "Files"
|
2326 |
msgstr ""
|
2327 |
|
2328 |
-
#: src/admin.php:334, src/backup.php:
|
2329 |
msgid "Files and database"
|
2330 |
msgstr ""
|
2331 |
|
@@ -2349,15 +2337,15 @@ msgstr ""
|
|
2349 |
msgid "Backup"
|
2350 |
msgstr ""
|
2351 |
|
2352 |
-
#: src/admin.php:671, src/admin.php:
|
2353 |
msgid "Migrate / Clone"
|
2354 |
msgstr ""
|
2355 |
|
2356 |
-
#: src/admin.php:679, src/admin.php:1092, src/admin.php:
|
2357 |
msgid "Settings"
|
2358 |
msgstr ""
|
2359 |
|
2360 |
-
#: src/admin.php:687, src/admin.php:
|
2361 |
msgid "Advanced Tools"
|
2362 |
msgstr ""
|
2363 |
|
@@ -2429,15 +2417,19 @@ msgstr ""
|
|
2429 |
msgid "Error: the server sent us a response which we did not understand."
|
2430 |
msgstr ""
|
2431 |
|
2432 |
-
#: src/admin.php:
|
|
|
|
|
|
|
|
|
2433 |
msgid "Existing Backups"
|
2434 |
msgstr ""
|
2435 |
|
2436 |
-
#: src/admin.php:820, src/admin.php:
|
2437 |
msgid "File ready."
|
2438 |
msgstr ""
|
2439 |
|
2440 |
-
#: src/admin.php:821, src/admin.php:
|
2441 |
msgid "Actions"
|
2442 |
msgstr ""
|
2443 |
|
@@ -2465,7 +2457,7 @@ msgstr ""
|
|
2465 |
msgid "PHP information"
|
2466 |
msgstr ""
|
2467 |
|
2468 |
-
#: src/admin.php:828, src/admin.php:
|
2469 |
msgid "Delete Old Directories"
|
2470 |
msgstr ""
|
2471 |
|
@@ -2525,7 +2517,7 @@ msgstr ""
|
|
2525 |
msgid "Backup Now"
|
2526 |
msgstr ""
|
2527 |
|
2528 |
-
#: src/admin.php:844, src/admin.php:
|
2529 |
msgid "Delete"
|
2530 |
msgstr ""
|
2531 |
|
@@ -2533,7 +2525,7 @@ msgstr ""
|
|
2533 |
msgid "Create"
|
2534 |
msgstr ""
|
2535 |
|
2536 |
-
#: src/admin.php:846, src/admin.php:
|
2537 |
msgid "Upload"
|
2538 |
msgstr ""
|
2539 |
|
@@ -2545,7 +2537,7 @@ msgstr ""
|
|
2545 |
msgid "Close"
|
2546 |
msgstr ""
|
2547 |
|
2548 |
-
#: src/admin.php:851, src/admin.php:
|
2549 |
msgid "Download log file"
|
2550 |
msgstr ""
|
2551 |
|
@@ -2557,7 +2549,7 @@ msgstr ""
|
|
2557 |
msgid "Saving..."
|
2558 |
msgstr ""
|
2559 |
|
2560 |
-
#: src/admin.php:855, src/admin.php:
|
2561 |
msgid "Connect"
|
2562 |
msgstr ""
|
2563 |
|
@@ -2565,7 +2557,7 @@ msgstr ""
|
|
2565 |
msgid "Connecting..."
|
2566 |
msgstr ""
|
2567 |
|
2568 |
-
#: src/admin.php:857, src/methods/updraftvault.php:
|
2569 |
msgid "Disconnect"
|
2570 |
msgstr ""
|
2571 |
|
@@ -2597,7 +2589,7 @@ msgstr ""
|
|
2597 |
msgid "your PHP install lacks the openssl module; as a result, this can take minutes; if nothing has happened by then, then you should either try a smaller key size, or ask your web hosting company how to enable this PHP module on your setup."
|
2598 |
msgstr ""
|
2599 |
|
2600 |
-
#: src/admin.php:865, src/includes/class-remote-send.php:
|
2601 |
msgid "Send to site:"
|
2602 |
msgstr ""
|
2603 |
|
@@ -2629,7 +2621,7 @@ msgstr ""
|
|
2629 |
msgid "Testing connection..."
|
2630 |
msgstr ""
|
2631 |
|
2632 |
-
#: src/admin.php:874, src/includes/class-remote-send.php:358, src/includes/class-remote-send.php:
|
2633 |
msgid "Send"
|
2634 |
msgstr ""
|
2635 |
|
@@ -2721,7 +2713,7 @@ msgstr ""
|
|
2721 |
msgid "Complete"
|
2722 |
msgstr ""
|
2723 |
|
2724 |
-
#: src/admin.php:905, src/admin.php:
|
2725 |
msgid "The backup has finished running"
|
2726 |
msgstr ""
|
2727 |
|
@@ -2905,810 +2897,814 @@ msgstr ""
|
|
2905 |
msgid "Add-Ons / Pro Support"
|
2906 |
msgstr ""
|
2907 |
|
2908 |
-
#: src/admin.php:
|
2909 |
msgid "An error occurred when fetching storage module options: "
|
2910 |
msgstr ""
|
2911 |
|
2912 |
-
#: src/admin.php:
|
2913 |
msgid "The 'Backup Now' button is disabled as your backup directory is not writable (go to the 'Settings' tab and find the relevant option)."
|
2914 |
msgstr ""
|
2915 |
|
2916 |
-
#: src/admin.php:
|
2917 |
msgid "Welcome to UpdraftPlus!"
|
2918 |
msgstr ""
|
2919 |
|
2920 |
-
#: src/admin.php:
|
2921 |
msgid "To make a backup, just press the Backup Now button."
|
2922 |
msgstr ""
|
2923 |
|
2924 |
-
#: src/admin.php:
|
2925 |
msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
|
2926 |
msgstr ""
|
2927 |
|
2928 |
-
#: src/admin.php:
|
2929 |
msgid "The amount of time allowed for WordPress plugins to run is very low (%s seconds) - you should increase it to avoid backup failures due to time-outs (consult your web hosting company for more help - it is the max_execution_time PHP setting; the recommended value is %s seconds or more)"
|
2930 |
msgstr ""
|
2931 |
|
2932 |
-
#: src/admin.php:
|
2933 |
msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even "Backup Now") unless either you have set up a facility to call the scheduler manually, or until it is enabled."
|
2934 |
msgstr ""
|
2935 |
|
2936 |
-
#: src/admin.php:
|
2937 |
msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
|
2938 |
msgstr ""
|
2939 |
|
2940 |
-
#: src/admin.php:
|
2941 |
msgid "UpdraftPlus does not officially support versions of WordPress before %s. It may work for you, but if it does not, then please be aware that no support is available until you upgrade WordPress."
|
2942 |
msgstr ""
|
2943 |
|
2944 |
-
#: src/admin.php:
|
2945 |
msgid "Your website is hosted using the %s web server."
|
2946 |
msgstr ""
|
2947 |
|
2948 |
-
#: src/admin.php:
|
2949 |
msgid "Please consult this FAQ if you have problems backing up."
|
2950 |
msgstr ""
|
2951 |
|
2952 |
-
#: src/admin.php:
|
2953 |
msgid "Notice"
|
2954 |
msgstr ""
|
2955 |
|
2956 |
-
#: src/admin.php:
|
2957 |
msgid "UpdraftPlus's debug mode is on. You may see debugging notices on this page not just from UpdraftPlus, but from any other plugin installed. Please try to make sure that the notice you are seeing is from UpdraftPlus before you raise a support request."
|
2958 |
msgstr ""
|
2959 |
|
2960 |
-
#: src/admin.php:
|
2961 |
msgid "WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working."
|
2962 |
msgstr ""
|
2963 |
|
2964 |
-
#: src/admin.php:
|
2965 |
msgid "Read this page for a guide to possible causes and how to fix it."
|
2966 |
msgstr ""
|
2967 |
|
2968 |
-
#: src/admin.php:
|
2969 |
msgid "UpdraftPlus notice:"
|
2970 |
msgstr ""
|
2971 |
|
2972 |
-
#: src/admin.php:
|
2973 |
msgid "%s has been chosen for remote storage, but you are not currently connected."
|
2974 |
msgstr ""
|
2975 |
|
2976 |
-
#: src/admin.php:
|
2977 |
msgid "Go to the remote storage settings in order to connect."
|
2978 |
msgstr ""
|
2979 |
|
2980 |
-
#: src/admin.php:
|
2981 |
msgid "Error: invalid path"
|
2982 |
msgstr ""
|
2983 |
|
2984 |
-
#: src/admin.php:
|
2985 |
msgid "Backup set not found"
|
2986 |
msgstr ""
|
2987 |
|
2988 |
-
#: src/admin.php:
|
2989 |
msgid "Did not know how to delete from this cloud service."
|
2990 |
msgstr ""
|
2991 |
|
2992 |
-
#: src/admin.php:
|
2993 |
msgid "Backup sets removed:"
|
2994 |
msgstr ""
|
2995 |
|
2996 |
-
#: src/admin.php:
|
2997 |
msgid "Local files deleted:"
|
2998 |
msgstr ""
|
2999 |
|
3000 |
-
#: src/admin.php:
|
3001 |
msgid "Remote files deleted:"
|
3002 |
msgstr ""
|
3003 |
|
3004 |
-
#: src/admin.php:
|
3005 |
msgid "Job deleted"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
-
#: src/admin.php:
|
3009 |
msgid "Could not find that job - perhaps it has already finished?"
|
3010 |
msgstr ""
|
3011 |
|
3012 |
-
#: src/admin.php:
|
3013 |
msgid "Start backup"
|
3014 |
msgstr ""
|
3015 |
|
3016 |
-
#: src/admin.php:
|
3017 |
msgid "OK. You should soon see activity in the \"Last log message\" field below."
|
3018 |
msgstr ""
|
3019 |
|
3020 |
-
#: src/admin.php:
|
3021 |
msgid "The log file could not be read."
|
3022 |
msgstr ""
|
3023 |
|
3024 |
-
#: src/admin.php:
|
3025 |
msgid "Download failed"
|
3026 |
msgstr ""
|
3027 |
|
3028 |
-
#: src/admin.php:
|
3029 |
msgid "Download in progress"
|
3030 |
msgstr ""
|
3031 |
|
3032 |
-
#: src/admin.php:
|
3033 |
msgid "No local copy present."
|
3034 |
msgstr ""
|
3035 |
|
3036 |
-
#: src/admin.php:
|
3037 |
msgid "Backup directory (%s) is not writable, or does not exist."
|
3038 |
msgstr ""
|
3039 |
|
3040 |
-
#: src/admin.php:
|
3041 |
msgid "You will find more information about this in the Settings section."
|
3042 |
msgstr ""
|
3043 |
|
3044 |
-
#: src/admin.php:
|
3045 |
msgid "This file could not be uploaded"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
-
#: src/admin.php:
|
3049 |
msgid "This backup was created by %s, and can be imported."
|
3050 |
msgstr ""
|
3051 |
|
3052 |
-
#: src/admin.php:
|
3053 |
msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
|
3054 |
msgstr ""
|
3055 |
|
3056 |
-
#: src/admin.php:
|
3057 |
msgid "This looks like a file created by UpdraftPlus, but this install does not know about this type of object: %s. Perhaps you need to install an add-on?"
|
3058 |
msgstr ""
|
3059 |
|
3060 |
-
#: src/admin.php:
|
3061 |
msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
|
3062 |
msgstr ""
|
3063 |
|
3064 |
-
#: src/admin.php:
|
3065 |
msgid "Sufficient information about the in-progress restoration operation could not be found."
|
3066 |
msgstr ""
|
3067 |
|
3068 |
-
#: src/admin.php:
|
3069 |
msgid "Backup directory could not be created"
|
3070 |
msgstr ""
|
3071 |
|
3072 |
-
#: src/admin.php:
|
3073 |
msgid "Backup directory successfully created."
|
3074 |
msgstr ""
|
3075 |
|
3076 |
-
#: src/admin.php:
|
3077 |
msgid "Warning:"
|
3078 |
msgstr ""
|
3079 |
|
3080 |
-
#: src/admin.php:
|
3081 |
msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
|
3082 |
msgstr ""
|
3083 |
|
3084 |
-
#: src/admin.php:
|
3085 |
msgid "The UpdraftPlus directory in wp-content/plugins has white-space in it; WordPress does not like this. You should rename the directory to wp-content/plugins/updraftplus to fix this problem."
|
3086 |
msgstr ""
|
3087 |
|
3088 |
-
#: src/admin.php:
|
3089 |
msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
|
3090 |
msgstr ""
|
3091 |
|
3092 |
-
#: src/admin.php:
|
3093 |
msgid "To fix this problem go here."
|
3094 |
msgstr ""
|
3095 |
|
3096 |
-
#: src/admin.php:
|
3097 |
msgid "For even more features and personal support, check out "
|
3098 |
msgstr ""
|
3099 |
|
3100 |
-
#: src/admin.php:
|
3101 |
msgid "Your backup has been restored."
|
3102 |
msgstr ""
|
3103 |
|
3104 |
-
#: src/admin.php:
|
3105 |
msgid "Your PHP memory limit (set by your web hosting company) is very low. UpdraftPlus attempted to raise it but was unsuccessful. This plugin may struggle with a memory limit of less than 64 Mb - especially if you have very large files uploaded (though on the other hand, many sites will be successful with a 32Mb limit - your experience may vary)."
|
3106 |
msgstr ""
|
3107 |
|
3108 |
-
#: src/admin.php:
|
3109 |
msgid "Current limit is:"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
-
#: src/admin.php:
|
3113 |
msgid "Backup Contents And Schedule"
|
3114 |
msgstr ""
|
3115 |
|
3116 |
-
#: src/admin.php:
|
3117 |
msgid "Backup / Restore"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
-
#: src/admin.php:
|
3121 |
msgid "Premium / Extensions"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
-
#: src/admin.php:
|
3125 |
msgid "%s minutes, %s seconds"
|
3126 |
msgstr ""
|
3127 |
|
3128 |
-
#: src/admin.php:
|
3129 |
msgid "Unfinished restoration"
|
3130 |
msgstr ""
|
3131 |
|
3132 |
-
#: src/admin.php:
|
3133 |
msgid "You have an unfinished restoration operation, begun %s ago."
|
3134 |
msgstr ""
|
3135 |
|
3136 |
-
#: src/admin.php:
|
3137 |
msgid "Continue restoration"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
-
#: src/admin.php:
|
3141 |
msgid "Dismiss"
|
3142 |
msgstr ""
|
3143 |
|
3144 |
-
#: src/admin.php:
|
3145 |
msgid "Not yet got an account (it's free)? Go get one!"
|
3146 |
msgstr ""
|
3147 |
|
3148 |
-
#: src/admin.php:
|
3149 |
msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
|
3150 |
msgstr ""
|
3151 |
|
3152 |
-
#: src/admin.php:
|
3153 |
msgid "Processing"
|
3154 |
msgstr ""
|
3155 |
|
3156 |
-
#: src/admin.php:
|
3157 |
msgid "Connect with your UpdraftPlus.Com account"
|
3158 |
msgstr ""
|
3159 |
|
3160 |
-
#: src/admin.php:
|
3161 |
msgid "Email"
|
3162 |
msgstr ""
|
3163 |
|
3164 |
-
#: src/admin.php:
|
3165 |
msgid "Forgotten your details?"
|
3166 |
msgstr ""
|
3167 |
|
3168 |
-
#: src/admin.php:
|
3169 |
msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
|
3170 |
msgstr ""
|
3171 |
|
3172 |
-
#: src/admin.php:
|
3173 |
msgid "One Time Password (check your OTP app to get this password)"
|
3174 |
msgstr ""
|
3175 |
|
3176 |
-
#: src/admin.php:
|
3177 |
msgid "Latest UpdraftPlus.com news:"
|
3178 |
msgstr ""
|
3179 |
|
3180 |
-
#: src/admin.php:
|
3181 |
msgid "Download most recently modified log file"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
-
#: src/admin.php:
|
3185 |
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old). You should press this button to delete them as soon as you have verified that the restoration worked."
|
3186 |
msgstr ""
|
3187 |
|
3188 |
-
#: src/admin.php:
|
3189 |
msgid "View Log"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
-
#: src/admin.php:
|
3193 |
msgid "Backup begun"
|
3194 |
msgstr ""
|
3195 |
|
3196 |
-
#: src/admin.php:
|
3197 |
msgid "Creating file backup zips"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
-
#: src/admin.php:
|
3201 |
msgid "Created file backup zips"
|
3202 |
msgstr ""
|
3203 |
|
3204 |
-
#: src/admin.php:
|
3205 |
msgid "Clone server being provisioned and booted (can take several minutes)"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
-
#: src/admin.php:
|
3209 |
msgid "Uploading files to remote storage"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
-
#: src/admin.php:
|
3213 |
msgid "Sending files to remote site"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
-
#: src/admin.php:
|
3217 |
msgid "(%s%%, file %s of %s)"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
-
#: src/admin.php:
|
3221 |
msgid "Pruning old backup sets"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
-
#: src/admin.php:
|
3225 |
msgid "Waiting until scheduled time to retry because of errors"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
-
#: src/admin.php:
|
3229 |
msgid "Backup finished"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
-
#: src/admin.php:
|
3233 |
msgid "Created database backup"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
-
#: src/admin.php:
|
3237 |
msgid "Creating database backup"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
-
#: src/admin.php:
|
3241 |
msgid "table: %s"
|
3242 |
msgstr ""
|
3243 |
|
3244 |
-
#: src/admin.php:
|
3245 |
msgid "Encrypting database"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
-
#: src/admin.php:
|
3249 |
msgid "Encrypted database"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
-
#: src/admin.php:
|
3253 |
msgid "Unknown"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
-
#: src/admin.php:
|
3257 |
msgid "next resumption: %d (after %ss)"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
-
#: src/admin.php:
|
3261 |
msgid "last activity: %ss ago"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
-
#: src/admin.php:
|
3265 |
msgid "Job ID: %s"
|
3266 |
msgstr ""
|
3267 |
|
3268 |
-
#: src/admin.php:
|
3269 |
msgid "Warning: %s"
|
3270 |
msgstr ""
|
3271 |
|
3272 |
-
#: src/admin.php:
|
3273 |
msgid "show log"
|
3274 |
msgstr ""
|
3275 |
|
3276 |
-
#: src/admin.php:
|
3277 |
msgid "Note: the progress bar below is based on stages, NOT time. Do not stop the backup simply because it seems to have remained in the same place for a while - that is normal."
|
3278 |
msgstr ""
|
3279 |
|
3280 |
-
#: src/admin.php:
|
3281 |
msgid "stop"
|
3282 |
msgstr ""
|
3283 |
|
3284 |
-
#: src/admin.php:
|
3285 |
msgid "Remove old directories"
|
3286 |
msgstr ""
|
3287 |
|
3288 |
-
#: src/admin.php:
|
3289 |
msgid "Old directories successfully removed."
|
3290 |
msgstr ""
|
3291 |
|
3292 |
-
#: src/admin.php:
|
3293 |
msgid "Old directory removal failed for some reason. You may want to do this manually."
|
3294 |
msgstr ""
|
3295 |
|
3296 |
-
#: src/admin.php:
|
3297 |
msgid "OK"
|
3298 |
msgstr ""
|
3299 |
|
3300 |
-
#: src/admin.php:
|
3301 |
msgid "The request to the filesystem to create the directory failed."
|
3302 |
msgstr ""
|
3303 |
|
3304 |
-
#: src/admin.php:
|
3305 |
msgid "The folder was created, but we had to change its file permissions to 777 (world-writable) to be able to write to it. You should check with your hosting provider that this will not cause any problems"
|
3306 |
msgstr ""
|
3307 |
|
3308 |
-
#: src/admin.php:
|
3309 |
msgid "The folder exists, but your webserver does not have permission to write to it."
|
3310 |
msgstr ""
|
3311 |
|
3312 |
-
#: src/admin.php:
|
3313 |
msgid "You will need to consult with your web hosting provider to find out how to set permissions for a WordPress plugin to write to the directory."
|
3314 |
msgstr ""
|
3315 |
|
3316 |
-
#: src/admin.php:
|
3317 |
msgid "incremental backup; base backup: %s"
|
3318 |
msgstr ""
|
3319 |
|
3320 |
-
#: src/admin.php:
|
3321 |
msgid "No backup has been completed"
|
3322 |
msgstr ""
|
3323 |
|
3324 |
-
#: src/admin.php:
|
3325 |
msgctxt "i.e. Non-automatic"
|
3326 |
msgid "Manual"
|
3327 |
msgstr ""
|
3328 |
|
3329 |
-
#: src/admin.php:
|
3330 |
msgid "Backup directory specified is writable, which is good."
|
3331 |
msgstr ""
|
3332 |
|
3333 |
-
#: src/admin.php:
|
3334 |
msgid "Backup directory specified does <b>not</b> exist."
|
3335 |
msgstr ""
|
3336 |
|
3337 |
-
#: src/admin.php:
|
3338 |
msgid "Backup directory specified exists, but is <b>not</b> writable."
|
3339 |
msgstr ""
|
3340 |
|
3341 |
-
#: src/admin.php:
|
3342 |
msgid "Follow this link to attempt to create the directory and set the permissions"
|
3343 |
msgstr ""
|
3344 |
|
3345 |
-
#: src/admin.php:
|
3346 |
msgid "or, to reset this option"
|
3347 |
msgstr ""
|
3348 |
|
3349 |
-
#: src/admin.php:
|
3350 |
msgid "press here"
|
3351 |
msgstr ""
|
3352 |
|
3353 |
-
#: src/admin.php:
|
3354 |
msgid "If that is unsuccessful check the permissions on your server or change it to another directory that is writable by your web server process."
|
3355 |
msgstr ""
|
3356 |
|
3357 |
-
#: src/admin.php:
|
3358 |
msgid "Your wp-content directory server path: %s"
|
3359 |
msgstr ""
|
3360 |
|
3361 |
-
#: src/admin.php:
|
3362 |
msgid "Any other directories found inside wp-content"
|
3363 |
msgstr ""
|
3364 |
|
3365 |
-
#: src/admin.php:
|
3366 |
msgid "Exclude these from"
|
3367 |
msgstr ""
|
3368 |
|
3369 |
-
#: src/admin.php:
|
3370 |
msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
|
3371 |
msgstr ""
|
3372 |
|
3373 |
-
#: src/admin.php:
|
3374 |
msgid "Your web server's PHP/Curl installation does not support https access. We cannot access %s without this support. Please contact your web hosting provider's support. %s <strong>requires</strong> Curl+https. Please do not file any support requests; there is no alternative."
|
3375 |
msgstr ""
|
3376 |
|
3377 |
-
#: src/admin.php:
|
3378 |
msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
|
3379 |
msgstr ""
|
3380 |
|
3381 |
-
#: src/admin.php:
|
3382 |
msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
|
3383 |
msgstr ""
|
3384 |
|
3385 |
-
#: src/admin.php:
|
3386 |
msgid "Total backup size:"
|
3387 |
msgstr ""
|
3388 |
|
3389 |
-
#: src/admin.php:
|
3390 |
msgid "Backup created by unknown source (%s) - cannot be restored."
|
3391 |
msgstr ""
|
3392 |
|
3393 |
-
#: src/admin.php:
|
3394 |
msgid "Press here to download or browse"
|
3395 |
msgstr ""
|
3396 |
|
3397 |
-
#: src/admin.php:
|
3398 |
msgid "(%d archive(s) in set)."
|
3399 |
msgstr ""
|
3400 |
|
3401 |
-
#: src/admin.php:
|
3402 |
msgid "You appear to be missing one or more archives from this multi-archive set."
|
3403 |
msgstr ""
|
3404 |
|
3405 |
-
#: src/admin.php:
|
3406 |
msgid "(Not finished)"
|
3407 |
msgstr ""
|
3408 |
|
3409 |
-
#: src/admin.php:
|
3410 |
msgid "If you are seeing more backups than you expect, then it is probably because the deletion of old backup sets does not happen until a fresh backup completes."
|
3411 |
msgstr ""
|
3412 |
|
3413 |
-
#: src/admin.php:
|
3414 |
msgid "(backup set imported from remote location)"
|
3415 |
msgstr ""
|
3416 |
|
3417 |
-
#: src/admin.php:
|
3418 |
msgid "After pressing this button, you will be given the option to choose which components you wish to restore"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
-
#: src/admin.php:
|
3422 |
msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
|
3423 |
msgstr ""
|
3424 |
|
3425 |
-
#: src/admin.php:
|
3426 |
msgid "Delete this backup set"
|
3427 |
msgstr ""
|
3428 |
|
3429 |
-
#: src/admin.php:
|
3430 |
msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
|
3431 |
msgstr ""
|
3432 |
|
3433 |
-
#: src/admin.php:
|
3434 |
msgid "Backup does not exist in the backup history"
|
3435 |
msgstr ""
|
3436 |
|
3437 |
-
#: src/admin.php:
|
3438 |
msgid "ABORT: Could not find the information on which entities to restore."
|
3439 |
msgstr ""
|
3440 |
|
3441 |
-
#: src/admin.php:
|
3442 |
msgid "If making a request for support, please include this information:"
|
3443 |
msgstr ""
|
3444 |
|
3445 |
-
#: src/admin.php:
|
3446 |
msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
|
3447 |
msgstr ""
|
3448 |
|
3449 |
-
#: src/admin.php:
|
3450 |
msgid "settings"
|
3451 |
msgstr ""
|
3452 |
|
3453 |
-
#: src/admin.php:
|
3454 |
msgid "Not got any remote storage?"
|
3455 |
msgstr ""
|
3456 |
|
3457 |
-
#: src/admin.php:
|
3458 |
msgid "Check out UpdraftPlus Vault."
|
3459 |
msgstr ""
|
3460 |
|
3461 |
-
#: src/admin.php:
|
3462 |
msgid "Send this backup to remote storage"
|
3463 |
msgstr ""
|
3464 |
|
3465 |
-
#: src/admin.php:
|
3466 |
msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
|
3467 |
msgstr ""
|
3468 |
|
3469 |
-
#: src/admin.php:
|
3470 |
msgid "This button is disabled because your backup directory is not writable (see the settings)."
|
3471 |
msgstr ""
|
3472 |
|
3473 |
-
#: src/admin.php:
|
3474 |
msgid "Your settings have been saved."
|
3475 |
msgstr ""
|
3476 |
|
3477 |
-
#: src/admin.php:
|
3478 |
msgid "Your settings failed to save. Please refresh the settings page and try again"
|
3479 |
msgstr ""
|
3480 |
|
3481 |
-
#: src/admin.php:
|
3482 |
msgid "authentication error"
|
3483 |
msgstr ""
|
3484 |
|
3485 |
-
#: src/admin.php:
|
3486 |
msgid "Remote storage method and instance id are required for authentication."
|
3487 |
msgstr ""
|
3488 |
|
3489 |
-
#: src/admin.php:
|
3490 |
msgid "Your settings have been wiped."
|
3491 |
msgstr ""
|
3492 |
|
3493 |
-
#: src/admin.php:
|
3494 |
msgid "Known backups (raw)"
|
3495 |
msgstr ""
|
3496 |
|
3497 |
-
#: src/admin.php:
|
3498 |
msgid "Options (raw)"
|
3499 |
msgstr ""
|
3500 |
|
3501 |
-
#: src/admin.php:
|
3502 |
msgid "Value"
|
3503 |
msgstr ""
|
3504 |
|
3505 |
-
#: src/admin.php:
|
3506 |
msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
|
3507 |
msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
|
3508 |
msgstr[0] ""
|
3509 |
msgstr[1] ""
|
3510 |
|
3511 |
-
#: src/admin.php:
|
|
|
|
|
|
|
|
|
3512 |
msgid "%s version:"
|
3513 |
msgstr ""
|
3514 |
|
3515 |
-
#: src/admin.php:
|
3516 |
msgid "Clone region:"
|
3517 |
msgstr ""
|
3518 |
|
3519 |
-
#: src/admin.php:
|
3520 |
msgid "Forbid non-administrators to login to WordPress on your clone"
|
3521 |
msgstr ""
|
3522 |
|
3523 |
-
#: src/admin.php:
|
3524 |
msgid "(current version)"
|
3525 |
msgstr ""
|
3526 |
|
3527 |
-
#: src/admin.php:
|
3528 |
msgid "Your clone has started and will be available at the following URLs once it is ready."
|
3529 |
msgstr ""
|
3530 |
|
3531 |
-
#: src/admin.php:
|
3532 |
msgid "Front page:"
|
3533 |
msgstr ""
|
3534 |
|
3535 |
-
#: src/admin.php:
|
3536 |
msgid "Dashboard:"
|
3537 |
msgstr ""
|
3538 |
|
3539 |
-
#: src/admin.php:
|
3540 |
msgid "You can find your temporary clone information in your updraftplus.com account here."
|
3541 |
msgstr ""
|
3542 |
|
3543 |
-
#: src/admin.php:
|
3544 |
msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
|
3545 |
msgstr ""
|
3546 |
|
3547 |
-
#: src/backup.php:
|
3548 |
msgid "%s - could not back this entity up; the corresponding directory does not exist (%s)"
|
3549 |
msgstr ""
|
3550 |
|
3551 |
-
#: src/backup.php:
|
3552 |
msgid "Could not create %s zip. Consult the log file for more information."
|
3553 |
msgstr ""
|
3554 |
|
3555 |
-
#: src/backup.php:
|
3556 |
msgid "A PHP exception (%s) has occurred: %s"
|
3557 |
msgstr ""
|
3558 |
|
3559 |
-
#: src/backup.php:
|
3560 |
msgid "A PHP fatal error (%s) has occurred: %s"
|
3561 |
msgstr ""
|
3562 |
|
3563 |
-
#: src/backup.php:
|
3564 |
msgid "Full backup"
|
3565 |
msgstr ""
|
3566 |
|
3567 |
-
#: src/backup.php:
|
3568 |
msgid "Incremental"
|
3569 |
msgstr ""
|
3570 |
|
3571 |
-
#: src/backup.php:
|
3572 |
msgid "The backup was aborted by the user"
|
3573 |
msgstr ""
|
3574 |
|
3575 |
-
#: src/backup.php:
|
3576 |
msgid "Files (database backup has not completed)"
|
3577 |
msgstr ""
|
3578 |
|
3579 |
-
#: src/backup.php:
|
3580 |
msgid "Files only (database was not part of this particular schedule)"
|
3581 |
msgstr ""
|
3582 |
|
3583 |
-
#: src/backup.php:
|
3584 |
msgid "Database (files backup has not completed)"
|
3585 |
msgstr ""
|
3586 |
|
3587 |
-
#: src/backup.php:
|
3588 |
msgid "Database only (files were not part of this particular schedule)"
|
3589 |
msgstr ""
|
3590 |
|
3591 |
-
#: src/backup.php:
|
3592 |
msgid "Unknown/unexpected error - please raise a support request"
|
3593 |
msgstr ""
|
3594 |
|
3595 |
-
#: src/backup.php:
|
3596 |
msgid "Errors encountered:"
|
3597 |
msgstr ""
|
3598 |
|
3599 |
-
#: src/backup.php:
|
3600 |
msgid "Warnings encountered:"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
-
#: src/backup.php:
|
3604 |
msgid "Backed up: %s"
|
3605 |
msgstr ""
|
3606 |
|
3607 |
-
#: src/backup.php:
|
3608 |
msgid "Email reports created by UpdraftPlus (free edition) bring you the latest UpdraftPlus.com news"
|
3609 |
msgstr ""
|
3610 |
|
3611 |
-
#: src/backup.php:
|
3612 |
msgid "read more at %s"
|
3613 |
msgstr ""
|
3614 |
|
3615 |
-
#: src/backup.php:
|
3616 |
msgid "WordPress backup is complete"
|
3617 |
msgstr ""
|
3618 |
|
3619 |
-
#: src/backup.php:
|
3620 |
msgid "Backup contains:"
|
3621 |
msgstr ""
|
3622 |
|
3623 |
-
#: src/backup.php:
|
3624 |
msgid "database connection attempt failed."
|
3625 |
msgstr ""
|
3626 |
|
3627 |
-
#: src/backup.php:
|
3628 |
msgid "please wait for the rescheduled attempt"
|
3629 |
msgstr ""
|
3630 |
|
3631 |
-
#: src/backup.php:
|
3632 |
msgid "No database tables found"
|
3633 |
msgstr ""
|
3634 |
|
3635 |
-
#: src/backup.php:
|
3636 |
msgid "The backup directory is not writable (or disk space is full) - the database backup is expected to shortly fail."
|
3637 |
msgstr ""
|
3638 |
|
3639 |
-
#: src/backup.php:
|
3640 |
msgid "Table %s has very many rows (%s) - we hope your web hosting company gives you enough resources to dump out that table in the backup"
|
3641 |
msgstr ""
|
3642 |
|
3643 |
-
#: src/backup.php:
|
3644 |
msgid "If not, you will need to either remove data from this table, or contact your hosting company to request more resources."
|
3645 |
msgstr ""
|
3646 |
|
3647 |
-
#: src/backup.php:
|
3648 |
msgid "The database backup appears to have failed"
|
3649 |
msgstr ""
|
3650 |
|
3651 |
-
#: src/backup.php:
|
3652 |
msgid "no options or sitemeta table was found"
|
3653 |
msgstr ""
|
3654 |
|
3655 |
-
#: src/backup.php:
|
3656 |
msgid "the options table was not found"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
-
#: src/backup.php:
|
3660 |
msgid "Failed to open database file for reading:"
|
3661 |
msgstr ""
|
3662 |
|
3663 |
-
#: src/backup.php:
|
3664 |
msgid "An error occurred whilst closing the final database file"
|
3665 |
msgstr ""
|
3666 |
|
3667 |
-
#: src/backup.php:
|
3668 |
msgid "Could not open the backup file for writing"
|
3669 |
msgstr ""
|
3670 |
|
3671 |
-
#: src/backup.php:
|
3672 |
msgid "Infinite recursion: consult your log for more information"
|
3673 |
msgstr ""
|
3674 |
|
3675 |
-
#: src/backup.php:
|
3676 |
msgid "%s: unreadable file - could not be backed up (check the file permissions and ownership)"
|
3677 |
msgstr ""
|
3678 |
|
3679 |
-
#: src/backup.php:
|
3680 |
msgid "Failed to open directory (check the file permissions and ownership): %s"
|
3681 |
msgstr ""
|
3682 |
|
3683 |
-
#: src/backup.php:
|
3684 |
msgid "%s: unreadable file - could not be backed up"
|
3685 |
msgstr ""
|
3686 |
|
3687 |
-
#: src/backup.php:
|
3688 |
msgid "Failed to open the zip file (%s) - %s"
|
3689 |
msgstr ""
|
3690 |
|
3691 |
-
#: src/backup.php:
|
3692 |
msgid "A very large file was encountered: %s (size: %s Mb)"
|
3693 |
msgstr ""
|
3694 |
|
3695 |
-
#: src/backup.php:
|
3696 |
msgid "Your free space in your hosting account is very low - only %s Mb remain"
|
3697 |
msgstr ""
|
3698 |
|
3699 |
-
#: src/backup.php:
|
3700 |
msgid "The zip engine returned the message: %s."
|
3701 |
msgstr ""
|
3702 |
|
3703 |
-
#: src/backup.php:
|
3704 |
msgid "A zip error occurred"
|
3705 |
msgstr ""
|
3706 |
|
3707 |
-
#: src/backup.php:
|
3708 |
msgid "your web hosting account appears to be full; please see: %s"
|
3709 |
msgstr ""
|
3710 |
|
3711 |
-
#: src/backup.php:
|
3712 |
msgid "check your log for more details."
|
3713 |
msgstr ""
|
3714 |
|
@@ -3876,7 +3872,7 @@ msgstr ""
|
|
3876 |
msgid "More information..."
|
3877 |
msgstr ""
|
3878 |
|
3879 |
-
#: src/central/bootstrap.php:570, src/methods/updraftvault.php:
|
3880 |
msgid "Back..."
|
3881 |
msgstr ""
|
3882 |
|
@@ -3892,7 +3888,7 @@ msgstr ""
|
|
3892 |
msgid "UpdraftCentral enables control of your WordPress sites (including management of backups and updates) from a central dashboard."
|
3893 |
msgstr ""
|
3894 |
|
3895 |
-
#: src/central/bootstrap.php:597, src/methods/updraftvault.php:
|
3896 |
msgid "Read more about it here."
|
3897 |
msgstr ""
|
3898 |
|
@@ -4000,175 +3996,175 @@ msgstr ""
|
|
4000 |
msgid "Could not save backup history because we have no backup array. Backup probably failed."
|
4001 |
msgstr ""
|
4002 |
|
4003 |
-
#: src/class-updraftplus.php:
|
4004 |
msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
|
4005 |
msgstr ""
|
4006 |
|
4007 |
-
#: src/class-updraftplus.php:
|
4008 |
msgid "Decryption failed. The database file is encrypted."
|
4009 |
msgstr ""
|
4010 |
|
4011 |
-
#: src/class-updraftplus.php:
|
4012 |
msgid "Decryption failed. The most likely cause is that you used the wrong key."
|
4013 |
msgstr ""
|
4014 |
|
4015 |
-
#: src/class-updraftplus.php:
|
4016 |
msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
|
4017 |
msgstr ""
|
4018 |
|
4019 |
-
#: src/class-updraftplus.php:
|
4020 |
msgid "Failed to open database file."
|
4021 |
msgstr ""
|
4022 |
|
4023 |
-
#: src/class-updraftplus.php:
|
4024 |
msgid "(version: %s)"
|
4025 |
msgstr ""
|
4026 |
|
4027 |
-
#: src/class-updraftplus.php:
|
4028 |
msgid "The website address in the backup set (%s) is slightly different from that of the site now (%s). This is not expected to be a problem for restoring the site, as long as visits to the former address still reach the site."
|
4029 |
msgstr ""
|
4030 |
|
4031 |
-
#: src/class-updraftplus.php:
|
4032 |
msgid "This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s."
|
4033 |
msgstr ""
|
4034 |
|
4035 |
-
#: src/class-updraftplus.php:
|
4036 |
msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https."
|
4037 |
msgstr ""
|
4038 |
|
4039 |
-
#: src/class-updraftplus.php:
|
4040 |
msgid "the migrator add-on"
|
4041 |
msgstr ""
|
4042 |
|
4043 |
-
#: src/class-updraftplus.php:
|
4044 |
msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced."
|
4045 |
msgstr ""
|
4046 |
|
4047 |
-
#: src/class-updraftplus.php:
|
4048 |
msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
|
4049 |
msgstr ""
|
4050 |
|
4051 |
-
#: src/class-updraftplus.php:
|
4052 |
msgid "You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information"
|
4053 |
msgstr ""
|
4054 |
|
4055 |
-
#: src/class-updraftplus.php:
|
4056 |
msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
|
4057 |
msgstr ""
|
4058 |
|
4059 |
-
#: src/class-updraftplus.php:
|
4060 |
msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
|
4061 |
msgstr ""
|
4062 |
|
4063 |
-
#: src/class-updraftplus.php:
|
4064 |
msgid "%s version: %s"
|
4065 |
msgstr ""
|
4066 |
|
4067 |
-
#: src/class-updraftplus.php:
|
4068 |
msgid "You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this."
|
4069 |
msgstr ""
|
4070 |
|
4071 |
-
#: src/class-updraftplus.php:
|
4072 |
msgid "The site in this backup was running on a webserver with version %s of %s. "
|
4073 |
msgstr ""
|
4074 |
|
4075 |
-
#: src/class-updraftplus.php:
|
4076 |
msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
|
4077 |
msgstr ""
|
4078 |
|
4079 |
-
#: src/class-updraftplus.php:
|
4080 |
msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
|
4081 |
msgstr ""
|
4082 |
|
4083 |
-
#: src/class-updraftplus.php:
|
4084 |
msgid "Any support requests to do with %s should be raised with your web hosting company."
|
4085 |
msgstr ""
|
4086 |
|
4087 |
-
#: src/class-updraftplus.php:
|
4088 |
msgid "Old table prefix:"
|
4089 |
msgstr ""
|
4090 |
|
4091 |
-
#: src/class-updraftplus.php:
|
4092 |
msgid "Backup label:"
|
4093 |
msgstr ""
|
4094 |
|
4095 |
-
#: src/class-updraftplus.php:
|
4096 |
msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
|
4097 |
msgstr ""
|
4098 |
|
4099 |
-
#: src/class-updraftplus.php:
|
4100 |
msgid "It will be imported as a new site."
|
4101 |
msgstr ""
|
4102 |
|
4103 |
-
#: src/class-updraftplus.php:
|
4104 |
msgid "Please read this link for important information on this process."
|
4105 |
msgstr ""
|
4106 |
|
4107 |
-
#: src/class-updraftplus.php:
|
4108 |
msgid "To import an ordinary WordPress site into a multisite installation requires %s."
|
4109 |
msgstr ""
|
4110 |
|
4111 |
-
#: src/class-updraftplus.php:
|
4112 |
msgid "Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible."
|
4113 |
msgstr ""
|
4114 |
|
4115 |
-
#: src/class-updraftplus.php:
|
4116 |
msgid "If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite."
|
4117 |
msgstr ""
|
4118 |
|
4119 |
-
#: src/class-updraftplus.php:
|
4120 |
msgid "Site information:"
|
4121 |
msgstr ""
|
4122 |
|
4123 |
-
#: src/class-updraftplus.php:
|
4124 |
msgid "The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on."
|
4125 |
msgstr ""
|
4126 |
|
4127 |
-
#: src/class-updraftplus.php:
|
4128 |
msgid "You must upgrade MySQL to be able to use this database."
|
4129 |
msgstr ""
|
4130 |
|
4131 |
-
#: src/class-updraftplus.php:
|
4132 |
msgid "The database server that this WordPress site is running on doesn't support the character set (%s) which you are trying to import."
|
4133 |
msgid_plural "The database server that this WordPress site is running on doesn't support the character sets (%s) which you are trying to import."
|
4134 |
msgstr[0] ""
|
4135 |
msgstr[1] ""
|
4136 |
|
4137 |
-
#: src/class-updraftplus.php:
|
4138 |
msgid "You can choose another suitable character set instead and continue with the restoration at your own risk."
|
4139 |
msgstr ""
|
4140 |
|
4141 |
-
#: src/class-updraftplus.php:
|
4142 |
msgid "Your chosen character set to use instead:"
|
4143 |
msgstr ""
|
4144 |
|
4145 |
-
#: src/class-updraftplus.php:
|
4146 |
msgid "The database server that this WordPress site is running on doesn't support the collation (%s) used in the database which you are trying to import."
|
4147 |
msgid_plural "The database server that this WordPress site is running on doesn't support multiple collations (%s) used in the database which you are trying to import."
|
4148 |
msgstr[0] ""
|
4149 |
msgstr[1] ""
|
4150 |
|
4151 |
-
#: src/class-updraftplus.php:
|
4152 |
msgid "You can choose another suitable collation instead and continue with the restoration (at your own risk)."
|
4153 |
msgstr ""
|
4154 |
|
4155 |
-
#: src/class-updraftplus.php:
|
4156 |
msgid "Your chosen replacement collation"
|
4157 |
msgstr ""
|
4158 |
|
4159 |
-
#: src/class-updraftplus.php:
|
4160 |
msgid "Choose a default for each table"
|
4161 |
msgstr ""
|
4162 |
|
4163 |
-
#: src/class-updraftplus.php:
|
4164 |
msgid "This database backup is missing core WordPress tables: %s"
|
4165 |
msgstr ""
|
4166 |
|
4167 |
-
#: src/class-updraftplus.php:
|
4168 |
msgid "This database backup has the following WordPress tables excluded: %s"
|
4169 |
msgstr ""
|
4170 |
|
4171 |
-
#: src/class-updraftplus.php:
|
4172 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
4173 |
msgstr ""
|
4174 |
|
@@ -4176,7 +4172,7 @@ msgstr ""
|
|
4176 |
msgid "You have not yet made any backups."
|
4177 |
msgstr ""
|
4178 |
|
4179 |
-
#: src/includes/class-backup-history.php:
|
4180 |
msgid "One or more backups has been added from scanning remote storage; note that these backups will not be automatically deleted through the \"retain\" settings; if/when you wish to delete them then you must do so manually."
|
4181 |
msgstr ""
|
4182 |
|
@@ -4184,7 +4180,7 @@ msgstr ""
|
|
4184 |
msgid "%s add-on not found"
|
4185 |
msgstr ""
|
4186 |
|
4187 |
-
#: src/includes/class-commands.php:793, src/methods/updraftvault.php:
|
4188 |
msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
|
4189 |
msgstr ""
|
4190 |
|
@@ -4212,46 +4208,50 @@ msgstr ""
|
|
4212 |
msgid "The creation of your data for creating the clone should now begin. N.B. You will be charged one token once the clone is ready. If the clone fails to boot, then no token will be taken."
|
4213 |
msgstr ""
|
4214 |
|
4215 |
-
#: src/includes/class-filesystem-functions.php:
|
4216 |
msgid "refresh"
|
4217 |
msgstr ""
|
4218 |
|
4219 |
-
#: src/includes/class-filesystem-functions.php:
|
4220 |
msgid "calculate"
|
4221 |
msgstr ""
|
4222 |
|
4223 |
-
#: src/includes/class-filesystem-functions.php:
|
4224 |
msgid "This is a count of the contents of your Updraft directory"
|
4225 |
msgstr ""
|
4226 |
|
4227 |
-
#: src/includes/class-filesystem-functions.php:
|
4228 |
msgid "Web-server disk space in use by UpdraftPlus"
|
4229 |
msgstr ""
|
4230 |
|
4231 |
-
#: src/includes/class-filesystem-functions.php:
|
4232 |
msgid "Your web server's PHP installation has these functions disabled: %s."
|
4233 |
msgstr ""
|
4234 |
|
4235 |
-
#: src/includes/class-filesystem-functions.php:
|
4236 |
msgid "Your hosting company must enable these functions before %s can work."
|
4237 |
msgstr ""
|
4238 |
|
4239 |
-
#: src/includes/class-filesystem-functions.php:
|
4240 |
msgid "restoration"
|
4241 |
msgstr ""
|
4242 |
|
4243 |
-
#: src/includes/class-filesystem-functions.php:
|
4244 |
msgid "The database file appears to have been compressed twice - probably the website you downloaded it from had a mis-configured webserver."
|
4245 |
msgstr ""
|
4246 |
|
4247 |
-
#: src/includes/class-filesystem-functions.php:
|
4248 |
msgid "The attempt to undo the double-compression failed."
|
4249 |
msgstr ""
|
4250 |
|
4251 |
-
#: src/includes/class-filesystem-functions.php:
|
4252 |
msgid "The attempt to undo the double-compression succeeded."
|
4253 |
msgstr ""
|
4254 |
|
|
|
|
|
|
|
|
|
4255 |
#: src/includes/class-remote-send.php:251
|
4256 |
msgid "Backup data will be sent to:"
|
4257 |
msgstr ""
|
@@ -4280,39 +4280,43 @@ msgstr ""
|
|
4280 |
msgid "You must copy and paste this key on the sending site now - it cannot be shown again."
|
4281 |
msgstr ""
|
4282 |
|
4283 |
-
#: src/includes/class-remote-send.php:
|
|
|
|
|
|
|
|
|
4284 |
msgid "key"
|
4285 |
msgstr ""
|
4286 |
|
4287 |
-
#: src/includes/class-remote-send.php:
|
4288 |
msgid "The entered key was the wrong length - please try again."
|
4289 |
msgstr ""
|
4290 |
|
4291 |
-
#: src/includes/class-remote-send.php:
|
4292 |
msgid "The entered key was corrupt - please try again."
|
4293 |
msgstr ""
|
4294 |
|
4295 |
-
#: src/includes/class-remote-send.php:
|
4296 |
msgid "The entered key does not belong to a remote site (it belongs to this one)."
|
4297 |
msgstr ""
|
4298 |
|
4299 |
-
#: src/includes/class-remote-send.php:
|
4300 |
msgid "The key was successfully added."
|
4301 |
msgstr ""
|
4302 |
|
4303 |
-
#: src/includes/class-remote-send.php:
|
4304 |
msgid "It is for sending backups to the following site: "
|
4305 |
msgstr ""
|
4306 |
|
4307 |
-
#: src/includes/class-remote-send.php:
|
4308 |
msgid "No receiving sites have yet been added."
|
4309 |
msgstr ""
|
4310 |
|
4311 |
-
#: src/includes/class-remote-send.php:
|
4312 |
msgid "No keys to allow remote sites to send backup data here have yet been created."
|
4313 |
msgstr ""
|
4314 |
|
4315 |
-
#: src/includes/class-remote-send.php:
|
4316 |
msgid "Existing keys"
|
4317 |
msgstr ""
|
4318 |
|
@@ -4488,11 +4492,11 @@ msgstr ""
|
|
4488 |
msgid "Allow only administrators to log in"
|
4489 |
msgstr ""
|
4490 |
|
4491 |
-
#: src/includes/updraftplus-login.php:58, src/methods/updraftvault.php:
|
4492 |
msgid "UpdraftPlus.Com returned a response which we could not understand (data: %s)"
|
4493 |
msgstr ""
|
4494 |
|
4495 |
-
#: src/includes/updraftplus-notices.php:30, src/includes/updraftplus-notices.php:
|
4496 |
msgid "UpdraftPlus Premium:"
|
4497 |
msgstr ""
|
4498 |
|
@@ -4504,151 +4508,151 @@ msgstr ""
|
|
4504 |
msgid "Enjoy professional, fast, and friendly help whenever you need it with Premium."
|
4505 |
msgstr ""
|
4506 |
|
4507 |
-
#: src/includes/updraftplus-notices.php:
|
4508 |
msgid "UpdraftVault storage"
|
4509 |
msgstr ""
|
4510 |
|
4511 |
-
#: src/includes/updraftplus-notices.php:
|
4512 |
msgid "The ultimately secure and convenient place to store your backups."
|
4513 |
msgstr ""
|
4514 |
|
4515 |
-
#: src/includes/updraftplus-notices.php:
|
4516 |
msgid "enhanced remote storage options"
|
4517 |
msgstr ""
|
4518 |
|
4519 |
-
#: src/includes/updraftplus-notices.php:
|
4520 |
msgid "Enhanced storage options for Dropbox, Google Drive and S3. Plus many more options."
|
4521 |
msgstr ""
|
4522 |
|
4523 |
-
#: src/includes/updraftplus-notices.php:
|
4524 |
msgid "advanced options"
|
4525 |
msgstr ""
|
4526 |
|
4527 |
-
#: src/includes/updraftplus-notices.php:
|
4528 |
msgid "Secure multisite installation, advanced reporting and much more."
|
4529 |
msgstr ""
|
4530 |
|
4531 |
-
#: src/includes/updraftplus-notices.php:
|
4532 |
msgid "secure your backups"
|
4533 |
msgstr ""
|
4534 |
|
4535 |
-
#: src/includes/updraftplus-notices.php:
|
4536 |
msgid "Add SFTP to send your data securely, lock settings and encrypt your database backups for extra security."
|
4537 |
msgstr ""
|
4538 |
|
4539 |
-
#: src/includes/updraftplus-notices.php:
|
4540 |
msgid "easily migrate or clone your site in minutes"
|
4541 |
msgstr ""
|
4542 |
|
4543 |
-
#: src/includes/updraftplus-notices.php:
|
4544 |
msgid "Copy your site to another domain directly. Includes find-and-replace tool for database references."
|
4545 |
msgstr ""
|
4546 |
|
4547 |
-
#: src/includes/updraftplus-notices.php:
|
4548 |
msgid "Introducing UpdraftCentral"
|
4549 |
msgstr ""
|
4550 |
|
4551 |
-
#: src/includes/updraftplus-notices.php:
|
4552 |
msgid "UpdraftCentral is a highly efficient way to manage, update and backup multiple websites from one place."
|
4553 |
msgstr ""
|
4554 |
|
4555 |
-
#: src/includes/updraftplus-notices.php:
|
4556 |
-
msgid "
|
4557 |
msgstr ""
|
4558 |
|
4559 |
-
#: src/includes/updraftplus-notices.php:
|
4560 |
-
msgid "
|
4561 |
msgstr ""
|
4562 |
|
4563 |
-
#: src/includes/updraftplus-notices.php:
|
4564 |
-
msgid "
|
4565 |
msgstr ""
|
4566 |
|
4567 |
-
#: src/includes/updraftplus-notices.php:
|
4568 |
-
msgid "
|
4569 |
msgstr ""
|
4570 |
|
4571 |
-
#: src/includes/updraftplus-notices.php:
|
4572 |
msgid "UpdraftPlus is on social media - check us out!"
|
4573 |
msgstr ""
|
4574 |
|
4575 |
-
#: src/includes/updraftplus-notices.php:
|
4576 |
msgid "Twitter"
|
4577 |
msgstr ""
|
4578 |
|
4579 |
-
#: src/includes/updraftplus-notices.php:
|
4580 |
msgid "Facebook"
|
4581 |
msgstr ""
|
4582 |
|
4583 |
-
#: src/includes/updraftplus-notices.php:
|
4584 |
msgid "Google+"
|
4585 |
msgstr ""
|
4586 |
|
4587 |
-
#: src/includes/updraftplus-notices.php:
|
4588 |
msgid "LinkedIn"
|
4589 |
msgstr ""
|
4590 |
|
4591 |
-
#: src/includes/updraftplus-notices.php:
|
4592 |
msgid "UpdraftPlus Newsletter"
|
4593 |
msgstr ""
|
4594 |
|
4595 |
-
#: src/includes/updraftplus-notices.php:
|
4596 |
msgid "Follow this link to sign up for the UpdraftPlus newsletter."
|
4597 |
msgstr ""
|
4598 |
|
4599 |
-
#: src/includes/updraftplus-notices.php:
|
4600 |
msgid "UpdraftPlus Blog - get up-to-date news and offers"
|
4601 |
msgstr ""
|
4602 |
|
4603 |
-
#: src/includes/updraftplus-notices.php:
|
4604 |
msgid "Blog link"
|
4605 |
msgstr ""
|
4606 |
|
4607 |
-
#: src/includes/updraftplus-notices.php:
|
4608 |
msgid "RSS link"
|
4609 |
msgstr ""
|
4610 |
|
4611 |
-
#: src/includes/updraftplus-notices.php:
|
4612 |
msgid "UpdraftPlus Premium can automatically backup your plugins/themes/database before you update, without you needing to remember."
|
4613 |
msgstr ""
|
4614 |
|
4615 |
-
#: src/includes/updraftplus-notices.php:
|
4616 |
msgid "After you've backed up your database, we recommend you install our WP-Optimize plugin to streamline it for better website performance."
|
4617 |
msgstr ""
|
4618 |
|
4619 |
-
#: src/includes/updraftplus-notices.php:
|
4620 |
msgid "Instant and secure logon with a wave of your phone."
|
4621 |
msgstr ""
|
4622 |
|
4623 |
-
#: src/includes/updraftplus-notices.php:
|
4624 |
msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
|
4625 |
msgstr ""
|
4626 |
|
4627 |
-
#: src/includes/updraftplus-notices.php:
|
4628 |
msgid "With Metaslider, you can easily add style and flare with beautifully-designed sliders."
|
4629 |
msgstr ""
|
4630 |
|
4631 |
-
#: src/includes/updraftplus-notices.php:
|
4632 |
msgid "Black Friday - 20% off UpdraftPlus Premium until November 30th"
|
4633 |
msgstr ""
|
4634 |
|
4635 |
-
#: src/includes/updraftplus-notices.php:
|
4636 |
msgid "To benefit, use this discount code:"
|
4637 |
msgstr ""
|
4638 |
|
4639 |
-
#: src/includes/updraftplus-notices.php:
|
4640 |
msgid "Christmas sale - 20% off UpdraftPlus Premium until December 25th"
|
4641 |
msgstr ""
|
4642 |
|
4643 |
-
#: src/includes/updraftplus-notices.php:
|
4644 |
msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
|
4645 |
msgstr ""
|
4646 |
|
4647 |
-
#: src/includes/updraftplus-notices.php:
|
4648 |
msgid "Spring sale - 20% off UpdraftPlus Premium until April 30th"
|
4649 |
msgstr ""
|
4650 |
|
4651 |
-
#: src/includes/updraftplus-notices.php:
|
4652 |
msgid "Summer sale - 20% off UpdraftPlus Premium until July 31st"
|
4653 |
msgstr ""
|
4654 |
|
@@ -4875,16 +4879,16 @@ msgstr ""
|
|
4875 |
msgid "Follow this link to remove these settings for %s."
|
4876 |
msgstr ""
|
4877 |
|
4878 |
-
#: src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440, src/methods/openstack-base.php:571, src/methods/s3.php:
|
4879 |
msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support."
|
4880 |
msgstr ""
|
4881 |
|
4882 |
-
#: src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440, src/methods/openstack-base.php:571, src/methods/s3.php:
|
4883 |
msgid "UpdraftPlus's %s module <strong>requires</strong> %s. Please do not file any support requests; there is no alternative."
|
4884 |
msgstr ""
|
4885 |
|
4886 |
#: src/methods/cloudfiles-new.php:102, src/methods/cloudfiles.php:446
|
4887 |
-
msgid "Get your API key <a href=\"https://mycloud.rackspace.com/\">from your Rackspace Cloud console</a> (read instructions <a href=\"http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key\">here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist."
|
4888 |
msgstr ""
|
4889 |
|
4890 |
#: src/methods/cloudfiles-new.php:102, src/methods/cloudfiles.php:446, src/methods/openstack2.php:120
|
@@ -4911,7 +4915,7 @@ msgstr ""
|
|
4911 |
msgid "Cloud Files API Key"
|
4912 |
msgstr ""
|
4913 |
|
4914 |
-
#: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519, src/methods/s3.php:
|
4915 |
msgid "API key"
|
4916 |
msgstr ""
|
4917 |
|
@@ -4975,7 +4979,7 @@ msgstr ""
|
|
4975 |
msgid "Closing 1st October 2018"
|
4976 |
msgstr ""
|
4977 |
|
4978 |
-
#: src/methods/dreamobjects.php:
|
4979 |
msgid "%s end-point"
|
4980 |
msgstr ""
|
4981 |
|
@@ -5289,111 +5293,111 @@ msgctxt "\"tenant\" is a term used with OpenStack storage - Google for \"OpenSta
|
|
5289 |
msgid "tenant"
|
5290 |
msgstr ""
|
5291 |
|
5292 |
-
#: src/methods/s3.php:
|
5293 |
msgid "No settings were found - please go to the Settings tab and check your settings"
|
5294 |
msgstr ""
|
5295 |
|
5296 |
-
#: src/methods/s3.php:
|
5297 |
msgid "%s Error: Failed to initialise"
|
5298 |
msgstr ""
|
5299 |
|
5300 |
-
#: src/methods/s3.php:
|
5301 |
msgid "The required %s PHP module is not installed - ask your web hosting company to enable it"
|
5302 |
msgstr ""
|
5303 |
|
5304 |
-
#: src/methods/s3.php:
|
5305 |
msgid "%s upload: getting uploadID for multipart upload failed - see log file for more details"
|
5306 |
msgstr ""
|
5307 |
|
5308 |
-
#: src/methods/s3.php:
|
5309 |
msgid "%s error: file %s was shortened unexpectedly"
|
5310 |
msgstr ""
|
5311 |
|
5312 |
-
#: src/methods/s3.php:
|
5313 |
msgid "%s chunk %s: upload failed"
|
5314 |
msgstr ""
|
5315 |
|
5316 |
-
#: src/methods/s3.php:
|
5317 |
msgid "%s upload (%s): re-assembly failed (see log for more details)"
|
5318 |
msgstr ""
|
5319 |
|
5320 |
-
#: src/methods/s3.php:
|
5321 |
msgid "%s re-assembly error (%s): (see log file for more)"
|
5322 |
msgstr ""
|
5323 |
|
5324 |
-
#: src/methods/s3.php:
|
5325 |
msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
|
5326 |
msgstr ""
|
5327 |
|
5328 |
-
#: src/methods/s3.php:
|
5329 |
msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials."
|
5330 |
msgstr ""
|
5331 |
|
5332 |
-
#: src/methods/s3.php:
|
5333 |
msgid "%s Error: Failed to download %s. Check your permissions and credentials."
|
5334 |
msgstr ""
|
5335 |
|
5336 |
-
#: src/methods/s3.php:
|
5337 |
msgid "... and many more!"
|
5338 |
msgstr ""
|
5339 |
|
5340 |
-
#: src/methods/s3.php:
|
5341 |
msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support and ask for them to enable it."
|
5342 |
msgstr ""
|
5343 |
|
5344 |
-
#: src/methods/s3.php:
|
5345 |
msgid "Get your access key and secret key <a href=\"%s\">from your %s console</a>, then pick a (globally unique - all %s users) bucket name (letters and numbers) (and optionally a path) to use for storage. This bucket will be created for you if it does not already exist."
|
5346 |
msgstr ""
|
5347 |
|
5348 |
-
#: src/methods/s3.php:
|
5349 |
msgid "If you see errors about SSL certificates, then please go here for help."
|
5350 |
msgstr ""
|
5351 |
|
5352 |
-
#: src/methods/s3.php:
|
5353 |
msgid "Other %s FAQs."
|
5354 |
msgstr ""
|
5355 |
|
5356 |
-
#: src/methods/s3.php:
|
5357 |
msgid "To create a new IAM sub-user and access key that has access only to this bucket, use this add-on."
|
5358 |
msgstr ""
|
5359 |
|
5360 |
-
#: src/methods/s3.php:
|
5361 |
msgid "%s access key"
|
5362 |
msgstr ""
|
5363 |
|
5364 |
-
#: src/methods/s3.php:
|
5365 |
msgid "%s secret key"
|
5366 |
msgstr ""
|
5367 |
|
5368 |
-
#: src/methods/s3.php:
|
5369 |
msgid "%s location"
|
5370 |
msgstr ""
|
5371 |
|
5372 |
-
#: src/methods/s3.php:
|
5373 |
msgid "Enter only a bucket name or a bucket and path. Examples: mybucket, mybucket/mypath"
|
5374 |
msgstr ""
|
5375 |
|
5376 |
-
#: src/methods/s3.php:
|
5377 |
msgid "API secret"
|
5378 |
msgstr ""
|
5379 |
|
5380 |
-
#: src/methods/s3.php:
|
5381 |
msgid "The AWS access key looks to be wrong (valid %s access keys begin with \"AK\")"
|
5382 |
msgstr ""
|
5383 |
|
5384 |
-
#: src/methods/s3.php:
|
5385 |
msgid "The communication with %s was encrypted."
|
5386 |
msgstr ""
|
5387 |
|
5388 |
-
#: src/methods/s3.php:
|
5389 |
msgid "The communication with %s was not encrypted."
|
5390 |
msgstr ""
|
5391 |
|
5392 |
-
#: src/methods/s3.php:
|
5393 |
msgid "Please check your access credentials."
|
5394 |
msgstr ""
|
5395 |
|
5396 |
-
#: src/methods/s3generic.php:
|
5397 |
msgid "S3 (Compatible)"
|
5398 |
msgstr ""
|
5399 |
|
@@ -5421,155 +5425,155 @@ msgstr ""
|
|
5421 |
msgid "UpdraftVault"
|
5422 |
msgstr ""
|
5423 |
|
5424 |
-
#: src/methods/updraftvault.php:
|
5425 |
msgid "Updraft Vault"
|
5426 |
msgstr ""
|
5427 |
|
5428 |
-
#: src/methods/updraftvault.php:
|
5429 |
msgid "Your UpdraftPlus Premium purchase is over a year ago. You should renew immediately to avoid losing the 12 months of free storage allowance that you get for being a current UpdraftPlus Premium customer."
|
5430 |
msgstr ""
|
5431 |
|
5432 |
-
#: src/methods/updraftvault.php:
|
5433 |
msgid "You have an UpdraftPlus Vault subscription with overdue payment. You are within the few days of grace period before it will be suspended, and you will lose your quota and access to data stored within it. Please renew as soon as possible!"
|
5434 |
msgstr ""
|
5435 |
|
5436 |
-
#: src/methods/updraftvault.php:
|
5437 |
msgid "You have an UpdraftPlus Vault subscription that has not been renewed, and the grace period has expired. In a few days' time, your stored data will be permanently removed. If you do not wish this to happen, then you should renew as soon as possible."
|
5438 |
msgstr ""
|
5439 |
|
5440 |
-
#: src/methods/updraftvault.php:
|
5441 |
msgid "No Vault connection was found for this site (has it moved?); please disconnect and re-connect."
|
5442 |
msgstr ""
|
5443 |
|
5444 |
-
#: src/methods/updraftvault.php:
|
5445 |
msgid "UpdraftPlus Vault brings you storage that is <strong>reliable, easy to use and a great price</strong>."
|
5446 |
msgstr ""
|
5447 |
|
5448 |
-
#: src/methods/updraftvault.php:
|
5449 |
msgid "Press a button to get started."
|
5450 |
msgstr ""
|
5451 |
|
5452 |
-
#: src/methods/updraftvault.php:
|
5453 |
msgid "First time user?"
|
5454 |
msgstr ""
|
5455 |
|
5456 |
-
#: src/methods/updraftvault.php:
|
5457 |
msgid "Show the options"
|
5458 |
msgstr ""
|
5459 |
|
5460 |
-
#: src/methods/updraftvault.php:
|
5461 |
msgid "Already purchased space?"
|
5462 |
msgstr ""
|
5463 |
|
5464 |
-
#: src/methods/updraftvault.php:
|
5465 |
msgid "UpdraftPlus Vault is built on top of Amazon's world-leading data-centres, with redundant data storage to achieve 99.999999999% reliability."
|
5466 |
msgstr ""
|
5467 |
|
5468 |
-
#: src/methods/updraftvault.php:
|
5469 |
msgid "Read the FAQs here."
|
5470 |
msgstr ""
|
5471 |
|
5472 |
-
#: src/methods/updraftvault.php:
|
5473 |
msgid "%s per quarter"
|
5474 |
msgstr ""
|
5475 |
|
5476 |
-
#: src/methods/updraftvault.php:
|
5477 |
msgid "or (annual discount)"
|
5478 |
msgstr ""
|
5479 |
|
5480 |
-
#: src/methods/updraftvault.php:
|
5481 |
msgid "%s per year"
|
5482 |
msgstr ""
|
5483 |
|
5484 |
-
#: src/methods/updraftvault.php:
|
5485 |
msgid "Payments can be made in US dollars, euros or GB pounds sterling, via card or PayPal."
|
5486 |
msgstr ""
|
5487 |
|
5488 |
-
#: src/methods/updraftvault.php:
|
5489 |
msgid "Subscriptions can be cancelled at any time."
|
5490 |
msgstr ""
|
5491 |
|
5492 |
-
#: src/methods/updraftvault.php:
|
5493 |
msgid "Enter your UpdraftPlus.Com email / password here to connect:"
|
5494 |
msgstr ""
|
5495 |
|
5496 |
-
#: src/methods/updraftvault.php:
|
5497 |
msgid "E-mail"
|
5498 |
msgstr ""
|
5499 |
|
5500 |
-
#: src/methods/updraftvault.php:
|
5501 |
msgid "Don't know your email address, or forgotten your password?"
|
5502 |
msgstr ""
|
5503 |
|
5504 |
-
#: src/methods/updraftvault.php:
|
5505 |
msgid "Go here for help"
|
5506 |
msgstr ""
|
5507 |
|
5508 |
-
#: src/methods/updraftvault.php:
|
5509 |
msgid "This site is <strong>connected</strong> to UpdraftPlus Vault."
|
5510 |
msgstr ""
|
5511 |
|
5512 |
-
#: src/methods/updraftvault.php:
|
5513 |
msgid "Well done - there's nothing more needed to set up."
|
5514 |
msgstr ""
|
5515 |
|
5516 |
-
#: src/methods/updraftvault.php:
|
5517 |
msgid "Vault owner"
|
5518 |
msgstr ""
|
5519 |
|
5520 |
-
#: src/methods/updraftvault.php:
|
5521 |
msgid "Quota:"
|
5522 |
msgstr ""
|
5523 |
|
5524 |
-
#: src/methods/updraftvault.php:
|
5525 |
msgid "You are <strong>not connected</strong> to UpdraftPlus Vault."
|
5526 |
msgstr ""
|
5527 |
|
5528 |
-
#: src/methods/updraftvault.php:
|
5529 |
msgid "%s Error: you have insufficient storage quota available (%s) to upload this archive (%s)."
|
5530 |
msgstr ""
|
5531 |
|
5532 |
-
#: src/methods/updraftvault.php:
|
5533 |
msgid "You can get more quota here"
|
5534 |
msgstr ""
|
5535 |
|
5536 |
-
#: src/methods/updraftvault.php:
|
5537 |
msgid "Current use:"
|
5538 |
msgstr ""
|
5539 |
|
5540 |
-
#: src/methods/updraftvault.php:
|
5541 |
msgid "Get more quota"
|
5542 |
msgstr ""
|
5543 |
|
5544 |
-
#: src/methods/updraftvault.php:
|
5545 |
msgid "Refresh current status"
|
5546 |
msgstr ""
|
5547 |
|
5548 |
-
#: src/methods/updraftvault.php:
|
5549 |
msgid "You need to supply both an email address and a password"
|
5550 |
msgstr ""
|
5551 |
|
5552 |
-
#: src/methods/updraftvault.php:
|
5553 |
msgid "You do not currently have any UpdraftPlus Vault quota"
|
5554 |
msgstr ""
|
5555 |
|
5556 |
-
#: src/methods/updraftvault.php:
|
5557 |
msgid "UpdraftPlus.Com returned a response, but we could not understand it"
|
5558 |
msgstr ""
|
5559 |
|
5560 |
-
#: src/methods/updraftvault.php:
|
5561 |
msgid "Your email address was valid, but your password was not recognised by UpdraftPlus.Com."
|
5562 |
msgstr ""
|
5563 |
|
5564 |
-
#: src/methods/updraftvault.php:
|
5565 |
msgid "If you have forgotten your password, then go here to change your password on updraftplus.com."
|
5566 |
msgstr ""
|
5567 |
|
5568 |
-
#: src/methods/updraftvault.php:
|
5569 |
msgid "You entered an email address that was not recognised by UpdraftPlus.Com"
|
5570 |
msgstr ""
|
5571 |
|
5572 |
-
#: src/methods/updraftvault.php:
|
5573 |
msgid "Your email address and password were not recognised by UpdraftPlus.Com"
|
5574 |
msgstr ""
|
5575 |
|
@@ -5593,282 +5597,290 @@ msgstr ""
|
|
5593 |
msgid "(This applies to all WordPress backup plugins unless they have been explicitly coded for multisite compatibility)."
|
5594 |
msgstr ""
|
5595 |
|
5596 |
-
#: src/restorer.php:
|
|
|
|
|
|
|
|
|
5597 |
msgid "Skipping restoration of WordPress core when importing a single site into a multisite installation. If you had anything necessary in your WordPress directory then you will need to re-add it manually from the zip file."
|
5598 |
msgstr ""
|
5599 |
|
5600 |
-
#: src/restorer.php:
|
5601 |
msgid "Looking for %s archive: file name: %s"
|
5602 |
msgstr ""
|
5603 |
|
5604 |
-
#: src/restorer.php:
|
5605 |
msgid "Skipping: this archive was already restored."
|
5606 |
msgstr ""
|
5607 |
|
5608 |
-
#: src/restorer.php:
|
5609 |
msgid "Archive is expected to be size:"
|
5610 |
msgstr ""
|
5611 |
|
5612 |
-
#: src/restorer.php:
|
5613 |
msgid "file is size:"
|
5614 |
msgstr ""
|
5615 |
|
5616 |
-
#: src/restorer.php:
|
5617 |
msgid "The backup records do not contain information about the proper size of this file."
|
5618 |
msgstr ""
|
5619 |
|
5620 |
-
#: src/restorer.php:
|
5621 |
msgid "Could not find one of the files for restoration"
|
5622 |
msgstr ""
|
5623 |
|
5624 |
-
#: src/restorer.php:
|
|
|
|
|
|
|
|
|
5625 |
msgid "Error message"
|
5626 |
msgstr ""
|
5627 |
|
5628 |
-
#: src/restorer.php:
|
5629 |
msgid "UpdraftPlus is not able to directly restore this kind of entity. It must be restored manually."
|
5630 |
msgstr ""
|
5631 |
|
5632 |
-
#: src/restorer.php:
|
5633 |
msgid "Backup file not available."
|
5634 |
msgstr ""
|
5635 |
|
5636 |
-
#: src/restorer.php:
|
5637 |
msgid "Copying this entity failed."
|
5638 |
msgstr ""
|
5639 |
|
5640 |
-
#: src/restorer.php:
|
5641 |
msgid "Unpacking backup..."
|
5642 |
msgstr ""
|
5643 |
|
5644 |
-
#: src/restorer.php:
|
5645 |
msgid "Decrypting database (can take a while)..."
|
5646 |
msgstr ""
|
5647 |
|
5648 |
-
#: src/restorer.php:
|
5649 |
msgid "Database successfully decrypted."
|
5650 |
msgstr ""
|
5651 |
|
5652 |
-
#: src/restorer.php:
|
5653 |
msgid "Moving old data out of the way..."
|
5654 |
msgstr ""
|
5655 |
|
5656 |
-
#: src/restorer.php:
|
5657 |
msgid "Moving unpacked backup into place..."
|
5658 |
msgstr ""
|
5659 |
|
5660 |
-
#: src/restorer.php:
|
5661 |
msgid "Restoring the database (on a large site this can take a long time - if it times out (which can happen if your web hosting company has configured your hosting to limit resources) then you should use a different method, such as phpMyAdmin)..."
|
5662 |
msgstr ""
|
5663 |
|
5664 |
-
#: src/restorer.php:
|
5665 |
msgid "Cleaning up rubbish..."
|
5666 |
msgstr ""
|
5667 |
|
5668 |
-
#: src/restorer.php:
|
5669 |
msgid "Could not move old files out of the way."
|
5670 |
msgstr ""
|
5671 |
|
5672 |
-
#: src/restorer.php:
|
5673 |
msgid "You should check the file ownerships and permissions in your WordPress installation"
|
5674 |
msgstr ""
|
5675 |
|
5676 |
-
#: src/restorer.php:
|
5677 |
msgid "Could not delete old directory."
|
5678 |
msgstr ""
|
5679 |
|
5680 |
-
#: src/restorer.php:
|
5681 |
msgid "Could not move new files into place. Check your wp-content/upgrade folder."
|
5682 |
msgstr ""
|
5683 |
|
5684 |
-
#: src/restorer.php:
|
5685 |
msgid "Could not move the files into place. Check your file permissions."
|
5686 |
msgstr ""
|
5687 |
|
5688 |
-
#: src/restorer.php:
|
5689 |
msgid "Failed to delete working directory after restoring."
|
5690 |
msgstr ""
|
5691 |
|
5692 |
-
#: src/restorer.php:
|
5693 |
msgid "Failed to unpack the archive"
|
5694 |
msgstr ""
|
5695 |
|
5696 |
-
#: src/restorer.php:
|
5697 |
msgid "Failed to read the manifest file from backup."
|
5698 |
msgstr ""
|
5699 |
|
5700 |
-
#: src/restorer.php:
|
5701 |
msgid "Failed to find a manifest file in the backup."
|
5702 |
msgstr ""
|
5703 |
|
5704 |
-
#: src/restorer.php:
|
5705 |
msgid "Failed to read from the working directory."
|
5706 |
msgstr ""
|
5707 |
|
5708 |
-
#: src/restorer.php:
|
5709 |
msgid "Failed to create a temporary directory"
|
5710 |
msgstr ""
|
5711 |
|
5712 |
-
#: src/restorer.php:
|
5713 |
msgid "Failed to write out the decrypted database to the filesystem"
|
5714 |
msgstr ""
|
5715 |
|
5716 |
-
#: src/restorer.php:
|
5717 |
msgid "The directory does not exist"
|
5718 |
msgstr ""
|
5719 |
|
5720 |
-
#: src/restorer.php:
|
5721 |
msgid "wp-config.php from backup: will restore as wp-config-backup.php"
|
5722 |
msgstr ""
|
5723 |
|
5724 |
-
#: src/restorer.php:
|
5725 |
msgid "wp-config.php from backup: restoring (as per user's request)"
|
5726 |
msgstr ""
|
5727 |
|
5728 |
-
#: src/restorer.php:
|
5729 |
msgid "UpdraftPlus needed to create a %s in your content directory, but failed - please check your file permissions and enable the access (%s)"
|
5730 |
msgstr ""
|
5731 |
|
5732 |
-
#: src/restorer.php:
|
5733 |
msgid "file"
|
5734 |
msgstr ""
|
5735 |
|
5736 |
-
#: src/restorer.php:
|
5737 |
msgid "Existing unremoved folders from a previous restore exist (please use the \"Delete Old Directories\" button to delete them before trying again): %s"
|
5738 |
msgstr ""
|
5739 |
|
5740 |
-
#: src/restorer.php:
|
5741 |
msgid "This version of UpdraftPlus does not know how to handle this type of foreign backup"
|
5742 |
msgstr ""
|
5743 |
|
5744 |
-
#: src/restorer.php:
|
5745 |
msgid "Deferring..."
|
5746 |
msgstr ""
|
5747 |
|
5748 |
-
#: src/restorer.php:
|
5749 |
msgid "The WordPress content folder (wp-content) was not found in this zip file."
|
5750 |
msgstr ""
|
5751 |
|
5752 |
-
#: src/restorer.php:
|
5753 |
msgid "Files found:"
|
5754 |
msgstr ""
|
5755 |
|
5756 |
-
#: src/restorer.php:
|
5757 |
msgid "Please supply the requested information, and then continue."
|
5758 |
msgstr ""
|
5759 |
|
5760 |
-
#: src/restorer.php:
|
5761 |
msgid "Warning: PHP safe_mode is active on your server. Timeouts are much more likely. If these happen, then you will need to manually restore the file via phpMyAdmin or another method."
|
5762 |
msgstr ""
|
5763 |
|
5764 |
-
#: src/restorer.php:
|
5765 |
msgid "Failed to find database file"
|
5766 |
msgstr ""
|
5767 |
|
5768 |
-
#: src/restorer.php:
|
5769 |
msgid "Failed to open database file"
|
5770 |
msgstr ""
|
5771 |
|
5772 |
-
#: src/restorer.php:
|
5773 |
msgid "Your database user does not have permission to drop tables"
|
5774 |
msgstr ""
|
5775 |
|
5776 |
-
#: src/restorer.php:
|
5777 |
msgid "Your database user does not have permission to create tables. We will attempt to restore by simply emptying the tables; this should work as long as a) you are restoring from a WordPress version with the same database structure, and b) Your imported database does not contain any tables which are not already present on the importing site."
|
5778 |
msgstr ""
|
5779 |
|
5780 |
-
#: src/restorer.php:
|
5781 |
msgid "Your database user does not have permission to drop tables. We will attempt to restore by simply emptying the tables; this should work as long as you are restoring from a WordPress version with the same database structure (%s)"
|
5782 |
msgstr ""
|
5783 |
|
5784 |
-
#: src/restorer.php:
|
5785 |
msgid "Backup of: %s"
|
5786 |
msgstr ""
|
5787 |
|
5788 |
-
#: src/restorer.php:
|
5789 |
msgid "Backup created by:"
|
5790 |
msgstr ""
|
5791 |
|
5792 |
-
#: src/restorer.php:
|
5793 |
msgid "Site home:"
|
5794 |
msgstr ""
|
5795 |
|
5796 |
-
#: src/restorer.php:
|
5797 |
msgid "Content URL:"
|
5798 |
msgstr ""
|
5799 |
|
5800 |
-
#: src/restorer.php:
|
5801 |
msgid "Uploads URL:"
|
5802 |
msgstr ""
|
5803 |
|
5804 |
-
#: src/restorer.php:
|
5805 |
msgid "Skipped tables:"
|
5806 |
msgstr ""
|
5807 |
|
5808 |
-
#: src/restorer.php:
|
5809 |
msgid "Split line to avoid exceeding maximum packet size"
|
5810 |
msgstr ""
|
5811 |
|
5812 |
-
#: src/restorer.php:
|
5813 |
msgid "An error occurred on the first %s command - aborting run"
|
5814 |
msgstr ""
|
5815 |
|
5816 |
-
#: src/restorer.php:
|
5817 |
msgid "Requested table engine (%s) is not present - changing to MyISAM."
|
5818 |
msgstr ""
|
5819 |
|
5820 |
-
#: src/restorer.php:
|
5821 |
msgid "Requested table character set (%s) is not present - changing to %s."
|
5822 |
msgstr ""
|
5823 |
|
5824 |
-
#: src/restorer.php:
|
5825 |
msgid "Requested table collation (%1$s) is not present - changing to %2$s."
|
5826 |
msgid_plural "Requested table collations (%1$s) are not present - changing to %2$s."
|
5827 |
msgstr[0] ""
|
5828 |
msgstr[1] ""
|
5829 |
|
5830 |
-
#: src/restorer.php:
|
5831 |
msgid "Processing table (%s)"
|
5832 |
msgstr ""
|
5833 |
|
5834 |
-
#: src/restorer.php:
|
5835 |
msgid "will restore as:"
|
5836 |
msgstr ""
|
5837 |
|
5838 |
-
#: src/restorer.php:
|
5839 |
msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
|
5840 |
msgstr ""
|
5841 |
|
5842 |
-
#: src/restorer.php:
|
5843 |
msgid "Requested character set (%s) is not present - changing to %s."
|
5844 |
msgstr ""
|
5845 |
|
5846 |
-
#: src/restorer.php:
|
5847 |
msgid "An SQL line that is larger than the maximum packet size and cannot be split was found; this line will not be processed, but will be dropped: %s"
|
5848 |
msgstr ""
|
5849 |
|
5850 |
-
#: src/restorer.php:
|
5851 |
msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
|
5852 |
msgid "An error (%s) occurred:"
|
5853 |
msgstr ""
|
5854 |
|
5855 |
-
#: src/restorer.php:
|
5856 |
msgid "This problem is caused by trying to restore a database on a very old MySQL version that is incompatible with the source database."
|
5857 |
msgstr ""
|
5858 |
|
5859 |
-
#: src/restorer.php:
|
5860 |
msgid "This database needs to be deployed on MySQL version %s or later."
|
5861 |
msgstr ""
|
5862 |
|
5863 |
-
#: src/restorer.php:
|
5864 |
msgid "To use this backup, your database server needs to support the %s character set."
|
5865 |
msgstr ""
|
5866 |
|
5867 |
-
#: src/restorer.php:
|
5868 |
msgid "Too many database errors have occurred - aborting"
|
5869 |
msgstr ""
|
5870 |
|
5871 |
-
#: src/restorer.php:
|
5872 |
msgid "Table prefix has changed: changing %s table field(s) accordingly:"
|
5873 |
msgstr ""
|
5874 |
|
@@ -7053,127 +7065,127 @@ msgstr ""
|
|
7053 |
msgid "Your web server's version of PHP is too old (%s) - UpdraftPlus expects at least %s. You can try it, but don't be surprised if it does not work. To fix this problem, contact your web hosting company"
|
7054 |
msgstr ""
|
7055 |
|
7056 |
-
#: src/udaddons/options.php:
|
7057 |
msgid "You are presently <strong>connected</strong> to an UpdraftPlus.Com account."
|
7058 |
msgstr ""
|
7059 |
|
7060 |
-
#: src/udaddons/options.php:
|
7061 |
msgid "If you bought new add-ons, then follow this link to refresh your connection"
|
7062 |
msgstr ""
|
7063 |
|
7064 |
-
#: src/udaddons/options.php:
|
7065 |
msgid "Note that after you have claimed your add-ons, you can remove your password (but not the email address) from the settings below, without affecting this site's access to updates."
|
7066 |
msgstr ""
|
7067 |
|
7068 |
-
#: src/udaddons/options.php:
|
7069 |
msgid "You are presently <strong>not connected</strong> to an UpdraftPlus.Com account."
|
7070 |
msgstr ""
|
7071 |
|
7072 |
-
#: src/udaddons/options.php:
|
7073 |
msgid "Errors occurred when trying to connect to UpdraftPlus.Com:"
|
7074 |
msgstr ""
|
7075 |
|
7076 |
-
#: src/udaddons/options.php:
|
7077 |
msgid "Please wait whilst we make the claim..."
|
7078 |
msgstr ""
|
7079 |
|
7080 |
-
#: src/udaddons/options.php:
|
7081 |
msgid "Claim not granted - perhaps you have already used this purchase somewhere else, or your paid period for downloading from updraftplus.com has expired?"
|
7082 |
msgstr ""
|
7083 |
|
7084 |
-
#: src/udaddons/options.php:
|
7085 |
msgid "Claim not granted - your account login details were wrong"
|
7086 |
msgstr ""
|
7087 |
|
7088 |
-
#: src/udaddons/options.php:
|
7089 |
msgid "An unknown response was received. Response was:"
|
7090 |
msgstr ""
|
7091 |
|
7092 |
-
#: src/udaddons/options.php:
|
7093 |
msgid "The claim and installation was successful. You can now use your purchase!"
|
7094 |
msgstr ""
|
7095 |
|
7096 |
-
#: src/udaddons/options.php:
|
7097 |
msgid "UpdraftPlus Addons"
|
7098 |
msgstr ""
|
7099 |
|
7100 |
-
#: src/udaddons/options.php:
|
7101 |
msgid "An update containing your addons is available for UpdraftPlus - please follow this link to get it."
|
7102 |
msgstr ""
|
7103 |
|
7104 |
-
#: src/udaddons/options.php:
|
7105 |
msgid "An error occurred when trying to retrieve your add-ons."
|
7106 |
msgstr ""
|
7107 |
|
7108 |
-
#: src/udaddons/options.php:
|
7109 |
msgid "UpdraftPlus Support"
|
7110 |
msgstr ""
|
7111 |
|
7112 |
-
#: src/udaddons/options.php:
|
7113 |
msgid "Need to get support?"
|
7114 |
msgstr ""
|
7115 |
|
7116 |
-
#: src/udaddons/options.php:
|
7117 |
msgid "Go here"
|
7118 |
msgstr ""
|
7119 |
|
7120 |
-
#: src/udaddons/options.php:
|
7121 |
msgid "You've got it"
|
7122 |
msgstr ""
|
7123 |
|
7124 |
-
#: src/udaddons/options.php:
|
7125 |
msgid "Your version: %s"
|
7126 |
msgstr ""
|
7127 |
|
7128 |
-
#: src/udaddons/options.php:
|
7129 |
msgid "latest"
|
7130 |
msgstr ""
|
7131 |
|
7132 |
-
#: src/udaddons/options.php:
|
7133 |
msgid "(apparently a pre-release or withdrawn release)"
|
7134 |
msgstr ""
|
7135 |
|
7136 |
-
#: src/udaddons/options.php:
|
7137 |
msgid "Available for this site (via your all-addons purchase)"
|
7138 |
msgstr ""
|
7139 |
|
7140 |
-
#: src/udaddons/options.php:
|
7141 |
msgid "please follow this link to update the plugin in order to get it"
|
7142 |
msgstr ""
|
7143 |
|
7144 |
-
#: src/udaddons/options.php:
|
7145 |
msgid "Assigned to this site"
|
7146 |
msgstr ""
|
7147 |
|
7148 |
-
#: src/udaddons/options.php:
|
7149 |
msgid "please follow this link to update the plugin in order to activate it"
|
7150 |
msgstr ""
|
7151 |
|
7152 |
-
#: src/udaddons/options.php:
|
7153 |
msgid "Available to claim on this site"
|
7154 |
msgstr ""
|
7155 |
|
7156 |
-
#: src/udaddons/options.php:
|
7157 |
msgid "activate it on this site"
|
7158 |
msgstr ""
|
7159 |
|
7160 |
-
#: src/udaddons/options.php:
|
7161 |
msgid "You have an inactive purchase"
|
7162 |
msgstr ""
|
7163 |
|
7164 |
-
#: src/udaddons/options.php:
|
7165 |
msgid "Get it from the UpdraftPlus.Com Store"
|
7166 |
msgstr ""
|
7167 |
|
7168 |
-
#: src/udaddons/options.php:
|
7169 |
msgid "(or connect using the form on this page if you have already purchased it)"
|
7170 |
msgstr ""
|
7171 |
|
7172 |
-
#: src/udaddons/options.php:
|
7173 |
msgid "Buy It"
|
7174 |
msgstr ""
|
7175 |
|
7176 |
-
#: src/udaddons/options.php:
|
7177 |
msgid "Manage Addons"
|
7178 |
msgstr ""
|
7179 |
|
1 |
+
# Copyright (C) 2019 updraftplus
|
2 |
# This file is distributed under the same license as the updraftplus package.
|
3 |
msgid ""
|
4 |
msgstr ""
|
7 |
"MIME-Version: 1.0\n"
|
8 |
"Content-Type: text/plain; charset=UTF-8\n"
|
9 |
"Content-Transfer-Encoding: 8bit\n"
|
10 |
+
"PO-Revision-Date: 2019-MO-DA HO:MI+ZONE\n"
|
11 |
"Last-Translator: Team Updraft <mail@example.com>\n"
|
12 |
"Language-Team: Team Updraft <mail@example.com>\n"
|
13 |
"X-Poedit-Basepath: ..\n"
|
49 |
msgid "(logs can be found in the UpdraftPlus settings page as normal)..."
|
50 |
msgstr ""
|
51 |
|
52 |
+
#: src/addons/autobackup.php:344, src/addons/autobackup.php:439, src/admin.php:3078, src/admin.php:3084, src/templates/wp-admin/settings/take-backup.php:69
|
53 |
msgid "Last log message"
|
54 |
msgstr ""
|
55 |
|
97 |
msgid "now proceeding with the updates..."
|
98 |
msgstr ""
|
99 |
|
100 |
+
#: src/addons/autobackup.php:1072, src/admin.php:978, src/includes/updraftplus-notices.php:178
|
101 |
msgid "Be safe with an automatic backup"
|
102 |
msgstr ""
|
103 |
|
117 |
msgid "%s Error"
|
118 |
msgstr ""
|
119 |
|
120 |
+
#: src/addons/azure.php:268, src/class-updraftplus.php:3662, src/methods/googledrive.php:1120, src/methods/s3.php:343
|
121 |
msgid "File not found"
|
122 |
msgstr ""
|
123 |
|
129 |
msgid "Upload failed"
|
130 |
msgstr ""
|
131 |
|
132 |
+
#: src/addons/azure.php:443, src/addons/backblaze.php:528, src/addons/googlecloud.php:843, src/methods/s3.php:1219
|
133 |
msgid "Delete failed:"
|
134 |
msgstr ""
|
135 |
|
145 |
msgid "You must add the following as the authorised redirect URI in your Azure console (under \"API Settings\") when asked"
|
146 |
msgstr ""
|
147 |
|
148 |
+
#: src/addons/azure.php:601, src/addons/migrator.php:948, src/admin.php:1155, src/admin.php:1159, src/admin.php:1163, src/admin.php:1167, src/admin.php:1171, src/admin.php:1180, src/admin.php:3928, src/admin.php:3935, src/admin.php:3937, src/admin.php:5222, src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440, src/methods/ftp.php:330, src/methods/openstack-base.php:571, src/methods/s3.php:864, src/methods/s3.php:868, src/methods/updraftvault.php:311, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/udaddons/updraftplus-addons.php:259
|
149 |
msgid "Warning"
|
150 |
msgstr ""
|
151 |
|
152 |
+
#: src/addons/azure.php:601, src/admin.php:3928, src/methods/updraftvault.php:311
|
153 |
msgid "Your web server's PHP installation does not included a <strong>required</strong> (for %s) module (%s). Please contact your web hosting provider's support and ask for them to enable it."
|
154 |
msgstr ""
|
155 |
|
157 |
msgid "Create Azure credentials in your Azure developer console."
|
158 |
msgstr ""
|
159 |
|
160 |
+
#: src/addons/azure.php:605, src/addons/onedrive.php:1149, src/includes/class-remote-send.php:314
|
161 |
msgid "For longer help, including screenshots, follow this link."
|
162 |
msgstr ""
|
163 |
|
201 |
msgid "You can enter the path of any %s virtual folder you wish to use here."
|
202 |
msgstr ""
|
203 |
|
204 |
+
#: src/addons/azure.php:638, src/addons/google-enhanced.php:76, src/addons/onedrive.php:1189
|
205 |
msgid "If you leave it blank, then the backup will be placed in the root of your %s"
|
206 |
msgstr ""
|
207 |
|
225 |
msgid "Azure Government"
|
226 |
msgstr ""
|
227 |
|
228 |
+
#: src/addons/azure.php:647
|
229 |
+
msgid "Azure China"
|
230 |
+
msgstr ""
|
231 |
+
|
232 |
+
#: src/addons/backblaze.php:205, src/admin.php:2140
|
233 |
msgid "Error: unexpected file read fail"
|
234 |
msgstr ""
|
235 |
|
236 |
+
#: src/addons/backblaze.php:225, src/addons/cloudfiles-enhanced.php:117, src/addons/migrator.php:893, src/addons/migrator.php:1190, src/addons/migrator.php:1271, src/addons/migrator.php:1320, src/addons/migrator.php:1558, src/addons/s3-enhanced.php:164, src/addons/s3-enhanced.php:169, src/addons/s3-enhanced.php:171, src/addons/sftp.php:911, src/addons/webdav.php:203, src/admin.php:91, src/admin.php:817, src/includes/class-remote-send.php:266, src/includes/class-remote-send.php:293, src/includes/class-remote-send.php:299, src/includes/class-remote-send.php:362, src/includes/class-remote-send.php:421, src/includes/class-remote-send.php:448, src/includes/class-remote-send.php:471, src/includes/class-remote-send.php:481, src/includes/class-remote-send.php:486, src/methods/remotesend.php:74, src/methods/remotesend.php:242, src/methods/remotesend.php:298, src/methods/updraftvault.php:532, src/restorer.php:328, src/restorer.php:356, src/restorer.php:2040
|
237 |
msgid "Error:"
|
238 |
msgstr ""
|
239 |
|
249 |
msgid "Invalid bucket name"
|
250 |
msgstr ""
|
251 |
|
252 |
+
#: src/addons/backblaze.php:497, src/methods/s3.php:1188
|
253 |
msgid "Failure: We could not successfully access or create such a bucket. Please check your access credentials, and if those are correct then try another bucket name (as another %s user may already have taken your name)."
|
254 |
msgstr ""
|
255 |
|
449 |
msgid "Folder"
|
450 |
msgstr ""
|
451 |
|
452 |
+
#: src/addons/google-enhanced.php:76, src/addons/onedrive.php:1189
|
453 |
msgid "Enter the path of the %s folder you wish to use here."
|
454 |
msgstr ""
|
455 |
|
456 |
+
#: src/addons/google-enhanced.php:76, src/addons/googlecloud.php:1039, src/addons/onedrive.php:1189
|
457 |
msgid "e.g. %s"
|
458 |
msgstr ""
|
459 |
|
565 |
msgid "Frankfurt"
|
566 |
msgstr ""
|
567 |
|
568 |
+
#: src/addons/googlecloud.php:118, src/addons/googlecloud.php:793, src/methods/s3.php:1162
|
569 |
msgid "Failure: No bucket details were given."
|
570 |
msgstr ""
|
571 |
|
601 |
msgid "No refresh token was received from Google. This often means that you entered your client secret wrongly, or that you have not yet re-authenticated (below) since correcting it. Re-check it, then follow the link to authenticate again. Finally, if that does not work, then use expert mode to wipe all your settings, create a new Google client ID/secret, and start again."
|
602 |
msgstr ""
|
603 |
|
604 |
+
#: src/addons/googlecloud.php:438, src/addons/migrator.php:590, src/admin.php:2323, src/admin.php:2344, src/admin.php:2352, src/class-updraftplus.php:997, src/class-updraftplus.php:1003, src/class-updraftplus.php:3868, src/class-updraftplus.php:3870, src/class-updraftplus.php:4035, src/class-updraftplus.php:4042, src/class-updraftplus.php:4113, src/methods/googledrive.php:403, src/methods/s3.php:343
|
605 |
msgid "Error: %s"
|
606 |
msgstr ""
|
607 |
|
625 |
msgid "But no %s settings were found. Please complete all fields in %s settings and save the settings."
|
626 |
msgstr ""
|
627 |
|
628 |
+
#: src/addons/googlecloud.php:698, src/addons/onedrive.php:908, src/addons/onedrive.php:919, src/methods/googledrive.php:442, src/methods/googledrive.php:455
|
629 |
msgid "However, subsequent access attempts failed:"
|
630 |
msgstr ""
|
631 |
|
632 |
+
#: src/addons/googlecloud.php:718, src/addons/googlecloud.php:839, src/addons/onedrive.php:940, src/addons/sftp.php:591, src/addons/sftp.php:595, src/addons/wp-cli.php:516, src/methods/addon-base-v2.php:327, src/methods/cloudfiles.php:575, src/methods/googledrive.php:475, src/methods/openstack-base.php:530, src/methods/s3.php:1202, src/methods/stream-base.php:372
|
633 |
msgid "Success"
|
634 |
msgstr ""
|
635 |
|
636 |
+
#: src/addons/googlecloud.php:718, src/addons/onedrive.php:940, src/methods/googledrive.php:475
|
637 |
msgid "you have authenticated your %s account."
|
638 |
msgstr ""
|
639 |
|
645 |
msgid "You must save and authenticate before you can test your settings."
|
646 |
msgstr ""
|
647 |
|
648 |
+
#: src/addons/googlecloud.php:776, src/addons/googlecloud.php:810, src/addons/googlecloud.php:816, src/addons/sftp.php:553, src/admin.php:3482, src/admin.php:3518, src/admin.php:3528, src/methods/addon-base-v2.php:313, src/methods/stream-base.php:356
|
649 |
msgid "Failed"
|
650 |
msgstr ""
|
651 |
|
652 |
+
#: src/addons/googlecloud.php:833, src/addons/googlecloud.php:847, src/methods/s3.php:1200, src/methods/s3.php:1212
|
653 |
msgid "Failure"
|
654 |
msgstr ""
|
655 |
|
656 |
+
#: src/addons/googlecloud.php:833, src/addons/googlecloud.php:847, src/methods/s3.php:1200, src/methods/s3.php:1212
|
657 |
msgid "We successfully accessed the bucket, but the attempt to create a file in it failed."
|
658 |
msgstr ""
|
659 |
|
660 |
+
#: src/addons/googlecloud.php:839, src/methods/s3.php:1202
|
661 |
msgid "We accessed the bucket, and were able to create files within it."
|
662 |
msgstr ""
|
663 |
|
693 |
msgid "You must add the following as the authorized redirect URI (under \"More Options\") when asked"
|
694 |
msgstr ""
|
695 |
|
696 |
+
#: src/addons/googlecloud.php:1019, src/addons/onedrive.php:1178, src/methods/googledrive.php:1233
|
697 |
msgid "Client ID"
|
698 |
msgstr ""
|
699 |
|
701 |
msgid "If Google later shows you the message \"invalid_client\", then you did not enter a valid client ID here."
|
702 |
msgstr ""
|
703 |
|
704 |
+
#: src/addons/googlecloud.php:1027, src/addons/onedrive.php:1182, src/methods/googledrive.php:1237
|
705 |
msgid "Client Secret"
|
706 |
msgstr ""
|
707 |
|
721 |
msgid "Otherwise, you can leave it blank."
|
722 |
msgstr ""
|
723 |
|
724 |
+
#: src/addons/googlecloud.php:1034, src/addons/migrator.php:493, src/addons/migrator.php:496, src/addons/migrator.php:499, src/admin.php:1159, src/admin.php:2631, src/backup.php:3465, src/class-updraftplus.php:4134, src/class-updraftplus.php:4134, src/updraftplus.php:157
|
725 |
msgid "Go here for more information."
|
726 |
msgstr ""
|
727 |
|
765 |
msgid "<strong>(You appear to be already authenticated,</strong> though you can authenticate again to refresh your access if you've had a problem)."
|
766 |
msgstr ""
|
767 |
|
768 |
+
#: src/addons/googlecloud.php:1108, src/addons/onedrive.php:1249, src/methods/dropbox.php:668, src/methods/googledrive.php:1289
|
769 |
msgid "Account holder's name: %s."
|
770 |
msgstr ""
|
771 |
|
777 |
msgid "Supported backup plugins: %s"
|
778 |
msgstr ""
|
779 |
|
780 |
+
#: src/addons/importer.php:276, src/admin.php:4089, src/includes/class-backup-history.php:499
|
781 |
msgid "Backup created by: %s."
|
782 |
msgstr ""
|
783 |
|
789 |
msgid "Increments exist at: %s"
|
790 |
msgstr ""
|
791 |
|
792 |
+
#: src/addons/incremental.php:288
|
793 |
msgid "Files changed since the last backup will be added as a new increment in that backup set."
|
794 |
msgstr ""
|
795 |
|
796 |
+
#: src/addons/incremental.php:288
|
797 |
msgid "N.B. No backup of your database will be taken in an incremental backup; if you want a database backup as well, then take that separately."
|
798 |
msgstr ""
|
799 |
|
800 |
+
#: src/addons/incremental.php:290
|
801 |
msgid "No incremental backup of your files is possible, as no suitable existing backup was found to add increments to."
|
802 |
msgstr ""
|
803 |
|
804 |
+
#: src/addons/incremental.php:335, src/addons/reporting.php:261, src/admin.php:4021
|
805 |
msgid "None"
|
806 |
msgstr ""
|
807 |
|
808 |
+
#: src/addons/incremental.php:336, src/updraftplus.php:99
|
809 |
msgid "Every hour"
|
810 |
msgstr ""
|
811 |
|
812 |
+
#: src/addons/incremental.php:337, src/addons/incremental.php:338, src/addons/incremental.php:339, src/addons/incremental.php:340, src/admin.php:3736, src/admin.php:3737, src/admin.php:3738, src/updraftplus.php:100, src/updraftplus.php:101, src/updraftplus.php:102
|
813 |
msgid "Every %s hours"
|
814 |
msgstr ""
|
815 |
|
816 |
+
#: src/addons/incremental.php:341, src/admin.php:3739
|
817 |
msgid "Daily"
|
818 |
msgstr ""
|
819 |
|
820 |
+
#: src/addons/incremental.php:342, src/admin.php:3740
|
821 |
msgid "Weekly"
|
822 |
msgstr ""
|
823 |
|
824 |
+
#: src/addons/incremental.php:343, src/admin.php:3741
|
825 |
msgid "Fortnightly"
|
826 |
msgstr ""
|
827 |
|
828 |
+
#: src/addons/incremental.php:344, src/admin.php:3742
|
829 |
msgid "Monthly"
|
830 |
msgstr ""
|
831 |
|
832 |
+
#: src/addons/incremental.php:358
|
833 |
msgid "And then add an incremental backup"
|
834 |
msgstr ""
|
835 |
|
836 |
+
#: src/addons/incremental.php:370
|
837 |
msgid "Tell me more"
|
838 |
msgstr ""
|
839 |
|
857 |
msgid "Please make sure that you have made a note of the password!"
|
858 |
msgstr ""
|
859 |
|
860 |
+
#: src/addons/lockadmin.php:171, src/addons/moredatabase.php:241, src/addons/sftp.php:459, src/addons/webdav.php:193, src/admin.php:2986, src/methods/openstack2.php:164, src/methods/updraftvault.php:366, src/templates/wp-admin/settings/updraftcentral-connect.php:50
|
861 |
msgid "Password"
|
862 |
msgstr ""
|
863 |
|
949 |
msgid "After pressing this button, you will be given the option to choose which components you wish to migrate"
|
950 |
msgstr ""
|
951 |
|
952 |
+
#: src/addons/migrator.php:274, src/admin.php:663, src/admin.php:850, src/admin.php:4187
|
953 |
msgid "Restore"
|
954 |
msgstr ""
|
955 |
|
973 |
msgid "Replace with"
|
974 |
msgstr ""
|
975 |
|
976 |
+
#: src/addons/migrator.php:340, src/addons/moredatabase.php:89, src/addons/moredatabase.php:91, src/addons/moredatabase.php:93, src/addons/sftp.php:522, src/addons/sftp.php:526, src/addons/sftp.php:530, src/addons/webdav.php:253, src/admin.php:869, src/includes/class-remote-send.php:463, src/methods/addon-base-v2.php:305, src/methods/cloudfiles-new.php:184, src/methods/cloudfiles-new.php:189, src/methods/cloudfiles.php:519, src/methods/cloudfiles.php:524, src/methods/ftp.php:412, src/methods/ftp.php:416, src/methods/openstack2.php:180, src/methods/openstack2.php:185, src/methods/openstack2.php:190, src/methods/openstack2.php:195, src/methods/s3.php:1136, src/methods/s3.php:1140
|
977 |
msgid "Failure: No %s was given."
|
978 |
msgstr ""
|
979 |
|
981 |
msgid "search term"
|
982 |
msgstr ""
|
983 |
|
984 |
+
#: src/addons/migrator.php:343, src/addons/migrator.php:358, src/admin.php:2549, src/admin.php:2559, src/admin.php:2568, src/admin.php:2610, src/admin.php:3451
|
985 |
msgid "Return to UpdraftPlus Configuration"
|
986 |
msgstr ""
|
987 |
|
1183 |
msgid "Time taken (seconds):"
|
1184 |
msgstr ""
|
1185 |
|
1186 |
+
#: src/addons/migrator.php:1320, src/restorer.php:2924
|
1187 |
msgid "the database query being run was:"
|
1188 |
msgstr ""
|
1189 |
|
1247 |
msgid "Enter your chosen name"
|
1248 |
msgstr ""
|
1249 |
|
1250 |
+
#: src/addons/migrator.php:1761, src/addons/sftp.php:467, src/admin.php:868, src/admin.php:5070, src/templates/wp-admin/settings/temporary-clone.php:63
|
1251 |
msgid "Key"
|
1252 |
msgstr ""
|
1253 |
|
1307 |
msgid "database connection attempt failed"
|
1308 |
msgstr ""
|
1309 |
|
1310 |
+
#: src/addons/moredatabase.php:112, src/backup.php:1636
|
1311 |
msgid "Connection failed: check your access details, that the database server is up, and that the network connection is not firewalled."
|
1312 |
msgstr ""
|
1313 |
|
1319 |
msgid "%s total table(s) found; %s with the indicated prefix."
|
1320 |
msgstr ""
|
1321 |
|
1322 |
+
#: src/addons/moredatabase.php:144, src/admin.php:1650
|
1323 |
msgid "Messages:"
|
1324 |
msgstr ""
|
1325 |
|
1363 |
msgid "Username"
|
1364 |
msgstr ""
|
1365 |
|
1366 |
+
#: src/addons/moredatabase.php:242, src/addons/reporting.php:276, src/addons/wp-cli.php:432, src/admin.php:344, src/admin.php:3996, src/admin.php:4049, src/includes/class-remote-send.php:331, src/includes/class-wpadmin-commands.php:157, src/includes/class-wpadmin-commands.php:521, src/restorer.php:461, src/templates/wp-admin/settings/delete-and-restore-modals.php:74, src/templates/wp-admin/settings/delete-and-restore-modals.php:75, src/templates/wp-admin/settings/take-backup.php:34
|
1367 |
msgid "Database"
|
1368 |
msgstr ""
|
1369 |
|
1420 |
msgid "Download"
|
1421 |
msgstr ""
|
1422 |
|
1423 |
+
#: src/addons/morefiles.php:129, src/addons/morefiles.php:130, src/addons/reporting.php:200
|
1424 |
msgid "Contains:"
|
1425 |
msgstr ""
|
1426 |
|
1516 |
msgid "Exclude these:"
|
1517 |
msgstr ""
|
1518 |
|
1519 |
+
#: src/addons/morefiles.php:476, src/admin.php:3850
|
1520 |
msgid "If entering multiple files/directories, then separate them with commas. For entities at the top level, you can use a * at the start or end of the entry as a wildcard."
|
1521 |
msgstr ""
|
1522 |
|
1600 |
msgid "An error response was received; HTTP code:"
|
1601 |
msgstr ""
|
1602 |
|
1603 |
+
#: src/addons/onedrive.php:693, src/addons/onedrive.php:717, src/includes/updraftplus-login.php:56, src/methods/updraftvault.php:685, src/udaddons/updraftplus-addons.php:952, src/udaddons/updraftplus-addons.php:966
|
1604 |
msgid "This most likely means that you share a webserver with a hacked website that has been used in previous attacks."
|
1605 |
msgstr ""
|
1606 |
|
1612 |
msgid "Your IP address:"
|
1613 |
msgstr ""
|
1614 |
|
1615 |
+
#: src/addons/onedrive.php:717, src/includes/updraftplus-login.php:56, src/methods/updraftvault.php:685, src/udaddons/updraftplus-addons.php:966
|
1616 |
msgid "UpdraftPlus.com has responded with 'Access Denied'."
|
1617 |
msgstr ""
|
1618 |
|
1619 |
+
#: src/addons/onedrive.php:717, src/includes/updraftplus-login.php:56, src/methods/updraftvault.php:685, src/udaddons/updraftplus-addons.php:966
|
1620 |
msgid "It appears that your web server's IP Address (%s) is blocked."
|
1621 |
msgstr ""
|
1622 |
|
1623 |
+
#: src/addons/onedrive.php:717, src/includes/updraftplus-login.php:56, src/methods/updraftvault.php:685
|
1624 |
msgid "To remove the block, please go here."
|
1625 |
msgstr ""
|
1626 |
|
1632 |
msgid "Account is not authorized (%s)."
|
1633 |
msgstr ""
|
1634 |
|
1635 |
+
#: src/addons/onedrive.php:865, src/class-updraftplus.php:532, src/methods/dropbox.php:240, src/methods/dropbox.php:753, src/methods/dropbox.php:775, src/methods/dropbox.php:790, src/methods/dropbox.php:803, src/methods/dropbox.php:946
|
1636 |
msgid "%s error: %s"
|
1637 |
msgstr ""
|
1638 |
|
1639 |
+
#: src/addons/onedrive.php:865
|
1640 |
msgid "Authentication"
|
1641 |
msgstr ""
|
1642 |
|
1643 |
+
#: src/addons/onedrive.php:894, src/methods/dropbox.php:844, src/methods/dropbox.php:853, src/methods/googledrive.php:439
|
1644 |
msgid "Your %s quota usage: %s %% used, %s available"
|
1645 |
msgstr ""
|
1646 |
|
1647 |
+
#: src/addons/onedrive.php:902, src/methods/dropbox.php:821
|
1648 |
msgid "Your %s account name: %s"
|
1649 |
msgstr ""
|
1650 |
|
1651 |
+
#: src/addons/onedrive.php:940, src/addons/onedrive.php:1178, src/addons/onedrive.php:1182
|
1652 |
msgid "OneDrive"
|
1653 |
msgstr ""
|
1654 |
|
1655 |
+
#: src/addons/onedrive.php:1038, src/includes/Dropbox2/OAuth/Consumer/ConsumerAbstract.php:118
|
1656 |
msgid "The %s authentication could not go ahead, because something else on your site is breaking it. Try disabling your other plugins and switching to a default theme. (Specifically, you are looking for the component that sends output (most likely PHP warnings/errors) before the page begins. Turning off any debugging settings may also help)."
|
1657 |
msgstr ""
|
1658 |
|
1659 |
+
#: src/addons/onedrive.php:1097, src/addons/onedrive.php:1099
|
1660 |
msgid "authorization failed:"
|
1661 |
msgstr ""
|
1662 |
|
1663 |
+
#: src/addons/onedrive.php:1126
|
1664 |
msgid "This site uses a URL which is either non-HTTPS, or is localhost or 127.0.0.1 URL. As such, you must use the main %s %s App to authenticate with your account."
|
1665 |
msgstr ""
|
1666 |
|
1667 |
+
#: src/addons/onedrive.php:1134
|
1668 |
msgid "You must add the following as the authorized redirect URI in your OneDrive console (under \"API Settings\") when asked"
|
1669 |
msgstr ""
|
1670 |
|
1671 |
+
#: src/addons/onedrive.php:1142
|
1672 |
msgid "Create OneDrive credentials in your OneDrive developer console."
|
1673 |
msgstr ""
|
1674 |
|
1675 |
+
#: src/addons/onedrive.php:1158, src/methods/dropbox.php:586, src/methods/googledrive.php:1214
|
1676 |
msgid "Please read %s for use of our %s authorization app (none of your backup data is sent to us)."
|
1677 |
msgstr ""
|
1678 |
|
1679 |
+
#: src/addons/onedrive.php:1158, src/methods/dropbox.php:586, src/methods/googledrive.php:1214
|
1680 |
msgid "this privacy policy"
|
1681 |
msgstr ""
|
1682 |
|
1683 |
+
#: src/addons/onedrive.php:1179
|
1684 |
msgid "If OneDrive later shows you the message \"unauthorized_client\", then you did not enter a valid client ID here."
|
1685 |
msgstr ""
|
1686 |
|
1687 |
+
#: src/addons/onedrive.php:1187, src/restorer.php:1191
|
1688 |
msgid "folder"
|
1689 |
msgstr ""
|
1690 |
|
1691 |
+
#: src/addons/onedrive.php:1189
|
1692 |
msgid "N.B. %s is not case-sensitive."
|
1693 |
msgstr ""
|
1694 |
|
1695 |
+
#: src/addons/onedrive.php:1194
|
1696 |
msgid "Account type"
|
1697 |
msgstr ""
|
1698 |
|
1699 |
+
#: src/addons/onedrive.php:1197
|
1700 |
msgid "OneDrive International"
|
1701 |
msgstr ""
|
1702 |
|
1703 |
+
#: src/addons/onedrive.php:1198
|
1704 |
msgid "OneDrive Germany"
|
1705 |
msgstr ""
|
1706 |
|
1707 |
+
#: src/addons/onedrive.php:1206, src/methods/dropbox.php:611
|
1708 |
msgid "Authenticate with %s"
|
1709 |
msgstr ""
|
1710 |
|
1711 |
+
#: src/addons/onedrive.php:1213, src/methods/dropbox.php:615
|
1712 |
msgid "(You appear to be already authenticated)."
|
1713 |
msgstr ""
|
1714 |
|
1716 |
msgid "Your label for this backup (optional)"
|
1717 |
msgstr ""
|
1718 |
|
1719 |
+
#: src/addons/reporting.php:86, src/addons/reporting.php:197, src/backup.php:1168, src/class-updraftplus.php:3951
|
1720 |
msgid "Backup of:"
|
1721 |
msgstr ""
|
1722 |
|
1724 |
msgid "%d errors, %d warnings"
|
1725 |
msgstr ""
|
1726 |
|
1727 |
+
#: src/addons/reporting.php:182
|
1728 |
msgid "%d hours, %d minutes, %d seconds"
|
1729 |
msgstr ""
|
1730 |
|
1731 |
+
#: src/addons/reporting.php:187
|
1732 |
msgid "Backup Report"
|
1733 |
msgstr ""
|
1734 |
|
1735 |
+
#: src/addons/reporting.php:188
|
1736 |
msgid "Backup made by %s"
|
1737 |
msgstr ""
|
1738 |
|
1739 |
+
#: src/addons/reporting.php:198, src/backup.php:1171
|
1740 |
msgid "Latest status:"
|
1741 |
msgstr ""
|
1742 |
|
1743 |
+
#: src/addons/reporting.php:199
|
1744 |
msgid "Backup began:"
|
1745 |
msgstr ""
|
1746 |
|
1747 |
+
#: src/addons/reporting.php:211
|
1748 |
msgid "Errors / warnings:"
|
1749 |
msgstr ""
|
1750 |
|
1751 |
+
#: src/addons/reporting.php:214
|
1752 |
msgid "Errors"
|
1753 |
msgstr ""
|
1754 |
|
1755 |
+
#: src/addons/reporting.php:229
|
1756 |
msgid "Warnings"
|
1757 |
msgstr ""
|
1758 |
|
1759 |
+
#: src/addons/reporting.php:234
|
1760 |
msgid "Note that warning messages are advisory - the backup process does not stop for them. Instead, they provide information that you might find useful, or that may indicate the source of a problem if the backup did not succeed."
|
1761 |
msgstr ""
|
1762 |
|
1763 |
+
#: src/addons/reporting.php:238
|
1764 |
msgid "Time taken:"
|
1765 |
msgstr ""
|
1766 |
|
1767 |
+
#: src/addons/reporting.php:239, src/admin.php:4009
|
1768 |
msgid "Uploaded to:"
|
1769 |
msgstr ""
|
1770 |
|
1771 |
+
#: src/addons/reporting.php:281, src/backup.php:1121
|
1772 |
msgid "The log file has been attached to this email."
|
1773 |
msgstr ""
|
1774 |
|
1775 |
+
#: src/addons/reporting.php:284
|
1776 |
msgid "Debugging information"
|
1777 |
msgstr ""
|
1778 |
|
1779 |
+
#: src/addons/reporting.php:408
|
1780 |
msgid "Use the \"Reporting\" section to configure the email addresses to be used."
|
1781 |
msgstr ""
|
1782 |
|
1783 |
+
#: src/addons/reporting.php:456
|
1784 |
msgid "Email reports"
|
1785 |
msgstr ""
|
1786 |
|
1787 |
+
#: src/addons/reporting.php:482
|
1788 |
msgid "Enter addresses here to have a report sent to them when a backup job finishes."
|
1789 |
msgstr ""
|
1790 |
|
1791 |
+
#: src/addons/reporting.php:497
|
1792 |
msgid "Add another address..."
|
1793 |
msgstr ""
|
1794 |
|
1795 |
+
#: src/addons/reporting.php:511
|
1796 |
msgid "Log all messages to syslog"
|
1797 |
msgstr ""
|
1798 |
|
1799 |
+
#: src/addons/reporting.php:512
|
1800 |
msgid "Log all messages to syslog (only server admins are likely to want this)"
|
1801 |
msgstr ""
|
1802 |
|
1803 |
+
#: src/addons/reporting.php:539, src/admin.php:798
|
1804 |
msgid "To send to more than one address, separate each address with a comma."
|
1805 |
msgstr ""
|
1806 |
|
1807 |
+
#: src/addons/reporting.php:541, src/admin.php:792
|
1808 |
msgid "Send a report only when there are warnings/errors"
|
1809 |
msgstr ""
|
1810 |
|
1811 |
+
#: src/addons/reporting.php:543, src/addons/reporting.php:543, src/addons/reporting.php:545, src/methods/email.php:100
|
1812 |
msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive."
|
1813 |
msgstr ""
|
1814 |
|
1815 |
+
#: src/addons/reporting.php:543, src/admin.php:793
|
1816 |
msgid "When the Email storage method is enabled, also send the backup"
|
1817 |
msgstr ""
|
1818 |
|
1819 |
+
#: src/addons/reporting.php:545
|
1820 |
msgid "Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive as a result UpdraftPlus will only send Database backups to email."
|
1821 |
msgstr ""
|
1822 |
|
1823 |
+
#: src/addons/reporting.php:545
|
1824 |
msgid "Use this option to only send database backups when sending to email, and skip other components."
|
1825 |
msgstr ""
|
1826 |
|
1827 |
+
#: src/addons/reporting.php:545, src/admin.php:796
|
1828 |
msgid "Only email the database backup"
|
1829 |
msgstr ""
|
1830 |
|
1868 |
msgid "AWS authentication failed"
|
1869 |
msgstr ""
|
1870 |
|
1871 |
+
#: src/addons/s3-enhanced.php:188, src/methods/openstack2.php:150, src/methods/s3.php:1182
|
1872 |
msgid "Region"
|
1873 |
msgstr ""
|
1874 |
|
1876 |
msgid "Failure: We could not successfully access or create such a bucket. Please check your access credentials, and if those are correct then try another bucket name (as another AWS user may already have taken your name)."
|
1877 |
msgstr ""
|
1878 |
|
1879 |
+
#: src/addons/s3-enhanced.php:215, src/methods/s3.php:1190
|
1880 |
msgid "The error reported by %s was:"
|
1881 |
msgstr ""
|
1882 |
|
2068 |
msgid "Fingerprints don't match."
|
2069 |
msgstr ""
|
2070 |
|
2071 |
+
#: src/addons/sftp.php:141, src/addons/sftp.php:153, src/methods/cloudfiles.php:147, src/methods/cloudfiles.php:189, src/methods/openstack-base.php:81, src/methods/openstack-base.php:315, src/methods/s3.php:378, src/methods/s3.php:390, src/methods/s3.php:391
|
2072 |
msgid "%s Error: Failed to upload"
|
2073 |
msgstr ""
|
2074 |
|
2193 |
msgid "Path"
|
2194 |
msgstr ""
|
2195 |
|
2196 |
+
#: src/addons/wp-cli.php:91, src/addons/wp-cli.php:510, src/addons/wp-cli.php:632, src/addons/wp-cli.php:717, src/addons/wp-cli.php:740
|
2197 |
msgid "The given value for the '%s' option is not valid"
|
2198 |
msgstr ""
|
2199 |
|
2237 |
msgid "Latest full backup found; identifier:"
|
2238 |
msgstr ""
|
2239 |
|
2240 |
+
#: src/addons/wp-cli.php:430, src/admin.php:4043, src/admin.php:4091
|
2241 |
msgid "unknown source"
|
2242 |
msgstr ""
|
2243 |
|
2244 |
+
#: src/addons/wp-cli.php:432, src/admin.php:4049
|
2245 |
msgid "Database (created by %s)"
|
2246 |
msgstr ""
|
2247 |
|
2248 |
+
#: src/addons/wp-cli.php:438, src/admin.php:4051
|
2249 |
msgid "External database"
|
2250 |
msgstr ""
|
2251 |
|
2252 |
+
#: src/addons/wp-cli.php:450, src/admin.php:4095
|
2253 |
msgid "Files and database WordPress backup (created by %s)"
|
2254 |
msgstr ""
|
2255 |
|
2256 |
+
#: src/addons/wp-cli.php:450, src/admin.php:4095
|
2257 |
msgid "Files backup (created by %s)"
|
2258 |
msgstr ""
|
2259 |
|
2260 |
+
#: src/addons/wp-cli.php:519, src/admin.php:818, src/class-updraftplus.php:1298, src/class-updraftplus.php:1342, src/includes/class-filesystem-functions.php:429, src/includes/class-storage-methods-interface.php:324, src/methods/addon-base-v2.php:93, src/methods/addon-base-v2.php:98, src/methods/addon-base-v2.php:205, src/methods/addon-base-v2.php:225, src/methods/stream-base.php:219, src/restorer.php:3074, src/restorer.php:3099, src/restorer.php:3180, src/updraftplus.php:157
|
2261 |
msgid "Error"
|
2262 |
msgstr ""
|
2263 |
|
2273 |
msgid "No such backup set exists"
|
2274 |
msgstr ""
|
2275 |
|
2276 |
+
#: src/addons/wp-cli.php:648, src/admin.php:4504
|
2277 |
msgid "UpdraftPlus Restoration: Progress"
|
2278 |
msgstr ""
|
2279 |
|
2280 |
+
#: src/addons/wp-cli.php:662, src/admin.php:4507
|
2281 |
msgid "Follow this link to download the log file for this restoration (needed for any support requests)."
|
2282 |
msgstr ""
|
2283 |
|
2284 |
+
#: src/addons/wp-cli.php:663
|
2285 |
msgid "Run this command to see the log file for this restoration (needed for any support requests)."
|
2286 |
msgstr ""
|
2287 |
|
2288 |
+
#: src/addons/wp-cli.php:737, src/addons/wp-cli.php:741
|
2289 |
msgid "This is not an incremental backup"
|
2290 |
msgstr ""
|
2291 |
|
2292 |
+
#: src/addons/wp-cli.php:788
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2293 |
msgid "You have given the %1$s option. The %1$s is working with \"%2$s\" addon. Get the \"%2$s\" addon: %3$s"
|
2294 |
msgstr ""
|
2295 |
|
2296 |
+
#: src/addons/wp-cli.php:870, src/includes/class-filesystem-functions.php:95
|
2297 |
msgid "Why am I seeing this?"
|
2298 |
msgstr ""
|
2299 |
|
2309 |
msgid "At the same time as the files backup"
|
2310 |
msgstr ""
|
2311 |
|
2312 |
+
#: src/admin.php:334, src/admin.php:5039, src/templates/wp-admin/settings/take-backup.php:24
|
2313 |
msgid "Files"
|
2314 |
msgstr ""
|
2315 |
|
2316 |
+
#: src/admin.php:334, src/backup.php:1077
|
2317 |
msgid "Files and database"
|
2318 |
msgstr ""
|
2319 |
|
2337 |
msgid "Backup"
|
2338 |
msgstr ""
|
2339 |
|
2340 |
+
#: src/admin.php:671, src/admin.php:2834
|
2341 |
msgid "Migrate / Clone"
|
2342 |
msgstr ""
|
2343 |
|
2344 |
+
#: src/admin.php:679, src/admin.php:1092, src/admin.php:2835
|
2345 |
msgid "Settings"
|
2346 |
msgstr ""
|
2347 |
|
2348 |
+
#: src/admin.php:687, src/admin.php:2836
|
2349 |
msgid "Advanced Tools"
|
2350 |
msgstr ""
|
2351 |
|
2417 |
msgid "Error: the server sent us a response which we did not understand."
|
2418 |
msgstr ""
|
2419 |
|
2420 |
+
#: src/admin.php:816, src/restorer.php:175
|
2421 |
+
msgid "Error data:"
|
2422 |
+
msgstr ""
|
2423 |
+
|
2424 |
+
#: src/admin.php:819, src/admin.php:1926, src/includes/deprecated-actions.php:29, src/templates/wp-admin/settings/downloading-and-restoring.php:21, src/templates/wp-admin/settings/tab-backups.php:21, src/templates/wp-admin/settings/tab-backups.php:44
|
2425 |
msgid "Existing Backups"
|
2426 |
msgstr ""
|
2427 |
|
2428 |
+
#: src/admin.php:820, src/admin.php:2218
|
2429 |
msgid "File ready."
|
2430 |
msgstr ""
|
2431 |
|
2432 |
+
#: src/admin.php:821, src/admin.php:2549, src/admin.php:2559, src/admin.php:2568, src/admin.php:2610, src/admin.php:3451, src/templates/wp-admin/settings/existing-backups-table.php:19, src/templates/wp-admin/settings/existing-backups-table.php:137
|
2433 |
msgid "Actions"
|
2434 |
msgstr ""
|
2435 |
|
2457 |
msgid "PHP information"
|
2458 |
msgstr ""
|
2459 |
|
2460 |
+
#: src/admin.php:828, src/admin.php:3165
|
2461 |
msgid "Delete Old Directories"
|
2462 |
msgstr ""
|
2463 |
|
2517 |
msgid "Backup Now"
|
2518 |
msgstr ""
|
2519 |
|
2520 |
+
#: src/admin.php:844, src/admin.php:3479, src/admin.php:3513, src/admin.php:4286, src/includes/class-remote-send.php:553, src/templates/wp-admin/settings/existing-backups-table.php:153, src/templates/wp-admin/settings/file-backup-exclude.php:11
|
2521 |
msgid "Delete"
|
2522 |
msgstr ""
|
2523 |
|
2525 |
msgid "Create"
|
2526 |
msgstr ""
|
2527 |
|
2528 |
+
#: src/admin.php:846, src/admin.php:4266
|
2529 |
msgid "Upload"
|
2530 |
msgstr ""
|
2531 |
|
2537 |
msgid "Close"
|
2538 |
msgstr ""
|
2539 |
|
2540 |
+
#: src/admin.php:851, src/admin.php:3717
|
2541 |
msgid "Download log file"
|
2542 |
msgstr ""
|
2543 |
|
2549 |
msgid "Saving..."
|
2550 |
msgstr ""
|
2551 |
|
2552 |
+
#: src/admin.php:855, src/admin.php:2917, src/methods/updraftvault.php:324, src/methods/updraftvault.php:367, src/templates/wp-admin/settings/temporary-clone.php:82
|
2553 |
msgid "Connect"
|
2554 |
msgstr ""
|
2555 |
|
2557 |
msgid "Connecting..."
|
2558 |
msgstr ""
|
2559 |
|
2560 |
+
#: src/admin.php:857, src/methods/updraftvault.php:397, src/methods/updraftvault.php:455
|
2561 |
msgid "Disconnect"
|
2562 |
msgstr ""
|
2563 |
|
2589 |
msgid "your PHP install lacks the openssl module; as a result, this can take minutes; if nothing has happened by then, then you should either try a smaller key size, or ask your web hosting company how to enable this PHP module on your setup."
|
2590 |
msgstr ""
|
2591 |
|
2592 |
+
#: src/admin.php:865, src/includes/class-remote-send.php:523
|
2593 |
msgid "Send to site:"
|
2594 |
msgstr ""
|
2595 |
|
2621 |
msgid "Testing connection..."
|
2622 |
msgstr ""
|
2623 |
|
2624 |
+
#: src/admin.php:874, src/includes/class-remote-send.php:358, src/includes/class-remote-send.php:529
|
2625 |
msgid "Send"
|
2626 |
msgstr ""
|
2627 |
|
2713 |
msgid "Complete"
|
2714 |
msgstr ""
|
2715 |
|
2716 |
+
#: src/admin.php:905, src/admin.php:3224
|
2717 |
msgid "The backup has finished running"
|
2718 |
msgstr ""
|
2719 |
|
2897 |
msgid "Add-Ons / Pro Support"
|
2898 |
msgstr ""
|
2899 |
|
2900 |
+
#: src/admin.php:1141
|
2901 |
msgid "An error occurred when fetching storage module options: "
|
2902 |
msgstr ""
|
2903 |
|
2904 |
+
#: src/admin.php:1146, src/includes/class-commands.php:466, src/templates/wp-admin/settings/take-backup.php:13
|
2905 |
msgid "The 'Backup Now' button is disabled as your backup directory is not writable (go to the 'Settings' tab and find the relevant option)."
|
2906 |
msgstr ""
|
2907 |
|
2908 |
+
#: src/admin.php:1151
|
2909 |
msgid "Welcome to UpdraftPlus!"
|
2910 |
msgstr ""
|
2911 |
|
2912 |
+
#: src/admin.php:1151
|
2913 |
msgid "To make a backup, just press the Backup Now button."
|
2914 |
msgstr ""
|
2915 |
|
2916 |
+
#: src/admin.php:1151
|
2917 |
msgid "To change any of the default settings of what is backed up, to configure scheduled backups, to send your backups to remote storage (recommended), and more, go to the settings tab."
|
2918 |
msgstr ""
|
2919 |
|
2920 |
+
#: src/admin.php:1155, src/class-updraftplus.php:848
|
2921 |
msgid "The amount of time allowed for WordPress plugins to run is very low (%s seconds) - you should increase it to avoid backup failures due to time-outs (consult your web hosting company for more help - it is the max_execution_time PHP setting; the recommended value is %s seconds or more)"
|
2922 |
msgstr ""
|
2923 |
|
2924 |
+
#: src/admin.php:1159
|
2925 |
msgid "The scheduler is disabled in your WordPress install, via the DISABLE_WP_CRON setting. No backups can run (even "Backup Now") unless either you have set up a facility to call the scheduler manually, or until it is enabled."
|
2926 |
msgstr ""
|
2927 |
|
2928 |
+
#: src/admin.php:1163
|
2929 |
msgid "You have less than %s of free disk space on the disk which UpdraftPlus is configured to use to create backups. UpdraftPlus could well run out of space. Contact your the operator of your server (e.g. your web hosting company) to resolve this issue."
|
2930 |
msgstr ""
|
2931 |
|
2932 |
+
#: src/admin.php:1167
|
2933 |
msgid "UpdraftPlus does not officially support versions of WordPress before %s. It may work for you, but if it does not, then please be aware that no support is available until you upgrade WordPress."
|
2934 |
msgstr ""
|
2935 |
|
2936 |
+
#: src/admin.php:1171
|
2937 |
msgid "Your website is hosted using the %s web server."
|
2938 |
msgstr ""
|
2939 |
|
2940 |
+
#: src/admin.php:1171
|
2941 |
msgid "Please consult this FAQ if you have problems backing up."
|
2942 |
msgstr ""
|
2943 |
|
2944 |
+
#: src/admin.php:1175
|
2945 |
msgid "Notice"
|
2946 |
msgstr ""
|
2947 |
|
2948 |
+
#: src/admin.php:1175
|
2949 |
msgid "UpdraftPlus's debug mode is on. You may see debugging notices on this page not just from UpdraftPlus, but from any other plugin installed. Please try to make sure that the notice you are seeing is from UpdraftPlus before you raise a support request."
|
2950 |
msgstr ""
|
2951 |
|
2952 |
+
#: src/admin.php:1180
|
2953 |
msgid "WordPress has a number (%d) of scheduled tasks which are overdue. Unless this is a development site, this probably means that the scheduler in your WordPress install is not working."
|
2954 |
msgstr ""
|
2955 |
|
2956 |
+
#: src/admin.php:1180
|
2957 |
msgid "Read this page for a guide to possible causes and how to fix it."
|
2958 |
msgstr ""
|
2959 |
|
2960 |
+
#: src/admin.php:1200, src/admin.php:1221, src/admin.php:1240, src/class-updraftplus.php:584, src/class-updraftplus.php:619, src/class-updraftplus.php:624, src/class-updraftplus.php:629
|
2961 |
msgid "UpdraftPlus notice:"
|
2962 |
msgstr ""
|
2963 |
|
2964 |
+
#: src/admin.php:1200
|
2965 |
msgid "%s has been chosen for remote storage, but you are not currently connected."
|
2966 |
msgstr ""
|
2967 |
|
2968 |
+
#: src/admin.php:1200
|
2969 |
msgid "Go to the remote storage settings in order to connect."
|
2970 |
msgstr ""
|
2971 |
|
2972 |
+
#: src/admin.php:1342, src/admin.php:1352
|
2973 |
msgid "Error: invalid path"
|
2974 |
msgstr ""
|
2975 |
|
2976 |
+
#: src/admin.php:1703, src/includes/class-wpadmin-commands.php:506
|
2977 |
msgid "Backup set not found"
|
2978 |
msgstr ""
|
2979 |
|
2980 |
+
#: src/admin.php:1789
|
2981 |
msgid "Did not know how to delete from this cloud service."
|
2982 |
msgstr ""
|
2983 |
|
2984 |
+
#: src/admin.php:1870
|
2985 |
msgid "Backup sets removed:"
|
2986 |
msgstr ""
|
2987 |
|
2988 |
+
#: src/admin.php:1871
|
2989 |
msgid "Local files deleted:"
|
2990 |
msgstr ""
|
2991 |
|
2992 |
+
#: src/admin.php:1872
|
2993 |
msgid "Remote files deleted:"
|
2994 |
msgstr ""
|
2995 |
|
2996 |
+
#: src/admin.php:1959
|
2997 |
msgid "Job deleted"
|
2998 |
msgstr ""
|
2999 |
|
3000 |
+
#: src/admin.php:1967
|
3001 |
msgid "Could not find that job - perhaps it has already finished?"
|
3002 |
msgstr ""
|
3003 |
|
3004 |
+
#: src/admin.php:2065, src/admin.php:2086, src/includes/class-commands.php:837
|
3005 |
msgid "Start backup"
|
3006 |
msgstr ""
|
3007 |
|
3008 |
+
#: src/admin.php:2065, src/includes/class-commands.php:837
|
3009 |
msgid "OK. You should soon see activity in the \"Last log message\" field below."
|
3010 |
msgstr ""
|
3011 |
|
3012 |
+
#: src/admin.php:2148, src/admin.php:2152, src/class-updraftplus.php:619
|
3013 |
msgid "The log file could not be read."
|
3014 |
msgstr ""
|
3015 |
|
3016 |
+
#: src/admin.php:2199
|
3017 |
msgid "Download failed"
|
3018 |
msgstr ""
|
3019 |
|
3020 |
+
#: src/admin.php:2229
|
3021 |
msgid "Download in progress"
|
3022 |
msgstr ""
|
3023 |
|
3024 |
+
#: src/admin.php:2232
|
3025 |
msgid "No local copy present."
|
3026 |
msgstr ""
|
3027 |
|
3028 |
+
#: src/admin.php:2286, src/backup.php:1392
|
3029 |
msgid "Backup directory (%s) is not writable, or does not exist."
|
3030 |
msgstr ""
|
3031 |
|
3032 |
+
#: src/admin.php:2286
|
3033 |
msgid "You will find more information about this in the Settings section."
|
3034 |
msgstr ""
|
3035 |
|
3036 |
+
#: src/admin.php:2323
|
3037 |
msgid "This file could not be uploaded"
|
3038 |
msgstr ""
|
3039 |
|
3040 |
+
#: src/admin.php:2338
|
3041 |
msgid "This backup was created by %s, and can be imported."
|
3042 |
msgstr ""
|
3043 |
|
3044 |
+
#: src/admin.php:2344
|
3045 |
msgid "Bad filename format - this does not look like a file created by UpdraftPlus"
|
3046 |
msgstr ""
|
3047 |
|
3048 |
+
#: src/admin.php:2352
|
3049 |
msgid "This looks like a file created by UpdraftPlus, but this install does not know about this type of object: %s. Perhaps you need to install an add-on?"
|
3050 |
msgstr ""
|
3051 |
|
3052 |
+
#: src/admin.php:2444
|
3053 |
msgid "Bad filename format - this does not look like an encrypted database file created by UpdraftPlus"
|
3054 |
msgstr ""
|
3055 |
|
3056 |
+
#: src/admin.php:2511, src/admin.php:2520
|
3057 |
msgid "Sufficient information about the in-progress restoration operation could not be found."
|
3058 |
msgstr ""
|
3059 |
|
3060 |
+
#: src/admin.php:2601
|
3061 |
msgid "Backup directory could not be created"
|
3062 |
msgstr ""
|
3063 |
|
3064 |
+
#: src/admin.php:2608
|
3065 |
msgid "Backup directory successfully created."
|
3066 |
msgstr ""
|
3067 |
|
3068 |
+
#: src/admin.php:2626, src/class-updraftplus.php:4046, src/restorer.php:2787
|
3069 |
msgid "Warning:"
|
3070 |
msgstr ""
|
3071 |
|
3072 |
+
#: src/admin.php:2626
|
3073 |
msgid "If you can still read these words after the page finishes loading, then there is a JavaScript or jQuery problem in the site."
|
3074 |
msgstr ""
|
3075 |
|
3076 |
+
#: src/admin.php:2629
|
3077 |
msgid "The UpdraftPlus directory in wp-content/plugins has white-space in it; WordPress does not like this. You should rename the directory to wp-content/plugins/updraftplus to fix this problem."
|
3078 |
msgstr ""
|
3079 |
|
3080 |
+
#: src/admin.php:2644
|
3081 |
msgid "OptimizePress 2.0 encodes its contents, so search/replace does not work."
|
3082 |
msgstr ""
|
3083 |
|
3084 |
+
#: src/admin.php:2644
|
3085 |
msgid "To fix this problem go here."
|
3086 |
msgstr ""
|
3087 |
|
3088 |
+
#: src/admin.php:2646
|
3089 |
msgid "For even more features and personal support, check out "
|
3090 |
msgstr ""
|
3091 |
|
3092 |
+
#: src/admin.php:2648
|
3093 |
msgid "Your backup has been restored."
|
3094 |
msgstr ""
|
3095 |
|
3096 |
+
#: src/admin.php:2673
|
3097 |
msgid "Your PHP memory limit (set by your web hosting company) is very low. UpdraftPlus attempted to raise it but was unsuccessful. This plugin may struggle with a memory limit of less than 64 Mb - especially if you have very large files uploaded (though on the other hand, many sites will be successful with a 32Mb limit - your experience may vary)."
|
3098 |
msgstr ""
|
3099 |
|
3100 |
+
#: src/admin.php:2673
|
3101 |
msgid "Current limit is:"
|
3102 |
msgstr ""
|
3103 |
|
3104 |
+
#: src/admin.php:2734
|
3105 |
msgid "Backup Contents And Schedule"
|
3106 |
msgstr ""
|
3107 |
|
3108 |
+
#: src/admin.php:2833
|
3109 |
msgid "Backup / Restore"
|
3110 |
msgstr ""
|
3111 |
|
3112 |
+
#: src/admin.php:2837
|
3113 |
msgid "Premium / Extensions"
|
3114 |
msgstr ""
|
3115 |
|
3116 |
+
#: src/admin.php:2874
|
3117 |
msgid "%s minutes, %s seconds"
|
3118 |
msgstr ""
|
3119 |
|
3120 |
+
#: src/admin.php:2876
|
3121 |
msgid "Unfinished restoration"
|
3122 |
msgstr ""
|
3123 |
|
3124 |
+
#: src/admin.php:2877
|
3125 |
msgid "You have an unfinished restoration operation, begun %s ago."
|
3126 |
msgstr ""
|
3127 |
|
3128 |
+
#: src/admin.php:2882
|
3129 |
msgid "Continue restoration"
|
3130 |
msgstr ""
|
3131 |
|
3132 |
+
#: src/admin.php:2883, src/templates/wp-admin/notices/horizontal-notice.php:16, src/templates/wp-admin/notices/horizontal-notice.php:18
|
3133 |
msgid "Dismiss"
|
3134 |
msgstr ""
|
3135 |
|
3136 |
+
#: src/admin.php:2904
|
3137 |
msgid "Not yet got an account (it's free)? Go get one!"
|
3138 |
msgstr ""
|
3139 |
|
3140 |
+
#: src/admin.php:2915
|
3141 |
msgid "Interested in knowing about your UpdraftPlus.Com password security? Read about it here."
|
3142 |
msgstr ""
|
3143 |
|
3144 |
+
#: src/admin.php:2927, src/includes/class-commands.php:905, src/includes/class-commands.php:953, src/templates/wp-admin/settings/temporary-clone.php:83, src/templates/wp-admin/settings/updraftcentral-connect.php:71
|
3145 |
msgid "Processing"
|
3146 |
msgstr ""
|
3147 |
|
3148 |
+
#: src/admin.php:2970
|
3149 |
msgid "Connect with your UpdraftPlus.Com account"
|
3150 |
msgstr ""
|
3151 |
|
3152 |
+
#: src/admin.php:2976, src/templates/wp-admin/settings/form-contents.php:255, src/templates/wp-admin/settings/updraftcentral-connect.php:44
|
3153 |
msgid "Email"
|
3154 |
msgstr ""
|
3155 |
|
3156 |
+
#: src/admin.php:2991
|
3157 |
msgid "Forgotten your details?"
|
3158 |
msgstr ""
|
3159 |
|
3160 |
+
#: src/admin.php:3003
|
3161 |
msgid "Ask WordPress to update UpdraftPlus automatically when an update is available"
|
3162 |
msgstr ""
|
3163 |
|
3164 |
+
#: src/admin.php:3025, src/templates/wp-admin/settings/updraftcentral-connect.php:56
|
3165 |
msgid "One Time Password (check your OTP app to get this password)"
|
3166 |
msgstr ""
|
3167 |
|
3168 |
+
#: src/admin.php:3095
|
3169 |
msgid "Latest UpdraftPlus.com news:"
|
3170 |
msgstr ""
|
3171 |
|
3172 |
+
#: src/admin.php:3122
|
3173 |
msgid "Download most recently modified log file"
|
3174 |
msgstr ""
|
3175 |
|
3176 |
+
#: src/admin.php:3159
|
3177 |
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old). You should press this button to delete them as soon as you have verified that the restoration worked."
|
3178 |
msgstr ""
|
3179 |
|
3180 |
+
#: src/admin.php:3224, src/admin.php:4296
|
3181 |
msgid "View Log"
|
3182 |
msgstr ""
|
3183 |
|
3184 |
+
#: src/admin.php:3263
|
3185 |
msgid "Backup begun"
|
3186 |
msgstr ""
|
3187 |
|
3188 |
+
#: src/admin.php:3268
|
3189 |
msgid "Creating file backup zips"
|
3190 |
msgstr ""
|
3191 |
|
3192 |
+
#: src/admin.php:3281
|
3193 |
msgid "Created file backup zips"
|
3194 |
msgstr ""
|
3195 |
|
3196 |
+
#: src/admin.php:3286
|
3197 |
msgid "Clone server being provisioned and booted (can take several minutes)"
|
3198 |
msgstr ""
|
3199 |
|
3200 |
+
#: src/admin.php:3290
|
3201 |
msgid "Uploading files to remote storage"
|
3202 |
msgstr ""
|
3203 |
|
3204 |
+
#: src/admin.php:3291
|
3205 |
msgid "Sending files to remote site"
|
3206 |
msgstr ""
|
3207 |
|
3208 |
+
#: src/admin.php:3298
|
3209 |
msgid "(%s%%, file %s of %s)"
|
3210 |
msgstr ""
|
3211 |
|
3212 |
+
#: src/admin.php:3303
|
3213 |
msgid "Pruning old backup sets"
|
3214 |
msgstr ""
|
3215 |
|
3216 |
+
#: src/admin.php:3307
|
3217 |
msgid "Waiting until scheduled time to retry because of errors"
|
3218 |
msgstr ""
|
3219 |
|
3220 |
+
#: src/admin.php:3312
|
3221 |
msgid "Backup finished"
|
3222 |
msgstr ""
|
3223 |
|
3224 |
+
#: src/admin.php:3325
|
3225 |
msgid "Created database backup"
|
3226 |
msgstr ""
|
3227 |
|
3228 |
+
#: src/admin.php:3336
|
3229 |
msgid "Creating database backup"
|
3230 |
msgstr ""
|
3231 |
|
3232 |
+
#: src/admin.php:3338
|
3233 |
msgid "table: %s"
|
3234 |
msgstr ""
|
3235 |
|
3236 |
+
#: src/admin.php:3351
|
3237 |
msgid "Encrypting database"
|
3238 |
msgstr ""
|
3239 |
|
3240 |
+
#: src/admin.php:3359
|
3241 |
msgid "Encrypted database"
|
3242 |
msgstr ""
|
3243 |
|
3244 |
+
#: src/admin.php:3361, src/central/bootstrap.php:444, src/central/bootstrap.php:451, src/methods/updraftvault.php:415, src/methods/updraftvault.php:449, src/methods/updraftvault.php:534
|
3245 |
msgid "Unknown"
|
3246 |
msgstr ""
|
3247 |
|
3248 |
+
#: src/admin.php:3378
|
3249 |
msgid "next resumption: %d (after %ss)"
|
3250 |
msgstr ""
|
3251 |
|
3252 |
+
#: src/admin.php:3379
|
3253 |
msgid "last activity: %ss ago"
|
3254 |
msgstr ""
|
3255 |
|
3256 |
+
#: src/admin.php:3399
|
3257 |
msgid "Job ID: %s"
|
3258 |
msgstr ""
|
3259 |
|
3260 |
+
#: src/admin.php:3413, src/admin.php:3703
|
3261 |
msgid "Warning: %s"
|
3262 |
msgstr ""
|
3263 |
|
3264 |
+
#: src/admin.php:3433
|
3265 |
msgid "show log"
|
3266 |
msgstr ""
|
3267 |
|
3268 |
+
#: src/admin.php:3434
|
3269 |
msgid "Note: the progress bar below is based on stages, NOT time. Do not stop the backup simply because it seems to have remained in the same place for a while - that is normal."
|
3270 |
msgstr ""
|
3271 |
|
3272 |
+
#: src/admin.php:3434
|
3273 |
msgid "stop"
|
3274 |
msgstr ""
|
3275 |
|
3276 |
+
#: src/admin.php:3444, src/admin.php:3444
|
3277 |
msgid "Remove old directories"
|
3278 |
msgstr ""
|
3279 |
|
3280 |
+
#: src/admin.php:3447
|
3281 |
msgid "Old directories successfully removed."
|
3282 |
msgstr ""
|
3283 |
|
3284 |
+
#: src/admin.php:3449
|
3285 |
msgid "Old directory removal failed for some reason. You may want to do this manually."
|
3286 |
msgstr ""
|
3287 |
|
3288 |
+
#: src/admin.php:3486, src/admin.php:3521, src/admin.php:3525, src/includes/class-remote-send.php:327, src/includes/class-storage-methods-interface.php:315, src/restorer.php:326, src/restorer.php:3078, src/restorer.php:3183
|
3289 |
msgid "OK"
|
3290 |
msgstr ""
|
3291 |
|
3292 |
+
#: src/admin.php:3570
|
3293 |
msgid "The request to the filesystem to create the directory failed."
|
3294 |
msgstr ""
|
3295 |
|
3296 |
+
#: src/admin.php:3584
|
3297 |
msgid "The folder was created, but we had to change its file permissions to 777 (world-writable) to be able to write to it. You should check with your hosting provider that this will not cause any problems"
|
3298 |
msgstr ""
|
3299 |
|
3300 |
+
#: src/admin.php:3589
|
3301 |
msgid "The folder exists, but your webserver does not have permission to write to it."
|
3302 |
msgstr ""
|
3303 |
|
3304 |
+
#: src/admin.php:3589
|
3305 |
msgid "You will need to consult with your web hosting provider to find out how to set permissions for a WordPress plugin to write to the directory."
|
3306 |
msgstr ""
|
3307 |
|
3308 |
+
#: src/admin.php:3691
|
3309 |
msgid "incremental backup; base backup: %s"
|
3310 |
msgstr ""
|
3311 |
|
3312 |
+
#: src/admin.php:3721
|
3313 |
msgid "No backup has been completed"
|
3314 |
msgstr ""
|
3315 |
|
3316 |
+
#: src/admin.php:3735
|
3317 |
msgctxt "i.e. Non-automatic"
|
3318 |
msgid "Manual"
|
3319 |
msgstr ""
|
3320 |
|
3321 |
+
#: src/admin.php:3748
|
3322 |
msgid "Backup directory specified is writable, which is good."
|
3323 |
msgstr ""
|
3324 |
|
3325 |
+
#: src/admin.php:3752
|
3326 |
msgid "Backup directory specified does <b>not</b> exist."
|
3327 |
msgstr ""
|
3328 |
|
3329 |
+
#: src/admin.php:3754
|
3330 |
msgid "Backup directory specified exists, but is <b>not</b> writable."
|
3331 |
msgstr ""
|
3332 |
|
3333 |
+
#: src/admin.php:3756
|
3334 |
msgid "Follow this link to attempt to create the directory and set the permissions"
|
3335 |
msgstr ""
|
3336 |
|
3337 |
+
#: src/admin.php:3756
|
3338 |
msgid "or, to reset this option"
|
3339 |
msgstr ""
|
3340 |
|
3341 |
+
#: src/admin.php:3756
|
3342 |
msgid "press here"
|
3343 |
msgstr ""
|
3344 |
|
3345 |
+
#: src/admin.php:3756
|
3346 |
msgid "If that is unsuccessful check the permissions on your server or change it to another directory that is writable by your web server process."
|
3347 |
msgstr ""
|
3348 |
|
3349 |
+
#: src/admin.php:3836
|
3350 |
msgid "Your wp-content directory server path: %s"
|
3351 |
msgstr ""
|
3352 |
|
3353 |
+
#: src/admin.php:3836
|
3354 |
msgid "Any other directories found inside wp-content"
|
3355 |
msgstr ""
|
3356 |
|
3357 |
+
#: src/admin.php:3847
|
3358 |
msgid "Exclude these from"
|
3359 |
msgstr ""
|
3360 |
|
3361 |
+
#: src/admin.php:3935
|
3362 |
msgid "Your web server's PHP/Curl installation does not support https access. Communications with %s will be unencrypted. Ask your web host to install Curl/SSL in order to gain the ability for encryption (via an add-on)."
|
3363 |
msgstr ""
|
3364 |
|
3365 |
+
#: src/admin.php:3937
|
3366 |
msgid "Your web server's PHP/Curl installation does not support https access. We cannot access %s without this support. Please contact your web hosting provider's support. %s <strong>requires</strong> Curl+https. Please do not file any support requests; there is no alternative."
|
3367 |
msgstr ""
|
3368 |
|
3369 |
+
#: src/admin.php:3940
|
3370 |
msgid "Good news: Your site's communications with %s can be encrypted. If you see any errors to do with encryption, then look in the 'Expert Settings' for more help."
|
3371 |
msgstr ""
|
3372 |
|
3373 |
+
#: src/admin.php:3978, src/templates/wp-admin/settings/backupnow-modal.php:60, src/templates/wp-admin/settings/existing-backups-table.php:71, src/templates/wp-admin/settings/existing-backups-table.php:74
|
3374 |
msgid "Only allow this backup to be deleted manually (i.e. keep it even if retention limits are hit)."
|
3375 |
msgstr ""
|
3376 |
|
3377 |
+
#: src/admin.php:4026
|
3378 |
msgid "Total backup size:"
|
3379 |
msgstr ""
|
3380 |
|
3381 |
+
#: src/admin.php:4092, src/includes/class-wpadmin-commands.php:162, src/restorer.php:2115
|
3382 |
msgid "Backup created by unknown source (%s) - cannot be restored."
|
3383 |
msgstr ""
|
3384 |
|
3385 |
+
#: src/admin.php:4121
|
3386 |
msgid "Press here to download or browse"
|
3387 |
msgstr ""
|
3388 |
|
3389 |
+
#: src/admin.php:4126
|
3390 |
msgid "(%d archive(s) in set)."
|
3391 |
msgstr ""
|
3392 |
|
3393 |
+
#: src/admin.php:4129
|
3394 |
msgid "You appear to be missing one or more archives from this multi-archive set."
|
3395 |
msgstr ""
|
3396 |
|
3397 |
+
#: src/admin.php:4157, src/admin.php:4159
|
3398 |
msgid "(Not finished)"
|
3399 |
msgstr ""
|
3400 |
|
3401 |
+
#: src/admin.php:4159
|
3402 |
msgid "If you are seeing more backups than you expect, then it is probably because the deletion of old backup sets does not happen until a fresh backup completes."
|
3403 |
msgstr ""
|
3404 |
|
3405 |
+
#: src/admin.php:4184
|
3406 |
msgid "(backup set imported from remote location)"
|
3407 |
msgstr ""
|
3408 |
|
3409 |
+
#: src/admin.php:4187
|
3410 |
msgid "After pressing this button, you will be given the option to choose which components you wish to restore"
|
3411 |
msgstr ""
|
3412 |
|
3413 |
+
#: src/admin.php:4266
|
3414 |
msgid "After pressing this button, you can select where to upload your backup from a list of your currently saved remote storage locations"
|
3415 |
msgstr ""
|
3416 |
|
3417 |
+
#: src/admin.php:4286
|
3418 |
msgid "Delete this backup set"
|
3419 |
msgstr ""
|
3420 |
|
3421 |
+
#: src/admin.php:4489
|
3422 |
msgid "This backup does not exist in the backup history - restoration aborted. Timestamp:"
|
3423 |
msgstr ""
|
3424 |
|
3425 |
+
#: src/admin.php:4490
|
3426 |
msgid "Backup does not exist in the backup history"
|
3427 |
msgstr ""
|
3428 |
|
3429 |
+
#: src/admin.php:4513
|
3430 |
msgid "ABORT: Could not find the information on which entities to restore."
|
3431 |
msgstr ""
|
3432 |
|
3433 |
+
#: src/admin.php:4513
|
3434 |
msgid "If making a request for support, please include this information:"
|
3435 |
msgstr ""
|
3436 |
|
3437 |
+
#: src/admin.php:4679
|
3438 |
msgid "Backup won't be sent to any remote storage - none has been saved in the %s"
|
3439 |
msgstr ""
|
3440 |
|
3441 |
+
#: src/admin.php:4679
|
3442 |
msgid "settings"
|
3443 |
msgstr ""
|
3444 |
|
3445 |
+
#: src/admin.php:4679
|
3446 |
msgid "Not got any remote storage?"
|
3447 |
msgstr ""
|
3448 |
|
3449 |
+
#: src/admin.php:4679
|
3450 |
msgid "Check out UpdraftPlus Vault."
|
3451 |
msgstr ""
|
3452 |
|
3453 |
+
#: src/admin.php:4681
|
3454 |
msgid "Send this backup to remote storage"
|
3455 |
msgstr ""
|
3456 |
|
3457 |
+
#: src/admin.php:4771
|
3458 |
msgid "UpdraftPlus seems to have been updated to version (%s), which is different to the version running when this settings page was loaded. Please reload the settings page before trying to save settings."
|
3459 |
msgstr ""
|
3460 |
|
3461 |
+
#: src/admin.php:4778, src/templates/wp-admin/settings/take-backup.php:51
|
3462 |
msgid "This button is disabled because your backup directory is not writable (see the settings)."
|
3463 |
msgstr ""
|
3464 |
|
3465 |
+
#: src/admin.php:4807
|
3466 |
msgid "Your settings have been saved."
|
3467 |
msgstr ""
|
3468 |
|
3469 |
+
#: src/admin.php:4812
|
3470 |
msgid "Your settings failed to save. Please refresh the settings page and try again"
|
3471 |
msgstr ""
|
3472 |
|
3473 |
+
#: src/admin.php:4860
|
3474 |
msgid "authentication error"
|
3475 |
msgstr ""
|
3476 |
|
3477 |
+
#: src/admin.php:4864
|
3478 |
msgid "Remote storage method and instance id are required for authentication."
|
3479 |
msgstr ""
|
3480 |
|
3481 |
+
#: src/admin.php:4931
|
3482 |
msgid "Your settings have been wiped."
|
3483 |
msgstr ""
|
3484 |
|
3485 |
+
#: src/admin.php:5032
|
3486 |
msgid "Known backups (raw)"
|
3487 |
msgstr ""
|
3488 |
|
3489 |
+
#: src/admin.php:5067
|
3490 |
msgid "Options (raw)"
|
3491 |
msgstr ""
|
3492 |
|
3493 |
+
#: src/admin.php:5070
|
3494 |
msgid "Value"
|
3495 |
msgstr ""
|
3496 |
|
3497 |
+
#: src/admin.php:5222
|
3498 |
msgid "The file %s has a \"byte order mark\" (BOM) at its beginning."
|
3499 |
msgid_plural "The files %s have a \"byte order mark\" (BOM) at their beginning."
|
3500 |
msgstr[0] ""
|
3501 |
msgstr[1] ""
|
3502 |
|
3503 |
+
#: src/admin.php:5222, src/methods/openstack2.php:144, src/restorer.php:178, src/restorer.php:180, src/templates/wp-admin/settings/downloading-and-restoring.php:27, src/templates/wp-admin/settings/tab-backups.php:27, src/templates/wp-admin/settings/updraftcentral-connect.php:14
|
3504 |
+
msgid "Follow this link for more information"
|
3505 |
+
msgstr ""
|
3506 |
+
|
3507 |
+
#: src/admin.php:5244, src/admin.php:5248, src/templates/wp-admin/advanced/site-info.php:45, src/templates/wp-admin/advanced/site-info.php:51, src/templates/wp-admin/advanced/site-info.php:58, src/templates/wp-admin/advanced/site-info.php:59
|
3508 |
msgid "%s version:"
|
3509 |
msgstr ""
|
3510 |
|
3511 |
+
#: src/admin.php:5252
|
3512 |
msgid "Clone region:"
|
3513 |
msgstr ""
|
3514 |
|
3515 |
+
#: src/admin.php:5257
|
3516 |
msgid "Forbid non-administrators to login to WordPress on your clone"
|
3517 |
msgstr ""
|
3518 |
|
3519 |
+
#: src/admin.php:5280
|
3520 |
msgid "(current version)"
|
3521 |
msgstr ""
|
3522 |
|
3523 |
+
#: src/admin.php:5300
|
3524 |
msgid "Your clone has started and will be available at the following URLs once it is ready."
|
3525 |
msgstr ""
|
3526 |
|
3527 |
+
#: src/admin.php:5301
|
3528 |
msgid "Front page:"
|
3529 |
msgstr ""
|
3530 |
|
3531 |
+
#: src/admin.php:5302
|
3532 |
msgid "Dashboard:"
|
3533 |
msgstr ""
|
3534 |
|
3535 |
+
#: src/admin.php:5304, src/admin.php:5307
|
3536 |
msgid "You can find your temporary clone information in your updraftplus.com account here."
|
3537 |
msgstr ""
|
3538 |
|
3539 |
+
#: src/admin.php:5306
|
3540 |
msgid "Your clone has started, network information is not yet available but will be displayed here and at your updraftplus.com account once it is ready."
|
3541 |
msgstr ""
|
3542 |
|
3543 |
+
#: src/backup.php:211
|
3544 |
msgid "%s - could not back this entity up; the corresponding directory does not exist (%s)"
|
3545 |
msgstr ""
|
3546 |
|
3547 |
+
#: src/backup.php:283
|
3548 |
msgid "Could not create %s zip. Consult the log file for more information."
|
3549 |
msgstr ""
|
3550 |
|
3551 |
+
#: src/backup.php:477, src/backup.php:2164, src/class-updraftplus.php:2125, src/class-updraftplus.php:2192, src/includes/class-storage-methods-interface.php:364, src/restorer.php:480
|
3552 |
msgid "A PHP exception (%s) has occurred: %s"
|
3553 |
msgstr ""
|
3554 |
|
3555 |
+
#: src/backup.php:483, src/backup.php:2173, src/class-updraftplus.php:2134, src/class-updraftplus.php:2199, src/includes/class-storage-methods-interface.php:373, src/restorer.php:494
|
3556 |
msgid "A PHP fatal error (%s) has occurred: %s"
|
3557 |
msgstr ""
|
3558 |
|
3559 |
+
#: src/backup.php:1070
|
3560 |
msgid "Full backup"
|
3561 |
msgstr ""
|
3562 |
|
3563 |
+
#: src/backup.php:1070
|
3564 |
msgid "Incremental"
|
3565 |
msgstr ""
|
3566 |
|
3567 |
+
#: src/backup.php:1075, src/class-updraftplus.php:2996
|
3568 |
msgid "The backup was aborted by the user"
|
3569 |
msgstr ""
|
3570 |
|
3571 |
+
#: src/backup.php:1079
|
3572 |
msgid "Files (database backup has not completed)"
|
3573 |
msgstr ""
|
3574 |
|
3575 |
+
#: src/backup.php:1079
|
3576 |
msgid "Files only (database was not part of this particular schedule)"
|
3577 |
msgstr ""
|
3578 |
|
3579 |
+
#: src/backup.php:1082
|
3580 |
msgid "Database (files backup has not completed)"
|
3581 |
msgstr ""
|
3582 |
|
3583 |
+
#: src/backup.php:1082
|
3584 |
msgid "Database only (files were not part of this particular schedule)"
|
3585 |
msgstr ""
|
3586 |
|
3587 |
+
#: src/backup.php:1085
|
3588 |
msgid "Unknown/unexpected error - please raise a support request"
|
3589 |
msgstr ""
|
3590 |
|
3591 |
+
#: src/backup.php:1094
|
3592 |
msgid "Errors encountered:"
|
3593 |
msgstr ""
|
3594 |
|
3595 |
+
#: src/backup.php:1112
|
3596 |
msgid "Warnings encountered:"
|
3597 |
msgstr ""
|
3598 |
|
3599 |
+
#: src/backup.php:1127
|
3600 |
msgid "Backed up: %s"
|
3601 |
msgstr ""
|
3602 |
|
3603 |
+
#: src/backup.php:1136
|
3604 |
msgid "Email reports created by UpdraftPlus (free edition) bring you the latest UpdraftPlus.com news"
|
3605 |
msgstr ""
|
3606 |
|
3607 |
+
#: src/backup.php:1136
|
3608 |
msgid "read more at %s"
|
3609 |
msgstr ""
|
3610 |
|
3611 |
+
#: src/backup.php:1169
|
3612 |
msgid "WordPress backup is complete"
|
3613 |
msgstr ""
|
3614 |
|
3615 |
+
#: src/backup.php:1170
|
3616 |
msgid "Backup contains:"
|
3617 |
msgstr ""
|
3618 |
|
3619 |
+
#: src/backup.php:1636
|
3620 |
msgid "database connection attempt failed."
|
3621 |
msgstr ""
|
3622 |
|
3623 |
+
#: src/backup.php:1682
|
3624 |
msgid "please wait for the rescheduled attempt"
|
3625 |
msgstr ""
|
3626 |
|
3627 |
+
#: src/backup.php:1684
|
3628 |
msgid "No database tables found"
|
3629 |
msgstr ""
|
3630 |
|
3631 |
+
#: src/backup.php:1695
|
3632 |
msgid "The backup directory is not writable (or disk space is full) - the database backup is expected to shortly fail."
|
3633 |
msgstr ""
|
3634 |
|
3635 |
+
#: src/backup.php:1773
|
3636 |
msgid "Table %s has very many rows (%s) - we hope your web hosting company gives you enough resources to dump out that table in the backup"
|
3637 |
msgstr ""
|
3638 |
|
3639 |
+
#: src/backup.php:1773
|
3640 |
msgid "If not, you will need to either remove data from this table, or contact your hosting company to request more resources."
|
3641 |
msgstr ""
|
3642 |
|
3643 |
+
#: src/backup.php:1823, src/backup.php:1825
|
3644 |
msgid "The database backup appears to have failed"
|
3645 |
msgstr ""
|
3646 |
|
3647 |
+
#: src/backup.php:1823
|
3648 |
msgid "no options or sitemeta table was found"
|
3649 |
msgstr ""
|
3650 |
|
3651 |
+
#: src/backup.php:1825
|
3652 |
msgid "the options table was not found"
|
3653 |
msgstr ""
|
3654 |
|
3655 |
+
#: src/backup.php:1873
|
3656 |
msgid "Failed to open database file for reading:"
|
3657 |
msgstr ""
|
3658 |
|
3659 |
+
#: src/backup.php:1892
|
3660 |
msgid "An error occurred whilst closing the final database file"
|
3661 |
msgstr ""
|
3662 |
|
3663 |
+
#: src/backup.php:2205
|
3664 |
msgid "Could not open the backup file for writing"
|
3665 |
msgstr ""
|
3666 |
|
3667 |
+
#: src/backup.php:2331
|
3668 |
msgid "Infinite recursion: consult your log for more information"
|
3669 |
msgstr ""
|
3670 |
|
3671 |
+
#: src/backup.php:2364
|
3672 |
msgid "%s: unreadable file - could not be backed up (check the file permissions and ownership)"
|
3673 |
msgstr ""
|
3674 |
|
3675 |
+
#: src/backup.php:2386
|
3676 |
msgid "Failed to open directory (check the file permissions and ownership): %s"
|
3677 |
msgstr ""
|
3678 |
|
3679 |
+
#: src/backup.php:2451
|
3680 |
msgid "%s: unreadable file - could not be backed up"
|
3681 |
msgstr ""
|
3682 |
|
3683 |
+
#: src/backup.php:3131, src/backup.php:3414
|
3684 |
msgid "Failed to open the zip file (%s) - %s"
|
3685 |
msgstr ""
|
3686 |
|
3687 |
+
#: src/backup.php:3157
|
3688 |
msgid "A very large file was encountered: %s (size: %s Mb)"
|
3689 |
msgstr ""
|
3690 |
|
3691 |
+
#: src/backup.php:3458, src/class-updraftplus.php:861
|
3692 |
msgid "Your free space in your hosting account is very low - only %s Mb remain"
|
3693 |
msgstr ""
|
3694 |
|
3695 |
+
#: src/backup.php:3465
|
3696 |
msgid "The zip engine returned the message: %s."
|
3697 |
msgstr ""
|
3698 |
|
3699 |
+
#: src/backup.php:3467
|
3700 |
msgid "A zip error occurred"
|
3701 |
msgstr ""
|
3702 |
|
3703 |
+
#: src/backup.php:3469
|
3704 |
msgid "your web hosting account appears to be full; please see: %s"
|
3705 |
msgstr ""
|
3706 |
|
3707 |
+
#: src/backup.php:3471
|
3708 |
msgid "check your log for more details."
|
3709 |
msgstr ""
|
3710 |
|
3872 |
msgid "More information..."
|
3873 |
msgstr ""
|
3874 |
|
3875 |
+
#: src/central/bootstrap.php:570, src/methods/updraftvault.php:359, src/methods/updraftvault.php:373, src/templates/wp-admin/settings/exclude-settings-modal/exclude-panel-heading.php:4
|
3876 |
msgid "Back..."
|
3877 |
msgstr ""
|
3878 |
|
3888 |
msgid "UpdraftCentral enables control of your WordPress sites (including management of backups and updates) from a central dashboard."
|
3889 |
msgstr ""
|
3890 |
|
3891 |
+
#: src/central/bootstrap.php:597, src/methods/updraftvault.php:327, src/methods/updraftvault.php:356
|
3892 |
msgid "Read more about it here."
|
3893 |
msgstr ""
|
3894 |
|
3996 |
msgid "Could not save backup history because we have no backup array. Backup probably failed."
|
3997 |
msgstr ""
|
3998 |
|
3999 |
+
#: src/class-updraftplus.php:3868, src/includes/class-updraftplus-encryption.php:336, src/restorer.php:876
|
4000 |
msgid "Decryption failed. The database file is encrypted, but you have no encryption key entered."
|
4001 |
msgstr ""
|
4002 |
|
4003 |
+
#: src/class-updraftplus.php:3870
|
4004 |
msgid "Decryption failed. The database file is encrypted."
|
4005 |
msgstr ""
|
4006 |
|
4007 |
+
#: src/class-updraftplus.php:3880, src/includes/class-updraftplus-encryption.php:354, src/restorer.php:889
|
4008 |
msgid "Decryption failed. The most likely cause is that you used the wrong key."
|
4009 |
msgstr ""
|
4010 |
|
4011 |
+
#: src/class-updraftplus.php:3887
|
4012 |
msgid "The database is too small to be a valid WordPress database (size: %s Kb)."
|
4013 |
msgstr ""
|
4014 |
|
4015 |
+
#: src/class-updraftplus.php:3895
|
4016 |
msgid "Failed to open database file."
|
4017 |
msgstr ""
|
4018 |
|
4019 |
+
#: src/class-updraftplus.php:3951
|
4020 |
msgid "(version: %s)"
|
4021 |
msgstr ""
|
4022 |
|
4023 |
+
#: src/class-updraftplus.php:3964
|
4024 |
msgid "The website address in the backup set (%s) is slightly different from that of the site now (%s). This is not expected to be a problem for restoring the site, as long as visits to the former address still reach the site."
|
4025 |
msgstr ""
|
4026 |
|
4027 |
+
#: src/class-updraftplus.php:3969
|
4028 |
msgid "This backup set is of this site, but at the time of the backup you were using %s, whereas the site now uses %s."
|
4029 |
msgstr ""
|
4030 |
|
4031 |
+
#: src/class-updraftplus.php:3971
|
4032 |
msgid "This restoration will work if you still have an SSL certificate (i.e. can use https) to access the site. Otherwise, you will want to use %s to search/replace the site address so that the site can be visited without https."
|
4033 |
msgstr ""
|
4034 |
|
4035 |
+
#: src/class-updraftplus.php:3971, src/class-updraftplus.php:3973
|
4036 |
msgid "the migrator add-on"
|
4037 |
msgstr ""
|
4038 |
|
4039 |
+
#: src/class-updraftplus.php:3973
|
4040 |
msgid "As long as your web hosting allows http (i.e. non-SSL access) or will forward requests to https (which is almost always the case), this is no problem. If that is not yet set up, then you should set it up, or use %s so that the non-https links are automatically replaced."
|
4041 |
msgstr ""
|
4042 |
|
4043 |
+
#: src/class-updraftplus.php:3982, src/class-updraftplus.php:4002
|
4044 |
msgid "This backup set is from a different site (%s) - this is not a restoration, but a migration. You need the Migrator add-on in order to make this work."
|
4045 |
msgstr ""
|
4046 |
|
4047 |
+
#: src/class-updraftplus.php:3985
|
4048 |
msgid "You can search and replace your database (for migrating a website to a new location/URL) with the Migrator add-on - follow this link for more information"
|
4049 |
msgstr ""
|
4050 |
|
4051 |
+
#: src/class-updraftplus.php:3990, src/restorer.php:1554
|
4052 |
msgid "You are using the %s webserver, but do not seem to have the %s module loaded."
|
4053 |
msgstr ""
|
4054 |
|
4055 |
+
#: src/class-updraftplus.php:3990, src/restorer.php:1554
|
4056 |
msgid "You should enable %s to make any pretty permalinks (e.g. %s) work"
|
4057 |
msgstr ""
|
4058 |
|
4059 |
+
#: src/class-updraftplus.php:4011, src/class-updraftplus.php:4018
|
4060 |
msgid "%s version: %s"
|
4061 |
msgstr ""
|
4062 |
|
4063 |
+
#: src/class-updraftplus.php:4012
|
4064 |
msgid "You are importing from a newer version of WordPress (%s) into an older one (%s). There are no guarantees that WordPress can handle this."
|
4065 |
msgstr ""
|
4066 |
|
4067 |
+
#: src/class-updraftplus.php:4019
|
4068 |
msgid "The site in this backup was running on a webserver with version %s of %s. "
|
4069 |
msgstr ""
|
4070 |
|
4071 |
+
#: src/class-updraftplus.php:4019
|
4072 |
msgid "This is significantly newer than the server which you are now restoring onto (version %s)."
|
4073 |
msgstr ""
|
4074 |
|
4075 |
+
#: src/class-updraftplus.php:4019
|
4076 |
msgid "You should only proceed if you cannot update the current server and are confident (or willing to risk) that your plugins/themes/etc. are compatible with the older %s version."
|
4077 |
msgstr ""
|
4078 |
|
4079 |
+
#: src/class-updraftplus.php:4019
|
4080 |
msgid "Any support requests to do with %s should be raised with your web hosting company."
|
4081 |
msgstr ""
|
4082 |
|
4083 |
+
#: src/class-updraftplus.php:4024, src/restorer.php:2355, src/restorer.php:2444, src/restorer.php:2470
|
4084 |
msgid "Old table prefix:"
|
4085 |
msgstr ""
|
4086 |
|
4087 |
+
#: src/class-updraftplus.php:4027
|
4088 |
msgid "Backup label:"
|
4089 |
msgstr ""
|
4090 |
|
4091 |
+
#: src/class-updraftplus.php:4035, src/class-updraftplus.php:4038, src/restorer.php:638
|
4092 |
msgid "You are running on WordPress multisite - but your backup is not of a multisite site."
|
4093 |
msgstr ""
|
4094 |
|
4095 |
+
#: src/class-updraftplus.php:4038
|
4096 |
msgid "It will be imported as a new site."
|
4097 |
msgstr ""
|
4098 |
|
4099 |
+
#: src/class-updraftplus.php:4038
|
4100 |
msgid "Please read this link for important information on this process."
|
4101 |
msgstr ""
|
4102 |
|
4103 |
+
#: src/class-updraftplus.php:4042, src/restorer.php:2367
|
4104 |
msgid "To import an ordinary WordPress site into a multisite installation requires %s."
|
4105 |
msgstr ""
|
4106 |
|
4107 |
+
#: src/class-updraftplus.php:4046
|
4108 |
msgid "Your backup is of a WordPress multisite install; but this site is not. Only the first site of the network will be accessible."
|
4109 |
msgstr ""
|
4110 |
|
4111 |
+
#: src/class-updraftplus.php:4046
|
4112 |
msgid "If you want to restore a multisite backup, you should first set up your WordPress installation as a multisite."
|
4113 |
msgstr ""
|
4114 |
|
4115 |
+
#: src/class-updraftplus.php:4053, src/restorer.php:2373
|
4116 |
msgid "Site information:"
|
4117 |
msgstr ""
|
4118 |
|
4119 |
+
#: src/class-updraftplus.php:4113
|
4120 |
msgid "The database backup uses MySQL features not available in the old MySQL version (%s) that this site is running on."
|
4121 |
msgstr ""
|
4122 |
|
4123 |
+
#: src/class-updraftplus.php:4113
|
4124 |
msgid "You must upgrade MySQL to be able to use this database."
|
4125 |
msgstr ""
|
4126 |
|
4127 |
+
#: src/class-updraftplus.php:4134
|
4128 |
msgid "The database server that this WordPress site is running on doesn't support the character set (%s) which you are trying to import."
|
4129 |
msgid_plural "The database server that this WordPress site is running on doesn't support the character sets (%s) which you are trying to import."
|
4130 |
msgstr[0] ""
|
4131 |
msgstr[1] ""
|
4132 |
|
4133 |
+
#: src/class-updraftplus.php:4134
|
4134 |
msgid "You can choose another suitable character set instead and continue with the restoration at your own risk."
|
4135 |
msgstr ""
|
4136 |
|
4137 |
+
#: src/class-updraftplus.php:4144
|
4138 |
msgid "Your chosen character set to use instead:"
|
4139 |
msgstr ""
|
4140 |
|
4141 |
+
#: src/class-updraftplus.php:4168
|
4142 |
msgid "The database server that this WordPress site is running on doesn't support the collation (%s) used in the database which you are trying to import."
|
4143 |
msgid_plural "The database server that this WordPress site is running on doesn't support multiple collations (%s) used in the database which you are trying to import."
|
4144 |
msgstr[0] ""
|
4145 |
msgstr[1] ""
|
4146 |
|
4147 |
+
#: src/class-updraftplus.php:4168
|
4148 |
msgid "You can choose another suitable collation instead and continue with the restoration (at your own risk)."
|
4149 |
msgstr ""
|
4150 |
|
4151 |
+
#: src/class-updraftplus.php:4191
|
4152 |
msgid "Your chosen replacement collation"
|
4153 |
msgstr ""
|
4154 |
|
4155 |
+
#: src/class-updraftplus.php:4214
|
4156 |
msgid "Choose a default for each table"
|
4157 |
msgstr ""
|
4158 |
|
4159 |
+
#: src/class-updraftplus.php:4266
|
4160 |
msgid "This database backup is missing core WordPress tables: %s"
|
4161 |
msgstr ""
|
4162 |
|
4163 |
+
#: src/class-updraftplus.php:4269
|
4164 |
msgid "This database backup has the following WordPress tables excluded: %s"
|
4165 |
msgstr ""
|
4166 |
|
4167 |
+
#: src/class-updraftplus.php:4274
|
4168 |
msgid "UpdraftPlus was unable to find the table prefix when scanning the database backup."
|
4169 |
msgstr ""
|
4170 |
|
4172 |
msgid "You have not yet made any backups."
|
4173 |
msgstr ""
|
4174 |
|
4175 |
+
#: src/includes/class-backup-history.php:675
|
4176 |
msgid "One or more backups has been added from scanning remote storage; note that these backups will not be automatically deleted through the \"retain\" settings; if/when you wish to delete them then you must do so manually."
|
4177 |
msgstr ""
|
4178 |
|
4180 |
msgid "%s add-on not found"
|
4181 |
msgstr ""
|
4182 |
|
4183 |
+
#: src/includes/class-commands.php:793, src/methods/updraftvault.php:635, src/udaddons/options.php:226
|
4184 |
msgid "An unknown error occurred when trying to connect to UpdraftPlus.Com"
|
4185 |
msgstr ""
|
4186 |
|
4208 |
msgid "The creation of your data for creating the clone should now begin. N.B. You will be charged one token once the clone is ready. If the clone fails to boot, then no token will be taken."
|
4209 |
msgstr ""
|
4210 |
|
4211 |
+
#: src/includes/class-filesystem-functions.php:114, src/templates/wp-admin/advanced/site-info.php:38
|
4212 |
msgid "refresh"
|
4213 |
msgstr ""
|
4214 |
|
4215 |
+
#: src/includes/class-filesystem-functions.php:121
|
4216 |
msgid "calculate"
|
4217 |
msgstr ""
|
4218 |
|
4219 |
+
#: src/includes/class-filesystem-functions.php:135
|
4220 |
msgid "This is a count of the contents of your Updraft directory"
|
4221 |
msgstr ""
|
4222 |
|
4223 |
+
#: src/includes/class-filesystem-functions.php:135, src/templates/wp-admin/advanced/site-info.php:38
|
4224 |
msgid "Web-server disk space in use by UpdraftPlus"
|
4225 |
msgstr ""
|
4226 |
|
4227 |
+
#: src/includes/class-filesystem-functions.php:294, src/methods/ftp.php:330
|
4228 |
msgid "Your web server's PHP installation has these functions disabled: %s."
|
4229 |
msgstr ""
|
4230 |
|
4231 |
+
#: src/includes/class-filesystem-functions.php:294, src/methods/ftp.php:330, src/restorer.php:2146
|
4232 |
msgid "Your hosting company must enable these functions before %s can work."
|
4233 |
msgstr ""
|
4234 |
|
4235 |
+
#: src/includes/class-filesystem-functions.php:294, src/restorer.php:2146
|
4236 |
msgid "restoration"
|
4237 |
msgstr ""
|
4238 |
|
4239 |
+
#: src/includes/class-filesystem-functions.php:314
|
4240 |
msgid "The database file appears to have been compressed twice - probably the website you downloaded it from had a mis-configured webserver."
|
4241 |
msgstr ""
|
4242 |
|
4243 |
+
#: src/includes/class-filesystem-functions.php:321, src/includes/class-filesystem-functions.php:343
|
4244 |
msgid "The attempt to undo the double-compression failed."
|
4245 |
msgstr ""
|
4246 |
|
4247 |
+
#: src/includes/class-filesystem-functions.php:345
|
4248 |
msgid "The attempt to undo the double-compression succeeded."
|
4249 |
msgstr ""
|
4250 |
|
4251 |
+
#: src/includes/class-filesystem-functions.php:538
|
4252 |
+
msgid "Unzip progress: %d out of %d files"
|
4253 |
+
msgstr ""
|
4254 |
+
|
4255 |
#: src/includes/class-remote-send.php:251
|
4256 |
msgid "Backup data will be sent to:"
|
4257 |
msgstr ""
|
4280 |
msgid "You must copy and paste this key on the sending site now - it cannot be shown again."
|
4281 |
msgstr ""
|
4282 |
|
4283 |
+
#: src/includes/class-remote-send.php:448
|
4284 |
+
msgid "The setting %s is turned on in your PHP settings. It is deprecated, causes encryption to malfunction, and should be turned off."
|
4285 |
+
msgstr ""
|
4286 |
+
|
4287 |
+
#: src/includes/class-remote-send.php:463
|
4288 |
msgid "key"
|
4289 |
msgstr ""
|
4290 |
|
4291 |
+
#: src/includes/class-remote-send.php:473
|
4292 |
msgid "The entered key was the wrong length - please try again."
|
4293 |
msgstr ""
|
4294 |
|
4295 |
+
#: src/includes/class-remote-send.php:475, src/includes/class-remote-send.php:477, src/includes/class-remote-send.php:481
|
4296 |
msgid "The entered key was corrupt - please try again."
|
4297 |
msgstr ""
|
4298 |
|
4299 |
+
#: src/includes/class-remote-send.php:486
|
4300 |
msgid "The entered key does not belong to a remote site (it belongs to this one)."
|
4301 |
msgstr ""
|
4302 |
|
4303 |
+
#: src/includes/class-remote-send.php:502
|
4304 |
msgid "The key was successfully added."
|
4305 |
msgstr ""
|
4306 |
|
4307 |
+
#: src/includes/class-remote-send.php:502
|
4308 |
msgid "It is for sending backups to the following site: "
|
4309 |
msgstr ""
|
4310 |
|
4311 |
+
#: src/includes/class-remote-send.php:521
|
4312 |
msgid "No receiving sites have yet been added."
|
4313 |
msgstr ""
|
4314 |
|
4315 |
+
#: src/includes/class-remote-send.php:541
|
4316 |
msgid "No keys to allow remote sites to send backup data here have yet been created."
|
4317 |
msgstr ""
|
4318 |
|
4319 |
+
#: src/includes/class-remote-send.php:550
|
4320 |
msgid "Existing keys"
|
4321 |
msgstr ""
|
4322 |
|
4492 |
msgid "Allow only administrators to log in"
|
4493 |
msgstr ""
|
4494 |
|
4495 |
+
#: src/includes/updraftplus-login.php:58, src/methods/updraftvault.php:687, src/udaddons/updraftplus-addons.php:971
|
4496 |
msgid "UpdraftPlus.Com returned a response which we could not understand (data: %s)"
|
4497 |
msgstr ""
|
4498 |
|
4499 |
+
#: src/includes/updraftplus-notices.php:30, src/includes/updraftplus-notices.php:41, src/includes/updraftplus-notices.php:52, src/includes/updraftplus-notices.php:63, src/includes/updraftplus-notices.php:74, src/includes/updraftplus-notices.php:85
|
4500 |
msgid "UpdraftPlus Premium:"
|
4501 |
msgstr ""
|
4502 |
|
4508 |
msgid "Enjoy professional, fast, and friendly help whenever you need it with Premium."
|
4509 |
msgstr ""
|
4510 |
|
4511 |
+
#: src/includes/updraftplus-notices.php:42, src/templates/wp-admin/settings/tab-addons.php:260
|
4512 |
msgid "UpdraftVault storage"
|
4513 |
msgstr ""
|
4514 |
|
4515 |
+
#: src/includes/updraftplus-notices.php:43
|
4516 |
msgid "The ultimately secure and convenient place to store your backups."
|
4517 |
msgstr ""
|
4518 |
|
4519 |
+
#: src/includes/updraftplus-notices.php:53
|
4520 |
msgid "enhanced remote storage options"
|
4521 |
msgstr ""
|
4522 |
|
4523 |
+
#: src/includes/updraftplus-notices.php:54
|
4524 |
msgid "Enhanced storage options for Dropbox, Google Drive and S3. Plus many more options."
|
4525 |
msgstr ""
|
4526 |
|
4527 |
+
#: src/includes/updraftplus-notices.php:64
|
4528 |
msgid "advanced options"
|
4529 |
msgstr ""
|
4530 |
|
4531 |
+
#: src/includes/updraftplus-notices.php:65
|
4532 |
msgid "Secure multisite installation, advanced reporting and much more."
|
4533 |
msgstr ""
|
4534 |
|
4535 |
+
#: src/includes/updraftplus-notices.php:75
|
4536 |
msgid "secure your backups"
|
4537 |
msgstr ""
|
4538 |
|
4539 |
+
#: src/includes/updraftplus-notices.php:76
|
4540 |
msgid "Add SFTP to send your data securely, lock settings and encrypt your database backups for extra security."
|
4541 |
msgstr ""
|
4542 |
|
4543 |
+
#: src/includes/updraftplus-notices.php:86
|
4544 |
msgid "easily migrate or clone your site in minutes"
|
4545 |
msgstr ""
|
4546 |
|
4547 |
+
#: src/includes/updraftplus-notices.php:87
|
4548 |
msgid "Copy your site to another domain directly. Includes find-and-replace tool for database references."
|
4549 |
msgstr ""
|
4550 |
|
4551 |
+
#: src/includes/updraftplus-notices.php:97
|
4552 |
msgid "Introducing UpdraftCentral"
|
4553 |
msgstr ""
|
4554 |
|
4555 |
+
#: src/includes/updraftplus-notices.php:98
|
4556 |
msgid "UpdraftCentral is a highly efficient way to manage, update and backup multiple websites from one place."
|
4557 |
msgstr ""
|
4558 |
|
4559 |
+
#: src/includes/updraftplus-notices.php:107
|
4560 |
+
msgid "Do you use UpdraftPlus on multiple sites?"
|
4561 |
msgstr ""
|
4562 |
|
4563 |
+
#: src/includes/updraftplus-notices.php:108
|
4564 |
+
msgid "Control all your WordPress installations from one place using UpdraftCentral remote site management!"
|
4565 |
msgstr ""
|
4566 |
|
4567 |
+
#: src/includes/updraftplus-notices.php:117
|
4568 |
+
msgid "Like UpdraftPlus and can spare one minute?"
|
4569 |
msgstr ""
|
4570 |
|
4571 |
+
#: src/includes/updraftplus-notices.php:118
|
4572 |
+
msgid "Please help UpdraftPlus by giving a positive review at wordpress.org."
|
4573 |
msgstr ""
|
4574 |
|
4575 |
+
#: src/includes/updraftplus-notices.php:138
|
4576 |
msgid "UpdraftPlus is on social media - check us out!"
|
4577 |
msgstr ""
|
4578 |
|
4579 |
+
#: src/includes/updraftplus-notices.php:139, src/includes/updraftplus-notices.php:140, src/templates/wp-admin/settings/header.php:16
|
4580 |
msgid "Twitter"
|
4581 |
msgstr ""
|
4582 |
|
4583 |
+
#: src/includes/updraftplus-notices.php:139, src/includes/updraftplus-notices.php:140
|
4584 |
msgid "Facebook"
|
4585 |
msgstr ""
|
4586 |
|
4587 |
+
#: src/includes/updraftplus-notices.php:139, src/includes/updraftplus-notices.php:140
|
4588 |
msgid "Google+"
|
4589 |
msgstr ""
|
4590 |
|
4591 |
+
#: src/includes/updraftplus-notices.php:139, src/includes/updraftplus-notices.php:140
|
4592 |
msgid "LinkedIn"
|
4593 |
msgstr ""
|
4594 |
|
4595 |
+
#: src/includes/updraftplus-notices.php:147
|
4596 |
msgid "UpdraftPlus Newsletter"
|
4597 |
msgstr ""
|
4598 |
|
4599 |
+
#: src/includes/updraftplus-notices.php:148
|
4600 |
msgid "Follow this link to sign up for the UpdraftPlus newsletter."
|
4601 |
msgstr ""
|
4602 |
|
4603 |
+
#: src/includes/updraftplus-notices.php:158, src/includes/updraftplus-notices.php:168
|
4604 |
msgid "UpdraftPlus Blog - get up-to-date news and offers"
|
4605 |
msgstr ""
|
4606 |
|
4607 |
+
#: src/includes/updraftplus-notices.php:159, src/includes/updraftplus-notices.php:160, src/includes/updraftplus-notices.php:169, src/includes/updraftplus-notices.php:170
|
4608 |
msgid "Blog link"
|
4609 |
msgstr ""
|
4610 |
|
4611 |
+
#: src/includes/updraftplus-notices.php:159, src/includes/updraftplus-notices.php:160, src/includes/updraftplus-notices.php:169, src/includes/updraftplus-notices.php:170
|
4612 |
msgid "RSS link"
|
4613 |
msgstr ""
|
4614 |
|
4615 |
+
#: src/includes/updraftplus-notices.php:179
|
4616 |
msgid "UpdraftPlus Premium can automatically backup your plugins/themes/database before you update, without you needing to remember."
|
4617 |
msgstr ""
|
4618 |
|
4619 |
+
#: src/includes/updraftplus-notices.php:189
|
4620 |
msgid "After you've backed up your database, we recommend you install our WP-Optimize plugin to streamline it for better website performance."
|
4621 |
msgstr ""
|
4622 |
|
4623 |
+
#: src/includes/updraftplus-notices.php:200
|
4624 |
msgid "Instant and secure logon with a wave of your phone."
|
4625 |
msgstr ""
|
4626 |
|
4627 |
+
#: src/includes/updraftplus-notices.php:200
|
4628 |
msgid "No more forgotten passwords. Find out more about our revolutionary new WordPress plugin"
|
4629 |
msgstr ""
|
4630 |
|
4631 |
+
#: src/includes/updraftplus-notices.php:209
|
4632 |
msgid "With Metaslider, you can easily add style and flare with beautifully-designed sliders."
|
4633 |
msgstr ""
|
4634 |
|
4635 |
+
#: src/includes/updraftplus-notices.php:219
|
4636 |
msgid "Black Friday - 20% off UpdraftPlus Premium until November 30th"
|
4637 |
msgstr ""
|
4638 |
|
4639 |
+
#: src/includes/updraftplus-notices.php:220, src/includes/updraftplus-notices.php:234, src/includes/updraftplus-notices.php:248, src/includes/updraftplus-notices.php:262, src/includes/updraftplus-notices.php:276
|
4640 |
msgid "To benefit, use this discount code:"
|
4641 |
msgstr ""
|
4642 |
|
4643 |
+
#: src/includes/updraftplus-notices.php:233
|
4644 |
msgid "Christmas sale - 20% off UpdraftPlus Premium until December 25th"
|
4645 |
msgstr ""
|
4646 |
|
4647 |
+
#: src/includes/updraftplus-notices.php:247
|
4648 |
msgid "Happy New Year - 20% off UpdraftPlus Premium until January 14th"
|
4649 |
msgstr ""
|
4650 |
|
4651 |
+
#: src/includes/updraftplus-notices.php:261
|
4652 |
msgid "Spring sale - 20% off UpdraftPlus Premium until April 30th"
|
4653 |
msgstr ""
|
4654 |
|
4655 |
+
#: src/includes/updraftplus-notices.php:275
|
4656 |
msgid "Summer sale - 20% off UpdraftPlus Premium until July 31st"
|
4657 |
msgstr ""
|
4658 |
|
4879 |
msgid "Follow this link to remove these settings for %s."
|
4880 |
msgstr ""
|
4881 |
|
4882 |
+
#: src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440, src/methods/openstack-base.php:571, src/methods/s3.php:868
|
4883 |
msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support."
|
4884 |
msgstr ""
|
4885 |
|
4886 |
+
#: src/methods/cloudfiles-new.php:100, src/methods/cloudfiles.php:440, src/methods/openstack-base.php:571, src/methods/s3.php:868
|
4887 |
msgid "UpdraftPlus's %s module <strong>requires</strong> %s. Please do not file any support requests; there is no alternative."
|
4888 |
msgstr ""
|
4889 |
|
4890 |
#: src/methods/cloudfiles-new.php:102, src/methods/cloudfiles.php:446
|
4891 |
+
msgid "Get your API key <a href=\"https://mycloud.rackspace.com/\" target=\"_blank\">from your Rackspace Cloud console</a> (read instructions <a href=\"http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key\" target=\"_blank\">here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist."
|
4892 |
msgstr ""
|
4893 |
|
4894 |
#: src/methods/cloudfiles-new.php:102, src/methods/cloudfiles.php:446, src/methods/openstack2.php:120
|
4915 |
msgid "Cloud Files API Key"
|
4916 |
msgstr ""
|
4917 |
|
4918 |
+
#: src/methods/cloudfiles-new.php:184, src/methods/cloudfiles.php:519, src/methods/s3.php:1136
|
4919 |
msgid "API key"
|
4920 |
msgstr ""
|
4921 |
|
4979 |
msgid "Closing 1st October 2018"
|
4980 |
msgstr ""
|
4981 |
|
4982 |
+
#: src/methods/dreamobjects.php:115, src/methods/s3generic.php:106
|
4983 |
msgid "%s end-point"
|
4984 |
msgstr ""
|
4985 |
|
5293 |
msgid "tenant"
|
5294 |
msgstr ""
|
5295 |
|
5296 |
+
#: src/methods/s3.php:130
|
5297 |
msgid "No settings were found - please go to the Settings tab and check your settings"
|
5298 |
msgstr ""
|
5299 |
|
5300 |
+
#: src/methods/s3.php:181, src/methods/s3.php:182, src/methods/s3.php:183, src/methods/s3.php:191, src/methods/s3.php:192, src/methods/s3.php:193
|
5301 |
msgid "%s Error: Failed to initialise"
|
5302 |
msgstr ""
|
5303 |
|
5304 |
+
#: src/methods/s3.php:314
|
5305 |
msgid "The required %s PHP module is not installed - ask your web hosting company to enable it"
|
5306 |
msgstr ""
|
5307 |
|
5308 |
+
#: src/methods/s3.php:413
|
5309 |
msgid "%s upload: getting uploadID for multipart upload failed - see log file for more details"
|
5310 |
msgstr ""
|
5311 |
|
5312 |
+
#: src/methods/s3.php:435
|
5313 |
msgid "%s error: file %s was shortened unexpectedly"
|
5314 |
msgstr ""
|
5315 |
|
5316 |
+
#: src/methods/s3.php:445
|
5317 |
msgid "%s chunk %s: upload failed"
|
5318 |
msgstr ""
|
5319 |
|
5320 |
+
#: src/methods/s3.php:461
|
5321 |
msgid "%s upload (%s): re-assembly failed (see log for more details)"
|
5322 |
msgstr ""
|
5323 |
|
5324 |
+
#: src/methods/s3.php:465
|
5325 |
msgid "%s re-assembly error (%s): (see log file for more)"
|
5326 |
msgstr ""
|
5327 |
|
5328 |
+
#: src/methods/s3.php:487
|
5329 |
msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials.1"
|
5330 |
msgstr ""
|
5331 |
|
5332 |
+
#: src/methods/s3.php:603, src/methods/s3.php:676, src/methods/s3.php:781
|
5333 |
msgid "%s Error: Failed to access bucket %s. Check your permissions and credentials."
|
5334 |
msgstr ""
|
5335 |
|
5336 |
+
#: src/methods/s3.php:764, src/methods/s3.php:774, src/methods/s3.php:810
|
5337 |
msgid "%s Error: Failed to download %s. Check your permissions and credentials."
|
5338 |
msgstr ""
|
5339 |
|
5340 |
+
#: src/methods/s3.php:855
|
5341 |
msgid "... and many more!"
|
5342 |
msgstr ""
|
5343 |
|
5344 |
+
#: src/methods/s3.php:864
|
5345 |
msgid "Your web server's PHP installation does not included a required module (%s). Please contact your web hosting provider's support and ask for them to enable it."
|
5346 |
msgstr ""
|
5347 |
|
5348 |
+
#: src/methods/s3.php:874
|
5349 |
msgid "Get your access key and secret key <a href=\"%s\">from your %s console</a>, then pick a (globally unique - all %s users) bucket name (letters and numbers) (and optionally a path) to use for storage. This bucket will be created for you if it does not already exist."
|
5350 |
msgstr ""
|
5351 |
|
5352 |
+
#: src/methods/s3.php:876
|
5353 |
msgid "If you see errors about SSL certificates, then please go here for help."
|
5354 |
msgstr ""
|
5355 |
|
5356 |
+
#: src/methods/s3.php:878
|
5357 |
msgid "Other %s FAQs."
|
5358 |
msgstr ""
|
5359 |
|
5360 |
+
#: src/methods/s3.php:928
|
5361 |
msgid "To create a new IAM sub-user and access key that has access only to this bucket, use this add-on."
|
5362 |
msgstr ""
|
5363 |
|
5364 |
+
#: src/methods/s3.php:937
|
5365 |
msgid "%s access key"
|
5366 |
msgstr ""
|
5367 |
|
5368 |
+
#: src/methods/s3.php:941
|
5369 |
msgid "%s secret key"
|
5370 |
msgstr ""
|
5371 |
|
5372 |
+
#: src/methods/s3.php:945
|
5373 |
msgid "%s location"
|
5374 |
msgstr ""
|
5375 |
|
5376 |
+
#: src/methods/s3.php:946
|
5377 |
msgid "Enter only a bucket name or a bucket and path. Examples: mybucket, mybucket/mypath"
|
5378 |
msgstr ""
|
5379 |
|
5380 |
+
#: src/methods/s3.php:1140
|
5381 |
msgid "API secret"
|
5382 |
msgstr ""
|
5383 |
|
5384 |
+
#: src/methods/s3.php:1191
|
5385 |
msgid "The AWS access key looks to be wrong (valid %s access keys begin with \"AK\")"
|
5386 |
msgstr ""
|
5387 |
|
5388 |
+
#: src/methods/s3.php:1205
|
5389 |
msgid "The communication with %s was encrypted."
|
5390 |
msgstr ""
|
5391 |
|
5392 |
+
#: src/methods/s3.php:1207
|
5393 |
msgid "The communication with %s was not encrypted."
|
5394 |
msgstr ""
|
5395 |
|
5396 |
+
#: src/methods/s3.php:1212
|
5397 |
msgid "Please check your access credentials."
|
5398 |
msgstr ""
|
5399 |
|
5400 |
+
#: src/methods/s3generic.php:63, src/methods/s3generic.php:74, src/methods/s3generic.php:85
|
5401 |
msgid "S3 (Compatible)"
|
5402 |
msgstr ""
|
5403 |
|
5425 |
msgid "UpdraftVault"
|
5426 |
msgstr ""
|
5427 |
|
5428 |
+
#: src/methods/updraftvault.php:104
|
5429 |
msgid "Updraft Vault"
|
5430 |
msgstr ""
|
5431 |
|
5432 |
+
#: src/methods/updraftvault.php:255
|
5433 |
msgid "Your UpdraftPlus Premium purchase is over a year ago. You should renew immediately to avoid losing the 12 months of free storage allowance that you get for being a current UpdraftPlus Premium customer."
|
5434 |
msgstr ""
|
5435 |
|
5436 |
+
#: src/methods/updraftvault.php:258
|
5437 |
msgid "You have an UpdraftPlus Vault subscription with overdue payment. You are within the few days of grace period before it will be suspended, and you will lose your quota and access to data stored within it. Please renew as soon as possible!"
|
5438 |
msgstr ""
|
5439 |
|
5440 |
+
#: src/methods/updraftvault.php:261
|
5441 |
msgid "You have an UpdraftPlus Vault subscription that has not been renewed, and the grace period has expired. In a few days' time, your stored data will be permanently removed. If you do not wish this to happen, then you should renew as soon as possible."
|
5442 |
msgstr ""
|
5443 |
|
5444 |
+
#: src/methods/updraftvault.php:266
|
5445 |
msgid "No Vault connection was found for this site (has it moved?); please disconnect and re-connect."
|
5446 |
msgstr ""
|
5447 |
|
5448 |
+
#: src/methods/updraftvault.php:316, src/methods/updraftvault.php:333
|
5449 |
msgid "UpdraftPlus Vault brings you storage that is <strong>reliable, easy to use and a great price</strong>."
|
5450 |
msgstr ""
|
5451 |
|
5452 |
+
#: src/methods/updraftvault.php:316, src/methods/updraftvault.php:333
|
5453 |
msgid "Press a button to get started."
|
5454 |
msgstr ""
|
5455 |
|
5456 |
+
#: src/methods/updraftvault.php:319
|
5457 |
msgid "First time user?"
|
5458 |
msgstr ""
|
5459 |
|
5460 |
+
#: src/methods/updraftvault.php:320
|
5461 |
msgid "Show the options"
|
5462 |
msgstr ""
|
5463 |
|
5464 |
+
#: src/methods/updraftvault.php:323
|
5465 |
msgid "Already purchased space?"
|
5466 |
msgstr ""
|
5467 |
|
5468 |
+
#: src/methods/updraftvault.php:327, src/methods/updraftvault.php:356
|
5469 |
msgid "UpdraftPlus Vault is built on top of Amazon's world-leading data-centres, with redundant data storage to achieve 99.999999999% reliability."
|
5470 |
msgstr ""
|
5471 |
|
5472 |
+
#: src/methods/updraftvault.php:327, src/methods/updraftvault.php:356
|
5473 |
msgid "Read the FAQs here."
|
5474 |
msgstr ""
|
5475 |
|
5476 |
+
#: src/methods/updraftvault.php:336, src/methods/updraftvault.php:342, src/methods/updraftvault.php:348
|
5477 |
msgid "%s per quarter"
|
5478 |
msgstr ""
|
5479 |
|
5480 |
+
#: src/methods/updraftvault.php:337, src/methods/updraftvault.php:343, src/methods/updraftvault.php:349
|
5481 |
msgid "or (annual discount)"
|
5482 |
msgstr ""
|
5483 |
|
5484 |
+
#: src/methods/updraftvault.php:338, src/methods/updraftvault.php:344, src/methods/updraftvault.php:350
|
5485 |
msgid "%s per year"
|
5486 |
msgstr ""
|
5487 |
|
5488 |
+
#: src/methods/updraftvault.php:353
|
5489 |
msgid "Payments can be made in US dollars, euros or GB pounds sterling, via card or PayPal."
|
5490 |
msgstr ""
|
5491 |
|
5492 |
+
#: src/methods/updraftvault.php:353
|
5493 |
msgid "Subscriptions can be cancelled at any time."
|
5494 |
msgstr ""
|
5495 |
|
5496 |
+
#: src/methods/updraftvault.php:363
|
5497 |
msgid "Enter your UpdraftPlus.Com email / password here to connect:"
|
5498 |
msgstr ""
|
5499 |
|
5500 |
+
#: src/methods/updraftvault.php:365
|
5501 |
msgid "E-mail"
|
5502 |
msgstr ""
|
5503 |
|
5504 |
+
#: src/methods/updraftvault.php:370
|
5505 |
msgid "Don't know your email address, or forgotten your password?"
|
5506 |
msgstr ""
|
5507 |
|
5508 |
+
#: src/methods/updraftvault.php:370
|
5509 |
msgid "Go here for help"
|
5510 |
msgstr ""
|
5511 |
|
5512 |
+
#: src/methods/updraftvault.php:393, src/methods/updraftvault.php:445
|
5513 |
msgid "This site is <strong>connected</strong> to UpdraftPlus Vault."
|
5514 |
msgstr ""
|
5515 |
|
5516 |
+
#: src/methods/updraftvault.php:393, src/methods/updraftvault.php:445
|
5517 |
msgid "Well done - there's nothing more needed to set up."
|
5518 |
msgstr ""
|
5519 |
|
5520 |
+
#: src/methods/updraftvault.php:393, src/methods/updraftvault.php:445
|
5521 |
msgid "Vault owner"
|
5522 |
msgstr ""
|
5523 |
|
5524 |
+
#: src/methods/updraftvault.php:394, src/methods/updraftvault.php:447
|
5525 |
msgid "Quota:"
|
5526 |
msgstr ""
|
5527 |
|
5528 |
+
#: src/methods/updraftvault.php:399, src/methods/updraftvault.php:441
|
5529 |
msgid "You are <strong>not connected</strong> to UpdraftPlus Vault."
|
5530 |
msgstr ""
|
5531 |
|
5532 |
+
#: src/methods/updraftvault.php:463
|
5533 |
msgid "%s Error: you have insufficient storage quota available (%s) to upload this archive (%s)."
|
5534 |
msgstr ""
|
5535 |
|
5536 |
+
#: src/methods/updraftvault.php:463
|
5537 |
msgid "You can get more quota here"
|
5538 |
msgstr ""
|
5539 |
|
5540 |
+
#: src/methods/updraftvault.php:468, src/methods/updraftvault.php:484, src/methods/updraftvault.php:528
|
5541 |
msgid "Current use:"
|
5542 |
msgstr ""
|
5543 |
|
5544 |
+
#: src/methods/updraftvault.php:471, src/methods/updraftvault.php:487, src/methods/updraftvault.php:489, src/methods/updraftvault.php:547
|
5545 |
msgid "Get more quota"
|
5546 |
msgstr ""
|
5547 |
|
5548 |
+
#: src/methods/updraftvault.php:473, src/methods/updraftvault.php:547
|
5549 |
msgid "Refresh current status"
|
5550 |
msgstr ""
|
5551 |
|
5552 |
+
#: src/methods/updraftvault.php:661, src/udaddons/updraftplus-addons.php:867
|
5553 |
msgid "You need to supply both an email address and a password"
|
5554 |
msgstr ""
|
5555 |
|
5556 |
+
#: src/methods/updraftvault.php:712
|
5557 |
msgid "You do not currently have any UpdraftPlus Vault quota"
|
5558 |
msgstr ""
|
5559 |
|
5560 |
+
#: src/methods/updraftvault.php:714, src/methods/updraftvault.php:729, src/udaddons/updraftplus-addons.php:1012
|
5561 |
msgid "UpdraftPlus.Com returned a response, but we could not understand it"
|
5562 |
msgstr ""
|
5563 |
|
5564 |
+
#: src/methods/updraftvault.php:720, src/udaddons/updraftplus-addons.php:1001
|
5565 |
msgid "Your email address was valid, but your password was not recognised by UpdraftPlus.Com."
|
5566 |
msgstr ""
|
5567 |
|
5568 |
+
#: src/methods/updraftvault.php:720
|
5569 |
msgid "If you have forgotten your password, then go here to change your password on updraftplus.com."
|
5570 |
msgstr ""
|
5571 |
|
5572 |
+
#: src/methods/updraftvault.php:723, src/udaddons/updraftplus-addons.php:1005
|
5573 |
msgid "You entered an email address that was not recognised by UpdraftPlus.Com"
|
5574 |
msgstr ""
|
5575 |
|
5576 |
+
#: src/methods/updraftvault.php:726, src/udaddons/updraftplus-addons.php:1008
|
5577 |
msgid "Your email address and password were not recognised by UpdraftPlus.Com"
|
5578 |
msgstr ""
|
5579 |
|
5597 |
msgid "(This applies to all WordPress backup plugins unless they have been explicitly coded for multisite compatibility)."
|
5598 |
msgstr ""
|
5599 |
|
5600 |
+
#: src/restorer.php:169
|
5601 |
+
msgid "Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old)."
|
5602 |
+
msgstr ""
|
5603 |
+
|
5604 |
+
#: src/restorer.php:297
|
5605 |
msgid "Skipping restoration of WordPress core when importing a single site into a multisite installation. If you had anything necessary in your WordPress directory then you will need to re-add it manually from the zip file."
|
5606 |
msgstr ""
|
5607 |
|
5608 |
+
#: src/restorer.php:308
|
5609 |
msgid "Looking for %s archive: file name: %s"
|
5610 |
msgstr ""
|
5611 |
|
5612 |
+
#: src/restorer.php:311
|
5613 |
msgid "Skipping: this archive was already restored."
|
5614 |
msgstr ""
|
5615 |
|
5616 |
+
#: src/restorer.php:323
|
5617 |
msgid "Archive is expected to be size:"
|
5618 |
msgstr ""
|
5619 |
|
5620 |
+
#: src/restorer.php:328
|
5621 |
msgid "file is size:"
|
5622 |
msgstr ""
|
5623 |
|
5624 |
+
#: src/restorer.php:331
|
5625 |
msgid "The backup records do not contain information about the proper size of this file."
|
5626 |
msgstr ""
|
5627 |
|
5628 |
+
#: src/restorer.php:334, src/restorer.php:335
|
5629 |
msgid "Could not find one of the files for restoration"
|
5630 |
msgstr ""
|
5631 |
|
5632 |
+
#: src/restorer.php:417
|
5633 |
+
msgid "Final checks"
|
5634 |
+
msgstr ""
|
5635 |
+
|
5636 |
+
#: src/restorer.php:506
|
5637 |
msgid "Error message"
|
5638 |
msgstr ""
|
5639 |
|
5640 |
+
#: src/restorer.php:623
|
5641 |
msgid "UpdraftPlus is not able to directly restore this kind of entity. It must be restored manually."
|
5642 |
msgstr ""
|
5643 |
|
5644 |
+
#: src/restorer.php:624
|
5645 |
msgid "Backup file not available."
|
5646 |
msgstr ""
|
5647 |
|
5648 |
+
#: src/restorer.php:625
|
5649 |
msgid "Copying this entity failed."
|
5650 |
msgstr ""
|
5651 |
|
5652 |
+
#: src/restorer.php:626
|
5653 |
msgid "Unpacking backup..."
|
5654 |
msgstr ""
|
5655 |
|
5656 |
+
#: src/restorer.php:627
|
5657 |
msgid "Decrypting database (can take a while)..."
|
5658 |
msgstr ""
|
5659 |
|
5660 |
+
#: src/restorer.php:628
|
5661 |
msgid "Database successfully decrypted."
|
5662 |
msgstr ""
|
5663 |
|
5664 |
+
#: src/restorer.php:629
|
5665 |
msgid "Moving old data out of the way..."
|
5666 |
msgstr ""
|
5667 |
|
5668 |
+
#: src/restorer.php:630
|
5669 |
msgid "Moving unpacked backup into place..."
|
5670 |
msgstr ""
|
5671 |
|
5672 |
+
#: src/restorer.php:631
|
5673 |
msgid "Restoring the database (on a large site this can take a long time - if it times out (which can happen if your web hosting company has configured your hosting to limit resources) then you should use a different method, such as phpMyAdmin)..."
|
5674 |
msgstr ""
|
5675 |
|
5676 |
+
#: src/restorer.php:632
|
5677 |
msgid "Cleaning up rubbish..."
|
5678 |
msgstr ""
|
5679 |
|
5680 |
+
#: src/restorer.php:633
|
5681 |
msgid "Could not move old files out of the way."
|
5682 |
msgstr ""
|
5683 |
|
5684 |
+
#: src/restorer.php:633
|
5685 |
msgid "You should check the file ownerships and permissions in your WordPress installation"
|
5686 |
msgstr ""
|
5687 |
|
5688 |
+
#: src/restorer.php:634
|
5689 |
msgid "Could not delete old directory."
|
5690 |
msgstr ""
|
5691 |
|
5692 |
+
#: src/restorer.php:635
|
5693 |
msgid "Could not move new files into place. Check your wp-content/upgrade folder."
|
5694 |
msgstr ""
|
5695 |
|
5696 |
+
#: src/restorer.php:636
|
5697 |
msgid "Could not move the files into place. Check your file permissions."
|
5698 |
msgstr ""
|
5699 |
|
5700 |
+
#: src/restorer.php:637
|
5701 |
msgid "Failed to delete working directory after restoring."
|
5702 |
msgstr ""
|
5703 |
|
5704 |
+
#: src/restorer.php:639
|
5705 |
msgid "Failed to unpack the archive"
|
5706 |
msgstr ""
|
5707 |
|
5708 |
+
#: src/restorer.php:640
|
5709 |
msgid "Failed to read the manifest file from backup."
|
5710 |
msgstr ""
|
5711 |
|
5712 |
+
#: src/restorer.php:641
|
5713 |
msgid "Failed to find a manifest file in the backup."
|
5714 |
msgstr ""
|
5715 |
|
5716 |
+
#: src/restorer.php:642
|
5717 |
msgid "Failed to read from the working directory."
|
5718 |
msgstr ""
|
5719 |
|
5720 |
+
#: src/restorer.php:868
|
5721 |
msgid "Failed to create a temporary directory"
|
5722 |
msgstr ""
|
5723 |
|
5724 |
+
#: src/restorer.php:884
|
5725 |
msgid "Failed to write out the decrypted database to the filesystem"
|
5726 |
msgstr ""
|
5727 |
|
5728 |
+
#: src/restorer.php:961
|
5729 |
msgid "The directory does not exist"
|
5730 |
msgstr ""
|
5731 |
|
5732 |
+
#: src/restorer.php:1001
|
5733 |
msgid "wp-config.php from backup: will restore as wp-config-backup.php"
|
5734 |
msgstr ""
|
5735 |
|
5736 |
+
#: src/restorer.php:1008
|
5737 |
msgid "wp-config.php from backup: restoring (as per user's request)"
|
5738 |
msgstr ""
|
5739 |
|
5740 |
+
#: src/restorer.php:1191, src/restorer.php:1199
|
5741 |
msgid "UpdraftPlus needed to create a %s in your content directory, but failed - please check your file permissions and enable the access (%s)"
|
5742 |
msgstr ""
|
5743 |
|
5744 |
+
#: src/restorer.php:1199
|
5745 |
msgid "file"
|
5746 |
msgstr ""
|
5747 |
|
5748 |
+
#: src/restorer.php:1214
|
5749 |
msgid "Existing unremoved folders from a previous restore exist (please use the \"Delete Old Directories\" button to delete them before trying again): %s"
|
5750 |
msgstr ""
|
5751 |
|
5752 |
+
#: src/restorer.php:1221
|
5753 |
msgid "This version of UpdraftPlus does not know how to handle this type of foreign backup"
|
5754 |
msgstr ""
|
5755 |
|
5756 |
+
#: src/restorer.php:1324
|
5757 |
msgid "Deferring..."
|
5758 |
msgstr ""
|
5759 |
|
5760 |
+
#: src/restorer.php:1367, src/restorer.php:1415
|
5761 |
msgid "The WordPress content folder (wp-content) was not found in this zip file."
|
5762 |
msgstr ""
|
5763 |
|
5764 |
+
#: src/restorer.php:1508
|
5765 |
msgid "Files found:"
|
5766 |
msgstr ""
|
5767 |
|
5768 |
+
#: src/restorer.php:2035
|
5769 |
msgid "Please supply the requested information, and then continue."
|
5770 |
msgstr ""
|
5771 |
|
5772 |
+
#: src/restorer.php:2108
|
5773 |
msgid "Warning: PHP safe_mode is active on your server. Timeouts are much more likely. If these happen, then you will need to manually restore the file via phpMyAdmin or another method."
|
5774 |
msgstr ""
|
5775 |
|
5776 |
+
#: src/restorer.php:2131
|
5777 |
msgid "Failed to find database file"
|
5778 |
msgstr ""
|
5779 |
|
5780 |
+
#: src/restorer.php:2152
|
5781 |
msgid "Failed to open database file"
|
5782 |
msgstr ""
|
5783 |
|
5784 |
+
#: src/restorer.php:2232, src/restorer.php:2274
|
5785 |
msgid "Your database user does not have permission to drop tables"
|
5786 |
msgstr ""
|
5787 |
|
5788 |
+
#: src/restorer.php:2235
|
5789 |
msgid "Your database user does not have permission to create tables. We will attempt to restore by simply emptying the tables; this should work as long as a) you are restoring from a WordPress version with the same database structure, and b) Your imported database does not contain any tables which are not already present on the importing site."
|
5790 |
msgstr ""
|
5791 |
|
5792 |
+
#: src/restorer.php:2279
|
5793 |
msgid "Your database user does not have permission to drop tables. We will attempt to restore by simply emptying the tables; this should work as long as you are restoring from a WordPress version with the same database structure (%s)"
|
5794 |
msgstr ""
|
5795 |
|
5796 |
+
#: src/restorer.php:2325
|
5797 |
msgid "Backup of: %s"
|
5798 |
msgstr ""
|
5799 |
|
5800 |
+
#: src/restorer.php:2332
|
5801 |
msgid "Backup created by:"
|
5802 |
msgstr ""
|
5803 |
|
5804 |
+
#: src/restorer.php:2337
|
5805 |
msgid "Site home:"
|
5806 |
msgstr ""
|
5807 |
|
5808 |
+
#: src/restorer.php:2343
|
5809 |
msgid "Content URL:"
|
5810 |
msgstr ""
|
5811 |
|
5812 |
+
#: src/restorer.php:2348
|
5813 |
msgid "Uploads URL:"
|
5814 |
msgstr ""
|
5815 |
|
5816 |
+
#: src/restorer.php:2359
|
5817 |
msgid "Skipped tables:"
|
5818 |
msgstr ""
|
5819 |
|
5820 |
+
#: src/restorer.php:2399
|
5821 |
msgid "Split line to avoid exceeding maximum packet size"
|
5822 |
msgstr ""
|
5823 |
|
5824 |
+
#: src/restorer.php:2424, src/restorer.php:2893, src/restorer.php:2934, src/restorer.php:2947
|
5825 |
msgid "An error occurred on the first %s command - aborting run"
|
5826 |
msgstr ""
|
5827 |
|
5828 |
+
#: src/restorer.php:2525
|
5829 |
msgid "Requested table engine (%s) is not present - changing to MyISAM."
|
5830 |
msgstr ""
|
5831 |
|
5832 |
+
#: src/restorer.php:2538
|
5833 |
msgid "Requested table character set (%s) is not present - changing to %s."
|
5834 |
msgstr ""
|
5835 |
|
5836 |
+
#: src/restorer.php:2588
|
5837 |
msgid "Requested table collation (%1$s) is not present - changing to %2$s."
|
5838 |
msgid_plural "Requested table collations (%1$s) are not present - changing to %2$s."
|
5839 |
msgstr[0] ""
|
5840 |
msgstr[1] ""
|
5841 |
|
5842 |
+
#: src/restorer.php:2590
|
5843 |
msgid "Processing table (%s)"
|
5844 |
msgstr ""
|
5845 |
|
5846 |
+
#: src/restorer.php:2594
|
5847 |
msgid "will restore as:"
|
5848 |
msgstr ""
|
5849 |
|
5850 |
+
#: src/restorer.php:2633
|
5851 |
msgid "Found SET NAMES %s, but changing to %s as suggested by WPDB::determine_charset()."
|
5852 |
msgstr ""
|
5853 |
|
5854 |
+
#: src/restorer.php:2639
|
5855 |
msgid "Requested character set (%s) is not present - changing to %s."
|
5856 |
msgstr ""
|
5857 |
|
5858 |
+
#: src/restorer.php:2787
|
5859 |
msgid "An SQL line that is larger than the maximum packet size and cannot be split was found; this line will not be processed, but will be dropped: %s"
|
5860 |
msgstr ""
|
5861 |
|
5862 |
+
#: src/restorer.php:2924
|
5863 |
msgctxt "The user is being told the number of times an error has happened, e.g. An error (27) occurred"
|
5864 |
msgid "An error (%s) occurred:"
|
5865 |
msgstr ""
|
5866 |
|
5867 |
+
#: src/restorer.php:2945
|
5868 |
msgid "This problem is caused by trying to restore a database on a very old MySQL version that is incompatible with the source database."
|
5869 |
msgstr ""
|
5870 |
|
5871 |
+
#: src/restorer.php:2945
|
5872 |
msgid "This database needs to be deployed on MySQL version %s or later."
|
5873 |
msgstr ""
|
5874 |
|
5875 |
+
#: src/restorer.php:2947
|
5876 |
msgid "To use this backup, your database server needs to support the %s character set."
|
5877 |
msgstr ""
|
5878 |
|
5879 |
+
#: src/restorer.php:2952
|
5880 |
msgid "Too many database errors have occurred - aborting"
|
5881 |
msgstr ""
|
5882 |
|
5883 |
+
#: src/restorer.php:3072, src/restorer.php:3147
|
5884 |
msgid "Table prefix has changed: changing %s table field(s) accordingly:"
|
5885 |
msgstr ""
|
5886 |
|
7065 |
msgid "Your web server's version of PHP is too old (%s) - UpdraftPlus expects at least %s. You can try it, but don't be surprised if it does not work. To fix this problem, contact your web hosting company"
|
7066 |
msgstr ""
|
7067 |
|
7068 |
+
#: src/udaddons/options.php:232
|
7069 |
msgid "You are presently <strong>connected</strong> to an UpdraftPlus.Com account."
|
7070 |
msgstr ""
|
7071 |
|
7072 |
+
#: src/udaddons/options.php:237
|
7073 |
msgid "If you bought new add-ons, then follow this link to refresh your connection"
|
7074 |
msgstr ""
|
7075 |
|
7076 |
+
#: src/udaddons/options.php:238
|
7077 |
msgid "Note that after you have claimed your add-ons, you can remove your password (but not the email address) from the settings below, without affecting this site's access to updates."
|
7078 |
msgstr ""
|
7079 |
|
7080 |
+
#: src/udaddons/options.php:241
|
7081 |
msgid "You are presently <strong>not connected</strong> to an UpdraftPlus.Com account."
|
7082 |
msgstr ""
|
7083 |
|
7084 |
+
#: src/udaddons/options.php:248
|
7085 |
msgid "Errors occurred when trying to connect to UpdraftPlus.Com:"
|
7086 |
msgstr ""
|
7087 |
|
7088 |
+
#: src/udaddons/options.php:294
|
7089 |
msgid "Please wait whilst we make the claim..."
|
7090 |
msgstr ""
|
7091 |
|
7092 |
+
#: src/udaddons/options.php:295
|
7093 |
msgid "Claim not granted - perhaps you have already used this purchase somewhere else, or your paid period for downloading from updraftplus.com has expired?"
|
7094 |
msgstr ""
|
7095 |
|
7096 |
+
#: src/udaddons/options.php:296
|
7097 |
msgid "Claim not granted - your account login details were wrong"
|
7098 |
msgstr ""
|
7099 |
|
7100 |
+
#: src/udaddons/options.php:297
|
7101 |
msgid "An unknown response was received. Response was:"
|
7102 |
msgstr ""
|
7103 |
|
7104 |
+
#: src/udaddons/options.php:298
|
7105 |
msgid "The claim and installation was successful. You can now use your purchase!"
|
7106 |
msgstr ""
|
7107 |
|
7108 |
+
#: src/udaddons/options.php:354, src/udaddons/updraftplus-addons.php:315
|
7109 |
msgid "UpdraftPlus Addons"
|
7110 |
msgstr ""
|
7111 |
|
7112 |
+
#: src/udaddons/options.php:365
|
7113 |
msgid "An update containing your addons is available for UpdraftPlus - please follow this link to get it."
|
7114 |
msgstr ""
|
7115 |
|
7116 |
+
#: src/udaddons/options.php:414
|
7117 |
msgid "An error occurred when trying to retrieve your add-ons."
|
7118 |
msgstr ""
|
7119 |
|
7120 |
+
#: src/udaddons/options.php:430
|
7121 |
msgid "UpdraftPlus Support"
|
7122 |
msgstr ""
|
7123 |
|
7124 |
+
#: src/udaddons/options.php:432
|
7125 |
msgid "Need to get support?"
|
7126 |
msgstr ""
|
7127 |
|
7128 |
+
#: src/udaddons/options.php:432
|
7129 |
msgid "Go here"
|
7130 |
msgstr ""
|
7131 |
|
7132 |
+
#: src/udaddons/options.php:469, src/udaddons/options.php:469
|
7133 |
msgid "You've got it"
|
7134 |
msgstr ""
|
7135 |
|
7136 |
+
#: src/udaddons/options.php:471
|
7137 |
msgid "Your version: %s"
|
7138 |
msgstr ""
|
7139 |
|
7140 |
+
#: src/udaddons/options.php:473, src/udaddons/options.php:475
|
7141 |
msgid "latest"
|
7142 |
msgstr ""
|
7143 |
|
7144 |
+
#: src/udaddons/options.php:477
|
7145 |
msgid "(apparently a pre-release or withdrawn release)"
|
7146 |
msgstr ""
|
7147 |
|
7148 |
+
#: src/udaddons/options.php:483
|
7149 |
msgid "Available for this site (via your all-addons purchase)"
|
7150 |
msgstr ""
|
7151 |
|
7152 |
+
#: src/udaddons/options.php:483
|
7153 |
msgid "please follow this link to update the plugin in order to get it"
|
7154 |
msgstr ""
|
7155 |
|
7156 |
+
#: src/udaddons/options.php:486
|
7157 |
msgid "Assigned to this site"
|
7158 |
msgstr ""
|
7159 |
|
7160 |
+
#: src/udaddons/options.php:486
|
7161 |
msgid "please follow this link to update the plugin in order to activate it"
|
7162 |
msgstr ""
|
7163 |
|
7164 |
+
#: src/udaddons/options.php:492
|
7165 |
msgid "Available to claim on this site"
|
7166 |
msgstr ""
|
7167 |
|
7168 |
+
#: src/udaddons/options.php:492, src/udaddons/options.php:494
|
7169 |
msgid "activate it on this site"
|
7170 |
msgstr ""
|
7171 |
|
7172 |
+
#: src/udaddons/options.php:494
|
7173 |
msgid "You have an inactive purchase"
|
7174 |
msgstr ""
|
7175 |
|
7176 |
+
#: src/udaddons/options.php:498
|
7177 |
msgid "Get it from the UpdraftPlus.Com Store"
|
7178 |
msgstr ""
|
7179 |
|
7180 |
+
#: src/udaddons/options.php:498
|
7181 |
msgid "(or connect using the form on this page if you have already purchased it)"
|
7182 |
msgstr ""
|
7183 |
|
7184 |
+
#: src/udaddons/options.php:499, src/udaddons/options.php:499
|
7185 |
msgid "Buy It"
|
7186 |
msgstr ""
|
7187 |
|
7188 |
+
#: src/udaddons/options.php:521
|
7189 |
msgid "Manage Addons"
|
7190 |
msgstr ""
|
7191 |
|
@@ -63,7 +63,7 @@ abstract class UpdraftPlus_RemoteStorage_Addons_Base_v2 extends UpdraftPlus_Back
|
|
63 |
protected function required_configuration_keys() {
|
64 |
}
|
65 |
|
66 |
-
public function upload_files($ret, $backup_array) {
|
67 |
|
68 |
global $updraftplus;
|
69 |
|
@@ -127,7 +127,7 @@ abstract class UpdraftPlus_RemoteStorage_Addons_Base_v2 extends UpdraftPlus_Back
|
|
127 |
|
128 |
}
|
129 |
|
130 |
-
public function delete_files($ret, $files, $ignore_it = false) {
|
131 |
|
132 |
global $updraftplus;
|
133 |
|
63 |
protected function required_configuration_keys() {
|
64 |
}
|
65 |
|
66 |
+
public function upload_files($ret, $backup_array) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
67 |
|
68 |
global $updraftplus;
|
69 |
|
127 |
|
128 |
}
|
129 |
|
130 |
+
public function delete_files($ret, $files, $ignore_it = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
131 |
|
132 |
global $updraftplus;
|
133 |
|
@@ -19,7 +19,7 @@ class UpdraftPlus_BackupModule_AddonNotYetPresent extends UpdraftPlus_BackupModu
|
|
19 |
$this->error_msg_trans = sprintf(__('This remote storage method (%s) requires PHP %s or later.', 'updraftplus'), $this->description, $this->required_php);
|
20 |
}
|
21 |
|
22 |
-
public function backup($backup_array) {
|
23 |
|
24 |
global $updraftplus;
|
25 |
|
@@ -59,7 +59,7 @@ class UpdraftPlus_BackupModule_AddonNotYetPresent extends UpdraftPlus_BackupModu
|
|
59 |
return array('multi_options', 'config_templates');
|
60 |
}
|
61 |
|
62 |
-
public function delete($files, $method_obj = false, $sizeinfo = array()) {
|
63 |
|
64 |
global $updraftplus;
|
65 |
|
@@ -71,7 +71,7 @@ class UpdraftPlus_BackupModule_AddonNotYetPresent extends UpdraftPlus_BackupModu
|
|
71 |
|
72 |
}
|
73 |
|
74 |
-
public function listfiles($match = 'backup_') {
|
75 |
return new WP_Error('no_addon', sprintf(__('You do not have the UpdraftPlus %s add-on installed - get it from %s', 'updraftplus'), $this->description, ''.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/")));
|
76 |
}
|
77 |
|
@@ -81,7 +81,7 @@ class UpdraftPlus_BackupModule_AddonNotYetPresent extends UpdraftPlus_BackupModu
|
|
81 |
* @return String - the template, ready for substitutions to be carried out
|
82 |
*/
|
83 |
public function get_configuration_template() {
|
84 |
-
$link = sprintf(__('%s support is available as an add-on', 'updraftplus'), $this->description).' - <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/".$this->method."/").'">'.__('follow this link to get it', 'updraftplus');
|
85 |
|
86 |
$default = '
|
87 |
<tr class="updraftplusmethod '.$this->method.'">
|
19 |
$this->error_msg_trans = sprintf(__('This remote storage method (%s) requires PHP %s or later.', 'updraftplus'), $this->description, $this->required_php);
|
20 |
}
|
21 |
|
22 |
+
public function backup($backup_array) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
23 |
|
24 |
global $updraftplus;
|
25 |
|
59 |
return array('multi_options', 'config_templates');
|
60 |
}
|
61 |
|
62 |
+
public function delete($files, $method_obj = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
63 |
|
64 |
global $updraftplus;
|
65 |
|
71 |
|
72 |
}
|
73 |
|
74 |
+
public function listfiles($match = 'backup_') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
75 |
return new WP_Error('no_addon', sprintf(__('You do not have the UpdraftPlus %s add-on installed - get it from %s', 'updraftplus'), $this->description, ''.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/")));
|
76 |
}
|
77 |
|
81 |
* @return String - the template, ready for substitutions to be carried out
|
82 |
*/
|
83 |
public function get_configuration_template() {
|
84 |
+
$link = sprintf(__('%s support is available as an add-on', 'updraftplus'), $this->description).' - <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/".$this->method."/").'" target="_blank">'.__('follow this link to get it', 'updraftplus');
|
85 |
|
86 |
$default = '
|
87 |
<tr class="updraftplusmethod '.$this->method.'">
|
@@ -99,7 +99,7 @@ class UpdraftPlus_BackupModule_cloudfiles_opencloudsdk extends UpdraftPlus_Backu
|
|
99 |
if (!function_exists('json_last_error')) {
|
100 |
$updraftplus_admin->show_double_warning('<strong>'.__('Warning', 'updraftplus').':</strong> '.sprintf(__('Your web server\'s PHP installation does not included a required module (%s). Please contact your web hosting provider\'s support.', 'updraftplus'), 'json').' '.sprintf(__("UpdraftPlus's %s module <strong>requires</strong> %s. Please do not file any support requests; there is no alternative.", 'updraftplus'), 'Cloud Files', 'json'), 'cloudfiles', false);
|
101 |
}
|
102 |
-
echo '<p>' . __('Get your API key <a href="https://mycloud.rackspace.com/">from your Rackspace Cloud console</a> (read instructions <a href="http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key">here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist.', 'updraftplus').' <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/faqs/there-appear-to-be-lots-of-extra-files-in-my-rackspace-cloud-files-container/").'">'.__('Also, you should read this important FAQ.', 'updraftplus').'</a></p>';
|
103 |
}
|
104 |
|
105 |
/**
|
@@ -134,7 +134,7 @@ class UpdraftPlus_BackupModule_cloudfiles_opencloudsdk extends UpdraftPlus_Backu
|
|
134 |
<th>'.__('Cloud Files Username', 'updraftplus').':</th>
|
135 |
<td><input data-updraft_settings_test="user" type="text" autocomplete="off" class="updraft_input--wide" '.$this->output_settings_field_name_and_id('user', true).' value="{{user}}" />
|
136 |
<div style="clear:both;">
|
137 |
-
'.apply_filters('updraft_cloudfiles_apikeysetting', '<a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/cloudfiles-enhanced/").'"><em>'.__('To create a new Rackspace API sub-user and API key that has access only to this Rackspace container, use this add-on.', 'updraftplus').'</em></a>').'
|
138 |
</div>
|
139 |
</td>
|
140 |
</tr>
|
99 |
if (!function_exists('json_last_error')) {
|
100 |
$updraftplus_admin->show_double_warning('<strong>'.__('Warning', 'updraftplus').':</strong> '.sprintf(__('Your web server\'s PHP installation does not included a required module (%s). Please contact your web hosting provider\'s support.', 'updraftplus'), 'json').' '.sprintf(__("UpdraftPlus's %s module <strong>requires</strong> %s. Please do not file any support requests; there is no alternative.", 'updraftplus'), 'Cloud Files', 'json'), 'cloudfiles', false);
|
101 |
}
|
102 |
+
echo '<p>' . __('Get your API key <a href="https://mycloud.rackspace.com/" target="_blank">from your Rackspace Cloud console</a> (read instructions <a href="http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key" target="_blank">here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist.', 'updraftplus').' <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/faqs/there-appear-to-be-lots-of-extra-files-in-my-rackspace-cloud-files-container/").'" target="_blank">'.__('Also, you should read this important FAQ.', 'updraftplus').'</a></p>';
|
103 |
}
|
104 |
|
105 |
/**
|
134 |
<th>'.__('Cloud Files Username', 'updraftplus').':</th>
|
135 |
<td><input data-updraft_settings_test="user" type="text" autocomplete="off" class="updraft_input--wide" '.$this->output_settings_field_name_and_id('user', true).' value="{{user}}" />
|
136 |
<div style="clear:both;">
|
137 |
+
'.apply_filters('updraft_cloudfiles_apikeysetting', '<a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/cloudfiles-enhanced/").'" target="_blank"><em>'.__('To create a new Rackspace API sub-user and API key that has access only to this Rackspace container, use this add-on.', 'updraftplus').'</em></a>').'
|
138 |
</div>
|
139 |
</td>
|
140 |
</tr>
|
@@ -266,7 +266,7 @@ class UpdraftPlus_BackupModule_cloudfiles_oldsdk extends UpdraftPlus_BackupModul
|
|
266 |
|
267 |
}
|
268 |
|
269 |
-
public function delete($files, $cloudfilesarr = false, $sizeinfo = array()) {
|
270 |
|
271 |
global $updraftplus;
|
272 |
if (is_string($files)) $files =array($files);
|
@@ -443,7 +443,7 @@ class UpdraftPlus_BackupModule_cloudfiles_oldsdk extends UpdraftPlus_BackupModul
|
|
443 |
?>
|
444 |
|
445 |
<?php
|
446 |
-
echo '<p>' . __('Get your API key <a href="https://mycloud.rackspace.com/">from your Rackspace Cloud console</a> (read instructions <a href="http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key">here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist.', 'updraftplus').' <a href="https://updraftplus.com/faqs/there-appear-to-be-lots-of-extra-files-in-my-rackspace-cloud-files-container/">'.__('Also, you should read this important FAQ.', 'updraftplus').'</a></p>';
|
447 |
?>
|
448 |
</td>
|
449 |
</tr>
|
266 |
|
267 |
}
|
268 |
|
269 |
+
public function delete($files, $cloudfilesarr = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
270 |
|
271 |
global $updraftplus;
|
272 |
if (is_string($files)) $files =array($files);
|
443 |
?>
|
444 |
|
445 |
<?php
|
446 |
+
echo '<p>' . __('Get your API key <a href="https://mycloud.rackspace.com/" target="_blank">from your Rackspace Cloud console</a> (read instructions <a href="http://www.rackspace.com/knowledge_center/article/rackspace-cloud-essentials-1-generating-your-api-key" target="_blank">here</a>), then pick a container name to use for storage. This container will be created for you if it does not already exist.', 'updraftplus').' <a href="https://updraftplus.com/faqs/there-appear-to-be-lots-of-extra-files-in-my-rackspace-cloud-files-container/" target="_blank">'.__('Also, you should read this important FAQ.', 'updraftplus').'</a></p>';
|
447 |
?>
|
448 |
</td>
|
449 |
</tr>
|
@@ -23,7 +23,7 @@ class UpdraftPlus_BackupModule_dreamobjects extends UpdraftPlus_BackupModule_s3
|
|
23 |
|
24 |
protected $use_v4 = false;
|
25 |
|
26 |
-
protected function set_region($obj, $region = '', $bucket_name = '') {
|
27 |
$config = $this->get_config();
|
28 |
$endpoint = ('' != $region && 'n/a' != $region) ? $region : $config['endpoint'];
|
29 |
global $updraftplus;
|
@@ -70,9 +70,11 @@ class UpdraftPlus_BackupModule_dreamobjects extends UpdraftPlus_BackupModule_s3
|
|
70 |
/**
|
71 |
* Retrieve specific options for this remote storage module
|
72 |
*
|
|
|
|
|
73 |
* @return Array - an array of options
|
74 |
*/
|
75 |
-
protected function get_config() {
|
76 |
$opts = $this->get_options();
|
77 |
$opts['whoweare'] = 'DreamObjects';
|
78 |
$opts['whoweare_long'] = 'DreamObjects';
|
@@ -90,7 +92,7 @@ class UpdraftPlus_BackupModule_dreamobjects extends UpdraftPlus_BackupModule_s3
|
|
90 |
* @return String - the template
|
91 |
*/
|
92 |
public function get_pre_configuration_template() {
|
93 |
-
$this->get_pre_configuration_template_engine('dreamobjects', 'DreamObjects', 'DreamObjects', 'DreamObjects', 'https://panel.dreamhost.com/index.cgi?tree=storage.dreamhostobjects', '<a href="https://dreamhost.com/cloud/dreamobjects/"><img alt="DreamObjects" src="'.UPDRAFTPLUS_URL.'/images/dreamobjects_logo-horiz-2013.png"></a>');
|
94 |
}
|
95 |
|
96 |
/**
|
@@ -99,7 +101,7 @@ class UpdraftPlus_BackupModule_dreamobjects extends UpdraftPlus_BackupModule_s3
|
|
99 |
* @return String - the template, ready for substitutions to be carried out
|
100 |
*/
|
101 |
public function get_configuration_template() {
|
102 |
-
return $this->get_configuration_template_engine('dreamobjects', 'DreamObjects', 'DreamObjects', 'DreamObjects', 'https://panel.dreamhost.com/index.cgi?tree=storage.dreamhostobjects', '<a href="https://dreamhost.com/cloud/dreamobjects/"><img alt="DreamObjects" src="'.UPDRAFTPLUS_URL.'/images/dreamobjects_logo-horiz-2013.png"></a>');
|
103 |
}
|
104 |
|
105 |
/**
|
23 |
|
24 |
protected $use_v4 = false;
|
25 |
|
26 |
+
protected function set_region($obj, $region = '', $bucket_name = '') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
27 |
$config = $this->get_config();
|
28 |
$endpoint = ('' != $region && 'n/a' != $region) ? $region : $config['endpoint'];
|
29 |
global $updraftplus;
|
70 |
/**
|
71 |
* Retrieve specific options for this remote storage module
|
72 |
*
|
73 |
+
* @param Boolean $force_refresh - if set, and if relevant, don't use cached credentials, but get them afresh
|
74 |
+
*
|
75 |
* @return Array - an array of options
|
76 |
*/
|
77 |
+
protected function get_config($force_refresh = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
78 |
$opts = $this->get_options();
|
79 |
$opts['whoweare'] = 'DreamObjects';
|
80 |
$opts['whoweare_long'] = 'DreamObjects';
|
92 |
* @return String - the template
|
93 |
*/
|
94 |
public function get_pre_configuration_template() {
|
95 |
+
$this->get_pre_configuration_template_engine('dreamobjects', 'DreamObjects', 'DreamObjects', 'DreamObjects', 'https://panel.dreamhost.com/index.cgi?tree=storage.dreamhostobjects', '<a href="https://dreamhost.com/cloud/dreamobjects/" target="_blank"><img alt="DreamObjects" src="'.UPDRAFTPLUS_URL.'/images/dreamobjects_logo-horiz-2013.png"></a>');
|
96 |
}
|
97 |
|
98 |
/**
|
101 |
* @return String - the template, ready for substitutions to be carried out
|
102 |
*/
|
103 |
public function get_configuration_template() {
|
104 |
+
return $this->get_configuration_template_engine('dreamobjects', 'DreamObjects', 'DreamObjects', 'DreamObjects', 'https://panel.dreamhost.com/index.cgi?tree=storage.dreamhostobjects', '<a href="https://dreamhost.com/cloud/dreamobjects/" target="_blank"><img alt="DreamObjects" src="'.UPDRAFTPLUS_URL.'/images/dreamobjects_logo-horiz-2013.png"></a>');
|
105 |
}
|
106 |
|
107 |
/**
|
@@ -428,7 +428,7 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
|
|
428 |
return apply_filters('updraftplus_dropbox_defaults', array('Z3Q3ZmkwbnplNHA0Zzlx', 'bTY0bm9iNmY4eWhjODRt'));
|
429 |
}
|
430 |
|
431 |
-
public function delete($files, $data = null, $sizeinfo = array()) {
|
432 |
|
433 |
global $updraftplus;
|
434 |
if (is_string($files)) $files = array($files);
|
@@ -514,7 +514,7 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
|
|
514 |
*
|
515 |
* @return String - the data downloaded
|
516 |
*/
|
517 |
-
public function chunked_download($file, $headers, $data, $fh) {
|
518 |
|
519 |
global $updraftplus;
|
520 |
|
@@ -600,9 +600,9 @@ class UpdraftPlus_BackupModule_dropbox extends UpdraftPlus_BackupModule {
|
|
600 |
ob_start();
|
601 |
$classes = $this->get_css_classes();
|
602 |
|
603 |
-
$defmsg = '<tr class="'.$classes.'"><td></td><td><strong>'.__('Need to use sub-folders?', 'updraftplus').'</strong> '.__('Backups are saved in', 'updraftplus').' apps/UpdraftPlus. '.__('If you backup several sites into the same Dropbox and want to organize with sub-folders, then ', 'updraftplus').'<a href="https://updraftplus.com/shop/">'.__("there's an add-on for that.", 'updraftplus').'</a></td></tr>';
|
604 |
|
605 |
-
$defmsg = '<tr class="'.$classes.'"><td></td><td><strong>'.__('Need to use sub-folders?', 'updraftplus').'</strong> '.__('Backups are saved in', 'updraftplus').' apps/UpdraftPlus. '.__('If you backup several sites into the same Dropbox and want to organize with sub-folders, then ', 'updraftplus').'<a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/").'">'.__("there's an add-on for that.", 'updraftplus').'</a></td></tr>';
|
606 |
|
607 |
$extra_config = apply_filters('updraftplus_dropbox_extra_config_template', $defmsg, $this);
|
608 |
echo $extra_config;
|
428 |
return apply_filters('updraftplus_dropbox_defaults', array('Z3Q3ZmkwbnplNHA0Zzlx', 'bTY0bm9iNmY4eWhjODRt'));
|
429 |
}
|
430 |
|
431 |
+
public function delete($files, $data = null, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
432 |
|
433 |
global $updraftplus;
|
434 |
if (is_string($files)) $files = array($files);
|
514 |
*
|
515 |
* @return String - the data downloaded
|
516 |
*/
|
517 |
+
public function chunked_download($file, $headers, $data, $fh) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
518 |
|
519 |
global $updraftplus;
|
520 |
|
600 |
ob_start();
|
601 |
$classes = $this->get_css_classes();
|
602 |
|
603 |
+
$defmsg = '<tr class="'.$classes.'"><td></td><td><strong>'.__('Need to use sub-folders?', 'updraftplus').'</strong> '.__('Backups are saved in', 'updraftplus').' apps/UpdraftPlus. '.__('If you backup several sites into the same Dropbox and want to organize with sub-folders, then ', 'updraftplus').'<a href="https://updraftplus.com/shop/" target="_blank">'.__("there's an add-on for that.", 'updraftplus').'</a></td></tr>';
|
604 |
|
605 |
+
$defmsg = '<tr class="'.$classes.'"><td></td><td><strong>'.__('Need to use sub-folders?', 'updraftplus').'</strong> '.__('Backups are saved in', 'updraftplus').' apps/UpdraftPlus. '.__('If you backup several sites into the same Dropbox and want to organize with sub-folders, then ', 'updraftplus').'<a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/").'" target="_blank">'.__("there's an add-on for that.", 'updraftplus').'</a></td></tr>';
|
606 |
|
607 |
$extra_config = apply_filters('updraftplus_dropbox_extra_config_template', $defmsg, $this);
|
608 |
echo $extra_config;
|
@@ -94,7 +94,7 @@ class UpdraftPlus_BackupModule_email extends UpdraftPlus_BackupModule {
|
|
94 |
|
95 |
$used = apply_filters('updraftplus_email_whichaddresses',
|
96 |
sprintf(__("Your site's admin email address (%s) will be used.", 'updraftplus'), get_bloginfo('admin_email').' - <a href="'.esc_attr(admin_url('options-general.php')).'">'.__("configure it here", 'updraftplus').'</a>').
|
97 |
-
' <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/reporting/").'">'.sprintf(__('For more options, use the "%s" add-on.', 'updraftplus'), __('Reporting', 'updraftplus')).'</a>'
|
98 |
);
|
99 |
|
100 |
echo $used.' '.sprintf(__('Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive.', 'updraftplus'), '10-20');
|
94 |
|
95 |
$used = apply_filters('updraftplus_email_whichaddresses',
|
96 |
sprintf(__("Your site's admin email address (%s) will be used.", 'updraftplus'), get_bloginfo('admin_email').' - <a href="'.esc_attr(admin_url('options-general.php')).'">'.__("configure it here", 'updraftplus').'</a>').
|
97 |
+
' <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/reporting/").'" target="_blank">'.sprintf(__('For more options, use the "%s" add-on.', 'updraftplus'), __('Reporting', 'updraftplus')).'</a>'
|
98 |
);
|
99 |
|
100 |
echo $used.' '.sprintf(__('Be aware that mail servers tend to have size limits; typically around %s MB; backups larger than any limits will likely not arrive.', 'updraftplus'), '10-20');
|
@@ -211,7 +211,7 @@ class UpdraftPlus_BackupModule_ftp extends UpdraftPlus_BackupModule {
|
|
211 |
|
212 |
}
|
213 |
|
214 |
-
public function delete($files, $ftparr = array(), $sizeinfo = array()) {
|
215 |
|
216 |
global $updraftplus;
|
217 |
if (is_string($files)) $files = array($files);
|
@@ -333,7 +333,7 @@ class UpdraftPlus_BackupModule_ftp extends UpdraftPlus_BackupModule {
|
|
333 |
|
334 |
?>
|
335 |
|
336 |
-
<em><?php echo '<p>' . apply_filters('updraft_sftp_ftps_notice', '<strong>'.htmlspecialchars(__('Only non-encrypted FTP is supported by regular UpdraftPlus.')).'</strong> <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/sftp/").'">'.__('If you want encryption (e.g. you are storing sensitive business data), then an add-on is available.', 'updraftplus')).'</a></p>'; ?></em>
|
337 |
</td>
|
338 |
</tr>
|
339 |
|
211 |
|
212 |
}
|
213 |
|
214 |
+
public function delete($files, $ftparr = array(), $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
215 |
|
216 |
global $updraftplus;
|
217 |
if (is_string($files)) $files = array($files);
|
333 |
|
334 |
?>
|
335 |
|
336 |
+
<em><?php echo '<p>' . apply_filters('updraft_sftp_ftps_notice', '<strong>'.htmlspecialchars(__('Only non-encrypted FTP is supported by regular UpdraftPlus.')).'</strong> <a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/sftp/").'" target="_blank">'.__('If you want encryption (e.g. you are storing sensitive business data), then an add-on is available.', 'updraftplus')).'</a></p>'; ?></em>
|
337 |
</td>
|
338 |
</tr>
|
339 |
|
@@ -885,7 +885,7 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
|
|
885 |
return $result;
|
886 |
}
|
887 |
|
888 |
-
public function delete($files, $data = null, $sizeinfo = array()) {
|
889 |
|
890 |
if (is_string($files)) $files = array($files);
|
891 |
|
@@ -1202,9 +1202,9 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
|
|
1202 |
// If we are not using the master app then show them the instructions for Client ID and Secret
|
1203 |
?>
|
1204 |
<p><a href="<?php echo apply_filters('updraftplus_com_link', 'https://updraftplus.com/support/configuring-google-drive-api-access-in-updraftplus/');
|
1205 |
-
?>"><strong><?php _e('For longer help, including screenshots, follow this link. The description below is sufficient for more expert users.', 'updraftplus');?></strong></a></p>
|
1206 |
|
1207 |
-
<p><a href="https://console.developers.google.com"><?php _e('Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section.', 'updraftplus');?></a> <?php _e("Select 'Web Application' as the application type.", 'updraftplus');?></p><p><?php echo htmlspecialchars(__('You must add the following as the authorised redirect URI (under "More Options") when asked', 'updraftplus'));?>: <kbd><?php echo UpdraftPlus_Options::admin_page_url().'?action=updraftmethod-googledrive-auth'; ?></kbd> <?php _e('N.B. If you install UpdraftPlus on several WordPress sites, then you cannot re-use your project; you must create a new one from your Google API console for each site.', 'updraftplus');?>
|
1208 |
</p>
|
1209 |
<?php
|
1210 |
}
|
@@ -1262,7 +1262,7 @@ class UpdraftPlus_BackupModule_googledrive extends UpdraftPlus_BackupModule {
|
|
1262 |
{{/if}}
|
1263 |
<br>
|
1264 |
<em>
|
1265 |
-
<a href="<?php echo apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/updraftplus-premium/");?>">
|
1266 |
<?php echo __('To be able to set a custom folder name, use UpdraftPlus Premium.', 'updraftplus');?>
|
1267 |
</a>
|
1268 |
</em>
|
885 |
return $result;
|
886 |
}
|
887 |
|
888 |
+
public function delete($files, $data = null, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
889 |
|
890 |
if (is_string($files)) $files = array($files);
|
891 |
|
1202 |
// If we are not using the master app then show them the instructions for Client ID and Secret
|
1203 |
?>
|
1204 |
<p><a href="<?php echo apply_filters('updraftplus_com_link', 'https://updraftplus.com/support/configuring-google-drive-api-access-in-updraftplus/');
|
1205 |
+
?>" target="_blank"><strong><?php _e('For longer help, including screenshots, follow this link. The description below is sufficient for more expert users.', 'updraftplus');?></strong></a></p>
|
1206 |
|
1207 |
+
<p><a href="https://console.developers.google.com" target="_blank"><?php _e('Follow this link to your Google API Console, and there activate the Drive API and create a Client ID in the API Access section.', 'updraftplus');?></a> <?php _e("Select 'Web Application' as the application type.", 'updraftplus');?></p><p><?php echo htmlspecialchars(__('You must add the following as the authorised redirect URI (under "More Options") when asked', 'updraftplus'));?>: <kbd><?php echo UpdraftPlus_Options::admin_page_url().'?action=updraftmethod-googledrive-auth'; ?></kbd> <?php _e('N.B. If you install UpdraftPlus on several WordPress sites, then you cannot re-use your project; you must create a new one from your Google API console for each site.', 'updraftplus');?>
|
1208 |
</p>
|
1209 |
<?php
|
1210 |
}
|
1262 |
{{/if}}
|
1263 |
<br>
|
1264 |
<em>
|
1265 |
+
<a href="<?php echo apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/updraftplus-premium/");?>" target="_blank">
|
1266 |
<?php echo __('To be able to set a custom folder name, use UpdraftPlus Premium.', 'updraftplus');?>
|
1267 |
</a>
|
1268 |
</em>
|
@@ -34,7 +34,7 @@ class UpdraftPlus_BackupModule_insufficientphp extends UpdraftPlus_BackupModule
|
|
34 |
* @param array $backup_array An array backups
|
35 |
* @return array
|
36 |
*/
|
37 |
-
public function backup($backup_array) {
|
38 |
return $this->log_error();
|
39 |
}
|
40 |
|
@@ -72,7 +72,7 @@ class UpdraftPlus_BackupModule_insufficientphp extends UpdraftPlus_BackupModule
|
|
72 |
* @param string $match THis will specify which match is used for the SQL but by default it is set to 'backup_' unless specified
|
73 |
* @return array
|
74 |
*/
|
75 |
-
public function listfiles($match = 'backup_') {
|
76 |
return new WP_Error('insufficient_php', $this->error_msg_trans);
|
77 |
}
|
78 |
|
@@ -84,7 +84,7 @@ class UpdraftPlus_BackupModule_insufficientphp extends UpdraftPlus_BackupModule
|
|
84 |
* @param array $sizeinfo This is the size info on the file.
|
85 |
* @return array
|
86 |
*/
|
87 |
-
public function delete($files, $data = false, $sizeinfo = array()) {
|
88 |
return $this->log_error();
|
89 |
}
|
90 |
|
@@ -95,7 +95,7 @@ class UpdraftPlus_BackupModule_insufficientphp extends UpdraftPlus_BackupModule
|
|
95 |
* @param string $file List of files
|
96 |
* @return array
|
97 |
*/
|
98 |
-
public function download($file) {
|
99 |
return $this->log_error();
|
100 |
}
|
101 |
|
34 |
* @param array $backup_array An array backups
|
35 |
* @return array
|
36 |
*/
|
37 |
+
public function backup($backup_array) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
38 |
return $this->log_error();
|
39 |
}
|
40 |
|
72 |
* @param string $match THis will specify which match is used for the SQL but by default it is set to 'backup_' unless specified
|
73 |
* @return array
|
74 |
*/
|
75 |
+
public function listfiles($match = 'backup_') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
76 |
return new WP_Error('insufficient_php', $this->error_msg_trans);
|
77 |
}
|
78 |
|
84 |
* @param array $sizeinfo This is the size info on the file.
|
85 |
* @return array
|
86 |
*/
|
87 |
+
public function delete($files, $data = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
88 |
return $this->log_error();
|
89 |
}
|
90 |
|
95 |
* @param string $file List of files
|
96 |
* @return array
|
97 |
*/
|
98 |
+
public function download($file) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
99 |
return $this->log_error();
|
100 |
}
|
101 |
|
@@ -332,7 +332,7 @@ class UpdraftPlus_BackupModule_openstack_base extends UpdraftPlus_BackupModule {
|
|
332 |
return true;
|
333 |
}
|
334 |
|
335 |
-
public function delete($files, $data = false, $sizeinfo = array()) {
|
336 |
|
337 |
global $updraftplus;
|
338 |
if (is_string($files)) $files = array($files);
|
332 |
return true;
|
333 |
}
|
334 |
|
335 |
+
public function delete($files, $data = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
336 |
|
337 |
global $updraftplus;
|
338 |
if (is_string($files)) $files = array($files);
|
@@ -117,7 +117,7 @@ class UpdraftPlus_BackupModule_openstack extends UpdraftPlus_BackupModule_openst
|
|
117 |
public function get_pre_configuration_middlesection_template() {
|
118 |
|
119 |
?>
|
120 |
-
<p><?php _e('Get your access credentials from your OpenStack Swift provider, and then pick a container name to use for storage. This container will be created for you if it does not already exist.', 'updraftplus');?> <a href="<?php echo apply_filters("updraftplus_com_link", "https://updraftplus.com/faqs/there-appear-to-be-lots-of-extra-files-in-my-rackspace-cloud-files-container/");?>"><?php _e('Also, you should read this important FAQ.', 'updraftplus'); ?></a></p>
|
121 |
|
122 |
<?php
|
123 |
}
|
@@ -141,7 +141,7 @@ class UpdraftPlus_BackupModule_openstack extends UpdraftPlus_BackupModule_openst
|
|
141 |
</tr>
|
142 |
|
143 |
<tr class="<?php echo $classes; ?>">
|
144 |
-
<th><a href="http://docs.openstack.org/openstack-ops/content/projects_users.html" title="<?php _e('Follow this link for more information', 'updraftplus');?>"><?php _e('Tenant', 'updraftplus');?></a>:</th>
|
145 |
<td><input data-updraft_settings_test="tenant" type="text" autocomplete="off" class="updraft_input--wide" <?php $this->output_settings_field_name_and_id('tenant');?> value="{{tenant}}" />
|
146 |
</td>
|
147 |
</tr>
|
117 |
public function get_pre_configuration_middlesection_template() {
|
118 |
|
119 |
?>
|
120 |
+
<p><?php _e('Get your access credentials from your OpenStack Swift provider, and then pick a container name to use for storage. This container will be created for you if it does not already exist.', 'updraftplus');?> <a href="<?php echo apply_filters("updraftplus_com_link", "https://updraftplus.com/faqs/there-appear-to-be-lots-of-extra-files-in-my-rackspace-cloud-files-container/");?>" target="_blank"><?php _e('Also, you should read this important FAQ.', 'updraftplus'); ?></a></p>
|
121 |
|
122 |
<?php
|
123 |
}
|
141 |
</tr>
|
142 |
|
143 |
<tr class="<?php echo $classes; ?>">
|
144 |
+
<th><a href="http://docs.openstack.org/openstack-ops/content/projects_users.html" title="<?php _e('Follow this link for more information', 'updraftplus');?>" target="_blank"><?php _e('Tenant', 'updraftplus');?></a>:</th>
|
145 |
<td><input data-updraft_settings_test="tenant" type="text" autocomplete="off" class="updraft_input--wide" <?php $this->output_settings_field_name_and_id('tenant');?> value="{{tenant}}" />
|
146 |
</td>
|
147 |
</tr>
|
@@ -320,7 +320,7 @@ class UpdraftPlus_Addons_RemoteStorage_remotesend extends UpdraftPlus_RemoteStor
|
|
320 |
return $response;
|
321 |
}
|
322 |
|
323 |
-
public function do_bootstrap($opts, $connect = true) {
|
324 |
|
325 |
global $updraftplus;
|
326 |
|
320 |
return $response;
|
321 |
}
|
322 |
|
323 |
+
public function do_bootstrap($opts, $connect = true) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
324 |
|
325 |
global $updraftplus;
|
326 |
|
@@ -32,9 +32,11 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
32 |
/**
|
33 |
* Retrieve specific options for this remote storage module
|
34 |
*
|
|
|
|
|
35 |
* @return Array - an array of options
|
36 |
*/
|
37 |
-
protected function get_config() {
|
38 |
$opts = $this->get_options();
|
39 |
$opts['whoweare'] = 'S3';
|
40 |
$opts['whoweare_long'] = 'Amazon S3';
|
@@ -215,7 +217,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
215 |
return $storage;
|
216 |
}
|
217 |
|
218 |
-
protected function set_region($obj, $region, $bucket_name = '') {
|
219 |
global $updraftplus;
|
220 |
switch ($region) {
|
221 |
case 'EU':
|
@@ -288,10 +290,6 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
288 |
return $updraftplus->log_wp_error($err, false, true);
|
289 |
}
|
290 |
|
291 |
-
$whoweare = $config['whoweare'];
|
292 |
-
$whoweare_key = $config['key'];
|
293 |
-
$whoweare_keys = substr($whoweare_key, 0, 3);
|
294 |
-
$sse = empty($config['server_side_encryption']) ? false : true;
|
295 |
if (empty($config['sessiontoken'])) $config['sessiontoken'] = null;
|
296 |
|
297 |
$storage = $this->getS3(
|
@@ -301,12 +299,16 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
301 |
UpdraftPlus_Options::get_updraft_option('updraft_ssl_disableverify'),
|
302 |
UpdraftPlus_Options::get_updraft_option('updraft_ssl_nossl'),
|
303 |
null,
|
304 |
-
$
|
305 |
$config['sessiontoken']
|
306 |
);
|
307 |
|
308 |
if (is_wp_error($storage)) return $updraftplus->log_wp_error($storage, false, true);
|
309 |
|
|
|
|
|
|
|
|
|
310 |
if (is_a($storage, 'UpdraftPlus_S3_Compat') && !class_exists('XMLWriter')) {
|
311 |
$updraftplus->log('The required XMLWriter PHP module is not installed');
|
312 |
$updraftplus->log(sprintf(__('The required %s PHP module is not installed - ask your web hosting company to enable it', 'updraftplus'), 'XMLWriter'), 'error');
|
@@ -322,7 +324,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
322 |
$bucket_path = $bmatches[2]."/";
|
323 |
}
|
324 |
|
325 |
-
list($storage, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket_name, $bucket_path);
|
326 |
|
327 |
// See if we can detect the region (which implies the bucket exists and is ours), or if not create it
|
328 |
if ($bucket_exists) {
|
@@ -398,8 +400,11 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
398 |
try {
|
399 |
$upload_id = $storage->initiateMultipartUpload($bucket_name, $filepath, 'private', array(), array(), apply_filters('updraft_'.$whoweare_key.'_storageclass', 'STANDARD', $storage, $config));
|
400 |
} catch (Exception $e) {
|
401 |
-
|
|
|
|
|
402 |
$upload_id = false;
|
|
|
403 |
}
|
404 |
$storage->setExceptions(false);
|
405 |
|
@@ -584,7 +589,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
584 |
$storage = $this->possibly_wait_for_bucket_or_user($config, $storage);
|
585 |
if (!is_a($storage, 'UpdraftPlus_S3') && !is_a($storage, 'UpdraftPlus_S3_Compat')) return $storage;
|
586 |
|
587 |
-
list($storage, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket_name, $bucket_path);
|
588 |
|
589 |
/*
|
590 |
$region = ($config['key'] == 'dreamobjects' || $config['key'] == 's3generic') ? 'n/a' : @$storage->getBucketLocation($bucket_name);
|
@@ -664,7 +669,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
664 |
$bucket_path = '';
|
665 |
}
|
666 |
|
667 |
-
list($storage, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket_name, $bucket_path);
|
668 |
|
669 |
if (!$bucket_exists) {
|
670 |
$updraftplus->log("$whoweare Error: Failed to access bucket $bucket_name. Check your permissions and credentials.");
|
@@ -695,7 +700,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
695 |
$this->s3_record_quota_info($this->quota_used, $config['quota']);
|
696 |
}
|
697 |
} catch (Exception $e) {
|
698 |
-
$updraftplus->log("$whoweare delete failed: ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
|
699 |
$storage->setExceptions(false);
|
700 |
$ret = false;
|
701 |
}
|
@@ -737,7 +742,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
737 |
}
|
738 |
|
739 |
|
740 |
-
list($storage, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket_name, $bucket_path);
|
741 |
|
742 |
if ($bucket_exists) {
|
743 |
|
@@ -840,13 +845,13 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
840 |
if ('s3generic' == $key) {
|
841 |
echo '<p>';
|
842 |
_e('Examples of S3-compatible storage providers:');
|
843 |
-
echo ' <a href="https://updraftplus.com/use-updraftplus-digital-ocean-spaces/">DigitalOcean Spaces</a>, ';
|
844 |
-
echo '<a href="https://www.cloudian.com">Cloudian</a>, ';
|
845 |
-
echo '<a href="https://www.mh.connectria.com/rp/order/cloud_storage_index">Connectria</a>, ';
|
846 |
-
echo '<a href="https://www.constant.com/cloud/storage/">Constant</a>, ';
|
847 |
-
echo '<a href="http://www.eucalyptus.com/eucalyptus-cloud/iaas">Eucalyptus</a>, ';
|
848 |
-
echo '<a href="http://cloud.nifty.com/storage/">Nifty</a>, ';
|
849 |
-
echo '<a href="http://www.ntt.com/business/services/cloud/iaas/cloudn.html">Cloudn</a>';
|
850 |
echo ''.__('... and many more!', 'updraftplus').'<br>';
|
851 |
echo '</p>';
|
852 |
}
|
@@ -868,9 +873,9 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
868 |
<p>
|
869 |
<?php if ($console_url) echo sprintf(__('Get your access key and secret key <a href="%s">from your %s console</a>, then pick a (globally unique - all %s users) bucket name (letters and numbers) (and optionally a path) to use for storage. This bucket will be created for you if it does not already exist.', 'updraftplus'), $console_url, $console_descrip, $whoweare_long);?>
|
870 |
|
871 |
-
<a href="<?php echo apply_filters("updraftplus_com_link", "https://updraftplus.com/faqs/i-get-ssl-certificate-errors-when-backing-up-andor-restoring/");?>"><?php _e('If you see errors about SSL certificates, then please go here for help.', 'updraftplus');?></a>
|
872 |
|
873 |
-
<a href="<?php echo apply_filters("updraftplus_com_link", "https://updraftplus.com/faq-category/amazon-s3/");?>"><?php if ('s3' == $key) echo sprintf(__('Other %s FAQs.', 'updraftplus'), 'S3');?></a>
|
874 |
</p>
|
875 |
</td>
|
876 |
</tr>
|
@@ -910,7 +915,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
910 |
*
|
911 |
* @return string $template_str handlebars template string
|
912 |
*/
|
913 |
-
public function get_configuration_template_engine($key, $whoweare_short, $whoweare_long, $console_descrip, $console_url, $img_html = '') {
|
914 |
ob_start();
|
915 |
$classes = $this->get_css_classes();
|
916 |
$template_str = '';
|
@@ -920,7 +925,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
920 |
<tr class="<?php echo $classes;?>">
|
921 |
<td colspan="2">
|
922 |
<?php
|
923 |
-
echo apply_filters('updraft_s3_apikeysetting', '<a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/s3-enhanced/").'"><em>'.__('To create a new IAM sub-user and access key that has access only to this bucket, use this add-on.', 'updraftplus').'</em></a>');
|
924 |
?>
|
925 |
</td>
|
926 |
</tr>
|
@@ -999,7 +1004,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
999 |
* @param String $path S3 Path
|
1000 |
* @param Boolean|String $endpoint S3 endpoint
|
1001 |
*
|
1002 |
-
* @return Array
|
1003 |
*/
|
1004 |
private function get_bucket_access($storage, $config, $bucket, $path, $endpoint = false) {
|
1005 |
|
@@ -1016,7 +1021,49 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
1016 |
// We want to distinguish between an empty region (null), and an exception or missing bucket (false)
|
1017 |
if (empty($region) && false !== $region) $region = null;
|
1018 |
} catch (Exception $e) {
|
|
|
1019 |
$region = false;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1020 |
}
|
1021 |
$storage->setExceptions(false);
|
1022 |
} else {
|
@@ -1079,7 +1126,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
1079 |
}
|
1080 |
}
|
1081 |
|
1082 |
-
return array($storage, $bucket_exists, $region);
|
1083 |
|
1084 |
}
|
1085 |
|
@@ -1127,7 +1174,7 @@ class UpdraftPlus_BackupModule_s3 extends UpdraftPlus_BackupModule {
|
|
1127 |
return;
|
1128 |
}
|
1129 |
|
1130 |
-
list($storage, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket, $path, $endpoint);
|
1131 |
|
1132 |
$bucket_verb = '';
|
1133 |
if ($region && 'n/a' != $region) {
|
32 |
/**
|
33 |
* Retrieve specific options for this remote storage module
|
34 |
*
|
35 |
+
* @param Boolean $force_refresh - if set, and if relevant, don't use cached credentials, but get them afresh
|
36 |
+
*
|
37 |
* @return Array - an array of options
|
38 |
*/
|
39 |
+
protected function get_config($force_refresh = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
40 |
$opts = $this->get_options();
|
41 |
$opts['whoweare'] = 'S3';
|
42 |
$opts['whoweare_long'] = 'Amazon S3';
|
217 |
return $storage;
|
218 |
}
|
219 |
|
220 |
+
protected function set_region($obj, $region, $bucket_name = '') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
221 |
global $updraftplus;
|
222 |
switch ($region) {
|
223 |
case 'EU':
|
290 |
return $updraftplus->log_wp_error($err, false, true);
|
291 |
}
|
292 |
|
|
|
|
|
|
|
|
|
293 |
if (empty($config['sessiontoken'])) $config['sessiontoken'] = null;
|
294 |
|
295 |
$storage = $this->getS3(
|
299 |
UpdraftPlus_Options::get_updraft_option('updraft_ssl_disableverify'),
|
300 |
UpdraftPlus_Options::get_updraft_option('updraft_ssl_nossl'),
|
301 |
null,
|
302 |
+
!empty($config['server_side_encryption']),
|
303 |
$config['sessiontoken']
|
304 |
);
|
305 |
|
306 |
if (is_wp_error($storage)) return $updraftplus->log_wp_error($storage, false, true);
|
307 |
|
308 |
+
$whoweare = $config['whoweare'];
|
309 |
+
$whoweare_key = $config['key'];
|
310 |
+
$whoweare_keys = substr($whoweare_key, 0, 3);
|
311 |
+
|
312 |
if (is_a($storage, 'UpdraftPlus_S3_Compat') && !class_exists('XMLWriter')) {
|
313 |
$updraftplus->log('The required XMLWriter PHP module is not installed');
|
314 |
$updraftplus->log(sprintf(__('The required %s PHP module is not installed - ask your web hosting company to enable it', 'updraftplus'), 'XMLWriter'), 'error');
|
324 |
$bucket_path = $bmatches[2]."/";
|
325 |
}
|
326 |
|
327 |
+
list($storage, $config, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket_name, $bucket_path);
|
328 |
|
329 |
// See if we can detect the region (which implies the bucket exists and is ours), or if not create it
|
330 |
if ($bucket_exists) {
|
400 |
try {
|
401 |
$upload_id = $storage->initiateMultipartUpload($bucket_name, $filepath, 'private', array(), array(), apply_filters('updraft_'.$whoweare_key.'_storageclass', 'STANDARD', $storage, $config));
|
402 |
} catch (Exception $e) {
|
403 |
+
|
404 |
+
$updraftplus->log("$whoweare exception (".get_class($e).") whilst trying initiateMultipartUpload: ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
|
405 |
+
|
406 |
$upload_id = false;
|
407 |
+
|
408 |
}
|
409 |
$storage->setExceptions(false);
|
410 |
|
589 |
$storage = $this->possibly_wait_for_bucket_or_user($config, $storage);
|
590 |
if (!is_a($storage, 'UpdraftPlus_S3') && !is_a($storage, 'UpdraftPlus_S3_Compat')) return $storage;
|
591 |
|
592 |
+
list($storage, $config, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket_name, $bucket_path);
|
593 |
|
594 |
/*
|
595 |
$region = ($config['key'] == 'dreamobjects' || $config['key'] == 's3generic') ? 'n/a' : @$storage->getBucketLocation($bucket_name);
|
669 |
$bucket_path = '';
|
670 |
}
|
671 |
|
672 |
+
list($storage, $config, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket_name, $bucket_path);
|
673 |
|
674 |
if (!$bucket_exists) {
|
675 |
$updraftplus->log("$whoweare Error: Failed to access bucket $bucket_name. Check your permissions and credentials.");
|
700 |
$this->s3_record_quota_info($this->quota_used, $config['quota']);
|
701 |
}
|
702 |
} catch (Exception $e) {
|
703 |
+
$updraftplus->log("$whoweare delete failed (".get_class($e)."): ".$e->getMessage().' (line: '.$e->getLine().', file: '.$e->getFile().')');
|
704 |
$storage->setExceptions(false);
|
705 |
$ret = false;
|
706 |
}
|
742 |
}
|
743 |
|
744 |
|
745 |
+
list($storage, $config, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket_name, $bucket_path);
|
746 |
|
747 |
if ($bucket_exists) {
|
748 |
|
845 |
if ('s3generic' == $key) {
|
846 |
echo '<p>';
|
847 |
_e('Examples of S3-compatible storage providers:');
|
848 |
+
echo ' <a href="https://updraftplus.com/use-updraftplus-digital-ocean-spaces/" target="_blank">DigitalOcean Spaces</a>, ';
|
849 |
+
echo '<a href="https://www.cloudian.com" target="_blank">Cloudian</a>, ';
|
850 |
+
echo '<a href="https://www.mh.connectria.com/rp/order/cloud_storage_index" target="_blank">Connectria</a>, ';
|
851 |
+
echo '<a href="https://www.constant.com/cloud/storage/" target="_blank">Constant</a>, ';
|
852 |
+
echo '<a href="http://www.eucalyptus.com/eucalyptus-cloud/iaas" target="_blank">Eucalyptus</a>, ';
|
853 |
+
echo '<a href="http://cloud.nifty.com/storage/" target="_blank">Nifty</a>, ';
|
854 |
+
echo '<a href="http://www.ntt.com/business/services/cloud/iaas/cloudn.html" target="_blank">Cloudn</a>';
|
855 |
echo ''.__('... and many more!', 'updraftplus').'<br>';
|
856 |
echo '</p>';
|
857 |
}
|
873 |
<p>
|
874 |
<?php if ($console_url) echo sprintf(__('Get your access key and secret key <a href="%s">from your %s console</a>, then pick a (globally unique - all %s users) bucket name (letters and numbers) (and optionally a path) to use for storage. This bucket will be created for you if it does not already exist.', 'updraftplus'), $console_url, $console_descrip, $whoweare_long);?>
|
875 |
|
876 |
+
<a href="<?php echo apply_filters("updraftplus_com_link", "https://updraftplus.com/faqs/i-get-ssl-certificate-errors-when-backing-up-andor-restoring/");?>" target="_blank"><?php _e('If you see errors about SSL certificates, then please go here for help.', 'updraftplus');?></a>
|
877 |
|
878 |
+
<a href="<?php echo apply_filters("updraftplus_com_link", "https://updraftplus.com/faq-category/amazon-s3/");?>" target="_blank"><?php if ('s3' == $key) echo sprintf(__('Other %s FAQs.', 'updraftplus'), 'S3');?></a>
|
879 |
</p>
|
880 |
</td>
|
881 |
</tr>
|
915 |
*
|
916 |
* @return string $template_str handlebars template string
|
917 |
*/
|
918 |
+
public function get_configuration_template_engine($key, $whoweare_short, $whoweare_long, $console_descrip, $console_url, $img_html = '') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
919 |
ob_start();
|
920 |
$classes = $this->get_css_classes();
|
921 |
$template_str = '';
|
925 |
<tr class="<?php echo $classes;?>">
|
926 |
<td colspan="2">
|
927 |
<?php
|
928 |
+
echo apply_filters('updraft_s3_apikeysetting', '<a href="'.apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/s3-enhanced/").'" target="_blank"><em>'.__('To create a new IAM sub-user and access key that has access only to this bucket, use this add-on.', 'updraftplus').'</em></a>');
|
929 |
?>
|
930 |
</td>
|
931 |
</tr>
|
1004 |
* @param String $path S3 Path
|
1005 |
* @param Boolean|String $endpoint S3 endpoint
|
1006 |
*
|
1007 |
+
* @return Array - N.B. May contain updated versions of $storage and $config
|
1008 |
*/
|
1009 |
private function get_bucket_access($storage, $config, $bucket, $path, $endpoint = false) {
|
1010 |
|
1021 |
// We want to distinguish between an empty region (null), and an exception or missing bucket (false)
|
1022 |
if (empty($region) && false !== $region) $region = null;
|
1023 |
} catch (Exception $e) {
|
1024 |
+
|
1025 |
$region = false;
|
1026 |
+
|
1027 |
+
// On this 'first try', we trap this particular condition. So, whatever S3 network call it happens on, we'll eventually get it here on the resumption.
|
1028 |
+
if (false !== strpos($e->getMessage(), 'The provided token has expired')) {
|
1029 |
+
|
1030 |
+
$updraftplus->log($e->getMessage().": Requesting new credentials");
|
1031 |
+
|
1032 |
+
$new_config = $this->get_config(true);
|
1033 |
+
|
1034 |
+
if (empty($new_config['sessiontoken'])) $new_config['sessiontoken'] = null;
|
1035 |
+
|
1036 |
+
if (!empty($new_config['accesskey'])) {
|
1037 |
+
|
1038 |
+
$new_storage = $this->getS3(
|
1039 |
+
$new_config['accesskey'],
|
1040 |
+
$new_config['secretkey'],
|
1041 |
+
UpdraftPlus_Options::get_updraft_option('updraft_ssl_useservercerts'),
|
1042 |
+
UpdraftPlus_Options::get_updraft_option('updraft_ssl_disableverify'),
|
1043 |
+
UpdraftPlus_Options::get_updraft_option('updraft_ssl_nossl'),
|
1044 |
+
null,
|
1045 |
+
!empty($new_config['server_side_encryption']),
|
1046 |
+
$new_config['sessiontoken']
|
1047 |
+
);
|
1048 |
+
|
1049 |
+
if (!is_wp_error($new_storage)) {
|
1050 |
+
// Try again
|
1051 |
+
try {
|
1052 |
+
$region = @$new_storage->getBucketLocation($bucket);
|
1053 |
+
// We want to distinguish between an empty region (null), and an exception or missing bucket (false)
|
1054 |
+
if (empty($region) && false !== $region) $region = null;
|
1055 |
+
// Worked this time; update the passed-in information
|
1056 |
+
$storage = $new_storage;
|
1057 |
+
$config = $new_config;
|
1058 |
+
} catch (Exception $e) {
|
1059 |
+
$region = false;
|
1060 |
+
}
|
1061 |
+
}
|
1062 |
+
}
|
1063 |
+
|
1064 |
+
}
|
1065 |
+
|
1066 |
+
|
1067 |
}
|
1068 |
$storage->setExceptions(false);
|
1069 |
} else {
|
1126 |
}
|
1127 |
}
|
1128 |
|
1129 |
+
return array($storage, $config, $bucket_exists, $region);
|
1130 |
|
1131 |
}
|
1132 |
|
1174 |
return;
|
1175 |
}
|
1176 |
|
1177 |
+
list($storage, $config, $bucket_exists, $region) = $this->get_bucket_access($storage, $config, $bucket, $path, $endpoint);
|
1178 |
|
1179 |
$bucket_verb = '';
|
1180 |
if ($region && 'n/a' != $region) {
|
@@ -11,7 +11,7 @@ class UpdraftPlus_BackupModule_s3generic extends UpdraftPlus_BackupModule_s3 {
|
|
11 |
|
12 |
protected $use_v4 = false;
|
13 |
|
14 |
-
protected function set_region($obj, $region = '', $bucket_name = '') {
|
15 |
$config = $this->get_config();
|
16 |
$endpoint = ('' != $region && 'n/a' != $region) ? $region : $config['endpoint'];
|
17 |
$log_message = "Set endpoint: $endpoint";
|
@@ -53,9 +53,11 @@ class UpdraftPlus_BackupModule_s3generic extends UpdraftPlus_BackupModule_s3 {
|
|
53 |
/**
|
54 |
* Retrieve specific options for this remote storage module
|
55 |
*
|
|
|
|
|
56 |
* @return Array - an array of options
|
57 |
*/
|
58 |
-
protected function get_config() {
|
59 |
$opts = $this->get_options();
|
60 |
$opts['whoweare'] = 'S3';
|
61 |
$opts['whoweare_long'] = __('S3 (Compatible)', 'updraftplus');
|
11 |
|
12 |
protected $use_v4 = false;
|
13 |
|
14 |
+
protected function set_region($obj, $region = '', $bucket_name = '') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
15 |
$config = $this->get_config();
|
16 |
$endpoint = ('' != $region && 'n/a' != $region) ? $region : $config['endpoint'];
|
17 |
$log_message = "Set endpoint: $endpoint";
|
53 |
/**
|
54 |
* Retrieve specific options for this remote storage module
|
55 |
*
|
56 |
+
* @param Boolean $force_refresh - if set, and if relevant, don't use cached credentials, but get them afresh
|
57 |
+
*
|
58 |
* @return Array - an array of options
|
59 |
*/
|
60 |
+
protected function get_config($force_refresh = false) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
61 |
$opts = $this->get_options();
|
62 |
$opts['whoweare'] = 'S3';
|
63 |
$opts['whoweare_long'] = __('S3 (Compatible)', 'updraftplus');
|
@@ -26,7 +26,7 @@ class UpdraftPlus_BackupModule_template extends UpdraftPlus_BackupModule {
|
|
26 |
* @param Array $backup_array Array of files (basenames) to sent to remote storage
|
27 |
* @return Mixed - (boolean)false to indicate failure; otherwise, something to be passed back when deleting files
|
28 |
*/
|
29 |
-
public function backup($backup_array) {
|
30 |
|
31 |
global $updraftplus;
|
32 |
|
@@ -48,7 +48,7 @@ class UpdraftPlus_BackupModule_template extends UpdraftPlus_BackupModule {
|
|
48 |
*
|
49 |
* @return Array - each file is represented by an array with entries 'name' and (optional) 'size'
|
50 |
*/
|
51 |
-
public function listfiles($match = 'backup_') {
|
52 |
// This function needs to return an array of arrays. The keys for the sub-arrays are name (a path-less filename, i.e. a basename), (optional)size, and should be a list of matching files from the storage backend. A WP_Error object can also be returned; and the error code should be no_settings if that is relevant.
|
53 |
return array();
|
54 |
}
|
@@ -61,7 +61,7 @@ class UpdraftPlus_BackupModule_template extends UpdraftPlus_BackupModule {
|
|
61 |
* @param array $sizeinfo Size information
|
62 |
* @return Boolean - whether the operation succeeded or not
|
63 |
*/
|
64 |
-
public function delete($files, $data = false, $sizeinfo = array()) {
|
65 |
|
66 |
global $updraftplus;
|
67 |
|
@@ -75,7 +75,7 @@ class UpdraftPlus_BackupModule_template extends UpdraftPlus_BackupModule {
|
|
75 |
*
|
76 |
* @param string $file The specific file to be downloaded from the Cloud Storage
|
77 |
*/
|
78 |
-
public function download($file) {
|
79 |
|
80 |
global $updraftplus;
|
81 |
|
26 |
* @param Array $backup_array Array of files (basenames) to sent to remote storage
|
27 |
* @return Mixed - (boolean)false to indicate failure; otherwise, something to be passed back when deleting files
|
28 |
*/
|
29 |
+
public function backup($backup_array) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
30 |
|
31 |
global $updraftplus;
|
32 |
|
48 |
*
|
49 |
* @return Array - each file is represented by an array with entries 'name' and (optional) 'size'
|
50 |
*/
|
51 |
+
public function listfiles($match = 'backup_') {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
52 |
// This function needs to return an array of arrays. The keys for the sub-arrays are name (a path-less filename, i.e. a basename), (optional)size, and should be a list of matching files from the storage backend. A WP_Error object can also be returned; and the error code should be no_settings if that is relevant.
|
53 |
return array();
|
54 |
}
|
61 |
* @param array $sizeinfo Size information
|
62 |
* @return Boolean - whether the operation succeeded or not
|
63 |
*/
|
64 |
+
public function delete($files, $data = false, $sizeinfo = array()) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
65 |
|
66 |
global $updraftplus;
|
67 |
|
75 |
*
|
76 |
* @param string $file The specific file to be downloaded from the Cloud Storage
|
77 |
*/
|
78 |
+
public function download($file) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found
|
79 |
|
80 |
global $updraftplus;
|
81 |
|
@@ -76,20 +76,25 @@ class UpdraftPlus_BackupModule_updraftvault extends UpdraftPlus_BackupModule_s3
|
|
76 |
/**
|
77 |
* Gets the UpdraftVault configuration and credentials
|
78 |
*
|
|
|
|
|
79 |
* @return array An array containing the Amazon S3 credentials (accesskey, secretkey, etc.)
|
80 |
* along with some configuration values.
|
81 |
*/
|
82 |
-
public function get_config() {
|
83 |
|
84 |
global $updraftplus;
|
85 |
-
|
86 |
-
if (
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
-
|
91 |
-
|
92 |
-
|
|
|
|
|
|
|
93 |
}
|
94 |
}
|
95 |
|
@@ -465,7 +470,7 @@ class UpdraftPlus_BackupModule_updraftvault extends UpdraftPlus_BackupModule_s3
|
|
465 |
|
466 |
$ret .= ' - <a href="'.esc_attr($this->get_url('get_more_quota')).'">'.__('Get more quota', 'updraftplus').'</a>';
|
467 |
|
468 |
-
$ret_dashboard = $ret . ' - <a href="
|
469 |
|
470 |
set_transient('updraftvault_quota_text', $ret_dashboard, 86400*3);
|
471 |
|
76 |
/**
|
77 |
* Gets the UpdraftVault configuration and credentials
|
78 |
*
|
79 |
+
* @param Boolean $force_refresh - if set, and if relevant, don't use cached credentials, but get them afresh
|
80 |
+
*
|
81 |
* @return array An array containing the Amazon S3 credentials (accesskey, secretkey, etc.)
|
82 |
* along with some configuration values.
|
83 |
*/
|
84 |
+
public function get_config($force_refresh = false) {
|
85 |
|
86 |
global $updraftplus;
|
87 |
+
|
88 |
+
if (!$force_refresh) {
|
89 |
+
// Have we already done this?
|
90 |
+
if (!empty($this->vault_config)) return $this->vault_config;
|
91 |
+
|
92 |
+
// Stored in the job?
|
93 |
+
if ($job_config = $this->jobdata_get('config', null, 'updraftvault_config')) {
|
94 |
+
if (!empty($job_config) && is_array($job_config)) {
|
95 |
+
$this->vault_config = $job_config;
|
96 |
+
return $job_config;
|
97 |
+
}
|
98 |
}
|
99 |
}
|
100 |
|
470 |
|
471 |
$ret .= ' - <a href="'.esc_attr($this->get_url('get_more_quota')).'">'.__('Get more quota', 'updraftplus').'</a>';
|
472 |
|
473 |
+
$ret_dashboard = $ret . ' - <a href="#" id="updraftvault_recountquota">'.__('Refresh current status', 'updraftplus').'</a>';
|
474 |
|
475 |
set_transient('updraftvault_quota_text', $ret_dashboard, 86400*3);
|
476 |
|
@@ -205,7 +205,7 @@ class UpdraftPlus_Options {
|
|
205 |
|
206 |
public static function show_admin_warning_multisite() {
|
207 |
global $updraftplus_admin;
|
208 |
-
$updraftplus_admin->show_admin_warning('<strong>'.__('UpdraftPlus warning:', 'updraftplus').'</strong> '.__('This is a WordPress multi-site (a.k.a. network) installation.', 'updraftplus').' <a href="https://updraftplus.com/shop/">'.__('WordPress Multisite is supported, with extra features, by UpdraftPlus Premium, or the Multisite add-on.', 'updraftplus').'</a> '.__('Without upgrading, UpdraftPlus allows <strong>every</strong> blog admin who can modify plugin settings to backup (and hence access the data, including passwords, from) and restore (including with customized modifications, e.g. changed passwords) <strong>the entire network</strong>.', 'updraftplus').' '.__('(This applies to all WordPress backup plugins unless they have been explicitly coded for multisite compatibility).', 'updraftplus'), 'error');
|
209 |
}
|
210 |
}
|
211 |
|
205 |
|
206 |
public static function show_admin_warning_multisite() {
|
207 |
global $updraftplus_admin;
|
208 |
+
$updraftplus_admin->show_admin_warning('<strong>'.__('UpdraftPlus warning:', 'updraftplus').'</strong> '.__('This is a WordPress multi-site (a.k.a. network) installation.', 'updraftplus').' <a href="https://updraftplus.com/shop/" target="_blank">'.__('WordPress Multisite is supported, with extra features, by UpdraftPlus Premium, or the Multisite add-on.', 'updraftplus').'</a> '.__('Without upgrading, UpdraftPlus allows <strong>every</strong> blog admin who can modify plugin settings to backup (and hence access the data, including passwords, from) and restore (including with customized modifications, e.g. changed passwords) <strong>the entire network</strong>.', 'updraftplus').' '.__('(This applies to all WordPress backup plugins unless they have been explicitly coded for multisite compatibility).', 'updraftplus'), 'error');
|
209 |
}
|
210 |
}
|
211 |
|
@@ -3,7 +3,7 @@ Contributors: Backup with UpdraftPlus, DavidAnderson, DNutbourne, aporter, snigh
|
|
3 |
Tags: backup, restore, database backup, wordpress backup, cloud backup, s3, dropbox, google drive, onedrive, ftp, backups
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 5.0
|
6 |
-
Stable tag: 1.16.
|
7 |
Author URI: https://updraftplus.com
|
8 |
Donate link: https://david.dw-perspective.org.uk/donate
|
9 |
License: GPLv3 or later
|
@@ -52,12 +52,17 @@ On our website, we've got a whole page dedicated to how our Premium version comp
|
|
52 |
|
53 |
The free version of UpdraftPlus works just fine, but if you need more features and options you can purchase our Premium version. Here are some of the many features of UpdraftPlus Premium:
|
54 |
|
|
|
55 |
* Easily duplicates or migrates websites (with Migrator)
|
56 |
* Multisite/multi-network compatible
|
57 |
* Backs up non WP files and databases to multiple remote destinations
|
|
|
|
|
|
|
|
|
58 |
* Free dedicated expert support
|
59 |
|
60 |
-
Find out more on our comparison page
|
61 |
|
62 |
= Managing multiple website backups =
|
63 |
|
@@ -161,11 +166,50 @@ Unfortunately not; since this is free software, there’s no warranty and no gua
|
|
161 |
|
162 |
The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
|
163 |
|
164 |
-
N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.16.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
165 |
|
166 |
= 1.16.0 - 19/Dec/2018 =
|
167 |
|
168 |
-
* FEATURE: Added the abilty to create and restore Incremental Backups
|
169 |
* FIX: Work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one
|
170 |
* TWEAK: Improve performance by aggregating separate SQL SELECT queries (previously one for each backup) when loading the settings page
|
171 |
* TWEAK: internal backup extradata parameter to prevent unwanted PHP notices
|
@@ -707,5 +751,5 @@ Furthermore, reliance upon any non-English translation is at your own risk. Updr
|
|
707 |
We recognise and thank the following for code and/or libraries used and/or modified under the terms of their open source licences; see: https://updraftplus.com/acknowledgements/
|
708 |
|
709 |
== Upgrade Notice ==
|
710 |
-
* 1.16.
|
711 |
|
3 |
Tags: backup, restore, database backup, wordpress backup, cloud backup, s3, dropbox, google drive, onedrive, ftp, backups
|
4 |
Requires at least: 3.2
|
5 |
Tested up to: 5.0
|
6 |
+
Stable tag: 1.16.4
|
7 |
Author URI: https://updraftplus.com
|
8 |
Donate link: https://david.dw-perspective.org.uk/donate
|
9 |
License: GPLv3 or later
|
52 |
|
53 |
The free version of UpdraftPlus works just fine, but if you need more features and options you can purchase our Premium version. Here are some of the many features of UpdraftPlus Premium:
|
54 |
|
55 |
+
* Incremental backups
|
56 |
* Easily duplicates or migrates websites (with Migrator)
|
57 |
* Multisite/multi-network compatible
|
58 |
* Backs up non WP files and databases to multiple remote destinations
|
59 |
+
* More storage destinations (e.g. OneDrive, BackBlaze, Azure, SFTP) and multiple destinations
|
60 |
+
* Database encrpytion
|
61 |
+
* Advanced reporting
|
62 |
+
* Supports WP-CLI
|
63 |
* Free dedicated expert support
|
64 |
|
65 |
+
Find out more <a href="https://updraftplus.com/comparison-updraftplus-free-updraftplus-premium/">on our comparison page</a>. UpdraftPlus Premium is available for purchase <a href="https://updraftplus.com/shop/">here</a>
|
66 |
|
67 |
= Managing multiple website backups =
|
68 |
|
166 |
|
167 |
The <a href="https://updraftplus.com/news/">UpdraftPlus backup blog</a> is the best place to learn in more detail about any important changes.
|
168 |
|
169 |
+
N.B. Paid versions of UpdraftPlus Backup / Restore have a version number which is 1 higher in the first digit, and has an extra component on the end, but the changelog below still applies. i.e. changes listed for 1.16.4.x of the free version correspond to changes made in 2.16.4.x of the paid version.
|
170 |
+
|
171 |
+
= 1.16.4 - 17/Jan/2019 =
|
172 |
+
|
173 |
+
* FIX: Regression: Properly mark backups picked up via "Rescan remote storage" as non-native (preventing unwelcome side-effects such as being pruned by another site)
|
174 |
+
* FIX: Correctly update the OneDrive refresh token to prevent expiry
|
175 |
+
* FIX: Again work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one as it still does not work on all installs
|
176 |
+
* FIX: When restoring an incremental backup set via WP-CLI, the selected restore point was ignored
|
177 |
+
* FIX: If the remote storage settings were for multiple instances of a single backend-type (e.g. two Dropbox accounts), and if the entire backup and send operation completed in a single PHP process, then the local copy of the files would not be deleted
|
178 |
+
* TWEAK: Show the error message if mbstring.func_overload is turned on in php.ini while creating migration key
|
179 |
+
* TWEAK: Added Azure China endpoint
|
180 |
+
* TWEAK: Resolve "dashicons" CSS conflict
|
181 |
+
* TWEAK: Add 'blogmeta' to the list of core tables (in readiness for WP 5.1)
|
182 |
+
* TWEAK: Remove unnecessary deprecated (in PHP 7.3) parameter to define() in WebDAV HTTP library
|
183 |
+
* TWEAK: Prevent a potential PHP notice in UpdraftPlus Premium when installed without network access
|
184 |
+
* TWEAK: Enhance the updraftplus_exclude_file and updraftplus_exclude_directory filters to also pass the stored names
|
185 |
+
* TWEAK: Add a new constant UPDRAFTPLUS_ZIP_BATCH_CEILING that can tweak internals of the zip backup engine
|
186 |
+
|
187 |
+
= 1.16.3 - 10/Jan/2019 =
|
188 |
+
|
189 |
+
* FIX: Prevent extraction regression (in 1.16.1) when using PclZip (N.B. php-zip is always preferred if installed) on zero-sized files
|
190 |
+
* FIX: Prevent the incremental backup cron from being incorrectly scheduled
|
191 |
+
|
192 |
+
= 1.16.2 - 07/Jan/2019 =
|
193 |
+
|
194 |
+
* FIX: wp_doing_cron() was used when unzipping, but requires WP 4.8+ (regression in 1.16.1, which was never released on wordpress.org)
|
195 |
+
* TWEAK: Updated phpseclib to the latest version after the previous work around to fix the 'SSH2 Server Host Key Algorithm Mismatch' issue
|
196 |
+
* TWEAK: Check-in with the clone during the backup process to make sure it is not prematurely purged
|
197 |
+
|
198 |
+
= 1.16.1 - 01/Jan/2019 =
|
199 |
+
|
200 |
+
* FIX: If a very large UpdraftVault upload took more than an hour, then the token could expire without being refreshed
|
201 |
+
* FIX: Version 2.16.0 could write invalid or incomplete JSON when creating the manifest file on an incremental backup under certain circumstances
|
202 |
+
* FIX: When restoring an incremental backup set via WP-CLI, the restore order could be wrong
|
203 |
+
* TWEAK: Accept and parse the invalid JSON when restoring an incremental archive created on 2.16.0
|
204 |
+
* TWEAK: When running an incremental backup, the backup report would report the time taken to run the backup wrongly
|
205 |
+
* TWEAK: Make the logging on the state of zip extraction more fine-grained (at least every 100MB, 1000 files or 15 seconds)
|
206 |
+
* TWEAK: Re-factoring of zip extraction code to allow for future improvements
|
207 |
+
* TWEAK: Re-factoring of the restore routines to share more code between different entry points, and allow future improvements
|
208 |
+
* TWEAK: Differentiate between failures to JSON-decode an incremental backup manifest file and other types of failures
|
209 |
|
210 |
= 1.16.0 - 19/Dec/2018 =
|
211 |
|
212 |
+
* FEATURE: Added the abilty to create and restore Incremental Backups (Premium version)
|
213 |
* FIX: Work around an issue with 'SSH2 Server Host Key Algorithm Mismatch' occurring with the current phpseclib release by temporarily reverting to an earlier one
|
214 |
* TWEAK: Improve performance by aggregating separate SQL SELECT queries (previously one for each backup) when loading the settings page
|
215 |
* TWEAK: internal backup extradata parameter to prevent unwanted PHP notices
|
751 |
We recognise and thank the following for code and/or libraries used and/or modified under the terms of their open source licences; see: https://updraftplus.com/acknowledgements/
|
752 |
|
753 |
== Upgrade Notice ==
|
754 |
+
* 1.16.4: Fix a regression whereby rescanning remote storage did not correctly mark backups' origins, plus various other small tweaks and enhancements. A recommended update for all.
|
755 |
|
@@ -22,7 +22,7 @@ class Updraft_Restorer {
|
|
22 |
// This one can be set externally, if the information is available
|
23 |
public $ud_backup_is_multisite = -1;
|
24 |
|
25 |
-
private $
|
26 |
|
27 |
public $ud_foreign;
|
28 |
|
@@ -73,13 +73,13 @@ class Updraft_Restorer {
|
|
73 |
* Constructor
|
74 |
*
|
75 |
* @param WP_Upgrader_Skin|Null $skin - an upgrader skin
|
76 |
-
* @param Array|Null $
|
77 |
* @param Boolean $short_init - whether just to do a minimal initialisation
|
78 |
* @param Array $restore_options - options to guide the restoration
|
79 |
*/
|
80 |
-
public function __construct($skin = null, $
|
81 |
|
82 |
-
global $wpdb;
|
83 |
|
84 |
$this->our_siteurl = untrailingslashit(site_url());
|
85 |
|
@@ -99,16 +99,34 @@ class Updraft_Restorer {
|
|
99 |
|
100 |
if ($short_init) return;
|
101 |
|
102 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
103 |
do_action('updraftplus_restorer_restore_options', $restore_options);
|
104 |
$this->ud_multisite_selective_restore = (is_array($restore_options) && !empty($restore_options['updraft_restore_ms_whichsites']) && $restore_options['updraft_restore_ms_whichsites'] > 0) ? $restore_options['updraft_restore_ms_whichsites'] : false;
|
105 |
$this->restore_options = $restore_options;
|
106 |
|
107 |
-
$this->ud_foreign = empty($
|
108 |
-
if (isset($
|
109 |
-
if (isset($
|
110 |
-
|
111 |
-
add_filter('updraftplus_logline', array($this, 'updraftplus_logline'), 10, 5);
|
112 |
|
113 |
$this->backup_strings();
|
114 |
|
@@ -128,6 +146,88 @@ class Updraft_Restorer {
|
|
128 |
public function get_db_object() {
|
129 |
return $this->wpdb_obj;
|
130 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
131 |
|
132 |
/**
|
133 |
* Whether or not we must use the global $wpdb object for database queries.
|
@@ -177,7 +277,7 @@ class Updraft_Restorer {
|
|
177 |
|
178 |
$entities_to_download = $this->get_entities_to_download($entities_to_restore);
|
179 |
|
180 |
-
$backup_set = $this->
|
181 |
$timestamp = $backup_set['timestamp'];
|
182 |
|
183 |
$updraft_dir = $updraftplus->backups_dir_location();
|
@@ -295,7 +395,7 @@ class Updraft_Restorer {
|
|
295 |
}
|
296 |
|
297 |
/**
|
298 |
-
* Perform the restoration
|
299 |
*
|
300 |
* @param Array $entities_to_restore - entities to restore
|
301 |
* @param Array $restore_options - restoration options
|
@@ -309,7 +409,14 @@ class Updraft_Restorer {
|
|
309 |
|
310 |
global $updraftplus;
|
311 |
|
312 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
313 |
|
314 |
$services = isset($backup_set['service']) ? $updraftplus->get_canonical_service_list($backup_set['service']) : array();
|
315 |
|
@@ -359,6 +466,9 @@ class Updraft_Restorer {
|
|
359 |
|
360 |
if (is_string($files)) $files = array($files);
|
361 |
|
|
|
|
|
|
|
362 |
foreach ($files as $fkey => $file) {
|
363 |
$last_one = (1 == count($second_loop) && 1 == count($files));
|
364 |
$last_entity = (1 == count($files));
|
@@ -406,8 +516,7 @@ class Updraft_Restorer {
|
|
406 |
|
407 |
unset($files[$fkey]);
|
408 |
$second_loop[$type] = $files;
|
409 |
-
$updraftplus->
|
410 |
-
$updraftplus->jobdata_set('backup_timestamp', $timestamp);
|
411 |
|
412 |
do_action('updraft_restored_archive', $file, $type, $restore_result, $fkey, $timestamp);
|
413 |
|
@@ -416,8 +525,7 @@ class Updraft_Restorer {
|
|
416 |
// Update the job data each time we go round the loop, so that if it aborts, it can be resumed from the correct point
|
417 |
unset($second_loop[$type]);
|
418 |
update_site_option('updraft_restore_in_progress', $updraftplus->nonce);
|
419 |
-
$updraftplus->
|
420 |
-
$updraftplus->jobdata_set('backup_timestamp', $timestamp);
|
421 |
}
|
422 |
|
423 |
// If the database was restored, then check active plugins and make sure they all exist; otherwise, the site may go down
|
@@ -435,7 +543,7 @@ class Updraft_Restorer {
|
|
435 |
*/
|
436 |
public function get_entities_to_download($entities_to_restore) {
|
437 |
|
438 |
-
$backup_set = $this->
|
439 |
|
440 |
$foreign_known = apply_filters('updraftplus_accept_archivename', array());
|
441 |
|
@@ -455,7 +563,7 @@ class Updraft_Restorer {
|
|
455 |
}
|
456 |
|
457 |
/**
|
458 |
-
* Logs a line from the restore process, being called from UpdraftPlus::log(). Currently, this means adding it to the browser output log file and echoing it.
|
459 |
* Hooks the WordPress filter updraftplus_logline
|
460 |
* In future, this can get more sophisticated. For now, things are funnelled through here, giving the future possibility.
|
461 |
*
|
@@ -538,10 +646,11 @@ class Updraft_Restorer {
|
|
538 |
* This function is copied from class WP_Upgrader (WP 3.8 - no significant changes since 3.2 at least); we only had to fork it because it hard-codes using the basename of the zip file as its unpack directory; which can be long; and then combining that with long pathnames in the zip being unpacked can overflow a 256-character path limit (yes, they apparently still exist - amazing!)
|
539 |
* Subsequently, we have also added the ability to unpack tarballs
|
540 |
*
|
541 |
-
* @param
|
542 |
-
* @param
|
543 |
-
* @param
|
544 |
-
*
|
|
|
545 |
*/
|
546 |
private function unpack_package_archive($package, $delete_package = true, $type = false) {
|
547 |
|
@@ -636,8 +745,7 @@ class Updraft_Restorer {
|
|
636 |
}
|
637 |
|
638 |
// Once extracted, delete the package if required.
|
639 |
-
if ($delete_package)
|
640 |
-
unlink($package);
|
641 |
|
642 |
if (is_wp_error($result)) {
|
643 |
$wp_filesystem->delete($working_dir, true);
|
@@ -723,10 +831,10 @@ class Updraft_Restorer {
|
|
723 |
// If not database, then it is a zip - unpack in the usual way
|
724 |
if (!preg_match('/-db(\.gz(\.crypt)?)?$/i', $package) && !preg_match('/\.sql(\.gz|\.bz2)?$/i', $package)) return $this->unpack_package_archive($updraft_dir.'/'.$package, $delete_package, $type);
|
725 |
|
726 |
-
$backup_dir = $wp_filesystem->find_folder($updraft_dir);
|
727 |
-
|
728 |
// Unpack a database. The general shape of the following is copied from class-wp-upgrader.php
|
729 |
|
|
|
|
|
730 |
@set_time_limit(1800);
|
731 |
|
732 |
$packsize = round(filesize($backup_dir.$package)/1048576, 1).' Mb';
|
@@ -1200,7 +1308,7 @@ class Updraft_Restorer {
|
|
1200 |
}
|
1201 |
fclose($fp);
|
1202 |
}
|
1203 |
-
if (!empty($ud_version) && $this->can_version_ajax_restore($ud_version) && !empty($this->
|
1204 |
$nonce = $updraftplus->nonce;
|
1205 |
if (!function_exists('crypt_random_string')) $updraftplus->ensure_phpseclib('Crypt_Random', 'Crypt/Random');
|
1206 |
$this->ajax_restore_auth_code = bin2hex(crypt_random_string(32));
|
@@ -1232,7 +1340,7 @@ class Updraft_Restorer {
|
|
1232 |
|
1233 |
$this->import_table_prefix = $import_table_prefix;
|
1234 |
|
1235 |
-
$now_done = apply_filters('updraftplus_pre_restore_move_in', false, $type, $working_dir, $info, $this->
|
1236 |
if (is_wp_error($now_done)) return $now_done;
|
1237 |
|
1238 |
// A slightly ugly way of getting a particular result back
|
@@ -1264,9 +1372,9 @@ class Updraft_Restorer {
|
|
1264 |
// On subsequent archives of a multi-archive set, don't move anything; but do on the first
|
1265 |
$preserve_existing = isset($this->been_restored['others']) ? self::MOVEIN_COPY_IN_CONTENTS : self::MOVEIN_MAKE_BACKUP_OF_EXISTING;
|
1266 |
|
1267 |
-
$preserve_existing = apply_filters('updraft_move_others_preserve_existing', $preserve_existing, $this->been_restored, $this->restore_options, $this->
|
1268 |
|
1269 |
-
$new_move_from = apply_filters('updraft_restore_backup_move_from', $move_from, 'others', $this->restore_options, $this->
|
1270 |
|
1271 |
if ($new_move_from != $move_from && 0 === strpos($new_move_from, $move_from)) {
|
1272 |
$new_suffix = substr($new_move_from, strlen($move_from));
|
@@ -1313,7 +1421,7 @@ class Updraft_Restorer {
|
|
1313 |
|
1314 |
// The backup may not actually have /$type, since that is info from the present site
|
1315 |
$move_from = $this->get_first_directory($working_dir_use, array(basename($info['path']), $type));
|
1316 |
-
if (false !== $move_from) $move_from = apply_filters('updraft_restore_backup_move_from', $move_from, $type, $this->restore_options, $this->
|
1317 |
|
1318 |
if (false === $move_from) {
|
1319 |
if (!empty($this->ud_foreign) && !apply_filters('updraftplus_foreign_allow_missing_entity', false, $type, $this->ud_foreign)) {
|
@@ -1466,12 +1574,21 @@ class Updraft_Restorer {
|
|
1466 |
*/
|
1467 |
private function incremental_restore_prune_files($working_dir, $type) {
|
1468 |
// Check file exists again just in case it some how got removed
|
1469 |
-
|
|
|
1470 |
$entity_manifest = file_get_contents($working_dir.DIRECTORY_SEPARATOR.'updraftplus-manifest.json');
|
1471 |
-
$
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1472 |
$base_path = trailingslashit(WP_CONTENT_DIR);
|
1473 |
$path = $base_path.$type;
|
1474 |
-
return $this->incremental_restore_scan_dir($base_path, $path, 1, $
|
1475 |
} else {
|
1476 |
return new WP_Error('manifest_not_found', $this->strings['manifest_not_found']);
|
1477 |
}
|
@@ -1490,11 +1607,11 @@ class Updraft_Restorer {
|
|
1490 |
|
1491 |
global $wp_filesystem;
|
1492 |
|
1493 |
-
$
|
1494 |
$entity_directories = $entity_manifest['contents']['directories'];
|
1495 |
$entity_files = $entity_manifest['contents']['files'];
|
1496 |
|
1497 |
-
if (!isset($
|
1498 |
|
1499 |
$directory_files = $wp_filesystem->dirlist($path);
|
1500 |
|
@@ -1503,7 +1620,7 @@ class Updraft_Restorer {
|
|
1503 |
if ($wp_filesystem->is_dir($path . DIRECTORY_SEPARATOR . $file)) {
|
1504 |
$directory = $path . DIRECTORY_SEPARATOR . $file;
|
1505 |
// Check if we should go deeper in the file path, if not then check if this directory exists in the manifest, if not then remove it.
|
1506 |
-
if ($current_level + 1 < $
|
1507 |
$incremental_restore_prune = $this->incremental_restore_scan_dir($base_path, $directory, $current_level + 1, $entity_manifest);
|
1508 |
if (is_wp_error($incremental_restore_prune)) return $incremental_restore_prune;
|
1509 |
} else {
|
@@ -1639,7 +1756,7 @@ class Updraft_Restorer {
|
|
1639 |
|
1640 |
ENDHERE;
|
1641 |
$multisite = 0;
|
1642 |
-
$timestamp = $this->
|
1643 |
if (!empty($_REQUEST['updraft_restorer_backup_info'])) {
|
1644 |
|
1645 |
$backup_info = UpdraftPlus_Manipulation_Functions::wp_unslash($_REQUEST['updraft_restorer_backup_info']);
|
@@ -1779,9 +1896,10 @@ ENDHERE;
|
|
1779 |
/**
|
1780 |
* Returns an octal string (but not an octal number)
|
1781 |
*
|
1782 |
-
* @param
|
1783 |
-
* @param
|
1784 |
-
*
|
|
|
1785 |
*/
|
1786 |
private function get_current_chmod($file, $wpfs = false) {
|
1787 |
if (false == $wpfs) {
|
@@ -1823,12 +1941,13 @@ ENDHERE;
|
|
1823 |
* "If needed" means, "If the permissions are not already more permissive than this". i.e. This will not tighten permissions from what the user had before (we trust them)
|
1824 |
* $chmod should be an octal - i.e. the same as you'd pass to chmod()
|
1825 |
*
|
1826 |
-
* @param
|
1827 |
-
* @param
|
1828 |
-
* @param
|
1829 |
-
* @param
|
1830 |
-
* @param
|
1831 |
-
*
|
|
|
1832 |
*/
|
1833 |
private function chmod_if_needed($dir, $chmod, $recursive = false, $wpfs = false, $suppress = true) {
|
1834 |
|
@@ -1842,8 +1961,8 @@ ENDHERE;
|
|
1842 |
|
1843 |
$old_chmod = $this->get_current_chmod($dir, $wpfs);
|
1844 |
|
1845 |
-
// Sanity
|
1846 |
-
if (strlen($old_chmod) < 3) return;
|
1847 |
|
1848 |
$new_chmod = $this->calculate_additive_chmod_oct($old_chmod, $chmod);
|
1849 |
|
@@ -1928,16 +2047,37 @@ ENDHERE;
|
|
1928 |
|
1929 |
}
|
1930 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1931 |
public function option_filter_permalink_structure($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
1932 |
global $updraftplus;
|
1933 |
return $updraftplus->option_filter_get('permalink_structure');
|
1934 |
}
|
1935 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1936 |
public function option_filter_page_on_front($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
1937 |
global $updraftplus;
|
1938 |
return $updraftplus->option_filter_get('page_on_front');
|
1939 |
}
|
1940 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1941 |
public function option_filter_rewrite_rules($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
1942 |
global $updraftplus;
|
1943 |
return $updraftplus->option_filter_get('rewrite_rules');
|
@@ -1982,7 +2122,7 @@ ENDHERE;
|
|
1982 |
|
1983 |
if (!file_exists($working_dir_localpath.'/'.$db_basename)) {
|
1984 |
$separatedb = empty($plugins[$this->ud_foreign]['separatedb']) ? false : true;
|
1985 |
-
$filtered_db_name = apply_filters('updraftplus_foreign_dbfilename', false, $this->ud_foreign, $this->
|
1986 |
if (is_string($filtered_db_name)) $db_basename = $filtered_db_name;
|
1987 |
}
|
1988 |
}
|
@@ -2517,8 +2657,8 @@ ENDHERE;
|
|
2517 |
}
|
2518 |
|
2519 |
// Rescan storage, but only if there was remote storage and a database; otherwise just re-scan locally
|
2520 |
-
if (!empty($this->
|
2521 |
-
$only_add_this_file = array('file' => $this->
|
2522 |
UpdraftPlus_Backup_History::rebuild(true, $only_add_this_file);
|
2523 |
} else {
|
2524 |
UpdraftPlus_Backup_History::rebuild();
|
@@ -2834,7 +2974,9 @@ ENDHERE;
|
|
2834 |
global $updraftplus_addons_migrator;
|
2835 |
if (!empty($updraftplus_addons_migrator->new_blogid)) switch_to_blog($updraftplus_addons_migrator->new_blogid);
|
2836 |
|
2837 |
-
|
|
|
|
|
2838 |
add_filter('pre_option_'.$opt, array($this, 'option_filter_'.$opt));
|
2839 |
}
|
2840 |
|
@@ -2846,7 +2988,7 @@ ENDHERE;
|
|
2846 |
if (function_exists('save_mod_rewrite_rules')) save_mod_rewrite_rules();
|
2847 |
if (function_exists('iis7_save_url_rewrite_rules')) iis7_save_url_rewrite_rules();
|
2848 |
|
2849 |
-
foreach (
|
2850 |
remove_filter('pre_option_'.$opt, array($this, 'option_filter_'.$opt));
|
2851 |
}
|
2852 |
|
@@ -2854,6 +2996,54 @@ ENDHERE;
|
|
2854 |
|
2855 |
}
|
2856 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2857 |
private function restored_table($table, $import_table_prefix, $old_table_prefix) {
|
2858 |
|
2859 |
$table_without_prefix = substr($table, strlen($import_table_prefix));
|
22 |
// This one can be set externally, if the information is available
|
23 |
public $ud_backup_is_multisite = -1;
|
24 |
|
25 |
+
private $ud_backup_set;
|
26 |
|
27 |
public $ud_foreign;
|
28 |
|
73 |
* Constructor
|
74 |
*
|
75 |
* @param WP_Upgrader_Skin|Null $skin - an upgrader skin
|
76 |
+
* @param Array|Null $backup_set - the backup set to restore
|
77 |
* @param Boolean $short_init - whether just to do a minimal initialisation
|
78 |
* @param Array $restore_options - options to guide the restoration
|
79 |
*/
|
80 |
+
public function __construct($skin = null, $backup_set = null, $short_init = false, $restore_options = array()) {
|
81 |
|
82 |
+
global $wpdb, $updraftplus;
|
83 |
|
84 |
$this->our_siteurl = untrailingslashit(site_url());
|
85 |
|
99 |
|
100 |
if ($short_init) return;
|
101 |
|
102 |
+
// If updraft_incremental_restore_point is equal to -1 then this is either not a incremental restore or we are going to restore up to the latest increment, so there is no need to prune the backup set of any unwanted backup archives.
|
103 |
+
if (isset($restore_options['updraft_incremental_restore_point']) && $restore_options['updraft_incremental_restore_point'] > 0) {
|
104 |
+
$restore_point = $restore_options['updraft_incremental_restore_point'];
|
105 |
+
foreach ($backup_set['incremental_sets'] as $increment_timestamp => $entities) {
|
106 |
+
if ($increment_timestamp > $restore_point) {
|
107 |
+
foreach ($entities as $entity => $backups) {
|
108 |
+
foreach ($backups as $key => $value) {
|
109 |
+
unset($backup_set[$entity][$key]);
|
110 |
+
}
|
111 |
+
}
|
112 |
+
}
|
113 |
+
}
|
114 |
+
}
|
115 |
+
|
116 |
+
// Restore in the most helpful order
|
117 |
+
uksort($backup_set, array('UpdraftPlus_Manipulation_Functions', 'sort_restoration_entities'));
|
118 |
+
|
119 |
+
$this->ud_backup_set = $backup_set;
|
120 |
+
|
121 |
+
add_filter('updraftplus_logline', array($this, 'updraftplus_logline'), 10, 5);
|
122 |
+
|
123 |
do_action('updraftplus_restorer_restore_options', $restore_options);
|
124 |
$this->ud_multisite_selective_restore = (is_array($restore_options) && !empty($restore_options['updraft_restore_ms_whichsites']) && $restore_options['updraft_restore_ms_whichsites'] > 0) ? $restore_options['updraft_restore_ms_whichsites'] : false;
|
125 |
$this->restore_options = $restore_options;
|
126 |
|
127 |
+
$this->ud_foreign = empty($backup_set['meta_foreign']) ? false : $backup_set['meta_foreign'];
|
128 |
+
if (isset($backup_set['is_multisite'])) $this->ud_backup_is_multisite = $backup_set['is_multisite'];
|
129 |
+
if (isset($backup_set['created_by_version'])) $this->created_by_version = $backup_set['created_by_version'];
|
|
|
|
|
130 |
|
131 |
$this->backup_strings();
|
132 |
|
146 |
public function get_db_object() {
|
147 |
return $this->wpdb_obj;
|
148 |
}
|
149 |
+
|
150 |
+
/**
|
151 |
+
* Restore has been completed - clean some things up
|
152 |
+
*
|
153 |
+
* @param Boolean|WP_Error $successful - if the restore was successful (true) or not (false or WP_Error). If not, then only a minimum of necessary clean-up things is done.
|
154 |
+
* @param Boolean $browser_context - if true, then extra messages will be echo-ed
|
155 |
+
*
|
156 |
+
* @uses UpdraftPlus::log()
|
157 |
+
*/
|
158 |
+
public function post_restore_clean_up($successful = true, $browser_context = true) {
|
159 |
+
|
160 |
+
global $updraftplus, $updraftplus_admin;
|
161 |
+
|
162 |
+
if (is_wp_error($successful)) {
|
163 |
+
foreach ($successful->get_error_codes() as $code) {
|
164 |
+
if ('already_exists' == $code) {
|
165 |
+
if ($browser_context) {
|
166 |
+
global $updraftplus_admin;
|
167 |
+
$updraftplus_admin->print_delete_old_dirs_form(false);
|
168 |
+
} else {
|
169 |
+
$updraftplus->log(__('Your WordPress install has old directories from its state before you restored/migrated (technical information: these are suffixed with -old).', 'updraftplus'));
|
170 |
+
}
|
171 |
+
}
|
172 |
+
$data = $successful->get_error_data($code);
|
173 |
+
if (!empty($data)) {
|
174 |
+
$pdata = is_string($data) ? $data : serialize($data);
|
175 |
+
$updraftplus->log(__('Error data:', 'updraftplus').' '.$pdata, 'warning-restore');
|
176 |
+
if (false !== strpos($pdata, 'PCLZIP_ERR_BAD_FORMAT (-10)')) {
|
177 |
+
if ($browser_context) {
|
178 |
+
echo '<a href="'.apply_filters('updraftplus_com_link', 'https://updraftplus.com/faqs/error-message-pclzip_err_bad_format-10-invalid-archive-structure-mean/').'" target="_blank"><strong>'.__('Follow this link for more information', 'updraftplus').'</strong></a><br>';
|
179 |
+
} else {
|
180 |
+
$updraftplus->log(__('Follow this link for more information', 'updraftplus').': '.$url);
|
181 |
+
}
|
182 |
+
}
|
183 |
+
}
|
184 |
+
|
185 |
+
}
|
186 |
+
$successful = false;
|
187 |
+
}
|
188 |
+
|
189 |
+
// From this point on, $successful is a boolean
|
190 |
+
if ($successful) {
|
191 |
+
// All done - remove the intermediate marker
|
192 |
+
delete_site_option('updraft_restore_in_progress');
|
193 |
+
|
194 |
+
foreach (array('template', 'stylesheet', 'template_root', 'stylesheet_root') as $opt) {
|
195 |
+
add_filter('pre_option_'.$opt, array($this, 'option_filter_'.$opt));
|
196 |
+
}
|
197 |
+
|
198 |
+
// Clear any cached pages after the restore
|
199 |
+
$this->clear_cache();
|
200 |
+
|
201 |
+
// Have seen a case where the current theme in the DB began with a capital, but not on disk - and this breaks migrating from Windows to a case-sensitive system
|
202 |
+
$template = get_option('template');
|
203 |
+
if (!empty($template) && WP_DEFAULT_THEME != $template && strtolower($template) != $template) {
|
204 |
+
|
205 |
+
$theme_root = get_theme_root($template);
|
206 |
+
$theme_root2 = get_theme_root(strtolower($template));
|
207 |
+
|
208 |
+
if (!file_exists("$theme_root/$template/style.css") && file_exists("$theme_root/".strtolower($template)."/style.css")) {
|
209 |
+
$updraftplus->log_e("Theme directory (%s) not found, but lower-case version exists; updating database option accordingly", $template);
|
210 |
+
update_option('template', strtolower($template));
|
211 |
+
}
|
212 |
+
|
213 |
+
}
|
214 |
+
|
215 |
+
if (!function_exists('validate_current_theme')) include_once(ABSPATH.WPINC.'/themes');
|
216 |
+
|
217 |
+
if (!validate_current_theme()) {
|
218 |
+
if ($browser_context) echo '<strong>';
|
219 |
+
$updraftplus->log_e("The current theme was not found; to prevent this stopping the site from loading, your theme has been reverted to the default theme");
|
220 |
+
if ($browser_context) echo '</strong>';
|
221 |
+
}
|
222 |
+
|
223 |
+
do_action('updraftplus_restore_completed');
|
224 |
+
}
|
225 |
+
|
226 |
+
if ($browser_context) echo '</div>'; // Close the updraft_restore_progress div
|
227 |
+
|
228 |
+
restore_error_handler();
|
229 |
+
|
230 |
+
}
|
231 |
|
232 |
/**
|
233 |
* Whether or not we must use the global $wpdb object for database queries.
|
277 |
|
278 |
$entities_to_download = $this->get_entities_to_download($entities_to_restore);
|
279 |
|
280 |
+
$backup_set = $this->ud_backup_set;
|
281 |
$timestamp = $backup_set['timestamp'];
|
282 |
|
283 |
$updraft_dir = $updraftplus->backups_dir_location();
|
395 |
}
|
396 |
|
397 |
/**
|
398 |
+
* Perform the restoration. No code here (or called) should assume anything about the method used to call it (e.g. wp-admin or WP-CLI); it should be independent of how it is being called.
|
399 |
*
|
400 |
* @param Array $entities_to_restore - entities to restore
|
401 |
* @param Array $restore_options - restoration options
|
409 |
|
410 |
global $updraftplus;
|
411 |
|
412 |
+
// Now log. We first remove any encryption passphrase from the log data.
|
413 |
+
$copy_restore_options = $restore_options;
|
414 |
+
if (!empty($copy_restore_options['updraft_encryptionphrase'])) $copy_restore_options['updraft_encryptionphrase'] = '***';
|
415 |
+
$updraftplus->log("Restore job started. Entities to restore: ".implode(', ', array_flip($entities_to_restore)).'. Restore options: '.json_encode($copy_restore_options));
|
416 |
+
|
417 |
+
do_action('updraftplus_restoration_title', __('Final checks', 'updraftplus'));
|
418 |
+
|
419 |
+
$backup_set = $this->ud_backup_set;
|
420 |
|
421 |
$services = isset($backup_set['service']) ? $updraftplus->get_canonical_service_list($backup_set['service']) : array();
|
422 |
|
466 |
|
467 |
if (is_string($files)) $files = array($files);
|
468 |
|
469 |
+
// Don't assume that the caller pre-sorted the array. We do need it sorted, so that incremental zips get restored in the right order
|
470 |
+
ksort($files);
|
471 |
+
|
472 |
foreach ($files as $fkey => $file) {
|
473 |
$last_one = (1 == count($second_loop) && 1 == count($files));
|
474 |
$last_entity = (1 == count($files));
|
516 |
|
517 |
unset($files[$fkey]);
|
518 |
$second_loop[$type] = $files;
|
519 |
+
$updraftplus->jobdata_set_multi(array('second_loop_entities' => $second_loop, 'backup_timestamp' => $timestamp));
|
|
|
520 |
|
521 |
do_action('updraft_restored_archive', $file, $type, $restore_result, $fkey, $timestamp);
|
522 |
|
525 |
// Update the job data each time we go round the loop, so that if it aborts, it can be resumed from the correct point
|
526 |
unset($second_loop[$type]);
|
527 |
update_site_option('updraft_restore_in_progress', $updraftplus->nonce);
|
528 |
+
$updraftplus->jobdata_set_multi(array('second_loop_entities' => $second_loop, 'backup_timestamp' => $timestamp));
|
|
|
529 |
}
|
530 |
|
531 |
// If the database was restored, then check active plugins and make sure they all exist; otherwise, the site may go down
|
543 |
*/
|
544 |
public function get_entities_to_download($entities_to_restore) {
|
545 |
|
546 |
+
$backup_set = $this->ud_backup_set;
|
547 |
|
548 |
$foreign_known = apply_filters('updraftplus_accept_archivename', array());
|
549 |
|
563 |
}
|
564 |
|
565 |
/**
|
566 |
+
* Logs a line from the restore process, being called from UpdraftPlus::log(). Currently, this means adding it to the browser output log file and either (depending on the constant WP_CLI) echoing it or passing it to a WPCLI method.
|
567 |
* Hooks the WordPress filter updraftplus_logline
|
568 |
* In future, this can get more sophisticated. For now, things are funnelled through here, giving the future possibility.
|
569 |
*
|
646 |
* This function is copied from class WP_Upgrader (WP 3.8 - no significant changes since 3.2 at least); we only had to fork it because it hard-codes using the basename of the zip file as its unpack directory; which can be long; and then combining that with long pathnames in the zip being unpacked can overflow a 256-character path limit (yes, they apparently still exist - amazing!)
|
647 |
* Subsequently, we have also added the ability to unpack tarballs
|
648 |
*
|
649 |
+
* @param String $package specify package
|
650 |
+
* @param Boolean $delete_package check to delete package
|
651 |
+
* @param String|Boolean $type type of archive e.g. db.
|
652 |
+
*
|
653 |
+
* @return String|WP_Error If successful, then this indicates the working directory that the archive was unpacked in
|
654 |
*/
|
655 |
private function unpack_package_archive($package, $delete_package = true, $type = false) {
|
656 |
|
745 |
}
|
746 |
|
747 |
// Once extracted, delete the package if required.
|
748 |
+
if ($delete_package) unlink($package);
|
|
|
749 |
|
750 |
if (is_wp_error($result)) {
|
751 |
$wp_filesystem->delete($working_dir, true);
|
831 |
// If not database, then it is a zip - unpack in the usual way
|
832 |
if (!preg_match('/-db(\.gz(\.crypt)?)?$/i', $package) && !preg_match('/\.sql(\.gz|\.bz2)?$/i', $package)) return $this->unpack_package_archive($updraft_dir.'/'.$package, $delete_package, $type);
|
833 |
|
|
|
|
|
834 |
// Unpack a database. The general shape of the following is copied from class-wp-upgrader.php
|
835 |
|
836 |
+
$backup_dir = $wp_filesystem->find_folder($updraft_dir);
|
837 |
+
|
838 |
@set_time_limit(1800);
|
839 |
|
840 |
$packsize = round(filesize($backup_dir.$package)/1048576, 1).' Mb';
|
1308 |
}
|
1309 |
fclose($fp);
|
1310 |
}
|
1311 |
+
if (!empty($ud_version) && $this->can_version_ajax_restore($ud_version) && !empty($this->ud_backup_set['timestamp'])) {
|
1312 |
$nonce = $updraftplus->nonce;
|
1313 |
if (!function_exists('crypt_random_string')) $updraftplus->ensure_phpseclib('Crypt_Random', 'Crypt/Random');
|
1314 |
$this->ajax_restore_auth_code = bin2hex(crypt_random_string(32));
|
1340 |
|
1341 |
$this->import_table_prefix = $import_table_prefix;
|
1342 |
|
1343 |
+
$now_done = apply_filters('updraftplus_pre_restore_move_in', false, $type, $working_dir, $info, $this->ud_backup_set, $this, $wp_filesystem_dir);
|
1344 |
if (is_wp_error($now_done)) return $now_done;
|
1345 |
|
1346 |
// A slightly ugly way of getting a particular result back
|
1372 |
// On subsequent archives of a multi-archive set, don't move anything; but do on the first
|
1373 |
$preserve_existing = isset($this->been_restored['others']) ? self::MOVEIN_COPY_IN_CONTENTS : self::MOVEIN_MAKE_BACKUP_OF_EXISTING;
|
1374 |
|
1375 |
+
$preserve_existing = apply_filters('updraft_move_others_preserve_existing', $preserve_existing, $this->been_restored, $this->restore_options, $this->ud_backup_set);
|
1376 |
|
1377 |
+
$new_move_from = apply_filters('updraft_restore_backup_move_from', $move_from, 'others', $this->restore_options, $this->ud_backup_set);
|
1378 |
|
1379 |
if ($new_move_from != $move_from && 0 === strpos($new_move_from, $move_from)) {
|
1380 |
$new_suffix = substr($new_move_from, strlen($move_from));
|
1421 |
|
1422 |
// The backup may not actually have /$type, since that is info from the present site
|
1423 |
$move_from = $this->get_first_directory($working_dir_use, array(basename($info['path']), $type));
|
1424 |
+
if (false !== $move_from) $move_from = apply_filters('updraft_restore_backup_move_from', $move_from, $type, $this->restore_options, $this->ud_backup_set);
|
1425 |
|
1426 |
if (false === $move_from) {
|
1427 |
if (!empty($this->ud_foreign) && !apply_filters('updraftplus_foreign_allow_missing_entity', false, $type, $this->ud_foreign)) {
|
1574 |
*/
|
1575 |
private function incremental_restore_prune_files($working_dir, $type) {
|
1576 |
// Check file exists again just in case it some how got removed
|
1577 |
+
$manifest_file = $working_dir.DIRECTORY_SEPARATOR.'updraftplus-manifest.json';
|
1578 |
+
if (file_exists($manifest_file) && filesize($manifest_file) > 0) {
|
1579 |
$entity_manifest = file_get_contents($working_dir.DIRECTORY_SEPARATOR.'updraftplus-manifest.json');
|
1580 |
+
$decoded_manifest = json_decode($entity_manifest, true);
|
1581 |
+
if (null === $decoded_manifest) {
|
1582 |
+
// 2.16.0 could fail to put a comma after the first 'files' item
|
1583 |
+
$entity_manifest = preg_replace('/files":(.*)""/', 'files":$1","', $entity_manifest);
|
1584 |
+
$decoded_manifest = json_decode($entity_manifest, true);
|
1585 |
+
if (null === $decoded_manifest) return new WP_Error('decode_manifest_failed', 'Failed to JSON-decode the manifest file');
|
1586 |
+
global $updraftplus;
|
1587 |
+
$updraftplus->log('Manifest file had invalid JSON, but it was successfully patched');
|
1588 |
+
}
|
1589 |
$base_path = trailingslashit(WP_CONTENT_DIR);
|
1590 |
$path = $base_path.$type;
|
1591 |
+
return $this->incremental_restore_scan_dir($base_path, $path, 1, $decoded_manifest);
|
1592 |
} else {
|
1593 |
return new WP_Error('manifest_not_found', $this->strings['manifest_not_found']);
|
1594 |
}
|
1607 |
|
1608 |
global $wp_filesystem;
|
1609 |
|
1610 |
+
$directory_level = $entity_manifest['listed_levels'];
|
1611 |
$entity_directories = $entity_manifest['contents']['directories'];
|
1612 |
$entity_files = $entity_manifest['contents']['files'];
|
1613 |
|
1614 |
+
if (!isset($directory_level) || !isset($entity_directories) || !isset($entity_files)) return new WP_Error('read_manifest_failed', $this->strings['read_manifest_failed']);
|
1615 |
|
1616 |
$directory_files = $wp_filesystem->dirlist($path);
|
1617 |
|
1620 |
if ($wp_filesystem->is_dir($path . DIRECTORY_SEPARATOR . $file)) {
|
1621 |
$directory = $path . DIRECTORY_SEPARATOR . $file;
|
1622 |
// Check if we should go deeper in the file path, if not then check if this directory exists in the manifest, if not then remove it.
|
1623 |
+
if ($current_level + 1 < $directory_level) {
|
1624 |
$incremental_restore_prune = $this->incremental_restore_scan_dir($base_path, $directory, $current_level + 1, $entity_manifest);
|
1625 |
if (is_wp_error($incremental_restore_prune)) return $incremental_restore_prune;
|
1626 |
} else {
|
1756 |
|
1757 |
ENDHERE;
|
1758 |
$multisite = 0;
|
1759 |
+
$timestamp = $this->ud_backup_set['timestamp'];
|
1760 |
if (!empty($_REQUEST['updraft_restorer_backup_info'])) {
|
1761 |
|
1762 |
$backup_info = UpdraftPlus_Manipulation_Functions::wp_unslash($_REQUEST['updraft_restorer_backup_info']);
|
1896 |
/**
|
1897 |
* Returns an octal string (but not an octal number)
|
1898 |
*
|
1899 |
+
* @param String $file The file to get the permissions for
|
1900 |
+
* @param WP_Filesystem|Boolean $wpfs WP_Filesystem object, at least support the getchmod() method
|
1901 |
+
*
|
1902 |
+
* @return String
|
1903 |
*/
|
1904 |
private function get_current_chmod($file, $wpfs = false) {
|
1905 |
if (false == $wpfs) {
|
1941 |
* "If needed" means, "If the permissions are not already more permissive than this". i.e. This will not tighten permissions from what the user had before (we trust them)
|
1942 |
* $chmod should be an octal - i.e. the same as you'd pass to chmod()
|
1943 |
*
|
1944 |
+
* @param String $dir a WP_Filesystem path
|
1945 |
+
* @param String $chmod specific chmod
|
1946 |
+
* @param Boolean $recursive indicate if recursive chmod is needed
|
1947 |
+
* @param Boolean $wpfs indicate whether to use wpfs access methods
|
1948 |
+
* @param Boolean $suppress suppress PHP error/warning output
|
1949 |
+
*
|
1950 |
+
* @return Boolean - whether the operation was successfully carried out
|
1951 |
*/
|
1952 |
private function chmod_if_needed($dir, $chmod, $recursive = false, $wpfs = false, $suppress = true) {
|
1953 |
|
1961 |
|
1962 |
$old_chmod = $this->get_current_chmod($dir, $wpfs);
|
1963 |
|
1964 |
+
// Sanity check
|
1965 |
+
if (strlen($old_chmod) < 3) return false;
|
1966 |
|
1967 |
$new_chmod = $this->calculate_additive_chmod_oct($old_chmod, $chmod);
|
1968 |
|
2047 |
|
2048 |
}
|
2049 |
|
2050 |
+
/**
|
2051 |
+
* WordPress options filter
|
2052 |
+
*
|
2053 |
+
* @param String $val - pre-filter value
|
2054 |
+
*
|
2055 |
+
* @return String - filtered value
|
2056 |
+
*/
|
2057 |
public function option_filter_permalink_structure($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
2058 |
global $updraftplus;
|
2059 |
return $updraftplus->option_filter_get('permalink_structure');
|
2060 |
}
|
2061 |
|
2062 |
+
/**
|
2063 |
+
* WordPress options filter
|
2064 |
+
*
|
2065 |
+
* @param String $val - pre-filter value
|
2066 |
+
*
|
2067 |
+
* @return String - filtered value
|
2068 |
+
*/
|
2069 |
public function option_filter_page_on_front($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
2070 |
global $updraftplus;
|
2071 |
return $updraftplus->option_filter_get('page_on_front');
|
2072 |
}
|
2073 |
|
2074 |
+
/**
|
2075 |
+
* WordPress options filter
|
2076 |
+
*
|
2077 |
+
* @param String $val - pre-filter value
|
2078 |
+
*
|
2079 |
+
* @return String - filtered value
|
2080 |
+
*/
|
2081 |
public function option_filter_rewrite_rules($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
2082 |
global $updraftplus;
|
2083 |
return $updraftplus->option_filter_get('rewrite_rules');
|
2122 |
|
2123 |
if (!file_exists($working_dir_localpath.'/'.$db_basename)) {
|
2124 |
$separatedb = empty($plugins[$this->ud_foreign]['separatedb']) ? false : true;
|
2125 |
+
$filtered_db_name = apply_filters('updraftplus_foreign_dbfilename', false, $this->ud_foreign, $this->ud_backup_set, $working_dir_localpath, $separatedb);
|
2126 |
if (is_string($filtered_db_name)) $db_basename = $filtered_db_name;
|
2127 |
}
|
2128 |
}
|
2657 |
}
|
2658 |
|
2659 |
// Rescan storage, but only if there was remote storage and a database; otherwise just re-scan locally
|
2660 |
+
if (!empty($this->ud_backup_set['db']) && !empty($this->ud_backup_set['service']) && ('none' !== $this->ud_backup_set['service'] && 'email' !== $this->ud_backup_set['service'] && array('') !== $this->ud_backup_set['service'] && array('none') !== $this->ud_backup_set['service'] && array('email') !== $this->ud_backup_set['service'])) {
|
2661 |
+
$only_add_this_file = array('file' => $this->ud_backup_set['db']);
|
2662 |
UpdraftPlus_Backup_History::rebuild(true, $only_add_this_file);
|
2663 |
} else {
|
2664 |
UpdraftPlus_Backup_History::rebuild();
|
2974 |
global $updraftplus_addons_migrator;
|
2975 |
if (!empty($updraftplus_addons_migrator->new_blogid)) switch_to_blog($updraftplus_addons_migrator->new_blogid);
|
2976 |
|
2977 |
+
$filter_these = array('permalink_structure', 'rewrite_rules', 'page_on_front');
|
2978 |
+
|
2979 |
+
foreach ($filter_these as $opt) {
|
2980 |
add_filter('pre_option_'.$opt, array($this, 'option_filter_'.$opt));
|
2981 |
}
|
2982 |
|
2988 |
if (function_exists('save_mod_rewrite_rules')) save_mod_rewrite_rules();
|
2989 |
if (function_exists('iis7_save_url_rewrite_rules')) iis7_save_url_rewrite_rules();
|
2990 |
|
2991 |
+
foreach ($filter_these as $opt) {
|
2992 |
remove_filter('pre_option_'.$opt, array($this, 'option_filter_'.$opt));
|
2993 |
}
|
2994 |
|
2996 |
|
2997 |
}
|
2998 |
|
2999 |
+
/**
|
3000 |
+
* WordPress options filter
|
3001 |
+
*
|
3002 |
+
* @param String $val - pre-filter value
|
3003 |
+
*
|
3004 |
+
* @return String - filtered value
|
3005 |
+
*/
|
3006 |
+
public function option_filter_template($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
3007 |
+
global $updraftplus;
|
3008 |
+
return $updraftplus->option_filter_get('template');
|
3009 |
+
}
|
3010 |
+
|
3011 |
+
/**
|
3012 |
+
* WordPress options filter
|
3013 |
+
*
|
3014 |
+
* @param String $val - pre-filter value
|
3015 |
+
*
|
3016 |
+
* @return String - filtered value
|
3017 |
+
*/
|
3018 |
+
public function option_filter_stylesheet($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
3019 |
+
global $updraftplus;
|
3020 |
+
return $updraftplus->option_filter_get('stylesheet');
|
3021 |
+
}
|
3022 |
+
|
3023 |
+
/**
|
3024 |
+
* WordPress options filter
|
3025 |
+
*
|
3026 |
+
* @param String $val - pre-filter value
|
3027 |
+
*
|
3028 |
+
* @return String - filtered value
|
3029 |
+
*/
|
3030 |
+
public function option_filter_template_root($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
3031 |
+
global $updraftplus;
|
3032 |
+
return $updraftplus->option_filter_get('template_root');
|
3033 |
+
}
|
3034 |
+
|
3035 |
+
/**
|
3036 |
+
* WordPress options filter
|
3037 |
+
*
|
3038 |
+
* @param String $val - pre-filter value
|
3039 |
+
*
|
3040 |
+
* @return String - filtered value
|
3041 |
+
*/
|
3042 |
+
public function option_filter_stylesheet_root($val) {// phpcs:ignore Generic.CodeAnalysis.UnusedFunctionParameter.Found -- Filter use
|
3043 |
+
global $updraftplus;
|
3044 |
+
return $updraftplus->option_filter_get('stylesheet_root');
|
3045 |
+
}
|
3046 |
+
|
3047 |
private function restored_table($table, $import_table_prefix, $old_table_prefix) {
|
3048 |
|
3049 |
$table_without_prefix = substr($table, strlen($import_table_prefix));
|
@@ -15,7 +15,7 @@ if (!class_exists('UpdraftPlus_Addon_LockAdmin') || (defined('UPDRAFTPLUS_NOADMI
|
|
15 |
|
16 |
} else {
|
17 |
|
18 |
-
?><a href="<?php apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/updraftplus-premium/");?>">
|
19 |
<em><?php _e('For the ability to lock access to UpdraftPlus settings with a password, upgrade to UpdraftPlus Premium.', 'updraftplus'); ?></em>
|
20 |
</a><?php
|
21 |
|
15 |
|
16 |
} else {
|
17 |
|
18 |
+
?><a href="<?php apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/updraftplus-premium/");?>" target="_blank">
|
19 |
<em><?php _e('For the ability to lock access to UpdraftPlus settings with a password, upgrade to UpdraftPlus Premium.', 'updraftplus'); ?></em>
|
20 |
</a><?php
|
21 |
|
@@ -5,7 +5,7 @@
|
|
5 |
<div class="advanced_tools search_replace">
|
6 |
<p class="updraftplus-search-replace-advert">
|
7 |
<h3><?php echo __('Search / replace database', 'updraftplus'); ?></h3>
|
8 |
-
<a href="<?php apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/updraftplus-premium/");?>">
|
9 |
<em><?php _e('For the ability to migrate websites, upgrade to UpdraftPlus Premium.', 'updraftplus'); ?></em>
|
10 |
</a>
|
11 |
</p>
|
5 |
<div class="advanced_tools search_replace">
|
6 |
<p class="updraftplus-search-replace-advert">
|
7 |
<h3><?php echo __('Search / replace database', 'updraftplus'); ?></h3>
|
8 |
+
<a href="<?php apply_filters("updraftplus_com_link", "https://updraftplus.com/shop/updraftplus-premium/");?>" target="_blank">
|
9 |
<em><?php _e('For the ability to migrate websites, upgrade to UpdraftPlus Premium.', 'updraftplus'); ?></em>
|
10 |
</a>
|
11 |
</p>
|
@@ -9,28 +9,28 @@
|
|
9 |
echo '<p>'.__('Super-charge and secure your WordPress site with our other top plugins:', 'updraftplus').'</p>';
|
10 |
?>
|
11 |
<p>
|
12 |
-
<?php echo '<strong><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'">'.__('UpdraftPlus Premium', 'updraftplus').'</a>: </strong>'.__("For personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more, take a look at the premium version of UpdraftPlus - the world's most popular backup plugin.", 'updraftplus');
|
13 |
-
echo ' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/comparison-updraftplus-free-updraftplus-premium/").'">'.__('Compare with the free version', 'updraftplus').'</a> / <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'">'.__('Go to the shop.', 'updraftplus').'</a>';
|
14 |
?>
|
15 |
</p>
|
16 |
<p>
|
17 |
-
<?php echo '<strong><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/updraftcentral/").'">'.__('UpdraftCentral', 'updraftplus').'</a> </strong>'.__('is a highly efficient way to manage, update and backup multiple websites from one place.', 'updraftplus'); ?>
|
18 |
</p>
|
19 |
<p>
|
20 |
-
<?php echo '<strong><a href="https://www.metaslider.com">MetaSlider</a>: </strong>'.__('Add style and flare easily with beautifully-designed sliders on the #1 WP slider plugin', 'updraftplus'); ?>
|
21 |
</p>
|
22 |
<p>
|
23 |
-
<?php echo '<strong><a href="https://getwpo.com">WP-Optimize</a>: </strong>'.__('Auto-clean your WordPress database so that it runs at maximum efficiency. 800,000 users!', 'updraftplus'); ?>
|
24 |
</p>
|
25 |
<p>
|
26 |
-
<?php echo '<strong><a href="https://getkeyy.com/">Keyy: </a></strong>'.__('Simple and secure login with a wave of your phone.', 'updraftplus'); ?>
|
27 |
</p>
|
28 |
<p>
|
29 |
-
<?php echo '<strong><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/newsletter-signup").'">'.__('Free Newsletter', 'updraftplus').'</a>: </strong>'.__('UpdraftPlus news, high-quality training materials for WordPress developers and site-owners, and general WordPress news. You can de-subscribe at any time.', 'updraftplus'); ?>
|
30 |
</p>
|
31 |
<p>
|
32 |
<?php echo '<strong>'.__('More quality plugins', 'updraftplus').' :</strong>';?>
|
33 |
-
<a href="https://www.simbahosting.co.uk/s3/shop/"><?php echo __('Premium WooCommerce plugins', 'updraftplus').'</a> | <a href="https://wordpress.org/plugins/two-factor-authentication/">'.__('Free two-factor security plugin', 'updraftplus');?></a>
|
34 |
</p>
|
35 |
<div style="float:right;"><a href="#>" onclick="jQuery('#updraft-dashnotice').slideUp(); jQuery.post(ajaxurl, {action: 'updraft_ajax', subaction: 'dismissdashnotice', nonce: '<?php echo wp_create_nonce('updraftplus-credentialtest-nonce');?>' });"><?php printf(__('Dismiss (for %s months)', 'updraftplus'), 12); ?></a></div>
|
36 |
<p> </p>
|
9 |
echo '<p>'.__('Super-charge and secure your WordPress site with our other top plugins:', 'updraftplus').'</p>';
|
10 |
?>
|
11 |
<p>
|
12 |
+
<?php echo '<strong><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'" target="_blank">'.__('UpdraftPlus Premium', 'updraftplus').'</a>: </strong>'.__("For personal support, the ability to copy sites, more storage destinations, encrypted backups for security, multiple backup destinations, better reporting, no adverts and plenty more, take a look at the premium version of UpdraftPlus - the world's most popular backup plugin.", 'updraftplus');
|
13 |
+
echo ' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/comparison-updraftplus-free-updraftplus-premium/").'" target="_blank">'.__('Compare with the free version', 'updraftplus').'</a> / <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'" target="_blank">'.__('Go to the shop.', 'updraftplus').'</a>';
|
14 |
?>
|
15 |
</p>
|
16 |
<p>
|
17 |
+
<?php echo '<strong><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/updraftcentral/").'" target="_blank">'.__('UpdraftCentral', 'updraftplus').'</a> </strong>'.__('is a highly efficient way to manage, update and backup multiple websites from one place.', 'updraftplus'); ?>
|
18 |
</p>
|
19 |
<p>
|
20 |
+
<?php echo '<strong><a href="https://www.metaslider.com" target="_blank">MetaSlider</a>: </strong>'.__('Add style and flare easily with beautifully-designed sliders on the #1 WP slider plugin', 'updraftplus'); ?>
|
21 |
</p>
|
22 |
<p>
|
23 |
+
<?php echo '<strong><a href="https://getwpo.com" target="_blank">WP-Optimize</a>: </strong>'.__('Auto-clean your WordPress database so that it runs at maximum efficiency. 800,000 users!', 'updraftplus'); ?>
|
24 |
</p>
|
25 |
<p>
|
26 |
+
<?php echo '<strong><a href="https://getkeyy.com/" target="_blank">Keyy: </a></strong>'.__('Simple and secure login with a wave of your phone.', 'updraftplus'); ?>
|
27 |
</p>
|
28 |
<p>
|
29 |
+
<?php echo '<strong><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/newsletter-signup").'" target="_blank">'.__('Free Newsletter', 'updraftplus').'</a>: </strong>'.__('UpdraftPlus news, high-quality training materials for WordPress developers and site-owners, and general WordPress news. You can de-subscribe at any time.', 'updraftplus'); ?>
|
30 |
</p>
|
31 |
<p>
|
32 |
<?php echo '<strong>'.__('More quality plugins', 'updraftplus').' :</strong>';?>
|
33 |
+
<a href="https://www.simbahosting.co.uk/s3/shop/" target="_blank"><?php echo __('Premium WooCommerce plugins', 'updraftplus').'</a> | <a href="https://wordpress.org/plugins/two-factor-authentication/" target="_blank">'.__('Free two-factor security plugin', 'updraftplus');?></a>
|
34 |
</p>
|
35 |
<div style="float:right;"><a href="#>" onclick="jQuery('#updraft-dashnotice').slideUp(); jQuery.post(ajaxurl, {action: 'updraft_ajax', subaction: 'dismissdashnotice', nonce: '<?php echo wp_create_nonce('updraftplus-credentialtest-nonce');?>' });"><?php printf(__('Dismiss (for %s months)', 'updraftplus'), 12); ?></a></div>
|
36 |
<p> </p>
|
@@ -14,7 +14,7 @@
|
|
14 |
</p>
|
15 |
|
16 |
<div class="incremental-free-only">
|
17 |
-
<p><?php echo sprintf(__('Incremental backups are a feature of %s (upgrade by following this link).', 'updraftplus'), '<a href="'.$updraftplus->get_url('premium').'" target="_blank">UpdraftPlus Premium</a>'
|
18 |
</a>
|
19 |
<br>
|
20 |
<a href="https://updraftplus.com/tell-me-more-about-incremental-backups/" target="_blank"><?php _e('Find out more about incremental backups here.', 'updraftplus'); ?></a></p>
|
14 |
</p>
|
15 |
|
16 |
<div class="incremental-free-only">
|
17 |
+
<p><?php echo sprintf(__('Incremental backups are a feature of %s (upgrade by following this link).', 'updraftplus'), '<a href="'.$updraftplus->get_url('premium').'" target="_blank">UpdraftPlus Premium').'</a>'; ?>
|
18 |
</a>
|
19 |
<br>
|
20 |
<a href="https://updraftplus.com/tell-me-more-about-incremental-backups/" target="_blank"><?php _e('Find out more about incremental backups here.', 'updraftplus'); ?></a></p>
|
@@ -51,7 +51,7 @@
|
|
51 |
|
52 |
// The 'off' check is for badly configured setups - http://wordpress.org/support/topic/plugin-wp-super-cache-warning-php-safe-mode-enabled-but-safe-mode-is-off
|
53 |
if ($updraftplus->detect_safe_mode()) {
|
54 |
-
echo "<p><em>".__("Your web server has PHP's so-called safe_mode active.", 'updraftplus').' '.__('This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/i-want-to-restore-but-have-either-cannot-or-have-failed-to-do-so-from-the-wp-admin-console/").'">'.__('or to restore manually', 'updraftplus').'.</a></em></p><br>';
|
55 |
}
|
56 |
|
57 |
$backupable_entities = $updraftplus->get_backupable_file_entities(true, true);
|
51 |
|
52 |
// The 'off' check is for badly configured setups - http://wordpress.org/support/topic/plugin-wp-super-cache-warning-php-safe-mode-enabled-but-safe-mode-is-off
|
53 |
if ($updraftplus->detect_safe_mode()) {
|
54 |
+
echo "<p><em>".__("Your web server has PHP's so-called safe_mode active.", 'updraftplus').' '.__('This makes time-outs much more likely. You are recommended to turn safe_mode off, or to restore only one entity at a time', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/i-want-to-restore-but-have-either-cannot-or-have-failed-to-do-so-from-the-wp-admin-console/").'" target="_blank">'.__('or to restore manually', 'updraftplus').'.</a></em></p><br>';
|
55 |
}
|
56 |
|
57 |
$backupable_entities = $updraftplus->get_backupable_file_entities(true, true);
|
@@ -24,7 +24,7 @@ if (!empty($options['include_header'])) echo '<h2>'.__('Existing Backups', 'updr
|
|
24 |
<div class="download-backups form-table">
|
25 |
<?php if (!empty($options['include_whitespace_warning'])) { ?>
|
26 |
<p class="ud-whitespace-warning updraft-hidden" style="display:none;">
|
27 |
-
<?php echo '<strong>'.__('Warning', 'updraftplus').':</strong> '.__('Your WordPress installation has a problem with outputting extra whitespace. This can corrupt backups that you download from here.', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/problems-with-extra-white-space/").'">'.__('Follow this link for more information', 'updraftplus').'</a>';?>
|
28 |
</p>
|
29 |
<?php }
|
30 |
$bom_warning = $updraftplus_admin->get_bom_warning_text();
|
24 |
<div class="download-backups form-table">
|
25 |
<?php if (!empty($options['include_whitespace_warning'])) { ?>
|
26 |
<p class="ud-whitespace-warning updraft-hidden" style="display:none;">
|
27 |
+
<?php echo '<strong>'.__('Warning', 'updraftplus').':</strong> '.__('Your WordPress installation has a problem with outputting extra whitespace. This can corrupt backups that you download from here.', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/problems-with-extra-white-space/").'" target="_blank">'.__('Follow this link for more information', 'updraftplus').'</a>';?>
|
28 |
</p>
|
29 |
<?php }
|
30 |
$bom_warning = $updraftplus_admin->get_bom_warning_text();
|
@@ -84,7 +84,7 @@ foreach ($default_options as $k => $v) {
|
|
84 |
<th></th>
|
85 |
<td><div>
|
86 |
<?php
|
87 |
-
echo apply_filters('updraftplus_fixtime_ftinfo', '<p>'.__('To fix the time at which a backup should take place,', 'updraftplus').' ('.__('e.g. if your server is busy at day and you want to run overnight', 'updraftplus').'), '.__('to take incremental backups', 'updraftplus').', '.__('or to configure more complex schedules', 'updraftplus').', <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'">'.htmlspecialchars(__('use UpdraftPlus Premium', 'updraftplus')).'</a></p>');
|
88 |
?>
|
89 |
</div></td>
|
90 |
</tr>
|
@@ -122,7 +122,7 @@ foreach ($default_options as $k => $v) {
|
|
122 |
<?php
|
123 |
if (false === apply_filters('updraftplus_storage_printoptions', false, $active_service)) {
|
124 |
echo '</div>';
|
125 |
-
echo '<p><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/morestorage/").'">'.htmlspecialchars(__('You can send a backup to more than one destination with an add-on.', 'updraftplus')).'</a></p>';
|
126 |
}
|
127 |
?>
|
128 |
|
@@ -144,7 +144,7 @@ foreach ($default_options as $k => $v) {
|
|
144 |
<th><?php _e('Include in files backup', 'updraftplus');?>:</th>
|
145 |
<td>
|
146 |
<?php echo $updraftplus_admin->files_selector_widgetry('', true, true); ?>
|
147 |
-
<p><?php echo apply_filters('updraftplus_admin_directories_description', __('The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org.', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/").'">'.htmlspecialchars(__('See also the "More Files" add-on from our shop.', 'updraftplus')).'</a>'); ?></p>
|
148 |
</td>
|
149 |
</tr>
|
150 |
</table>
|
@@ -158,7 +158,7 @@ foreach ($default_options as $k => $v) {
|
|
158 |
|
159 |
<td>
|
160 |
<?php
|
161 |
-
echo apply_filters('updraft_database_encryption_config', '<a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/landing/updraftplus-premium").'">'.__("Don't want to be spied on? UpdraftPlus Premium can encrypt your database backup.", 'updraftplus').'</a> '.__('It can also backup external databases.', 'updraftplus'));
|
162 |
?>
|
163 |
</td>
|
164 |
</tr>
|
@@ -212,7 +212,7 @@ foreach ($default_options as $k => $v) {
|
|
212 |
}
|
213 |
|
214 |
if (!$wp_optimize_file) {
|
215 |
-
?><br><a href="https://wordpress.org/plugins/wp-optimize/"><?php _e('Recommended: optimize your database with WP-Optimize.', 'updraftplus');?></a>
|
216 |
<?php
|
217 |
}
|
218 |
?>
|
@@ -259,7 +259,7 @@ foreach ($default_options as $k => $v) {
|
|
259 |
?>
|
260 |
<label for="updraft_email" class="updraft_checkbox"><input type="checkbox" id="updraft_email" name="updraft_email" value="<?php esc_attr_e(get_bloginfo('admin_email')); ?>"<?php if (!empty($updraft_email)) echo ' checked="checked"';?> > <?php echo __("Check this box to have a basic report sent to", 'updraftplus').' <a href="'.admin_url('options-general.php').'">'.__("your site's admin address", 'updraftplus').'</a> ('.htmlspecialchars(get_bloginfo('admin_email')).")."; ?></label>
|
261 |
<?php
|
262 |
-
if (!class_exists('UpdraftPlus_Addon_Reporting')) echo '<a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/reporting/").'">'.__('For more reporting features, use the Reporting add-on.', 'updraftplus').'</a>';
|
263 |
?>
|
264 |
</td>
|
265 |
</tr>
|
@@ -342,12 +342,12 @@ foreach ($default_options as $k => $v) {
|
|
342 |
|
343 |
<tr class="expertmode updraft-hidden" style="display:none;">
|
344 |
<th><?php _e('Disable SSL entirely where possible', 'updraftplus');?>:</th>
|
345 |
-
<td><input data-updraft_settings_test="nossl" type="checkbox" id="updraft_ssl_nossl" name="updraft_ssl_nossl" value="1" <?php if (UpdraftPlus_Options::get_updraft_option('updraft_ssl_nossl')) echo 'checked="checked"'; ?>> <br><label for="updraft_ssl_nossl"><?php _e('Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect.', 'updraftplus');?> <a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/i-get-ssl-certificate-errors-when-backing-up-andor-restoring/");?>"><?php _e('See this FAQ also.', 'updraftplus');?></a></label></td>
|
346 |
</tr>
|
347 |
|
348 |
<tr class="expertmode updraft-hidden" style="display:none;">
|
349 |
<th><?php _e('Automatic updates', 'updraftplus');?>:</th>
|
350 |
-
<td><label><input type="checkbox" id="updraft_auto_updates" data-updraft_settings_test="updraft_auto_updates" name="updraft_auto_updates" value="1" <?php if (UpdraftPlus_Options::get_updraft_option('updraft_auto_updates')) echo 'checked="checked"'; ?>><br /><?php _e('Ask WordPress to automatically update UpdraftPlus when it finds an available update.', 'updraftplus');?></label><p><a href="https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/"><?php _e('Read more about Easy Updates Manager', 'updraftplus'); ?></a></p></td>
|
351 |
</tr>
|
352 |
|
353 |
<?php do_action('updraftplus_configprint_expertoptions'); ?>
|
84 |
<th></th>
|
85 |
<td><div>
|
86 |
<?php
|
87 |
+
echo apply_filters('updraftplus_fixtime_ftinfo', '<p>'.__('To fix the time at which a backup should take place,', 'updraftplus').' ('.__('e.g. if your server is busy at day and you want to run overnight', 'updraftplus').'), '.__('to take incremental backups', 'updraftplus').', '.__('or to configure more complex schedules', 'updraftplus').', <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'" target="_blank">'.htmlspecialchars(__('use UpdraftPlus Premium', 'updraftplus')).'</a></p>');
|
88 |
?>
|
89 |
</div></td>
|
90 |
</tr>
|
122 |
<?php
|
123 |
if (false === apply_filters('updraftplus_storage_printoptions', false, $active_service)) {
|
124 |
echo '</div>';
|
125 |
+
echo '<p><a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/morestorage/").'" target="_blank">'.htmlspecialchars(__('You can send a backup to more than one destination with an add-on.', 'updraftplus')).'</a></p>';
|
126 |
}
|
127 |
?>
|
128 |
|
144 |
<th><?php _e('Include in files backup', 'updraftplus');?>:</th>
|
145 |
<td>
|
146 |
<?php echo $updraftplus_admin->files_selector_widgetry('', true, true); ?>
|
147 |
+
<p><?php echo apply_filters('updraftplus_admin_directories_description', __('The above directories are everything, except for WordPress core itself which you can download afresh from WordPress.org.', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/").'" target="_blank">'.htmlspecialchars(__('See also the "More Files" add-on from our shop.', 'updraftplus')).'</a>'); ?></p>
|
148 |
</td>
|
149 |
</tr>
|
150 |
</table>
|
158 |
|
159 |
<td>
|
160 |
<?php
|
161 |
+
echo apply_filters('updraft_database_encryption_config', '<a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/landing/updraftplus-premium").'" target="_blank">'.__("Don't want to be spied on? UpdraftPlus Premium can encrypt your database backup.", 'updraftplus').'</a> '.__('It can also backup external databases.', 'updraftplus'));
|
162 |
?>
|
163 |
</td>
|
164 |
</tr>
|
212 |
}
|
213 |
|
214 |
if (!$wp_optimize_file) {
|
215 |
+
?><br><a href="https://wordpress.org/plugins/wp-optimize/" target="_blank"><?php _e('Recommended: optimize your database with WP-Optimize.', 'updraftplus');?></a>
|
216 |
<?php
|
217 |
}
|
218 |
?>
|
259 |
?>
|
260 |
<label for="updraft_email" class="updraft_checkbox"><input type="checkbox" id="updraft_email" name="updraft_email" value="<?php esc_attr_e(get_bloginfo('admin_email')); ?>"<?php if (!empty($updraft_email)) echo ' checked="checked"';?> > <?php echo __("Check this box to have a basic report sent to", 'updraftplus').' <a href="'.admin_url('options-general.php').'">'.__("your site's admin address", 'updraftplus').'</a> ('.htmlspecialchars(get_bloginfo('admin_email')).")."; ?></label>
|
261 |
<?php
|
262 |
+
if (!class_exists('UpdraftPlus_Addon_Reporting')) echo '<a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/reporting/").'" target="_blank">'.__('For more reporting features, use the Reporting add-on.', 'updraftplus').'</a>';
|
263 |
?>
|
264 |
</td>
|
265 |
</tr>
|
342 |
|
343 |
<tr class="expertmode updraft-hidden" style="display:none;">
|
344 |
<th><?php _e('Disable SSL entirely where possible', 'updraftplus');?>:</th>
|
345 |
+
<td><input data-updraft_settings_test="nossl" type="checkbox" id="updraft_ssl_nossl" name="updraft_ssl_nossl" value="1" <?php if (UpdraftPlus_Options::get_updraft_option('updraft_ssl_nossl')) echo 'checked="checked"'; ?>> <br><label for="updraft_ssl_nossl"><?php _e('Choosing this option lowers your security by stopping UpdraftPlus from using SSL for authentication and encrypted transport at all, where possible. Note that some cloud storage providers do not allow this (e.g. Dropbox), so with those providers this setting will have no effect.', 'updraftplus');?> <a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/faqs/i-get-ssl-certificate-errors-when-backing-up-andor-restoring/");?>" target="_blank"><?php _e('See this FAQ also.', 'updraftplus');?></a></label></td>
|
346 |
</tr>
|
347 |
|
348 |
<tr class="expertmode updraft-hidden" style="display:none;">
|
349 |
<th><?php _e('Automatic updates', 'updraftplus');?>:</th>
|
350 |
+
<td><label><input type="checkbox" id="updraft_auto_updates" data-updraft_settings_test="updraft_auto_updates" name="updraft_auto_updates" value="1" <?php if (UpdraftPlus_Options::get_updraft_option('updraft_auto_updates')) echo 'checked="checked"'; ?>><br /><?php _e('Ask WordPress to automatically update UpdraftPlus when it finds an available update.', 'updraftplus');?></label><p><a href="https://wordpress.org/plugins/stops-core-theme-and-plugin-updates/" target="_blank"><?php _e('Read more about Easy Updates Manager', 'updraftplus'); ?></a></p></td>
|
351 |
</tr>
|
352 |
|
353 |
<?php do_action('updraftplus_configprint_expertoptions'); ?>
|
@@ -4,24 +4,24 @@
|
|
4 |
|
5 |
<h1><?php echo $updraftplus->plugin_title; ?></h1>
|
6 |
<div class="updraftplus-top-menu">
|
7 |
-
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/");?>">UpdraftPlus.Com</a> |
|
8 |
<?php
|
9 |
if (!defined('UPDRAFTPLUS_NOADS_B')) {
|
10 |
?>
|
11 |
-
<a href="<?php echo apply_filters('updraftplus_com_link', 'https://updraftplus.com/shop/updraftplus-premium/');?>"><?php _e("Premium", 'updraftplus'); ?></a> |
|
12 |
<?php
|
13 |
}
|
14 |
?>
|
15 |
-
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/news/");?>"><?php _e('News', 'updraftplus');?></a> |
|
16 |
-
<a href="https://twitter.com/updraftplus"><?php _e('Twitter', 'updraftplus');?></a> |
|
17 |
-
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/support/");?>"><?php _e("Support", 'updraftplus');?></a> |
|
18 |
<?php
|
19 |
if (!is_file(UPDRAFTPLUS_DIR.'/udaddons/updraftplus-addons.php')) {
|
20 |
?>
|
21 |
-
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/newsletter-signup");?>"><?php _e("Newsletter sign-up", 'updraftplus'); ?></a> |
|
22 |
<?php
|
23 |
}
|
24 |
?>
|
25 |
-
<a href="https://david.dw-perspective.org.uk"><?php _e("Lead developer's homepage", 'updraftplus');?></a> |
|
26 |
-
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/support/frequently-asked-questions/");?>"><?php _e('FAQs', 'updraftplus'); ?></a> | <a href="https://www.simbahosting.co.uk/s3/shop/"><?php _e('More plugins', 'updraftplus');?></a> - <?php _e('Version', 'updraftplus');?>: <?php echo $updraftplus->version; ?>
|
27 |
</div>
|
4 |
|
5 |
<h1><?php echo $updraftplus->plugin_title; ?></h1>
|
6 |
<div class="updraftplus-top-menu">
|
7 |
+
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/");?>" target="_blank">UpdraftPlus.Com</a> |
|
8 |
<?php
|
9 |
if (!defined('UPDRAFTPLUS_NOADS_B')) {
|
10 |
?>
|
11 |
+
<a href="<?php echo apply_filters('updraftplus_com_link', 'https://updraftplus.com/shop/updraftplus-premium/');?>" target="_blank"><?php _e("Premium", 'updraftplus'); ?></a> |
|
12 |
<?php
|
13 |
}
|
14 |
?>
|
15 |
+
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/news/");?>" target="_blank"><?php _e('News', 'updraftplus');?></a> |
|
16 |
+
<a href="https://twitter.com/updraftplus" target="_blank"><?php _e('Twitter', 'updraftplus');?></a> |
|
17 |
+
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/support/");?>" target="_blank"><?php _e("Support", 'updraftplus');?></a> |
|
18 |
<?php
|
19 |
if (!is_file(UPDRAFTPLUS_DIR.'/udaddons/updraftplus-addons.php')) {
|
20 |
?>
|
21 |
+
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/newsletter-signup");?>" target="_blank"><?php _e("Newsletter sign-up", 'updraftplus'); ?></a> |
|
22 |
<?php
|
23 |
}
|
24 |
?>
|
25 |
+
<a href="https://david.dw-perspective.org.uk" target="_blank"><?php _e("Lead developer's homepage", 'updraftplus');?></a> |
|
26 |
+
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/support/frequently-asked-questions/");?>" target="_blank"><?php _e('FAQs', 'updraftplus'); ?></a> | <a href="https://www.simbahosting.co.uk/s3/shop/" target="_blank"><?php _e('More plugins', 'updraftplus');?></a> - <?php _e('Version', 'updraftplus');?>: <?php echo $updraftplus->version; ?>
|
27 |
</div>
|
@@ -14,7 +14,7 @@
|
|
14 |
</p>
|
15 |
|
16 |
<p>
|
17 |
-
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/landing/migrator/");?>"><?php _e('More information here.', 'updraftplus'); ?></a>
|
18 |
</p>
|
19 |
</div>
|
20 |
|
14 |
</p>
|
15 |
|
16 |
<p>
|
17 |
+
<a href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/landing/migrator/");?>" target="_blank"><?php _e('More information here.', 'updraftplus'); ?></a>
|
18 |
</p>
|
19 |
</div>
|
20 |
|
@@ -20,7 +20,7 @@ $premv = UPDRAFTPLUS_URL.'/images/updraft_premv.png';
|
|
20 |
<li><a target="_blank" href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/ask-a-pre-sales-question/");?>"><?php _e('Ask a pre-sales question', 'updraftplus');?></a></li>
|
21 |
<li><a target="_blank" href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/support/");?>"><?php _e('Support', 'updraftplus');?></a></li>
|
22 |
<li><a href="#other-plugins"><?php _e('Other great plugins', 'updraftplus');?></a></li>
|
23 |
-
<li><a href="https://www.simbahosting.co.uk/s3/shop/"><?php _e('WooCommerce plugins', 'updraftplus');?></a></li>
|
24 |
</ul>
|
25 |
</div>
|
26 |
<a target="_blank" class="button button-primary button-hero" href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/");?>"><?php _e('Get it here', 'updraftplus');?></a>
|
@@ -53,7 +53,7 @@ $premv = UPDRAFTPLUS_URL.'/images/updraft_premv.png';
|
|
53 |
<span class="installed updraft-yes"><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus');?>"></span> <?php _e('Installed', 'updraftplus');?></span>
|
54 |
</td>
|
55 |
<td>
|
56 |
-
<a class="button button-primary" href="<?php esc_attr_e(apply_filters('updraftplus_com_link', 'https://updraftplus.com/shop/updraftplus-premium/'));?>"><?php _e('Upgrade now', 'updraftplus');?></a>
|
57 |
</td>
|
58 |
</tr>
|
59 |
<tr>
|
@@ -260,7 +260,7 @@ $premv = UPDRAFTPLUS_URL.'/images/updraft_premv.png';
|
|
260 |
<h4><?php _e('UpdraftVault storage', 'updraftplus');?></h4>
|
261 |
<p>
|
262 |
<?php _e('UpdraftPlus has its own embedded storage option, providing a zero-hassle way to download, store and manage all your backups from one place.', 'updraftplus');?>
|
263 |
-
<a href="<?php esc_attr_e(apply_filters('updraftplus_com_link', 'https://updraftplus.com/landing/updraftvault'));?>"><?php _e('Premium / Find out more', 'updraftplus');?></a>
|
264 |
</p>
|
265 |
|
266 |
</td>
|
@@ -277,7 +277,7 @@ $premv = UPDRAFTPLUS_URL.'/images/updraft_premv.png';
|
|
277 |
<span class="installed updraft-yes"><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus');?>"></span> <?php _e('Installed', 'updraftplus');?></span>
|
278 |
</td>
|
279 |
<td>
|
280 |
-
<p><a class="button button-primary" href="<?php esc_attr_e(apply_filters('updraftplus_com_link', 'https://updraftplus.com/shop/updraftplus-premium/'));?>"><?php _e('Upgrade now', 'updraftplus');?></a></p>
|
281 |
</td>
|
282 |
</tr>
|
283 |
</tbody>
|
20 |
<li><a target="_blank" href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/ask-a-pre-sales-question/");?>"><?php _e('Ask a pre-sales question', 'updraftplus');?></a></li>
|
21 |
<li><a target="_blank" href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/support/");?>"><?php _e('Support', 'updraftplus');?></a></li>
|
22 |
<li><a href="#other-plugins"><?php _e('Other great plugins', 'updraftplus');?></a></li>
|
23 |
+
<li><a target="_blank" href="https://www.simbahosting.co.uk/s3/shop/"><?php _e('WooCommerce plugins', 'updraftplus');?></a></li>
|
24 |
</ul>
|
25 |
</div>
|
26 |
<a target="_blank" class="button button-primary button-hero" href="<?php echo apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/");?>"><?php _e('Get it here', 'updraftplus');?></a>
|
53 |
<span class="installed updraft-yes"><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus');?>"></span> <?php _e('Installed', 'updraftplus');?></span>
|
54 |
</td>
|
55 |
<td>
|
56 |
+
<a class="button button-primary" href="<?php esc_attr_e(apply_filters('updraftplus_com_link', 'https://updraftplus.com/shop/updraftplus-premium/'));?>" target="_blank"><?php _e('Upgrade now', 'updraftplus');?></a>
|
57 |
</td>
|
58 |
</tr>
|
59 |
<tr>
|
260 |
<h4><?php _e('UpdraftVault storage', 'updraftplus');?></h4>
|
261 |
<p>
|
262 |
<?php _e('UpdraftPlus has its own embedded storage option, providing a zero-hassle way to download, store and manage all your backups from one place.', 'updraftplus');?>
|
263 |
+
<a href="<?php esc_attr_e(apply_filters('updraftplus_com_link', 'https://updraftplus.com/landing/updraftvault'));?>" target="_blank"><?php _e('Premium / Find out more', 'updraftplus');?></a>
|
264 |
</p>
|
265 |
|
266 |
</td>
|
277 |
<span class="installed updraft-yes"><span class="dashicons dashicons-yes" aria-label="<?php esc_attr_e('Yes', 'updraftplus');?>"></span> <?php _e('Installed', 'updraftplus');?></span>
|
278 |
</td>
|
279 |
<td>
|
280 |
+
<p><a class="button button-primary" href="<?php esc_attr_e(apply_filters('updraftplus_com_link', 'https://updraftplus.com/shop/updraftplus-premium/'));?>" target="_blank"><?php _e('Upgrade now', 'updraftplus');?></a></p>
|
281 |
</td>
|
282 |
</tr>
|
283 |
</tbody>
|
@@ -24,7 +24,7 @@ if (!empty($options['include_header'])) echo '<h2>'.__('Existing Backups', 'updr
|
|
24 |
<div class="download-backups form-table">
|
25 |
<?php if (!empty($options['include_whitespace_warning'])) { ?>
|
26 |
<p class="ud-whitespace-warning updraft-hidden" style="display:none;">
|
27 |
-
<?php echo '<strong>'.__('Warning', 'updraftplus').':</strong> '.__('Your WordPress installation has a problem with outputting extra whitespace. This can corrupt backups that you download from here.', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/problems-with-extra-white-space/").'">'.__('Follow this link for more information', 'updraftplus').'</a>';?>
|
28 |
</p>
|
29 |
<?php }
|
30 |
$bom_warning = $updraftplus_admin->get_bom_warning_text();
|
24 |
<div class="download-backups form-table">
|
25 |
<?php if (!empty($options['include_whitespace_warning'])) { ?>
|
26 |
<p class="ud-whitespace-warning updraft-hidden" style="display:none;">
|
27 |
+
<?php echo '<strong>'.__('Warning', 'updraftplus').':</strong> '.__('Your WordPress installation has a problem with outputting extra whitespace. This can corrupt backups that you download from here.', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/problems-with-extra-white-space/").'" target="_blank">'.__('Follow this link for more information', 'updraftplus').'</a>';?>
|
28 |
</p>
|
29 |
<?php }
|
30 |
$bom_warning = $updraftplus_admin->get_bom_warning_text();
|
@@ -93,7 +93,7 @@
|
|
93 |
<table>
|
94 |
<tr>
|
95 |
<td>
|
96 |
-
<p class="multisite-advert-width"><?php echo __('Do you need WordPress Multisite support?', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'">'. __('Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on.', 'updraftplus');?></a>.</p>
|
97 |
</td>
|
98 |
</tr>
|
99 |
</table>
|
93 |
<table>
|
94 |
<tr>
|
95 |
<td>
|
96 |
+
<p class="multisite-advert-width"><?php echo __('Do you need WordPress Multisite support?', 'updraftplus').' <a href="'.apply_filters('updraftplus_com_link', "https://updraftplus.com/shop/updraftplus-premium/").'" target="_blank">'. __('Please check out UpdraftPlus Premium, or the stand-alone Multisite add-on.', 'updraftplus');?></a>.</p>
|
97 |
</td>
|
98 |
</tr>
|
99 |
</table>
|
@@ -5,7 +5,7 @@ Plugin Name: UpdraftPlus - Backup/Restore
|
|
5 |
Plugin URI: https://updraftplus.com
|
6 |
Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
|
7 |
Author: UpdraftPlus.Com, DavidAnderson
|
8 |
-
Version: 1.16.
|
9 |
Donate link: https://david.dw-perspective.org.uk/donate
|
10 |
License: GPLv3 or later
|
11 |
Text Domain: updraftplus
|
5 |
Plugin URI: https://updraftplus.com
|
6 |
Description: Backup and restore: take backups locally, or backup to Amazon S3, Dropbox, Google Drive, Rackspace, (S)FTP, WebDAV & email, on automatic schedules.
|
7 |
Author: UpdraftPlus.Com, DavidAnderson
|
8 |
+
Version: 1.16.4
|
9 |
Donate link: https://david.dw-perspective.org.uk/donate
|
10 |
License: GPLv3 or later
|
11 |
Text Domain: updraftplus
|
@@ -708,23 +708,23 @@
|
|
708 |
},
|
709 |
{
|
710 |
"name": "symfony/process",
|
711 |
-
"version": "v3.4.
|
712 |
-
"version_normalized": "3.4.
|
713 |
"source": {
|
714 |
"type": "git",
|
715 |
"url": "https://github.com/symfony/process.git",
|
716 |
-
"reference": "
|
717 |
},
|
718 |
"dist": {
|
719 |
"type": "zip",
|
720 |
-
"url": "https://api.github.com/repos/symfony/process/zipball/
|
721 |
-
"reference": "
|
722 |
"shasum": ""
|
723 |
},
|
724 |
"require": {
|
725 |
"php": "^5.5.9|>=7.0.8"
|
726 |
},
|
727 |
-
"time": "
|
728 |
"type": "library",
|
729 |
"extra": {
|
730 |
"branch-alias": {
|
708 |
},
|
709 |
{
|
710 |
"name": "symfony/process",
|
711 |
+
"version": "v3.4.21",
|
712 |
+
"version_normalized": "3.4.21.0",
|
713 |
"source": {
|
714 |
"type": "git",
|
715 |
"url": "https://github.com/symfony/process.git",
|
716 |
+
"reference": "0d41dd7d95ed179aed6a13393b0f4f97bfa2d25c"
|
717 |
},
|
718 |
"dist": {
|
719 |
"type": "zip",
|
720 |
+
"url": "https://api.github.com/repos/symfony/process/zipball/0d41dd7d95ed179aed6a13393b0f4f97bfa2d25c",
|
721 |
+
"reference": "0d41dd7d95ed179aed6a13393b0f4f97bfa2d25c",
|
722 |
"shasum": ""
|
723 |
},
|
724 |
"require": {
|
725 |
"php": "^5.5.9|>=7.0.8"
|
726 |
},
|
727 |
+
"time": "2019-01-02T21:24:08+00:00",
|
728 |
"type": "library",
|
729 |
"extra": {
|
730 |
"branch-alias": {
|
@@ -42,11 +42,11 @@ class ExecutableFinder
|
|
42 |
/**
|
43 |
* Finds an executable by name.
|
44 |
*
|
45 |
-
* @param string
|
46 |
-
* @param string $default The default to return if no executable is found
|
47 |
-
* @param array
|
48 |
*
|
49 |
-
* @return string The executable path or default value
|
50 |
*/
|
51 |
public function find($name, $default = null, array $extraDirs = array())
|
52 |
{
|
42 |
/**
|
43 |
* Finds an executable by name.
|
44 |
*
|
45 |
+
* @param string $name The executable name (without the extension)
|
46 |
+
* @param string|null $default The default to return if no executable is found
|
47 |
+
* @param array $extraDirs Additional dirs to check into
|
48 |
*
|
49 |
+
* @return string|null The executable path or default value
|
50 |
*/
|
51 |
public function find($name, $default = null, array $extraDirs = array())
|
52 |
{
|
@@ -1,4 +1,4 @@
|
|
1 |
-
Copyright (c) 2004-
|
2 |
|
3 |
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4 |
of this software and associated documentation files (the "Software"), to deal
|
1 |
+
Copyright (c) 2004-2019 Fabien Potencier
|
2 |
|
3 |
Permission is hereby granted, free of charge, to any person obtaining a copy
|
4 |
of this software and associated documentation files (the "Software"), to deal
|
@@ -65,6 +65,21 @@ class ExecutableFinderTest extends TestCase
|
|
65 |
$this->assertEquals($expected, $result);
|
66 |
}
|
67 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
public function testFindWithExtraDirs()
|
69 |
{
|
70 |
if (ini_get('open_basedir')) {
|
65 |
$this->assertEquals($expected, $result);
|
66 |
}
|
67 |
|
68 |
+
public function testFindWithNullAsDefault()
|
69 |
+
{
|
70 |
+
if (ini_get('open_basedir')) {
|
71 |
+
$this->markTestSkipped('Cannot test when open_basedir is set');
|
72 |
+
}
|
73 |
+
|
74 |
+
$this->setPath('');
|
75 |
+
|
76 |
+
$finder = new ExecutableFinder();
|
77 |
+
|
78 |
+
$result = $finder->find('foo');
|
79 |
+
|
80 |
+
$this->assertNull($result);
|
81 |
+
}
|
82 |
+
|
83 |
public function testFindWithExtraDirs()
|
84 |
{
|
85 |
if (ini_get('open_basedir')) {
|